fix(cherry-pick): Fix wallet_addEthereumChain
/wallet_switchEthereumChain
error handling bug
#25339
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.
Description
A bug was introduced in #24415, where user rejected request errors are not correctly handled in either
wallet_switchEthereumChain
norwallet_addEthereumChain
calls.At first we thought his just resulted in incorrect errors being returned to dapps when users clicked cancel on
wallet_switchEthereumChain
calls but it turns out this incorrect error handling results in very strange and severe bugs when subsequent requests are enqueued in theQueuedRequestController
- the functionality of which is turned on by default in release v12.0.0. See theBefore
video below.Related issues
See: https://consensys.slack.com/archives/CTQAGKY5V/p1718385169900809?thread_ts=1718140104.578969&cid=CTQAGKY5V
Manual testing steps
(have gnosis chain added to the wallet)
Send EIP-1559 Transaction
, see that the badge number in the MM tray icon incrementsScreenshots/Recordings
Before
Screen.Recording.2024-06-14.at.12.13.41.PM.mov
After
Screen.Recording.2024-06-14.at.2.32.04.PM.mov
Pre-merge author checklist
Pre-merge reviewer checklist