-
Notifications
You must be signed in to change notification settings - Fork 5.4k
chore: set BIP-44 as default #36254
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
base: main
Are you sure you want to change the base?
chore: set BIP-44 as default #36254
Conversation
…into gar/chore/set-bip44-default
✨ Files requiring CODEOWNER review ✨🔑 @MetaMask/accounts-engineers (12 files, +160 -81)
🧪 @MetaMask/qa (3 files, +51 -2)
|
This comment was marked as spam.
This comment was marked as spam.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as spam.
This comment was marked as spam.
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> [](https://codespaces.new/MetaMask/metamask-extension/pull/36690?quickstart=1) ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I've followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Extension Coding Standards](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Adds `sendRedesign` (disabled) to remote feature flags in the state snapshot and multichain feature flag mocks. > > - **Tests**: > - **Feature Flags**: > - Add `sendRedesign: { enabled: false }` to `RemoteFeatureFlagController.remoteFeatureFlags` in `test/e2e/tests/metrics/state-snapshots/errors-after-init-opt-in-background-state.json`. > - Include `sendRedesign: { enabled: false }` in `test/e2e/tests/multichain-accounts/feature-flag-mocks.ts` disabled mock response. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit a955c9e. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
📊 Page Load Benchmark ResultsCurrent Commit: 📄 Localhost MetaMask Test DappSamples: 100 Summary
📈 Detailed Results
Results generated automatically by MetaMask CI |
Builds ready [33be16c]
UI Startup Metrics (1232 ± 68 ms)
Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
📊 Page Load Benchmark ResultsCurrent Commit: 📄 Localhost MetaMask Test DappSamples: 100 Summary
📈 Detailed Results
Results generated automatically by MetaMask CI |
Builds ready [a401fd4]
UI Startup Metrics (1221 ± 68 ms)
Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
📊 Page Load Benchmark ResultsCurrent Commit: 📄 Localhost MetaMask Test DappSamples: 100 Summary
📈 Detailed Results
Results generated automatically by MetaMask CI |
Builds ready [566f78c]
UI Startup Metrics (1276 ± 77 ms)
Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
📊 Page Load Benchmark ResultsCurrent Commit: 📄 Localhost MetaMask Test DappSamples: 100 Summary
📈 Detailed Results
Results generated automatically by MetaMask CI |
Builds ready [15d7129]
UI Startup Metrics (1248 ± 71 ms)
Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
📊 Page Load Benchmark ResultsCurrent Commit: 📄 Localhost MetaMask Test DappSamples: 100 Summary
📈 Detailed Results
Results generated automatically by MetaMask CI |
Builds ready [cb9a6b4]
UI Startup Metrics (1226 ± 70 ms)
Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
📊 Page Load Benchmark ResultsCurrent Commit: 📄 Localhost MetaMask Test DappSamples: 100 Summary
📈 Detailed Results
Results generated automatically by MetaMask CI |
Builds ready [cb9a6b4]
UI Startup Metrics (1133 ± 70 ms)
Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
📊 Page Load Benchmark ResultsCurrent Commit: 📄 Localhost MetaMask Test DappSamples: 100 Summary
📈 Detailed Results
Results generated automatically by MetaMask CI |
Builds ready [a6e655a]
UI Startup Metrics (1217 ± 74 ms)
Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
21750a2 to
15d7129
Compare
📊 Page Load Benchmark ResultsCurrent Commit: 📄 Localhost MetaMask Test DappSamples: 100 Summary
📈 Detailed Results
Results generated automatically by MetaMask CI |
Builds ready [15d7129]
UI Startup Metrics (1241 ± 75 ms)
Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
📊 Page Load Benchmark ResultsCurrent Commit: 📄 Localhost MetaMask Test DappSamples: 100 Summary
📈 Detailed Results
Results generated automatically by MetaMask CI |
Builds ready [fdf1ac7]
UI Startup Metrics (1227 ± 65 ms)
Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
Description
Force the multichain accounts feature flag to be true by default, as it is "fuse" (cannot be reversed)
Most of this PR is about allowing the tests to continue as if the legacy state was the case, while we update them.
For unit tests, this involves mocking the feature flag wrapper. For E2E tests we do the same thing but by mocking the feature flag API (which can be disabled in a number of instances)
In some instances, this involved changing the metametrics ID used in fixtures, because it interferes with the mock functionality (due to segmentation happening closer to the core)
Changelog
CHANGELOG entry: set BIP-44/multichain accounts as the default regardless of the remote feature flag
Related issues
Fixes: #36678
Fixes: https://consensyssoftware.atlassian.net/jira/software/c/projects/MUL/boards/1258/backlog?assignee=5cfa627c9943230e77ad45eb&selectedIssue=MUL-1089
Manual testing steps
Not user facing
Screenshots/Recordings
Before
N/A
After
N/A
Pre-merge author checklist
Pre-merge reviewer checklist
Note
Default-enables multichain accounts (BIP-44) and updates tests, mocks, helpers, and snapshots to support legacy/testing states and new defaults.
shared/lib/multichain-accounts/remote-feature-flag.tsto default feature enabled when flag is undefined/null/empty; tighten enablement logic and types. Adjust tests to expect defaulttrue.forceBip44Versionoption intest/e2e/helpers.jsto choose BIP-44 state (0/1/2) with corresponding mocks from newtests/multichain-accounts/feature-flag-mocks.forceBip44Version: 2in multiple E2E suites; remove inline multichain flag mocks where replaced; skip some multichain/BTC suites.waitForMultipleSelectorsto accept{ timeout, state }and fix internal waits.AccountListPageandMultichainAccountDetailsPage; update selectors.getIsMultichainAccountsState1/2Enabled) tofalsein numerous unit tests to preserve legacy behavior; update snapshots (e.g., network row rendering, font-weight500, header changes).MOCK_META_METRICS_IDandloginWithoutBalanceValidationwhere needed; adjust timings and state snapshots.Written by Cursor Bugbot for commit fdf1ac7. This will update automatically on new commits. Configure here.