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
Simulate: Properly handle failing clear state programs #5842
Merged
jannotti
merged 5 commits into
algorand:master
from
jasonpaulos:simulate-clear-state-fix
Dec 8, 2023
Merged
Simulate: Properly handle failing clear state programs #5842
jannotti
merged 5 commits into
algorand:master
from
jasonpaulos:simulate-clear-state-fix
Dec 8, 2023
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## master #5842 +/- ##
==========================================
+ Coverage 55.92% 55.95% +0.03%
==========================================
Files 477 477
Lines 67371 67382 +11
==========================================
+ Hits 37676 37705 +29
+ Misses 27139 27125 -14
+ Partials 2556 2552 -4 ☔ View full report in Codecov by Sentry. |
jannotti
previously approved these changes
Dec 6, 2023
algorandskiy
reviewed
Dec 7, 2023
algorandskiy
approved these changes
Dec 7, 2023
jannotti
approved these changes
Dec 8, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
Currently the simulate endpoint does not properly handle failing clear state programs. Unlike every other type of program execution, if a clear state program rejects or errors, the transaction group continues and can still succeed. Any stateful operations the clear state program performed before it failed are rolled back.
Simulate incorrectly handled failing clear state programs in the following ways:
Solution
Implementation fixes for items 1 & 2 have been added in this PR.
Additionally, for item 3, the fields
clear-state-rollback
andclear-state-rollback-error
have been added to theSimulationTransactionExecTrace
object. Ifclear-state-rollback
is true, this indicates to trace consumers that they must discard all state changes from the clear state trace after it finishes.Test Plan
Unit tests added