pixelaw / web

The (browser) client
MIT License
2 stars 3 forks source link

[ FEAT ] Optimistic nonce Increment #14

Open posaune0423 opened 2 weeks ago

posaune0423 commented 2 weeks ago

Issue

Due to the current implementation of starknetjs, nonce of the account is not incremented before tx confirmed. And this makes user interaction experience poor. So I think pixelaw client should update account nonce optimistically for avoiding duplicated nonce transaction sending and enable fast pixel update experience for users.

Error Message ``` index-HtQOeg78.js:129 Dp: RPC: starknet_addInvokeTransaction with params { "invoke_transaction": { "sender_address": "0x106e31736b5f5fa0188eb5a86ff98b4338d5f513d043ded06ac944432fd7f94", "calldata": [ "0x1", "0x242b049a376eb129e57e860c6646fd80f2b06747b42bb3821064a70c0a76a36", "0x476d5e1b17fd9d508bd621909241c5eb4c67380f3651f54873c5c1f2b891f4", "0x5", "0x0", "0x0", "0x9", "0x52", "0xcda2a2ff" ], "type": "INVOKE", "max_fee": "0xba3204", "version": "0x1", "signature": [ "0x3089cd8daf5874780c6c1e8c155b142527c82267262001db0cc11c1c7e807bb", "0x1da666e4f99c18d206f56f312b5dac0a5b0ca696cbd21ada2d6571432076c52" ], "nonce": "0x14e" } } 52: Invalid transaction nonce: "Invalid transaction nonce of contract at address 0x106e31736b5f5fa0188eb5a86ff98b4338d5f513d043ded06ac944432fd7f94. Account nonce: 0x14f; got: 0x14e." at qI.errorHandler (https://pixelaw-client.vercel.app/assets/index-HtQOeg78.js:38:11095) at qI.fetchEndpoint (https://pixelaw-client.vercel.app/assets/index-HtQOeg78.js:40:216) at async nK.execute (https://pixelaw-client.vercel.app/assets/index-HtQOeg78.js:40:111064) at async Object.interact (https://pixelaw-client.vercel.app/assets/index-HtQOeg78.js:129:28174) at async interact (https://pixelaw-client.vercel.app/assets/index-HtQOeg78.js:129:25001) at async https://pixelaw-client.vercel.app/assets/index-HtQOeg78.js:83:15971 ```

Screen Recording

When I tap slowly, it's just fine. but when I try to tap fast, nonce increment error occuers.

https://github.com/user-attachments/assets/a66810fd-3fba-4f97-ad1a-f3a8794bf420

How to reproduce

You can try here

0xshora commented 2 weeks ago

I think it's a really important issue. Thank you for proposing. Please proceed to fix this.