From e0877770b5b8b57a38a83335bbba1b6322680439 Mon Sep 17 00:00:00 2001 From: Pi Lanningham Date: Tue, 3 Dec 2024 02:11:57 -0500 Subject: [PATCH] Fix some issues with decoding games --- referee/referee.ts | 2 ++ src/utils/HydraMultiplayer/base.ts | 8 ++++---- src/utils/HydraMultiplayer/types.ts | 10 ++++++---- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/referee/referee.ts b/referee/referee.ts index e816a008..cead1457 100644 --- a/referee/referee.ts +++ b/referee/referee.ts @@ -10,6 +10,8 @@ import { KinesisClient, PutRecordsCommand } from "@aws-sdk/client-kinesis"; import { Packet } from "utils/HydraMultiplayer/base.js"; import { fromHex, toHex } from "utils/helpers.js"; + + const NETWORK_ID = Number(process.env.NETWORK_ID); const HYDRA_NODE = "http://localhost:4001/"; const RECORD_STATS = true; diff --git a/src/utils/HydraMultiplayer/base.ts b/src/utils/HydraMultiplayer/base.ts index 37d272d6..347b13d8 100644 --- a/src/utils/HydraMultiplayer/base.ts +++ b/src/utils/HydraMultiplayer/base.ts @@ -206,16 +206,16 @@ function decodeGame(raw: Uint8Array): TGame { cheaterRaw, } = game; - const referee_key_hash = referee_payment[0]; + const referee_key_hash = referee_payment.payment_key_hash; const playerCount = playerCountRaw as bigint; const botCount = botCountRaw as bigint; return { referee_key_hash: referee_key_hash, playerCount, botCount, - players: player_payments, + players: player_payments.map(p => p.payment_key_hash), state: stateTag, - winner: winnerRaw[0], - cheater: cheaterRaw[0], + winner: winnerRaw, + cheater: cheaterRaw, }; } diff --git a/src/utils/HydraMultiplayer/types.ts b/src/utils/HydraMultiplayer/types.ts index de25d9c0..16302610 100644 --- a/src/utils/HydraMultiplayer/types.ts +++ b/src/utils/HydraMultiplayer/types.ts @@ -16,10 +16,12 @@ export type TPacketArray = Static; export const PacketArray = PacketArraySchema as unknown as TPacketArray; export const GameSchema = Data.Object({ - referee_payment: Data.Array(Data.Bytes()), + referee_payment: Data.Object({ + payment_key_hash: Data.Bytes() + }), playerCountRaw: Data.Integer(), botCountRaw: Data.Integer(), - player_payments: Data.Array(Data.Bytes()), + player_payments: Data.Array(Data.Object({ payment_key_hash: Data.Bytes() })), stateTag: Data.Enum([ Data.Literal("Lobby"), Data.Literal("Running"), @@ -27,8 +29,8 @@ export const GameSchema = Data.Object({ Data.Literal("Finished"), Data.Literal("Aborted"), ]), - winnerRaw: Data.Tuple(Data.Bytes()), - cheaterRaw: Data.Tuple(Data.Bytes()), + winnerRaw: Data.Nullable(Data.Object({ payment_key_hash: Data.Bytes() })), + cheaterRaw: Data.Nullable(Data.Object({ payment_key_hash: Data.Bytes() })), }); export type TGame = Static;