Our middleware for handling subscription and filter-related methods (`eth-json-rpc-filters`) currently lives in our RPC pipeline ahead of the network stack. This commit moves this middleware to the network client middleware instead. There are two reasons for this change. First, this middleware wraps RPC methods that are supported by the network. Second, it is necessary for this middleware to live with the network client so that it will aid us in unifying the NetworkController in this repo and the NetworkController in the `controllers` repo.
Co-authored-by: Elliot Winkler <elliot.winkler@gmail.com>
The network controller module has been renamed from `network.js` to
`network-controller.js`. All of our newer controllers have "controller"
in the module names, so this aligns better with that convention. It
also brings the test module name into alignment (it's already called
"network-controller.test.js").
* Make `initializeProvider` and `lookupNetwork` async
These two methods were "synchronous" previously, but initiated an
asynchronous operation. They have both been made `async` to bring them
more in-line with the mobile controller API, and to make them easier
to test.
This should include zero functional changes. These methods are still
being invoked without an `await`, to preserve the same behaviour they
had previously.
This relates to https://github.com/MetaMask/controllers/issues/971
* Move 'net_version' query to private function
* Fix error made when resolving conflicts
* Refactor to improve readability
* ConfirmToken: fix token balance onboarding v1
this UI/UX should be deprecated following PR#16740, maybe v10.25
* TokenApproval: use precision for token balance
* EditApproval: calc utilizing existing util
* ui: add common constant PASSWORD_MIN_LENGTH=8
* ui: simplify password validation logic
* ui: getPasswordStrengthLabel using t from context
Co-authored-by: Alex Donesky <adonesky@gmail.com>
* Recipient name passed to confirm-page-container component should be used if pet name exists for the to address
* Ensure recipient edit/add popup is shown for non-owned accounts
* Ensure contract name is rendered if it exists for recipient address
* Ensure that shortened address is last fallback after account, addressbook, token and ens names
* added housekeeping for avatar network
* fixed alt
* updated story in Readme
* fixed indentation and added network src
* updated SIZES for avatar network
* updated snapshot
* updated docs and props
* updated name of avatar
* removed comments
* updated avatar network component
* updated readme
* updated story for badge
* added constants to the root
* Recipient name passed to confirm-page-container component should be used if pet name exists for the to address
* Ensure recipient edit/add popup is shown for non-owned accounts
* Ensure contract name is rendered if it exists for recipient address
* Ensure that shortened address is last fallback after account, addressbook, token and ens names
* Onboarding: Set SeedPhraseBackedUp when appropriate
* Dispatch setSeedPhraseBackedUp
* Fix test
* Make call async
* Fix test
* Fix test
* enhance test
Co-authored-by: Alex <adonesky@gmail.com>
This commit affects the network client tests, which were added in a
previous PR to test the behavior of `createInfuraClient`, a function
called that sets up a portion of the middleware stack in the JSON-RPC
layer.
An `if` statement appears in the tests which limits the execution of
certain tests. However, this seems to have been added for debugging
purposes and is not actually needed.
Co-authored-by: Brad Decker <bhdecker84@gmail.com>
A `debug` flag has been added to our e2e test runner scripts, enabling
e2e debug logs. When this flag is enabled, all driver interactions will
be logged to the console. This is extremely useful when debugging e2e
tests, because it lets you known how far the test had progressed before
failing.
This flag should work with all existing e2e test scripts, including
both `test:e2e:single` and all of the test commands that run entire
test suites.
The README has been updated to reference this flag in the section
regarding how to run a single e2e test. To ensure this wasn't totally
missed for the other scripts, I added a line suggesting that users use
`--help` to see all supported options.
Five network controller methods have been renamed to start with an
underscore:
* `getLatestBlock`
* `setNetworkState`
* `setNetworkEIPSupport`
* `clearNetworkDetails`
* `setProviderConfig`
All of these methods were used solely within the network controller.
The leading underscore now documents these methods as being private.
A few tests required updates as well because they were stubbing out one
of these methods.
This should include zero functional changes.
This relates to https://github.com/MetaMask/controllers/issues/971
The network state is now passed to the TransactionController via a
getter function and a subscription function, instead of passing one of
the network controller stores directly.
This way of passing the state makes further refactoring easier, as we
don't have to change the input when the store is changed or replaced.
It's also more aligned with our conventions today.
This change was made as part of a larger refactor of the network
controller, as part of the effort to merge the mobile and extension
network controllers.
* fix issue when navigating back into the onboarding flow after completing onboarding
* disable navigating back into the onboarding flow
* lint
* fix test
* lint