1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-22 01:47:00 +01:00
Commit Graph

2366 Commits

Author SHA1 Message Date
Matthew Walsh
37209a7d2e
Replace IncomingTransactionsController with helper (#20378)
Remove the IncomingTransactionController and replace it with an internal helper class.
Move incoming transactions into the central transactions object.
Create a new RemoteTransactionSource interface to decouple incoming transaction support from Etherscan.
Split the incoming transaction logic into multiple files for easier maintenance.
2023-08-22 10:17:07 +01:00
Mark Stacey
702ee233e7
Remove snapshot update from release process (#20546)
The Sentry e2e state snapshots now mask the application version and
migration version, ensuring that the snapshots don't need a extra
update in each release candidate branch and post-release sync branch.

The values are masked rather than removed so that the test still shows
they are present in error reports, where they can be quite useful for
diagnostic purposes.
2023-08-21 12:53:04 -02:30
Mark Stacey
a56ab44c23
Merge pull request #20534 from MetaMask/master-sync
Master sync follow v10.34.5
2023-08-21 11:10:21 -02:30
Mark Stacey
8afa75e1f1 Update version in e2e state snapshot 2023-08-21 10:04:01 -02:30
Maarten Zuidhoorn
785e0d0923
[FLASK] Fix regression in transaction confirmation tabs (#20267)
* Fix regression in transaction confirmation tabs

* Fix transaction insights e2e test
2023-08-21 12:03:55 +02:00
Dhruv
07abc53cce
fix/BannerBase to TS (#20421)
* BannerBase to TS

* snapshot updates

* more snapshot updates

* addressing type definition error

* updating eth-sign-modal snapshot

* Updates to stories, types and adding data-testid

* Updating snapshots

* updating snapshot of blockaid-banner-alert and adding unit test for childrenWrapperProps

* BannerBase updates to stories, adding locale for close button, removing static data-testid in favor of using it at the instance, updating snapshots associated with those changes

* Removing incorrect arg from storybook file

* Updating html element in security provider e2e test to match BannerBase. Also updating snapshot of ConfirmTransaction page

* Fixing e2e tests

---------

Co-authored-by: georgewrmarshall <george.marshall@consensys.net>
2023-08-18 14:52:40 -07:00
Dan J Miller
ca1ddeb59b
Fix and test log.info calls run for each migration (#20517)
* Fix and test log.info calls run for each migration

In migrator/index.js, log.info is called before an after each migration.
These calls are intended to produce breadcrumbs to be captured by sentry
in cases where errors happen during or shortly after migrations are run.
These calls were not causing any output to the console because the log.setLevel
calls in ui/index.js were setting a 'warn value in local storage that was being
used by logLevel in the background.

This commit fixes the problem by setting the `persist` param of setLevel to
false, so that the background no longer reads the ui's log level.

Tests are added to verify that these logs are captured in sentry breadcrumbs
when there is a migration error due to an invariant state.

* Improve breadcrumb message matching

The test modified in this commit asserts eqaulity of  messages from breadcrumbs
and hard coded expected results. This could cause failures, as sometimes the
messages contain whitespace characters. This commit ensures the assertions only
check that the expected string is within the message string, ignoring extra
characters.
2023-08-18 11:15:45 -02:30
Mark Stacey
6c50587878
Add flag to update E2E snapshots (#20514)
The E2E test scripts now have a flag for updating E2E test snapshots.
The flag has been documented as well. This makes it easier to update
snapshots and raises visbility of this feature.
2023-08-17 13:32:45 -02:30
Mark Stacey
4cf886f710
Initialize composable observable store after update (#20468)
* Initialize composable observable store after update

The composable observable store now updates state immediately when the
structure is updated. Previously each store would only be updated after
the first state change. This ensures that the composable observable
store state is always complete.

* SUpport falsy controller state

We now use the nullish coalescing operator when checkint store.state, so that we don't accidentally ignore falsy state.

Co-authored-by: Frederik Bolding <frederik.bolding@gmail.com>

* Add test for falsy controller state

* Update state snapshots

A change on `develop` required another state update.

---------

Co-authored-by: Frederik Bolding <frederik.bolding@gmail.com>
2023-08-17 12:22:37 -02:30
Frederik Bolding
8f178bcc26
Enable snaps in stable (#19134)
* Enable Snaps feature flag in stable

* Run snaps E2Es in stable

* Fix CI config indentation

* Fix CI paths

* Update LavaMoat policies

* Update iframe URL

* Exclude some tests from running in stable e2e

* Disable another test on stable

* Bump to 1.0.1

* Fix config.yml issue due to staleness

* Stop running newly added test

* Update snapshots used for E2E

* Use shallow-git-clone
2023-08-17 15:43:01 +02:00
Mark Stacey
20e16d41be
Improve Sentry state pre-initialization (#20491)
* Improve Sentry state pre-initialization

Previously the masked state snapshot sent to Sentry would be blank for
errors that occured during initialization. Instead we'll now include
some basic information in all cases, and a masked copy of the persisted
state if it happens after the first time the persisted state is read.

* Add test

* Fix crash when persisted state not yet fetched

* Add descriptions for initial state hooks

* Update comments to reflect recent changes

* Re-order imports to follow conventions

* Move initial state hooks back to module-level

The initial state hooks are now setup at the top-level of their module.
This ensures that they're setup prior to later imports. Calling a
function to setup these hooks in the entrypoint module wouldn't
accomplish this even if it was run "before" the imports because ES6
imports always get hoisted to the top of the file.

The `localStore` instance wasn't available statically, so a new state
hook was introduced for retrieving the most recent retrieved persisted
state.

* Fix error e2e tests
2023-08-17 09:29:05 -02:30
Mark Stacey
f033a59b17
Remove invalid tokensChainsCache state (#20495)
Migration #77 would set the `TokenListController.tokensChainsCache`
state to `undefined` if it wasn't already set to anything when that
migration was run. This is probably harmless except that it results
in Sentry errors during migrations, and it results in that property
having a value (at least temporarily) that doesn't match its type.

Migration #77 has been updated to prevent this property from being
set to `undefined` going forward. A new migration has been added to
delete this value for any users already affected by this problem. The
new migration was named "92.1" so that it could run after 92 but before
93, to make backporting this to v10.34.x easier (v10.34.x is currently
on migration 92). "92.1" is still a valid number so this should work
just as well as a whole number.
2023-08-17 09:04:30 -02:30
Mark Stacey
1f508a30d9
Add types of hidden properties to Sentry data (#20457)
* Add types of hidden properties to Sentry data

The masked wallet state object sent to Sentry has been updated to
include the type of each property omitted from the mask. This lets us
at least see the full state shape, making it easier to see when errors
are caused by invalid state.

Relates to #20449

* Remove inconsistent state snapshot properties

The state snapshot tests have been updated to exclude properties that
were shown to differ between runs.
2023-08-16 21:11:17 -02:30
Mark Stacey
63a0ae765f
Use unflattened state for Sentry (#20428)
The unflattened background state is now attached to any Sentry errors
from the background process. This provides a clearer picture of the
state of the wallet, and unblocks further improvements to Sentry state
which will come in later PRs.
2023-08-16 15:21:18 -02:30
Mark Stacey
c0fd7700c8
Fix Sentry error e2e tests (#20479)
The state fixtures in the Sentry e2e tests became invalid in #20458
due to a conflict with that change (the new state properties were
missing). The state fixtures have been updated.
2023-08-16 13:34:12 -02:30
Mark Stacey
a6ef7bb244
Add additional Sentry E2E tests (#20425)
* Reorganize Sentry error e2e tests

The tests have been reorganized into different describe blocks. Each
describe block is for either before or after initialization, and either
with or without opting into metrics.

This was done to simplify later test additions. The conditions for each
test are now in the describe block, letting us test additional things
in each of these conditions. The conditions were flattened to a single
level to avoid excessive indentation.

* Add error e2e test for background and UI errors

The Sentry e2e tests before initialization only tested background
errors, and the after initialization tests only tested UI errors. Now
both types of errors are tested in both scenarios.

* Add error e2e tests for Sentry error state

E2E tests have been added to test the state object sent along with each
Sentry error.

At the moment this object is empty in some circumstances, but this will
change in later PRs.

* Rename throw test error function

* Only setup debug/test state hooks in dev/test builds

The state hooks used for debugging and testing are now only included in
dev or test builds. The function name was updated and given a JSDoc
description to explain this more clearly as well.

* Add state snapshot assertions

State snapshot assertions have been added to the e2e error tests. These
snapshots will be very useful in reviewing a few PRs that will follow
this one.

We might decide to remove these snapshots after this set of Sentry
refactors, as they might be more work to maintain than they're worth.
But they will be useful at least in the short-term.

The login step has been removed from a few tests because it introduced
indeterminacy (the login process continued asynchronously after the
login, and sometimes was not finished when the error was triggered).

* Ensure login page has rendered during setup

This fixes an intermittent failure on Firefox

* Format snapshots with prettier before writing them

* Use defined set of date fields rather than infering from name

* Remove waits for error screen

The error screen only appears after a long timeout, and it doesn't
affect the next test steps at all.
2023-08-16 11:52:25 -02:30
Bowen Sanders
fed047f88b
[FLASK] Create new E2E test for snaps lifecycle-hooks (#20352) 2023-08-16 11:18:41 +02:00
David Walsh
ee4bf2d264
Fix #19829: UX: Multichain: Move "Import Tokens" to Modal (#19553)
* Move Import Tokens to Modal

* Better dimensions for long token name

* Add padding above tabs
2023-08-14 11:08:59 -05:00
David Walsh
91f6545c09
UX: Remove the 'Source' and 'Link' URLs from NFT detail (#20248) 2023-08-04 13:28:34 -05:00
Nidhi Kumari
90adb4617b
UX Multichain: Fixed fiat and eth value in Account List Menu (#20334)
* swapped fiat and eth valu

* updated e2e test for account list and token value

* updated fixture
2023-08-04 13:29:23 -04:00
Victor Thomas
2ff289e271
Add Opt-out Settings toggle for 4byte contract method names resolution (#20098)
* Adding 4byte toggle to settings UI and preferences

* Adding 4byte toggle to advanced settings tab

* adding use4ByteResolution privacy logic to getContractMethodData & getMethodDataAsync, removing unused useMethodData hook, adding clearKnownMethodData

* add 4byte setting to onboarding advanced option

* more test changes

* adding e2e for 4byte setting toggle

* test and copy changes, snap updates

* removing 4byte from advanced section

* adding settings constant and fixing refs

* removing clearKnownMethodData, adding flag to selector, test fixes

* e2e refactor, selectors refactor

* adding tests

* Fix jest tests, remove unwanted forceUpdateMetamaskState

* Fix jest tests

* lint:fix

* settingsRefs fixes

---------

Co-authored-by: David Walsh <davidwalsh83@gmail.com>
2023-08-04 13:28:37 -04:00
Pritam Dhara
8c2e85bb8e
Replaced ActionableMessage component in srp-input (#20111)
* Replaced ActionableMessage component in srp-input

* Modified value of Severity in srp-input/BannerAler

* fixed lint error

* Updateddata-testid in banner and test/e2e/helpers.js

* Updated className with prefix

---------

Co-authored-by: George Marshall <george.marshall@consensys.net>
2023-08-04 08:42:28 -07:00
jainex
52c44924e3
Part #19737 - Replace deprecated FormField component with TextField, Label, HelpText (#19859)
* Replacing deprecated components for component library components

* Update

* Lint fix

---------

Co-authored-by: georgewrmarshall <george.marshall@consensys.net>
2023-08-03 15:30:41 -07:00
Daniel
066c568aca
Improvements to Swaps quote auto-selection logic, fix and edge case with zero-balance tokens (#20388)
* Add Token To into assets again (reverting commit 51f46eb65f48bdf4980f400a589bf1ac63a65222 )

* Update cleanup for an unswapped Token To from the Tokens list

* Call "setLatestAddedTokenTo" conditionally

* Update an E2E test for insufficient balance notification
2023-08-03 18:19:50 -02:30
Brad Decker
23ea1a639d
uses the asertInAnyOrder helper to fix flaky test cases (#20366) 2023-08-03 19:02:04 +01:00
Alex Donesky
6594f7074e
adapt to use networksMetadata state instead of single networkStatus and networksDetails state (#20219) 2023-08-03 12:31:35 -05:00
David Walsh
fca943a56e
UX: Snaps: Make Notifications Font Consistent with Other Global Items (#20356)
* UX: Snaps: Make Notifications Font Consistent with Other Global Items

* Fix E2E
2023-08-03 12:01:38 -05:00
David Walsh
840eb632c6
Fix #19647 - Allow importing multiple tokens (#20224) 2023-08-03 09:20:34 -05:00
Nidhi Kumari
03f315e82d
Added e2e test for ipfs toggle (#20360)
* added test for image

* nit fix
2023-08-03 14:52:52 +05:30
Olusegun Akintayo
ef5d171f54
Whats new blockaid popup (#20071)
* deprecate opensea security alerts check

Signedoff-by: Olusegun Akintayo <akintayo.segun@gmail.com>

set metrics to []

Signed-off-by: Olusegun Akintayo <akintayo.segun@gmail.com>

fix jest tests

Signed-off-by: Olusegun Akintayo <akintayo.segun@gmail.com>

Remove sec provider spec

Signed-off-by: Olusegun Akintayo <akintayo.segun@gmail.com>

lint fix

Signed-off-by: Olusegun Akintayo <akintayo.segun@gmail.com>

What's new for blockaid...with placeholder texts

Signed-off-by: Olusegun Akintayo <akintayo.segun@gmail.com>

i18n

Signed-off-by: Olusegun Akintayo <akintayo.segun@gmail.com>

lint fixes

Rebase to develop
Add image to whatsnew blockaid.

Signed-off-by: Olusegun Akintayo <akintayo.segun@gmail.com>

Fixed i18n

Fixed snapshot for ui/pages/settings/experimental-tab/experimental-tab.test.js

Signed-off-by: Olusegun Akintayo <akintayo.segun@gmail.com>

Fix i18n messages

Signed-off-by: Olusegun Akintayo <akintayo.segun@gmail.com>

lint fixes

Signed-off-by: Olusegun Akintayo <akintayo.segun@gmail.com>

Add unit tests

Lint fixes

use new image that works for both dark and light mode

22 is taken

Signed-off-by: Olusegun Akintayo <akintayo.segun@gmail.com>

* comment out blockaid

Signed-off-by: Olusegun Akintayo <akintayo.segun@gmail.com>

* rever change in builds.yml

Signed-off-by: Olusegun Akintayo <akintayo.segun@gmail.com>

* reverted changes in test/e2e/tests/security-provider.spec.js

* fix unit test

Signed-off-by: Olusegun Akintayo <akintayo.segun@gmail.com>

---------

Signed-off-by: Olusegun Akintayo <akintayo.segun@gmail.com>
2023-08-02 16:14:02 +01:00
David Walsh
034626a57d
Fix ipfs-ens-resolution.spec.js E2E intermittent failure (#20311)
* Fix ipfs-ens-resolution.spec.js E2E intermittent failure

* Wait for URL change instead of large delay
2023-08-01 13:26:42 -05:00
Nidhi Kumari
4c37448c97
Added IPFS toggle (#20172)
* added ipfs toggle

* added placeholder valur

* fixed snapshot

* updated tests

* updated spec file

* hide input if toggle is disabled

* updated e2e tests for nft image

* fixed view-ercc-1155 spec

* updated e2e tests for nfts

* added ipfs toggle modal

* updated UI for ipfs

* updated tests

* updated classname

* added placeholder image

* lint fix

* removed prop ipfsEnabled and used with selector

* fixed ui for ipfs toggle

* updated test

* updated  test to handle cases

* nit fix

* ensure default image height match nft image
2023-08-01 23:51:51 +05:30
Mark Stacey
507c2cb475
Capture Sentry errors prior to initialization (#20265)
* Capture Sentry errors prior to initialization

Sentry errors captured before/during the wallet initialization are
currently not captured because we don't have the controller state yet
to determine whether the user has consented.

The Sentry setup has been updated to check the persisted state for
whether the user has consented, as a fallback in case the controller
state hasn't been initialized yet. This ensures that we capture errors
during initialization if the user has opted in.

* Always await async check for whether the user has opted in

* Remove unused import

* Update JSDoc return type

* Remove unused driver method

* Fix metametrics controller unit tests

* Fix e2e tests

* Fix e2e test on Firefox

* Start session upon install rather than toggle
2023-07-31 18:49:32 -02:30
Peter
523b3145b2
[skip e2e] document transaction flows (#20259) 2023-07-31 19:10:50 -01:00
Peter
2daf002245
[skip e2e] document token flows (#20260) 2023-07-31 18:56:14 -01:00
Peter
2d412c21bb
[skip e2e] document phishing flows (#20264) 2023-07-31 18:55:33 -01:00
Peter
d3236b3b42
[skip e2e] document ens flows (#20261) 2023-07-31 15:32:30 +01:00
Nicholas Ellul
b76875ac69
Update @metamask/phishing-controller to v4.0.0 (#18840)
* Update phishing controller to v4.0.0

* Move phishing e2e test utilities into its own helper.js

* Update phishing detection e2e test

* Update MetaMask Controller test mocks

* Update mv3 phishing tests

* Fix test for 500 error on warning page

* Allow for directories in test folder

* Update migration number

* Linting fixes

* Remove fail on console error

* Separate mocks from helpers

* Have migration delete PhishingController state entirely

* Remove phishing detection directory

* Only delete the listState in migration

* Bump migration version
2023-07-31 10:18:48 -02:30
David Walsh
0129ea913f
Fix #20162 - Add Whats New for Global Menu (#20244) 2023-07-28 20:48:22 -02:30
Pedro Figueiredo
537f1c7aee
feat: implement swap event metric e2e test (#20129)
* implement swap event metric e2e test

* fix lint error

* clean up initial balance helpers

* fix eslint warnings

* Fix `token_to_amount` format to address firefox bug and refactor tests
2023-07-28 19:57:06 +01:00
Sylva Elendu
1a218714a6
Update transaction status to not be considered anonymous (#20049)
* update transaction status to not be considered anonymous

* fix failing e2e

* revert status changes in txn spec file

* Fix e2e by adding status

---------

Co-authored-by: Olusegun Akintayo <akintayo.segun@gmail.com>
2023-07-28 15:08:59 -03:00
Peter
c741222f43
[skip e2e] document onboarding flows (#20262) 2023-07-28 17:28:10 +01:00
Peter
232f974b85
[skip e2e] document keyring flows (#20263) 2023-07-28 17:28:01 +01:00
David Walsh
99c709ff8f
Allow user to turn off ENS DNS resolution (#20102)
* Allow user to turn off IPFS gateway resolution

* Add end to end test for toggle on and off

* Fix jest tests and snapshots

* Change variable name

* Implement provided content

* Use MetaMask eth instead

* Allow searching for ENS setting

* Fix jest

---------

Co-authored-by: Brad Decker <bhdecker84@gmail.com>
2023-07-28 11:21:43 -05:00
Peter
378bf19c05
JSON-RPC e2e test POC (#18213)
* eth_call test

* eth_chainId test

* run json rpc tests

* add ci job

* remove query string param from url

* eth_sendTransaction test

* eth_sendTransaction test

---------

Co-authored-by: Brad Decker <bhdecker84@gmail.com>
2023-07-28 14:59:12 +01:00
Nicholas Ellul
90827c54a1
Add improved downloading logic when exporting state logs (#19872)
* Add improved downloading logic when exporting state logs

* Make test for state logs download only apply to firefox

* Remove eslint override

* Add file extension to test

* Move make jest global.Blob accessible to window
2023-07-27 13:33:36 -04:00
David Walsh
e5ec12027e
Improve Account Details E2E tests (#20183) 2023-07-27 09:22:13 -05:00
Ujwal Kumar
4b2c777862
Replacing deprecated components and code for import tokens (#19559)
Co-authored-by: georgewrmarshall <george.marshall@consensys.net>
2023-07-26 08:48:31 -07:00
Brad Decker
e28db07a1b
Set sentry autoTrackSessions default (#20132)
* Set sentry autoTrackSessions default

* endSession....

* fixup

* updated comment

* prevent breaking devmode

* remove changes to beforeSend

* remove additional usage of sinon
2023-07-26 07:13:28 -05:00
Bowen Sanders
b4668fa402
Fix snaps E2Es to be compatible with new monorepo-based test-snaps (#20005)
* initial fixes to E2Es

* changed test website

* final E2E fixes

* fixed getentropy test

* missing scroll fix

* scrollfix for bip44 firefox

* added new function and edited tests
2023-07-21 23:32:51 +02:00