* Add permission cell component
Add storybook and handling for revoked permission colors
* Fix things after conflict resolve after rebase
* Add code refactoring and minor UI changes
* Add permission cell component to snap-update flow
* Update storybook
* Add unit tests for permission cell
* Update component padding
* Fix spacing between permission cells
* Fix main icon color for approved permissions
* Update width value with constant
We want to convert NetworkController to TypeScript in order to be able
to compare differences in the controller between in this repo and the
core repo. To do this, however, we need to convert the dependencies of
the controller to TypeScript.
As a part of this effort, this commit converts
`shared/constants/metametrics` to TypeScript. Note that simple objects
have been largely replaced with enums. There are some cases where I even
split up some of these objects into multiple enums.
Co-authored-by: Mark Stacey <markjstacey@gmail.com>
* added site connection menu component
* reverted change for unlock page
* updated snapshot
* updated state with useSelector
* updated state for connected
* updated icons
* updated test
* updated snapshot
* moved component to multichain folder
* updated color
* added multichain connection to menu bar
* updated default color
* updated css
* updated multichain site with connected site info
* updated ui for not connected state
* removed scripts
* updated lint errors
* updated lint errors
* updated stories
* updated story for not connected to current state
* updated story for not connected to current state
* updated badge to 16px
* updated badge position
* updated snapshot
* fixed lint errors
* updated not connected state icon
* updated constants for status and added new locale string
The `network` store of the network controller crams two types of data
into one place. It roughly tracks whether we have enough information to
make requests to the network and whether the network is capable of
receiving requests, but it also stores the ID of the network (as
obtained via `net_version`).
Generally we shouldn't be using the network ID for anything, as it has
been completely replaced by chain ID, which all custom RPC endpoints
have been required to support for over a year now. However, as the
network ID is used in various places within the extension codebase,
removing it entirely would be a non-trivial effort. So, minimally, this
commit splits `network` into two stores: `networkId` and
`networkStatus`. But it also expands the concept of network status.
Previously, the network was in one of two states: "loading" and
"not-loading". But now it can be in one of four states:
- `available`: The network is able to receive and respond to requests.
- `unavailable`: The network is not able to receive and respond to
requests for unknown reasons.
- `blocked`: The network is actively blocking requests based on the
user's geolocation. (This is specific to Infura.)
- `unknown`: We don't know whether the network can receive and respond
to requests, either because we haven't checked or we tried to check
and were unsuccessful.
This commit also changes how the network status is determined —
specifically, how many requests are used to determine that status, when
they occur, and whether they are awaited. Previously, the network
controller would make 2 to 3 requests during the course of running
`lookupNetwork`.
* First, if it was an Infura network, it would make a request for
`eth_blockNumber` to determine whether Infura was blocking requests or
not, then emit an appropriate event. This operation was not awaited.
* Then, regardless of the network, it would fetch the network ID via
`net_version`. This operation was awaited.
* Finally, regardless of the network, it would fetch the latest block
via `eth_getBlockByNumber`, then use the result to determine whether
the network supported EIP-1559. This operation was awaited.
Now:
* One fewer request is made, specifically `eth_blockNumber`, as we don't
need to make an extra request to determine whether Infura is blocking
requests; we can reuse `eth_getBlockByNumber`;
* All requests are awaited, which makes `lookupNetwork` run fully
in-band instead of partially out-of-band; and
* Both requests for `net_version` and `eth_getBlockByNumber` are
performed in parallel to make `lookupNetwork` run slightly faster.
* add fallbacks for confirmation title on nft transfers
* Add token name and id
* fix
* fix test
---------
Co-authored-by: David Walsh <davidwalsh83@gmail.com>
* added the rest of the sev1 warnings to getSnapInstallWarnings
* added and updated translations
* Updated getSnapInstallWarnings to include warnings for all weight-1 permissions
* Updated snap install warning and css according to designs
* fix snaps tests
* fixed alignment/spacing
* updated e2e tests to click through the newly displayed public key access warning
* lint fix
* fixed update snap test
* refactored getSnapInstallWarnings, moved logic to PERMISSION_DESCRIPTIONS
* fix logic to account for objects & arrays
* update function description
* add missing properties to ethereum provider description
* moved id and message to baseDescription to fix error
* add optional chaining to fix undefined error
* more optional chaining
* more optional chaining
* Ensure that NonInfuraDefaultNetworks are only selected in the dropdown if they are the currently selected network
* Ensure Linea Goerli network appears in network settings tab if added manually
* feat: add the consensys zkEVM as a default network
* fix: change infuraNetworkStatus in navigate-txs file
* fix: remove account tracker for zkEVM + remove zkEVM from infura list
* fix: change consensys zkevm name to linea + change rpc url for linea network
* fix: rebase conflicts
* feat: add new colors for linea goerli network
* feat: add new function inside network dropdown to render non infura networks
* feat: add feature toggle for linea network
* fix: add new unit test
---------
Co-authored-by: Dan J Miller <danjm.com@gmail.com>
The `HardwareKeyringTypes` constant has been renamed to `KeyringTypes`
and moved to a separate constants module, to reflect that it contains
more than just hardware wallet keyring types. This corrects a mistake
made recently during a TypeScript conversion.
* Add tooltips to show info about a permission
* Make Tooltip component in scope regardless of build type
* Add descriptions
* Add translation variables and fix tooltip
* Use new icons
* Add missing description after rebase
* Fix build issues
* Fix icons
* Fix translation
* Add missing description
* Fix Ethereum icon
* Update coverage
* adding base what's new for NFT autodetection
* lintfix
* Adding nfts svg image
* adding new notification to fixture builder for e2e
* lint:fix
* Adding new messaging, styling what's new
* styling descriptions, increasing fullscreen height
* applying firstNotification styling to NFT whats new announcement
* adding scrollDown button to whats new popup
* adding Opensea announcement, removing old announcement, moving scrollDown button up to popover component
* verify-locales:fix
* updating icon
* NFTs: Remove feature flag for release
* Update security tab jest test
* Fix broken test
* Update snapshot
* Update test
* Fix test
* Remove last usages of flag
* Update CI jobs
* Fix jest tests
* Use tokenList to get token details, when available, in getTokenStandardAndDetails
Previously, every call to getTokenStandardAndDetails would fetch data via the provider.
This would result in at least 3 network requests whenever that method is called for an
ERC20 token, contributing to unneccesary loading and lagging in multiple places.
This commit takes advantage of stored data we already have available to avoid the unnecessary
loading.
* Lint fix
* Fix build-quote test
* bump coverage targets
* Pass provider to token-util, for use in ethers Contract module
* Check all possible sources of ERC20 token data before async call to assetsContractController
* Add and update tests
* Update app/scripts/metamask-controller.js
Co-authored-by: Alex Donesky <adonesky@gmail.com>
* Update app/scripts/metamask-controller.js
Co-authored-by: Alex Donesky <adonesky@gmail.com>
* Remove unnecessary this.ethQuery changes
* Use metamask-eth-abis instead of human-standard-token-abi in token-util.ts
* Add explanatory comments to getTokenStandardAndDetails
* lint fix
* Cleanup
* fix test
* Update app/scripts/metamask-controller.js
Co-authored-by: Alex Donesky <adonesky@gmail.com>
* update error message
---------
Co-authored-by: Alex Donesky <adonesky@gmail.com>
* Add Bridge button
* Add newline to the end of bridge svg
* Move Portfolio button
* Vertically center Portfolio button
* Use IconButton for Portfolio button
* Change portfolio button size
* Lowering coverage to get this in for release by a very small amount
* Add unit tests for Portfolio button
---------
Co-authored-by: georgewrmarshall <george.marshall@consensys.net>
* Fix incorrect balance in signature request header
* Fix unit tests
* Fix tests and increase unit test coverage
* actually fix unit tests
---------
Co-authored-by: Dan Miller <danjm.com@gmail.com>
* feat: disable deposit popover and replace it with global redirect to onramp on pdapp
* feat: remove legacy code for hardcoded onramp providers
* fix: remove unused visuals and components related to legacy code of deposit popover
* fix: remove unused messages
* feat: use a custom hook for all onramps related methods and variables
* fix: modify the custom hook implementation to include test networks
* fix: remove deprecated file buy-url
* fix: remove references for deleted deposit logos
* fix: network-controller failing unit test
* fix: snapshot loading-swaps-quotes-stories-metadata.test.js.snap
* fix: storybook tests
* fix: remove unused constatns related to buyable onramp chains
* fix: remove unused variables and fix eslint
* adding unit test for useRamps custom hook
* feat: add comment on the proper usage of useRamps within confirm-page-container component
* fix: add unit tests for buy button in token-overview page
* fix: add unit test for open the buy crypto URL for a buyable chain ID in token page
* feat: add unit test coverage for eth-overview page
* fix: update locales
* feat: add desktop enable button component
This component will be added
to the experimental page. Users
will then be able to initialize
a desktop connection
* feat: add desktop pairing page
* feat: add desktop deep-linking shared lib
* test: add initial entries to render helper
Allow specifying initialEntries for
MemoryRouter. This change will allow
testing pages that use the useParam
hook.
* feat: add desktop error page
Error page for any desktop pairing
related issue
* feat: add desktop routes to route component
* feat: add enable desktop button to experimental tab
* feat: add desktop icon when paired in dev mode
* feat: disable ledger live control when desktop enabled
* feat: register desktop error actions on ui init
* fix: add missing code fencing
* chore: remove enable desktop rpc middleware
Now that we are adding the UI
there's no need for this rpc middleware
(as it was used to test desktop background
code)
* fix: display experimental tab for desktop
* refactor class to functional component
* update messages
* fix: use classnames
* feat: add hold to reveal modal
* feat: add new zendesk url for secret recovery phrase and noncustodial wallet
* update: clipboard to clear copied text after delay
* fix: remove save to csv
* feat: update styles for reveal seed page
* fix: update reveal seed snapshot
* add test to check for modal
* fix: lint
* fix: unused messages locale
* fix: use new banner component
* fix: use new button from design system
* fix: update snapshot
* fix: lint
* revert text
* fix: lint
* fix: remove --copy-only
* fix: marginBottom prop value
* fix: iconName and prop error
* --made the QR code slightly smaller so it's less likely to have a scrollbar
--updated the snapshots
* fix: error message not displaying
* SRP hold to reveal using more DS components (#17583)
* Updating to add DS components and remove CSS
* Fixing rendered html and removing some unneeded props
* fix: set block to true
---------
Co-authored-by: Monte <monte.lai@consensys.net>
* fix: add descriptions to messages
* Update ui/components/ui/export-text-container/export-text-container.component.js
fix: lint
Co-authored-by: HowardBraham <HowardBraham@users.noreply.github.com>
* fix: remove using displayWarning in requestRevealSeedWords
* fix: update test to remove displayError
* fix: update design system enums
* fix: messages descriptions
* fix: banner to banneralert
* fix: update preview
* add additional tests
* fix: use jest instead of sinon
* add test if long press isn't completed
* add test if password is wrong
---------
Co-authored-by: Howard Braham <howrad@gmail.com>
Co-authored-by: George Marshall <george.marshall@consensys.net>
* UX: Update block explorer icon
* Removing unneeded CSS and some HTML bloat
* Removing unneeded className
* Removing unneeded CSS and reducing HTML bloat for ContractTokenValues
---------
Co-authored-by: georgewrmarshall <george.marshall@consensys.net>
* Add ipfs gateway and collectible state to mock-state.json
* Add collectible-default-image test with snapshot and testids
* Add Collectible Details test, snapshot, and test-ids
* Add Collectible Options tests and test-ids
* Add Collectible Items test and test-ids.
* Add more tests to Add Collectible component
* Update Security Tab snapshot with ipfs gateway state value
* Add data-testid to Menu component for menu background
* Lint
* Bump coverage targets
* Remove commented import
---------
Co-authored-by: David Walsh <davidwalsh83@gmail.com>
* Add hardcoded list of human-readable snap names
* Make the text properly bold
* Small style fixes to approval screen
* Run yarn lint:fix
* Update snapshots
Co-authored-by: Pedro Figueiredo <pedro.figueiredo@consensys.net>
Co-authored-by: Dan J Miller <danjm.com@gmail.com>
Co-authored-by: Brad Decker <bhdecker84@gmail.com>
* Fixed navigation through multiple unapproved transactions for ERC20 tokens
* Fixed tx details activity-log currency
* Fixed e2e test failure
* Added navigation between multiple sign prompts and reject all sign prompts
* Resolving conflicts
* Creating SignatureRequestNavigation component and extracting the UI rendering part into a single component
* Fixing e2e tests and updating snapshot
* Using single component for navigation which shows both messages and transactions requests
* Fixing test-unit-jest-main
* Added more unit tests
* Fixing test-storybook
* Fixing test-storybook
---------
Co-authored-by: Filip Sekulic <filip.sekulic@consensys.net>
* Use network provider state, instead of CurrencyRateController state, select 'nativeCurrency'
* Fix unit tests
* Lint fix
* Only use the network provider ticket for the native currency when useCurrencyRateCheck is false
* Fix unit test
* Fix tests for real
* added storybook test runner
* added test runner in ci
* updated test for ci and fixed lint error
* updated lavamoat policy
* updated test command
* updated playwright
* changed command to storybook;ci
* updated command
* updated instance for test-storybook
* updated playwright
* added playwright step
* replaced concurrently with start-server-and-test
* updated the static storybook directory
* replaced first with last
* updated lock file
* replaced first with last
* updated test-storybook with maxworkers
* updated .depchechrc
* updated yml
* removed id from banner base
* replaced broken stories with .stories-to-do.js extesnsion
* updated token allowance story
* removed duplicacies from yarn
* fixed lavamoat
* removed filename comment
* updated links for docs
* fixed file extension for stories
* updated path for stories.json
* updated stories.json path
* yarn updated
* updated stories
* updated yarn
* updated wait on
* Fixing error when user input some letter in token allowance flow
* Rename the regex variable name and added a brief comment above its definition
Co-authored-by: Pedro Figueiredo <pedro.figueiredo@consensys.net>
* Add transaction activity log component
* Remove duplicate tx activity log snapshot.
* Convert Advanced Tab to tlr.
* Lint fix
* Change ENS to DNS in mock state data.
* Add test ids for speedup, cancel, rety buttons.
* Convert TransactionListItemDetails component to RTL.
* Convert PageContainerHeader component to RTL.
* Convert TokenInput component to RTL.
* Convert UnitInput component to RTL.
* Convert withModalProps to RTL.
* Convert i18n-helper to RTL.
* Convert ConfirmSeedPhrase component to TLR.
* Convert AddRecipient component to RTL.
* Set process.env metamask build type to 'main' for test
Co-authored-by: Brad Decker <bhdecker84@gmail.com>
Co-authored-by: Pedro Figueiredo <pedro.figueiredo@consensys.net>
* Validating or restricting the number of digits after the decimal point that the user can enter and styles for Max button and description with error message
* Use better solution for validation the number of digits on token allowance flow
* fix: Display primaryType in signTyped instead of 'Message' string
* fix: added #17077 to changelog
* fix: remove unused signatureRequest1 message to fix test-lint failure
* Update CHANGELOG.md
Co-authored-by: Dan J Miller <danjm.com@gmail.com>
* test: add assertion for the primaryType to signature-request component test
Co-authored-by: Brad Decker <bhdecker84@gmail.com>
Co-authored-by: Dan J Miller <danjm.com@gmail.com>
* Align custom spending cap Max button in approve screen for multiple languages
* Modify some css styles and adding Box props
* Using ButtonLink component instead of <button/>
Co-authored-by: Brad Decker <bhdecker84@gmail.com>
* dealt with most of the problems in the Create Account dialog
* Fixed "newAccountNumberName" localizations
* In another language, don't allow accounts named, for instance, Cuenta 3
* Editing an account name later now follows the same rules
* Fixing lint errors
* Responding to the review by @adonesky1
* Worked with @montelaidev to alter the RegExp, in order to catch spaces before and after the account name
* Fixed line breaks for eslint
* 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
* Privacy - Allow users to set a custom RPC from the onboarding process (#16767)
* Privacy - Allow adding custom IPFS from onboarding (#16782)
* Privacy - Show default selected network after a custom network has been added during onboarding
* WIP: Show dropdown list of networks
* Add network switcher to the onboarding advanced privacy screen
* Fix duplicate imports
* Provide default for networks
* Update ui/helpers/utils/ipfs.js
Co-authored-by: legobeat <109787230+legobeat@users.noreply.github.com>
* Fix lint
* Remove unwanted changes
* Fix lint
Co-authored-by: legobeat <109787230+legobeat@users.noreply.github.com>
* Expose transaction origin to transaction insight snaps
* Support multiple icons for each label for a permission
* Add transaction insight origin permission
* Fix fencing
* Fix import and permission crash
* Use function properly for connected accounts
Fix e2e test
Update siteicon for v4 signature type
Code refactor
Code refactor
Remove origin and address in signatrue request
Update e2e tests
Use getNetworkName function
Move header component inline jsx
Update snaps
* Add beta home banner to home screen
* Move the beta home notification to the app-header
* Updates to formatting
* Add beta home banner to home screen
* Move the beta home notification to the app-header
* Updates to formatting
* Update ui/components/app/app-header/index.scss
Co-authored-by: George Marshall <george.marshall@consensys.net>
* Update ui/components/app/app-header/index.scss
Co-authored-by: George Marshall <george.marshall@consensys.net>
* Update ui/components/app/app-header/index.scss
Co-authored-by: George Marshall <george.marshall@consensys.net>
* Move banner to top of page
* Move to own folder, update styles
* Swith to BOX component
* Address feedback
* Add tests
* Update name of component
* Fix tests
* Fix proptype errors
* Fixups
* Remove unrelated changes
* Remove unwanted string changes
* Update beta component name and text
* Update mock data
Co-authored-by: George Marshall <george.marshall@consensys.net>
The controllers package has been updated to v33. The only breaking
change in this release was to rename the term "collectible" to "NFT"
wherever it appeared in the API.
Changes in this PR have been kept minimal; additional renaming can be
done in separate PRs. This PR only updates the controller names,
controller state, controller methods, and any direct references to
these things. NFTs are still called "collectibles" in most places.
* Prevent user from editing a contract interaction created by a dapp
* Code cleanup
* Fix e2e test selector
* Fix e2e test
* Fix e2e test
* Update snapshot
* Replaced addresses by the address component on SignTypedData v4 signatures
* Fixing signature-request e2e tests
* Modified scss file for signature-request message
* Using address component for rendering the addresses and bold label where hex address is not valid
* Modify the address component
* Added proper BEM syntax for class names and used Box and Typography
* FIxing e2e tests
* Commited requested changes from George and added storybook
* Review requested changes
* Created new component for rendering data in signature-request-message.js
* Fixing proper usage for getAccountName and getMetadataContractName selectors
* Fixing e2e tests
* snaps insight error catching and error state
* revert confirm-transaction-base changes
* display empty state if data is null
* add loading state
* reset errors and loading state on call
* update hasNoData
* update length check in component
* Enable "Add Popular Network" feature by default
* Fixing e2e tests
* Attempt to fix e2e tests
* Revert "Attempt to fix e2e tests"
This reverts commit d88e8944b8df8f7c3075753f8d8b3480439f8e30.
* Get e2e tests passing
Co-authored-by: Dan J Miller <danjm.com@gmail.com>
* Remove ETH badge from NetworkAccountBalanceHeader when on non-ETH networks
* Network specific icons, or fallback, in the network-account-balance-header
* Update snapshots
* Code cleanup
Co-authored-by: Dan Miller <danjm.com@gmail.com>
* Fix inputs that should allow decimals
* Update e2e test to cover inputting of decimals in advanced fields
* Update e2e test to cover inputting of decimals in advanced fields
* Fix e2e tests
* Add transaction activity log component
* Remove duplicate tx activity log snapshot.
* Convert tx breakdown row to tlr.
* Convert tx status component to tlr.
* Convert User Preferenced Currency Display test to tlr.
* Consolidate and convert user-preferenced-currency-input.test.js to tlr.
* Consolidate and convert user-preferenced-token-input test to tlr.
* Deprecating Rinkeby, setting default debug network to Goerli
* Deprecating Ropsten and Kovan
* Conflict fix
* Remove unused localization, test fixes
* Add migration for moving used deprecated testnets to custom networks
* Fix migrator test
* Add more unit tests
* Migration updates provider type to rpc if deprecated network is selected
* Migration fully and correctly updates the provider if selected network is a deprecated testnet
* Continue to show deprecation warning on each of rinkeby, ropsten and kovan
* Add rpcUrl deprecation message to loading screen
* Removing mayBeFauceting prop
Co-authored-by: Dan Miller <danjm.com@gmail.com>
* Update mock state data
* Convert App Header test to tlr.
* Convert Gas Timing test to tlr.
* Convert Account Details Modal to tlr.
* Update Sig Req test to match mock state changes.
* Add test-ids to Editable Label for Account Details Modal
* Adjust selectors test for the mock state update.
* Add back gasIsLoading for selectors test.
* Don't display DetectedTokenSelectionPopover if there are no detected tokens
* adding length greater than 0 check as a 0 is displayed at the end of teh page previously
Co-authored-by: Niranjana Binoy <43930900+NiranjanaBinoy@users.noreply.github.com>
Co-authored-by: ryanml <ryanlanese@gmail.com>