diff --git a/assembly/dice.ts b/assembly/dice.ts index 73c4edf..6f1e265 100644 --- a/assembly/dice.ts +++ b/assembly/dice.ts @@ -67,6 +67,9 @@ export class GameManager { } getBalance(playerId: u64): Response { - return new GetBalanceResponse(1); + if (!this.playerBalance.has(playerId)) { + return new ErrorResponse("There is no player with id: " + playerId.toString()); + } + return new GetBalanceResponse(this.playerBalance.get(playerId)); } } diff --git a/assembly/game_handler.ts b/assembly/game_handler.ts index 50e50cc..b55104f 100644 --- a/assembly/game_handler.ts +++ b/assembly/game_handler.ts @@ -16,10 +16,9 @@ export function handler(requestBytes: Uint8Array): string { } else if (request instanceof GetBalanceRequest) { return gameManager.getBalance(request.playerId).serialize(); } else if (request instanceof UnknownRequest) { - return new ErrorResponse("").serialize(); + return new ErrorResponse("There is no such type of request.").serialize(); } else { - + unreachable(); + return ""; } - - return ""; } diff --git a/assembly/index.ts b/assembly/index.ts index b9ce111..f4506bf 100644 --- a/assembly/index.ts +++ b/assembly/index.ts @@ -35,5 +35,7 @@ export function invoke(ptr: i32, size: i32): i32 { store(strAddr + i, b); } + memory.free(ptr); + return addr; }