1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-12 20:57:12 +01:00
Commit Graph

3163 Commits

Author SHA1 Message Date
Erik Marks
a2a51e78d1
Add PermissionsController.removePermittedAccount (#8354)
* add PermissionsController.removePermittedAccount and corresponding UI action

* remove eth_accounts permission on removing last account
2020-04-20 11:34:56 -07:00
Whymarrh Whitby
164923acd1
Export individual fns from tx-state-history-helpers (#8370) 2020-04-20 13:00:51 -02:30
Whymarrh Whitby
a83d26486c
Snapshot txMeta without cloning history (#8363) 2020-04-20 12:26:01 -02:30
Whymarrh Whitby
7c3ffeb841
Export blacklist direct from recipient-blacklist (#8364) 2020-04-20 12:06:02 -02:30
Brad Decker
f9989c52c5
Position notification relative to last focused window (#8356) 2020-04-19 19:30:17 -02:30
Erik Marks
5263395add
Fix background console errors on pending transaction (#8351)
* fix background console error on pending transaction
2020-04-17 09:53:46 -07:00
Mark Stacey
15616a33ca
Add 'addPermittedAccount' method to permissions controller (#8344)
This method adds the given account to the given origin's list of
exposed accounts. This method is not yet used, but it will be in
subsequent PRs (e.g. #8312)

This method has been added to the background API, and a wrapper action
creator has been written as well.
2020-04-16 19:23:36 -03:00
Erik Marks
1f49772ca3
Create new tabs instead of windows in most cases (#8347)
* openExtensionInBrowser: create tab, not window

* open tabs instead of windows in most cases
2020-04-16 14:34:40 -07:00
Mark Stacey
c26d272649
Synchronously validate accounts (#8343)
Now that identities are available synchronously in the permissions
controller, accounts can be validated synchronously as well. Any
account the user wants to give permissions to should already be tracked
as an identity in the preferences controller.
2020-04-16 15:58:36 -03:00
Mark Stacey
63633635ab
Fix order of accounts in eth_accounts response (#8342)
* Fix order of accounts in `eth_accounts` response

The accounts returned by `eth_accounts` were in a fixed order - the
order in which the keyring returned them - rather than ordered with the
selected account first. The accounts returned by the `accountsChanged`
event were ordered with the selected account first, but the same order
wasn't used for `eth_accounts`.

We needed to store additional state in order to determine the correct
account order correctly on all dapps. We had only been storing the
current selected account, but since we also need to determine the
primary account per dapp (i.e. the last "selected" account among the
accounts exposed to that dapp), that wasn't enough.

A `lastSelected` property has been added to each identity in the
preferences controller to keep track of the last selected time. This
property is set to the current time (in milliseconds) whenever a new
selection is made. The accounts returned with `accountsChanged` and by
`eth_accounts` are both ordered by this property.

The `updatePermittedAccounts` function was merged with the internal
methods for responding to account selection, to keep things simpler. It
wasn't called externally anyway, so it wasn't needed in the public API.

* Remove caveat update upon change in selected account

The order of accounts in the caveat isn't meaningful, so the caveat
doesn't need to be updated when the accounts get re-ordered.

* Emit event regardless of account order

Now that we're no longer relying upon the caveat for the account order,
we also have no way of knowing if a particular account selection
resulted in a change in order or not. The notification is now emitted
whenever an exposed account is selected - even if the order stayed the
same.

The inpage provider currently caches the account order, so it can be
relied upon to ignore these redundant events. We were already emiting
redundant `accountsChanged` events in some cases anyway.
2020-04-16 15:20:01 -03:00
Mark Stacey
b2882aa778
Handle account selection on all domains that can view the selection (#8341)
Selecting a new account now results in all domains that can view this
change being notified. Previously only the dapp in the active tab was
being notified (though not correctly, as the `origin` was accidentally
set to the MetaMask chrome extension origin).

This handling of account selection has been moved into the background
to minimize the gap between account selection and the notification
being sent out. It's simpler for the UI to not be involved anyway.
2020-04-16 13:16:53 -03:00
Mark Stacey
5ee1291662
Prevent accidental use of globals (#8340)
Previously all browser globals were allowed to be used anywhere by
ESLint because we had set the `env` property to `browser` in the ESLint
config. This has made it easy to accidentally use browser globals
(e.g. #8338), so it has been removed. Instead we now have a short list
of allowed globals.

All browser globals are now accessed as properties on `window`.

Unfortunately this change resulted in a few different confusing unit
test errors, as some of our unit tests setup assumed that a particular
global would be used via `window` or `global`. In particular,
`window.fetch` didn't work correctly because it wasn't patched by the
AbortController polyfill (only `global.fetch` was being patched).
The `jsdom-global` package we were using complicated matters by setting
all of the JSDOM `window` properties directly on `global`, overwriting
the `AbortController` for example.

The `helpers.js` test setup module has been simplified somewhat by
removing `jsdom-global` and constructing the JSDOM instance manually.
The JSDOM window is set on `window`, and a few properties are set on
`global` as well as needed by various dependencies. `node-fetch` and
the AbortController polyfill/patch now work as expected as well,
though `fetch` is only available on `window` now.
2020-04-15 14:23:27 -03:00
Mark Stacey
656dc4cf18
Cleanup detect-tokens controller and tests (#8329)
The tests for the detect-tokens controller were nearly all broken. They
have been fixed, and a few improvements were made to controller itself
to help with this.

* The core `detectNewTokens` method has been updated to be async, so
that the caller can know when the operation had completed.
* The part of the function that used `Web3` to check the token balances
has been split into a separate function, so that that part could be
stubbed out in tests. Eventually we should test this using `ganache`
instead, but this was an easier first step.
* The internal `tokenAddresses` array is now initialized on
construction, rather than upon the first Preferences controller update.
The `detectNewTokens` function would have previously failed if it ran
prior to this initialization, so it was failing if called before any
preferences state changes.

Additionally, the `detectTokenBalance` function was removed, as it was
no longer used.

The tests have been updated to ensure they're actually testing the
behavior they purport to be testing. I've simulated a test failure with
each one to check that it'd fail when it should. The preferences
controller instance was updated to set addresses correctly as well.
2020-04-13 17:14:42 -03:00
Mark Stacey
e02a0221fc
Focus the notification popup if it's already open (#8318)
Any action in the background that would have opened the notification
window will now focus the window instead if it was already open.
Previously it would leave the window unfocused. This was particularly
inconvenient when taking multiple actions in quick succession that all
require confirmations (e.g. triggering multiple transactions).
2020-04-11 20:43:55 -03:00
Mark Stacey
852277b2ae
Refactor notification manager and triggerUi to use extension platform (#8317)
The notification manager has been refactored to use the extension
platform module instead of using `extensionizer` directly. The
extension platform API presents a more ergonomic API, and it correctly
handles errors (which the old notification manager did not). Methods
that the extension platform lacked have been added.

It has been updated to use `async/await` instead of callbacks as well,
for readability.

The `triggerUI` function has also been updated to use the extension
platform instead of `extensionizer`.
2020-04-11 12:12:45 -03:00
Mark Stacey
1282ed774e
Remove ineffectual close popup function (#8316)
During the initialization of the full-screen or popup UI, we attempted
to close the notification popup (if it was open). This never worked (or
at least hasn't in a long time).

The method used to attempt closing the notification popup was
`closePopup` from the `notificationManager`, which keeps track
internally of the id of the notification popup window, and can close
the window by using this id.

However, this id is only set in the first place if the popup is opened
with this specific instance of the `notificationManager`. The popup is
never opened from the UI in practice; it's only opened from the
background (which has its own instance of `notificationManager`). The
popup id is never set for this `notificationManager` instance in the UI.

It's not entirely clear that we'd always want to close the notification
popup in this circumstance anyway. The user might want to open MetaMask
alongside the popup to check something else.
2020-04-10 12:27:58 -03:00
Mark Stacey
e720843517
Fix popup not opening (#8314)
MetaMask would sometimes get into a state where the notification popup
would never open. This could happen if the notification window was
closed shortly after being opened. After this happened, no popups would
show up until after the extension was reset.

This was happening because the background thought the popup was already
open. The variable it uses to track whether the popup was open or not
was being set to `true` immediately after the background asked the
browser to open a new window, before a handler was attached that could
respond to the window being closed.

Removing this line seems to solve the problem.

This line was added originally in #5437, which dealt with batch
transactions. Batches of transactions seem to work just fine without
this line though (from local testing), and I can't think of why this
would be required.

Closes #7051
2020-04-09 20:43:32 -03:00
Mark Stacey
11c6839b91
Remove unused option (#8315)
This `closePopup` option to the MetamaskController was never used.
2020-04-09 20:15:38 -03:00
Dan J Miller
d1e078b8de
Connect flow via popup (#8269)
* Connect screen popup redesign

* Open permission request in notification instead of tab

* Remove no longer user locales

* Update permissions unit test mock to accout for change of opts passed to permissions controller

* Lint fix

* Inline broken line svg in permission-page-container-content.component.js for faster loading

* Add back button to second screen on connect flow

* Add xOfY locale and use for the page count in the connect flow

* Lint fix for svgs permission-page-container-content.component.js

* Fix rebase error

* Lint fix

* Clean up styles on the connect-screen-into-popup branch

* Use closeCurrentWindow to close window on cancel when in full screen connect flow

* Handle errors in rejectPermissionsRequest

* Full screen styles for connect flow

* Lint fixed in permissions-connect and actions.js

* Redirect screen now shows metamask icon instead of users identicon

* Fix subtitle spacing in permissions-connect-header'

* Use window.close instead of closeCurrentWindow() in cancelPermissionsRequest

* Use permissions-connect-header__subtitle in permissions-connect-header.component
2020-04-07 16:08:15 -02:30
Whymarrh Whitby
d8e0c9edd9
Use @metamask/etherscan-link@1.1.0 (#8294) 2020-04-06 13:38:44 -02:30
Mark Stacey
12536aa47f
Remove unused isPopup state (#8280)
This property was being set upon each change to background state.
2020-04-01 20:01:47 -03:00
Mark Stacey
44effa0d91
Replace METAMASK_UI_TYPE global with helper function (#8279)
We don't need to store the current UI type as a global. We're already
using the `getEnvironmentType` helper function throughout the UI, so
we'd might as well use that instead of this global state.
2020-04-01 19:28:10 -03:00
Erik Marks
6ba3b7e282
Add signTypedData_v4 to safe methods (#8265) 2020-03-31 16:54:16 -07:00
Erik Marks
2301d9980e
Wait for extension unlock before processing eth_requestAccounts (#8149)
* eth_requestAccounts: wait on unlock

return error on duplicate eth_requestAccounts
add getUnlockPromise mock to permissions unit tests

* only await unlock if already permitted

* add notification badge for wait on unlock

* fixup

* more fixup

* cleanup

* update keyring controller, us its unlock event

* move keyring update unlock logic to unlock event handler

* fix unit tests

* delete onUnlock handler

* fix eth-keyring-controller resolution

* update eth-keyring-controller
2020-03-23 09:25:55 -07:00
Erik Marks
0af02d5194
Update address sync logic (#8224)
* update address sync logic

* error on sync with no addresses
2020-03-20 12:37:27 -07:00
James Prestwich
6828eaaee1
typo: copy paste error (#8194) 2020-03-16 19:06:22 -03:00
Erik Marks
b1d090ac4d
Add permissions controller unit tests (#7969)
* add permissions controller, log, middleware, and restricted method unit tests

* fix permissions-related bugs

* convert permissions log to controller-like class

* add permissions unit test coverage requirements

* update rpc-cap

Co-Authored-By: Whymarrh Whitby <whymarrh.whitby@gmail.com>
Co-Authored-By: Mark Stacey <markjstacey@gmail.com>
2020-03-16 10:13:22 -07:00
Mark Stacey
61fdb56864
Use specified gas limit when speeding up a transaction (#8178)
The sidebar used to speed up a transaction while it's pending or after
it has failed currently allows editing the gas limit, but that new
limit is ignored. This is especially problematic for transactions that
failed due to a low gas limit, as the problem becomes impossible to fix
by retrying.

The gas limit specified by the user is now used in the speed up
transaction.

Fixes #8156
Fixes #7977
2020-03-12 11:33:11 -03:00
Mark Stacey
28e2354583
Fix Sentry error processing for errors missing a stack (#8179)
Errors without stack traces would break the Sentry error processing,
which assumes the presence of a stack trace. Many errors don't have any
stack trace though, such as uncaught promises.

This breakage resulting in the app state being missing from the error
report, and a console warning.
2020-03-12 10:51:05 -03:00
kumavis
7686edadb0
Build system refactor (#8140)
* build - start static asset task cleanup

* build - simplify manifest tasks

* build - refactor + rename some tasks

* build - various cleanups

* manifest - fix ref from controller

* build - drop gulp for simple async tasks

* build - breakout gulpfile into multiple files

* build - rename some tasks

* build - use task fn refs instead of string names

* build - bundle all scripts first, except for contentscript

* build - improve task timeline

* deps - update lock

* build - improve task time printout

* build/scripts - remove intermediate named task

* build - use 'yarn build' for task entry points

* build - properly run tasks via runTask for timeline display

* development/announcer - fix manifest path + clean

* build - lint fix

* build - make all defined tasks possible entry points

* build/task - properly report errors during task

* ci - fix sesify/lavamoat-viz build command

* build/scripts - run each bundle in separate processes

* lint fix

* build - forward childProcess logs to console

* build/task - fix parallel/series stream end event

* build/scripts refactor contentscript+inpage into a single task

* build/static - use the fs for 150x speedup zomg

* lint fix

* build/static - fix css copy

* Update development/build/scripts.js

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

* Update development/build/scripts.js

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

* Update development/build/index.js

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

* deps - remove redundant mkdirp

* deps - remove unused pumpify

* deps - remove redundant merge-deep

* deps - prefer is-stream of isstream

* deps - remove clone for lodash.cloneDeep

* clean - remove commented code

* build/static - use fs.copy + fast-glob instead of linux cp for better platform support

* build/manifest - standardize task naming

* build/display - clean - remove unused code

* bugfix - fix fs.promises import

* build - create "clean" as named task for use as entrypoint

* build/static - fix for copying dirs

* Update development/build/task.js

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

* Update development/build/display.js

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

* Update development/build/display.js

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

* Update development/build/display.js

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

* build - use task refs, tasks only return promises not streams, etc

* lint fi bad merge + lint

* build - one last cleanup + refactor

* build - add comments introducing file

* build/manifest - fix bug + subtasks dont beed to be named

* Update package.json

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

* build/task - remove unused fn

* Update package.json

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

* Update development/build/styles.js

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

* Update development/build/styles.js

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

Co-authored-by: Mark Stacey <markjstacey@gmail.com>
2020-03-09 08:55:02 +08:00
Erik Marks
2df8b85c5f
LoginPerSite: Support multiple accounts without automatic switching (#8079)
* transaction editing: use txParams 'from' account

* signature-request: use txParams 'from' account

* signature-request-original: use txParams 'from' account

* encryption/decryption: use txParams 'from' account

* update tests

* set 'send' state 'from' address in confirm containers
2020-03-06 13:34:56 -08:00
Erik Marks
0775c61f09
Prevent external domains from submitting more than one perm request at a time (#8148) 2020-03-06 07:49:35 -08:00
Whymarrh Whitby
21c1c2a14e
Use @metamask/eth-ledger-bridge-keyring@0.2.2 (#8155)
* Use @metamask/eth-ledger-bridge-keyring@0.2.2

* Update usages of eth-ledger-bridge-keyring
2020-03-02 20:32:45 -04:00
ryanml
64aef5033d
Adding setting for disabling Eth Phishing Detection (#8125) 2020-02-27 02:29:41 -04:00
Erik Marks
5d1f3c1436
Delete shapeshift functionality; retain state and display (#8118)
* delete shapeshift functionality; retain state and display
2020-02-26 09:34:46 -08:00
Erik Marks
83da3db37b
Remove selected address history (#8104)
* remove selected address history, account switching; fix perm selectors, bugs

Co-Authored-By: Mark Stacey <markjstacey@gmail.com>
2020-02-25 14:39:38 -08:00
Dan J Miller
1d2c57a2f3
Assign tabId to middleware request, if provided (#7695)
The `tabId` of the message sender is now added to the middleware
request object. This step is omitted if the `tabId` is not provided.
This is done early in the middleware stack, so the `tabId` should be
available for any subsequent middleware to use.

The Onboarding Middleware has also been modified to get the `tabId`
from the request object, rather than expecting it as a parameter upon
creation.

This refactor will enable further uses of the `tabId`.
2020-02-20 18:39:00 -04:00
Konstantin
6f47fece56
Implementation encrypt/decrypt feature (#7831)
Implement `eth_decrypt` and `eth_getEncryptionPublicKey`. This allows decryption backed by the user's private key. The message decryption uses a confirmation flow similar to the messaging signing flow, where the message to be decrypted is also able to be decrypted inline for the user to read directly before confirming.
2020-02-19 14:24:16 -04:00
ricky
1f9e3b89d4
Add optional chaining (#8052)
* Add plugin-proposal-optional-chaining

* Use optional chaining to provide error fallback
2020-02-18 10:11:52 -05:00
Whymarrh Whitby
da0300d3b1 Enable core ESLint no-mixed-operators rule 2020-02-17 21:06:36 -03:30
Jenny Pollack
c1453c7528
Merge pull request #8056 from whymarrh/arrow-parens
Enable arrow-parens ESLint rule
2020-02-17 15:26:43 -07:00
Whymarrh Whitby
a78cf0ef3a Enable arrow-parens ESLint rule 2020-02-15 17:04:21 -03:30
Mark Stacey
62c5ea4f80
Update Wyre ETH purchase url (#8051)
* Revert "Revert "Update Wyre ETH purchase url" (#7631)"

This reverts commit bc67d1eeca.

* Restrict widget to just debit card payments

Apple Pay apparently only works on Safari.
2020-02-14 14:07:24 -08:00
Dan Finlay
cfcccd266a
Inline the source text not the binary encoding for inpage script (#8053) 2020-02-14 15:27:12 -04:00
Erik Marks
0103bf8b29
fix faulty null checks 2020-02-12 08:17:13 -08:00
Whymarrh Whitby
dea8f0f24d
Use combineReducers for rootReducer (#7964) 2020-02-06 13:08:14 -03:30
Erik Marks
8e307f8d71
update inpage-provider; minor fixes (#7997) 2020-02-06 07:57:54 -08:00
Alice Henshaw
d6009bbfb7
Updating deprecated Etherscam link (#7464)
Co-authored-by: Whymarrh Whitby <whymarrh.whitby@gmail.com>
2020-02-03 16:45:53 -03:30
Whymarrh Whitby
b80afc6493
Use ethereum-ens-network-map for network support (#7960) 2020-01-31 09:56:50 -03:30
Whymarrh Whitby
0159670214
Update ENS registry addresses (#7954) 2020-01-30 12:03:28 -03:30
Mark Stacey
ee415058cc
Only resolve ENS on mainnet (#7944)
The ENS resolver will now bail on any network other than mainnet.
2020-01-29 20:57:14 -04:00
Mark Stacey
cbfe5484d8
Add Sentry environment (#7923)
Any error sent to Sentry will now be marked with the environment they
were sent from. The environment is set at build time, and is set
dependant upon the build flags and CI-related environment variables.

Setting the environment will let us filter error reports in Sentry to
focus specifically upon reports sent from production, release
candidates, PR testing, or whatever else.
2020-01-29 17:03:49 -04:00
Mark Stacey
00a73ee25e
Replace debounce package with debounce function from lodash (#7931)
These two functions differ slightly in options, but none of those
options are being used by us, so in these cases they're functionally
equivalent. They're even both descendants of the original `debounce`
function from `underscore`.

This was done to reduce the number of direct dependencies we have. It
should not affect bundle size, as we still depend upon the `debounce`
package transitively.
2020-01-29 13:36:03 -04:00
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
Mark Stacey
b8cdc928f6
Report errors in tests to test-metamask Sentry project (#7924)
Previously, all errors encountered during testing or production were
sent to the primary `metamask` Sentry project, whereas development
errors were sent to `test-metamask` instead. This change ensures that
errors encountered during tests are sent to `test-metamask` as well.
2020-01-29 12:12:49 -04:00
Whymarrh Whitby
5078598306
Remove usage of unlisted extend dependency (#7903) 2020-01-28 13:31:20 -03:30
Erik Marks
b75f812953
Improve LoginPerSite UX/devX and permissions logging (#7649)
Update accounts permission history on accountsChanged
Create PermissionsLogController
Fix permissions activity log pruning
Add selectors, background hooks for better UX
Make selected account the first account returned
Use enums for store keys in log controller
Add last selected address history to PreferencesController
2020-01-27 14:42:03 -08:00
Mark Stacey
f2a719a70c
Replace deep-extend with merge from lodash (#7908)
The `merge` function from `deep-extend` is at least mostly equivalent
to `merge` from `lodash` - certainly in how we're using it.
2020-01-27 14:01:09 -04:00
Mark Stacey
38a71a6067
Update Sentry to v5.x (#7880)
Theses changes were made in accordance with the provided migration
guide [1].

The two integrations added were included by default on v4.x, so this
shouldn't result in any change in behavior.

[1]:  https://github.com/getsentry/sentry-javascript/blob/master/MIGRATION.md
2020-01-26 12:49:58 -04:00
Mark Stacey
86c6280bc3
Remove unnecessary get environment type parameter (#7891)
* Remove unnecessary `getEnvironmentType` parameter

The default value of the first parameter is `window.location.href`, so
there is no need to pass it in explicitly.

* Remove junk parameter from `getEnvironmentType` invocation

`getEnvironmentType` doesn't need to be passed any parameter, as the
default value is `window.location.href` which is generally what is
wanted. In this case, the variable `location.href` was always
`undefined` anyway. This particular `location` variable is from React
Router, and does not have an `href` property.

* Fix comment for `getEnvironmentType`

One of the possible return values was referred to by the wrong name.
2020-01-24 15:12:58 -04:00
Erik Marks
b095dc0347
Change "Log In/Out" terminology to "Unlock/Lock" (#7853)
* log out/in -> lock/unlock
2020-01-21 14:09:53 -08:00
Whymarrh Whitby
3448f34905
Clean up "JSON File" import strategy test output (#7855) 2020-01-17 19:59:47 -03:30
Mark Stacey
7b35ea6400
Allow exporting state during e2e tests (#7860)
As of #7663, an in-memory store was used in place of local storage
during e2e tests, to facilitate the use of state fixtures. However,
this made it difficult to export state during a test run. The
instructions for exporting state to create fixtures assumed that local
storage was being used.

A new global function has been added to the background context to allow
exporting state. This method is available during testing and
development, and it works with either local storage or the in-memory
store. The fixture instructions have been updated to reference this new
function.
2020-01-17 18:59:25 -04:00
Whymarrh Whitby
76a31c3175 Clean up Migrator test cases (#7835) 2020-01-15 13:54:28 -08:00
Whymarrh Whitby
a891fa36b6
Remove MetaMask Mesh testing client (#7818) 2020-01-14 15:44:12 -03:30
Whymarrh Whitby
25fe4adaa7 Remove usages of xtend from the background scripts (#7796) 2020-01-13 08:59:36 -10:00
Mark Stacey
ac01c5c89a
Consistent jsdoc syntax (#7755)
* Specify type before parameter name

Various JSDoc `@param` entries were specified as `name {type}` rather
than `{type} name`.

A couple of `@return` entries have been given types as well.

* Use JSDoc optional syntax rather than Closure syntax

* Use @returns rather than @return

* Use consistent built-in type capitalization

Primitive types are lower-case, and Object is upper-case.

* Separate param/return description with a dash
2020-01-13 14:36:36 -04:00
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
09859d48b0
Prevent install popup during e2e tests (#7760)
Typically the fullscreen UI will open upon installation, though this
behaviour was suppressed in development. This was dealt with in the e2e
tests by waiting for it to open, then closing it.

Instead this behaviour is now suppressed for test builds as well.
2020-01-08 11:47:45 -04:00
Jenny Pollack
c7a4d032c5 add watchAsset (#7726)
* add watchAsset

* add metamask_watchAsset
2019-12-24 09:46:11 -08:00
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
Whymarrh Whitby
6c1bce28ac
Fix a few instances of signature mismatches (#7704)
Co-Authored-By: Mark Stacey <markjstacey@gmail.com>
2019-12-16 19:54:52 -03:30
Whymarrh Whitby
62d5e47bcb
Remove unused DiagnosticsReporter class (#7701) 2019-12-13 12:03:50 -03:30
Whymarrh Whitby
2a8e586142
Remove unused methods from one of the many utils files (#7702) 2019-12-13 11:21:07 -03:30
Whymarrh Whitby
db0d59f800
Remove unused UI actions (#7675) 2019-12-12 19:48:48 -03:30
pldespaigne
0ef7f603d6 Ipfs cid v1 base32 (#7362)
add ipfs gateway to advanced settings
use ipfs gateway from settings
use ipfs.dweb.link as default CID gateway
disallow gateway.ipfs.io as gateway
2019-12-12 11:28:07 -08:00
Whymarrh Whitby
f49bc58c09
Remove unused methods from the app/scripts/ (#7692) 2019-12-12 15:07:18 -03:30
Whymarrh Whitby
5958eccf46
Remove unused ExtensionPlatform#queryTabs method (#7691) 2019-12-11 18:45:19 -03:30
Mark Stacey
eadeaa7883 End-to-end test state fixtures (#7663)
* Add network store for testing

An alternative persistent state store has been created for use with e2e
tests. Instead of reading state from disk, it tries to load state from
a local fixture server running on port `12345` and serving state from
the path `/state.json`, and returns a blank state otherwise.

* Add e2e test fixture server

A fixture server has been added for serving background state, which the
background will read upon startup as part of restoring persisted state.

The `signature-request` e2e test has been updated to use a fixture to
bypass the registration step. The fixture used (`imported-account`) was
generated by pausing midway through that test run
2019-12-11 09:26:20 -08:00
Whymarrh Whitby
34b674c3d7
Remove unneeded Edge-specific encryption code (#7683) 2019-12-10 16:34:50 -03:30
Whymarrh Whitby
29da5cc7e8
Remove some unused MetaMaskController methods (#7666) 2019-12-09 13:11:44 -03:30
Mark Stacey
63bd422840
Handle one specific permissions request per tab (#7620)
The connect route now takes a route parameter: the permissions request
id. This id is set whenever the permissions connect screen is opened,
ensuring that that tab is for that specific request alone.

This makes handling of multiple permissions requests a bit more
intuitive. Previously whenever opening multiple permissions requests,
the first one would be shown on each successive tab, whereas you
would expect each tab to show the request that prompted the tab to
open. Users may now address permissions request in whichever order
they'd like to, rather than being forced to deal with them
chronologically.
2019-12-05 17:05:50 -04:00
Frankie
446463bbf9 migrations - include 40 so that it runs on update (#7652) 2019-12-05 16:22:25 -04:00
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
Mark Stacey
5c5c90e70a
Ignore permission approval/rejection if request is missing (#7638)
Attempts to approve or reject a permissions request that is no longer
pending will now emit a warning instead of throwing an exception.

I _think_ this can happen by clicking 'Submit' on the Permission
Connect screen twice, though I've been unable to reproduce that. I know
that it can be done if using multiple windows though. While it is
possible we have a UI bug somewhere (e.g. maybe we're not preventing
'Submit' from being clicked twice), I don't think it's possible to
eliminate the chance of this happening altogether, so we'd best prepare
for it.
2019-12-03 23:13:47 -04:00
Whymarrh Whitby
03f53df3f3
Updates to account search functionality (#7637) 2019-12-03 23:25:00 -03:30
Mark Stacey
2d6ad7f6ca
Update permissions request parameter names and docs (#7636)
The parameter names and JSDoc comments for `approvePermissionsRequest`
and `rejectPermissionsRequest` were incorrect in a few places.
2019-12-03 22:52:14 -04: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
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
Xavier Maysonnave
86e7233bd1 Process URL fragment for ens-ipfs redirects (#7604)
Also use app.ens.domains instead of manager.ens.domains
2019-12-02 10:26:02 -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
Dan J Miller
724bd42e2c
Ensures the tx controller + state-manager orders transactions as received (#7484)
* Ensures the tx controller + tx-state-manager orders transactions in the order they are received

* Handle transaction ordering in cases where tx ids are off by more than 1 in tx-state-manager

* Add comment to addUnapprovedTransaction explaining calling _determineTransactionCategory after generateTxMeta

* Sort txes by timestamp of creation instead of id
2019-11-27 09:28:03 -03:30
Thomas Huang
cd9ef4ced4
Merge pull request #7581 from whymarrh/fix-app-state-controller
Construct AppStateController with the persisted initial state
2019-11-26 14:00:21 -08:00
Whymarrh Whitby
c3a1a35f7d Construct AppStateController with the persisted initial state 2019-11-26 17:55:12 -03:30
Whymarrh Whitby
c044400a7e Don't overwrite state when setting inactive timeout
Using `#putState` here was clearing the other fields in the store.
2019-11-26 17:25:01 -03:30
Bruno Barbieri
f7c9903d95
Fix chainId for non standard networks (#7502) 2019-11-22 17:25:44 -05:00
Mark Stacey
f763979bed
Add support for one-click onboarding (#7017)
* Add support for one-click onboarding

MetaMask now allows sites to register as onboarding the user, so that
the user is redirected back to the initiating site after onboarding.
This is accomplished through the use of the `metamask-onboarding`
library and the MetaMask forwarder.

At the end of onboarding, a 'snackbar'-stype component will explain to the
user they are about to be moved back to the originating dapp, and it will
show the origin of that dapp. This is intended to help prevent phishing
attempts, as it highlights that a redirect is taking place to an untrusted
third party.

If the onboarding initiator tab is closed when onboarding is finished,
the user is redirected to the onboarding originator as a fallback.

Closes #6161

* Add onboarding button to contract test dapp

The `contract-test` dapp (run with `yarn dapp`, used in e2e tests) now
uses a `Connect` button instead of connecting automatically. This
button also serves as an onboarding button when a MetaMask installation
is not detected.

* Add new static server for test dapp

The `static-server` library we were using for the `contract-test` dapp
didn't allow referencing files outside the server root. This should
have been possible to work around using symlinks, but there was a bug
that resulted in symlinks crashing the server.

Instead it has been replaced with a simple static file server that
will serve paths starting with `node_modules` from the project root.
This will be useful in testing the onboarding library without vendoring
it.

* Add `@metamask/onboarding` and `@metamask/forwarder`

Both libraries used to test onboarding are now included as dev
dependencies, to help with testing. A few convenience scripts
were added to help with this (`yarn forwarder` and `yarn dapp-forwarder`)
2019-11-22 13:03:51 -04:00
Tyson Malchow
015ba83c6e Update Wyre buy ETH URL (#7482) 2019-11-22 11:43:23 -03:30
Mark Stacey
056e8cdf7e
Merge pull request #7479 from MetaMask/master
Master sync
2019-11-19 21:10:55 -04:00
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
ab0600ef0b Add Remind Me Later to SAI migration notification 2019-11-19 16:40:00 -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
Eduardo Antuña Díez
37b5449c13 Added webRequest.RequestFilter to filter main_frame .eth requests (#7419)
Added webRequest.RequestFilter to filter main_frame .eth requests
2019-11-15 14:23:46 -04:00
Whymarrh Whitby
00e43d0b47
Ensure Etherscan result is valid before reading it (#7426) 2019-11-15 13:47:42 -03:30
Mark Stacey
5bce060985 Update badge colour
The badge colour is now '#037DD6', which stands out a bit more on both
light and dark modes.
2019-11-14 18:19:03 -04:00
Mark Stacey
728115171e
Catch reverse resolve ENS errors (#7377)
The 'reverseResolveAddress' method is intended to return undefined if
unable to reverse resolve the given address. Instead it was throwing an
error, which surfaced in the UI console. This error is now caught.
2019-11-10 21:15:59 -05:00
Mark Stacey
66187333b1
Prevent attempting ENS resolution on unsupported networks (#7378)
The check for whether the network is supported was performed in the
constructor, but it was accidentally omitted from the network change
handler.
2019-11-10 21:15:50 -05:00
Mark Stacey
99b8f2d544
Fix provider approval metadata (#7349)
* Omit MetaMask `extensionId` from site metadata

The site metadata was updated in #7218 to include the extension id of
the extension connecting to MetaMask. This was done to allow external
extensions to connect with MetaMask, so that we could show the id on
the provider approval screen.

Unbeknownst to me at the time, the extension id was being set for all
connections to MetaMask from dapps. The id was set to MetaMask's id,
because the connections are made through MetaMask's contentscript.

This has been updated to only set the id when accepting a connection
from a different extension.

* Fix `siteMetadata` property names

In #7218 a few things were added to the site metadata, so the provider
approval controller was middleware was updated to accept the site
metadata as an object rather than accepting each property as a separate
parameter. Unfortunately we failed to notice that the site name and
icon were named differently in the site metadata than they were in the
provider approval controller, so the names of those properties were
unintentionally changed in the controller state.

The provider approval controller has been updated to restore the
original property names of `siteTitle` and `siteIcon`. An unused prop
that was added to the provider approval page in #7218 has also been
removed.
2019-11-04 17:28:50 -04:00
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
Whymarrh Whitby
6bd87e1f09
Add web3 deprecation warning (#7334)
* Add web3 deprecation warning

* Update web3 deprecation article URL
2019-10-31 21:56:02 -02:30
Filip Š
30606327f0 Add support for ZeroNet (#7038) 2019-10-31 15:37:06 -03:00
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
Erik Marks
5d843db533
Update eth-json-rpc-filters (#7325)
* update eth-json-rpc-filters

* update gaba
2019-10-29 18:38:00 -07: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
Erik Marks
478d6563f2
Freeze Promise global on boot (#7309)
* freeze background and UI Promise globals on boot

* add new tests

* remove tape
2019-10-24 06:54:32 -07:00
Dan Finlay
25076da9cb
Remove unused dependency 2019-10-23 08:59:20 +09:00
Dan Finlay
3eee9a2458
Linted 2019-10-23 08:47:15 +09:00
Dan Finlay
d26a8e7f82 Allow non strigified typed data params 2019-10-22 14:53:25 -07:00
Dan Finlay
4b4bee77c7 Move signTypedData signing out to keyrings
This simplifies the logic of signing and improves security:
- Private keys are never moved to the base controller.
- Hardware wallets are abstracted in the same way as local keys.

This also paves the way for allowing even more modular accounts,
provided by plugins:
https://github.com/MetaMask/metamask-plugin-beta/pull/63

Fixes #7075.
2019-10-22 11:37:04 -07:00
Dan J Miller
55bc9936c6 Turn off full screen vs popup a/b test (#7298) 2019-10-21 20:59:02 -03:00
Whymarrh Whitby
06536b1d0f
Fix phishing detect script (#7287) 2019-10-18 13:35:32 -02:30
Dan J Miller
f1c774d8f3 Handle empty fetch response (#7111) 2019-10-09 11:41:18 -03:00
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
e6e8897434
Custom nonce fixes (#7240)
* Allow default nextNonce to be the custom nonce in cases where highest locally pending is higher than nextNonce

* Reset custom nonce in cases of transaction submission failures

* Make the recommended nonce in the custom nonce field the true 'nextNonce'

* Revert automatic setting of custom nonce to nextNonce

* Make the nextNonce the default placeholder value

* Fix getNextNonce

* Remove unused nonceFieldPlaceholder message

* Fix nits in getPendingNonce and getNextNonce

* Properly handle errors in getNextNonce

* Improve placeholder and value defaults in custom nonce field

* Remove custom error message from getNextNonce
2019-10-02 15:42:04 -02:30
Dan J Miller
daf4fe439c Ensure 3box validation uses the correct address (#7235) 2019-10-01 10:03:13 -03:00
Mark Stacey
8d97bdc5c9
Fix error handling when checking for 3Box backup (#7232)
The 3Box SDK throws an HTTP 404 error when attempting to get the config
for an account that doesn't yet exist in 3Box. The regex we were using
to differentiate this error from others was broken. This ended up
preventing the user from logging in if they had 3Box enabled but hadn't
yet synced.

The regex has been corrected to catch this case, while allowing other
errors to propogate upward. Other 3Box errors will now be caught and
reported rather than interrupting login completely.

At some point in the future, we should expose these errors to the user
in some way, and allow them to retry in case 3Box was just temporarily
offline.
2019-10-01 10:01:57 -03:00
ricky
5f254f7325 Add advanced setting to enable editing nonce on confirmation screens (#7089)
* Add UseNonce toggle

* Get the toggle actually working and dispatching

* Display nonce field on confirmation page

* Remove console.log

* Add placeholder

* Set customNonceValue

* Add nonce key/value to txParams

* remove customNonceValue from component state

* Use translation file and existing CSS class

* Use existing TextField component

* Remove console.log

* Fix lint nits

* Okay this sorta works?

* Move nonce toggle to advanced tab

* Set min to 0

* Wrap value in Number()

* Add customNonceMap

* Update custom nonce translation

* Update styles

* Reset CustomNonce

* Fix lint

* Get tests passing

* Add customNonceValue to defaults

* Fix test

* Fix comments

* Update tests

* Use camel case

* Ensure custom nonce can only be whole number

* Correct font size for custom nonce input

* UX improvements for custom nonce feature

* Fix advanced-tab-component tests for custom nonce changes

* Update title of nonce toggle in settings

* Remove unused locale message

* Cast custom nonce to string in confirm-transaction-base.component

* Handle string conversion and invalid values for custom nonces in handler

* Don't call getNonceLock in tx controller if there is a custom nonce

* Set nonce details for cases where nonce is customized

* Fix incorrectly use value for deciding whether to getnoncelock in approveTransaction

* Default nonceLock to empty object in approveTransaction

* Reapply use on nonceLock in cases where customNonceValue in approveTransaction.

* Show warning message if custom nonce is higher than MetaMask's next nonce

* Fix e2e test failure caused by custom nonce and 3box toggle conflict

* Update nonce warning message to include the suggested nonce

* Handle nextNonce comparison and update logic in lifecycle

* Default nonce field to suggested nonce

* Clear custom nonce on reject or confirm

* Fix bug where nonces are not shown in tx list on self sent transactions

* Ensure custom nonce is reset after tx is created in background

* Convert customNonceValue to number in approve tranasction controller

* Lint fix

* Call getNextNonce after updating custom nonce
2019-09-27 00:30:36 -04: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
kumavis
4d71f3f854 mesh-testing - submit infura rpc requests to mesh-testing container (#7031) 2019-09-23 02:54:41 -07:00
kumavis
f5b2977764
obs-store/local-store should upgrade webextension error to real error (#7207)
* obs-store/local-store should upgrade webextension error to real error

* lint fix

* local-store - allow lastError through unchanged if error-like
2019-09-23 11:45:20 +08:00
Jenny Pollack
e86cebde3b address book entries by chainId (#7205) 2019-09-21 14:36:05 -03:00
Dan Finlay
85cbf8a894
Merge pull request #7173 from rekmarks/fix-errors
Fix RPC error messages
2019-09-19 09:40:11 -07:00
Erik Marks
672ade33a6 add user rejected errors 2019-09-18 19:19:12 -07:00
Erik Marks
58c5fe01bf use eth-json-rpc-errors 2019-09-18 19:17:31 -07:00
Jenny Pollack
03f216e27c add goerli to incoming tx 2019-09-18 10:04:39 -07:00
Mark Stacey
b5da8a237e
Remove the disk store (#7170)
The disk store has not been written to since MetaMask v4.3.0, as it was
removed in #3083. It was kept around so that anything written to disk
prior to v4.3.0 could still be restored.

It has been a year and a half since that release, so I think it's time
to remove the disk store altogether. The consequences of losing locally
stored data are small anyway - it's an inconvenience at worst.
2019-09-16 19:29:26 -03: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
Mark Stacey
95b4d91116
Replace undefined selectedAddress with null (#7161)
* Replace `undefined` selectedAddress with `null`

The `runtime.Port.postMessage` API will drop keys with a value of
`undefined` on Chrome, but not on Firefox. This was a problem for the
`publicConfig` stream, which passed the key `selectedAddress` with the
value of `undefined` to communicate to dapps that the user had logged
out.

Instead a `null` is now passed for `selectedAddress` upon logout, which
is correctly sent by the `runtime.Port.postMessage` API on both Chrome
and Firefox.

closes #7101
closes #7109

* Update `metamask-inpage-provider` to v3.0.0

The v3.0.0 update includes a change to the `accountsChanged` event. The
event will now emit an empty array instead of an array with `undefined`
or `null`.

The previous behavior was to emit `[undefined]`. The previous commit
would have changed that to `[null]` anyway, so we figured if we're
going to make a public-facing change to the event anyway we should
change it to be correct. `[undefined]` was never intended, and it
technically violates EIP-1193, which states that the `accountsChanged`
event should emit an array of strings.
2019-09-13 11:32:55 -03:00
Mark Stacey
50e9c4e5ad
Add polyfill for AbortController (#7157)
The AbortController is used in both the background and the UI. Support
for AbortController was added to Chrome in version 66, which is above
our minimum supported version.

I did consider increasing the minimum Chrome version to 66, but we have
a decent number of users still on Chrome 65 unfortunately.
2019-09-12 17:07:27 -03:00
Mark Stacey
a00493fdbd
Remove redundant error logging (#7158)
The `_fetchAll` function is expected to return values, so catching
errors and logging them only results in an additional error at the
place where `_fetchAll` is called. It's better instead to let the
error get thrown as normal.

In this particular case `_fetchAll` is only called in once place. The
error is still correctly caught and logged (in the `_update` function)
2019-09-12 17:00:35 -03:00
Erik Marks
38f6550951 fix rinkeby spelling (#7148) 2019-09-10 12:51:34 -10:00
Dan J Miller
7af902e500
Make chainId available in the metamask-inpage-provider (#7110)
* Make chainId available in the metamask-inpage-provider

* Update metamask-inpage-provider to 2.1.0

* Add e2e tests for ethereum.on events

* Move chainId constants to lib/enums.js

* Don't use new chainId enums in createInfuraClient

* Fix app/scripts/lib/select-chain-id.js
2019-09-09 22:01:34 -02:30
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
Nick Doiron
d589d2dec0 Right-to-left CSS (using module for conversion) (#7072)
* Create RTL stylesheets using `gulp-rtl`

* Handle RTL stylesheet special cases

Certain blocks of Sass  were set to bypass "rtlcss" using ignore
comments. Certain icons had to be flipped 180 degrees.

* Switch stylesheets when locale changes

A second stylesheet has been added to each HTML page for use with
right-to-left locales. It is disabled by default. It is enabled on
startup if a RTL locale is set, and when switching to a RTL locale.
Similarly the LTR stylesheet is disabled when a RTL locale is used.

Unfortunately there is an unpleasant flash of unstyled content when
switching between a LTR and a RTL locale. There is also a slightly
longer page load time when using a RTL locale (<1s difference). We
couldn't think of an easy way to avoid these problems.

* Set `dir="auto"` as default on `TextFields`
2019-09-03 14:47:54 -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
ecbde20949
Remove ComputedbalancesController (#7057) 2019-08-22 10:26:43 -02:30
Dan Finlay
7badc0ea1a
Merge pull request #7047 from Gudahtt/auto-reload-deprecation-warning
Add warning about reload on network change
2019-08-21 11:44:47 -07:00
Whymarrh Whitby
ef3859ff77
Add toggle for incoming transactions (#7049) 2019-08-21 16:12:14 -02:30
Mark Stacey
2ceac1f27f Add warning about reload on network change
We are soon removing the automatic refresh on network change behavior.
A warning has been added to ensure sites know about this upcoming
change.

Any site that calls `.enable` is advised to use a
`networkChanged` event handler to reload manually if they rely upon
that behavior. They are also advised to set the flag
`autoRefreshOnNetworkChange` to `false` to opt-out of the reload
behavior early.

This warning might be irritating for certain sites, as they might be
indifferent to whether or not the site reloads, and not eager to set a
flag to opt-in early just to silence the warning. However there was no
other obvious way to warning the right people about this change, as
any warning prior to an actual reload would only be seen by the few
people that set their browser console to preserve logs.

Relates to #3599
2019-08-21 14:14:35 -03:00
Brendan Chou
cc71b4f52b Add support for eth_signTypedData_v4 (#6930) 2019-08-20 17:22:59 -02:30
Esteban Miño
6e081eb17c Filter non-ERC-20 assets during mobile sync (#7035) 2019-08-20 16:23:21 -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
Jenny Pollack
f34afee081 Add migration 34 and 35 (#7001) 2019-08-14 10:06:04 -02:30
Dan J Miller
043920c9ff
Address book fixes (#6978)
* Ensure address book send flow correctly matches address book addresses to ens addresses

* Use nodify on background.setAddressBook to receive correct result in actions.js

* Better error handling for actions.js addToAddressBook

* Eliminate unnecessary data normalization and move more data manipluation to ens-input and send-content containers
2019-08-13 20:43:05 -02:30
Whymarrh Whitby
22b20837d4
Remove reload from Share Address button (#6991)
* Update tooltip words for Share Address

* Don't forceReload anything on Share Address
2019-08-09 15:00:59 -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
Dan J Miller
da7fe65599
Ensure seed phrase backup only shows up for new users (#6975) 2019-08-08 09:08:41 -02:30
Dan J Miller
9d5be5d29f
New notification fixes (#6955)
* Replace use of backup-notification with use of home notification

* Pin notifications relative to window

* Remove unneeded isRequired condition on some home.component properties

* Refactor rendering of home notifications

* UX for multiple notifications

* Adds dismissal to provider request notification.

* Fix test failures

The e2e tests have been updated to reference `home-notification`
classnames instead of the removed `background-notification`. The
active tab proptypes and default values were updated as well.
2019-08-02 18:01:26 -02:30
Mark Stacey
75d5374582
Restrict unconnected notice to specific protocols (#6954)
The notice asking whether you wanted to connect to a site was showing
up in places it shouldn't, like on the Firefox/Chrome settings pages
and on our fullscreen extension. It has now been restricted to only
be displayed for active tabs with specific protocols:

* http
* https
* dat
* dweb
* ipfs
* ipns
* ssb

This prevents the notice from being shown on settings pages, browser
extensions, and files such as PDFs.
2019-08-02 16:29:28 -02:30
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
Dan J Miller
3eff478775
I5849 incremental account security (#6874)
* Implements ability to defer seed phrase backup to later

* Adds incremental-security.spec.js, including test dapp that sends signed tx with stand alone localhost provider

* Update metamask-responsive-ui for incremental account security changes

* Update backup-notification style and fix responsiveness of seed phrase screen

* Remove uneeded files from send-eth-with-private-key-test/

* Apply linguist flags in .gitattributes for send-eth-with-private-key-test/ethereumjs-tx.js

* Improve docs in controllers/onboarding.js

* Clean up metamask-extension/test/e2e/send-eth-with-private-key-test/index.html

* Remove unnecessary newlines in a couple first-time-flow/ files

* Fix import of backup-notification in home.component

* Fix git attrs file
2019-08-02 01:27:26 -02:30
Whymarrh Whitby
e9a63d5d5b
Default Privacy Mode to ON, allow force sharing address (#6904) 2019-08-01 10:54:33 -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
Whymarrh Whitby
948b6ca80b
Fix casing of Etherscan (#6927) 2019-07-29 10:06:17 -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
429030a00e
Remove unused unlockAccountMessage callback (#6905)
This callback has been unused for a long time. It was removed in #1076
2019-07-24 23:40:22 -03:00
Whymarrh Whitby
fc3b035aac
Check balance before testing it w/ isZero (#6898) 2019-07-23 17:14:04 -02:30
Alessandro Ricottone
e81aa6073d Resolve onion addresses (#6869)
* Resolve onion address
* npm i content-hash@latest
2019-07-23 16:59:20 -02:30
Mark Stacey
0f8a9a5d49
Serve CSS as an external file (#6894)
The CSS is now served as an external file instead of being injected.
This was done to improve performance. Ideally we would come to a middle
ground between this and the former behaviour by injecting only the CSS
that was required for the initial page load, then lazily loading the
rest. However that change would be more complex. The hope was that
making all CSS external would at least be a slight improvement.

Performance metrics were collected before and after this change to
determine whether this change actually helped. The metrics collected
were the timing events provided by Chrome DevTools:

* DOM Content Loaded (DCL) [1]
* Load (L) [2]
* First Paint (FP) [3]
* First Contentful Paint (FCP) [3]
* First Meaningful Paint (FMP) [3]

Here are the results (units in milliseconds):

Injected CSS:

| Run | DCL | L | FP | FCP | FMP |
| :--- | ---: | ---: | ---: | ---: | ---: |
| 1 | 1569.45 | 1570.97 | 1700.36 | 1700.36 | 1700.36 |
| 2 | 1517.37 | 1518.84 | 1630.98 | 1630.98 | 1630.98 |
| 3 | 1603.71 | 1605.31 | 1712.56 | 1712.56 | 1712.56 |
| 4 | 1522.15 | 1523.72 | 1629.3 | 1629.3 | 1629.3 |
| **Min** | 1517.37 | 1518.84 | 1629.3 | 1629.3 | 1629.3 |
| **Max** | 1603.71 | 1605.31 | 1712.56 | 1712.56 | 1712.56 |
| **Mean** | 1553.17 | 1554.71 | 1668.3 | 1668.3 | 1668.3 |
| **Std. dev.** | 33.41 | 33.43 | 38.16 | 38.16 | 38.16 |

External CSS:

| Run | DCL | L | FP | FCP | FMP |
| :--- | ---: | ---: | ---: | ---: | ---: |
| 1 | 1595.4 | 1598.91 | 284.97 | 1712.86 | 1712.86 |
| 2 | 1537.55 | 1538.99 | 199.38 | 1633.5 | 1633.5 |
| 3 | 1571.28 | 1572.74 | 268.65 | 1677.03 | 1677.03 |
| 4 | 1510.98 | 1512.33 | 206.72 | 1607.03 | 1607.03 |
| **Min** | 1510.98 | 1512.33 | 199.38 | 1607.03 | 1607.03 |
| **Max** | 1595.4 | 1598.91 | 284.97 | 1712.86 | 1712.86 |
| **Mean** | 1553.8025 | 1555.7425 | 239.93 | 1657.605 | 1657.605 |
| **Std. dev.** | 29.5375 | 30.0825 | 36.88 | 37.34 | 37.34 |

Unfortunately, using an external CSS file made no discernible improvement
to the overall page load time. DCM and L were practically identical, and
FCP and FMP were marginally better (well within error margins).

However, the first paint time was _dramatically_ improved. This change
seems worthwhile for the first paint time improvement alone. It also
allows us to delete some code and remove a dependency.

The old `css.js` module included two third-party CSS files as well, so
those have been imported into the main Sass file. This was easier than
bundling them in the gulpfile.

The resulting CSS bundle needs to be served from the root because we're
using a few `@include` rules that make this assumption. We could move
this under `/css/` if desired, but we'd need to update each of these
`@include` rules.

Relates to #6646

[1]: https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded
[2]: https://developer.mozilla.org/en-US/docs/Web/Events/load
[3]: https://developers.google.com/web/fundamentals/performance/user-centric-performance-metrics
2019-07-23 14:10:13 -03:00
Mark Stacey
437132bf25
Replace deprecated Chrome API (#6895)
The function `chrome.extension.getURL` has been deprecated since Chrome
58 [1]. It is completely equivalent to `chrome.runtime.getURL`, which
has been around since Chrome 31.

[1]: https://developer.chrome.com/extensions/extension#method-getURL
2019-07-23 13:54:49 -03:00
Dan Finlay
aea54d1b86
Address resubmit bug (#6886)
* Add some notes

* Add explanatory comment and TODO

* Typo

* Improve verbage

* Remove contextual comment
2019-07-18 20:37:51 -07:00
Dan Finlay
78cdee23c0
Abstract domain provider from its stream transport (#6670)
* Abstract domain provider from its stream transport

Creating new provider-consuming extensions, like [a new
platform](https://github.com/MetaMask/metamask-extension/blob/develop/docs/porting_to_new_environment.md)
can be frustrating for new contributors because our provider
construction has been tangled with our streaming interface.

Here I've broken up our streaming domain connection from the provider
construction, so developers can more easily construct local and
domain-restricted providers without dealing with streams.

* Abstract public API from stream interface

* clean up noop

* Document non-streaming interface

* getSiteMetadata must be async

* Clean up filters on stream end

* Document cleaning up filters

* Allow named filterMiddleware to be cleaned up

* Linted

* Require site metadata

* Destroy any destroyable middleware during cleanup

* Lint
2019-07-15 16:28:04 -07:00
Mark Stacey
32fffe53f5
Remove Drizzle tests (#6855)
The Drizzle tests have not been used for some time. They were used to
ensure compatibility with newer versions of `web3` v1. If we want to
re-add tests to ensure compatibility with newer `web3` versions, we
should find some way of doing that more reliably than was done here -
these tests were somewhat flaky and unreliable.
2019-07-15 17:10:46 -03:00
Thomas Huang
96a12a627e
Merge pull request #6832 from MetaMask/master-rebased
Master rebased
2019-07-12 10:58:19 -07:00
Whymarrh Whitby
f0218bdbbb
Rename accountManager usages (#6790)
Co-Authored-By: Mark Stacey <markjstacey@gmail.com>
2019-07-10 16:31:48 -02:30
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
Dan J Miller
05e2120814 Version 6.7.2 gas limit fix (#6786)
* Introduce delay for eth_estimateGas calls with in test

* Add test that fails when gas estimates of contract method calls without gas are too high.

* Get transaction gas data from unApprovedTxs instead of confirmTransaction

* Fix selection of gas data in gas-modal-page-container.container

* Lint changes related to Version-6.7.2-gasLimitFix

* Fix e2e tests on Version-6.7.2-gasLimitFix

* Fix unit and integration tests for changes from Version-6.7.2-gasLimitFix

* more e2e fixes

* Add assertions for transaction values on confirm screen

* Fix display of transaction amount on confirm screen.
2019-07-04 14:14:03 -02:30
Whymarrh Whitby
df17853502
Remove UiMigrationAnnouncement and associated state (#6794) 2019-07-04 12:21:21 -02:30
Mark Stacey
865321d269
Update asmcrypto.js to latest version (#6767)
This silences a warning message that was printed to the console whenever
this module was loaded during tests.

The API changes between these two versions were reviewed carefully for
differences. The only difference made was to `PBKDF2_HMAC_SHA256.bytes`,
which was replaced by `Pbkdf2HmacSha256`.

The length argument no longer has a default value, so it has been set
to match what the default value was in the previous version we used,
which is 32 (the SHA256 hash size).
2019-07-02 22:16:20 -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
frankiebee
5cf5359e78 transactions - always hexprefix txParams on update; fixes #6724 2019-06-19 14:36:24 +02:00
Paul Bouchon
47024fd9a5
feature: integrate gaba/CurrencyRateController (#6570) 2019-05-31 18:14:22 -04:00
bitpshr
e8f6dff0be bugfix: reject enable promise on user rejection 2019-05-31 16:07:58 -04:00
pldespaigne
9a658ee53d merge 2019-05-30 18:22:55 +02:00
Frankie
2b5c7b82a9
transactions/deps - use broken out nonce-tracker module (#6555) 2019-05-21 17:17:09 +02:00
bitpshr
8c0bc7b3e2 bugfix: show extension window if locked regardless of approval 2019-05-16 10:53:37 -04: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
Bruno Barbieri
1d2cf52b64 Fixes bugs in 6.5.1 (#6613)
* fix bg error

* fix ui exception
2019-05-15 10:53:09 +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
Whymarrh Whitby
28c4001f52 Update auto-logout to recognize idle time in background (#6593)
* Fix wording of autoLogoutTimeLimitDescription

* AppStateController and update auto-logout functionality
2019-05-13 13:46:09 -02:30
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
Dan J Miller
ef8a07c2ce
Adds a transactionCategory to txMeta for use in UI (#6567)
* Adds a transactionCategory to txMeta for use in UI

* Update transaction controller and tx-gas-util documentation on new code param in multiple functions.
2019-05-08 16:48:33 -02:30
pldespaigne
2d58cfc7a0 refactor & change html pages 2019-05-04 18:57:19 +02:00
pldespaigne
987e58d103 add rinkeby & goerli 2019-05-04 18:56:45 +02:00
kumavis
2845398c3d Refactor ProviderApprovalController to use rpc and publicConfigStore (#6410)
* Ensure home screen does not render if there are unapproved txs (#6501)

* Ensure that the confirm screen renders before the home screen if there are unapproved txs.

* Only render confirm screen before home screen on mount.

* inpage - revert _metamask api to isEnabled isApproved isUnlocked
2019-05-03 13:32:05 -04:00
Thomas Huang
c7492f4f54 Include token checksum address in prices lookup for token rates (#6526) 2019-04-30 14:19:58 -02:30
Dan J Miller
4fea9d0cc2
Send metrics event from backend for on chain transaction failures (#6500)
* Send metrics event from backend for on chain transaction failures

* Passes state object to backEndMetaMetricsEvent, and adds getMetaMetricState selector
2019-04-29 03:48:40 -02:30
Sneh Koul
6a60562d66 Opens the original webpage from where installation of MetaMask was re… (#6272)
* Opens the original webpage from where installation of MetaMask was requested

* Asking for dynamic permissions

* code for forwarder/without extra permissions

* Lint fix for onboardingComplete message sending code.
2019-04-24 10:49:38 -07:00
Paul Bouchon
0db0a187c8 feature: add Goerli support (#6459) 2019-04-17 15:04:49 -02:30
Thomas Huang
00133d31b1
Merge pull request #6444 from MetaMask/localhost-network-dropdown
Fixes #6321 & #6421 - Add Localhost 8545 for network dropdown names
2019-04-16 14:39:00 -05:00
Thomas Huang
33836c0463 Set rpcTarget, nickname, and ticker when selecting one of the default networks 2019-04-16 11:15:53 -06:00
Paul Bouchon
a973a7420a
feature: switch token pricing to CoinGecko API (#6424) 2019-04-10 18:37:15 -04:00
Whymarrh Whitby
24761326de
Don't inject web3 on sharefile.com 2019-04-09 14:14:04 -02:30
kumavis
d610dfa870
Merge pull request #6401 from MetaMask/provider-error-fix
metamask-controller - use improved provider-as-middleware utility
2019-04-05 11:13:51 +08:00
Jenny Pollack
98a2fb43fb
Merge pull request #6406 from MetaMask/remove-user-actions-controller
remove user actions controller
2019-04-04 17:30:39 -07:00
pldespaigne
dc4c40414e issue#5742 2019-04-04 17:15:57 +02:00
kumavis
89693a2315 metamask-controller - use improved provider-as-middleware utility 2019-04-04 22:11:28 +08:00
pldespaigne
b26a59dbbe renaming registrar into registry 2019-04-04 14:07:24 +02:00
Thomas Huang
a46ec83c9b Remove NoticeController (#6382) 2019-04-01 22:33:54 -02:30
Whymarrh Whitby
125a95ba71
Merge pull request #6364 from MetaMask/prevent-infura-requests-e2e-tests
Prevent infura requests in e2e tests
2019-03-29 11:27:05 -02:30
kumavis
c3a605f27a
Merge pull request #6328 from MetaMask/clearNotices
Clear notices
2019-03-29 14:23:02 +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
kumavis
e4b5556c05 buy-eth-url - lint fix 2019-03-29 10:53:46 +08:00
kumavis
2c3fc18573 buy-eth-url - fix variable name 2019-03-29 10:37:16 +08:00
kumavis
38b85adbe0 Merge branch 'develop' of https://github.com/vimalsagar/metamask-extension into vimalsagar-develop 2019-03-29 10:20:19 +08:00
kumavis
0ae68d1a61
getBuyEthUrl - getDefaultServiceForNetwork then switch on service 2019-03-29 10:03:35 +08:00
Dan Miller
10097b6a11 Default to localhost network when running e2e tests 2019-03-28 16:20:11 -02:30
Thomas Huang
2a0b98492a enable privacy mode for first time users (#6347) 2019-03-26 12:37:53 -02:30
Jenny Pollack
e09e54bebb remove user actions controller 2019-03-25 23:27:36 -10: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
Josh Stevens
2aaec1d9fb Stop reloading dapps on network change allowing dapps to decide if it should refresh or not (#6330)
* feat: `inpageProvider.autoRefreshOnNetworkChange` to allow dapps to control if it refreshes or not

* feat: check the `autoRefreshOnNetworkChange` before a refresh

* fix linting error

* fix: use `window.ethereum` now `web3.ethereum`
2019-03-21 12:42:23 -07:00
Thomas Huang
c43374a553 Clear notices when setCompletedOnboarding is called 2019-03-20 20:26:48 -05:00
William Monti Souza
98699fbbc0 Fixes popups not showing when screen size is odd (#6312) 2019-03-17 18:30:51 -02:30
Whymarrh Whitby
ea34d3b0ff Centre the notification in the current window (#6307) 2019-03-14 12:52:57 -05:00
Whymarrh Whitby
5bf8a36a87 Centre all notification popups 2019-03-12 11:37:14 -02:30
kumavis
48047f8194 mascara - remove from project (#6283) 2019-03-12 11:17:21 -02:30
Paul Bouchon
daae155ce2 GABA: Integrate AddressBookController (#5847)
* gaba: integrate AddressBookController

* pin gaba version and update lockfile
2019-03-11 18:40:41 -10:00
Thomas Huang
43f5fd0716 Nonmultiple notifications for batch txs 2019-03-11 12:37:47 -05:00
Dan J Miller
c757366355
Metametrics (#6171)
* Add metametrics provider and util.

* Add backend api and state for participating in metametrics.

* Add frontend action for participating in metametrics.

* Add metametrics opt-in screen.

* Add metametrics events to first time flow.

* Add metametrics events for route changes

* Add metametrics events for send and confirm screens

* Add metametrics events to dropdowns, transactions, log in and out, settings, sig requests and main screen

* Ensures each log in is measured as a new visit by metametrics.

* Ensure metametrics is called with an empty string for dimensions params if specified

* Adds opt in metametrics modal after unlock for existing users

* Adds settings page toggle for opting in and out of MetaMetrics

* Switch metametrics dimensions to page level scope

* Lint, test and translation fixes for metametrics.

* Update design for metametrics opt-in screen

* Complete responsive styling of metametrics-opt-in modal

* Use new chart image on metrics opt in screens

* Incorporate the metametrics opt-in screen into the new onboarding flow

* Update e2e tests to accomodate metametrics changes

* Mock out metametrics network requests in integration tests

* Fix tx-list integration test to support metametrics provider.

* Send number of tokens and accounts data with every metametrics event.

* Update metametrics event descriptor schema and add new events.

* Fix import tos bug and send gas button bug due to metametrics changes.

* Various small fixes on the metametrics branch.

* Add origin custom variable type to metametrics.util

* Fix names of onboarding complete actions (metametrics).

* Fix names of Metrics Options actions (metametrics).

* Clean up code related to metametrics.

* Fix bad merge conflict resolution and improve promise handling in sendMetaMetrics event and confrim tx base

* Don't send a second metrics event if user has gone back during first time flow.

* Collect metametrics on going back from onboarding create/import.

* Add missing custom variable constants for metametrics

* Fix metametrics provider

* Make height of opt-in modal responsive.

* Adjust text content for opt-in modal.

* Update metametrics event names and clean up code in opt-in-modal

* Put phishing warning step next to last in onboarding flow

* Link terms of service on create and import screens of first time flow

* Add subtext to options on the onboarding select action screen.

* Fix styling of bullet points on end of onboarding screen.

* Combine phishing warning and congratulations screens.

* Fix placement of users if unlocking after an incomplete onboarding import flow.

* Fix capitalization in opt-in screen

* Fix last onboarding screen translations

* Add link to 'Learn More' on the last screen of onboarding

* Code clean up: metametrics branch

* Update e2e tests for phishing warning step removal

* e2e tests passing on metametrics branch

* Different tracking urls for metametrics on development and prod
2019-03-05 12:15:01 -03:30
Thomas Huang
8e99a537ca Simplify 2019-03-04 17:47:48 -06:00
Thomas Huang
5a8221253e Improvement 2019-02-28 13:58:37 -06:00
Thomas Huang
973042bafa Show popup if notification or activeMMtab is true but not if popup is open 2019-02-28 13:24:48 -06:00
Vimal
ab5fe4d659 PR 5575 review comment fixes 2019-02-28 19:50:48 +05:30
Dan Finlay
f507f2a927 Feature Flag + Mobile Sync (#5955) 2019-02-25 15:40:13 -03:30
Jenny Pollack
c6e84ccf45 account tracker - update accounts from balanceChecker contract (#6181)
* account tracker - update accounts from balanceChecker contract

* fall back to getBalance if the contract query fails
2019-02-20 09:12:12 -10:00
Paul Bouchon
2f7d449427 EIP-1193: standard provider API (#6170)
* EIP-1193: Implement new provider API

* EIP-1193: Updated implementation

* Remove test file

* Fix tests

* Update ping check

* Update logic

* PR feedback
2019-02-19 16:42:08 -08:00
Chi Kei Chan
d9039f5292 Bring Popup to front when ui is tiggered 2019-02-18 20:34:29 -08:00
Graham Kaemmer
89c4353408 Fix inpage.js event handler memory leak (#6177)
Fixes #6176
2019-02-18 16:07:58 -05:00
Whymarrh Whitby
ce543f059e
Merge pull request #6137 from whymarrh/es6-background
Sprinkle ES6 onto background files
2019-02-14 10:43:56 -03:30
frankiebee
c10fb3ce3f fix typo 2019-02-12 09:05:06 -10:00
Whymarrh Whitby
92cc60f425 Update popup-core script to use ES6 destructuring, const, let 2019-02-12 10:36:15 -03:30
Whymarrh Whitby
ade96fda41 Update platforms/extension to use ES6 destructuring requires 2019-02-12 10:36:15 -03:30
Whymarrh Whitby
5d3aea7857 Update phishing-detect script to use ES6 destructuring requires 2019-02-12 10:36:15 -03:30
Whymarrh Whitby
d735439de9 Update NoticesController to use ES6 destructuring, const, let 2019-02-12 10:36:15 -03:30
Whymarrh Whitby
ae084cef6c Update MetaMaskController to use ES6 destructuring, const, let 2019-02-12 10:36:15 -03:30
Whymarrh Whitby
f5eb1512d4 Fix all "var used instead of let or const" problems in inpage.js 2019-02-12 10:36:15 -03:30
Whymarrh Whitby
3c915b0d7f Update contentscript to use ES6 destructuring, const, let 2019-02-12 10:36:15 -03:30
Whymarrh Whitby
969cf73fae Fix all "var used instead of let or const" problems in background.js 2019-02-12 10:36:15 -03:30
frankiebee
7e64a578a4 recent-blocks - dont listen for block when on infura providers 2019-02-11 09:16:03 -10:00
S.C. Chen
1a4203a8c6 Fix locale codes contains underscore will never be preferred (#6116) 2019-02-08 16:06:37 -03:30
Whymarrh Whitby
59a5f550e4 Update design of phishing warning screen 2019-02-05 13:18:24 -03:30
Whymarrh Whitby
f3a7054f6b Add announcement for users migrated to the new UI 2019-02-05 08:49:55 -03:30
Whymarrh Whitby
c52ba96b85 Remove betaUI preference state, replace with completedUiMigration 2019-02-05 08:49:55 -03:30
Whymarrh Whitby
a7a6318c13 Default to the new UI for all users 2019-02-05 08:49:55 -03:30
Bruno Barbieri
cc03a7db6a
Privacy mode fixes (#6087)
* Version 5.3.4 RC1

* fix old ui approval screen

* fix error caused by meshtesting iframe

* fix linter errors
2019-02-01 14:05:46 -05:00
Frankie
4e27b644ab fix - migration 30 undefinds (#6079) 2019-01-31 10:09:28 -08:00
Paul Bouchon
db776b5a02 EIP-1102 updates (#6006)
* Update privacy notice

* Respond to 1102 messages using tab ID
2019-01-30 10:27:33 -08:00
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
Jenny Pollack
456bfaf9ed add source for header in create infura client (#6023)
* add source for header in create infura client

* bump eth-json-rpc-infura
2019-01-24 14:56:55 -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
Bruno Barbieri
2cfea0b788 fix asset detection (#6049) 2019-01-22 10:23:11 -08:00
Esteban Miño
e21dfd1862 Use Parity on-chain registry only when is needed (#6052)
* add and use knownMethodData to avoid infura requests

* dataMethod to methodData and check empty response
2019-01-22 10:22:56 -08:00
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
Thomas Huang
3bd3e640b4 Set auto conversion off for token/eth conversion (#6005) 2019-01-10 10:36:30 -08:00
brunobar79
c49d975687 fix extension link 2019-01-02 19:03:35 -05:00
Bruno Barbieri
701bc1cbd1
Fix etherscan links on notifications 2018-12-28 17:34:26 -05: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
Alexander Tseung
dde239797b
Show Failed transaction in the browser notification for on-chain failures (#5904) 2018-12-10 18:02:26 -08:00
Alexander Tseung
d8ab9cc002
Group transactions by nonce (#5886) 2018-12-09 12:48:06 -08:00
Dan Miller
246dcf689c Fix race condition in network controller lookup() method. 2018-12-06 16:13:24 -03:30
Dan Miller
9b9a2cc2e0 Adds createSpeedUpTransaction to txController 2018-12-04 00:06:05 -03:30
Michael - Blurpesec
7f6928782a Hide link for phishing-detect page (#5864)
* Soften language on phishing-detect page

* remove quotes
2018-12-01 20:15:59 -08:00
Bruno Barbieri
be255210a9
fix visibility 2018-11-30 20:54:57 -05:00
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
Paul Bouchon
45a9f40aa6
bugfix: normalize contract addresss when fetching exchange rates (#5863) 2018-11-30 11:52:00 -05:00
Dan Finlay
c7233e2cc7
Fixed Vivek's bug (#5860)
* Fixed Vivek's bug

Fixes #5850

What was happening:

It seems that his MetaMask had crashed while some new transactions had
been loading defaults. He probably had a network connectivity issue to
Infura (which we are working with Infura to address).

As a result of this network cutout, his three unapproved transactions
were not marked failed, and were not marked as `loadingDefaults =
false`, as their gas prices had not yet been estimated.

Normally this behavior is supposed to clean itself up when the
transaction controller starts up, via the
`TransactionController._onBootCleanUp()` function, but in this case,
during unlock, that function was unable to do its job because when it
requested the transaction list, the current network was in the `loading`
state, making it proceed as if there were no pending transactions.

To fix this, I am doing two things:
- Setting transactions to loadingDefaults = false in more catch blocks.
- Calling `onBootCleanUp()` when the network store's status changes, so
that it will re-trigger when loading completes.

* Fixed reference

* Fixed infinite loop bug

Was refreshing the tx list on every tx state change instead of just
network changes, creating an infinite loop.

* Add notes to tx updates to clarify logs
2018-11-29 16:08:03 -08:00
Frankie
a803522a92 transactions/tx-gas-utils - add the acctual response for eth_getCode for NO_CONTRACT_ERROR's && add a debug object to simulationFailed (#5840) 2018-11-29 10:07:05 -08:00
Whymarrh Whitby
67d9f445bd
Merge pull request #5848 from MetaMask/Less-Certain-Language
Soften accusatory language on phishing warning
2018-11-28 15:44:36 -03:30
Dan Finlay
ac1b756bd0 Soften accusatory language on phishing warning
We don't always know for sure that sites marked as phishers are
defiitely scams, and so we should avoid language that makes concrete
accusations.
2018-11-28 08:35:03 -08:00
Whymarrh Whitby
a9d3c1a87d Open full-screen UI on install 2018-11-27 09:52:51 -03:30
Whymarrh Whitby
3e85d580f9 Revert "Don't open MetaMask website after install" 2018-11-27 08:50:54 -03:30
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
Frankie
97c1e6bcc1
transactions - ensure err is defined when setting tx failed (#5801) 2018-11-26 09:00:58 -10:00
Bruno Barbieri
3b1e73eff8
Merge pull request #5792 from MetaMask/signed-type-data-error-hw-wallet
Consider HW Wallets for signTypedMessage
2018-11-26 13:40:04 -05:00
Bruno Barbieri
f2066432ba
Use Array.includes 2018-11-26 13:27:49 -05:00
Whymarrh Whitby
08c98a6df7 Show Connect Requests count in extension badge 2018-11-26 12:09:22 -03:30
Whymarrh Whitby
826eb82ed8 Use initState to avoid type-checking providerRequests in state 2018-11-26 12:06:17 -03:30
Bruno Barbieri
ae8626eceb
Merge pull request #5797 from MetaMask/trezor-v6
Add Firefox and Brave support for Trezor
2018-11-21 14:45:55 -05:00
brunobar79
9b1df386de fix merge conflicts 2018-11-20 17:44:28 -05:00
brunobar79
fb94c1bae7 remove extra semicolon 2018-11-20 12:57:58 -05:00
brunobar79
3abf9ec7db consider hw wallets 2018-11-20 12:48:43 -05:00
Whymarrh Whitby
444c68ae53 Don't announce new UI to users switching back 2018-11-20 14:04:50 -03:30
Whymarrh Whitby
c482c9926c Default to the new UI for first time users 2018-11-20 14:04:17 -03:30
Paul Bouchon
7fe37276a1
1102: Push publicConfigStore to next turn to avoid race conditiono (#5777) 2018-11-18 07:23:04 -05: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
brunobar79
e44b750f0f Merge branch 'develop' of github.com:MetaMask/metamask-extension into trezor-v5 2018-11-15 00:29:06 -05: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
brunobar79
18f39ef69e Merge branch 'develop' of github.com:MetaMask/metamask-extension into trezor-v5 2018-11-14 15:42:45 -05:00
Paul Bouchon
f6e042b7b1 1102: use meta title if it exists before title 2018-11-14 10:43:10 -08:00
brunobar79
484aa6801e Merge branch 'develop' into trezor-v5 2018-11-13 17:21:15 -05: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
PaddyMc
7ce2cf4572 Fixes #3425: Better support for batch transactions (#5437) 2018-11-13 13:49:12 -03:30
Vimal
6bb92a8672 merging upstream branch 2018-11-12 17:50:37 +05:30
Paul Bouchon
c317624854 EIP-1102: Update publicConfig store concurrently with approval 2018-11-09 18:21:59 -08:00
Noah I
8bed073f20 1102: Fix inpage listener syntax (#5708) (#5709) 2018-11-09 07:14:32 -05:00
bitpshr
718393f89a Cleanup 2018-11-07 08:47:25 -08:00
bitpshr
a224b71837 1102: use postMessage instead of injected scripts to bypass CSP 2018-11-07 08:47:25 -08:00
bitpshr
1ce3591c8e wip 2018-11-07 08:47:25 -08:00
brunobar79
c651212025 fix merge conflicts 2018-11-06 20:21:19 -05:00
bitpshr
896ae0ab89 Fix lint errors 2018-11-06 14:30:50 -05:00
bitpshr
d7b1cacabc Remove injected script tags after use 2018-11-06 14:26:02 -05:00
bitpshr
34d80f21e2 Clear cached approval after rejection 2018-11-06 14:13:27 -05:00
bitpshr
b3f428fd1f Move experimental provider augmentation 2018-11-05 15:07:09 -08:00
bitpshr
879997af51 Add experimental RPC method support 2018-11-05 15:07:09 -08:00
Whymarrh Whitby
26ada8a828 Update Connect Request screen design (#5644)
* Parameterize NetworkDisplay background colour

* Update design for login request screen

* Pass siteTitle, siteImage through for calls to ethereum.enable()

* Bring the site images closer together
2018-11-05 15:07:09 -08:00
bitpshr
31cb111d2e Do not modify isApproved when locked 2018-11-05 15:07:09 -08:00
bitpshr
9984f7edeb Mark origins as unapproved if user explicitly locks MetaMask 2018-11-05 15:07:09 -08:00
Paul Bouchon
f557d33718 Enable caching 2018-11-05 15:07:09 -08:00
bitpshr
991e08e346 isApproved should return false 2018-11-05 15:07:09 -08:00
bitpshr
72730b3929 Remove internal listeners 2018-11-05 15:07:09 -08:00
bitpshr
cc27a09a1a rebase 2018-11-05 15:07:09 -08:00
bitpshr
d4171ccea5 Disable approval caching 2018-11-05 15:07:09 -08:00
bitpshr
cc1bab6ebb Differentiate locked and enabled 2018-11-05 15:07:09 -08:00
bitpshr
d7618bd5c6 Code bath 2018-11-05 15:07:09 -08:00
bitpshr
ba40fcbcb4 Handle logout gracefully 2018-11-05 15:07:09 -08:00
bitpshr
f02e18dd80 Fix lint issues 2018-11-05 15:07:09 -08:00
bitpshr
ace7cfa065 Only filter selectedAddress from publicConfig store 2018-11-05 15:07:09 -08:00
bitpshr
f35466a247 Fix race condition with publicConfigStore 2018-11-05 15:07:09 -08:00
bitpshr
32630b68df Move convenience methods to _metamask namespace 2018-11-05 15:07:09 -08:00
bitpshr
504f4a50f1 Fix lint issues 2018-11-05 15:07:09 -08:00
bitpshr
84874a639d Add isUnlocked provider hook 2018-11-05 15:07:09 -08:00
bitpshr
573139b935 Differentiate isEnabled and isApproved hook 2018-11-05 15:07:09 -08:00
bitpshr
3a2ade4e84 Update isEnabled check 2018-11-05 15:07:09 -08:00
bitpshr
226601a956 EIP-1102: add user privacy option 2018-11-05 15:07:09 -08:00
bitpshr
bfcb73ad53 EIP-1102: add isEnabled convenience method to provider 2018-11-05 15:07:09 -08:00
bitpshr
89b4aa5d62 EIP-1102: Add option to force-enable provider 2018-11-05 15:07:09 -08:00
bitpshr
c76c9ca2c8 EIP-1102: updated implementation 2018-11-05 15:07:09 -08:00
kumavis
86f09e6bb5 network - infura - hardcode net_version and eth_chainId (#5670)
* network - infura - hardcode net_version and eth_chainId
* network - infura - add rinkeby handling
* lint fix
2018-11-05 14:13:37 -05: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
kumavis
14852669ac
Merge pull request #5659 from MetaMask/token-rates-bugfix
token-rates - protect against bad token data
2018-11-03 21:57:21 -04:00
Thomas Huang
ed4f612bdc Revert "support eth_chainId" 2018-11-03 14:21:41 -07:00
kumavis
2c1bca1ab0 token-rates - protect against bad token data 2018-11-02 22:14:40 -04:00
kumavis
73eeeda215
Merge pull request #5560 from MetaMask/sentry-enhancements2
Sentry - various enhancements to help debugging (alternate)
2018-10-29 21:57:51 -04:00
kumavis
310229d22e
Merge pull request #5567 from MetaMask/HowardBraham-develop
Feature: Warn when attempting to send tx with data to non-contract
2018-10-29 21:47:07 -04:00
kumavis
7ae5a23b6c Merge branch 'sentry-enhancements2' of github.com:MetaMask/metamask-extension into sentry-enhancements2 2018-10-29 20:28:02 -04:00
kumavis
ccbc233282 Merge branch 'develop' of github.com:MetaMask/metamask-extension into sentry-enhancements2 2018-10-29 20:25:05 -04:00
kumavis
1bb4a8428c
Merge pull request #5596 from MetaMask/validateSignTypedData
Validate signTypedData signer/address in eth-json-rpc-middleware
2018-10-29 20:11:04 -04:00
kumavis
ad009a4606
Merge branch 'develop' into sentry-enhancements2 2018-10-29 19:49:53 -04:00
kumavis
18e530221b
Merge pull request #5552 from EthersocialNetwork/eth_chainid
network - check eth_chainId and fallback to net_version
2018-10-29 19:43:25 -04:00
kumavis
986f8b4c21
preferences - fix typo 2018-10-29 18:56:29 -04:00
hackyminer
bc7f8d0a5b
Merge branch 'develop' into eth_chainid 2018-10-26 20:37:35 +09:00
HackyMiner
54a8ade266 Add support for RPC endpoints with custom chain IDs (#5134) 2018-10-26 10:26:43 +02:00
kumavis
9b42416fc0 Merge branch 'develop' of github.com:MetaMask/metamask-extension into HowardBraham-develop 2018-10-25 22:24:30 -04:00
Thomas
8c0e5e97e5 Add version to unapprovedMessage 2018-10-24 20:24:42 -07:00
Thomas
95b92a1ddc Remove commented out/unused methods 2018-10-24 20:13:40 -07:00
Thomas
1d65687ce4 Validate signTypedData in eth-json-rpc-middleware 2018-10-24 20:03:55 -07:00
Vimal
82b11b69a5 Adding CoinSwitch exchange 2018-10-22 16:44:21 +05:30
kumavis
6d09f60bbf
ens-ipfs - refactor for readability (#5568)
* ens-ipfs - refactor for readability

* ens-ipfs - use official ipfs gateway for better performance

* lint - remove unused code

* ens-ipfs - support path and search

* lint - gotta love that linter

* ens-ipfs - improve loading page formatting

* ens-ipfs - loading - redirect to 404 after 1 min timeout

* ens-ipfs - destructure for cleaner code
2018-10-21 05:48:15 -04:00
kumavis
b62d07f3a5
Update network.js 2018-10-21 04:32:07 -04:00
brunobar79
9c1b2108f6 fix merge conflicts 2018-10-21 01:59:53 -04: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
kumavis
61c7bbb1c1
network - improve logging and type conversion 2018-10-21 01:20:08 -04:00
kumavis
31e5cad1e3 tx-gas-util - set error message when invalidating tx based on tx data but no contract code 2018-10-21 01:01:21 -04:00
kumavis
f0602ca354 Merge branch 'develop' of github.com:MetaMask/metamask-extension into sentry-enhancements2 2018-10-20 23:51:00 -04:00
kumavis
3b46478024
Merge branch 'develop' into develop 2018-10-20 23:48:10 -04:00
kumavis
73ec4e66cb sentry - include app state in ui errors 2018-10-20 03:14:59 -04:00
kumavis
e3fda83ab2 sentry - replace raven-js with sentry/browser 2018-10-20 02:22:50 -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
hackyminer
2f6530a494
support both eth_chainId and net_version
get the real chainId using eth_chainId and use net_version as a fallback
2018-10-20 01:08:46 +09:00
kumavis
31175dcb24 blacklist + currency - report error via log instead of throw 2018-10-19 07:18:16 -04:00
kumavis
a57d267dcb lint fix 2018-10-19 07:08:04 -04:00
kumavis
b85ae55cd5 fetch debugger - only append source stack if no stack is present 2018-10-19 06:42:53 -04:00
kumavis
3e3d4b9dde sentry - failed txs - namespace txMeta for better readability 2018-10-19 05:30:21 -04:00
kumavis
2394881511 currency - throw errors on failure 2018-10-19 04:58:19 -04:00
kumavis
65aa0a1d14 blacklist - throw errors on request/parse failure 2018-10-19 04:51:03 -04:00
kumavis
26b30a031d sentry - move isBrave decoration to insides of try-catch 2018-10-19 04:36:36 -04:00
kumavis
fa36dbf981 inpage - increase provider max listeners to avoid warnings 2018-10-17 19:17:39 -04:00
kumavis
c289baa17a
Merge pull request #5127 from MetaMask/account-tracker-network-change
Bug Fix: Force AccountTracker to update balances on network change
2018-10-17 18:56:54 -04:00
Whymarrh Whitby
0d0bb4afd7
Merge pull request #5522 from MetaMask/fetch-debugging
debugging - enable fetch debugging
2018-10-17 17:38:55 -02:30
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
brunobar79
13820b6cc1 fix conflicts 2018-10-16 14:01:54 -04:00
Whymarrh Whitby
d44b7ef3da Fix document extension check when injecting web3 2018-10-16 11:08:48 -02:30
Alexander Tseung
c821a8354c
Add txReceipt data to transaction details (#5513) 2018-10-16 06:00:47 +08:00
kumavis
70c45ae8be enable fetch debugging 2018-10-15 01:14:25 -04:00
Whymarrh Whitby
af43b7d6c9 Ensure that new transactions added are using the selected address 2018-10-10 16:16:20 -02:30
Whymarrh Whitby
428a7cacdf Revert "transactions - add txReceipt to the txMeta body for confirmed txs (#5375)"
This reverts commit ff67293a8e.
2018-10-10 15:30:12 -02:30
Frankie
ff67293a8e transactions - add txReceipt to the txMeta body for confirmed txs (#5375) 2018-10-10 10:26:38 -04:00
Bruno Barbieri
ccab4ee1a4 tests - integration - Add Drizzle tests (#5467)
* added drizzle app for testing

* working

* clean up

* clean up script

* make build step required

* add drizzle-tests to .eslintignore

* clean up drizzle run script

* lint

* use truffle unbox

* undo eslintignore changes

* revert change

* dont use global

* dont need this steps

* use the new account flow

* restore package-lock.json
2018-10-10 01:12:43 -04:00
kumavis
600f755dbf
tx-gas-utils - improve format + comments 2018-10-09 23:17:05 -04:00
Howard Braham
4cc0b1ef01 ganache-core merged my PR, so I changed some comments to clarify that ganache-core v2.2.1 and below will return the non-standard '0x0' 2018-10-09 15:31:25 -07:00
Howard Braham
222e62d7f1 Bug Fix: #1789 and #4525 eth.getCode() with no contract 2018-10-09 15:31:25 -07:00
Bruno Barbieri
17b9f4c0db
Merge pull request #5458 from MetaMask/provider-subs
Feature: Subscription support
2018-10-09 13:25:13 -04:00
Noel Yoo
ebdefe81a1 Refactor buffer constructor (#5468) 2018-10-09 09:32:48 -02:30
kumavis
45feb43f30 workaround - fix for drizzle 2018-10-08 16:54:13 -04:00
Eduardo Antuña Díez
8279916ee4 Added webRequest.RequestFilter to filter main_frame .eth requests 2018-10-08 21:50:15 +02:00
kumavis
fe82c4a9fb provider - network - restore block-ref-rewrite middleware references 2018-10-08 12:39:18 -04:00
kumavis
354f8c0d7d provider - enable subscription support (newHeads, logs) 2018-10-08 11:55:07 -04:00
Dan Finlay
a909af92aa
Merge branch 'develop' into update-balance-on-unlock 2018-10-05 10:46:48 -07:00
Dan Finlay
507397f6c3 Fix updating of pending transactions
Transaction statuses were not being properly updated when:

- MetaMask was unlocked
- The network was changed

This PR fixes both of those. Fixes #5174
2018-10-05 10:35:14 -07:00
Dan Finlay
bc6d32e51e Update all balances on password unlock 2018-10-05 10:32:28 -07:00
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
b2939e8627
Merge pull request #5412 from whymarrh/after-install-steps
Don't open MetaMask website after install
2018-10-04 08:28:17 -02:30
Whymarrh Whitby
ba39fbeb49 Don't open metamask.io after install anymore 2018-10-02 11:42:09 -02:30
Whymarrh Whitby
c92fee7771 Hook MetaMaskController up with phishing detection page 2018-10-02 10:45:39 -02:30
Whymarrh Whitby
58d856bd84 Add domain whitelist method to MetaMaskController 2018-10-02 10:43:46 -02:30
Whymarrh Whitby
4dd6c8168f Add ability to whitelist a blacklisted domain at runtime 2018-10-02 10:43:46 -02:30
HackyMiner
13a1d46720 support editable customRPC (#5267)
* support editable customRPC #5246

* remove rpcList size restriction
2018-09-28 17:23:58 -02:30
kumavis
59ab595b5e
Merge branch 'develop' into account-tracker-network-change 2018-09-28 02:45:16 -04:00
Whymarrh Whitby
83666e8d28 Update extension badge with correct signTypedData count 2018-09-27 08:33:50 -07:00
Phyrex Tsai
386110ef0f fix tld bug (#5250) 2018-09-27 12:51:50 -02:30
Thomas Huang
8c3091aa7a
Merge pull request #5053 from hahnmichaelf/esdb-support
Link to ESDB in local phishing.html
2018-09-27 10:19:06 -05:00
Paul Bouchon
9359fc875d
EIP-1102: Add deprecation message (#5353) 2018-09-26 10:48:17 -04:00
bitpshr
c4caba1317 bugfix: update eth_signTypedData_v3 parameter order 2018-09-26 10:00:12 -04:00
Esteban Miño
4d82df6995
Fix MetaMask web3 version (#5352) 2018-09-25 16:14:37 -03:00
Alexander Tseung
5d57c7c4fd
Merge pull request #5282 from MetaMask/tx-cancel-ui
Add Cancel Transaction feature. Refactor modals. Add Transaction Details modal.
2018-09-24 11:34:12 -07:00
Dan Miller
19d72c9b0b Adds getPendingNonce method to provider initialization options in metamask-controller. 2018-09-21 15:29:42 -02:30
Alexander Tseung
5a6c333506 Switch existing modals from using Notification to Modal. Remove Notification component. Add CancelTransaction modal 2018-09-19 14:31:10 -07:00
Paul Bouchon
daca7f9b41
Merge branch 'develop' into eip-712 2018-09-17 12:11:10 -04:00
Paul Bouchon
2ec09362c5
EIP-1102: Transitionary API (#5256) 2018-09-14 19:26:03 -04:00
bitpshr
42fdcf6239 Update new method namespace from v2 to v3 2018-09-13 15:42:27 -04:00
bitpshr
68c2554296 Update error message for chainId mis-match 2018-09-13 15:40:57 -04:00
bitpshr
36dd0354e7 Implement latest EIP-712 protocol 2018-09-13 15:40:57 -04:00
Dan Finlay
ce1975fbb4
Merge pull request #5240 from MetaMask/i5238-account-balance-update
Ensure account-tracker currentBlockNumber is set on first block update.
2018-09-11 14:31:10 -07: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
Dan Miller
eb32ccb0c7 Ensure account-tracker currentBlockNumber is set on first block update. 2018-09-11 12:51:49 -02:30
Frankie
1552fe1c3e
Merge pull request #5216 from MetaMask/tx-cancel
Add createCancelTransaction method
2018-09-10 13:29:29 -10:00
Frankie
a43e71693f
Merge pull request #5223 from whymarrh/tx-error-tooltips
Show transaction error message tooltips for statuses
2018-09-10 13:25:59 -10:00
Alexander Tseung
43de189d06 Add createCancelTransaction method 2018-09-10 12:48:01 -07:00
Connor Christie
ee568d5f5a Upgrade obs-store and fix memory leaks 2018-09-09 19:33:51 -05:00
Whymarrh Whitby
7c3b69e1e4 Attach the RPC error value to txMeta 2018-09-08 19:59:50 -02:30
brunobar79
8ee01f4e99 Merge branch 'develop' of github.com:MetaMask/metamask-extension into trezor-v5 2018-09-05 16:26:09 -04: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
bitpshr
803a79f836 Do not resolve .test domains using ENS 2018-08-24 12:40:37 -04:00
Esteban MIno
053e262ae7 delete web3.metamassk.watchAsset 2018-08-23 16:32:04 -03:00
Esteban MIno
b59a1e91b8 typo watchAsset imageUrl to image 2018-08-23 15:54:40 -03:00
Evgeniy Filatov
9a80d6e859 updated docs, small improvement of recent RPC rendering 2018-08-23 01:26:30 +03:00
Evgeniy Filatov
b23cca1469 implemented improvements to RPC history 2018-08-23 01:18:13 +03:00
Esteban MIno
56bed3f1bc expose web3.metamask.watchAsset 2018-08-22 18:14:10 -03:00
Dan Finlay
f30b726df7
Merge pull request #5122 from MetaMask/lazy-account-tracker
Network IO Optimization: Lazy AccountTracker
2018-08-22 13:31:42 -07:00
Dan Finlay
bf6d624e76 Add todo to dedupe UI tracking in background 2018-08-22 12:05:41 -07:00
kumavis
cb0af67f74 metamask controller - force account tracker to update balances on network change 2018-08-22 11:23:54 -07:00
Whymarrh Whitby
003d445a98 Update unlock logic to not overwrite existing selected address 2018-08-22 15:38:34 -02:30
brunobar79
b208ce7234 add port names blacklist 2018-08-22 14:04:26 -04:00
kumavis
a2654108be account-tracker - only track blocks when there are activeControllerConnections 2018-08-21 16:49:24 -07:00
kumavis
3ac2b40dcf metamask controller - track active controller connections 2018-08-21 16:30:11 -07:00
Esteban MIno
4e6c71e969 Merge branch 'develop' into WatchTokenFeature 2018-08-21 20:14:49 -03:00
Dan Finlay
babd59a2dc
Merge pull request #5109 from MetaMask/MoveOutInpageProvider
Move inpage-provider and port-stream outside
2018-08-21 14:38:47 -07:00
Dan Finlay
a485516488
Merge pull request #5118 from MetaMask/provider2-bugfix
bugfix - prevents old blocktracker from getting internal hooks migrated
2018-08-21 14:27:34 -07:00
kumavis
13dfea7f2d bugfix - prevents old blocktracker from getting internal hooks migrated 2018-08-21 14:13:23 -07:00
Esteban MIno
3a3732eb24 returning error in watchAsset 2018-08-21 13:12:45 -03:00
Esteban MIno
6fa889abcb refactor watchToken related functions 2018-08-21 12:59:42 -03:00
brunobar79
cee5783283 fix hardware wallets account name 2018-08-21 00:04:30 -04:00
brunobar79
34e3ec6092 fix account removal 2018-08-21 00:04:07 -04:00
Esteban MIno
68c1b4c170 watchAsset returns result wether token was added or not 2018-08-20 22:32:14 -03:00
Dan Finlay
6ce119d1fb Move inpage-provider and port-stream outside
With the creation of the [metamask-extension-provider](https://github.com/MetaMask/metamask-extension-provider) we have our first non-core module that is dependent on the inpage-provider and port-stream.

To reduce the size of its dependencies, I have moved the
[metamask-inpage-provider](https://github.com/MetaMask/metamask-inpage-provider) into its own module, as well as [extension-port-stream](https://github.com/MetaMask/extension-port-stream).

This allows them to be more easily depended & iterated on by external
projects.
2018-08-20 15:45:50 -07:00
Esteban MIno
81cd29df43 Merge branch 'develop' into WatchTokenFeature 2018-08-20 19:35:38 -03: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
Esteban MIno
dbab9a007f delete according image when token added with watchToken deleted 2018-08-16 21:17:02 -03:00
Esteban MIno
bb868f5834 correct behavior when notification is closed when popup 2018-08-16 20:19:19 -03:00
Esteban MIno
a36ea0e232 show watch asset image from hide token modal 2018-08-16 12:04:43 -03:00
Esteban MIno
5289a36664 change watchAsset to new spec for type ERC20 2018-08-15 20:01:59 -03:00
Esteban MIno
b766104c8d add suggested tokens objects in metamask state 2018-08-15 18:34:57 -03:00
brunobar79
82a5ed1e03 remove console logs 2018-08-14 22:40:29 -04:00
brunobar79
fdf202efb0 fixed unit tests 2018-08-14 21:19:01 -04:00
Esteban MIno
a4b6b2357a watchToken to watchAsset 2018-08-14 20:09:56 -03:00
Esteban MIno
a4c3f6b65c add support for images base64 and urls on new ui 2018-08-14 20:08:12 -03: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
Esteban MIno
8f5b80a0fe update method to metamask_watchToken 2018-08-14 13:58:47 -03:00
brunobar79
b77cc3d969 fix tx tests 2018-08-14 03:42:23 -04:00
brunobar79
61a279204a legacy and new hd path working 2018-08-14 01:26:18 -04:00
brunobar79
4e1d8ba19d good progress adding paths 2018-08-13 19:29:43 -04:00
hahnmichaelf
e19eb7bc03 additional lint-test fix 2018-08-13 13:21:18 -04:00
hahnmichaelf
4808ce25eb fix for lint-test 2018-08-13 13:16:37 -04:00
hahnmichaelf
7d2d71bcbc change name 2018-08-13 12:40:16 -04:00
hahnmichaelf
9666eaba66 base - working. fixes #4774 2018-08-12 18:57:58 -04:00
brunobar79
8f9a0a535c clean up 2018-08-12 01:43:41 -04:00
brunobar79
0b9b892c6b this should be ready to go 2018-08-12 01:34:01 -04:00
brunobar79
2355573340 clean up 2018-08-12 00:06:36 -04:00
brunobar79
e6d64cecf8 message signing works 2018-08-11 20:26:34 -04:00
brunobar79
068bf43615 working 2018-08-11 19:27:24 -04:00
brunobar79
12b41b8fc2 tx signature is valid 2018-08-11 18:20:50 -04:00
brunobar79
011cc141b3 tx signing should work 2018-08-11 16:00:29 -04:00
brunobar79
aa6a42e3de rename keyring 2018-08-11 05:11:21 -04:00
brunobar79
8e842a8947 able to add accounts 2018-08-11 05:02:02 -04:00
brunobar79
78a1cd3314 iframe communication working 2018-08-11 02:35:20 -04:00
brunobar79
5ef80495cf refactor to support multiple hw wallets 2018-08-10 21:54:34 -04:00
Bruno Barbieri
e2be22a4b7
Merge pull request #4897 from MetaMask/qr-code-scan
QR Code Scanner
2018-08-10 13:40:06 -04:00
Dan Finlay
be1d5a7dd9
Merge pull request #5020 from MetaMask/FixMigration28
Fixes migration 28
2018-08-09 14:24:38 -07:00
Jenny Pollack
00a2ab21ae sentry - change releaseVersion to release 2018-08-09 13:49:40 -07:00
Esteban MIno
8df3f2696c fix migration 28 2018-08-09 16:15:56 -04:00
Eduardo Antuña Díez
a2082bae5c Avoid overwriting a domain that can be resolved by DNS
According to the current implementation any domain ending in .eth or .test will try to resolve through ENS even if the DNS is able to resolve it.
changing `onBeforeRequest` to `onErrorOccurred` will only resolve those .eth or .test domains that the DNS is not able to resolve.
2018-08-09 12:20:51 +02:00
Eduardo Antuña Díez
543207b5af Fixed ENS to IPFS functionality in Firefox
`tabs.getSelected` is deprecated and it doesn't work in firefox replaced by `tabs.query({active: true}`
2018-08-09 12:14:09 +02:00
brunobar79
c6b7e460b5 code review changes 2018-08-08 03:00:39 -04:00
brunobar79
2e0916d8ff fix merge conflicts 2018-08-08 02:32:35 -04:00
Esteban MIno
33357e3538 refactor unused code 2018-08-07 19:12:16 -04:00
Esteban MIno
15ea8c04b2 fix merge 2018-08-07 17:53:36 -04:00
Esteban Miño
3f57d5f66b
Merge branch 'develop' into WatchTokenFeature 2018-08-07 17:50:58 -04:00
Esteban MIno
c0cdda8321 Merge branch 'develop' into TokensPerAccountBasis 2018-08-07 14:17:40 -04:00
frankiebee
115d3c9aaf Merge branch 'network-remove-provider-engine' into network-remove-provider-engine-tests 2018-08-07 01:38:32 -07:00
frankiebee
c2d4b237eb network - fix blockTracker reference to return the blockTrackerProxy instead of the direct blockTracker reference 2018-08-07 01:35:30 -07:00
Esteban MIno
78ad3c38e2 add suggested token params validation 2018-08-06 18:28:47 -04:00
Esteban MIno
9ac9f53a73 eth_watchToken working 2018-08-03 19:24:12 -04:00
Esteban MIno
081884bd80 rpc-engine not crashing when eth_watchToken 2018-08-03 16:42:13 -04:00
Esteban MIno
21a61f2987 merge develop 2018-08-03 14:56:02 -04:00
Thomas Huang
024ebe07e0 Merge branch 'develop' into network-remove-provider-engine-tests 2018-08-01 10:40:31 -07:00
Esteban MIno
d8817b2646 fix doc tag 2018-07-31 16:18:06 -04:00
Esteban MIno
3124e8c612 tokens related functions refactor 2018-07-31 15:59:19 -04:00
Esteban MIno
ccae79d392 fix undefined for tokens on tests 2018-07-31 13:07:28 -04:00
brunobar79
edb154749d send to fullscreen if no permission from popup 2018-07-30 22:57:05 -04:00
Esteban MIno
22cf5a1391 improve comments 2018-07-30 20:44:22 -04:00
Esteban MIno
822c1734d6 fix double state update when account changed 2018-07-30 20:36:31 -04:00
Esteban MIno
fbcba8f019 create tokens storage when setadresses 2018-07-30 19:09:17 -04:00
Esteban MIno
31286673c3 isolation of tokens related methods in preferences 2018-07-30 18:43:34 -04:00
brunobar79
4339f04e80 use existing modals 2018-07-30 17:50:05 -04:00
Esteban MIno
0757f47e84 passing tokens to all accounts in migration 2018-07-30 11:41:31 -04:00
Esteban MIno
e687bc5a47 fix migration for preferences controller tokens 2018-07-27 16:17:28 -04:00
Dan Finlay
9dc5d0cee0
Merge pull request #4905 from MetaMask/eip-712-deprecation
EIP-712: deprecation message
2018-07-27 13:16:44 -07:00
Esteban Miño
228f48c6e5
Merge branch 'develop' into TokensPerAccountBasis 2018-07-27 16:07:08 -04:00
Esteban MIno
5b9725d1f1 refactor to accountTokens 2018-07-27 16:05:12 -04:00
bitpshr
642ae25073 Add deprecation message for eth_signTypedData 2018-07-27 15:23:05 -04:00
Esteban MIno
f5107fa12e migration for preferences controller tokens 2018-07-27 14:56:03 -04:00
Esteban MIno
2827e13caa add & delete tokens per network 2018-07-26 19:28:12 -04:00
Esteban MIno
1d3ad7cfbb tokens per network for individual account 2018-07-26 18:04:34 -04:00
Kelvin Tan
7ca402147d add phishing html page, and redirect to bundled page in-window 2018-07-27 00:03:39 +08:00
Thomas
138858647e Merge branch 'develop' into network-remove-provider-engine 2018-07-25 22:38:44 -07:00
Frankie
b5e3aafe2e
Merge pull request #4871 from MetaMask/3519-new-contract-gas
tx-gas-utils -  catch all errors from gas estimation
2018-07-25 15:33:17 -10:00
Esteban MIno
adee549c43 preferences test fixes for tokens per account 2018-07-25 17:46:31 -04:00
frankiebee
527b62ee8e migrations - fix to include 27 2018-07-25 14:11:07 -07:00
Esteban MIno
2770df80e3 add & delete tokens per account 2018-07-25 16:14:10 -04:00
William Morriss
5782926c28
Merge pull request #4825 from MetaMask/no-inject-ani-gamer
Do not inject on ani.gamer.com.tw
2018-07-24 19:48:10 -07:00
pinkiebell
3667f3cb85 network.js: convert rpc protocol to lower case (#4855)
Fixes #4253
2018-07-24 19:33:36 -02:30
Jenny Pollack
00bae74475 tx-gas-utils - catch all errors from gas estimation 2018-07-24 14:16:37 -07:00
Kevin Serrano
1d241bef76
Merge branch 'develop' into no-inject-ani-gamer 2018-07-24 12:27:18 -07:00
Dan Miller
a61227f224 Remove unneeded code from i4829-close-notifications-from-ui branch. 2018-07-24 15:01:03 -02:30
Dan Miller
64a82fd3da Uncomment closePopupIfOpen code. 2018-07-24 11:45:36 -02:30
Dan Miller
2359062b62 UI confirm screen closes confirmation window on submit or cancel of a tx 2018-07-23 22:20:06 -02:30
brunobar79
5ebefc0e50 run linter 2018-07-21 16:03:31 -04:00
Esteban MIno
9be22775c3 fix merge 2018-07-20 20:15:33 -04: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
Csaba S
c11dea9afc
Merge branch 'develop' into transaction-notifications 2018-07-20 20:09:57 +02:00
Csaba Solya
72591d4f41 remove dropped handler 2018-07-20 19:58:26 +02: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
Csaba Solya
a3822b4680 add notifications 2018-07-20 13:20:40 +02:00
Esteban MIno
009b1cefbe keyring unlocked detect and unit tests 2018-07-19 19:46:46 -04:00
Csaba Solya
6921f94bfe initial test 2018-07-19 22:34:06 +02: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
Dan Finlay
3784a7e2c8
Merge pull request #4656 from MetaMask/portal-metamask-ens-test
Add support for .test ENS domains
2018-07-19 09:41:28 -07:00
Jenny Pollack
ae811628d9
Merge pull request #4833 from MetaMask/brave-flag-sentry
sentry - add detection for Brave Browser
2018-07-19 11:58:59 -04:00
Jenny Pollack
16fc7efef1 remove local tests 2018-07-19 09:59:58 -04:00
bitpshr
d24b5b76fd Update variable name 2018-07-19 08:04:17 -04:00
bitpshr
d02c160db5 Updates for linting 2018-07-19 08:04:17 -04:00
bitpshr
94f99b6ed0 Updates 2018-07-19 08:04:17 -04:00
bitpshr
8df433ca84 Add support for .test Ropsten ENS domains 2018-07-19 08:04:17 -04:00
Jenny Pollack
1a9748667d sentry - add detection for Brave Browser 2018-07-19 02:22:56 -04:00
Dan Finlay
dd9e3587d4
Do not inject on ani.gamer.com.tw
Fixes #4799
2018-07-18 15:23:32 -07:00
brunobar79
aa5a987765 added some e2e tests 2018-07-17 21:54:04 -04: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
Dan Finlay
6be6b9ef29
Do not inject on blueskybooking.com
Per zendesk 2312.
2018-07-16 15:39:35 -07:00
brunobar79
d21d408d64 Merge branch 'develop' of github.com:MetaMask/metamask-extension into initial-trezor-support 2018-07-13 20:53:22 -04:00
Esteban MIno
2fffe09873 detect tokens through infura 2018-07-12 20:43:43 -04:00
Dan Finlay
c4ae399577
Add harbourair.com to injection block list
This site was getting unexpected results when MetaMask was installed.

https://consensys.zendesk.com/agent/tickets/2312
2018-07-12 14:21:32 -07:00
Thomas Huang
5a45df72c6
Merge pull request #4669 from MetaMask/removeNonceTrackerFunction
Remove unsued nonce tracker function
2018-07-12 11:48:05 -07:00
brunobar79
07d8bfaec5 Merge branch 'develop' of github.com:MetaMask/metamask-extension into initial-trezor-support 2018-07-12 12:54:08 -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
brunobar79
80e875308b forget device and autiload account features added 2018-07-11 21:21:36 -04:00
brunobar79
89cc48789a update to temp dependencies 2018-07-11 20:01:44 -04:00
Esteban MIno
910713c6b3 improve tests 2018-07-11 15:59:05 -04:00
brunobar79
523cf9ad33 account removal is working 2018-07-11 00:20:40 -04:00
Thomas
5188b727d4 Merge branch 'develop' into removeNonceTrackerFunction 2018-07-10 11:34: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
brunobar79
85a4e39b05 fix trezor label 2018-07-09 20:54:47 -04:00
brunobar79
d3f793a44a added label for trezor accounts 2018-07-09 19:04:30 -04:00
brunobar79
2de3039b6b fix account duplication 2018-07-09 17:55:37 -04:00
brunobar79
7cca7ace2e fix all the account related bugs 2018-07-09 17:24:52 -04:00
Alexander Tseung
a2d9c43fba Various fixes from PR comments 2018-07-06 16:27:08 -07:00
Alexander Tseung
9cde5ab11b Use eth-method-registry to get method data 2018-07-06 16:27:08 -07:00
Alexander Tseung
7732cd4100 Display newest transaction 2018-07-06 16:27:08 -07:00
Alexander Tseung
ea9d51e427 Refactor and redesign confirm transaction views 2018-07-06 16:27:08 -07:00
brunobar79
7c9d942ba1 Merge branch 'develop' of github.com:MetaMask/metamask-extension into initial-trezor-support 2018-07-06 19:21:18 -04:00
brunobar79
6b2511f94f UI refactor 2018-07-05 20:59:31 -04:00
Dan J Miller
46cda26f3b
Merge pull request #4685 from MetaMask/estimate-gasprice-background-newui
Use background gas price estimation method in new ui.
2018-07-05 08:01:03 -02:30
brunobar79
9d3f2435e5 lint fix 2018-07-03 15:46:15 -04: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
brunobar79
3837c2ddd7 fix merge conflicts 2018-07-03 15:41:18 -04:00
brunobar79
13b03ec090 fix lint errors 2018-07-03 14:29:36 -04:00
brunobar79
595447ccac Merge remote-tracking branch 'upstream/develop' into HEAD 2018-07-03 14:21:17 -04:00
bitpshr
badf0ce314 Conditionally use Promise-based extension API when creating windows 2018-07-03 13:33:13 -04:00
brunobar79
3290421e2f fix merge conflicts 2018-07-03 13:31:30 -04:00
Esteban MIno
0494b2fc8a Merge branch 'develop' into detectTokenFeature 2018-07-03 13:23:15 -04:00
Esteban MIno
03fd4355af passtest-lint 2018-07-03 12:53:06 -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
brunobar79
317c3084df allow to open specific route in fullscreen mode 2018-07-02 15:14:31 -04:00
brunobar79
451c05bcbb fix environment detection regex 2018-07-02 15:14:05 -04:00
brunobar79
1494cc5e6c fix merge conflicts 2018-07-01 11:41:34 -10:00
PhyrexTsai
11736e6318
Update to support pathnames on IPFS hash
As @Georgi87 mentioned about pathnames on the domain like `http://phyrextsai.eth/home` will pass to IPFS hash and append `/home` on redirection url.

You can try the example below: 
http://phyrextsai.eth/index.html
http://phyrextsai.eth/images/phyrex.jpg
2018-06-29 13:57:41 +08:00
Dan
de01a6f112 Use background gas price estimation method in new ui. 2018-06-28 21:28:59 -02:30
Esteban MIno
6284e66481 tests for spec 2018-06-27 22:18:06 -04:00
Esteban MIno
0e863d5fab network store to detect token 2018-06-27 19:54:43 -04:00
Esteban MIno
bfac9c2c2d detect tokens polling 2018-06-27 16:29:24 -04:00
frankiebee
9b92ba4c47 trandsactions - remove rejected transactions from history 2018-06-25 15:07:54 -07:00
tmashuang
dd18684a5d Remove unsued nonce tracker function 2018-06-25 15:01:14 -07:00
frankiebee
7d3da0ae96 migration 27 - remove rejected transactions from state 2018-06-25 11:45:00 -07:00
brunobar79
87dfca0767 fixes 2018-06-23 02:52:11 -04:00
Thomas Huang
46b2f1df11
Merge pull request #4592 from vittominacori/fix/close-popup-bug-#4553
set an id to the metamask notification popup
2018-06-20 15:50:07 -07:00
Dan Finlay
0481335dda Improved rpc-engine usage 2018-06-18 15:50:27 -07:00
Dan Finlay
5e4f3e430a Get popup appearing when suggesting new token 2018-06-18 15:37:37 -07:00
Dan Finlay
f14ed32980 Begin letting UI show suggested tokens 2018-06-18 15:33:50 -07:00
Dan Finlay
5d7c2810a7 Begin adding eth_watchToken 2018-06-18 15:07:08 -07:00
kumavis
356cc50095 notice controller - properly show new notices for non-new users 2018-06-18 12:10:35 -07:00
kumavis
9a7f363c2a
Merge pull request #4586 from MetaMask/block-idex-phisher
Add apparent phishing address to block list
2018-06-18 11:26:19 -07:00
vittominacori
ff3c262621 set the popup id returned by create promise 2018-06-17 19:16:30 +02:00
vittominacori
4c1b526137 set an id to the metamask notification popup 2018-06-16 18:51:01 +02:00
kumavis
33cb0a8cb2 lint - fix recipient-blacklist.js 2018-06-15 11:07:56 -07:00
kumavis
83c02f90cf blacklist - recipient blacklist as js for inline comments 2018-06-15 10:47:42 -07:00
kumavis
753743e746
Update recipient-blacklist-config.json 2018-06-15 10:32:09 -07:00
Dan Finlay
a42299aab7
Add apparent phishing address to block list
In [this reddit post](https://www.reddit.com/r/Metamask/comments/8r3nsu/help_me_please_somebody_stole_my_ethers/) a user suggests they got some ether stolen after visiting IDEX. Their ether was sent to [this address](https://etherscan.io/address/0x9bcb0a9d99d815bb87ee3191b1399b1bcc46dc77), which is full of comments of people telling similar stories of being phished on IDEX. I think we can safely block this, and probably safe some people some money.
2018-06-15 08:55:39 -07:00
Dan Finlay
3a6cc3c8fd Re-enable dapp reload on network change
We want to give devs some time to digest [this blog post](https://medium.com/metamask/breaking-change-no-longer-reloading-pages-on-network-change-4a3e1fd2f5e7) before we making a breaking change to our platform.

Makes it easy to re-implement the change.
2018-06-14 15:15:23 -07:00
kumavis
d9ef72cb7e
Merge branch 'develop' into save-brave 2018-06-14 10:11:35 -07:00
Dan Finlay
11bfdf444d Handle brave throws 2018-06-14 10:09:45 -07:00
Dan Finlay
d814bee578
Merge pull request #4571 from MetaMask/disable-diagnostics
diagnostics - temporarily disable
2018-06-14 10:03:53 -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
722c5ae821 notice-controller - update memStore on boot 2018-06-14 00:23:01 -07:00
kumavis
4b8a4fd5fe test - e2e - check for phishing warning 2018-06-13 23:52:51 -07:00
kumavis
44a8e48a04 notices - replace getLatestNotice with getNextNotice 2018-06-13 23:30:31 -07:00
kumavis
ac8b56a00d notices - notices collection is now manually edited 2018-06-13 22:56:46 -07:00
kumavis
e9cb650832 Merge branch 'develop' of github.com:MetaMask/metamask-extension into ValidateEmptyKey 2018-06-13 21:11:04 -07:00
kumavis
691ac5d288 account-import-strategies - ensure privateKey is prefixed before converting to buffer 2018-06-13 21:06:33 -07:00
kumavis
43e805805e diagnostics - temporarily disable 2018-06-13 17:40:28 -07:00
kumavis
7b414f3ed0 background - persistence pipeline - fix persistence bug 2018-06-13 16:45:18 -07:00
Bruno
704e2a21f8 clean up 2018-06-13 02:09:25 -04:00
Bruno
bb4cc72646 fix merge conflicts 2018-06-13 02:01:47 -04:00
Bruno
8763ea898e move TrezorKeyring to its own package 2018-06-13 01:32:13 -04:00
Bruno
d4201ae1cc added support for signPersonalMessage 2018-06-13 00:22:04 -04:00
Erik Marks
bb201d7c4a
Merge branch 'develop' into stop-reload-on-network-change 2018-06-12 13:39:21 -07:00
kumavis
604289c96c controllers - transaction - prefer log over console 2018-06-12 12:08:06 -07:00
kumavis
177cc3f280 metamask - ensure all nonce locks are released 2018-06-12 11:51:35 -07:00
kumavis
8f93e34175 nonce-tracker - wrap nonce calculations in try-catch and release lock on error 2018-06-12 11:31:26 -07:00
kumavis
055346843b lint - fix lint for network 2018-06-12 11:27:32 -07:00
kumavis
6a2649a90f network - import createBlockTrackerInspectorMiddleware and rearrange cache middleware order 2018-06-12 11:12:32 -07:00
Erik Marks
b982961381 removed auto-reload.js, moved global web3 export to inpage.js 2018-06-12 11:04:37 -07:00
kumavis
c86f935889 nonce-tracker - wrap nonce calculations in try-catch and release lock on error 2018-06-12 10:55:54 -07:00
Erik Marks
f461bd8812 wip 2018-06-12 09:28:50 -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
kumavis
ebb9447593 test - e2e - factor out setup phase + rename METAMASK_CONFIG to METAMASK_TEST_CONFIG 2018-06-11 14:25:49 -07:00
kumavis
02f5502e16 test - e2e - inject metamask config to point at localhost 2018-06-11 11:04:28 -07:00
kumavis
0db776c3cc lint - controllers - whitepace fix 2018-06-11 10:17:09 -07:00
Bruno
999b6bd24a clean up 2018-06-11 01:58:19 -04:00
Bruno
68d97211ff sign transactions is pretty close 2018-06-11 01:52:41 -04:00
Bruno
d1880073f6 balances working 2018-06-10 21:10:22 -04:00
Bruno
f6b27fa9eb add account working 2018-06-10 19:02:54 -04:00
Bruno
f5f66f59d7 clean up 2018-06-10 18:48:42 -04:00
Bruno
8c4d58aa45 initial trezor support 2018-06-10 03:52:32 -04:00
Jenny Pollack
e7c2710a55 Merge branch 'develop' into save-brave 2018-06-07 14:10:56 -07:00
kumavis
3ce83570ee network - provider - infura - use block-reemit middleware 2018-06-07 12:26:37 -07:00
Dan Finlay
c0d2dab28b
Merge pull request #4523 from MetaMask/i4462-FixResetBug
Fix bug where reset account would not work.
2018-06-07 10:47:34 -07:00
kumavis
66b703b1a4 Merge branch 'develop' of github.com:MetaMask/metamask-extension into network-remove-provider-engine 2018-06-07 10:07:36 -07:00
Jenny Pollack
fd8bcc9cb1 lint 2018-06-06 22:08:32 -07:00
Jenny Pollack
01a1eff8a8 remove loglevel 2018-06-06 18:35:41 -07:00
Jenny Pollack
7edde61c12 preferred first languauge - check for Brave 2018-06-06 18:24:45 -07:00
Jenny Pollack
275c31855d first language - add check for brave browser on getAcceptLanguages 2018-06-06 18:10:05 -07:00
Dan
11f5fdc927 Merge branch 'develop' into i3725-refactor-send-component- 2018-06-06 21:55:20 -02:30
Dan Finlay
c53c5d5c9e Fix bug where reset account would not work.
Fixes #4462

Ensures that resetAccount() can work on non-stock providers.

I'm unclear how this was ever working, this code hasn't moved in months,
but users report it recently breaking. Maybe we only recently pushed it
to prod.
2018-06-06 16:46:39 -07:00
kumavis
aea9491f6a
Merge pull request #4477 from MetaMask/i3073-block-gravityforms
Block gravityforms.com from web3 injection
2018-06-06 12:24:05 -07:00
Dan
ae55e8a3c1 Merge branch 'develop' into i3725-refactor-send-component- 2018-06-06 16:40:43 -02:30
kumavis
2198276bd5 Merge branch 'develop' of github.com:MetaMask/metamask-extension into network-remove-provider-engine 2018-06-06 12:05:38 -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
kumavis
ffb8fa1649 lint - remove unused require 2018-06-06 11:17:52 -07:00