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.
feature/default_network_editable
Mark Stacey 5 years ago committed by GitHub
parent 50e9c4e5ad
commit 95b4d91116
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      app/scripts/metamask-controller.js
  2. 2
      package.json
  3. 8
      yarn.lock

@ -367,7 +367,7 @@ module.exports = class MetamaskController extends EventEmitter {
const result = { const result = {
isUnlocked, isUnlocked,
isEnabled, isEnabled,
selectedAddress: isReady ? selectedAddress : undefined, selectedAddress: isReady ? selectedAddress : null,
networkVersion: network, networkVersion: network,
onboardingcomplete: completedOnboarding, onboardingcomplete: completedOnboarding,
chainId: selectChainId({ network, provider }), chainId: selectChainId({ network, provider }),

@ -115,7 +115,7 @@
"lodash.shuffle": "^4.2.0", "lodash.shuffle": "^4.2.0",
"loglevel": "^1.4.1", "loglevel": "^1.4.1",
"luxon": "^1.8.2", "luxon": "^1.8.2",
"metamask-inpage-provider": "^2.1.0", "metamask-inpage-provider": "^3.0.0",
"metamask-logo": "^2.1.4", "metamask-logo": "^2.1.4",
"mkdirp": "^0.5.1", "mkdirp": "^0.5.1",
"multihashes": "^0.4.12", "multihashes": "^0.4.12",

@ -14651,10 +14651,10 @@ mersenne-twister@^1.0.1:
resolved "https://registry.yarnpkg.com/mersenne-twister/-/mersenne-twister-1.1.0.tgz#f916618ee43d7179efcf641bec4531eb9670978a" resolved "https://registry.yarnpkg.com/mersenne-twister/-/mersenne-twister-1.1.0.tgz#f916618ee43d7179efcf641bec4531eb9670978a"
integrity sha1-+RZhjuQ9cXnvz2Qb7EUx65Zwl4o= integrity sha1-+RZhjuQ9cXnvz2Qb7EUx65Zwl4o=
metamask-inpage-provider@^2.1.0: metamask-inpage-provider@^3.0.0:
version "2.1.0" version "3.0.0"
resolved "https://registry.yarnpkg.com/metamask-inpage-provider/-/metamask-inpage-provider-2.1.0.tgz#69e23d63893a5e2bb7a09a6ec96c6f1500588673" resolved "https://registry.yarnpkg.com/metamask-inpage-provider/-/metamask-inpage-provider-3.0.0.tgz#3b9d4bae6f67962b6a7b1a9ee1efaf424f67b6f4"
integrity sha512-1+m8Mp8/RM9JMTvDHAMt6a7aqwigRMLvU/VKKmHQFi7AZaagG8Fe4wBe8HdAMysRF3NHV/qOMw0UwP3w9m1Vaw== integrity sha512-44bBCbQwcFF/XGaXSweCWHJaslKhJEFgvcHdxZf9Fm1QfK7VN4U3iAI0BVOLAIkRg0xV3w7xYGLpx2cM1BU7Qw==
dependencies: dependencies:
json-rpc-engine "^5.1.3" json-rpc-engine "^5.1.3"
json-rpc-middleware-stream "^2.1.1" json-rpc-middleware-stream "^2.1.1"

Loading…
Cancel
Save