fix: Don't emit events from failed transactions #2806
Merged
+9
−4
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.
I noticed that we emit events from the VM even when a transaction fails. This is very difficult to write tests for because we don't display events when a transaction fails, but I was able to verify the following behavior BEFORE this fix:
r/sys/validators
will be processed and the state updated as normal, even if the transaction that emitted them failsCorrect me if I'm wrong, but I don't think we want to persist or take any other actions on events sourced from failing transactions.
I'm open to suggestions on how to write tests for this, but the fix should be self-explanatory.
Contributors' checklist...
BREAKING CHANGE: xxx
message was included in the description