Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unprovable transactions not dropped #2112

Closed
LHerskind opened this issue Sep 8, 2023 · 1 comment
Closed

Unprovable transactions not dropped #2112

LHerskind opened this issue Sep 8, 2023 · 1 comment
Labels
T-bug Type: Bug. Something is broken.

Comments

@LHerskind
Copy link
Contributor

If having a contract that emits nullifiers without consuming a note (in my case to ensure non-replayable) you can successfully execute transaction simulations that replay the payload without being able to build a valid block because it is trying a double-spend.

This is to be expected, but unexpectedly, the transaction is not dropped, meaning that the sequencer will run into an infinite loop where it tries to build an unprovable block until it times out. This make it quite impractical to properly test replays that are not caught by the application circuit itself.

@LHerskind LHerskind added the T-bug Type: Bug. Something is broken. label Sep 8, 2023
@LHerskind LHerskind added this to the 📢 Initial Public Sandbox Release milestone Sep 8, 2023
@LHerskind
Copy link
Contributor Author

This was fixed in #2069 by doing a second round of dropping txs with duplicate nullifiers after the public transactions were executed. The sequencer seemed to rely on the assumption that only private transactions could emit nullifiers (errors should arise with custom nullifiers or when consuming l1 -> l2 messages)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
T-bug Type: Bug. Something is broken.
Projects
Archived in project
Development

No branches or pull requests

1 participant