Repository: MetaMask/metamask-extension
Pull request #31711: chore: Bump network-controller to v23
Author: login: mcmire
Labels: name: release-12.18.0
description: Issue or pull request that will be included in release 12.18.0
Created: 2025-04-08T14:22:20Z | Merged: 2025-04-10T19:48:32Z

<!--
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?
-->

We are splitting this off from the RPC failover PR to unblock other controller upgrades.

Additionally, we are pinning `controller-utils` to 11.7.0

[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/31711?quickstart=1)

## **Related issues**

N/A

## **Manual testing steps**

There should be no functional changes, everything should work as-is.

## **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**

- [x] 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).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable
- [x] 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.



Diff:
diff --git a/.yarn/patches/@metamask-network-controller-npm-22.1.1-09b6510f1e.patch b/.yarn/patches/@metamask-network-controller-npm-23.2.0-0223efb98a.patch
similarity index 84%
rename from .yarn/patches/@metamask-network-controller-npm-22.1.1-09b6510f1e.patch
rename to .yarn/patches/@metamask-network-controller-npm-23.2.0-0223efb98a.patch
index a1a3e7401c0c..fc9e7725b5b4 100644
--- a/.yarn/patches/@metamask-network-controller-npm-22.1.1-09b6510f1e.patch
+++ b/.yarn/patches/@metamask-network-controller-npm-23.2.0-0223efb98a.patch
@@ -9,10 +9,10 @@ index 0000000000000000000000000000000000000000..376255036ca54b83a3f3c3e0277c2666
 +This patch is part of a temporary fix that will be reverted soon to make way for a more permanent solution. https://github.com/MetaMask/metamask-extension/pull/23005
 +You can see the changes before compilation on this branch: https://github.com/MetaMask/core/compare/pnf/ext-23622-review?expand=1
 diff --git a/dist/NetworkController.cjs b/dist/NetworkController.cjs
-index cc9793f576eb39a51ab141b7d03de57cf99e5570..184153067f2bbd58ea76d7db33c2af56245cd8c0 100644
+index ca0fdc1a5984b51ba6d2cc50655c2b8c789a6be2..c6044c6799a3e444b249c1a1607688cc94758397 100644
 --- a/dist/NetworkController.cjs
 +++ b/dist/NetworkController.cjs
-@@ -422,7 +422,6 @@ class NetworkController extends base_controller_1.BaseController {
+@@ -515,7 +515,6 @@ class NetworkController extends base_controller_1.BaseController {
       */
      async initializeProvider() {
          __classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_applyNetworkSelection).call(this, this.state.selectedNetworkClientId);
@@ -21,10 +21,10 @@ index cc9793f576eb39a51ab141b7d03de57cf99e5570..184153067f2bbd58ea76d7db33c2af56
      /**
       * Refreshes the network meta with EIP-1559 support and the network status
 diff --git a/dist/NetworkController.mjs b/dist/NetworkController.mjs
-index 806f32edeffaad9f7eb1cafa4184368ec95f63e7..7ba60e613ec8de7d273c32282be564f36873cbd2 100644
+index 0efca6773120ea8be324446febfbcee68ca4281d..aecd1d9bf31433742d315c616355924fbd8dc3b7 100644
 --- a/dist/NetworkController.mjs
 +++ b/dist/NetworkController.mjs
-@@ -397,7 +397,6 @@ export class NetworkController extends BaseController {
+@@ -491,7 +491,6 @@ export class NetworkController extends BaseController {
       */
      async initializeProvider() {
          __classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_applyNetworkSelection).call(this, this.state.selectedNetworkClientId);
diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js
index 8d2f63b52b4e..baf3b1909a78 100644
--- a/app/scripts/metamask-controller.js
+++ b/app/scripts/metamask-controller.js
@@ -674,6 +674,10 @@ export default class MetamaskController extends EventEmitter {
       messenger: networkControllerMessenger,
       state: initialNetworkControllerState,
       infuraProjectId: opts.infuraProjectId,
+      getRpcServiceOptions: () => ({
+        fetch: globalThis.fetch.bind(globalThis),
+        btoa: globalThis.btoa.bind(globalThis),
+      }),
     });
     this.networkController.initializeProvider();
 
diff --git a/lavamoat/browserify/beta/policy.json b/lavamoat/browserify/beta/policy.json
index ea64c933a253..4f118840aec2 100644
--- a/lavamoat/browserify/beta/policy.json
+++ b/lavamoat/browserify/beta/policy.json
@@ -158,19 +158,6 @@
         "eth-lattice-keyring>@ethereumjs/util>micro-ftch": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@ethereumjs/util": {
-      "globals": {
-        "console.warn": true
-      },
-      "packages": {
-        "@keystonehq/metamask-airgapped-keyring>@ethereumjs/rlp": true,
-        "browserify>buffer": true,
-        "@ethereumjs/tx>ethereum-cryptography": true,
-        "webpack>events": true,
-        "browserify>insert-module-globals>is-buffer": true,
-        "eth-lattice-keyring>@ethereumjs/util>micro-ftch": true
-      }
-    },
     "@metamask/eth-ledger-bridge-keyring>@metamask/eth-sig-util>@ethereumjs/util": {
       "globals": {
         "console.warn": true
@@ -987,12 +974,6 @@
         "@metamask/utils": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@metamask/abi-utils": {
-      "packages": {
-        "@metamask/utils>@metamask/superstruct": true,
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@metamask/abi-utils>@metamask/utils": true
-      }
-    },
     "@metamask/eth-ledger-bridge-keyring>@metamask/eth-sig-util>@metamask/abi-utils": {
       "packages": {
         "@metamask/utils>@metamask/superstruct": true,
@@ -1117,14 +1098,6 @@
         "immer": true
       }
     },
-    "@metamask/network-controller>@metamask/base-controller": {
-      "globals": {
-        "setTimeout": true
-      },
-      "packages": {
-        "immer": true
-      }
-    },
     "@metamask/ppom-validator>@metamask/base-controller": {
       "globals": {
         "setTimeout": true
@@ -1305,22 +1278,6 @@
         "@metamask/eth-json-rpc-middleware>safe-stable-stringify": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware": {
-      "globals": {
-        "URL": true,
-        "console.error": true,
-        "setTimeout": true
-      },
-      "packages": {
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util": true,
-        "@metamask/json-rpc-engine": true,
-        "@metamask/rpc-errors": true,
-        "@metamask/utils>@metamask/superstruct": true,
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/utils": true,
-        "@metamask/eth-json-rpc-middleware>klona": true,
-        "@metamask/eth-json-rpc-middleware>safe-stable-stringify": true
-      }
-    },
     "@metamask/eth-json-rpc-provider": {
       "packages": {
         "@metamask/json-rpc-engine": true,
@@ -1390,18 +1347,6 @@
         "@metamask/eth-sig-util>tweetnacl": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util": {
-      "packages": {
-        "@keystonehq/metamask-airgapped-keyring>@ethereumjs/rlp": true,
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@ethereumjs/util": true,
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@metamask/abi-utils": true,
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@metamask/utils": true,
-        "@metamask/utils>@scure/base": true,
-        "browserify>buffer": true,
-        "@ethereumjs/tx>ethereum-cryptography": true,
-        "@metamask/eth-sig-util>tweetnacl": true
-      }
-    },
     "@metamask/eth-ledger-bridge-keyring>@metamask/eth-sig-util": {
       "packages": {
         "@metamask/eth-ledger-bridge-keyring>@metamask/eth-sig-util>@ethereumjs/rlp": true,
@@ -1785,23 +1730,24 @@
     },
     "@metamask/network-controller": {
       "globals": {
-        "btoa": true,
-        "fetch": true,
+        "URL": true,
         "setTimeout": true
       },
       "packages": {
-        "@metamask/network-controller>@metamask/base-controller": true,
+        "@metamask/base-controller": true,
         "@metamask/controller-utils": true,
         "@metamask/eth-token-tracker>@metamask/eth-block-tracker": true,
         "@metamask/network-controller>@metamask/eth-json-rpc-infura": true,
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware": true,
+        "@metamask/eth-json-rpc-middleware": true,
         "@metamask/eth-json-rpc-provider": true,
         "@metamask/controller-utils>@metamask/eth-query": true,
         "@metamask/json-rpc-engine": true,
         "@metamask/rpc-errors": true,
         "@metamask/network-controller>@metamask/swappable-obj-proxy": true,
-        "@metamask/network-controller>@metamask/utils": true,
+        "@metamask/utils": true,
+        "addons-linter>deepmerge": true,
         "eslint>fast-deep-equal": true,
+        "lodash": true,
         "reselect": true,
         "uri-js": true,
         "uuid": true
@@ -2434,21 +2380,6 @@
         "semver": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@metamask/abi-utils>@metamask/utils": {
-      "globals": {
-        "TextDecoder": true,
-        "TextEncoder": true
-      },
-      "packages": {
-        "@metamask/utils>@metamask/superstruct": true,
-        "@noble/hashes": true,
-        "@metamask/utils>@scure/base": true,
-        "browserify>buffer": true,
-        "nock>debug": true,
-        "@metamask/utils>pony-cause": true,
-        "semver": true
-      }
-    },
     "@metamask/browser-passworder>@metamask/utils": {
       "globals": {
         "TextDecoder": true,
@@ -2464,21 +2395,6 @@
         "semver": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/utils": {
-      "globals": {
-        "TextDecoder": true,
-        "TextEncoder": true
-      },
-      "packages": {
-        "@metamask/utils>@metamask/superstruct": true,
-        "@noble/hashes": true,
-        "@metamask/utils>@scure/base": true,
-        "browserify>buffer": true,
-        "nock>debug": true,
-        "@metamask/utils>pony-cause": true,
-        "semver": true
-      }
-    },
     "@metamask/eth-sig-util>@metamask/utils": {
       "globals": {
         "TextDecoder": true,
@@ -2494,36 +2410,6 @@
         "semver": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@metamask/utils": {
-      "globals": {
-        "TextDecoder": true,
-        "TextEncoder": true
-      },
-      "packages": {
-        "@metamask/utils>@metamask/superstruct": true,
-        "@noble/hashes": true,
-        "@metamask/utils>@scure/base": true,
-        "browserify>buffer": true,
-        "nock>debug": true,
-        "@metamask/utils>pony-cause": true,
-        "semver": true
-      }
-    },
-    "@metamask/network-controller>@metamask/utils": {
-      "globals": {
-        "TextDecoder": true,
-        "TextEncoder": true
-      },
-      "packages": {
-        "@metamask/utils>@metamask/superstruct": true,
-        "@noble/hashes": true,
-        "@metamask/utils>@scure/base": true,
-        "browserify>buffer": true,
-        "nock>debug": true,
-        "@metamask/utils>pony-cause": true,
-        "semver": true
-      }
-    },
     "@metamask/queued-request-controller>@metamask/utils": {
       "globals": {
         "TextDecoder": true,
diff --git a/lavamoat/browserify/flask/policy.json b/lavamoat/browserify/flask/policy.json
index ea64c933a253..4f118840aec2 100644
--- a/lavamoat/browserify/flask/policy.json
+++ b/lavamoat/browserify/flask/policy.json
@@ -158,19 +158,6 @@
         "eth-lattice-keyring>@ethereumjs/util>micro-ftch": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@ethereumjs/util": {
-      "globals": {
-        "console.warn": true
-      },
-      "packages": {
-        "@keystonehq/metamask-airgapped-keyring>@ethereumjs/rlp": true,
-        "browserify>buffer": true,
-        "@ethereumjs/tx>ethereum-cryptography": true,
-        "webpack>events": true,
-        "browserify>insert-module-globals>is-buffer": true,
-        "eth-lattice-keyring>@ethereumjs/util>micro-ftch": true
-      }
-    },
     "@metamask/eth-ledger-bridge-keyring>@metamask/eth-sig-util>@ethereumjs/util": {
       "globals": {
         "console.warn": true
@@ -987,12 +974,6 @@
         "@metamask/utils": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@metamask/abi-utils": {
-      "packages": {
-        "@metamask/utils>@metamask/superstruct": true,
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@metamask/abi-utils>@metamask/utils": true
-      }
-    },
     "@metamask/eth-ledger-bridge-keyring>@metamask/eth-sig-util>@metamask/abi-utils": {
       "packages": {
         "@metamask/utils>@metamask/superstruct": true,
@@ -1117,14 +1098,6 @@
         "immer": true
       }
     },
-    "@metamask/network-controller>@metamask/base-controller": {
-      "globals": {
-        "setTimeout": true
-      },
-      "packages": {
-        "immer": true
-      }
-    },
     "@metamask/ppom-validator>@metamask/base-controller": {
       "globals": {
         "setTimeout": true
@@ -1305,22 +1278,6 @@
         "@metamask/eth-json-rpc-middleware>safe-stable-stringify": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware": {
-      "globals": {
-        "URL": true,
-        "console.error": true,
-        "setTimeout": true
-      },
-      "packages": {
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util": true,
-        "@metamask/json-rpc-engine": true,
-        "@metamask/rpc-errors": true,
-        "@metamask/utils>@metamask/superstruct": true,
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/utils": true,
-        "@metamask/eth-json-rpc-middleware>klona": true,
-        "@metamask/eth-json-rpc-middleware>safe-stable-stringify": true
-      }
-    },
     "@metamask/eth-json-rpc-provider": {
       "packages": {
         "@metamask/json-rpc-engine": true,
@@ -1390,18 +1347,6 @@
         "@metamask/eth-sig-util>tweetnacl": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util": {
-      "packages": {
-        "@keystonehq/metamask-airgapped-keyring>@ethereumjs/rlp": true,
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@ethereumjs/util": true,
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@metamask/abi-utils": true,
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@metamask/utils": true,
-        "@metamask/utils>@scure/base": true,
-        "browserify>buffer": true,
-        "@ethereumjs/tx>ethereum-cryptography": true,
-        "@metamask/eth-sig-util>tweetnacl": true
-      }
-    },
     "@metamask/eth-ledger-bridge-keyring>@metamask/eth-sig-util": {
       "packages": {
         "@metamask/eth-ledger-bridge-keyring>@metamask/eth-sig-util>@ethereumjs/rlp": true,
@@ -1785,23 +1730,24 @@
     },
     "@metamask/network-controller": {
       "globals": {
-        "btoa": true,
-        "fetch": true,
+        "URL": true,
         "setTimeout": true
       },
       "packages": {
-        "@metamask/network-controller>@metamask/base-controller": true,
+        "@metamask/base-controller": true,
         "@metamask/controller-utils": true,
         "@metamask/eth-token-tracker>@metamask/eth-block-tracker": true,
         "@metamask/network-controller>@metamask/eth-json-rpc-infura": true,
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware": true,
+        "@metamask/eth-json-rpc-middleware": true,
         "@metamask/eth-json-rpc-provider": true,
         "@metamask/controller-utils>@metamask/eth-query": true,
         "@metamask/json-rpc-engine": true,
         "@metamask/rpc-errors": true,
         "@metamask/network-controller>@metamask/swappable-obj-proxy": true,
-        "@metamask/network-controller>@metamask/utils": true,
+        "@metamask/utils": true,
+        "addons-linter>deepmerge": true,
         "eslint>fast-deep-equal": true,
+        "lodash": true,
         "reselect": true,
         "uri-js": true,
         "uuid": true
@@ -2434,21 +2380,6 @@
         "semver": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@metamask/abi-utils>@metamask/utils": {
-      "globals": {
-        "TextDecoder": true,
-        "TextEncoder": true
-      },
-      "packages": {
-        "@metamask/utils>@metamask/superstruct": true,
-        "@noble/hashes": true,
-        "@metamask/utils>@scure/base": true,
-        "browserify>buffer": true,
-        "nock>debug": true,
-        "@metamask/utils>pony-cause": true,
-        "semver": true
-      }
-    },
     "@metamask/browser-passworder>@metamask/utils": {
       "globals": {
         "TextDecoder": true,
@@ -2464,21 +2395,6 @@
         "semver": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/utils": {
-      "globals": {
-        "TextDecoder": true,
-        "TextEncoder": true
-      },
-      "packages": {
-        "@metamask/utils>@metamask/superstruct": true,
-        "@noble/hashes": true,
-        "@metamask/utils>@scure/base": true,
-        "browserify>buffer": true,
-        "nock>debug": true,
-        "@metamask/utils>pony-cause": true,
-        "semver": true
-      }
-    },
     "@metamask/eth-sig-util>@metamask/utils": {
       "globals": {
         "TextDecoder": true,
@@ -2494,36 +2410,6 @@
         "semver": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@metamask/utils": {
-      "globals": {
-        "TextDecoder": true,
-        "TextEncoder": true
-      },
-      "packages": {
-        "@metamask/utils>@metamask/superstruct": true,
-        "@noble/hashes": true,
-        "@metamask/utils>@scure/base": true,
-        "browserify>buffer": true,
-        "nock>debug": true,
-        "@metamask/utils>pony-cause": true,
-        "semver": true
-      }
-    },
-    "@metamask/network-controller>@metamask/utils": {
-      "globals": {
-        "TextDecoder": true,
-        "TextEncoder": true
-      },
-      "packages": {
-        "@metamask/utils>@metamask/superstruct": true,
-        "@noble/hashes": true,
-        "@metamask/utils>@scure/base": true,
-        "browserify>buffer": true,
-        "nock>debug": true,
-        "@metamask/utils>pony-cause": true,
-        "semver": true
-      }
-    },
     "@metamask/queued-request-controller>@metamask/utils": {
       "globals": {
         "TextDecoder": true,
diff --git a/lavamoat/browserify/main/policy.json b/lavamoat/browserify/main/policy.json
index ea64c933a253..4f118840aec2 100644
--- a/lavamoat/browserify/main/policy.json
+++ b/lavamoat/browserify/main/policy.json
@@ -158,19 +158,6 @@
         "eth-lattice-keyring>@ethereumjs/util>micro-ftch": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@ethereumjs/util": {
-      "globals": {
-        "console.warn": true
-      },
-      "packages": {
-        "@keystonehq/metamask-airgapped-keyring>@ethereumjs/rlp": true,
-        "browserify>buffer": true,
-        "@ethereumjs/tx>ethereum-cryptography": true,
-        "webpack>events": true,
-        "browserify>insert-module-globals>is-buffer": true,
-        "eth-lattice-keyring>@ethereumjs/util>micro-ftch": true
-      }
-    },
     "@metamask/eth-ledger-bridge-keyring>@metamask/eth-sig-util>@ethereumjs/util": {
       "globals": {
         "console.warn": true
@@ -987,12 +974,6 @@
         "@metamask/utils": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@metamask/abi-utils": {
-      "packages": {
-        "@metamask/utils>@metamask/superstruct": true,
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@metamask/abi-utils>@metamask/utils": true
-      }
-    },
     "@metamask/eth-ledger-bridge-keyring>@metamask/eth-sig-util>@metamask/abi-utils": {
       "packages": {
         "@metamask/utils>@metamask/superstruct": true,
@@ -1117,14 +1098,6 @@
         "immer": true
       }
     },
-    "@metamask/network-controller>@metamask/base-controller": {
-      "globals": {
-        "setTimeout": true
-      },
-      "packages": {
-        "immer": true
-      }
-    },
     "@metamask/ppom-validator>@metamask/base-controller": {
       "globals": {
         "setTimeout": true
@@ -1305,22 +1278,6 @@
         "@metamask/eth-json-rpc-middleware>safe-stable-stringify": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware": {
-      "globals": {
-        "URL": true,
-        "console.error": true,
-        "setTimeout": true
-      },
-      "packages": {
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util": true,
-        "@metamask/json-rpc-engine": true,
-        "@metamask/rpc-errors": true,
-        "@metamask/utils>@metamask/superstruct": true,
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/utils": true,
-        "@metamask/eth-json-rpc-middleware>klona": true,
-        "@metamask/eth-json-rpc-middleware>safe-stable-stringify": true
-      }
-    },
     "@metamask/eth-json-rpc-provider": {
       "packages": {
         "@metamask/json-rpc-engine": true,
@@ -1390,18 +1347,6 @@
         "@metamask/eth-sig-util>tweetnacl": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util": {
-      "packages": {
-        "@keystonehq/metamask-airgapped-keyring>@ethereumjs/rlp": true,
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@ethereumjs/util": true,
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@metamask/abi-utils": true,
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@metamask/utils": true,
-        "@metamask/utils>@scure/base": true,
-        "browserify>buffer": true,
-        "@ethereumjs/tx>ethereum-cryptography": true,
-        "@metamask/eth-sig-util>tweetnacl": true
-      }
-    },
     "@metamask/eth-ledger-bridge-keyring>@metamask/eth-sig-util": {
       "packages": {
         "@metamask/eth-ledger-bridge-keyring>@metamask/eth-sig-util>@ethereumjs/rlp": true,
@@ -1785,23 +1730,24 @@
     },
     "@metamask/network-controller": {
       "globals": {
-        "btoa": true,
-        "fetch": true,
+        "URL": true,
         "setTimeout": true
       },
       "packages": {
-        "@metamask/network-controller>@metamask/base-controller": true,
+        "@metamask/base-controller": true,
         "@metamask/controller-utils": true,
         "@metamask/eth-token-tracker>@metamask/eth-block-tracker": true,
         "@metamask/network-controller>@metamask/eth-json-rpc-infura": true,
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware": true,
+        "@metamask/eth-json-rpc-middleware": true,
         "@metamask/eth-json-rpc-provider": true,
         "@metamask/controller-utils>@metamask/eth-query": true,
         "@metamask/json-rpc-engine": true,
         "@metamask/rpc-errors": true,
         "@metamask/network-controller>@metamask/swappable-obj-proxy": true,
-        "@metamask/network-controller>@metamask/utils": true,
+        "@metamask/utils": true,
+        "addons-linter>deepmerge": true,
         "eslint>fast-deep-equal": true,
+        "lodash": true,
         "reselect": true,
         "uri-js": true,
         "uuid": true
@@ -2434,21 +2380,6 @@
         "semver": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@metamask/abi-utils>@metamask/utils": {
-      "globals": {
-        "TextDecoder": true,
-        "TextEncoder": true
-      },
-      "packages": {
-        "@metamask/utils>@metamask/superstruct": true,
-        "@noble/hashes": true,
-        "@metamask/utils>@scure/base": true,
-        "browserify>buffer": true,
-        "nock>debug": true,
-        "@metamask/utils>pony-cause": true,
-        "semver": true
-      }
-    },
     "@metamask/browser-passworder>@metamask/utils": {
       "globals": {
         "TextDecoder": true,
@@ -2464,21 +2395,6 @@
         "semver": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/utils": {
-      "globals": {
-        "TextDecoder": true,
-        "TextEncoder": true
-      },
-      "packages": {
-        "@metamask/utils>@metamask/superstruct": true,
-        "@noble/hashes": true,
-        "@metamask/utils>@scure/base": true,
-        "browserify>buffer": true,
-        "nock>debug": true,
-        "@metamask/utils>pony-cause": true,
-        "semver": true
-      }
-    },
     "@metamask/eth-sig-util>@metamask/utils": {
       "globals": {
         "TextDecoder": true,
@@ -2494,36 +2410,6 @@
         "semver": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@metamask/utils": {
-      "globals": {
-        "TextDecoder": true,
-        "TextEncoder": true
-      },
-      "packages": {
-        "@metamask/utils>@metamask/superstruct": true,
-        "@noble/hashes": true,
-        "@metamask/utils>@scure/base": true,
-        "browserify>buffer": true,
-        "nock>debug": true,
-        "@metamask/utils>pony-cause": true,
-        "semver": true
-      }
-    },
-    "@metamask/network-controller>@metamask/utils": {
-      "globals": {
-        "TextDecoder": true,
-        "TextEncoder": true
-      },
-      "packages": {
-        "@metamask/utils>@metamask/superstruct": true,
-        "@noble/hashes": true,
-        "@metamask/utils>@scure/base": true,
-        "browserify>buffer": true,
-        "nock>debug": true,
-        "@metamask/utils>pony-cause": true,
-        "semver": true
-      }
-    },
     "@metamask/queued-request-controller>@metamask/utils": {
       "globals": {
         "TextDecoder": true,
diff --git a/lavamoat/browserify/mmi/policy.json b/lavamoat/browserify/mmi/policy.json
index 9f8e1ecf75b3..027494548150 100644
--- a/lavamoat/browserify/mmi/policy.json
+++ b/lavamoat/browserify/mmi/policy.json
@@ -197,19 +197,6 @@
         "eth-lattice-keyring>@ethereumjs/util>micro-ftch": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@ethereumjs/util": {
-      "globals": {
-        "console.warn": true
-      },
-      "packages": {
-        "@keystonehq/metamask-airgapped-keyring>@ethereumjs/rlp": true,
-        "browserify>buffer": true,
-        "@ethereumjs/tx>ethereum-cryptography": true,
-        "webpack>events": true,
-        "browserify>insert-module-globals>is-buffer": true,
-        "eth-lattice-keyring>@ethereumjs/util>micro-ftch": true
-      }
-    },
     "@metamask/eth-ledger-bridge-keyring>@metamask/eth-sig-util>@ethereumjs/util": {
       "globals": {
         "console.warn": true
@@ -1118,12 +1105,6 @@
         "@metamask/utils": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@metamask/abi-utils": {
-      "packages": {
-        "@metamask/utils>@metamask/superstruct": true,
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@metamask/abi-utils>@metamask/utils": true
-      }
-    },
     "@metamask/eth-ledger-bridge-keyring>@metamask/eth-sig-util>@metamask/abi-utils": {
       "packages": {
         "@metamask/utils>@metamask/superstruct": true,
@@ -1248,14 +1229,6 @@
         "immer": true
       }
     },
-    "@metamask/network-controller>@metamask/base-controller": {
-      "globals": {
-        "setTimeout": true
-      },
-      "packages": {
-        "immer": true
-      }
-    },
     "@metamask/ppom-validator>@metamask/base-controller": {
       "globals": {
         "setTimeout": true
@@ -1436,22 +1409,6 @@
         "@metamask/eth-json-rpc-middleware>safe-stable-stringify": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware": {
-      "globals": {
-        "URL": true,
-        "console.error": true,
-        "setTimeout": true
-      },
-      "packages": {
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util": true,
-        "@metamask/json-rpc-engine": true,
-        "@metamask/rpc-errors": true,
-        "@metamask/utils>@metamask/superstruct": true,
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/utils": true,
-        "@metamask/eth-json-rpc-middleware>klona": true,
-        "@metamask/eth-json-rpc-middleware>safe-stable-stringify": true
-      }
-    },
     "@metamask/eth-json-rpc-provider": {
       "packages": {
         "@metamask/json-rpc-engine": true,
@@ -1521,18 +1478,6 @@
         "@metamask/eth-sig-util>tweetnacl": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util": {
-      "packages": {
-        "@keystonehq/metamask-airgapped-keyring>@ethereumjs/rlp": true,
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@ethereumjs/util": true,
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@metamask/abi-utils": true,
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@metamask/utils": true,
-        "@metamask/utils>@scure/base": true,
-        "browserify>buffer": true,
-        "@ethereumjs/tx>ethereum-cryptography": true,
-        "@metamask/eth-sig-util>tweetnacl": true
-      }
-    },
     "@metamask/eth-ledger-bridge-keyring>@metamask/eth-sig-util": {
       "packages": {
         "@metamask/eth-ledger-bridge-keyring>@metamask/eth-sig-util>@ethereumjs/rlp": true,
@@ -1916,23 +1861,24 @@
     },
     "@metamask/network-controller": {
       "globals": {
-        "btoa": true,
-        "fetch": true,
+        "URL": true,
         "setTimeout": true
       },
       "packages": {
-        "@metamask/network-controller>@metamask/base-controller": true,
+        "@metamask/base-controller": true,
         "@metamask/controller-utils": true,
         "@metamask/eth-token-tracker>@metamask/eth-block-tracker": true,
         "@metamask/network-controller>@metamask/eth-json-rpc-infura": true,
-        "@metamask/network-controller>@metamask/eth-json-rpc-middleware": true,
+        "@metamask/eth-json-rpc-middleware": true,
         "@metamask/eth-json-rpc-provider": true,
         "@metamask/controller-utils>@metamask/eth-query": true,
         "@metamask/json-rpc-engine": true,
         "@metamask/rpc-errors": true,
         "@metamask/network-controller>@metamask/swappable-obj-proxy": true,
-        "@metamask/network-controller>@metamask/utils": true,
+        "@metamask/utils": true,
+        "addons-linter>deepmerge": true,
         "eslint>fast-deep-equal": true,
+        "lodash": true,
         "reselect": true,
         "uri-js": true,
         "uuid": true
@@ -2565,21 +2511,6 @@
         "semver": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@metamask/abi-utils>@metamask/utils": {
-      "globals": {
-        "TextDecoder": true,
-        "TextEncoder": true
-      },
-      "packages": {
-        "@metamask/utils>@metamask/superstruct": true,
-        "@noble/hashes": true,
-        "@metamask/utils>@scure/base": true,
-        "browserify>buffer": true,
-        "nock>debug": true,
-        "@metamask/utils>pony-cause": true,
-        "semver": true
-      }
-    },
     "@metamask/browser-passworder>@metamask/utils": {
       "globals": {
         "TextDecoder": true,
@@ -2595,21 +2526,6 @@
         "semver": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/utils": {
-      "globals": {
-        "TextDecoder": true,
-        "TextEncoder": true
-      },
-      "packages": {
-        "@metamask/utils>@metamask/superstruct": true,
-        "@noble/hashes": true,
-        "@metamask/utils>@scure/base": true,
-        "browserify>buffer": true,
-        "nock>debug": true,
-        "@metamask/utils>pony-cause": true,
-        "semver": true
-      }
-    },
     "@metamask/eth-sig-util>@metamask/utils": {
       "globals": {
         "TextDecoder": true,
@@ -2625,36 +2541,6 @@
         "semver": true
       }
     },
-    "@metamask/network-controller>@metamask/eth-json-rpc-middleware>@metamask/eth-sig-util>@metamask/utils": {
-      "globals": {
-        "TextDecoder": true,
-        "TextEncoder": true
-      },
-      "packages": {
-        "@metamask/utils>@metamask/superstruct": true,
-        "@noble/hashes": true,
-        "@metamask/utils>@scure/base": true,
-        "browserify>buffer": true,
-        "nock>debug": true,
-        "@metamask/utils>pony-cause": true,
-        "semver": true
-      }
-    },
-    "@metamask/network-controller>@metamask/utils": {
-      "globals": {
-        "TextDecoder": true,
-        "TextEncoder": true
-      },
-      "packages": {
-        "@metamask/utils>@metamask/superstruct": true,
-        "@noble/hashes": true,
-        "@metamask/utils>@scure/base": true,
-        "browserify>buffer": true,
-        "nock>debug": true,
-        "@metamask/utils>pony-cause": true,
-        "semver": true
-      }
-    },
     "@metamask/queued-request-controller>@metamask/utils": {
       "globals": {
         "TextDecoder": true,
diff --git a/package.json b/package.json
index dc5866025c81..20abd3503f5d 100644
--- a/package.json
+++ b/package.json
@@ -266,7 +266,7 @@
     "@metamask/browser-passworder": "^4.3.0",
     "@metamask/chain-agnostic-permission": "^0.3.0",
     "@metamask/contract-metadata": "^2.5.0",
-    "@metamask/controller-utils": "^11.4.0",
+    "@metamask/controller-utils": "^11.7.0",
     "@metamask/design-tokens": "^7.0.0",
     "@metamask/ens-controller": "^15.0.2",
     "@metamask/ens-resolver-snap": "^0.1.2",
@@ -296,7 +296,7 @@
     "@metamask/multichain-network-controller": "^0.1.0",
     "@metamask/multichain-transactions-controller": "^0.7.2",
     "@metamask/name-controller": "^8.0.3",
-    "@metamask/network-controller": "patch:@metamask/network-controller@npm%3A22.1.1#~/.yarn/patches/@metamask-network-controller-npm-22.1.1-09b6510f1e.patch",
+    "@metamask/network-controller": "patch:@metamask/network-controller@npm%3A23.2.0#~/.yarn/patches/@metamask-network-controller-npm-23.2.0-0223efb98a.patch",
     "@metamask/notification-services-controller": "^5.0.1",
     "@metamask/object-multiplex": "^2.0.0",
     "@metamask/obs-store": "^9.0.0",
diff --git a/test/e2e/run-api-specs-multichain.ts b/test/e2e/run-api-specs-multichain.ts
index 2f5d883d9fa5..e0eb618af2f3 100644
--- a/test/e2e/run-api-specs-multichain.ts
+++ b/test/e2e/run-api-specs-multichain.ts
@@ -95,6 +95,9 @@ async function main() {
     {} as { [method: string]: string },
   );
 
+  const server = mockServer(port, await parseOpenRPCDocument(transformedDoc));
+  server.start();
+
   // Multichain API excluding `wallet_invokeMethod`
   await withFixtures(
     {
@@ -118,12 +121,6 @@ async function main() {
       // Open Dapp
       await openDapp(driver, undefined, DAPP_URL);
 
-      const server = mockServer(
-        port,
-        await parseOpenRPCDocument(transformedDoc),
-      );
-      server.start();
-
       const getSession = doc.methods.find(
         (m) => (m as MethodObject).name === 'wallet_getSession',
       );
diff --git a/test/e2e/run-openrpc-api-test-coverage.ts b/test/e2e/run-openrpc-api-test-coverage.ts
index 5e6f3eb0b7fb..bd24e59a7ee2 100644
--- a/test/e2e/run-openrpc-api-test-coverage.ts
+++ b/test/e2e/run-openrpc-api-test-coverage.ts
@@ -36,14 +36,6 @@ async function main() {
       title: 'api-specs coverage',
     },
     async ({ driver }: { driver: Driver }) => {
-      await unlockWallet(driver);
-
-      // Navigate to extension home screen
-      await driver.navigate(PAGES.HOME);
-
-      // Open Dapp
-      await openDapp(driver, undefined, DAPP_URL);
-
       const transport = createDriverTransport(driver);
       const [doc, filteredMethods, methodsWithConfirmations] =
         transformOpenRPCDocument(
@@ -56,6 +48,14 @@ async function main() {
       const server = mockServer(port, parsedDoc);
       server.start();
 
+      await unlockWallet(driver);
+
+      // Navigate to extension home screen
+      await driver.navigate(PAGES.HOME);
+
+      // Open Dapp
+      await openDapp(driver, undefined, DAPP_URL);
+
       const testCoverageResults = await testCoverage({
         openrpcDocument: parsedDoc,
         transport,
diff --git a/yarn.lock b/yarn.lock
index 17e098d5e0b3..15bf5388375d 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5112,7 +5112,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@metamask/controller-utils@npm:^11.0.0, @metamask/controller-utils@npm:^11.3.0, @metamask/controller-utils@npm:^11.4.0, @metamask/controller-utils@npm:^11.4.2, @metamask/controller-utils@npm:^11.4.4, @metamask/controller-utils@npm:^11.5.0, @metamask/controller-utils@npm:^11.6.0, @metamask/controller-utils@npm:^11.7.0":
+"@metamask/controller-utils@npm:^11.0.0, @metamask/controller-utils@npm:^11.3.0, @metamask/controller-utils@npm:^11.4.2, @metamask/controller-utils@npm:^11.5.0, @metamask/controller-utils@npm:^11.6.0, @metamask/controller-utils@npm:^11.7.0":
   version: 11.7.0
   resolution: "@metamask/controller-utils@npm:11.7.0"
   dependencies:
@@ -5279,19 +5279,19 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@metamask/eth-json-rpc-infura@npm:^10.0.0, @metamask/eth-json-rpc-infura@npm:^10.1.0":
-  version: 10.1.0
-  resolution: "@metamask/eth-json-rpc-infura@npm:10.1.0"
+"@metamask/eth-json-rpc-infura@npm:^10.0.0, @metamask/eth-json-rpc-infura@npm:^10.1.1":
+  version: 10.1.1
+  resolution: "@metamask/eth-json-rpc-infura@npm:10.1.1"
   dependencies:
     "@metamask/eth-json-rpc-provider": "npm:^4.1.7"
     "@metamask/json-rpc-engine": "npm:^10.0.2"
     "@metamask/rpc-errors": "npm:^7.0.2"
     "@metamask/utils": "npm:^11.0.1"
-  checksum: 10/e3305d8a2535c3dd0e4b127fb6d01e70245f394b05c6fe81030a9043ad6fd4b8d904e00830236f88cb80b09fa6490ea22e7abaa8230a4fd4912436d0738ee702
+  checksum: 10/24296fd6d2dca4b9bda2692590eafcecc7318c2d2acf0b5a2e3f3670ffbe7ff0c6338779b8b31a69060cc7963e98d9bf354e3c0f43683371f1f2e9c7642dc763
   languageName: node
   linkType: hard
 
-"@metamask/eth-json-rpc-middleware@npm:^15.0.1, @metamask/eth-json-rpc-middleware@npm:^15.1.0":
+"@metamask/eth-json-rpc-middleware@npm:^15.0.1":
   version: 15.3.0
   resolution: "@metamask/eth-json-rpc-middleware@npm:15.3.0"
   dependencies:
@@ -5311,9 +5311,9 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@metamask/eth-json-rpc-middleware@npm:^16.0.0":
-  version: 16.0.0
-  resolution: "@metamask/eth-json-rpc-middleware@npm:16.0.0"
+"@metamask/eth-json-rpc-middleware@npm:^16.0.0, @metamask/eth-json-rpc-middleware@npm:^16.0.1":
+  version: 16.0.1
+  resolution: "@metamask/eth-json-rpc-middleware@npm:16.0.1"
   dependencies:
     "@metamask/eth-block-tracker": "npm:^11.0.4"
     "@metamask/eth-json-rpc-provider": "npm:^4.1.7"
@@ -5327,7 +5327,7 @@ __metadata:
     klona: "npm:^2.0.6"
     pify: "npm:^5.0.0"
     safe-stable-stringify: "npm:^2.4.3"
-  checksum: 10/fc6e11dd8855262b3a3c42c2629e4ce7f020a640ab2e26b989c84b674bceb044d5613e91ac6e3d9a6511c9f4e4286552a5414f9f28b1c60877a825dfddb063a7
+  checksum: 10/5c806cbac87c30cc4dcc9a9437a92e8c25aa4f00af34826433529d19ac1dd9e69488795bef9cbe59c7b982f33e0386e1f39426203c0e422e30c74e7f79ade803
   languageName: node
   linkType: hard
 
@@ -5641,7 +5641,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@metamask/keyring-api@npm:^17.0.0, @metamask/keyring-api@npm:^17.2.0, @metamask/keyring-api@npm:^17.4.0":
+"@metamask/keyring-api@npm:^17.2.0, @metamask/keyring-api@npm:^17.4.0":
   version: 17.4.0
   resolution: "@metamask/keyring-api@npm:17.4.0"
   dependencies:
@@ -5795,17 +5795,17 @@ __metadata:
   linkType: hard
 
 "@metamask/multichain-network-controller@npm:^0.1.0":
-  version: 0.1.1
-  resolution: "@metamask/multichain-network-controller@npm:0.1.1"
+  version: 0.1.2
+  resolution: "@metamask/multichain-network-controller@npm:0.1.2"
   dependencies:
     "@metamask/base-controller": "npm:^8.0.0"
-    "@metamask/keyring-api": "npm:^17.0.0"
-    "@metamask/utils": "npm:^11.1.0"
+    "@metamask/keyring-api": "npm:^17.2.0"
+    "@metamask/utils": "npm:^11.2.0"
     "@solana/addresses": "npm:^2.0.0"
   peerDependencies:
     "@metamask/accounts-controller": ^24.0.0
     "@metamask/network-controller": ^22.0.0
-  checksum: 10/0753831d802d84d154dbdfacac8ad8f7277d25957a3ec369a5fa588bee219656c4b6b0992699191eafa965ef2b43d1d4c827c0c7e417b82d94bf244040ca8451
+  checksum: 10/4f5423a6de319db540a13e5dc5d637b5e55cf7af901cbe040353912c4aaba640a9454abcecb93fa53ca397f5c40d097835b001f40963f8624c02961dbf29931a
   languageName: node
   linkType: hard
 
@@ -5858,21 +5858,21 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@metamask/network-controller@npm:22.1.1":
-  version: 22.1.1
-  resolution: "@metamask/network-controller@npm:22.1.1"
+"@metamask/network-controller@npm:23.2.0, @metamask/network-controller@npm:^23.1.0":
+  version: 23.2.0
+  resolution: "@metamask/network-controller@npm:23.2.0"
   dependencies:
-    "@metamask/base-controller": "npm:^7.0.2"
-    "@metamask/controller-utils": "npm:^11.4.4"
+    "@metamask/base-controller": "npm:^8.0.0"
+    "@metamask/controller-utils": "npm:^11.7.0"
     "@metamask/eth-block-tracker": "npm:^11.0.3"
-    "@metamask/eth-json-rpc-infura": "npm:^10.0.0"
-    "@metamask/eth-json-rpc-middleware": "npm:^15.0.1"
-    "@metamask/eth-json-rpc-provider": "npm:^4.1.6"
+    "@metamask/eth-json-rpc-infura": "npm:^10.1.1"
+    "@metamask/eth-json-rpc-middleware": "npm:^16.0.1"
+    "@metamask/eth-json-rpc-provider": "npm:^4.1.8"
     "@metamask/eth-query": "npm:^4.0.0"
-    "@metamask/json-rpc-engine": "npm:^10.0.1"
-    "@metamask/rpc-errors": "npm:^7.0.1"
+    "@metamask/json-rpc-engine": "npm:^10.0.3"
+    "@metamask/rpc-errors": "npm:^7.0.2"
     "@metamask/swappable-obj-proxy": "npm:^2.3.0"
-    "@metamask/utils": "npm:^10.0.0"
+    "@metamask/utils": "npm:^11.2.0"
     async-mutex: "npm:^0.5.0"
     fast-deep-equal: "npm:^3.1.3"
     immer: "npm:^9.0.6"
@@ -5880,7 +5880,7 @@ __metadata:
     reselect: "npm:^5.1.1"
     uri-js: "npm:^4.4.1"
     uuid: "npm:^8.3.2"
-  checksum: 10/688d9ef111e66699d6129e5c4022db683d64441d437d3ad01160cefc892897115b3d5061aa174693775e3c20060b4a20c112c8a4f1c426f5f7c2f79a1839d564
+  checksum: 10/91de42a074e4806b6c4dd8466ea7f3de9ae506b0acd14a3b021b238ef10d45a0188c1f56e63cbeaf8697840ed07582398291ae6530025df990f997487a85a520
   languageName: node
   linkType: hard
 
@@ -5910,15 +5910,15 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@metamask/network-controller@npm:^23.1.0":
-  version: 23.1.0
-  resolution: "@metamask/network-controller@npm:23.1.0"
+"@metamask/network-controller@patch:@metamask/network-controller@npm%3A23.2.0#~/.yarn/patches/@metamask-network-controller-npm-23.2.0-0223efb98a.patch":
+  version: 23.2.0
+  resolution: "@metamask/network-controller@patch:@metamask/network-controller@npm%3A23.2.0#~/.yarn/patches/@metamask-network-controller-npm-23.2.0-0223efb98a.patch::version=23.2.0&hash=61b816"
   dependencies:
     "@metamask/base-controller": "npm:^8.0.0"
-    "@metamask/controller-utils": "npm:^11.6.0"
+    "@metamask/controller-utils": "npm:^11.7.0"
     "@metamask/eth-block-tracker": "npm:^11.0.3"
-    "@metamask/eth-json-rpc-infura": "npm:^10.1.0"
-    "@metamask/eth-json-rpc-middleware": "npm:^15.1.0"
+    "@metamask/eth-json-rpc-infura": "npm:^10.1.1"
+    "@metamask/eth-json-rpc-middleware": "npm:^16.0.1"
     "@metamask/eth-json-rpc-provider": "npm:^4.1.8"
     "@metamask/eth-query": "npm:^4.0.0"
     "@metamask/json-rpc-engine": "npm:^10.0.3"
@@ -5932,33 +5932,7 @@ __metadata:
     reselect: "npm:^5.1.1"
     uri-js: "npm:^4.4.1"
     uuid: "npm:^8.3.2"
-  checksum: 10/078b6b566916777649ce30c5972c79cf00eb0309499b43151e477dc641a7e7fdbfc2b2d237e7d5f5b59801a1a09f69da6996a397b8e4461af3e42e1da8918cf3
-  languageName: node
-  linkType: hard
-
-"@metamask/network-controller@patch:@metamask/network-controller@npm%3A22.1.1#~/.yarn/patches/@metamask-network-controller-npm-22.1.1-09b6510f1e.patch":
-  version: 22.1.1
-  resolution: "@metamask/network-controller@patch:@metamask/network-controller@npm%3A22.1.1#~/.yarn/patches/@metamask-network-controller-npm-22.1.1-09b6510f1e.patch::version=22.1.1&hash=64b409"
-  dependencies:
-    "@metamask/base-controller": "npm:^7.0.2"
-    "@metamask/controller-utils": "npm:^11.4.4"
-    "@metamask/eth-block-tracker": "npm:^11.0.3"
-    "@metamask/eth-json-rpc-infura": "npm:^10.0.0"
-    "@metamask/eth-json-rpc-middleware": "npm:^15.0.1"
-    "@metamask/eth-json-rpc-provider": "npm:^4.1.6"
-    "@metamask/eth-query": "npm:^4.0.0"
-    "@metamask/json-rpc-engine": "npm:^10.0.1"
-    "@metamask/rpc-errors": "npm:^7.0.1"
-    "@metamask/swappable-obj-proxy": "npm:^2.3.0"
-    "@metamask/utils": "npm:^10.0.0"
-    async-mutex: "npm:^0.5.0"
-    fast-deep-equal: "npm:^3.1.3"
-    immer: "npm:^9.0.6"
-    loglevel: "npm:^1.8.1"
-    reselect: "npm:^5.1.1"
-    uri-js: "npm:^4.4.1"
-    uuid: "npm:^8.3.2"
-  checksum: 10/ffe5156f3129a8c09242c01d477a6e1149e42f8884c721f03b51fc64a933cc6324d922f20cef6954e974ee3d7a2433d9c72a72b0899d83aa68ecf775d4edd4dc
+  checksum: 10/1f314b8fd33247591f1d9e23adb07cc3d832c6508b902faec1dd38a27112f287543f95ce3de9ba292809079b433b24a817f901d192d6b2c8729b71b29c9764b2
   languageName: node
   linkType: hard
 
@@ -15428,9 +15402,9 @@ __metadata:
   linkType: hard
 
 "caniuse-lite@npm:^1.0.30001109, caniuse-lite@npm:^1.0.30001599, caniuse-lite@npm:^1.0.30001669":
-  version: 1.0.30001669
-  resolution: "caniuse-lite@npm:1.0.30001669"
-  checksum: 10/cd0b481bb997703cb7651e55666b4aa4e7b4ecf9784796e2393179a15e55c71a6abc6ff865c922bbd3bbfa4a4bf0530d8da13989b97ff8c7850c8a5bd4e00491
+  version: 1.0.30001707
+  resolution: "caniuse-lite@npm:1.0.30001707"
+  checksum: 10/5c5f9aad651f4d957cc59c8b4ac22bb7ac3a1c86c26ee7d5c59b00062bdc1c421980513179da1f5e20cade2da8d7f3c41d482ce7d4a8d9f411e4a827fe092d29
   languageName: node
   linkType: hard
 
@@ -27313,7 +27287,7 @@ __metadata:
     "@metamask/build-utils": "npm:^3.0.0"
     "@metamask/chain-agnostic-permission": "npm:^0.3.0"
     "@metamask/contract-metadata": "npm:^2.5.0"
-    "@metamask/controller-utils": "npm:^11.4.0"
+    "@metamask/controller-utils": "npm:^11.7.0"
     "@metamask/design-tokens": "npm:^7.0.0"
     "@metamask/ens-controller": "npm:^15.0.2"
     "@metamask/ens-resolver-snap": "npm:^0.1.2"
@@ -27351,7 +27325,7 @@ __metadata:
     "@metamask/multichain-network-controller": "npm:^0.1.0"
     "@metamask/multichain-transactions-controller": "npm:^0.7.2"
     "@metamask/name-controller": "npm:^8.0.3"
-    "@metamask/network-controller": "patch:@metamask/network-controller@npm%3A22.1.1#~/.yarn/patches/@metamask-network-controller-npm-22.1.1-09b6510f1e.patch"
+    "@metamask/network-controller": "patch:@metamask/network-controller@npm%3A23.2.0#~/.yarn/patches/@metamask-network-controller-npm-23.2.0-0223efb98a.patch"
     "@metamask/notification-services-controller": "npm:^5.0.1"
     "@metamask/object-multiplex": "npm:^2.0.0"
     "@metamask/obs-store": "npm:^9.0.0"


Reviews:
user: login: mcmire
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-08T14:39:19Z
user: login: mcmire
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-08T19:47:54Z
user: login: stanleyyconsensys
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-09T03:15:46Z
user: login: mcmire
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-09T03:23:56Z
user: login: stanleyyconsensys
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-09T03:30:01Z
user: login: mcmire
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-09T03:33:42Z
user: login: mcmire
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-09T04:28:03Z
user: login: mcmire
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-09T04:58:12Z
user: login: stanleyyconsensys
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-09T07:21:50Z
user: login: mcmire
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-09T12:48:59Z
user: login: MajorLift
body: LGTM! Policy changes also look safe.
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-04-09T16:01:58Z
user: login: dbrans
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-04-09T17:59:01Z
user: login: DDDDDanica
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-04-09T19:52:38Z
user: login: stanleyyconsensys
body: LGTM
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-10T03:41:54Z
user: login: MajorLift
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-10T11:41:16Z
user: login: davidmurdoch
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-10T17:22:29Z

Review comments:
diff_hunk: @@ -223,7 +223,12 @@
     "@ethersproject/signing-key/elliptic": "^6.6.1",
     "gridplus-sdk/elliptic": "^6.6.1",
     "@keystonehq/metamask-airgapped-keyring": "npm:@metamask/metamask-airgapped-keyring@0.15.0",
-    "@ethereumjs/tx": "patch:@ethereumjs/tx@npm%3A5.4.0#~/.yarn/patches/@ethereumjs-tx-npm-5.4.0-0c4a0f973e.patch"
+    "@ethereumjs/tx": "patch:@ethereumjs/tx@npm%3A5.4.0#~/.yarn/patches/@ethereumjs-tx-npm-5.4.0-0c4a0f973e.patch",
+    "@metamask/controller-utils@npm:^11.0.0": "11.6.0",
path: package.json
user: login: mcmire
body: I referred to this in the PR description, but to go into more detail:

The latest version of `controller-utils` is 11.7.0. It adds the MegaETH testnet to many of the constants defined in this package that hold information about known chains. `network-controller` relies on 11.7.0, and because we require that dependencies be deduped, if we don't have these resolutions here, it will cause other controllers, not just `network-controller`, to also use `controller-utils` 11.7.0. However, the MegaETH testnet isn't quite live yet and so because TokensController makes use of one of these constants to know what tokens to pull, it would break this controller if we allowed that to happen. So for the moment we need to force 11.6.0 across the board until MegaETH is live. @stanleyyconsensys is working on this so it will happen fairly soon.
created_at: 2025-04-08T14:39:19Z
author_association: CONTRIBUTOR
diff_hunk: @@ -223,7 +223,12 @@
     "@ethersproject/signing-key/elliptic": "^6.6.1",
     "gridplus-sdk/elliptic": "^6.6.1",
     "@keystonehq/metamask-airgapped-keyring": "npm:@metamask/metamask-airgapped-keyring@0.15.0",
-    "@ethereumjs/tx": "patch:@ethereumjs/tx@npm%3A5.4.0#~/.yarn/patches/@ethereumjs-tx-npm-5.4.0-0c4a0f973e.patch"
+    "@ethereumjs/tx": "patch:@ethereumjs/tx@npm%3A5.4.0#~/.yarn/patches/@ethereumjs-tx-npm-5.4.0-0c4a0f973e.patch",
+    "@metamask/controller-utils@npm:^11.0.0": "11.6.0",
path: package.json
user: login: mcmire
body: Thinking about it some more, this is probably a "bug" in ~TokensController~ edit: CurrencyRatesController that we should fix so that it doesn't attempt to use chains that don't exist in `networkConfigurations`. I can investigate this further. But for now we still need this "hack".
created_at: 2025-04-08T19:47:54Z
author_association: CONTRIBUTOR
diff_hunk: @@ -223,7 +223,12 @@
     "@ethersproject/signing-key/elliptic": "^6.6.1",
     "gridplus-sdk/elliptic": "^6.6.1",
     "@keystonehq/metamask-airgapped-keyring": "npm:@metamask/metamask-airgapped-keyring@0.15.0",
-    "@ethereumjs/tx": "patch:@ethereumjs/tx@npm%3A5.4.0#~/.yarn/patches/@ethereumjs-tx-npm-5.4.0-0c4a0f973e.patch"
+    "@ethereumjs/tx": "patch:@ethereumjs/tx@npm%3A5.4.0#~/.yarn/patches/@ethereumjs-tx-npm-5.4.0-0c4a0f973e.patch",
+    "@metamask/controller-utils@npm:^11.0.0": "11.6.0",
path: package.json
user: login: stanleyyconsensys
body: MegaETH testnet is lived in Extension already, so i guess we can remove that resolution

with controller-utils 11.7.0
CurrencyRatesController will no longer sending request to crypto compare with "ETH,MegaETH",
Therefore we have to remove the corresponding mocking
please refer [here](https://github.com/MetaMask/metamask-extension/pull/31644)


as we also update below file to mock MegaETH symbol
- test/e2e/tests/metrics/state-snapshots/errors-after-init-opt-in-background-state.json
- test/e2e/tests/metrics/state-snapshots/errors-after-init-opt-in-ui-state.json

Therefore, for the test- test/e2e/tests/metrics/errors.spec.js
we have to add the mocking , please refer to [here](https://github.com/MetaMask/metamask-extension/pull/31644/files#diff-ded980cecaa1e575ddd2b71922ea76b1f75736b65fbc68b4861a871c894d56c9)

 
created_at: 2025-04-09T03:15:46Z
author_association: CONTRIBUTOR
diff_hunk: @@ -223,7 +223,12 @@
     "@ethersproject/signing-key/elliptic": "^6.6.1",
     "gridplus-sdk/elliptic": "^6.6.1",
     "@keystonehq/metamask-airgapped-keyring": "npm:@metamask/metamask-airgapped-keyring@0.15.0",
-    "@ethereumjs/tx": "patch:@ethereumjs/tx@npm%3A5.4.0#~/.yarn/patches/@ethereumjs-tx-npm-5.4.0-0c4a0f973e.patch"
+    "@ethereumjs/tx": "patch:@ethereumjs/tx@npm%3A5.4.0#~/.yarn/patches/@ethereumjs-tx-npm-5.4.0-0c4a0f973e.patch",
+    "@metamask/controller-utils@npm:^11.0.0": "11.6.0",
path: package.json
user: login: mcmire
body: Yeah, adding this resolution didn't actually have an effect, so I agree we can remove. (Sorry I probably got confused here)

And thanks for the tips on updating the mocking. I figured I would need to update the state snapshots but I didn't think about the other ones. I'll try applying them to this PR and seeing what happens. (Although I do notice that your PR has CI failures so hopefully the same ones don't show up here too 🤞🏻 )
created_at: 2025-04-09T03:23:56Z
author_association: CONTRIBUTOR
diff_hunk: @@ -223,7 +223,12 @@
     "@ethersproject/signing-key/elliptic": "^6.6.1",
     "gridplus-sdk/elliptic": "^6.6.1",
     "@keystonehq/metamask-airgapped-keyring": "npm:@metamask/metamask-airgapped-keyring@0.15.0",
-    "@ethereumjs/tx": "patch:@ethereumjs/tx@npm%3A5.4.0#~/.yarn/patches/@ethereumjs-tx-npm-5.4.0-0c4a0f973e.patch"
+    "@ethereumjs/tx": "patch:@ethereumjs/tx@npm%3A5.4.0#~/.yarn/patches/@ethereumjs-tx-npm-5.4.0-0c4a0f973e.patch",
+    "@metamask/controller-utils@npm:^11.0.0": "11.6.0",
path: package.json
user: login: stanleyyconsensys
body: my CI failures becoz so random failed, i tested on local they should success

except that one - Vault Decryptor Page is able to decrypt the vault pasting the text in the vault-decryptor webapp

it was failed in main branch too (even in local), not sure why
created_at: 2025-04-09T03:30:01Z
author_association: CONTRIBUTOR
diff_hunk: @@ -223,7 +223,12 @@
     "@ethersproject/signing-key/elliptic": "^6.6.1",
     "gridplus-sdk/elliptic": "^6.6.1",
     "@keystonehq/metamask-airgapped-keyring": "npm:@metamask/metamask-airgapped-keyring@0.15.0",
-    "@ethereumjs/tx": "patch:@ethereumjs/tx@npm%3A5.4.0#~/.yarn/patches/@ethereumjs-tx-npm-5.4.0-0c4a0f973e.patch"
+    "@ethereumjs/tx": "patch:@ethereumjs/tx@npm%3A5.4.0#~/.yarn/patches/@ethereumjs-tx-npm-5.4.0-0c4a0f973e.patch",
+    "@metamask/controller-utils@npm:^11.0.0": "11.6.0",
path: package.json
user: login: mcmire
body: It looks like some of those changes in your PR got applied already in https://github.com/MetaMask/metamask-extension/pull/31597.
created_at: 2025-04-09T03:33:41Z
author_association: CONTRIBUTOR
diff_hunk: @@ -223,7 +223,12 @@
     "@ethersproject/signing-key/elliptic": "^6.6.1",
     "gridplus-sdk/elliptic": "^6.6.1",
     "@keystonehq/metamask-airgapped-keyring": "npm:@metamask/metamask-airgapped-keyring@0.15.0",
-    "@ethereumjs/tx": "patch:@ethereumjs/tx@npm%3A5.4.0#~/.yarn/patches/@ethereumjs-tx-npm-5.4.0-0c4a0f973e.patch"
+    "@ethereumjs/tx": "patch:@ethereumjs/tx@npm%3A5.4.0#~/.yarn/patches/@ethereumjs-tx-npm-5.4.0-0c4a0f973e.patch",
+    "@metamask/controller-utils@npm:^11.0.0": "11.6.0",
path: package.json
user: login: mcmire
body: > except that one - Vault Decryptor Page is able to decrypt the vault pasting the text in the vault-decryptor webapp

Hmm I am seeing that too :(
created_at: 2025-04-09T04:28:03Z
author_association: CONTRIBUTOR
diff_hunk: @@ -223,7 +223,12 @@
     "@ethersproject/signing-key/elliptic": "^6.6.1",
     "gridplus-sdk/elliptic": "^6.6.1",
     "@keystonehq/metamask-airgapped-keyring": "npm:@metamask/metamask-airgapped-keyring@0.15.0",
-    "@ethereumjs/tx": "patch:@ethereumjs/tx@npm%3A5.4.0#~/.yarn/patches/@ethereumjs-tx-npm-5.4.0-0c4a0f973e.patch"
+    "@ethereumjs/tx": "patch:@ethereumjs/tx@npm%3A5.4.0#~/.yarn/patches/@ethereumjs-tx-npm-5.4.0-0c4a0f973e.patch",
+    "@metamask/controller-utils@npm:^11.0.0": "11.6.0",
path: package.json
user: login: mcmire
body: Seems to be intermittently failing. It passed for me for some reason.
created_at: 2025-04-09T04:58:12Z
author_association: CONTRIBUTOR
diff_hunk: @@ -223,7 +223,12 @@
     "@ethersproject/signing-key/elliptic": "^6.6.1",
     "gridplus-sdk/elliptic": "^6.6.1",
     "@keystonehq/metamask-airgapped-keyring": "npm:@metamask/metamask-airgapped-keyring@0.15.0",
-    "@ethereumjs/tx": "patch:@ethereumjs/tx@npm%3A5.4.0#~/.yarn/patches/@ethereumjs-tx-npm-5.4.0-0c4a0f973e.patch"
+    "@ethereumjs/tx": "patch:@ethereumjs/tx@npm%3A5.4.0#~/.yarn/patches/@ethereumjs-tx-npm-5.4.0-0c4a0f973e.patch",
+    "@metamask/controller-utils@npm:^11.0.0": "11.6.0",
path: package.json
user: login: stanleyyconsensys
body: yea, it is random fail, after rebase with main, it seems gone
i only have 1 issue remain, 
which is the wallet slide, i guess someone update the slide to 5 items, but the e2e test expect 4

it is related to this PR
https://github.com/MetaMask/metamask-extension/pull/31463
created_at: 2025-04-09T07:21:49Z
author_association: CONTRIBUTOR
diff_hunk: @@ -95,6 +95,9 @@ async function main() {
     {} as { [method: string]: string },
   );
 
+  const server = mockServer(port, await parseOpenRPCDocument(transformedDoc));
path: test/e2e/run-api-specs-multichain.ts
user: login: mcmire
body: These tests fail intermittently. Starting the server before the tests are run does not completely resolve the issue but helps.
created_at: 2025-04-09T12:48:47Z
author_association: CONTRIBUTOR
diff_hunk: @@ -56,6 +48,14 @@ async function main() {
       const server = mockServer(port, parsedDoc);
path: test/e2e/run-openrpc-api-test-coverage.ts
user: login: mcmire
body: These tests fail intermittently. Starting the server before the tests are run does not completely resolve the issue but helps.
created_at: 2025-04-09T12:48:55Z
author_association: CONTRIBUTOR

PR comments:
user: login: github-actions[bot]
created_at: 2025-04-08T14:22:34Z
body: **CLA Signature Action:** All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.
author_association: CONTRIBUTOR
user: login: socket-security[bot]
created_at: 2025-04-08T14:22:48Z
body: **Review the following changes in direct dependencies.** Learn more about [Socket for GitHub ↗](https://socket.dev?utm_medium=gh).

<table>
<thead>
<tr>
<th width="6%"></th>
<th width="200px">Package</th>
<th align="left" width="100px">Supply Chain<br/>Security</th>
<th align="left" width="100px">Vulnerability</th>
<th align="left" width="100px">Quality</th>
<th align="left" width="100px">Maintenance</th>
<th align="left" width="100px">License</th>
</tr>
</thead>
<tbody>
<tr><td><a href="https://socket.dev/dashboard/org/MetaMask/diff/f1b2f399-2f23-4f35-b2c5-482a088faed8/403a6dd9-b3f0-4b3c-b0ee-65d987ba9663?tab=dependencies&dependency_item_key=17046354910"><img src="https://github-app-statics.socket.dev/diff-updated.svg" title="Updated" alt="Updated" width="20" height="20"></a></td><td><a href="https://socket.dev/dashboard/org/MetaMask/diff/f1b2f399-2f23-4f35-b2c5-482a088faed8/403a6dd9-b3f0-4b3c-b0ee-65d987ba9663?tab=dependencies&dependency_item_key=17046354910">caniuse-lite@1.0.30001669 ⏵ 1.0.30001707</a></td><td align="left"><a href="https://socket.dev/dashboard/org/MetaMask/diff/f1b2f399-2f23-4f35-b2c5-482a088faed8/403a6dd9-b3f0-4b3c-b0ee-65d987ba9663?tab=dependencies&dependency_item_key=17046354910"><img src="https://github-app-statics.socket.dev/score-100.svg" title="Supply Chain Security" width="40" height="40" alt="100"></a> <sup>+1</sup></td><td align="left"><a href="https://socket.dev/dashboard/org/MetaMask/diff/f1b2f399-2f23-4f35-b2c5-482a088faed8/403a6dd9-b3f0-4b3c-b0ee-65d987ba9663?tab=dependencies&dependency_item_key=17046354910"><img src="https://github-app-statics.socket.dev/score-100.svg" title="Vulnerability" width="40" height="40" alt="100"></a></td><td align="left"><a href="https://socket.dev/dashboard/org/MetaMask/diff/f1b2f399-2f23-4f35-b2c5-482a088faed8/403a6dd9-b3f0-4b3c-b0ee-65d987ba9663?tab=dependencies&dependency_item_key=17046354910"><img src="https://github-app-statics.socket.dev/score-74.svg" title="Quality" width="40" height="40" alt="74"></a> <sup>+1</sup></td><td align="left"><a href="https://socket.dev/dashboard/org/MetaMask/diff/f1b2f399-2f23-4f35-b2c5-482a088faed8/403a6dd9-b3f0-4b3c-b0ee-65d987ba9663?tab=dependencies&dependency_item_key=17046354910"><img src="https://github-app-statics.socket.dev/score-98.svg" title="Maintenance" width="40" height="40" alt="98"></a></td><td align="left"><a href="https://socket.dev/dashboard/org/MetaMask/diff/f1b2f399-2f23-4f35-b2c5-482a088faed8/403a6dd9-b3f0-4b3c-b0ee-65d987ba9663?tab=dependencies&dependency_item_key=17046354910"><img src="https://github-app-statics.socket.dev/score-100.svg" title="License" width="40" height="40" alt="100"></a></td></tr>
<tr><td><a href="https://socket.dev/dashboard/org/MetaMask/diff/f1b2f399-2f23-4f35-b2c5-482a088faed8/403a6dd9-b3f0-4b3c-b0ee-65d987ba9663?tab=dependencies&dependency_item_key=19409524770"><img src="https://github-app-statics.socket.dev/diff-updated.svg" title="Updated" alt="Updated" width="20" height="20"></a></td><td><a href="https://socket.dev/dashboard/org/MetaMask/diff/f1b2f399-2f23-4f35-b2c5-482a088faed8/403a6dd9-b3f0-4b3c-b0ee-65d987ba9663?tab=dependencies&dependency_item_key=19409524770">@metamask/eth-json-rpc-infura@10.1.0 ⏵ 10.1.1</a></td><td align="left"><a href="https://socket.dev/dashboard/org/MetaMask/diff/f1b2f399-2f23-4f35-b2c5-482a088faed8/403a6dd9-b3f0-4b3c-b0ee-65d987ba9663?tab=dependencies&dependency_item_key=19409524770"><img src="https://github-app-statics.socket.dev/score-91.svg" title="Supply Chain Security" width="40" height="40" alt="91"></a> <sup>+17</sup></td><td align="left"><a href="https://socket.dev/dashboard/org/MetaMask/diff/f1b2f399-2f23-4f35-b2c5-482a088faed8/403a6dd9-b3f0-4b3c-b0ee-65d987ba9663?tab=dependencies&dependency_item_key=19409524770"><img src="https://github-app-statics.socket.dev/score-100.svg" title="Vulnerability" width="40" height="40" alt="100"></a></td><td align="left"><a href="https://socket.dev/dashboard/org/MetaMask/diff/f1b2f399-2f23-4f35-b2c5-482a088faed8/403a6dd9-b3f0-4b3c-b0ee-65d987ba9663?tab=dependencies&dependency_item_key=19409524770"><img src="https://github-app-statics.socket.dev/score-100.svg" title="Quality" width="40" height="40" alt="100"></a></td><td align="left"><a href="https://socket.dev/dashboard/org/MetaMask/diff/f1b2f399-2f23-4f35-b2c5-482a088faed8/403a6dd9-b3f0-4b3c-b0ee-65d987ba9663?tab=dependencies&dependency_item_key=19409524770"><img src="https://github-app-statics.socket.dev/score-92.svg" title="Maintenance" width="40" height="40" alt="92"></a> <sup>+2</sup></td><td align="left"><a href="https://socket.dev/dashboard/org/MetaMask/diff/f1b2f399-2f23-4f35-b2c5-482a088faed8/403a6dd9-b3f0-4b3c-b0ee-65d987ba9663?tab=dependencies&dependency_item_key=19409524770"><img src="https://github-app-statics.socket.dev/score-100.svg" title="License" width="40" height="40" alt="100"></a></td></tr>
</tbody>
</table>

[View full report ↗](https://socket.dev/dashboard/org/MetaMask/diff/f1b2f399-2f23-4f35-b2c5-482a088faed8/403a6dd9-b3f0-4b3c-b0ee-65d987ba9663?tab=dependencies)

<!-- overview-comment -->
author_association: NONE
user: login: mcmire
created_at: 2025-04-08T14:23:23Z
body: @metamaskbot update-policies
author_association: CONTRIBUTOR
user: login: metamaskbot
created_at: 2025-04-08T14:35:07Z
body: Policies updated.  
👀 Please review the diff for suspicious new powers.  

🧠 Learn how: https://lavamoat.github.io/guides/policy-diff/#what-to-look-for-when-reviewing-a-policy-diff 



author_association: COLLABORATOR
user: login: metamaskbot
created_at: 2025-04-08T14:37:17Z
body: <!-- METAMASK-CODEOWNERS-BOT -->
✨ Files requiring CODEOWNER review ✨
---
🧩 @MetaMask/extension-devs
- `lavamoat/browserify/beta/policy.json`
- `lavamoat/browserify/flask/policy.json`
- `lavamoat/browserify/main/policy.json`
- `lavamoat/browserify/mmi/policy.json`

📜 @MetaMask/policy-reviewers
- `lavamoat/browserify/beta/policy.json`
- `lavamoat/browserify/flask/policy.json`
- `lavamoat/browserify/main/policy.json`
- `lavamoat/browserify/mmi/policy.json`

🔗 @MetaMask/supply-chain
- `lavamoat/browserify/beta/policy.json`
- `lavamoat/browserify/flask/policy.json`
- `lavamoat/browserify/main/policy.json`
- `lavamoat/browserify/mmi/policy.json`


author_association: COLLABORATOR
user: login: mcmire
created_at: 2025-04-08T14:53:15Z
body: @metamaskbot update-policies
author_association: CONTRIBUTOR
user: login: metamaskbot
created_at: 2025-04-08T15:17:21Z
body: Policies updated.  
👀 Please review the diff for suspicious new powers.  

🧠 Learn how: https://lavamoat.github.io/guides/policy-diff/#what-to-look-for-when-reviewing-a-policy-diff 



author_association: COLLABORATOR
user: login: mcmire
created_at: 2025-04-08T20:05:30Z
body: @metamaskbot update-policies
author_association: CONTRIBUTOR
user: login: metamaskbot
created_at: 2025-04-08T20:21:31Z
body: No policy changes
author_association: COLLABORATOR
user: login: mcmire
created_at: 2025-04-08T22:31:03Z
body: @metamaskbot update-policies
author_association: CONTRIBUTOR
user: login: metamaskbot
created_at: 2025-04-08T22:43:55Z
body: Policies updated.  
👀 Please review the diff for suspicious new powers.  

🧠 Learn how: https://lavamoat.github.io/guides/policy-diff/#what-to-look-for-when-reviewing-a-policy-diff 



author_association: COLLABORATOR
user: login: mcmire
created_at: 2025-04-09T04:58:53Z
body: Still some e2e failures, but far less than before. I also notice e2e failures on `main`, so maybe some of these are not the fault of this PR. I'll investigate this more tomorrow.
author_association: CONTRIBUTOR
user: login: metamaskbot
created_at: 2025-04-09T15:05:41Z
body: <details><summary>Builds ready [aeafa21]</summary><ul><li>builds: <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/builds/metamask-chrome-12.15.2.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/builds-mv2/metamask-firefox-12.15.2.zip">firefox</a></li>
<li>builds (flask): <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/builds-flask/metamask-flask-chrome-12.15.2-flask.0.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/builds-flask-mv2/metamask-flask-firefox-12.15.2-flask.0.zip">firefox</a></li>
<li>builds (test): <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/builds-test/metamask-chrome-12.15.2.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/builds-test-mv2/metamask-firefox-12.15.2.zip">firefox</a></li>
<li>builds (test-flask): <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/builds-test-flask/metamask-flask-chrome-12.15.2-flask.0.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/builds-test-flask-mv2/metamask-flask-firefox-12.15.2-flask.0.zip">firefox</a></li>
<li>build viz: <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/build-viz/index.html">Build System</a></li>
<li>bundle size: <a href="https://diuv6g5fj9pvx.cloudfront.net/metamask-extension/14359519359/bundle-size/bundle_size.json">Bundle Size Stats</a></li>
<li>user-actions-benchmark: <a href="https://diuv6g5fj9pvx.cloudfront.net/metamask-extension/14359519359/benchmarks/benchmark-chrome-browserify-userActions.json">User Actions Stats</a></li>
<li>storybook: <a href="https://diuv6g5fj9pvx.cloudfront.net/metamask-extension/14359519359/storybook-build/index.html">Storybook</a></li>
<li>typescript migration: <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/ts-migration-dashboard/index.html">Dashboard</a></li>
<li><a href="https://app.circleci.com/pipelines/github/MetaMask/metamask-extension/jobs/4749838/artifacts/">all CircleCI artifacts</a></li>
<li><details>
       <summary>bundle viz:</summary>
       <ul><li>background: <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/background-0.html">0</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/background-1.html">1</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/background-2.html">2</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/background-3.html">3</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/background-4.html">4</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/background-5.html">5</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/background-6.html">6</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/background-7.html">7</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/background-8.html">8</a></li><li>common: <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/common-0.html">0</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/common-1.html">1</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/common-2.html">2</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/common-3.html">3</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/common-4.html">4</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/common-5.html">5</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/common-6.html">6</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/common-7.html">7</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/common-8.html">8</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/common-9.html">9</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/common-10.html">10</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/common-11.html">11</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/common-12.html">12</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/common-13.html">13</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/common-14.html">14</a></li><li>ui: <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/ui-0.html">0</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/ui-1.html">1</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/ui-2.html">2</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/ui-3.html">3</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/ui-4.html">4</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/ui-5.html">5</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/ui-6.html">6</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/ui-7.html">7</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/ui-8.html">8</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/ui-9.html">9</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/ui-10.html">10</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/ui-11.html">11</a>, <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/ui-12.html">12</a></li><li>content-script: <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/content-script-0.html">0</a></li><li>offscreen: <a href="https://output.circle-artifacts.com/output/job/1575b528-e8f0-4cc4-b3a2-c2ea568d1b87/artifacts/0/build-artifacts/source-map-explorer/offscreen-0.html">0</a></li></ul>
     </details></li></ul></details>

<details><summary>UI Startup Metrics (1215 ± 60 ms)</summary><table><thead><tr><th>Platform</th><th>BuildType</th><th>Page</th><th>Metric</th><th>Mean (ms)</th><th>Min (ms)</th><th>Max (ms)</th><th>Std Dev (ms)</th><th>P 75 (ms)</th><th>P 95 (ms)</th></tr></thead><tbody><tr><td rowspan="22">Chrome</td><td rowspan="11">Browserify</td><td rowspan="11">Home</td><td>uiStartup</td><td align="right">1215</td><td align="right">1099</td><td align="right">1392</td><td align="right">60</td><td align="right">1251</td><td align="right">1334</td></tr><tr><td>load</td><td align="right">1063</td><td align="right">940</td><td align="right">1231</td><td align="right">54</td><td align="right">1145</td><td align="right">988</td></tr><tr><td>domContentLoaded</td><td align="right">1058</td><td align="right">930</td><td align="right">1225</td><td align="right">54</td><td align="right">1137</td><td align="right">983</td></tr><tr><td>domInteractive</td><td align="right">17</td><td align="right">13</td><td align="right">59</td><td align="right">6</td><td align="right">16</td><td align="right">28</td></tr><tr><td>firstPaint</td><td align="right">752</td><td align="right">148</td><td align="right">1377</td><td align="right">415</td><td align="right">224</td><td align="right">980</td></tr><tr><td>backgroundConnect</td><td align="right">9</td><td align="right">6</td><td align="right">18</td><td align="right">2</td><td align="right">9</td><td align="right">10</td></tr><tr><td>firstReactRender</td><td align="right">20</td><td align="right">13</td><td align="right">43</td><td align="right">5</td><td align="right">21</td><td align="right">33</td></tr><tr><td>getState</td><td align="right">13</td><td align="right">5</td><td align="right">35</td><td align="right">8</td><td align="right">6</td><td align="right">8</td></tr><tr><td>initialActions</td><td align="right">0</td><td align="right">0</td><td align="right">1</td><td align="right">0</td><td align="right">0</td><td align="right">1</td></tr><tr><td>loadScripts</td><td align="right">813</td><td align="right">681</td><td align="right">936</td><td align="right">52</td><td align="right">842</td><td align="right">911</td></tr><tr><td>setupStore</td><td align="right">8</td><td align="right">5</td><td align="right">19</td><td align="right">3</td><td align="right">7</td><td align="right">9</td></tr><tr><td rowspan="11">Webpack</td><td rowspan="11">Home</td><td>uiStartup</td><td align="right">2211</td><td align="right">1730</td><td align="right">2658</td><td align="right">182</td><td align="right">2337</td><td align="right">2473</td></tr><tr><td>load</td><td align="right">1724</td><td align="right">1333</td><td align="right">2146</td><td align="right">160</td><td align="right">1816</td><td align="right">2045</td></tr><tr><td>domContentLoaded</td><td align="right">1718</td><td align="right">1330</td><td align="right">2134</td><td align="right">157</td><td align="right">1811</td><td align="right">2013</td></tr><tr><td>domInteractive</td><td align="right">17</td><td align="right">12</td><td align="right">58</td><td align="right">11</td><td align="right">14</td><td align="right">54</td></tr><tr><td>firstPaint</td><td align="right">169</td><td align="right">66</td><td align="right">363</td><td align="right">58</td><td align="right">231</td><td align="right">82</td></tr><tr><td>backgroundConnect</td><td align="right">52</td><td align="right">11</td><td align="right">322</td><td align="right">66</td><td align="right">41</td><td align="right">63</td></tr><tr><td>firstReactRender</td><td align="right">193</td><td align="right">53</td><td align="right">359</td><td align="right">113</td><td align="right">60</td><td align="right">94</td></tr><tr><td>getState</td><td align="right">16</td><td align="right">4</td><td align="right">181</td><td align="right">23</td><td align="right">6</td><td align="right">9</td></tr><tr><td>initialActions</td><td align="right">3</td><td align="right">1</td><td align="right">8</td><td align="right">2</td><td align="right">4</td><td align="right">6</td></tr><tr><td>loadScripts</td><td align="right">1703</td><td align="right">1327</td><td align="right">2089</td><td align="right">144</td><td align="right">1793</td><td align="right">1953</td></tr><tr><td>setupStore</td><td align="right">30</td><td align="right">7</td><td align="right">244</td><td align="right">46</td><td align="right">42</td><td align="right">9</td></tr><tr><td rowspan="22">Firefox</td><td rowspan="11">Browserify</td><td rowspan="11">Home</td><td>uiStartup</td><td align="right">1349</td><td align="right">1166</td><td align="right">1779</td><td align="right">124</td><td align="right">1397</td><td align="right">1633</td></tr><tr><td>load</td><td align="right">1212</td><td align="right">1033</td><td align="right">1618</td><td align="right">121</td><td align="right">1267</td><td align="right">1480</td></tr><tr><td>domContentLoaded</td><td align="right">1212</td><td align="right">1033</td><td align="right">1618</td><td align="right">121</td><td align="right">1267</td><td align="right">1480</td></tr><tr><td>domInteractive</td><td align="right">98</td><td align="right">38</td><td align="right">270</td><td align="right">34</td><td align="right">89</td><td align="right">97</td></tr><tr><td>firstPaint</td><td align="right">NaN</td><td align="right">NaN</td><td align="right">NaN</td><td align="right">NaN</td><td align="right">NaN</td><td align="right">NaN</td></tr><tr><td>backgroundConnect</td><td align="right">23</td><td align="right">15</td><td align="right">72</td><td align="right">9</td><td align="right">23</td><td align="right">48</td></tr><tr><td>firstReactRender</td><td align="right">22</td><td align="right">19</td><td align="right">53</td><td align="right">5</td><td align="right">21</td><td align="right">29</td></tr><tr><td>getState</td><td align="right">8</td><td align="right">4</td><td align="right">50</td><td align="right">6</td><td align="right">7</td><td align="right">9</td></tr><tr><td>initialActions</td><td align="right">0</td><td align="right">0</td><td align="right">1</td><td align="right">0</td><td align="right">0</td><td align="right">1</td></tr><tr><td>loadScripts</td><td align="right">1190</td><td align="right">1013</td><td align="right">1590</td><td align="right">121</td><td align="right">1248</td><td align="right">1462</td></tr><tr><td>setupStore</td><td align="right">6</td><td align="right">4</td><td align="right">34</td><td align="right">3</td><td align="right">6</td><td align="right">7</td></tr><tr><td rowspan="11">Webpack</td><td rowspan="11">Home</td><td>uiStartup</td><td align="right">1561</td><td align="right">1386</td><td align="right">1893</td><td align="right">120</td><td align="right">1634</td><td align="right">1836</td></tr><tr><td>load</td><td align="right">1340</td><td align="right">1193</td><td align="right">1688</td><td align="right">108</td><td align="right">1411</td><td align="right">1553</td></tr><tr><td>domContentLoaded</td><td align="right">1340</td><td align="right">1191</td><td align="right">1688</td><td align="right">108</td><td align="right">1411</td><td align="right">1553</td></tr><tr><td>domInteractive</td><td align="right">95</td><td align="right">37</td><td align="right">159</td><td align="right">20</td><td align="right">90</td><td align="right">96</td></tr><tr><td>firstPaint</td><td align="right">NaN</td><td align="right">NaN</td><td align="right">NaN</td><td align="right">NaN</td><td align="right">NaN</td><td align="right">NaN</td></tr><tr><td>backgroundConnect</td><td align="right">31</td><td align="right">17</td><td align="right">134</td><td align="right">17</td><td align="right">31</td><td align="right">52</td></tr><tr><td>firstReactRender</td><td align="right">37</td><td align="right">29</td><td align="right">78</td><td align="right">7</td><td align="right">39</td><td align="right">48</td></tr><tr><td>getState</td><td align="right">9</td><td align="right">4</td><td align="right">41</td><td align="right">5</td><td align="right">8</td><td align="right">9</td></tr><tr><td>initialActions</td><td align="right">1</td><td align="right">0</td><td align="right">1</td><td align="right">0</td><td align="right">1</td><td align="right">1</td></tr><tr><td>loadScripts</td><td align="right">1305</td><td align="right">1155</td><td align="right">1664</td><td align="right">104</td><td align="right">1370</td><td align="right">1520</td></tr><tr><td>setupStore</td><td align="right">11</td><td align="right">5</td><td align="right">59</td><td align="right">9</td><td align="right">8</td><td align="right">9</td></tr></tbody></table></details>


author_association: COLLABORATOR
user: login: mcmire
created_at: 2025-04-09T21:48:10Z
body: Looks like I wasn't quite able to get this merged today. I'm out until Monday 4/14, so whoever wants to take this over and get this merged please feel free.
author_association: CONTRIBUTOR
user: login: stanleyyconsensys
created_at: 2025-04-10T01:39:32Z
body: > Looks like I wasn't quite able to get this merged today. I'm out until Monday 4/14, so whoever wants to take this over and get this merged please feel free.

will help to continue the work
author_association: CONTRIBUTOR
user: login: metamaskbot
created_at: 2025-04-10T02:18:53Z
body: <details><summary>Builds ready [5ed4f8e]</summary><ul><li>builds: <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/builds/metamask-chrome-12.15.2.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/builds-mv2/metamask-firefox-12.15.2.zip">firefox</a></li>
<li>builds (flask): <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/builds-flask/metamask-flask-chrome-12.15.2-flask.0.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/builds-flask-mv2/metamask-flask-firefox-12.15.2-flask.0.zip">firefox</a></li>
<li>builds (test): <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/builds-test/metamask-chrome-12.15.2.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/builds-test-mv2/metamask-firefox-12.15.2.zip">firefox</a></li>
<li>builds (test-flask): <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/builds-test-flask/metamask-flask-chrome-12.15.2-flask.0.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/builds-test-flask-mv2/metamask-flask-firefox-12.15.2-flask.0.zip">firefox</a></li>
<li>build viz: <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/build-viz/index.html">Build System</a></li>
<li>bundle size: <a href="https://diuv6g5fj9pvx.cloudfront.net/metamask-extension/14370440808/bundle-size/bundle_size.json">Bundle Size Stats</a></li>
<li>user-actions-benchmark: <a href="https://diuv6g5fj9pvx.cloudfront.net/metamask-extension/14370440808/benchmarks/benchmark-chrome-browserify-userActions.json">User Actions Stats</a></li>
<li>storybook: <a href="https://diuv6g5fj9pvx.cloudfront.net/metamask-extension/14370440808/storybook-build/index.html">Storybook</a></li>
<li>typescript migration: <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/ts-migration-dashboard/index.html">Dashboard</a></li>
<li><a href="https://app.circleci.com/pipelines/github/MetaMask/metamask-extension/jobs/4754917/artifacts/">all CircleCI artifacts</a></li>
<li><details>
       <summary>bundle viz:</summary>
       <ul><li>background: <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/background-0.html">0</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/background-1.html">1</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/background-2.html">2</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/background-3.html">3</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/background-4.html">4</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/background-5.html">5</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/background-6.html">6</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/background-7.html">7</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/background-8.html">8</a></li><li>common: <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/common-0.html">0</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/common-1.html">1</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/common-2.html">2</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/common-3.html">3</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/common-4.html">4</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/common-5.html">5</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/common-6.html">6</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/common-7.html">7</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/common-8.html">8</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/common-9.html">9</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/common-10.html">10</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/common-11.html">11</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/common-12.html">12</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/common-13.html">13</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/common-14.html">14</a></li><li>ui: <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/ui-0.html">0</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/ui-1.html">1</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/ui-2.html">2</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/ui-3.html">3</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/ui-4.html">4</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/ui-5.html">5</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/ui-6.html">6</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/ui-7.html">7</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/ui-8.html">8</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/ui-9.html">9</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/ui-10.html">10</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/ui-11.html">11</a>, <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/ui-12.html">12</a></li><li>content-script: <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/content-script-0.html">0</a></li><li>offscreen: <a href="https://output.circle-artifacts.com/output/job/090965a8-b170-412d-b003-1285e8f7cd23/artifacts/0/build-artifacts/source-map-explorer/offscreen-0.html">0</a></li></ul>
     </details></li></ul></details>

<details><summary>UI Startup Metrics (1206 ± 59 ms)</summary><table><thead><tr><th>Platform</th><th>BuildType</th><th>Page</th><th>Metric</th><th>Mean (ms)</th><th>Min (ms)</th><th>Max (ms)</th><th>Std Dev (ms)</th><th>P 75 (ms)</th><th>P 95 (ms)</th></tr></thead><tbody><tr><td rowspan="22">Chrome</td><td rowspan="11">Browserify</td><td rowspan="11">Home</td><td>uiStartup</td><td align="right">1206</td><td align="right">1089</td><td align="right">1448</td><td align="right">59</td><td align="right">1240</td><td align="right">1284</td></tr><tr><td>load</td><td align="right">1056</td><td align="right">968</td><td align="right">1234</td><td align="right">47</td><td align="right">1106</td><td align="right">991</td></tr><tr><td>domContentLoaded</td><td align="right">1050</td><td align="right">958</td><td align="right">1225</td><td align="right">46</td><td align="right">1107</td><td align="right">992</td></tr><tr><td>domInteractive</td><td align="right">17</td><td align="right">13</td><td align="right">57</td><td align="right">6</td><td align="right">17</td><td align="right">28</td></tr><tr><td>firstPaint</td><td align="right">712</td><td align="right">71</td><td align="right">1124</td><td align="right">419</td><td align="right">221</td><td align="right">90</td></tr><tr><td>backgroundConnect</td><td align="right">7</td><td align="right">4</td><td align="right">29</td><td align="right">3</td><td align="right">7</td><td align="right">8</td></tr><tr><td>firstReactRender</td><td align="right">20</td><td align="right">15</td><td align="right">51</td><td align="right">7</td><td align="right">19</td><td align="right">40</td></tr><tr><td>getState</td><td align="right">12</td><td align="right">4</td><td align="right">31</td><td align="right">7</td><td align="right">6</td><td align="right">8</td></tr><tr><td>initialActions</td><td align="right">0</td><td align="right">0</td><td align="right">1</td><td align="right">0</td><td align="right">0</td><td align="right">1</td></tr><tr><td>loadScripts</td><td align="right">813</td><td align="right">726</td><td align="right">981</td><td align="right">45</td><td align="right">836</td><td align="right">878</td></tr><tr><td>setupStore</td><td align="right">7</td><td align="right">5</td><td align="right">14</td><td align="right">2</td><td align="right">7</td><td align="right">8</td></tr><tr><td rowspan="11">Webpack</td><td rowspan="11">Home</td><td>uiStartup</td><td align="right">2157</td><td align="right">1739</td><td align="right">2457</td><td align="right">188</td><td align="right">2310</td><td align="right">2385</td></tr><tr><td>load</td><td align="right">1714</td><td align="right">1354</td><td align="right">2137</td><td align="right">152</td><td align="right">1781</td><td align="right">1970</td></tr><tr><td>domContentLoaded</td><td align="right">1706</td><td align="right">1350</td><td align="right">2132</td><td align="right">150</td><td align="right">1777</td><td align="right">1954</td></tr><tr><td>domInteractive</td><td align="right">17</td><td align="right">12</td><td align="right">62</td><td align="right">11</td><td align="right">14</td><td align="right">52</td></tr><tr><td>firstPaint</td><td align="right">160</td><td align="right">64</td><td align="right">378</td><td align="right">62</td><td align="right">245</td><td align="right">83</td></tr><tr><td>backgroundConnect</td><td align="right">31</td><td align="right">9</td><td align="right">245</td><td align="right">30</td><td align="right">36</td><td align="right">62</td></tr><tr><td>firstReactRender</td><td align="right">145</td><td align="right">53</td><td align="right">380</td><td align="right">103</td><td align="right">62</td><td align="right">93</td></tr><tr><td>getState</td><td align="right">18</td><td align="right">4</td><td align="right">277</td><td align="right">36</td><td align="right">7</td><td align="right">9</td></tr><tr><td>initialActions</td><td align="right">3</td><td align="right">1</td><td align="right">7</td><td align="right">1</td><td align="right">3</td><td align="right">5</td></tr><tr><td>loadScripts</td><td align="right">1700</td><td align="right">1349</td><td align="right">2129</td><td align="right">147</td><td align="right">1774</td><td align="right">1925</td></tr><tr><td>setupStore</td><td align="right">23</td><td align="right">6</td><td align="right">274</td><td align="right">38</td><td align="right">7</td><td align="right">9</td></tr><tr><td rowspan="22">Firefox</td><td rowspan="11">Browserify</td><td rowspan="11">Home</td><td>uiStartup</td><td align="right">1367</td><td align="right">1187</td><td align="right">1762</td><td align="right">125</td><td align="right">1423</td><td align="right">1620</td></tr><tr><td>load</td><td align="right">1222</td><td align="right">1051</td><td align="right">1642</td><td align="right">119</td><td align="right">1280</td><td align="right">1461</td></tr><tr><td>domContentLoaded</td><td align="right">1222</td><td align="right">1051</td><td align="right">1640</td><td align="right">119</td><td align="right">1279</td><td align="right">1460</td></tr><tr><td>domInteractive</td><td align="right">98</td><td align="right">39</td><td align="right">270</td><td align="right">30</td><td align="right">89</td><td align="right">96</td></tr><tr><td>firstPaint</td><td align="right">NaN</td><td align="right">NaN</td><td align="right">NaN</td><td align="right">NaN</td><td align="right">NaN</td><td align="right">NaN</td></tr><tr><td>backgroundConnect</td><td align="right">20</td><td align="right">13</td><td align="right">80</td><td align="right">9</td><td align="right">20</td><td align="right">38</td></tr><tr><td>firstReactRender</td><td align="right">23</td><td align="right">19</td><td align="right">55</td><td align="right">6</td><td align="right">24</td><td align="right">34</td></tr><tr><td>getState</td><td align="right">11</td><td align="right">4</td><td align="right">201</td><td align="right">23</td><td align="right">7</td><td align="right">9</td></tr><tr><td>initialActions</td><td align="right">0</td><td align="right">0</td><td align="right">2</td><td align="right">0</td><td align="right">0</td><td align="right">1</td></tr><tr><td>loadScripts</td><td align="right">1204</td><td align="right">1036</td><td align="right">1627</td><td align="right">119</td><td align="right">1260</td><td align="right">1440</td></tr><tr><td>setupStore</td><td align="right">7</td><td align="right">4</td><td align="right">38</td><td align="right">6</td><td align="right">6</td><td align="right">7</td></tr><tr><td rowspan="11">Webpack</td><td rowspan="11">Home</td><td>uiStartup</td><td align="right">1506</td><td align="right">1340</td><td align="right">1848</td><td align="right">107</td><td align="right">1570</td><td align="right">1675</td></tr><tr><td>load</td><td align="right">1297</td><td align="right">1162</td><td align="right">1648</td><td align="right">97</td><td align="right">1355</td><td align="right">1467</td></tr><tr><td>domContentLoaded</td><td align="right">1296</td><td align="right">1162</td><td align="right">1648</td><td align="right">97</td><td align="right">1354</td><td align="right">1467</td></tr><tr><td>domInteractive</td><td align="right">93</td><td align="right">37</td><td align="right">212</td><td align="right">27</td><td align="right">86</td><td align="right">95</td></tr><tr><td>firstPaint</td><td align="right">NaN</td><td align="right">NaN</td><td align="right">NaN</td><td align="right">NaN</td><td align="right">NaN</td><td align="right">NaN</td></tr><tr><td>backgroundConnect</td><td align="right">22</td><td align="right">14</td><td align="right">46</td><td align="right">7</td><td align="right">24</td><td align="right">40</td></tr><tr><td>firstReactRender</td><td align="right">34</td><td align="right">28</td><td align="right">51</td><td align="right">5</td><td align="right">36</td><td align="right">44</td></tr><tr><td>getState</td><td align="right">8</td><td align="right">4</td><td align="right">29</td><td align="right">5</td><td align="right">8</td><td align="right">9</td></tr><tr><td>initialActions</td><td align="right">0</td><td align="right">0</td><td align="right">1</td><td align="right">0</td><td align="right">1</td><td align="right">1</td></tr><tr><td>loadScripts</td><td align="right">1277</td><td align="right">1148</td><td align="right">1628</td><td align="right">96</td><td align="right">1338</td><td align="right">1450</td></tr><tr><td>setupStore</td><td align="right">9</td><td align="right">5</td><td align="right">47</td><td align="right">6</td><td align="right">8</td><td align="right">8</td></tr></tbody></table></details>


author_association: COLLABORATOR