* Fix#19439 - Allow Account Picker during Send flow
* Disable any network change with confirmations pending
* Disable the settings menu during an unconfirmed transaction
* Update message manager and signature controller
The packages `@metamask/message-manager` and
`@metamask/signature-controller` have been updated to the latest
versions. These versions were part of part of the [core monorepo v53](MetaMask/core#1385)
release. The remaining packages released as part of v53 will be updated
in later PRs.
These releases included a few breaking changes, but none that affect
the extension. Both packages now expect `getCurrentChainId` to return
`Hex`, but that was already the case here. Additionally the signature
controller now has a peer dependency on the approval controller v3,
which is already present and at the correct version.
Relates to #19271
* Ignore error caused by TS bug
* Update types to omit metadata for encryption requests
* Update lavamoat policy
* UX: Multichain: Move Add Account and Import Account into Account Menu Popover
* Create a new CreateAccount component for the Account Menu
* Add actions for import form
* Use separate actions for cancel vs. submit
* Fix jest tests
* Remove commented route navigation
* Accommodate for failing import
* Fix tests
* Remove routes for new account and import
* Remove old create account page
* Move import-account files to multichain directory
* Fix paths on the import files
* Remove deprecated component library variables
* Fix error property of add form
* Fix user-actions-benchmark
* Update `@metamask/gas-fee-controller` to v6
The `@metamask/address-book-controller` package has been updated to v3.
This version was part of the [core monorepo v53](MetaMask/core#1385)
release. The remaining packages released as part of v53 will be updated
in later PRs.
This release included a number of breaking changes, but most of them
do not affect the extension:
* Bump to Node 16
* The extension already uses Node.js v16
* The `getChainId` constructor parameter now expects a `Hex` return
type rather than a decimal string
* The extension was already passing in a `getChainId` parameter that
returned `Hex`
* The gas fee controller messenger now requires the
`NetworkController:stateChange` event instead of the
`NetworkController:providerConfigChange` event
* This does not apply if `onNetworkStateChange` and `getChainId` are
provided to the constructor, which is the case here.
* Update `@metamask/network-controller` dependency and peer dependency
* This dependency is only used for types, and none of the type
changes affect how the extension interacts with this controller.
The one change that did have an impact is that the constructor
parameter `onNetworkStateChange` now expects event handlers to be
passed the full network state.
Relates to #19271
* Ensure chainid always matches mainnet in test builds
This is a bit strange, but this is how the tests were setup previously.
* Fix accidental state mutation
* Remove hardcoded mainnet chain ID from test builds
Unlike Yarn Classic, Yarn Berry will not verify that the current version
of Node being used matches the `engines` field in `package.json`.
However, someone has written a plugin, [`engines`][1], that provides
this missing functionality, and this commits adds that plugin. This
should ensure that all developers are using the correct version of Node.
(In addition to checking the current Node version, the plugin also
checks the current Yarn version.)
[1]: https://github.com/devoto13/yarn-plugin-engines
* Update Snaps privacy notice
* Add changes to finalize update requirements
* Update scroll icon color
* Fix unit tests
* Update link
* Address small change requests
* Fix unit test
* move terms of use link to variable
---------
Co-authored-by: Guillaume Roux <guillaumeroux123@gmail.com>
The core version of NetworkControler features a controller action,
`NetworkController:getEthQuery`, which, as its name implies, can be used
to get the EthQuery instance that has been created specially to talk to
the currently selected network. As a result there is a corresponding
unit test for this action.
To make the test suites between this version of NetworkController and
core easier to compare, this commit adds the action along with its test.
When using older versions of 16.x we may get this error when attempting
to build the extension:
TypeError: Cannot assign to read only property 'Symbol(Symbol.iterator)' of object '[object Set]'
at Object.buildAllowedFlags (node:internal/process/per_thread:375:53)
at process.get [as allowedNodeEnvironmentFlags] (node:internal/bootstrap/node:279:34)
at get (<anonymous>)
at getOwn (node:internal/bootstrap/loaders:182:5)
at NativeModule.syncExports (node:internal/bootstrap/loaders:294:31)
at ModuleWrap.<anonymous> (node:internal/bootstrap/loaders:274:22)
at NativeModule.getESMFacade (node:internal/bootstrap/loaders:279:17)
at NativeModule.compileForPublicLoader (node:internal/bootstrap/loaders:259:10)
at loadNativeModule (node:internal/modules/cjs/helpers:49:9)
at Function.Module._load (node:internal/modules/cjs/loader:804:15)
This error goes away when upgrading to a later version of 16.x.
To make sure this isn't an issue going forward, this commit bumps the
Node version requirement in `package.json`. 16.20.0 happens to be the
latest version of 16.x (to date).
* Make eth_accounts return all permitted accounts rather than just the most recently selected one
* fixup! Make eth_accounts return all permitted accounts rather than just the most recently selected one
* Trigger
---------
Co-authored-by: legobeat <109787230+legobeat@users.noreply.github.com>
Co-authored-by: Jiexi Luan <jiexiluan@gmail.com>
Three e2e tests have been updated to fix a possible race condition
causing intermittent e2e test failures.
In each of the updated tests, the test checks the current network.
The check is performed as a two-step process: locate the current
network element, then check the text to ensure it's correct.
This fails when the test driver finds the element before it re-renders.
If the test runs too quickly, it compares the text before the switch
is shown on screen, and the test fails.
Instead the tests use the element locator to describe what they want.
This tells the test driver to keep looking until the conditions are
met, ensuring the test doesn't fail unless the network switch takes
longer than the default timeout (which should not happen).
This is a good example of why we should avoid using assertions on
elements in e2e tests. Express your assertions as locators instead to
make the test more resilient in the case where the test runs before the
next render.
* issue-18714: Replaced deprecated constants with enum in eth-sign-modal.js
* issue-18714: Replaced deprecated constants with enum in hold-to-reveal-modal.js
* Update snap installation permission warning UI
* Fix font size (TextVariant)
* Fix vertical margins between labels
* Update font weight in warning top description
* Update snapName for warning modal on update flow