Bump @metamask/transaction-controller to ^23.0.0#22979
Merged
Conversation
…tion-multichain-preview-test-feature-flag-on
…tion-multichain-preview-test-feature-flag-on
…tion-multichain-preview-test-feature-flag-on
…tion-multichain-preview-test-feature-flag-on
Collaborator
|
Policies updated |
…ature-flag-in-env
…ature-flag-in-env
Collaborator
Builds ready [788416c]
Page Load Metrics (2081 ± 145 ms)
Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
…ature-flag-in-env
Collaborator
Builds ready [97e797c]
Page Load Metrics (2109 ± 112 ms)
Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
…tion-multichain-preview-test-feature-flag-on
… into jl/transaction-multichain-preview-test-feature-flag-on-spec
…spec' into jl/transaction-multichain-preview-test-feature-flag-in-env
Contributor
|
@metamaskbot update-policies |
…ature-flag-in-env
Member
Author
|
@metamaskbot update-policies |
…ature-flag-in-env
Member
Author
|
@metamaskbot update-policies |
Collaborator
|
Policies updated |
Collaborator
|
Policy update failed. You can review the logs or retry the policy update here |
…ature-flag-in-env
Collaborator
|
No policy changes |
BelfordZ
approved these changes
Feb 22, 2024
Collaborator
Builds ready [322cc4a]
Page Load Metrics (1722 ± 59 ms)
Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
adonesky1
approved these changes
Feb 22, 2024
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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
Currently, Extension can only process transactions for the active / globally selected network. This makes it not possible to facilitate multichain interactions without constantly rotating the active network or some other workaround that would hurt user experience. We want to keep Metamask competitive by making our multichain experience as seamless and frictionless as possible. This PR introduces an updated version of the TransactionController that is capable of handling transactions across multiple network clients concurrently which lays the groundwork for future multichain changes.
@metamask/transaction-controllerto^23.0.0TRANSACTION_MULTICHAINenvironment variableNOTE: This PR does not introduce a CI pipeline for building and testing with TRANSACTION_MULTICHAIN enabled because the SwapController still needs to be updated to be compatible. This feature flag defaults off and does not change the current user facing TransactionController behavior, so current testing pipelines are sufficient.
Related issues
Fixes: https://github.com/MetaMask/MetaMask-planning/issues/1990
Manual testing steps
Testing the single globally selected transaction flow
There should be no user facing difference in behavior.
Testing the multichain transaction flow
TRANSACTION_MULTICHAINset to 1This demonstrates that the TransactionController was polling the local testnet network for transaction updates while it was not the active / globally selected network and was able to confirm the transaction onchain (as opposed to it confirming the transaction right as it became the active / globally selected network again since Metamask wouldn't be able to reach the local testnet anymore)
Screenshots/Recordings
Before
multichain.off.mov
Notice that the transaction was not confirmed when we switched to mainnet and that when we switched back to localhost that it confirmed instantly when we turned ganache back on, implying that the TransactionController is only polling for the currently active network.
After (with TRANSACTION_MULTICHAIN flag enabled)
multichain.enabled.mov
Notice that the local testnet transaction was not confirmed before we switched to mainnet, but was confirmed by the time we switched back to it despite us being on mainnet and turning off ganache, implying that the TransactionController was polling for the local testnet transaction while mainnet was the globally selected network.
Pre-merge author checklist
Pre-merge reviewer checklist