fix: Prevent transactionApproved event to be emitted when keyring throws during signing#7410
Conversation
transactionApproved event when keyring throws during signingtransactionApproved event to be emitted when keyring throws during signing
matthewwalsh0
requested changes
Dec 9, 2025
Co-authored-by: Matthew Walsh <matthew.walsh@consensys.net>
matthewwalsh0
approved these changes
Dec 9, 2025
This file contains hidden or 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
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.
Explanation
This PR aims to prevent controller to throw
transactionApprovedevent when keyring throws during signing operation. This case is happening when user approve transaction in client but rejects on hardware wallet.References
Checklist
Note
Only emit
TransactionController:transactionApprovedafter successful approval; add test and changelog entry.transactionApprovedevent only when approval state isApproved(skip on signing failure or before-publish skip) insrc/TransactionController.ts.transactionApprovedevent is published when keyring signing rejects insrc/TransactionController.test.ts.TransactionController:transactionApprovedfrom firing if keyring throws during signing.Written by Cursor Bugbot for commit 171eadf. This will update automatically on new commits. Configure here.