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
Imagine we submit a DI request which will eventually fail when executing STF, the DI response will include InvalidTrustedOperationStatus. However, the nonce has been incremented already, but this state mutation will not take effect until the next sidechain block is produced.
It's not guaranteed which one would happen first, the return of DI response or the next block production. In fact, in most of the cases, the DI response will return first.
As a result, if you try to retrieve the nonce of the same request sender (e.g. if you want to construct another TrustedCallSigned), you'll get the old state (before increment), which will eventually cause the execution of the new request to fail due to nonce mismatch.
It's different from the happy path, where the DI will not return until the TOP is of status InSidechainBlock, which guarantees that the state (including the nonce) has been mutated.
✔️ Please set appropriate labels and assignees if applicable.
The text was updated successfully, but these errors were encountered:
Context
This is a subtle bug.
Imagine we submit a DI request which will eventually fail when executing STF, the DI response will include Invalid
TrustedOperationStatus
. However, the nonce has been incremented already, but this state mutation will not take effect until the next sidechain block is produced.It's not guaranteed which one would happen first, the return of DI response or the next block production. In fact, in most of the cases, the DI response will return first.
As a result, if you try to retrieve the nonce of the same request sender (e.g. if you want to construct another
TrustedCallSigned
), you'll get the old state (before increment), which will eventually cause the execution of the new request to fail due to nonce mismatch.It's different from the happy path, where the DI will not return until the TOP is of status
InSidechainBlock
, which guarantees that the state (including the nonce) has been mutated.✔️ Please set appropriate labels and assignees if applicable.
The text was updated successfully, but these errors were encountered: