1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-10-23 03:36:18 +02:00
Commit Graph

975 Commits

Author SHA1 Message Date
Whymarrh Whitby
dea8f0f24d
Use combineReducers for rootReducer (#7964) 2020-02-06 13:08:14 -03:30
Mark Stacey
398a45bfdd
Replace clone dependency with cloneDeep from lodash (#7926)
This was done to reduce the number of direct dependencies we have. It
should be functionally equivalent. The bundle size should not change,
as we use `clone` as a transitive dependency in a number of places.
2020-01-29 13:14:33 -04:00
Whymarrh Whitby
1728d9a5aa
Inline networkStore to avoid having too many event listeners (#7854) 2020-01-17 18:28:27 -03:30
Whymarrh Whitby
b4ca671b6b
Fix propTypes and test props for Dropdown components (#7851) 2020-01-16 18:18:09 -03:30
Mark Stacey
20a7b8fa36
Force background state update after removing an account (#7840)
The e2e tests were failing intermittently after removing an account
because the account was shown as not deleted after the removal. I
suspect this was because the account _had_ been removed, but that
change to the background state hadn't yet propagated to the UI.

The background state is now synced before the loading overlay for
removing the account is removed, ensuring that the removed account
cannot be seen in the UI after removal.
2020-01-16 13:43:40 -04:00
Mark Stacey
8225bbe126
Remove unused current view related things (#7843)
* Remove unused functions from `mapDispatchToProps`

The actions import was also updated to import only the two actions
used, rather than all actions.

* Remove unused container component

Well, technically it was the props injected by this container that were
unused. The container served no purpose, so the component it surrounded
is now used directly instead.

* Remove both unused `getCurrentViewContext` selectors

* Remove unused SHOW_CONFIG_PAGE action

* Remove checks for `currentView` with name `config`

Now that the SHOW_CONFIG_PAGE action has been removed, it's no longer
possible for `currentView.name` to be set to that value.

* Remove unused `wallet-view` container props

* Delete unused SHOW_SEND_PAGE and SHOW_ADD_TOKEN_PAGE actions

* Remove unused `account-menu.container` props

* Remove unused SHOW_INFO_PAGE action

* Remove unused SET_NEW_ACCOUNT_FORM action
2020-01-16 13:02:44 -04:00
Whymarrh Whitby
4257858fb5 Remove extraneous console output from TransactionStateManager tests (#7838) 2020-01-16 08:32:02 -08:00
Whymarrh Whitby
76a31c3175 Clean up Migrator test cases (#7835) 2020-01-15 13:54:28 -08:00
Whymarrh Whitby
d0536ba984
Return promises from accountImporter tests (#7826) 2020-01-15 13:27:51 -03:30
Whymarrh Whitby
2525e5edaa
Fix usages of sinon deprecated APIs in MetaMaskController tests (#7827) 2020-01-15 13:24:15 -03:30
Whymarrh Whitby
82ef9674f2
Move util test file alongside subject (#7807) 2020-01-13 10:41:41 -03:30
Whymarrh Whitby
4f5f671cb1
Purge assertRejects shim (#7794) 2020-01-10 10:57:45 -03:30
Whymarrh Whitby
92971d3c87
Migrate codebase to use ESM (#7730)
* Update eslint-plugin-import version

* Convert JS files to use ESM

* Update ESLint rules to check imports

* Fix test:unit:global command env

* Cleanup mock-dev script
2020-01-09 00:04:58 -03:30
Mark Stacey
69d418a5a3
Login per site onboarding (#7602)
* Remove unused onboarding stream

* Pass `sender` through to `setupProviderEngine`

The Port `sender` has been passed down a few more layers. This allows
us to get more information from the sender deeper in the stack, but
also simplifies things a bit as well. For example, now the "fake"
URL object with the `metamask` hostname is no longer needed.

* Create onboarding middleware

This middleware intercepts `wallet_registerOnboarding` RPC messages. It
will register the sender as an oboarding initiator if possible, and
otherwise ignores the message.
2019-12-20 12:02:31 -03:30
Frankie
237d0b4d41 Add tests around migration files (#7016) 2019-12-12 20:44:29 -03:30
Whymarrh Whitby
db0d59f800
Remove unused UI actions (#7675) 2019-12-12 19:48:48 -03:30
Whymarrh Whitby
f49bc58c09
Remove unused methods from the app/scripts/ (#7692) 2019-12-12 15:07:18 -03:30
Whymarrh Whitby
34b674c3d7
Remove unneeded Edge-specific encryption code (#7683) 2019-12-10 16:34:50 -03:30
Whymarrh Whitby
56d9c06402
Clean up list of available currencies (#7667) 2019-12-09 13:09:46 -03:30
Frankie
71a89df8ee
transactions/pending - buffer 3 blocks before dropping a tx (#7483)
* transactions/pending - buffer 3 blocks before dropping a tx

* transactions/pending - only increment for dropped txs
2019-12-05 09:34:10 -10:00
Dan Finlay
30304913eb
Merge pull request #7591 from whymarrh/eslint-object-curly-spacing
Enable object-curly-spacing rule for ESLint
2019-12-04 10:25:32 -08:00
Dan Finlay
6aa0bec751
Merge pull request #7573 from whymarrh/eslint-no-confusing-arrow
Enable no-confusing-arrow rule for ESLint
2019-12-04 10:23:57 -08:00
Thomas Huang
bc67d1eeca
Revert "Update Wyre ETH purchase url" (#7631)
* Revert "Update Wyre buy ETH URL (#7482)"

This reverts commit 015ba83c6e.

* Change test description from coinbase to wyre
2019-12-03 17:12:14 -08:00
Whymarrh Whitby
274a9ecf53 yarn lint --fix 2019-12-03 17:20:55 -03:30
Mark Stacey
d9bdba5948
Use ES6 exports for selectors (#7626)
This lets us get rid of the big `selectors` object that was unpleasant
to maintain.
2019-12-03 16:04:28 -04:00
Dan Finlay
f519fa1ed3
Connect distinct accounts per site (#7004)
* add PermissionsController

remove provider approval controller
integrate rpc-cap
create PermissionsController
move provider approval functionality to permissions controller
add permissions approval ui, settings page
add permissions activity and history
move some functionality to metamask-inpage-provider
rename siteMetadata -> domainMetadata

add accountsChange notification to inpage provider
move functionality to inpage provider
update inpage provider
Remove 'Connections' settings page (#7369)
add hooks for exposing accounts in settings
rename unused messages in non-English locales

Add external extension id to metadata (#7396)

update inpage provider, rpc-cap
add eth_requestAccounts handling to background
prevent notifying connections if extension is locked
update inpage provider
Fix lint errors
add migration
review fixes
transaction controller review updates
removed unused messages

* Login Per Site UI (#7368)

* LoginPerSite original UI changes to keep

* First commit

* Get necessary connected tab info for redirect and icon display for permissioned sites

* Fix up designs and add missing features

* Some lint fixes

* More lint fixes

* Ensures the tx controller + tx-state-manager orders transactions in the order they are received

* Code cleanup for LoginPerSite-ui

* Update e2e tests to use new connection flow

* Fix display of connect screen and app header after login when connect request present

* Update metamask-responsive-ui.spec for new item in accounts dropdown

* Fix approve container by replacing approvedOrigins with domainMetaData

* Adds test/e2e/permissions.spec.js

* Correctly handle cancellation of a permissions request

* Redirect to home after disconnecting all sites / cancelling all permissions

* Fix display of site icons in menu

* Fix height of permissions page container

* Remove unused locale messages

* Set default values for openExternalTabs and tabIdOrigins in account-menu.container

* More code cleanup for LoginPerSite-ui

* Use extensions api to close tab in permissions-connect

* Remove unnecessary change in domIsReady() in contentscript

* Remove unnecessary private function markers and class methods (for background tab info) in metamask-controller.

* Adds getOriginOfCurrentTab selector

* Adds IconWithFallback component and substitutes for appropriate cases

* Add and utilize font mixins

* Remove unused  method in disconnect-all.container.js

* Simplify buttonSizeLarge code in page-container-footer.component.js

* Add and utilize getAccountsWithLabels selector

* Remove console.log in ui/app/store/actions.js

* Change last connected time format to yyyy-M-d

* Fix css associated with IconWithFallback change

* Ensure tracked openNonMetamaskTabsIDs are correctly set to inactive on tab changes

* Code cleanup for LoginPerSite-ui

* Use reusable function for modifying openNonMetamaskTabsIDs in background.js

* Enables automatic switching to connected account when connected domain is open

* Prevent exploit of tabIdOriginMap in background.js

* Remove unneeded code from contentscript.js

* Simplify current tab origin and window opener logic using remotePort listener tabs.queryTabs

* Design and styling fixes for LoginPerSite-ui

* Fix permissionHistory and permission logging for eth_requestAccounts and eth_accounts

* Front end changes to support display of lastConnected time in connected and permissions screens

* Fix lint errors

* Refactor structure of permissionsHistory

* Fix default values and object modifications for domain and permissionsHistory related data

* Fix connecting to new accounts from modal

* Replace retweet.svg with connect-white.svg

* Fix signature-request.spec

* Update metamask-inpage-provider version

* Fix permissions e2e tests

* Remove unneeded delay from test/e2e/signature-request.spec.js

* Add delay before attempting to retrieve network id in dapp in ethereum-on=.spec

* Use requestAccountTabIds strategy for determining tab id that opened a given window

* Improve default values for permissions requests

* Add some message descriptions to app/_locales/en/messages.json

* Code clean up in permission controller

* Stopped deep cloning object in mapObjectValues

* Bump metamask-inpage-provider version

* Add missing description in app/_locales/en/messages.json

* Return promises from queryTabs and switchToTab of extension.js

* Remove unused getAllPermissions function

* Use default props in icon-with-fallback.component.js

* Stop passing  to permissions controller

* Delete no longer used clear-approved-origins modal code

* Remove duplicate imports in ui/app/components/app/index.scss

* Use URL instead of regex in getOriginFromUrl()

* Add runtime error checking to platform, promise based extension.tab methods

* Support permission requests from external extensions

* Improve font size and colour of the domain origin on the permission confirmation screen

* Add support for toggling permissions

* Ensure getRenderablePermissionsDomains only returns domains with exposedAccount caveat permissions

* Remove unused code from LoginPerSite-ui branch

* Ensure modal closes on Enter press for new-account-modal.component.js

* Lint fix

* fixup! Login Per Site UI (#7368)

* Some code cleanup for LoginPerSite

* Adds UX for connecting to dapps via the connected sites screen (#7593)

* Adds UX for connecting to dapps via the connected sites screen

* Use openMetaMaskTabIds from background.js to determine if current active tab is MetaMask

* Delete unused permissions controller methods

* Fixes two small bugs in the LoginPerSite ui (#7595)

* Restore `providerRequest` message translations (#7600)

This message was removed, but it was replaced with a very similar
message called `likeToConnect`. The only difference is that the new
message has "MetaMask" in it. Preserving these messages without
"MetaMask" is probably better than deleting them, so these messages
have all been restored and renamed to `likeToConnect`.

* Login per site no sitemetadata fix (#7610)

* Support connected sites for which we have no site metadata.

* Change property containing subtitle info often populated by origin to a more accurate of purpose name

* Lint fix

* Improve disconnection modal messages (#7612)

* Improve disconnectAccountModalDescription and disconnectAllModalDescription messages

* Update disconnectAccountModalDescription app/_locales/en/messages.json

Co-Authored-By: Mark Stacey <markjstacey@gmail.com>

* Improve disconnectAccount modal message clarity

* Adds cancel button to the account selection screen of the permissions request flow (#7613)

* Fix eth_accounts permission language & selectability (#7614)

* fix eth_accounts language & selectability

* fix MetaMask capitalization in all messages

* Close sidebar when opening connected sites (#7611)

The 'Connected Sites' button in the accounts details now closes the
sidebar, if it is open. This was accomplished by pulling the click
handler for that button up to the wallet view component, where another
button already followed a similar pattern of closing the sidebar.

It seemed confusing to me that one handler was in the `AccountsDetails`
container component, and one was handed down from above, so I added
PropTypes to the container component.

I'm not sure that the WalletView component is the best place for this
logic, but I've put it there for now to be consistent with the add
token button.

* Reject permissions request upon tab close (#7618)

Permissions requests are now rejected when the page is closed. This
only applies to the full-screen view, as that is the view permission
requests should be handled in. The case where the user deals with the
request through a different view is handled in #7617

* Handle tab update failure (#7619)

`extension.tabs.update` can sometimes fail if the user interacts with
the tabs directly around the same time. The redirect flow has been
updated to ensure that the permissions tab is still closed in that
case. The user is on their own to find the dapp tab again in that case.

* Login per site tab popup fixes (#7617)

* Handle redirect in response to state update in permissions-connect

* Ensure origin is available to permissions-connect subcomponents during redirect

* Hide app bar whenever on redirect route

* Improvements to handling of redirects in permissions-connect

* Ensure permission request id change handling only happens when page is not null

* Lint fix

* Decouple confirm transaction screen from the selected address (#7622)

* Avoid race condtion that could prevent contextual account switching (#7623)

There was a race condition in the logic responsible for switching the
selected account based upon the active tab. It was asynchronously
querying the active tab, then assuming it had been retrieved later.

The active tab info itself was already in the redux store in another
spot, one that is guaranteed to be set before the UI renders. The
race condition was avoided by deleting the duplicate state, and using
the other active tab state.

* Only redirect back to dapp if current tab is active (#7621)

The "redirect back to dapp" behaviour can be disruptive when the
permissions connect tab is not active. The purpose of the redirect was
to maintain context between the dapp and the permissions request, but
if the user has already moved to another tab, that no longer applies.

* Fix JSX style lint errors

* Remove unused state
2019-12-03 09:35:56 -08:00
Whymarrh Whitby
16e6103a68 yarn lint --fix 2019-12-03 13:23:13 -03:30
Whymarrh Whitby
e61745a821
Enable no-var rule for ESLint (#7590)
* eslint: Enable no-var rule
* yarn lint --fix
2019-12-03 11:22:01 -03:30
Whymarrh Whitby
926c8848f1
Enable default-case rule for ESLint (#7572)
* eslint: Enable default-case rule

* Fix missing default cases

* Fix tests failing due to incorrect assumptions
2019-11-27 12:38:35 -03:30
Whymarrh Whitby
714935d36e
Update Dropdown components tests to use JSX (#7527) 2019-11-23 14:44:18 -03:30
Tyson Malchow
015ba83c6e Update Wyre buy ETH URL (#7482) 2019-11-22 11:43:23 -03:30
Whymarrh Whitby
aa41057628
Update ESLint rules for curly braces style (#7477)
* eslint: Enable curly and brace-style

* yarn lint --fix
2019-11-19 20:33:20 -03:30
Whymarrh Whitby
86b165ea83
Add migration notification for users with Sai (#7450)
Maker has upgraded its Dai token to "Multi-Collateral Dai" (MCD) and requires
all users interacting with Dai migrate their tokens to the new version. Dai
now exclusively refers to Multi-Collateral Dai and what was previouly called
Dai is now Sai (Single Collateral Dai).

In this description, Sai refers to what was (prior to the 2019-11-18) known as Dai.
Dai is the _new_ token.

This changeset:

1. Only affects users who had non-zero Sai at the old contract address
2. Displays a persistent notification for users with Sai
3. Updates the token symbol for users already tracking the Sai token
4. Bumps our direct and indirect eth-contract-metadata dependencies

The notification copy:

> A message from Maker: The new Multi-Collateral Dai token has been released. Your old tokens are now called Sai. Please upgrade your Sai tokens to the new Dai.

The copy is from the Maker team.
2019-11-18 18:16:28 -03:30
Whymarrh Whitby
f1384e7522
Disable unnecessary curly braces in JSX (#7454) 2019-11-18 11:38:47 -03:30
Whymarrh Whitby
eed4a9ed65
ENS Reverse Resolution support (#7177)
* ENS Reverse Resolution support
* Save punycode for ENS domains with Unicode characters
* Update SenderToRecipient recipientEns tooltip
* Use cached results when reverse-resolving ENS names
* Display ENS names in tx activity log
2019-11-01 15:24:00 -02:30
Kristian Tapia
f9cd775eae Add Estimated time to pending tx (#6924)
* Add estimated time to pending transactions

* add sytles for pending transactions component

* add media queries styling for pending transactions component

* fix lint errors, remove extra spaces

* refactor code to call `fetchBasicGasAndTimeEstimates` method once

* refactor code to call `getgetRenderableTimeEstimate` method once

* fix, correct export to use `transaction-time-remaining-component`

* fix indentation issues after running `yarn lint`

* newBigSigDig in gas-price-chart.utils supports strings

* Code cleanup

* Ensure fetchBasicGasAndTimeEstimates is only called from tx-list if there are pending-txs

* Move gas time estimate utilities into utility file

* Move getTxParams to transaction selector file

* Add feature flag for display of remaining transaction time in tx history list

* Fix circular dependency by removing unused import of transactionSelector in selectors.js

* Use correct feature flag property name transactionTime

* Ensure that tx list component correctly responds to turning tx time feature on

* Prevent precision errors in newBigSigDig

* Code clean up for pending transaction times

* Update transaction-time-remaining feature to count down seconds, countdown seconds and show '< 30'

* Code clean up for transaction-time-remaining feature
2019-10-31 23:21:28 -02:30
Frankie
514be408f8
I#6704 eth_getTransactionByHash will now check metamask's local history for pending transactions (#7327)
* tests - create tests for pending middlewares

* transactions - add r,s,v values to the txMeta to match the JSON rpc response

* network - add new middleware for eth_getTransactionByHash that the checks pending tx's for a response value

* transactions/pending - use getTransactionReceipt for checking if tx is in a block

* meta - file rename
2019-10-30 12:15:54 -10:00
Frankie
51e5220d5e
I#3669 ignore known transactions on first broadcast and continue with normal flow (#7328)
* transactions - ignore known tx errors

* tests - test ignoreing Transaction Failed: known transaction message
2019-10-30 11:40:33 -10:00
Mark Stacey
8dfb0e8154
Add hostname and extensionId to site metadata (#7218)
If the extension ID is set, an alternate title and subtitle are used
for the Connect Request screen. The title is always `External
Extension`, and the subtitle is `Extension ID: [id]` instead of the
origin (which would just be `[extension-scheme]://[id]` anyway).

The hostname for the site is used as a fallback in case it has no
title.

The artificial hostname set for internal connections has been renamed
from 'MetaMask' to 'metamask' because URL objects automatically
normalize hostnames to be all lower-case, and it was more convenient to
use a URL object so that the parameter would be the same type as used
for an untrusted connection.
2019-10-29 13:14:41 -03:00
Thomas
5f53e4b67e Remove async 2019-10-23 12:43:22 -07:00
Thomas
94a4b4d7db Stub signTypedMessage 2019-10-23 12:09:27 -07:00
Thomas
4d6ce8ceeb Use async/await 2019-10-22 17:23:18 -07:00
tmashuang
2a81083f14 MM controller additions, balance controller, typedMessageManager, and addtional actions tests 2019-10-21 12:47:36 -07:00
Whymarrh Whitby
06536b1d0f
Fix phishing detect script (#7287) 2019-10-18 13:35:32 -02:30
Dan J Miller
38df64783d Ensure correct tx category when sending to contracts without tx data (#7252)
* Ensure correct transaction category when sending to contracts but there is no txParams data

* Update gas when pasting address in send

* Gracefully fall back is send.util/estimateGas when blockGasLimit from background is falsy

* Remove network request frontend fallback for blockGasLimit

* Add some needed slow downs to e2e tests
2019-10-08 04:29:37 +09:00
Mark Stacey
9541d1e281
Don't wait for 3Box initialization during login (#7242)
The 3Box initialization is triggered by login, but it no longer blocks
the login from finishing. The 3Box initialization is designed to run in
the background, so there's no reason to block on it.
2019-10-02 16:12:20 -03:00
Dan J Miller
970e90ea70
Add migration on 3box imports and remove feature flag (#7209)
* Delete unused code

* Run threebox imports through migrations

* Remove 3box feature flag

* Remove unnecessary use of 'type' in threebox._updatePlugin

* Fix threebox controller getLastUpdated

* Turn off threebox by default

* Rename restoredFromThreeBox to showRestorePrompt

* Remove accientally added method from threebox controller

* Restore from threebox on import from unlock screen

* Throw on non 404 errors from Box.getconfig in new3Box
2019-09-26 03:24:52 -04:00
Dan J Miller
1bd22b58c0
Add a/b test for full screen transaction confirmations (#7162)
* Adds ab test controller with a fullScreenVsPopup test

* Add migration for fullScreenVsPopup state

* Move abtest state under an 'abtests' object.

* MetaMask shows fullScreen group of a/b test unapproved txs in a full browser tab

* Ensure cancel metrics event in confirm-transaction-base.component.js is sent in all cases

* Switch to existing tab for unapproved tx if it exists when opening in full screen

* Send metrics event for entering a/b test from confirm screen

* Fix lint, unit and integration tests related to a/b test code

* Remove unnecessary tabs.query call in triggerUiInNewTab
2019-09-24 17:08:38 -04:00
Jenny Pollack
e86cebde3b address book entries by chainId (#7205) 2019-09-21 14:36:05 -03:00
Jenny Pollack
03f216e27c add goerli to incoming tx 2019-09-18 10:04:39 -07:00
Dan J Miller
7985f4f4f8
3box integration 2.0 (#6972)
* Adds threebox controller

* Adds threebox approval modal

* Fix unit tests and lint after addition of threebox

* Correct threebox behaviour after rejecting request for backup; fixes e2e tests.

* Update threebox controller for automatic syncing

* Ensure frontend locale updates when preferences are changed via direct update within controller

* Add toggle in settings for 3box syncing

* Update threebox controller for latest 3box version

* Delete unnecessary frontend changes for threebox integration

* Backing up address book contacts with threebox

* Update unit tests for 3box-integration additions

* Only enable threebox by default for new wallets

* Mock globals for correct unit tests

* 3box '1.10.2' -> '^1.10.2'

* Correct capilalization on 3Box

* Use log.debug instead of console.log in threebox controller

* Update yarn.lock

* Remove edge build

* Split 3box module into background deps js file

* extra bundle opts for bg-libs

* sync yarn.lock

* new3Box logic

* Show confirm threebox restore after import

* Remove bg-libs.js from manifest file for dev builds

* Switch 3Box controller to using the spaces api (instead of the profile api)

* Finalize switching to spaces api and only restoring from 3box after import

* Update metamask-controller-test.js for threebox controller changes

* Make threebox modal style consistent with others and update success button wording

* Use mock 3box when in test

* Correct 3box modal header

* Remove unnecessary property of threebox controller provider

* Remove unnecessary method calls after restoration from 3box in the threebox-restore-confirm modal.

* Replace setThreeBoxSyncingPermission calls in routes/index.js with turnThreeBoxSyncingOn

* Replace erroneous use of  with

* Replace erroneous use of threeboxSyncing with threeBoxSyncingAllowed in advancted-tab directory

* Lint fixes for 3box changes

* Log errors encountered when updating 3Box

* Remove unnecessary parameter from state update

* Add timeout to initial 3Box sync

The initial 3Box sync will now timeout after 1 minute. If the timeout
is triggered, 3Box is disabled and cannot be re-enabled unless the
initial sync does finally finish. If it never finishes, 3Box cannot
be enabled unless the extension is reinstalled.

The Advanced Settings page was updated to show this option as disabled
in that circumstance, with a new discription explaining why it's
disabled. The UI here could certainly be improved.

Additionally, "on" and "off" labels were added to the toggle to match
the other toggles on the Advanced Settings page.

* Use non-minified 3Box module

We had previously used the minified 3Box module to avoid a build error
encountered when `envify` was processing the `libp2p` module (which is
used by 3Box). The build would fail because `esprima` (used by `envify`)
is incompatible with the object spread/rest operator (which is used in
`libp2p`).

That issue has been solved by adding a global Babelify transformation
specifically for transpiling out the object rest/spread operator from
dependencies. It has been targetted to only affect `libp2p` to avoid
extending the build time too much. This workaround can be used until
a new version of `esprima` is released that includes this bug fix.

* Use app key addresses for threebox

* Replace use of modal for confirming 3box restoration with a home notification

* Adds e2e tests for restoring from threebox

* Update eth-keyring-controller to 5.1.0

* Correct parameters passed to getAppKeyAddress in threebox.js

* Add prefix to origin passed to getAppKeyAddress in threebox.js

* Remove unused locale message.

* Prevent CORS errors in firefox e2e tests

* Ensure extraneous scripts are excluded from the local test dev build

* Move threeBoxLastUpdate state from home.component to redux

* Threebox PR code cleanup

* Always use first address when initializing threebox

* Replace setRestoredFromThreeBox api with setRestoredFromThreeBoxToFalse and setRestoredFromThreeBoxToTrue

* Update development/metamaskbot-build-announce.js to include ui-libs and bg-libs in hard coded bundle list

* Update test/e2e/threebox.spec.js to use new helpers added with pull #7144

* Make setFeatureFlag available on the ui window during testing

* Hide threebox feature behind a feature flag that can only be activated via dev console

* Remove unnecessary migration of threebox feature flag

* Prevent this.init() call in threebox constructor if feature flag is not turned on

* Prevent threebox notification from showing if feature flag is falsy

* http://localhost/8889 -> http://localhost/* in gulp manifest:testing tasks
2019-09-16 14:41:01 -02:30
Erik Marks
38f6550951 fix rinkeby spelling (#7148) 2019-09-10 12:51:34 -10:00
Mark Stacey
5363d6aa2a
Prevent multiple warnings for the same locale message (#7091)
* Prevent multiple warnings for the same locale message

Our i18n helper issues warnings whenever a requested message is
missing. These warnings are helpful in assisting translation efforts,
but they can be distracting otherwise. They're especially problematic
for locales that are missing many messages. My browser ended up
crashing on more than one occasion due to the sheer volume of warnings.

The warning has been updated to only be issued once per missing key.
This required updating the method to pass in the current locale. The
current locale was added to the warning itself as well, which could be
helpful for cases where a message is missing in both the current locale
and the fallback ('en').

* Change locale and localeMessages as single action

Updating the current locale and the locale messages resulted in two
renders, and during the first the state was inconsistent (it would say
the locale had changed to the new one, but still be using the old set
of locale messages). Instead the locale is now updated with one atomic
action.

This was required after adding the locale to the missing locale message
warning, as otherwise it would say the message was missing from the
wrong locale.
2019-09-06 10:47:07 -03:00
Mark Stacey
1e7b37d1cc
Combine fetch-with-timeout implementations (#7084)
There were two competing utility functions for calling fetch with a
timeout. They have been combined into one.
2019-09-04 17:00:11 -03:00
Mark Stacey
daa20b4b63
Return after rejecting promise in action (#7079)
* Add missing test descriptions

* Fix async tests that expect a rejection

These tests expected the function under test to return a rejected
promise, and had assertions to be run in the `catch` clause. However,
the tests would still pass if the function didn't reject, with
the assertions never being run.

The tests have been updated to fail if the function doesn't throw.

* Handle ignored promise rejection

In the case where `forceUpdateMetamaskState` rejects, the function
`setSeedPhraseBackedUp` would never resolve. It has been updated to
pass along the rejection instead.

* Return after rejecting promise in action

A few actions would continue after encountering an error, resulting in
errors being compounded. Instead all actions will now return after
encountering an error (which it looks like was the intention in these
cases anyway).
2019-08-31 13:34:27 -03:00
Frankie
f6d25357db
transactions:tx-state-manager - optionally take a function as a search param (#7078) 2019-08-29 14:57:28 +02:00
Whymarrh Whitby
ef3859ff77
Add toggle for incoming transactions (#7049) 2019-08-21 16:12:14 -02:30
Whymarrh Whitby
e47448362d
Bug fixes for incoming transactions (#7043)
* Fix styling of `.transaction-list`
* Filter `incomingTxListSelector` by network as well
* Start and stop block tracker polling in incoming tx controller
* Add fetch with abort in bg for `IncomingTxController`
2019-08-20 16:22:00 -02:30
Dan J Miller
821529622e Fetch & display received transactions (#6996) 2019-08-16 16:24:10 -02:30
Whymarrh Whitby
247659ca65
Connections settings tab (#7013)
* Nix notification for Share Address

* Add Connections settings tab in place of privacy mode toggle

* Split ProviderApprovalController into two stores

* Remove privacyMode feature flag altogether

* Add migration to remove privacyMode feature flag
2019-08-15 18:37:18 -02:30
Whymarrh Whitby
ceace71bf5
Remove unused lostAccounts state (#6979) 2019-08-08 17:03:10 -02:30
Mark Stacey
12e055a37c
Close window after opening fullscreen (#6966)
* Add background environment type

The `getEnvironmentType` method now checks for the background
environment as well, instead of returning 'notification' for that case.

Instead of adding another regex for the background path, the regexes
for each environment have been replaced with the URL constructor[0].
This is the standard method of parsing URLs, and is available in all
supported browsers.

[0]: https://developer.mozilla.org/en-US/docs/Web/API/URL

* Add note regarding a missing manifest permission

The `url` parameter to `tabs.query(...)` requires the `tabs` permission,
and will be ignored otherwise. We are missing this permission, so that
call does not work.

* Close window after opening full screen

The browser behaviour when opening a new tab differs between Chrome and
Firefox. In the case of a popup, Chrome will close the popup whereas
Firefox will leave it open. In the case of the notification window,
Chrome will move the new tab to the foreground, whereas Firefox will
leave the notification window in the foreground when opening a new tab.

We always want to close the current UI (popup or notification) when
switching to a full-screen view. The only exception to this is when the
switch is triggered from the background, which has no UI.

Closes #6513, #6685
2019-08-08 11:50:32 -03:00
Mark Stacey
bb87a0b92c
Add migration to remove seedWords state (#6937)
The `seedWords` state was removed from the PreferencesController
recently in #6920. That state hadn't been used in some time, and there
was a long period during which `seedWords` was periodically scrubbed
from the state, so it's highly unlikely that it still exists in state
for most users. It's hard to guarantee that it _doesn't_ though,
especially if a user hasn't opened MetaMask in a few months.
2019-08-02 10:28:25 -02:30
Whymarrh Whitby
d1e47a30bc
Add test cases for migration 34 (#6938) 2019-08-01 14:03:20 -02:30
Whymarrh Whitby
4d88e1cf86 Enable indent linting via ESLint (#6936)
* Enable indent linting via ESLint

* yarn run lint:fix
2019-07-31 10:17:11 -10:00
Dan J Miller
e9c7df28ed
Address book send plus contact list (#6914)
* Style Send Header

* Move Send to-row to send view and restyle

* Add "Recents" group to select recipient view

* Rename SendToRow to AddRecipient

* Basic UI and Layout

* New ENSInput component

* wip - fuzzy search for input

* small refactor

* Add Dialog

* contact list initial

* initial error on invalid address

* clean up edit

* Click to open modal

* Create AddToAddressBookModal component

* Modal styling and layout

* modal i18n

* Add to Addressbook

* ens wip

* ens wip

* ENS Resolution

* Reset input

* Send to explicit address

* Happy Path Complete

* Add back error checking

* Reset send-to when emptying input

* Add back warning object

* Fix linter

* Fix unit test #1 - fix import paths

* Remove dead tests

* One more to go

* Fix all unit tests

* add unit test for reducers and actions

* test rendering AddRecipient

* Add tests for dialog boxes in AddRecipient

* Add test for validating

* Fix linter

* Fix e2e tests

* Token send e2e fix

* Style View Contact

* Style edit-contact

* Fix e2e

* Fix from-import-beta-ui e2e spec

* Make section header say "add recipient” by default

* Auto-focus add recipient input

* Update placeholder text

* Update input title font size

* Auto advance to next step if user paste a valid address

* Ellipsify address when recipient is selected

* Fix app header background color on desktop

* Give each form row a margin of 16px

* Use .container/.component naming pattern for ens-input

* Auto-focus on input when add to addressbook modal is opened; Save on Enter

* Fix and add unit test

* Fix selectors name in e2e tests

* Correct e2e test token amount for address-book-send changes

* Adds e2e test for editing a transaction

* Delete test/integration/lib/send-new-ui.js

* Add tests for amount max button and high value error on send screen to test/e2e/metamask-ui.spec.js

* lint and revert to address as object keys

* add chainId based on current network to address book entry

* fix test

* only display contacts for the current network

* Improve ENS message when not found on current network

* Add error to indicate when network does not support ENS

* bump gaba

* address book, resolve comments

* Move contact-list to its own component

* De-duplicate getaddressbook selector and refactor name selection logic in contact-list-tab/

* Use contact-list component in contact-list-tab.component (i.e. in settings)

* Improve/fix settings headers for popup and browser views

* Lint fixes related to address book updates

* Add 'My accounts' page to settings address book

* Update add new contact button in settings to match floating circular design

* Improve styles of view contact page

* Improve styles and labels of the add-contact.component

* Further lint fixes related to address book updates

* Update unit tests as per address book updates

* Ensure that contact list groups are sorted alphabetically

* Refactor settings component to use a container for connection to redux; allow display of addressbook name in settings header

* Decouple ens-input.component from send context

* Add ens resolution to add contact screen in settings

* Switching networks when an ens address is shown on send form removes the ens address.

* Resolve send screen search for ensAddress to matching address book entry if it exists

* Show resolved ens icon and address if exists (settings: add-contact.component)

* Make the displayed and copied address in view-contact.component the checksummed address

* Default alias state prop in AddToAddressBookModal to empty string

* Use keyCode to detect enter key in AddToAddressBookModal

* Ensure add-contact component properly updates after QR code detection

* Fix display of all recents after clicking 'Load More' in contact list

* Fix send screen contact searching after network switching

* Code cleanup related to address book changes

* Update unit tests for address book changes

* Update ENS name not found on network message

* Add ens registration error message

* Cancel on edit mode takes user back to view screen

* Adds support for memo to settings contact list view and edit screens

* Modify designs of edit and view contact in popup environment

* Update settings content list UX to show split columns in fullscreen and proper internal navigation

* Correct background address book API usages in UI
2019-07-31 17:26:44 -02:30
Mark Stacey
1112277cd6
Remove seedWords completely from metamask state (#6920)
`seedWords` used to be stored on the metamask state temporarily at
certain points. This hasn't been the case since #5994, but references
to this state remained. All of the logic remained for correctly updating
these `seedWords`, handling them during navigation, and scrubbing them
from the state.

However the state was never updated in practice. The `seedWords` are
still returned by `verifySeedPhrase`, and they're still stored in
component state in a few places. But they aren't ever set in the Redux
metadata state or the Preferences controller.

All references to this state have been removed, along with any logic
for interacting with this state. A few unused actions were removed as
well.
2019-07-26 10:35:21 -03:00
Mark Stacey
95f198550e
Declare variables before use (#6806)
While working on #6805, I noticed that many variables were being used
before they were declared. Technically this worked fine in practice
because we were using the `transform-es2015-block-scoping` Babel plugin,
which transforms `let` and `const` to `var`, which is hoisted. However,
after removing that Babel transformation, many things broke.

All instances of variables or classes being used before declared have
been fixed.

The `no-use-before-define` eslint rule has been added to catch these
cases going forward. The rule is disabled for function declarations for
the moment, because those are always hoisted. We could disable that too
if we want to, but it's purely stylistic and would require a lot more
changes.
2019-07-05 14:01:34 -03:00
Akshit Kr Nagpal
d16d6f483c Validate txParams in TransactionStateManager.addTx (#6713)
* Normalize and Validate txParams in TransactionStateManager.addTx too

* Added Tests

* Updated normalizeAndValidateParams to return the new txParams
2019-06-29 00:51:51 +02:00
Paul Bouchon
47024fd9a5
feature: integrate gaba/CurrencyRateController (#6570) 2019-05-31 18:14:22 -04:00
Frankie
2b5c7b82a9
transactions/deps - use broken out nonce-tracker module (#6555) 2019-05-21 17:17:09 +02:00
Frankie
a34103987a
drop transactions who's nonce is lower then the known network nonce but were not included in a block (#6388)
* transactions/pending - check nonce against the network and mark as dropped if not included in a block

* transactions/pending - unifiy "dropped" txs

* transactions/pending - test - fix for new expected behavior

* fix comment

* transactions/pending - clean up dropped event

* fix spelling

Co-Authored-By: frankiebee <frankie.diamond@gmail.com>

* nit fix

* test/tx-pending - clarify test description
2019-05-16 07:36:53 +02:00
Paul Bouchon
e57ffbed59
feature: integrate gaba/ShapeShiftController (#6569) 2019-05-14 14:38:55 -04:00
Dan J Miller
b81c4e5c98 Set a default value for code in _determineTransactionCategory (#6604)
* Set a default value for code in _determineTransactionCategory

* Adds e2e tests that fail when token txs without gas param are not properly handled.

* Adds unit tests for _determineTransactionCategory

* Base error throwing and simple gas setting in estimateTxGas on transactionCategory
2019-05-14 14:14:07 -04:00
Thomas Huang
08e8fb21dc
Merge pull request #6568 from MetaMask/feature/gaba-phishing-controller
feature: integrate gaba/PhishingController
2019-05-10 13:43:20 -07:00
Dan J Miller
13be683701
New settings custom rpc form (#6490)
* Add networks tab to settings, with header.

* Adds network list to settings network tab.

* Adds form to settings networks tab and connects it to network list.

* Network tab: form adding and editing working

* Settings network form properly handles input errors

* Add translations for settings network form

* Clean up styles of settings network tab.

* Add popup-view styles and behaviour to settings network tab.

* Fix save button on settings network form

* Adds 'Add Network' button and addMode to settings networks tab

* Lint fix for settings networks tab addition

* Fix navigation in settings networks tab.

* Editing an rpcurl in networks tab does not create new network, just changes rpc of old

* Fix layout of settings tabs other than network

* Networks dropdown 'Custom Rpc' item links to networks tab in settings.

* Update settings sidebar networks subheader.

* Make networks tab buttons width consistent with input widths in extension view.

* Fix settings screen subheader height in popup view

* Fix height of add networks button in popup view

* Add optional label to chainId and symbol form labels in networks setting tab

* Style fixes for networks tab headers

* Add ability to customize block explorer used by custom rpc

* Stylistic improvements+fixes to custom rpc form.

* Hide cancel button.

* Highlight and show network form of provider by default.

* Standardize network subheader name to 'Networks'

* Update e2e tests for new settings network form

* Update unit tests for new rpcPrefs prop

* Extract blockexplorer url construction into method.

* Fix broken styles on non-network tabs in popup mode

* Fix block explorer url links for cases when provider in state has not been updated.

* Fix vertical spacing of network form

* Don't allow click of save button on network form if nothing has changed

* Ensure add network button is shown in popup view

* Lint fix for networks tab

* Fix block explorer url preference setting.

* Fix e2e tests for custom blockexplorer in account details modal changes.

* Update integration test states to include frequentRpcList property

* Fix some capitalizations in en/messages.json

* Remove some console.logs added during custom rpc form work

* Fix external account link text and url for modal and dropdown.

* Documentation, url validation, proptype required additions and lint fixes on network tab and form.
2019-05-09 14:57:14 -02:30
bitpshr
77d3bc252d feature: integrate gaba/PhishingController 2019-05-08 17:56:52 -04:00
Whymarrh Whitby
094e4cf555 Check for unused function arguments (#6583)
* eslint: Check for unused function arguments

* eslint: Ignore unused '_' in argument list

Also allow any number of '_' e.g., '__' or '___' which is to be used sparingly

* Remove and rename unused arguments
2019-05-08 15:51:33 -04:00
Whymarrh Whitby
1de7dc9b41 Remove nock#restore call from actions.spec.js
This call was unmocking all of our HTTP requests, allowing further test cases
to hit the network. Calling nock#restore should not be required.
2019-05-07 13:48:50 -02:30
Paul Bouchon
0db0a187c8 feature: add Goerli support (#6459) 2019-04-17 15:04:49 -02:30
Thomas Huang
a46ec83c9b Remove NoticeController (#6382) 2019-04-01 22:33:54 -02:30
kumavis
ed381f5b2a test - unit - ui - actions - setCompletedOnboarding - fix stub to call callback 2019-03-29 13:10:42 +08:00
kumavis
02585c0bd0 lint fix 2019-03-29 12:51:54 +08:00
kumavis
846038a69c notice-controller - make markAllNoticesRead sync 2019-03-29 12:39:29 +08:00
kumavis
e04f0c877b lib - nodeify - correctly wrap synchronous functions 2019-03-29 12:37:40 +08:00
kumavis
a64855ef49 notices - markAllNoticesRead - use async/await 2019-03-29 12:03:31 +08:00
kumavis
781a39c039 Merge branch 'develop' into clearNotices 2019-03-29 11:54:12 +08:00
Dan J Miller
4ff9126ff2
Replaces the coinbase link in the deposit modal with one for wyre (#6302) 2019-03-22 12:32:07 -02:30
Chi Kei Chan
31175625b4 Folder restructure (#6304)
* Remove ui/app/keychains/

* Remove ui/app/img/ (unused images)

* Move conversion-util to helpers/utils/

* Move token-util to helpers/utils/

* Move /helpers/*.js inside /helpers/utils/

* Move util tests inside /helpers/utils/

* Renameand move confirm-transaction/util.js to helpers/utils/

* Move higher-order-components to helpers/higher-order-components/

* Move infura-conversion.json to helpers/constants/

* Move all utility functions to helpers/utils/

* Move pages directory to top-level

* Move all constants to helpers/constants/

* Move metametrics inside helpers/

* Move app and root inside pages/

* Move routes inside helpers/

* Re-organize ducks/

* Move reducers to ducks/

* Move selectors inside selectors/

* Move test out of test folder

* Move action, reducer, store inside store/

* Move ui components inside ui/

* Move UI components inside ui/

* Move connected components inside components/app/

* Move i18n-helper inside helpers/

* Fix unit tests

* Fix unit test

* Move pages components

* Rename routes component

* Move reducers to ducks/index

* Fix bad path in unit test
2019-03-21 20:33:30 -02:30
Thomas Huang
07c9745258 Remove exclusive test 2019-03-20 21:29:08 -05:00
Thomas Huang
c43374a553 Clear notices when setCompletedOnboarding is called 2019-03-20 20:26:48 -05:00
Paul Bouchon
daae155ce2 GABA: Integrate AddressBookController (#5847)
* gaba: integrate AddressBookController

* pin gaba version and update lockfile
2019-03-11 18:40:41 -10:00
Whymarrh Whitby
3c73781787 Delete old-ui folder 2019-02-20 14:18:46 -03:30
Whymarrh Whitby
c52ba96b85 Remove betaUI preference state, replace with completedUiMigration 2019-02-05 08:49:55 -03:30
Dan J Miller
02bdbbbc3e Add visual indicator when displaying a cached balance (#5854) 2019-01-30 08:46:12 -03:30
Frankie
df3169d1c7
I#5956 fix2 dont overwrite existing rpc settings (#6044)
* mm-controller - dont overwrite existing rpc settings

* ui-networkDropdown - dont pass old network as chainId

* add methods preferencesController.updateRpc and metamaskController.updateAndSetCustomRpc

* use updateAndSetCustomRpc in settings to allow rpcs to be updated

* use new rpc as nickname if no nick name has been supplied

* fix update rpc method
2019-01-29 08:13:51 -10:00
Alexander Tseung
fba17d77de Refactor first time flow, remove seed phrase from state (#5994)
* Refactor and fix styling for first time flow. Remove seed phrase from persisted metamask state

* Fix linting and tests

* Fix translations, initialization notice routing

* Fix drizzle tests

* Fix e2e tests

* Fix integration tests

* Fix styling

* Fix migration naming from 030 to 031

* Open extension in browser when user has not completed onboarding
2019-01-23 11:55:34 -03:30
Frankie
0ad7797076
I#5956 fix 1 (#6026)
* prevent invalid chainId's when adding cusstom rpcs

* migration 30 removes invalid chaids from preferences and networkController for custom rpcs
2019-01-17 09:10:33 -10:00
Frankie
b5d6452454
Disallow loading as metamaskNetworkId (#5924)
* transactions - throw an error if a transaction is generated while the network is loading

* add tests for failing when netId is loading
2018-12-13 09:14:46 -10:00
Dan Miller
20dbebae9f Adds network loading retry / error screen. 2018-12-12 13:53:37 -03:30
Dan Miller
d8e41a6aa5 Final gas customization fixes 2018-12-04 00:06:22 -03:30
Dan Miller
9b9a2cc2e0 Adds createSpeedUpTransaction to txController 2018-12-04 00:06:05 -03:30
Dan J Miller
4c24555545 Save recent network balances in local storage (#5843)
* Use selector for state.metamask.accounts in all cases.

* Default to cached balance when selecting metamask accounts

* Adds the cached-balances controller

* Documentation and small codes fixes for #5843

Co-Authored-By: danjm <danjm.com@gmail.com>
2018-11-30 14:51:24 -08:00
Frankie
8198ec9ae1
Autofill gasPrice for retry attempts with either the recommended gasprice or a %10 bump (#5786)
* transactions - autofill gasPrice for retry attempts with either the recomened gasprice or a %10 bump

* lint
2018-11-26 09:29:14 -10:00
Dan Finlay
5956f8d260 Version 5.0.3 (#5785)
* Version 5.0.3

Includes a fix to the `version:bump` script that now correctly updates
the changelog header.

* Include inpage provider events
2018-11-20 08:34:14 -10:00
Alexander Tseung
4c87c05a02
Fix rounding issue when sending max tokens (#5695)
* Fix rounding issue when sending max tokens

* Ensure amount row shows exact amount of max tokens on send screen (#2)

* Fix tests

* Change stored redux value from BigNumber to hex string. Fix TokenInput default value
2018-11-19 16:06:34 -08:00
Dan Finlay
fdea642e6d
Auto fail transactions that have been approved for over 12 hours (#5765)
* Auto fail transactions that have been approved for over 12 hours

Converts txs using a migration.

This migration uses a new helper function that generates tx-failing
migrations, and only requires a version, error message, and condition to
run on each transaction.

* Linted

* Only migrate approved txs to failed

* Cleanup

* Cleanup

* Small lint fixes
2018-11-16 21:27:01 -08:00
Whymarrh Whitby
1988e1e96b ESLint fixes (#5775)
* eslint . --fix

* Upgrade all ESLint warnings to errors
2018-11-16 14:54:55 -10:00
Frankie
ce147bf6d8 Tx controller now uses safe event emitter (#5769)
* transactions - use safe-event-emitter over events

* tests - pass a platform object on init with a noop showTransactionNotification

* test - fix for tx-state-history-helper trying to reduce an empty array

* deps - safe-event-emitter

* lint
2018-11-16 10:34:08 -08:00
Dan Finlay
22ba0b0c2d Resubmit approved transactions on new block (#5752)
* Add beginning of test

* Resubmit approved transactions on new block

May fix #4343 and related issues, where an error could leave
transactions stranded in the approved state.

* Remove unused test

* Re-approve transactions when retrying approved

* Add retry approved test

* Include approved in pending tx count

* Fix getPendingTxs()

* Linted

* Only throw hash error in submitted state

* Only check submitted txs for block inclusion

* Fix test expectations
2018-11-14 11:34:07 -10:00
Paul Bouchon
0549782595
Update Balanc3 API (#5744)
* Update balanc3 API used in TokenRatesController

* Remove demo URL and use nativeCurrency when fetching token rates
2018-11-13 14:57:43 -05:00
Thomas Huang
0ab5c1c6e2
Merge pull request #5481 from MetaMask/reducers
tests/Reducers
2018-11-06 20:56:15 -08:00
bitpshr
c76c9ca2c8 EIP-1102: updated implementation 2018-11-05 15:07:09 -08:00
Esteban Miño
4489a57f2f Update watchAsset ERC20 validation (#5653)
* update ERC20 token valodation for watchAsset

* update ERC20 validation test descriptions
2018-11-05 15:36:34 -03:30
Thomas
f2fea8043e Remove .only 2018-10-31 07:09:02 -07:00
Thomas
7607794851 Readable tests, and set nextUnreadNotice to null when CLEAR_NOTICES is dispatched 2018-10-31 07:07:25 -07:00
Thomas
7531de14f9 Merge branch 'develop' into reducers 2018-10-31 05:55:25 -07:00
Thomas
611a61b7bc Isolate variables to individual tests 2018-10-31 05:45:27 -07:00
HackyMiner
54a8ade266 Add support for RPC endpoints with custom chain IDs (#5134) 2018-10-26 10:26:43 +02:00
Alexander Tseung
554f79c0e2
Fix blockies icons overriding contract map icons. Refactor Identicon component (#5599) 2018-10-25 17:21:41 +08:00
kumavis
b0c649a4e3
Merge pull request #5555 from MetaMask/support-wallet-watch-asset
Support for prefix wallet_watchAsset
2018-10-21 01:27:08 -04:00
Esteban Miño
7c4f98ffd6 specific add and remove methods for frequentRpcList (#5554) 2018-10-19 17:50:54 -02:30
Esteban MIno
75661673e5 add support for wallet_watchAsset 2018-10-19 13:57:11 -03:00
Alexander Tseung
badebe017f
Adds toggle for primary currency (#5421)
* Add UnitInput component

* Add CurrencyInput component

* Add UserPreferencedCurrencyInput component

* Add UserPreferencedCurrencyDisplay component

* Add updatePreferences action

* Add styles for CurrencyInput, CurrencyDisplay, and UnitInput

* Update SettingsTab page with Primary Currency toggle

* Refactor currency displays and inputs to use UserPreferenced displays and inputs

* Add TokenInput component

* Add UserPreferencedTokenInput component

* Use TokenInput in the send screen

* Fix unit tests

* Fix e2e and integration tests

* Remove send/CurrencyDisplay component

* Replace diamond unicode character with Eth logo. Fix typos
2018-10-17 07:03:29 +08:00
Whymarrh Whitby
af43b7d6c9 Ensure that new transactions added are using the selected address 2018-10-10 16:16:20 -02:30
Thomas Huang
b45479934d test - add actions unit tests (#5369)
* Actions.spec.js

* Error handling tests

* Lint
2018-10-10 10:32:26 -04:00
Thomas
be3f411a60 Reducers 2018-10-10 01:12:46 -07:00
Noel Yoo
ebdefe81a1 Refactor buffer constructor (#5468) 2018-10-09 09:32:48 -02:30
Noel Yoo
012f7ddd72 Fix typos (#5471) 2018-10-09 09:29:51 -02:30
Dan Finlay
c49d854b55 Increase suggested gas percentile to 65 (#5359)
* Increase suggested gas percentile to 65

I keep submitting transactions then waiting a long time. Apparently 50th percentile isn't enough.

* Update test for getGasPrice
2018-10-04 18:38:05 -02:30
Whymarrh Whitby
4dd6c8168f Add ability to whitelist a blacklisted domain at runtime 2018-10-02 10:43:46 -02:30
tmashuang
a0a57c24fd Some Ui tests 2018-09-24 11:28:04 -05:00
bitpshr
36dd0354e7 Implement latest EIP-712 protocol 2018-09-13 15:40:57 -04:00
Whymarrh Whitby
13bc46d824 Default NoticeController ctor opts to empty obj 2018-09-11 12:12:35 -07:00
Whymarrh Whitby
d60991ec88 Delete ConfigManager, replacing its usages with PreferencesController 2018-09-11 09:39:16 -07:00
Esteban MIno
e743f44150 fix conflicts 2018-08-28 15:20:30 -03:00
Esteban MIno
3106374cc3 watchAsset small changes 2018-08-27 22:10:14 -03:00
Esteban MIno
b59a1e91b8 typo watchAsset imageUrl to image 2018-08-23 15:54:40 -03:00
Whymarrh Whitby
e803b8e047 Add test cases for MetaMaskController#_onKeyringControllerUpdate 2018-08-22 15:38:34 -02:30
Esteban MIno
4e6c71e969 Merge branch 'develop' into WatchTokenFeature 2018-08-21 20:14:49 -03:00
Esteban MIno
6ccf2811e7 unit tests for watchAsset 2018-08-21 19:17:57 -03:00
brunobar79
54021fd90b fix unit tests 2018-08-21 00:09:54 -04:00
Bruno Barbieri
bd904c86f6
Merge branch 'develop' into ledger-support 2018-08-17 13:45:46 -04:00
brunobar79
992e7f1b5a fix merge conflicts 2018-08-17 12:56:07 -04:00
Dan Matthews
df799d7fd6 Restores accounts until one with a zero balance is found 2018-08-17 10:26:47 -04:00
brunobar79
fdf202efb0 fixed unit tests 2018-08-14 21:19:01 -04:00
Thomas
ce645561fb Remove commented out code for detect-token-test 2018-08-14 12:29:57 -07:00
Thomas
96d789d2cf Merge branch 'develop' into network-remove-provider-engine
Override package-lock and fix merge conflicts
2018-08-14 10:44:42 -07:00
brunobar79
b77cc3d969 fix tx tests 2018-08-14 03:42:23 -04:00
Esteban MIno
d263d60b4c tests for migration 28 2018-08-09 16:41:16 -04:00
Thomas Huang
5b3927fe5b Lint 2018-07-30 20:30:35 -07:00
Thomas Huang
2392e77cd8 Set metamask controller network provider to localhost 2018-07-30 20:18:01 -07:00
Esteban MIno
fbcba8f019 create tokens storage when setadresses 2018-07-30 19:09:17 -04:00
Thomas
fb5e357998 Detect Tokens are weird 2018-07-30 06:26:34 -07:00
Esteban MIno
dd6a725e6d unit tests for tokens per account and network 2018-07-27 17:41:47 -04:00
Esteban MIno
f79a249bcc modify tests according to tokens by network 2018-07-26 20:04:57 -04:00
Thomas
138858647e Merge branch 'develop' into network-remove-provider-engine 2018-07-25 22:38:44 -07:00
Esteban Miño
110efa9ec1
Merge branch 'develop' into detectTokenFeature 2018-07-20 20:09:37 -04:00
Esteban MIno
9c95554933 fix detection on submit password 2018-07-20 19:58:03 -04:00
Esteban Miño
cb045fd8fe
Auto-detect tokens #3034 (#4683)
* detect tokens polling

* network store to detect token

* tests for spec

* passtest-lint

* fix lint

* improve tests

* detect tokens through infura

* detect tokens when submit password and new account selected

* keyring unlocked detect and unit tests

* add changelog
2018-07-20 12:36:24 -04:00
Esteban MIno
009b1cefbe keyring unlocked detect and unit tests 2018-07-19 19:46:46 -04:00
Esteban MIno
3b97d816ff detect tokens when submit password and new account selected 2018-07-19 15:56:38 -04:00
Bruno Barbieri
9be2248d7a
Merge pull request #4625 from MetaMask/initial-trezor-support
Initial trezor support
2018-07-19 15:00:59 -04:00
Alexander Tseung
e16f5ab54d Fix tests 2018-07-17 13:38:15 -07:00
brunobar79
e89350b19f added tests for removeAccount 2018-07-17 01:44:28 -04:00
brunobar79
de4265c629 added more unit tests 2018-07-17 01:17:18 -04:00
brunobar79
e5512c306d added unit tests for metamaskcontroller 2018-07-16 19:36:08 -04:00
brunobar79
41879a9835 added test for preferences controller 2018-07-16 16:08:19 -04:00
Esteban MIno
2fffe09873 detect tokens through infura 2018-07-12 20:43:43 -04:00
Alexander Tseung
0d4dbbec2a
Merge pull request #4691 from MetaMask/i4404-confirm-refactor
Refactor and redesign confirm transaction views
2018-07-11 15:31:50 -10:00
Esteban MIno
910713c6b3 improve tests 2018-07-11 15:59:05 -04:00
frankiebee
b30499886f test - check that #setTxStatusRejected removes transaction from history 2018-07-10 15:35:27 -07:00
frankiebee
8a678001a9 test - fix for lint 2018-07-10 11:43:00 -07:00
frankiebee
28c509914b Merge branch 'develop' of https://github.com/MetaMask/metamask-extension into i#3896 2018-07-10 11:32:05 -07:00
Alexander Tseung
7d691c7398 Fix existing unit tests 2018-07-07 18:53:00 -07:00
kumavis
fa02a6c7c6 test - unit - remove tests for obsolete methods 2018-07-03 13:56:18 -07:00
kumavis
77daed5c74 Merge branch 'develop' of github.com:MetaMask/metamask-extension into network-remove-provider-engine 2018-07-03 12:42:14 -07:00
Esteban MIno
63b9c8796b fix lint 2018-07-03 15:24:23 -04:00
Esteban MIno
0494b2fc8a Merge branch 'develop' into detectTokenFeature 2018-07-03 13:23:15 -04:00
brunobar79
4b398701c1 fix unit tests 2018-07-02 21:03:34 -04:00
brunobar79
c734e486a0 fix tests 2018-07-02 20:21:27 -04:00
brunobar79
0da41263ac fix warning for unit tests 2018-07-02 20:12:50 -04:00
brunobar79
a8f745f9fe eslint --fix . 2018-07-02 18:49:33 -04:00
kumavis
a89902c170 Merge branch 'develop' of github.com:MetaMask/metamask-extension into network-remove-provider-engine 2018-07-02 13:54:05 -07:00
Esteban MIno
6284e66481 tests for spec 2018-06-27 22:18:06 -04:00
frankiebee
94a4f99115 tests - fix cancle transaction test to better fit new behavior 2018-06-26 12:21:50 -07:00
frankiebee
7b1f57e05d woops - remove .only
Co-authored-by: @jennypollack
2018-06-25 15:18:01 -07:00
frankiebee
9b92ba4c47 trandsactions - remove rejected transactions from history 2018-06-25 15:07:54 -07:00
frankiebee
7d3da0ae96 migration 27 - remove rejected transactions from state 2018-06-25 11:45:00 -07:00
Dan Finlay
3a5089da6f
Merge pull request #4566 from MetaMask/notice-phishing
Push new notice on recent phishing incidents
2018-06-14 09:49:38 -07:00
kumavis
44a8e48a04 notices - replace getLatestNotice with getNextNotice 2018-06-13 23:30:31 -07:00
kumavis
e9cb650832 Merge branch 'develop' of github.com:MetaMask/metamask-extension into ValidateEmptyKey 2018-06-13 21:11:04 -07:00
kumavis
7a001447a8 test - unit - add assertRejects to test asyncFns 2018-06-13 21:01:00 -07:00
kumavis
62586b3b6e
test - unit - import strategies - properly await async methods 2018-06-13 20:39:57 -07:00
Dan Finlay
b24efcb1cd Make account import tests much more specific
However, they no longer seem to work. I'm unclear why this test is
failing. The private key being provided should be valid.
2018-06-11 14:58:05 -07:00
Dan Finlay
385927a1b9 Improve private key import tests 2018-06-07 13:34:10 -07:00
Dan Finlay
b7fe4b820d Improve test formatting 2018-06-07 10:54:19 -07:00
kumavis
2198276bd5 Merge branch 'develop' of github.com:MetaMask/metamask-extension into network-remove-provider-engine 2018-06-06 12:05:38 -07:00
Thomas Huang
1fb408f62e
Merge pull request #4512 from MetaMask/test-metamask-no-diagnostics
test - metamask-controller - disable diagnostics
2018-06-06 11:54:59 -07:00
kumavis
d30f03dcbf
Merge pull request #4414 from scsaba/recipient-blacklist
Disallow sending to ganache default accounts on main net
2018-06-06 11:54:01 -07:00