Open eviterin opened 4 months ago
Just found this and have not had the time yet to investigate.
Console points to contract: setting error modal: {"title":"Contract execution error","message":"SyntaxError: Cannot convert #bigint.20826557750498812955920791981733214788339539821236692591183101691377953231916 to a BigInt","buttons":[{"text":"Dismiss"}]}
Hhm, so the error message points at the serialization we use to persist bigints in the browser storage. It seems like the string representing the bigint is not parsed correctly and is being fed directly to the contract instead of a bigint.
We override the JSON.stringify
and JSON.parse
logic in the setup.ts file.
I think we should try to pinpoint in which scenarios this happens. Clearly it doesn't happen if we don't mint and use users 0 and 1, right?
The standard deployment script should mint decks to index 0 and index 1, so I'm already surprised you manage to mint a deck to index 1? Okay lmao, we never set the claimed flag here: https://github.com/0xFableOrg/0xFable/blob/master/packages/contracts/src/DeckAirdrop.sol — that shouldn't be causing this issue though, but worth trying anyway.
Can you pinpoint the transaction in which this happens? joinGame
, or drawInitialHand
(you should be able to tell by the changing modal text, if not by the console). Mostly likely it's joinGame
and the culprit is the gameID
... not sure what could have changed to make that into a parsed string though... so maybe not.
Good debugging exercise in perspective :D
The culprit here is the saltHash
param in the doJoinGameTransaction
. The function expects a bigint but is being fed a string, from PrivateInfo.saltHash
.
Issue: Player is unable to join a new game.
Build: 5080439
Steps to reproduce:
Expected: Player 2 can join game of player 1.
Reality: Modal displays the following error message: "SyntaxError: Cannot convert #bigint.20826557750498812955920791981733214788339539821236692591183101691377953231916 to a BigInt"