-
-
Notifications
You must be signed in to change notification settings - Fork 57
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The approve()
method should be an RPC method, I'd love if we kept it within requestPermissions
, potentially extending that method.
I'm a little on the fence about leaving installation in the hands of the app, but it also does give very concrete lifecycle hooks to the application, where it can react to approval while it waits for dependencies to resolve, so that's actually kinda nice, I think I could grow into that.
I included a comment that has some example code (how I think this works, and some other ways it could work). I'm not completely clear what this API surface looks like, I'd like us to get some very concrete examples documented before agreeing this is the API we're going forward with.
78be041
to
5d5b215
Compare
f31761d
to
f97add3
Compare
d59e4fd
to
05e6848
Compare
add wallet_installPlugins method update inpage provider
commit 3e190d2404db352d44dcc03af161470588af026c Author: Erik Marks <[email protected]> Date: Thu Nov 21 11:30:42 2019 -0800 update inpage provider commit c3e46f12ccfeb0d57ef6ff0facac13ac99fd9a9f Author: Erik Marks <[email protected]> Date: Thu Nov 21 11:28:05 2019 -0800 prevent notifying connections if extension is locked commit ec72780be1de1f81db87dd7b07186fef270ebaa6 Author: Erik Marks <[email protected]> Date: Thu Nov 14 12:20:58 2019 -0800 add eth_requestAccounts handling to background commit 1fcaca48868e795cf91aa22c7cf10412c734a9bb Author: Erik Marks <[email protected]> Date: Wed Nov 13 14:40:02 2019 -0800 update inpage provider, rpc-cap commit 35786361a2f5f9c4c7059a1ef0ff9a14df448586 Author: Mark Stacey <[email protected]> Date: Wed Nov 13 01:20:55 2019 -0400 Add external extension id to metadata (#7396) commit 5d0d1f7b3a4cdb42b098de25620df5da8b629113 Author: Erik Marks <[email protected]> Date: Tue Nov 12 16:33:07 2019 -0800 rename unused messages in non-English locales commit 4757a0aa9525230b960bfe2c9a83678a1bece7fa Author: Erik Marks <[email protected]> Date: Tue Nov 12 15:54:12 2019 -0800 add hooks for exposing accounts in settings commit 27a99d41505273163c92554b3d4c40c659499824 Author: Erik Marks <[email protected]> Date: Sun Oct 27 20:34:59 2019 -0700 add accountsChange notification to inpage provider move functionality to inpage provider update inpage provider Remove 'Connections' settings page (#7369) commit 33749bca49c3b84c5aae061ec9697ed5d211b0f3 Author: Erik Marks <[email protected]> Date: Fri Apr 12 14:28:59 2019 +0800 PermissionsController - init 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 commit f763979beded94a8bfe7717a96e36c9c65f87368 Author: Mark Stacey <[email protected]> Date: Fri Nov 22 13:03:51 2019 -0400 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`) commit 015ba83c6e69dcca676d626f70ef887a38ce01b9 Author: Tyson Malchow <[email protected]> Date: Fri Nov 22 09:13:23 2019 -0600 Update Wyre buy ETH URL (#7482) commit bf57dd5ad918210c5f7e6680ed09d94f5f4b9acf Author: ricky <[email protected]> Date: Thu Nov 21 16:59:50 2019 -0500 Add overflow hidden (#7488) commit ff12d0572739d80faadac690e10b46ef8331ed2b Author: Whymarrh Whitby <[email protected]> Date: Thu Nov 21 18:09:29 2019 -0330 Remove stray periods from settings tabs descriptions (#7489) commit 71a0bc8b3ff94478e61294c815770e6bc12a72f5 Author: Mark Stacey <[email protected]> Date: Wed Nov 20 18:03:49 2019 -0400 Refactor signature-request-original (#7415) The component has been updated to split the container from the base component, and all hyperscript has been replaced with JSX. ES6 imports are used throughout as well. commit a8be9ae42be3e0421114f7393dbf4863808f262a Author: Antonio Savage <[email protected]> Date: Wed Nov 20 08:42:36 2019 -0600 Fix link on root README.md (#7480) commit 056e8cdf7e948452b172eb45642228b62e8aca04 Merge: aa4105762 72eb233ee Author: Mark Stacey <[email protected]> Date: Tue Nov 19 21:10:55 2019 -0400 Merge pull request #7479 from MetaMask/master Master sync commit aa41057628a812cfa3d330fd36684ca17ab2852d Author: Whymarrh Whitby <[email protected]> Date: Tue Nov 19 20:33:20 2019 -0330 Update ESLint rules for curly braces style (#7477) * eslint: Enable curly and brace-style * yarn lint --fix commit 72eb233ee953c381407f0121f76822a79753e4ee Merge: 86c39c806 ea93408bd Author: Thomas Huang <[email protected]> Date: Tue Nov 19 15:00:37 2019 -0800 Merge pull request #7474 from MetaMask/Version-v7.6.1 Version v7.6.1 RC commit ea93408bddf6fc51767d1a046650b3ae811a6d24 Author: Mark Stacey <[email protected]> Date: Tue Nov 19 17:35:14 2019 -0400 Revert "Update abi-decoder (#7472)" This reverts commit a26e77c61e5117b9db3fe852deed63f1d29f659e. commit cbd4f3f76eb6fe21494bf2c605fb1d4d7eb9180f Merge: 038e2e8ca ab0600ef0 Author: Thomas Huang <[email protected]> Date: Tue Nov 19 12:55:35 2019 -0800 Merge pull request #7475 from whymarrh/mkr-follow-up Add 'Remind Me Later' to the Maker notification commit 038e2e8ca997ecf88defa4fca54183fce3d7b74c Author: Mark Stacey <[email protected]> Date: Tue Nov 19 16:24:48 2019 -0400 Update changelog for v7.6.1 commit ab0600ef0ba690da15de0c7d2b636703f6af2336 Author: Whymarrh Whitby <[email protected]> Date: Tue Nov 19 16:04:33 2019 -0330 Add Remind Me Later to SAI migration notification commit 5f9e8867b4377556796aa92625c613fae603805f Author: Whymarrh Whitby <[email protected]> Date: Tue Nov 19 15:01:23 2019 -0330 Allow any renderable type in HomeNotification texts commit 38f8d9906d8d113a549a5cbceea8d6b45cd8f229 Author: MetaMask Bot <[email protected]> Date: Tue Nov 19 19:44:23 2019 +0000 Version v7.6.1 commit 476274474f5fc709b176f481d66865f190e14a52 Author: ricky <[email protected]> Date: Tue Nov 19 10:46:10 2019 -0500 Add shellcheck lint (#7392) * Add shellcheck lint script * Add to build * Add shellcheck lint to main lint task * Put shellcheck in the right place, hopefully? * Fix declared multiple executor types * Add sudo * Address shellcheck warnings * Add test-lint-shellcheck * Add test-lint-shellcheck to workflow * Use correct lint task * output version which could be helpful for debugging * Address PR feedback * consistency++ commit a26e77c61e5117b9db3fe852deed63f1d29f659e Author: Mark Stacey <[email protected]> Date: Tue Nov 19 09:43:42 2019 -0400 Update abi-decoder (#7472) This is a major version update, but it appears that the reason for the breaking change was that the dependency on `web3` was dropped in favour of using two `web3` utility libraries instead. I could find no indication of a breaking change to the API of `abi-decoder` itself. commit 5c356a4cac8f1cbefc3d863e22d8273ab73614aa Author: Mark Stacey <[email protected]> Date: Tue Nov 19 09:41:28 2019 -0400 Show transaction fee units on approve screen (#7468) The units for the amounts shown on the approve screen in the transaction fee section were missing. It appears that they were present in an early version of the approve screen (#7271) but they got lost somewhere along the way. commit 346c1f2622d03fad76d0b0f94a3ba5d4ad269c4c Author: ricky <[email protected]> Date: Tue Nov 19 00:11:50 2019 -0500 Add additional rpcUrl verification (#7436) * Add additional url verification * Add commas * Address PR feedback * Use URL over URI * Update key in other languages * Add stateKey check * Split validateUrl into two separate methods * Remove unused variable * Add isValidWhenAppended method commit 9d03865274441ec08aaa9c86d6192cab6d57482f Merge: 4ac247462 2a90a886b Author: Thomas Huang <[email protected]> Date: Mon Nov 18 20:02:28 2019 -0800 Merge pull request #7470 from MetaMask/update-changelog Update v7.6.0 changelog commit 2a90a886b220aaf7f1dacb8504360636f925cea5 Author: Thomas <[email protected]> Date: Mon Nov 18 18:14:02 2019 -0800 Update v7.6.0 changelog commit 4ac247462bccf0bdc7ade96a3655c926d7786753 Merge: b0890b6b3 86c39c806 Author: Thomas Huang <[email protected]> Date: Mon Nov 18 17:50:03 2019 -0800 Merge pull request #7469 from MetaMask/master Master sync commit 86c39c806e6eda8b6e29f706c5837285168dc8a9 Merge: 9a3b85a54 a932dce6e Author: Thomas Huang <[email protected]> Date: Mon Nov 18 17:15:55 2019 -0800 Merge pull request #7466 from MetaMask/Version-v7.6.0 Version v7.6.0 RC commit b0890b6b32a10c0cddd9f4482d4d5bf5db8bcdcb Author: Whymarrh Whitby <[email protected]> Date: Mon Nov 18 19:53:41 2019 -0330 Enforce a single boolean attr notation in JSX (#7465) This changeset enables the ESLint rule enforcing a single notation for boolean attributes in JSX—explictly setting the value to `true` is no longer allowed (as it was never needed).[1] From the docs for JSX:[2] > If you pass no value for a prop, it defaults to `true`. [1]:https://github.com/yannickcr/eslint-plugin-react/blob/80935658/docs/rules/jsx-boolean-value.md [2]:https://reactjs.org/docs/jsx-in-depth.html#props-default-to-true I have chosen to use this default as it the most consistent with HTML (a la `checked` and `disabled`). commit a932dce6e39d7a58417298d9139b6e4829308a83 Merge: 5b88a1da9 7f5d82988 Author: Thomas Huang <[email protected]> Date: Mon Nov 18 15:22:41 2019 -0800 Merge pull request #7467 from MetaMask/adjust-notification-icon Set default height of notification icon commit 7f5d82988075a8fe9a031e3ea944002a6b6545b6 Author: Thomas <[email protected]> Date: Mon Nov 18 14:45:10 2019 -0800 Set default height and alignment of notification icon commit 5b88a1da9aee8373b1be8dbe8e50d4e939eb3222 Author: MetaMask Bot <[email protected]> Date: Mon Nov 18 21:53:48 2019 +0000 Version v7.6.0 commit 86b165ea83be3afb4f2751a7bfd36f8544049b20 Author: Whymarrh Whitby <[email protected]> Date: Mon Nov 18 18:16:28 2019 -0330 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. commit b3395502f2915a8b2ed1aa5d38bd93f997eea65f Merge: 935cf9312 3003104a5 Author: Thomas Huang <[email protected]> Date: Mon Nov 18 12:32:38 2019 -0800 Merge pull request #7463 from MetaMask/expand-home-notification-height Expand home notification height commit 935cf931204c0d0987505eeec95040b7d0577438 Merge: 51bfe5651 273ec7bee Author: Thomas Huang <[email protected]> Date: Mon Nov 18 12:21:42 2019 -0800 Merge pull request #7461 from MetaMask/fix-home-notification-styles Import styles for showing multiple notifications commit 3003104a5daa5a61b5ec00aa9dc6d2d5e6d4ff74 Author: Mark Stacey <[email protected]> Date: Mon Nov 18 16:03:21 2019 -0400 Expand home notification height The home notification static height of 116px is too cramped for longer messages, such as the one used for the Sai migration. The old height is now used for the minimum height instead, with a margin to ensure the text doesn't get too close to the buttons. commit 273ec7beeff3f7f0cf363d1b798167d69b45d3f3 Author: Mark Stacey <[email protected]> Date: Mon Nov 18 15:49:27 2019 -0400 Import styles for showing multiple notifications The styles for the multi-notification component on the home screen were accidentally removed while resolving a merge conflict in #6891. Fixes #7460 commit 51bfe56510fe9e7039c9d2b0f7a00e5f3f1669fa Author: Whymarrh Whitby <[email protected]> Date: Mon Nov 18 14:19:03 2019 -0330 Disallow spaces around the equal sign in JSX (#7459) commit f1384e75225d3bbcf7adf1c413b46c9fce03250c Author: Whymarrh Whitby <[email protected]> Date: Mon Nov 18 11:38:47 2019 -0330 Disable unnecessary curly braces in JSX (#7454) commit 659b4360bc1a0bfb6c7effd7549dbb64b9f1d963 Author: Whymarrh Whitby <[email protected]> Date: Mon Nov 18 11:38:10 2019 -0330 Add ESLint rule forbidding extraneous defaultProps (#7453) commit a271e7f45643b7ac5f42b125b8075aba055e502e Author: Whymarrh Whitby <[email protected]> Date: Sun Nov 17 15:32:26 2019 -0330 Update Node version to 10.17 (#7447) commit a6e387fddc44354f513fabaebbc72d6acf08bb2b Author: Sunghee Lee <[email protected]> Date: Mon Nov 18 02:34:17 2019 +0900 Add button disabled when password is empty (#7451) commit 7a6f2693fec455065d1a20a075c7e140259bb9ad Author: Whymarrh Whitby <[email protected]> Date: Sat Nov 16 19:43:46 2019 -0330 Add defaultProps to MultipleNotifications (#7449) commit d41522d5c08d9cfa0fd6ad5fef242557b2183ba7 Author: Whymarrh Whitby <[email protected]> Date: Sat Nov 16 19:43:20 2019 -0330 Cleanup MultipleNotifications jsx in Home (#7448) commit 076adda5be5866cbd034eb57da7b3e5a186edc00 Merge: 37b5449c1 9a3b85a54 Author: Mark Stacey <[email protected]> Date: Fri Nov 15 18:40:52 2019 -0400 Merge pull request #7442 from MetaMask/master Master sync commit 9a3b85a544b2b2077eb06c64262a9a72ff886e6d Merge: 1e609e851 83e34d903 Author: Dan Finlay <[email protected]> Date: Fri Nov 15 13:50:38 2019 -0800 Merge pull request #7441 from MetaMask/Version-v7.5.3 Version v7.5.3 RC commit 83e34d90338b5043d094460cbf64e305f96b2fc6 Author: Whymarrh Whitby <[email protected]> Date: Fri Nov 15 16:19:55 2019 -0330 Update changelog for v7.5.3 commit c3966aecdbcbf7ad13ff8bdf182c3c14be3c5f95 Author: MetaMask Bot <[email protected]> Date: Fri Nov 15 19:39:23 2019 +0000 Version v7.5.3 commit 37b5449c132b81b9c37b1399502baaf4d897c0ff Author: Eduardo Antuña Díez <[email protected]> Date: Fri Nov 15 19:23:46 2019 +0100 Added webRequest.RequestFilter to filter main_frame .eth requests (#7419) Added webRequest.RequestFilter to filter main_frame .eth requests commit 6e5efed7d9c6606618affcfebec8adf84322c2df Merge: 23ab6e2d5 1e609e851 Author: Mark Stacey <[email protected]> Date: Fri Nov 15 14:08:55 2019 -0400 Merge pull request #7440 from MetaMask/master Master sync commit 23ab6e2d544d1879882214c97a96defc2128fb57 Author: Mark Stacey <[email protected]> Date: Fri Nov 15 14:04:36 2019 -0400 Add metricsEvent to contextTypes (#7439) The metricsEvent context type was missing, resulting in an error when it was called. commit 494ad031760e60ecfa070363d805917bdbd4909a Merge: 3ffda6c68 f8aaec6d3 Author: Dan Finlay <[email protected]> Date: Fri Nov 15 09:41:35 2019 -0800 Merge pull request #7420 from MetaMask/e2e-test-for-typed-sig-request Adds and end to end test for typed signature requests commit 3ffda6c684059aeab7f1129f19cefe2bb539a82b Merge: 10114a969 1c6e09b1c Author: Dan Finlay <[email protected]> Date: Fri Nov 15 09:40:51 2019 -0800 Merge pull request #7410 from MetaMask/fix-sourcemaps Fix sourcemaps commit 10114a969790eedc32844fa131a37f9891a75083 Author: Mark Stacey <[email protected]> Date: Fri Nov 15 13:23:59 2019 -0400 Update 512px icon (#7434) This updated 512px icon morely closely resembles the other sizes, particularly in colour. commit 00e43d0b47e630f860226ee9723c99d917009573 Author: Whymarrh Whitby <[email protected]> Date: Fri Nov 15 13:47:42 2019 -0330 Ensure Etherscan result is valid before reading it (#7426) commit 5e84c5055c7a1e31993f7d75905e6c26c3db13e4 Author: Mark Stacey <[email protected]> Date: Thu Nov 14 23:31:34 2019 -0400 Add all icons to manifest (#7431) Of the 7 different icon sizes we have, only four were referenced in the manifest. All 7 are now listed, which leaves the browser more to choose from when deciding which to use. commit fb83b2937e23f991fcfa5982d4bf8421b866a990 Author: Sergej Müller <[email protected]> Date: Thu Nov 14 23:54:24 2019 +0100 Utilize the full size of icon space (#7408) * Utilize the full width of icon space * Replace extension icon by the front-facing logo commit 64d7a95dffe34dbde4e01352e23aeb4984a93deb Merge: f5cec3e6b 5bce06098 Author: Dan Finlay <[email protected]> Date: Thu Nov 14 14:49:56 2019 -0800 Merge pull request #7430 from MetaMask/change-browser-action-badge-colour Update badge colour commit 5bce06098571cf61a957e9835c9dbb485e2f37d6 Author: Mark Stacey <[email protected]> Date: Thu Nov 14 18:19:03 2019 -0400 Update badge colour The badge colour is now '#037DD6', which stands out a bit more on both light and dark modes. commit 1e609e8518f287a004afd58cdac1c73e8c614f2a Merge: 44109337d b36e611cc Author: Thomas Huang <[email protected]> Date: Thu Nov 14 12:27:56 2019 -0800 Merge pull request #7428 from MetaMask/Version-v7.5.2 Version v7.5.2 RC commit b36e611cca104406682337cf025669fcb481ca47 Author: Mark Stacey <[email protected]> Date: Thu Nov 14 15:57:45 2019 -0400 Update changelog for v7.5.2 commit fcc6baf0d11f49dc4de306b09ed1013870b222ea Author: Mark Stacey <[email protected]> Date: Thu Nov 14 14:28:40 2019 -0400 Ensure SignatureRequestOriginal 'beforeunload' handler is bound (#7414) The 'beforeunload' handler was being bound to the module scope instead of the instance scope, because the class was defined using prototypes rather than the ES6 class syntax. The arrow functions were removed, and the handler is now bound explicitly in the constructor. commit 18622d7dcac9984f15ad88c211661c879c2e4a88 Author: MetaMask Bot <[email protected]> Date: Thu Nov 14 19:53:55 2019 +0000 Version v7.5.2 commit f5cec3e6b7a2fa303ffbeec96cc3e6240b1612a0 Author: Mark Stacey <[email protected]> Date: Thu Nov 14 14:28:40 2019 -0400 Ensure SignatureRequestOriginal 'beforeunload' handler is bound (#7414) The 'beforeunload' handler was being bound to the module scope instead of the instance scope, because the class was defined using prototypes rather than the ES6 class syntax. The arrow functions were removed, and the handler is now bound explicitly in the constructor. commit a34f1eae53a96114e80b1ff898dcc6dff480bfa6 Merge: f2e3fa58b 9ca22d8fa Author: Mark Stacey <[email protected]> Date: Thu Nov 14 14:27:43 2019 -0400 Merge pull request #7416 from MetaMask/add-eslint-import-plugin Add eslint import plugin to help detect unresolved paths commit f2e3fa58b6280534e9fa92e085ce7b0c350635f6 Author: Whymarrh Whitby <[email protected]> Date: Thu Nov 14 13:17:32 2019 -0330 circleci: v2.1 (#7421) commit f8aaec6d32aa342a17e76bf72ae4d12efb05145b Author: Dan Miller <[email protected]> Date: Thu Nov 14 10:22:34 2019 -0330 Adds and end to end test for typed signature requests commit 9ca22d8fae9689059763c4284aba553c3f2f5845 Author: Mark Stacey <[email protected]> Date: Thu Nov 14 09:17:55 2019 -0400 Disable `import/no-unresolved` on lines that require build Certain lines only work after a build stage has been completed, so these failure can be ignored by the no-unresolved rule. commit a57ff0b6813c68d17c27528e17a8d94d8ffa1d63 Author: Mark Stacey <[email protected]> Date: Wed Nov 13 19:26:26 2019 -0400 Add eslint import plugin to help detect unresolved paths Most of the rules in the import plugin are only useful for projects using purely ES6 imports. The `no-unresolved` rule works with mixed CommonJS and ES6 though, so we at least benefit from that in the meantime. commit 3673459a54bc9794f0a3b4600d6b3b6803542281 Author: Bruno Barbieri <[email protected]> Date: Wed Nov 13 20:05:56 2019 -0500 lock eth-contract-metadata (#7412) commit 1c6e09b1cebcc2964197778baddf7cced90da160 Author: Mark Stacey <[email protected]> Date: Wed Nov 13 16:54:04 2019 -0400 Fix sourcemaps The `install` script of `@sentry/cli` is required for the Sentry CLI to work correctly. Without this step, the sourcemap upload fails silently. commit 33d6abf0e2b925f68f0756eac8d919bb8d19fac0 Merge: 5a8e8c61e 44109337d Author: Mark Stacey <[email protected]> Date: Wed Nov 13 14:40:52 2019 -0400 Merge pull request #7406 from MetaMask/master Master sync commit 44109337d0b0490d37d8ca687d9e68303929dd7e Merge: c594bb340 54d2ec936 Author: Dan Finlay <[email protected]> Date: Wed Nov 13 09:30:12 2019 -0800 Merge pull request #7405 from MetaMask/Version-v7.5.1 Version v7.5.1 RC commit 54d2ec9363d19414378479b1cbade855c96233e1 Author: Dan Miller <[email protected]> Date: Wed Nov 13 11:08:48 2019 -0330 Update changelog for v7.5.1 commit ecfb629cd68bedea2c9ceacbca383bcf4ad08258 Author: MetaMask Bot <[email protected]> Date: Wed Nov 13 14:39:24 2019 +0000 Version v7.5.1 commit 5a8e8c61ea4e5bb8aa7b77bae786d9158269af37 Author: Mark Stacey <[email protected]> Date: Wed Nov 13 11:03:11 2019 -0400 Reject connection request on window close (#7401) This was first implemented in #7335, but the final version didn't work because the `_beforeUnload` handler was not bound early, so `this` was not defined when it was triggered. commit 4b4c00e94fbb2f38746521864a568aab1400aac4 Author: Mark Stacey <[email protected]> Date: Wed Nov 13 11:02:59 2019 -0400 Revert "Use common test build during CI (#7196)" (#7404) This reverts commit b0ec610908f41157b31f8e6c76ae35c87c43509d, which was introduced in #7196. This change was preventing the sourcemaps from being uploaded correctly. commit 9df268cdf1c524d8510cd44ece2fdf5b4a7d0df1 Merge: 6acd5cec3 c594bb340 Author: Mark Stacey <[email protected]> Date: Wed Nov 13 10:39:47 2019 -0400 Merge pull request #7403 from MetaMask/master Master/Develop release parity. commit 6acd5cec370ba10515b189cfa7c3d7f31ebf1cfc Author: Dan J Miller <[email protected]> Date: Wed Nov 13 09:11:21 2019 -0500 Get prop for signed typed data from domain instead of message (#7402) commit ce7f5166c829dc0d7a95c4129424a070d321a293 Author: Erik Marks <[email protected]> Date: Tue Nov 12 13:29:56 2019 -0800 Update json-rpc-engine (#7390) * update json-rpc-engine * update lockfile resolution commit c594bb340d2f069b9db5115df23c6294091a1618 Merge: 41e834f88 aeabdfdf5 Author: Thomas Huang <[email protected]> Date: Tue Nov 12 11:52:19 2019 -0800 Merge pull request #7351 from MetaMask/Version-v7.5.0 Version v7.5.0 RC commit 069a24c1b94b828d4a2bf7401c8bfe4b11db1405 Author: Thomas Huang <[email protected]> Date: Mon Nov 11 13:18:57 2019 -0800 Revert "Adds Wyre Widget (#6434)" (#7385) This reverts commit 6a4df0dc3f620ef0bfe4c1255c1f791390b4280a. commit aeabdfdf51ab3060db1a75583cd05131e8cc712f Author: Mark Stacey <[email protected]> Date: Tue Nov 5 13:55:21 2019 -0400 Update changelog for v7.5.0 commit 2ac96919fc6ce1feca67690b9434528a69a6d8eb Author: MetaMask Bot <[email protected]> Date: Mon Nov 4 21:52:21 2019 +0000 Version v7.5.0 commit 50bd1830f07498b903333e2a5a525365a30e2ce7 Author: Thomas Huang <[email protected]> Date: Mon Nov 11 11:22:18 2019 -0800 Revert "Adds Wyre Widget (#6434)" This reverts commit 6a4df0dc3f620ef0bfe4c1255c1f791390b4280a. commit 78224601b981829345bf85dc40c0bd3f08fec57b Author: ricky <[email protected]> Date: Sun Nov 10 21:17:00 2019 -0500 Fix grid-template-columns (#7366) * Fix grid-template-columns * Add fullscreen check commit 728115171e12cb9953a6b1f8ed16a9f213e44ed1 Author: Mark Stacey <[email protected]> Date: Sun Nov 10 21:15:59 2019 -0500 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. commit 66187333b134d1bb818586bb4432bcb86cc93209 Author: Mark Stacey <[email protected]> Date: Sun Nov 10 21:15:50 2019 -0500 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. commit 42279c474bbb0b1cb83a3b2521cc8356a376e816 Author: Mark Stacey <[email protected]> Date: Sun Nov 10 21:15:38 2019 -0500 Set default advanced tab gas limit (#7379) * Set default advanced tab gas limit The advanced tab of the transaction confirmation screen would enter into an infinite loop and crash if the given gas price was falsy and some interaction was made with the gas limit field. To prevent this infinite loop, a default value of 0 has been set. The user will still need to update the gas limit in order to confirm the transaction, as zero is too low a gas limit (the lowest is 21000). 21000 cannot be the default gas limit at this layer, because the limit used is from a layer above this, which wouldn't have that same 21000 set. * Set default gas limit to minimum allowed A transaction initiated from a dapp might not set a gas limit, which would result in a default of zero being used in the advanced tab. The default gas limit in that case has been changed to 21,000, the minimum allowed gas limit, so that users aren't forced to manually update it. commit a8175eb799935d9f7e3a0cb74269e78d7cfc5874 Author: Mark Stacey <[email protected]> Date: Sun Nov 10 21:14:53 2019 -0500 Fix advanced tab gas chart (#7380) The gas chart on the advanced tab was not converting the gas price selected into hex before setting it in state, resulting in the UI throwing errors and the price being set incorrectly. It now converts in the same manner as the input fields. commit efe240195bc15889f4f27510694128bfe27bed48 Author: matteopey <[email protected]> Date: Sun Nov 10 08:43:36 2019 +0100 Hide accounts dropdown scrollbars on Firefox (#7374) commit ec1f3fa19a2261b04a034ea104e1c04c3acb1439 Author: Mark Stacey <[email protected]> Date: Sun Nov 10 01:30:07 2019 -0500 Fix threebox last updated proptype (#7375) * Use child components for multiple notifications component The multiple notifications component has been updated to take its child components as children rather than as a props array, so that the child components are never executed in the case where they aren't needed. * Fix threebox last updated proptype commit 02aebc2e03d045f919d790de9fc0c5d8b7e2f698 Author: ricky <[email protected]> Date: Wed Nov 6 12:04:44 2019 -0500 Add onbeforeunload and have it call onCancel (#7335) * Add onbeforeunload and have it call onCancel * Address PR feedback * Get integration tests passing again * Add underscores * Add ENVIRONMENT_TYPE_NOTIFICATION check * Add _beforeUnload + metricsEvent commit b27b568c32ee78d7928838eb0ad4421f6ed54579 Author: Whymarrh Whitby <[email protected]> Date: Wed Nov 6 12:33:49 2019 -0330 Update to [email protected] (#7357) commit adb2b0aab40b5647ad61ccaf587fa6019adedad9 Merge: 9ed01dff7 41e834f88 Author: Thomas Huang <[email protected]> Date: Tue Nov 5 09:43:28 2019 -0800 Merge pull request #7353 from MetaMask/master-parity Develop parity with master/release 7.4.0 commit 9ed01dff7adf03bcaea0cf3ed4dcab2e94943135 Author: hjlee9182 <[email protected]> Date: Wed Nov 6 00:31:28 2019 +0900 fix account menu width (#7354) commit 2673eef3c4f88876d095d0e20e0e21bc312a2af7 Author: Dan J Miller <[email protected]> Date: Tue Nov 5 11:43:48 2019 -0330 Redesign approve screen (#7271) * Redesign approve screen * Add translations to approve screen components * Show account in header of approve screen * Use state prop bool for unlimited vs custom check in edit-approval-permission * Set option to custom on input change in edit-approval-permission * Allow setting of approval amount to unlimited in edit-approval-permission * Fix height of confirm-approval popup * Ensure decimals prop passted to confirm-approve.component is correct type * Ensure first param passed to calcTokenValue in confirm-approve.util is the correct type * Fix e2e test of permission editing * Remove unused code from edit-approval-permission.container commit 41e834f88c12a05c371464de972be706b744e708 Merge: 06dc3b260 05b007aa3 Author: Thomas Huang <[email protected]> Date: Mon Nov 4 15:39:57 2019 -0800 Merge pull request #7323 from MetaMask/Version-v7.4.0 Version v7.4.0 RC commit 05b007aa358c47f5d74560c0d1229fd4f9175e82 Author: Mark Stacey <[email protected]> Date: Mon Nov 4 17:28:50 2019 -0400 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. commit 99b8f2d5445ba2604516c064757b257774066b4d Author: Mark Stacey <[email protected]> Date: Mon Nov 4 17:28:50 2019 -0400 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. commit eef570cf952b4be8d430fe25869295851f9fe291 Author: hjlee9182 <[email protected]> Date: Tue Nov 5 04:08:17 2019 +0900 fix width in first time flow button (#7348) commit dbd14d796c4cc1f0d42fbe58a096c3e41d5590a5 Author: Mark Stacey <[email protected]> Date: Mon Nov 4 14:03:57 2019 -0400 Clear `beforeunload` handler after button is pressed (#7346) On the signature request and transaction confirmation notification pages, the closure of the notification UI implies that the request has been rejected. However, this rejection is being submitted even when the window is closed as a result of the user explicitly confirming or rejecting. In practice, I suspect this has no effect because the transaction, after being explicitly confirmed or rejected, has already been moved out of a pending state. But just in case there is some present or future edge case that might be affected, the `beforeunload` handler is now removed once the user has explicitly made a choice. This mistake was introduced recently in #7333 commit 6a4df0dc3f620ef0bfe4c1255c1f791390b4280a Author: Dan J Miller <[email protected]> Date: Mon Nov 4 11:13:24 2019 -0330 Adds Wyre Widget (#6434) * Adds Wyre widget to the deposit modal. * Move wyre widget code to vendor directory * Get Wyre widget working without metamask connect/sign steps * Code cleanup for wyre changes * Change wyre widget to using prod environment * Remove code allowing signing of wyre messages without confirmations * Update wyre vendor code for wyre 2.0 * Remove unnecessary changes to provider approval constructor, triggerUI and openPopup * Fix Wyre translation message * Delete no longer used signature-request-modal * Fix documentation of matches function in utils/util.js * Code cleanup on wyre branch * Remove front end code changes not needed to support wyre v2 commit 57a29668f3caf3716fb99b904a53ec71cbce6ecb Author: Terry Smith <[email protected]> Date: Mon Nov 4 08:40:46 2019 -0400 New signature request v3 UI (#6891) * Refactoring signature-request out to a new component. Wip * Styling polish and a better message display. * Update signature request header to no longer use account dropdown mini * Clean up code and styles * Code cleanup for signature request redesign branch * Fix signature request design for full screen * Replace makenode with object.entries in signature-request-message.component.js * Remove unused accounts prop from signature-request.component.js * Use beforeunload instead of window.onbeforeunload in signature-request commit eed4a9ed6547c76299da086916168c48a4e8fef4 Author: Whymarrh Whitby <[email protected]> Date: Fri Nov 1 15:24:00 2019 -0230 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 commit 0138b0f9bde1256e7d79fae50bdd529b6d22333f Author: Mark Stacey <[email protected]> Date: Wed Oct 30 15:34:23 2019 -0300 Update Changelog for v7.4.0 commit dcd3b059dfb0e75a7cdf145c06ab6232bc3cecf9 Author: MetaMask Bot <[email protected]> Date: Tue Oct 29 16:13:53 2019 +0000 Version v7.4.0 commit 5455b8e3fd288dea6aa85091032de7ac68860dc5 Author: Whymarrh Whitby <[email protected]> Date: Thu Oct 31 21:56:02 2019 -0230 Add web3 deprecation warning (#7334) * Add web3 deprecation warning * Update web3 deprecation article URL commit f9cd775eae5195f1d7ca4ba7c81f77cdda402ac5 Author: Kristian Tapia <[email protected]> Date: Thu Oct 31 18:51:28 2019 -0700 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 commit 6bd87e1f0937691e5eed6b92659c6b5e54164b9a Author: Whymarrh Whitby <[email protected]> Date: Thu Oct 31 21:56:02 2019 -0230 Add web3 deprecation warning (#7334) * Add web3 deprecation warning * Update web3 deprecation article URL commit 30606327f0b773600f6c226815a4392c6868dd23 Author: Filip Š <[email protected]> Date: Thu Oct 31 19:37:06 2019 +0100 Add support for ZeroNet (#7038) commit fe28e0d13427ec5847b2099a946b9388b2ac4cd2 Author: Mark Stacey <[email protected]> Date: Thu Oct 31 13:27:22 2019 -0300 Cleanup beforeunload handler after transaction is resolved (#7333) * Cleanup beforeunload handler after transaction is resolved The notification window was updated to reject transactions upon close in #6340. A handler that rejects the transaction was added to `window.onbeforeunload`, and it was cleared in `actions.js` if it was confirmed or rejected. However, the `onbeforeunload` handler remained uncleared if the transaction was resolved in another window. This results in the transaction being rejected when the notification window closes, even long after the transaction is submitted and confirmed. This has been the cause of many problems with the Firefox e2e tests. Instead the `onbeforeunload` handler is cleared in the `componentWillUnmount` lifecycle function, alongside where it's set in the first place. This ensures that it's correctly unset regardless of how the transaction was resolved, and it better matches user expectations. * Fix indentation and remove redundant export The `run-all.sh` Bash script now uses consistent indentation, and is consistent about only re-exporting the Ganache arguments when they change. * Ensure transactions are completed before checking balance Various intermittent e2e test failures appear to be caused by React re-rendering the transaction list during the test, as the transaction goes from pending to confirmed. To avoid this race condition, the transaction is now explicitly looked for in the confirmed transaction list in each of the tests using this pattern. * Enable all e2e tests on Firefox The remaining tests that were disabled on Firefox now work correctly. Only a few timing adjustments were needed. * Update Firefox used in CI Firefox v70 is now used on CI instead of v68. This necessitated rewriting the function where the extension ID was obtained because the Firefox extensions page was redesigned. commit 19965985ad9bbc12853da7f3943b86e37aae0db2 Author: Mark Stacey <[email protected]> Date: Wed Oct 30 22:31:04 2019 -0300 Update `ethereumjs-util` (#7332) `ethereumjs-util` is now pinned at `5.1.0`, instead of at the commit `ac5d0908536b447083ea422b435da27f26615de9`. That commit immediately preceded v5.1.0, so there are no functional differences. This was done mainly to remove our last GitHub/git dependency, and to make it more obvious which version we're using. commit 514be408f8eef60b27b79743d6525bf60a354ce4 Author: Frankie <[email protected]> Date: Wed Oct 30 12:15:54 2019 -1000 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 commit 51e5220d5eaa08f5a39100cdf1e9c31f55a91969 Author: Frankie <[email protected]> Date: Wed Oct 30 11:40:33 2019 -1000 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 commit ab0eae1ed3f3890eb564a770dcae930b42a2691f Author: Mark Stacey <[email protected]> Date: Wed Oct 30 16:18:57 2019 -0300 Rename ConfirmPageContainerHeader class (#7322) The class has been renamed to reflect that it is a header, to avoid having the same name as the `ConfirmPageContainer` component. Multiple components with the same name can lead to confusing error messages. commit 5d843db5338eb07038ddea1054ca8cc991cc1b04 Author: Erik Marks <[email protected]> Date: Tue Oct 29 18:38:00 2019 -0700 Update eth-json-rpc-filters (#7325) * update eth-json-rpc-filters * update gaba commit bed58dd7d9aa359fe6e5dced7edaf5ff116d83fa Merge: fd0f6bbeb 9d793015d Author: Thomas Huang <[email protected]> Date: Tue Oct 29 18:17:36 2019 -0700 Merge pull request #7326 from MetaMask/edit-contact Edit contact details fix. commit 9d793015d39b2483ac190b53ada93e1b43d136a8 Author: Thomas <[email protected]> Date: Tue Oct 29 17:55:10 2019 -0700 Add static defaultProps commit d90b3feab809002629c9317dda1e221dad521a2d Author: Thomas <[email protected]> Date: Tue Oct 29 16:42:56 2019 -0700 Add back placeholder addAlias for nickname commit cbd1d47559a9113a4a72b383447a570205c7a79b Author: Thomas <[email protected]> Date: Tue Oct 29 16:21:18 2019 -0700 Allow removing of contact details to change details. commit df8b825a671b67733777b0a53420de506292d2be Author: Thomas <[email protected]> Date: Tue Oct 29 16:14:18 2019 -0700 Adjust copy-to-clipboard svg width and height on edit contact screen commit fd0f6bbeb6484a7969dc67bb7cc9c4fc3edbab2c Merge: 8dfb0e815 9285a10be Author: Thomas Huang <[email protected]> Date: Tue Oct 29 11:23:59 2019 -0700 Merge pull request #7324 from MetaMask/delete-contact Adds the chainId to remove accounts from state commit 9285a10be661573cd5298cdc21c794fdd25c8d0f Author: Thomas <[email protected]> Date: Tue Oct 29 10:53:51 2019 -0700 Adds the chainId to remove accounts from state commit 8dfb0e8154d258d5c20ee4d7fd0c5b9e478478d6 Author: Mark Stacey <[email protected]> Date: Tue Oct 29 13:14:41 2019 -0300 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. commit 71817795766693742f59572c0e4781baca301cc4 Author: ricky <[email protected]> Date: Tue Oct 29 12:12:41 2019 -0400 Refactor `new-account.js` (#7312) * Start refactor * Use import syntax * Add create-account.component * Continue refactor * Add new line * Start using JSX and make tabs a bit more DRY * :wave: bye-bye hyperscript * These can be disabled when active * Start JSX in new account component * :wave: bye-bye hyperscript * Move newAccountNumber into container * Validate newAccountNumber prop commit 95618d2cdb27e6d89a2e6b51f04dc1932a7ed818 Author: Whymarrh Whitby <[email protected]> Date: Tue Oct 29 00:36:38 2019 -0230 Update caniuse-lite dep (#7321) commit b89d96e61a13be0c125eab199cb19f1306fc25bb Author: Dan J Miller <[email protected]> Date: Mon Oct 28 20:48:33 2019 -0230 Specify row height in grid template of transaction list items to fix status spacing issue (#7319) commit af888d0ab24f1ba5bdbbee807fd769ab37f47741 Author: ricky <[email protected]> Date: Mon Oct 28 09:28:46 2019 -0400 Add "Retry" option for failed transactions (#7296) * Begin mocking out retry ui * Remove "Failed" * I guess this works? * Update corresponding test * wip * Ok, this appears to be working now * cleanup * Move this back to 3 * I don't think I need this * Rename showRetry to showSpeedUp * Address PR feedback * Remove notes * Rename shouldShowRetry -> shouldShowSpeedUp * oops commit c8878f46d47247918e25d19ab8bb7973dd59ef27 Author: Whymarrh Whitby <[email protected]> Date: Fri Oct 25 11:39:56 2019 -0230 Remove unused design files (#7313) commit 478d6563f289b73e782bba6e854deab8fe6a923b Author: Erik Marks <[email protected]> Date: Thu Oct 24 06:54:32 2019 -0700 Freeze Promise global on boot (#7309) * freeze background and UI Promise globals on boot * add new tests * remove tape commit 5f4cce13f00501b1a841e1a87aed68289b46c261 Author: Sirius Tsou <[email protected]> Date: Thu Oct 24 19:49:48 2019 +0800 correct the zh-TW translation (#7306) commit 41ec11da0b83d20022a069a92e4ad43e0fcefe6e Merge: adb50d135 5f53e4b67 Author: Thomas Huang <[email protected]> Date: Wed Oct 23 13:12:17 2019 -0700 Merge pull request #7310 from MetaMask/signedTypedData-test-adjustment Stub signTypedMessage commit 5f53e4b67e06c9c60bba97ad54de904552baf9d1 Author: Thomas <[email protected]> Date: Wed Oct 23 12:43:22 2019 -0700 Remove async commit 94a4b4d7dbfabb5809815dd9658b9ed31ade6890 Author: Thomas <[email protected]> Date: Wed Oct 23 12:09:27 2019 -0700 Stub signTypedMessage commit adb50d1357fa555db3a6b1f80ce5db531f3b166a Author: Mark Stacey <[email protected]> Date: Wed Oct 23 14:00:16 2019 -0300 Fix flaky e2e tests (#7307) * Add a delay after connecting This addresses an intermittent test failure where the MetaMask Notification window cannot be found. It appears to be caused by the Send button being clicked too soon after connecting to a dapp, before the background has had a chance to process the approval. The premature send is ignored and the window never appears. This delay (2 seconds) should be sufficient time for the connection to be processed. A later 5-second delay was also reduced to 2 seconds. * Select onboarding buttons by button text The onboarding buttons were being selected using the classname, which was common to all onboarding buttons. This resulting in buttons being selected just before a page transition, leading to an error about the element reference being stale when a click was attempted. The CSS class selectors have been replaced by text selectors, which are more specific and shouldn't be at risk of resolving early. They're also easier to read. * Remove retypeSeedPhrase function This function was used to re-type the seed phrase in the event that a failure occurred when confirming the seed phrase. I'm not sure what failure this was meant to address exactly, but this contingency hasn't been needed for some time. We can tell that it hasn't been used because it wasn't updated for the incremental account security changes, so it couldn't have worked since then (it would have clicked the wrong button). commit 5c8048fcc1ab0fe0249e9cb61af97682899754ad Merge: ba25d5267 25076da9c Author: Dan Finlay <[email protected]> Date: Wed Oct 23 09:43:57 2019 -0700 Merge pull request #7304 from MetaMask/routeTypedSignaturesToKeyrings Move signTypedData signing out to keyrings commit ba25d52670c38fd9379b70d21dc14af0a6d47b9d Author: Mark Stacey <[email protected]> Date: Wed Oct 23 09:23:15 2019 -0300 Use `AdvancedGasInputs` in `AdvancedTabContent` (#7186) * Use `AdvancedGasInputs` in `AdvancedTabContent` The `AdvancedGasInputs` component was originally extracted from the `AdvancedTabContent` component, duplicating much of the rendering logic. They have since evolved separately, with bugs being fixed in one place but not the other. The inputs and outputs expected weren't exactly the same, as the `AdvancedGasInputs` component converts the input custom gas price and limit, and it converts them both in the setter methods as well. The `GasModalPageContainer` had to be adjusted to avoid converting these values multiple times. Both components dealt with input debouncing separately, both in less than ideal ways. `AdvancedTabContent` didn't debounce either field, but it did debounce the check for whether the gas limit field was below the minimum value. So if a less-than-minimum value was set, it would be propogated upwards and could be saved if the user clicked 'Save' quickly enough. After a second delay it would snap back to the minimum value. The `AdvancedGasInputs` component debounced both fields, but it would replace any gas limit below the minimum with the minimum value. This led to a problem where a brief pause during typing would reset the field to 21000. The `AdvancedGasInputs` approach was chosen, except that it was updated to no longer change the gas limit if it was below the minimum. Instead it displays an error. Parent components were checked to ensure they would detect the error case of the gas limit being set too low, and prevent the form submission in those cases. Of the three parents, one had already dealt with it correctly, one needed to convert the gas limit from hex first, and another needed the gas limit check added. Closes #6872 * Cleanup send components Empty README files have been removed, and a mistake in the index file for the send page has been corrected. The Gas Slider component class name was updated as well; it looks like it was originally created from `AdvancedTabContent`, so it still had that class name. commit 3acd1db0beb2cd9730311afe5d35977b87fc7d78 Merge: aecc85998 4d6ce8cee Author: Thomas Huang <[email protected]> Date: Tue Oct 22 18:12:48 2019 -0700 Merge pull request #7222 from MetaMask/background-controller-tests Background / Controller tests. commit aecc85998152d59a267e02bed08991a92f56edeb Merge: 27d67558f 06dc3b260 Author: Thomas Huang <[email protected]> Date: Tue Oct 22 17:51:55 2019 -0700 Merge pull request #7303 from MetaMask/master Sync develop with master commit 4d6ce8ceebfd3c2adf1fad45da97406e4844e948 Author: Thomas <[email protected]> Date: Tue Oct 22 17:23:18 2019 -0700 Use async/await commit 25076da9cbab44b71465984fcaec64d3cced83ba Author: Dan Finlay <[email protected]> Date: Wed Oct 23 08:59:20 2019 +0900 Remove unused dependency commit 3eee9a2458c71087bd68682239754869f97e785a Author: Dan Finlay <[email protected]> Date: Wed Oct 23 08:47:15 2019 +0900 Linted commit d26a8e7f82938e59b7d6b1668d3b480246e3da49 Author: Dan Finlay <[email protected]> Date: Tue Oct 22 14:53:25 2019 -0700 Allow non strigified typed data params commit a8aca0a3265bdbeb4d92dab872cd96f4b4f0ec4e Merge: 4b4bee77c 27d67558f Author: Dan Finlay <[email protected]> Date: Tue Oct 22 14:51:21 2019 -0700 Merge remote-tracking branch 'upstream/develop' into routeTypedSignaturesToKeyrings commit 27d67558fcb929af5b708055ed2f1144fd15f0da Author: Mark Stacey <[email protected]> Date: Tue Oct 22 16:29:21 2019 -0300 Update `superagent-proxy` to address security advisory (#7301) Security advisory: https://www.npmjs.com/advisories/1184 This advisory was already addressed in #7289 but subsequent releases have made this simpler resolution possible. commit 4b4bee77c708b18531179f1574f1058455c13ff8 Author: Dan Finlay <[email protected]> Date: Tue Oct 22 11:33:49 2019 -0700 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. commit 06dc3b260aa93150b63bd4b102671c03d68e6f3d Merge: 32f20587a 6bdf6e07d Author: Dan Finlay <[email protected]> Date: Tue Oct 22 10:08:46 2019 -0700 Merge pull request #7299 from MetaMask/Version-v7.3.1 Version v7.3.1 RC commit 55bc9936c67832ab86c6558d832ee6598b1861a5 Author: Dan J Miller <[email protected]> Date: Mon Oct 21 21:29:02 2019 -0230 Turn off full screen vs popup a/b test (#7298) commit 6bdf6e07dbd152be6661d58ba8252ce686b4ca4e Author: MetaMask Bot <[email protected]> Date: Mon Oct 21 23:10:57 2019 +0000 Version v7.3.1 commit 225b6a98e0ea34954daaaed1640a677d0b8ba480 Author: Dan Miller <[email protected]> Date: Mon Oct 21 20:40:03 2019 -0230 Update changelog for v7.3.1 commit 51cc2faf56aae41d146046e2aa46220ea20b528a Author: Dan Miller <[email protected]> Date: Mon Oct 21 20:21:25 2019 -0230 Turn off full screen vs popup a/b test commit 2a81083f14257bebcd9c9d5cb76910dd29e42d39 Author: tmashuang <[email protected]> Date: Thu Sep 26 11:52:51 2019 -0700 MM controller additions, balance controller, typedMessageManager, and addtional actions tests commit 4f9ea17185a72464e5f0cbafcc1f12a679f861c3 Merge: 994a8a316 32f20587a Author: Dan Finlay <[email protected]> Date: Tue Oct 22 03:08:55 2019 +0900 Merge pull request #7295 from MetaMask/master Sync develop with master commit 32f20587ace3aa7bb47aeeee78de21da65053dff Merge: bafcbc90a ebc876454 Author: Dan Finlay <[email protected]> Date: Tue Oct 22 01:57:53 2019 +0900 Merge pull request #7223 from MetaMask/Version-v7.3.0 Version v7.3.0 RC commit 994a8a31678af49cf9014dcecf0cb77affada909 Author: Dan J Miller <[email protected]> Date: Mon Oct 21 14:23:26 2019 -0230 Add metrics events for clicking and saving tx speed ups (#7275) commit ebc876454e1ec6ae5b86c2aa84cedcb65d4c5a63 Author: Mark Stacey <[email protected]> Date: Fri Sep 27 10:53:09 2019 -0600 Update v7.3.0 changelog commit a5035d49fc4633ec09a48ffc7e2308dd370a95b5 Author: MetaMask Bot <[email protected]> Date: Fri Sep 27 04:32:45 2019 +0000 Version v7.3.0 commit 4d4126d4708da23409438853fe36413e351a442a Author: Mark Stacey <[email protected]> Date: Mon Oct 21 09:16:21 2019 -0300 Update `https-proxy-agent` as per security advisory (#7289) Security advisory: https://www.npmjs.com/advisories/1184 The package `pac-proxy-agent` (which we use via `pubnub`) hasn't released an update yet, so we're forced to use a resolution for the time being. The updated version appears to be compatible. commit 4ad42d8374a83fda23cff37dddb70de26c89e8df Author: Mark Stacey <[email protected]> Date: Mon Oct 21 09:16:21 2019 -0300 Update `https-proxy-agent` as per security advisory (#7289) Security advisory: https://www.npmjs.com/advisories/1184 The package `pac-proxy-agent` (which we use via `pubnub`) hasn't released an update yet, so we're forced to use a resolution for the time being. The updated version appears to be compatible. commit 06536b1d0f4778297b405c03e2b53909cf8b0e13 Author: Whymarrh Whitby <[email protected]> Date: Fri Oct 18 13:35:32 2019 -0230 Fix phishing detect script (#7287) commit a646bfb5069a77023cfc260dfa79921f9dbfa29d Author: Thomas Huang <[email protected]> Date: Thu Oct 17 09:03:14 2019 -0700 Lessen the length of ENS validation to 3 (#7285) commit 9d9f3685bb58cd7b134345318aed10511df94920 Author: Thomas Huang <[email protected]> Date: Thu Oct 17 08:25:37 2019 -0700 Prevent Logout Timer that's longer than a week. (#7253) commit 3d1f214cb094cc835142ece4178278f8d92c9b64 Author: Whymarrh Whitby <[email protected]> Date: Wed Oct 16 22:01:19 2019 -0230 Remove trailing commas from JSON files (#7284) commit f1c774d8f319ac6aac9952dccc01792f4d4a0b27 Author: Dan J Miller <[email protected]> Date: Wed Oct 9 12:11:18 2019 -0230 Handle empty fetch response (#7111) commit ee913edf9f680d9b1e460d574ae6f7348aab1020 Author: Mark O'Sullivan <[email protected]> Date: Wed Oct 9 13:30:48 2019 +0100 fix issue of xyz ens not resolving (#7266) commit 4a7292ad5461435a7fb369e5c9bbdab6269d0c22 Merge: 1a0b0ce7c 08a7308b0 Author: Mark Stacey <[email protected]> Date: Tue Oct 8 21:15:37 2019 -0300 Merge pull request #7269 from MetaMask/master-parity Master => develop commit 08a7308b049d53c56f227d1edca59cf515bc4173 Merge: 1a0b0ce7c bafcbc90a Author: Mark Stacey <[email protected]> Date: Tue Oct 8 20:26:21 2019 -0300 Merge branch 'master' into develop * master: (34 commits) Update changelog for v7.2.3 Fix e2e tests and gas default (#7267) Do not transate on seed phrases test:integration - fix renamed test data file lint fix test:e2e - fix bail condition test:e2e - fix responsie argument test:e2e - refactor missed spec file test:e2e - only overwrite window.fetch once per session test:e2e - rework fetch-mocks test:e2e - add extra delay before closing popups test:e2e - factor out prepareExtensionForTesting test - e2e - dedupe fetchMocking + compose script as fn Ensure correct tx category when sending to contracts without tx data (#7252) Version v7.2.3 Add v7.2.2 to changelog Update minimum Firefox verison to 56.0 (#7213) Version v7.2.2 Update changelog for v7.2.1, v7.2.0, and v7.1.1 Add `appName` message to each locale ... commit bafcbc90afe5ce8df846781a928e264bdb51b118 Merge: f1111fe40 a8bd527d7 Author: Dan Finlay <[email protected]> Date: Wed Oct 9 07:43:45 2019 +0900 Merge pull request #7251 from MetaMask/Version-v7.2.3 Version v7.2.3 RC commit a8bd527d7287feb3e1d456edeba60b6968d6ab7c Author: Dan Miller <[email protected]> Date: Fri Oct 4 16:29:12 2019 -0230 Update changelog for v7.2.3 commit 4ed452e6ede368a364b704fa0362a5a5883fb28b Author: Dan J Miller <[email protected]> Date: Tue Oct 8 14:44:20 2019 -0230 Fix e2e tests and gas default (#7267) * Add extra delay after second send3eth.click() in the 'adds multiple transactions' test * Remove use of ARBITRARY_HIGH_BLOCK_GAS_LIMIT as fallback commit e7bf250eabfd5ce95fdda02d66c53406d98762f1 Author: Thomas <[email protected]> Date: Mon Oct 7 10:45:12 2019 -0700 Do not transate on seed phrases commit 4a7c7dcda6bcd45da86a75f44eaf8e206cf5e5b6 Author: kumavis <[email protected]> Date: Wed Sep 11 00:13:21 2019 +0800 test:integration - fix renamed test data file commit e6b4f88d17bdbd01737bb365c4f35905c58e078f Author: kumavis <[email protected]> Date: Wed Sep 11 00:11:49 2019 +0800 lint fix commit e283ff181e4d39dc0b47c766863a6dc7ff2919f7 Author: kumavis <[email protected]> Date: Tue Sep 10 23:45:43 2019 +0800 test:e2e - fix bail condition commit cd62cc190160328bc9259379f3c817aafd247402 Author: kumavis <[email protected]> Date: Tue Sep 10 23:43:59 2019 +0800 test:e2e - fix responsie argument commit 7e3f1263f21147cae75c1fb69ee36a6e5b7a41c9 Author: kumavis <[email protected]> Date: Tue Sep 10 23:43:41 2019 +0800 test:e2e - refactor missed spec file commit 133ba76785f99961b244c9882df2d2cfa3bc2d55 Author: kumavis <[email protected]> Date: Tue Sep 10 23:10:24 2019 +0800 test:e2e - only overwrite window.fetch once per session commit 11e1c3b95d829dd13a4c4c421047b6c50dde3058 Author: kumavis <[email protected]> Date: Tue Sep 10 23:04:03 2019 +0800 test:e2e - rework fetch-mocks commit 56dae017a98e8b8859ec89c0cb702240a86cb2e5 Author: kumavis <[email protected]> Date: Tue Sep 10 19:53:21 2019 +0800 test:e2e - add extra delay before closing popups commit d43a78432fe650ccfd3082bfbef02ecaf870551b Author: kumavis <[email protected]> Date: Sat Sep 7 15:13:58 2019 +0800 test:e2e - factor out prepareExtensionForTesting commit 54491974ec140f2344ffdee6d46b4cfbcc2e1c56 Author: kumavis <[email protected]> Date: Sat Sep 7 14:44:22 2019 +0800 test - e2e - dedupe fetchMocking + compose script as fn commit b884cd573cd417e17f7a522cbc249759f1e63bc4 Author: Dan J Miller <[email protected]> Date: Mon Oct 7 16:59:37 2019 -0230 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 commit 1a0b0ce7c792fe9c4a87090b9b34a082425b17e5 Author: Dan J Miller <[email protected]> Date: Tue Oct 8 14:44:20 2019 -0230 Fix e2e tests and gas defa…
05e6848
to
a46baad
Compare
I appreciate the organization of this PR! Highlighting important files is very nice. This is a large enough (breaking) change that we should couple it with a migration guide, a full migration of the examples, and then send that guide out to our devs (keybase, telegram, plugin beta email, maybe even twitter). > Try it out with any example in snaps-cli, they should all work with a build of this branch Wait, I thought this was a very breaking change. How do the examples still work? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good. Left some notes, one in particular could really improve performance, but nothing that needs to block, although I would advise against merging until we have a migration guide & sample snaps & external comms lined up for this.
// occur during the process | ||
result[pluginName] = { | ||
...result[pluginName], | ||
...(await this.pluginsController.processRequestedPlugin(pluginName)), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Installing several plugins at once, especially over what could be a very high-latency protocol like IPFS, is a great time to use Promise.all()
over a for of
loop with await
calls. Allows parallelization.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm, we can't make any guarantees about installation order if we do that, although I don't think we need to.
The reason I did it that way was to construct the result object, although looking at it with fresh eyes, I'm not sure there's any reason I couldn't accomplish the same with with await Promise.all(...)
...
I'll give it a shot and see.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think I got a functional implementation! await Promise.all(...)
worked, I just needed to fix some UX hiccups that resulted from it.
return new Promise((resolve, _) => { | ||
const req = { method: 'eth_accounts' } | ||
const res = {} | ||
this.permissions.providerMiddlewareFunction( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure feels like we should have an easier convenience method for triggering a middleware function, eh? We did export an engine
related to the origin
on the initial request, I partly think we should be storing a weak reference to it so we could just call engine.send(req, cb)
.
Not a blocker, just pointing out where we're bending over backwards to do something a little strange.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, you mean storing the PermissionsController
middleware engines weakly by origin? I'm definitely not against it; that's what we do in LoginPerSite
in metamask-controller
in order to send notifications to external domains.
However, I think what we're currently doing there is more performant, because it bypasses the rest of the middleware stack to just hit the CapabilitiesController
's middleware function. Or am I missing something?
Edit: Although to your point, this definitely looks and feels hacky, and we should probably fix ourselves a better way of doing it.
} else { | ||
// this should never happen | ||
res.error = ethErrors.rpc.internal( | ||
'Accounts unexpectedly unavailable. Please report this bug.' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would hope this would hit sentry. I assume this is LoginPerSite, not new stuff?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, that's right. It's purely a defensive measure. It will hit sentry if RPC errors hit sentry, which I assume they do?
|
||
try { | ||
// we expect the params to be the same as wallet_requestPermissions | ||
result.permissions = await requestPermissions( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Naturally this is also another place where batching would be very valuable, as the popup closing/opening is painfully slow. Not a blocker, just a note (in case it works cheaply).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, I see the point, but in this particular case the permissions request must be fully resolved before we can continue, unless we're saying that a dapp can (1) request a plugin, (2) be denied access to the plugin, and (3) still cause the plugin to be installed.
Summary
Fixes #27, Fixes #94
Tightens up plugin permissions request flow, and makes working with plugins and permissions more ergonomic for dapp/plugin developers. Includes a much more recent rebase on
develop
andLoginPerSite
, without UI changes. (I may break that off into its own PR for review purposes.)Note that this PR includes a merge of
LoginPerSite
updates before they were merged intometamask-extension#develop
, excludingLoginPerSite-ui
. I apologize for this.Important Files to Review
Review Notes
permissions/permissions.js
topermissions/index.js
, perLoginPerSite
. Some of its functionality was moved to the plugin controller, otherwise behavioral changes are minimal in the controller file itself.New Plugin Installation Flow
1.
The external domain requests permissions usingwallet_enable
We've added syntactic sugar to
IRequestedPermissions
in the form of thewallet_plugin
permission (just that string, not a prefix). Whereas the value of a normal permission is currently{}
, the value ofwallet_plugin
isIRequestedPlugins
, which closely resemblesIRequestedPermissions
:Here's an example call:
Note that plugins can also be installed using the
wallet_installPlugins
method, if the dapp has permissions to interact with the plugin:IResolvedPlugins
is an object of plugin name keys to objects with plugin metadata, currently only the name of its corresponding permission, under the keypermission
.2.
The extension processes thewallet_enable
requestThis is implemented in the permission controller's
methodMiddleware
. This method:wallet_plugin
sugar into actual permissionswallet_enable
return object, with information about permissions, plugins, and accountserror
propertyNotes
snaps-cli
, they should all work with a build of this branch