You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Take this sequence of events:
- alice.near calls sign on mpc-signer.near with payload p1.
- The recursive call runs out of gas before an MPC node calls respond on mpc-signer.near for payload p1.
- alice.near sees that her transaction failed.
- alice.near is prevented from calling sign with payload p1 again until the MPC node calls respond for payload p1.
- The MPC node calls respond with signature s1 for payload p1 .
- alice.near does not receive signature s1 since her sign call has already run out of gas.
- alice.near may now resubmit payload p1 for signing, but this restarts the process from step 1.
If this sequence of events is possible, then we have a problem at step 4: because EVM chains enforce sequential nonces, this will effectively lock whatever account is waiting for a signature until signature s1 has been generated and received, and it will require manual nonce resynchronization with the foreign chain (requiring either PoA or light client state proving) every single time a signature fails to be generated in time, since there is a possibility that the signature could still appear on-chain without our knowledge. We do not have the PoA or light client infrastructure to do this.
Optional: User Story
As a user, I want to be able to resubmit the same transaction if the previous call failed.
Description
@encody raised an important issue:
Optional: User Story
As a user, I want to be able to resubmit the same transaction if the previous call failed.
Prior discussion: https://pagodaplatform.slack.com/archives/C04HWL4BJKE/p1707540181322559?thread_ts=1707240635.158159&cid=C04HWL4BJKE
The text was updated successfully, but these errors were encountered: