[FLASK] `snaps-skunkworks@0.19.0` (#15619)

* Bump snaps-skunkworks to 0.19.0

* Improve snap_getBip32Entropy UI

* Remove console.log

* Update LavaMoat policy

* Dedupe Yarn lock

* Update LavaMoat policy again

* Fix tests

* Update policies and e2e tests

* Update policy again

* Update iframe-execution-environment

* Dedupe yarn.lock

* Update snapshots

* Fix PR comments

* Add TODO

* Trigger CI
feature/default_network_editable
Maarten Zuidhoorn 2 years ago committed by GitHub
parent fc23cff03c
commit a52c6a4908
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      app/_locales/en/messages.json
  2. 1
      app/scripts/controllers/permissions/flask/snap-permissions.test.js
  3. 7
      app/scripts/controllers/permissions/specifications.js
  4. 7
      app/scripts/controllers/permissions/specifications.test.js
  5. 3
      app/scripts/metamask-controller.js
  6. 8
      lavamoat/browserify/beta/policy.json
  7. 304
      lavamoat/browserify/flask/policy.json
  8. 8
      lavamoat/browserify/main/policy.json
  9. 1
      lavamoat/build-system/policy.json
  10. 6
      package.json
  11. 1
      shared/constants/permissions.ts
  12. 2
      test/e2e/snaps/test-snap-bip-44.spec.js
  13. 2
      ui/components/app/flask/snap-install-warning/snap-install-warning.js
  14. 6
      ui/components/app/permissions-connect-permission-list/index.scss
  15. 55
      ui/components/app/permissions-connect-permission-list/permissions-connect-permission-list.js
  16. 26
      ui/helpers/utils/permission.js
  17. 42
      ui/pages/permissions-connect/flask/snap-install/snap-install.js
  18. 169
      yarn.lock

@ -2577,6 +2577,10 @@
"message": "Run indefinitely.", "message": "Run indefinitely.",
"description": "The description for the `endowment:long-running` permission" "description": "The description for the `endowment:long-running` permission"
}, },
"permission_manageBip32Keys": {
"message": "Control your accounts and assets under $1 ($2).",
"description": "The description for the `snap_getBip32Entropy_*` permission. $1 is a derivation path, e.g. 'm/44'/0'/0''. $2 is the elliptic curve name, e.g. 'secp256k1'."
},
"permission_manageBip44Keys": { "permission_manageBip44Keys": {
"message": "Control your \"$1\" accounts and assets.", "message": "Control your \"$1\" accounts and assets.",
"description": "The description for the `snap_getBip44Entropy_*` permission. $1 is the name of a protocol, e.g. 'Filecoin'." "description": "The description for the `snap_getBip44Entropy_*` permission. $1 is the name of a protocol, e.g. 'Filecoin'."

@ -31,7 +31,6 @@ describe('buildSnapRestrictedMethodSpecifications', () => {
expect(specification).toMatchObject({ expect(specification).toMatchObject({
targetKey: expect.stringMatching(/^(snap_|wallet_)/u), targetKey: expect.stringMatching(/^(snap_|wallet_)/u),
methodImplementation: expect.any(Function), methodImplementation: expect.any(Function),
allowedCaveats: null,
}); });
}); });
}); });

@ -1,4 +1,7 @@
import { constructPermission, PermissionType } from '@metamask/controllers'; import { constructPermission, PermissionType } from '@metamask/controllers';
///: BEGIN:ONLY_INCLUDE_IN(flask)
import { caveatSpecifications as snapsCaveatsSpecifications } from '@metamask/rpc-methods';
///: END:ONLY_INCLUDE_IN
import { import {
CaveatTypes, CaveatTypes,
RestrictedMethods, RestrictedMethods,
@ -63,6 +66,10 @@ export const getCaveatSpecifications = ({ getIdentities }) => {
validator: (caveat, _origin, _target) => validator: (caveat, _origin, _target) =>
validateCaveatAccounts(caveat.value, getIdentities), validateCaveatAccounts(caveat.value, getIdentities),
}, },
///: BEGIN:ONLY_INCLUDE_IN(flask)
...snapsCaveatsSpecifications,
///: END:ONLY_INCLUDE_IN
}; };
}; };

@ -15,10 +15,15 @@ describe('PermissionController specifications', () => {
describe('caveat specifications', () => { describe('caveat specifications', () => {
it('getCaveatSpecifications returns the expected specifications object', () => { it('getCaveatSpecifications returns the expected specifications object', () => {
const caveatSpecifications = getCaveatSpecifications({}); const caveatSpecifications = getCaveatSpecifications({});
expect(Object.keys(caveatSpecifications)).toHaveLength(1); expect(Object.keys(caveatSpecifications)).toHaveLength(2);
expect( expect(
caveatSpecifications[CaveatTypes.restrictReturnedAccounts].type, caveatSpecifications[CaveatTypes.restrictReturnedAccounts].type,
).toStrictEqual(CaveatTypes.restrictReturnedAccounts); ).toStrictEqual(CaveatTypes.restrictReturnedAccounts);
// TODO: Use `SnapCaveatType` from `rpc-methods` when it's exported.
expect(caveatSpecifications.permittedDerivationPaths.type).toStrictEqual(
'permittedDerivationPaths',
);
}); });
describe('restrictReturnedAccounts', () => { describe('restrictReturnedAccounts', () => {

@ -649,7 +649,7 @@ export default class MetamaskController extends EventEmitter {
///: BEGIN:ONLY_INCLUDE_IN(flask) ///: BEGIN:ONLY_INCLUDE_IN(flask)
this.snapExecutionService = new IframeExecutionService({ this.snapExecutionService = new IframeExecutionService({
iframeUrl: new URL( iframeUrl: new URL(
'https://metamask.github.io/iframe-execution-environment/0.5.2', 'https://metamask.github.io/iframe-execution-environment/0.6.0',
), ),
messenger: this.controllerMessenger.getRestricted({ messenger: this.controllerMessenger.getRestricted({
name: 'ExecutionService', name: 'ExecutionService',
@ -679,6 +679,7 @@ export default class MetamaskController extends EventEmitter {
'ExecutionService:getRpcRequestHandler', 'ExecutionService:getRpcRequestHandler',
'ExecutionService:terminateSnap', 'ExecutionService:terminateSnap',
'ExecutionService:terminateAllSnaps', 'ExecutionService:terminateAllSnaps',
'ExecutionService:handleRpcRequest',
], ],
}); });

@ -681,7 +681,6 @@
"3box>ipfs>ipfs-unixfs": true, "3box>ipfs>ipfs-unixfs": true,
"3box>ipfs>ipfs-unixfs-importer>async-iterator-batch": true, "3box>ipfs>ipfs-unixfs-importer>async-iterator-batch": true,
"3box>ipfs>ipfs-unixfs-importer>async-iterator-first": true, "3box>ipfs>ipfs-unixfs-importer>async-iterator-first": true,
"3box>ipfs>ipfs-unixfs-importer>deep-extend": true,
"3box>ipfs>ipfs-unixfs-importer>rabin-wasm": true, "3box>ipfs>ipfs-unixfs-importer>rabin-wasm": true,
"3box>ipfs>ipld-dag-pb": true, "3box>ipfs>ipld-dag-pb": true,
"3box>ipfs>ipld-raw>multihashing-async": true, "3box>ipfs>ipld-raw>multihashing-async": true,
@ -692,11 +691,6 @@
"madge>rc>deep-extend": true "madge>rc>deep-extend": true
} }
}, },
"3box>ipfs>ipfs-unixfs-importer>deep-extend": {
"packages": {
"browserify>buffer": true
}
},
"3box>ipfs>ipfs-unixfs-importer>rabin-wasm": { "3box>ipfs>ipfs-unixfs-importer>rabin-wasm": {
"globals": { "globals": {
"Blob": true, "Blob": true,
@ -4469,6 +4463,7 @@
}, },
"eth-lattice-keyring>gridplus-sdk": { "eth-lattice-keyring>gridplus-sdk": {
"globals": { "globals": {
"ActiveXObject": true,
"AggregateError": true, "AggregateError": true,
"Buffer": true, "Buffer": true,
"DO_NOT_EXPORT_CRC": true, "DO_NOT_EXPORT_CRC": true,
@ -4484,6 +4479,7 @@
"console": true, "console": true,
"crypto": true, "crypto": true,
"define": true, "define": true,
"document": true,
"intToBuffer": true, "intToBuffer": true,
"location": true, "location": true,
"msCrypto": true, "msCrypto": true,

@ -681,7 +681,6 @@
"3box>ipfs>ipfs-unixfs": true, "3box>ipfs>ipfs-unixfs": true,
"3box>ipfs>ipfs-unixfs-importer>async-iterator-batch": true, "3box>ipfs>ipfs-unixfs-importer>async-iterator-batch": true,
"3box>ipfs>ipfs-unixfs-importer>async-iterator-first": true, "3box>ipfs>ipfs-unixfs-importer>async-iterator-first": true,
"3box>ipfs>ipfs-unixfs-importer>deep-extend": true,
"3box>ipfs>ipfs-unixfs-importer>rabin-wasm": true, "3box>ipfs>ipfs-unixfs-importer>rabin-wasm": true,
"3box>ipfs>ipld-dag-pb": true, "3box>ipfs>ipld-dag-pb": true,
"3box>ipfs>ipld-raw>multihashing-async": true, "3box>ipfs>ipld-raw>multihashing-async": true,
@ -692,11 +691,6 @@
"madge>rc>deep-extend": true "madge>rc>deep-extend": true
} }
}, },
"3box>ipfs>ipfs-unixfs-importer>deep-extend": {
"packages": {
"browserify>buffer": true
}
},
"3box>ipfs>ipfs-unixfs-importer>rabin-wasm": { "3box>ipfs>ipfs-unixfs-importer>rabin-wasm": {
"globals": { "globals": {
"Blob": true, "Blob": true,
@ -2195,6 +2189,189 @@
"browserify>browser-resolve": true "browserify>browser-resolve": true
} }
}, },
"@babel/code-frame": {
"globals": {
"console.warn": true
},
"packages": {
"browserify>process": true,
"lavamoat>@babel/highlight": true
}
},
"@babel/core": {
"globals": {
"console.log": true
},
"packages": {
"@babel/code-frame": true,
"@babel/core>@ampproject/remapping": true,
"@babel/core>@babel/generator": true,
"@babel/core>@babel/helper-compilation-targets": true,
"@babel/core>@babel/helper-module-transforms": true,
"@babel/core>@babel/helpers": true,
"@babel/core>@babel/parser": true,
"@babel/core>@babel/template": true,
"@babel/core>@babel/types": true,
"@babel/core>gensync": true,
"@babel/core>semver": true,
"browserify": true,
"browserify>path-browserify": true,
"browserify>process": true,
"depcheck>@babel/traverse": true,
"madge>debug": true,
"nyc>convert-source-map": true
}
},
"@babel/core>@ampproject/remapping": {
"globals": {
"define": true
},
"packages": {
"@babel/core>@ampproject/remapping>@jridgewell/gen-mapping": true,
"@babel/core>@ampproject/remapping>@jridgewell/trace-mapping": true
}
},
"@babel/core>@ampproject/remapping>@jridgewell/gen-mapping": {
"globals": {
"define": true
},
"packages": {
"@babel/core>@babel/generator>@jridgewell/gen-mapping>@jridgewell/set-array": true,
"@babel/core>@babel/generator>@jridgewell/gen-mapping>@jridgewell/sourcemap-codec": true
}
},
"@babel/core>@ampproject/remapping>@jridgewell/trace-mapping": {
"globals": {
"define": true
},
"packages": {
"@babel/core>@ampproject/remapping>@jridgewell/trace-mapping>@jridgewell/resolve-uri": true,
"@babel/core>@babel/generator>@jridgewell/gen-mapping>@jridgewell/sourcemap-codec": true
}
},
"@babel/core>@ampproject/remapping>@jridgewell/trace-mapping>@jridgewell/resolve-uri": {
"globals": {
"define": true
}
},
"@babel/core>@babel/generator": {
"globals": {
"console.error": true
},
"packages": {
"@babel/core>@babel/generator>@jridgewell/gen-mapping": true,
"@babel/core>@babel/generator>jsesc": true,
"@babel/core>@babel/types": true,
"browserify>buffer": true
}
},
"@babel/core>@babel/generator>@jridgewell/gen-mapping": {
"globals": {
"define": true
},
"packages": {
"@babel/core>@ampproject/remapping>@jridgewell/trace-mapping": true,
"@babel/core>@babel/generator>@jridgewell/gen-mapping>@jridgewell/set-array": true,
"@babel/core>@babel/generator>@jridgewell/gen-mapping>@jridgewell/sourcemap-codec": true
}
},
"@babel/core>@babel/generator>@jridgewell/gen-mapping>@jridgewell/set-array": {
"globals": {
"define": true
}
},
"@babel/core>@babel/generator>@jridgewell/gen-mapping>@jridgewell/sourcemap-codec": {
"globals": {
"TextDecoder": true,
"define": true
},
"packages": {
"browserify>buffer": true
}
},
"@babel/core>@babel/generator>jsesc": {
"packages": {
"browserify>insert-module-globals>is-buffer": true
}
},
"@babel/core>@babel/helper-compilation-targets": {
"globals": {
"console.warn": true
},
"packages": {
"@babel/core>@babel/helper-compilation-targets>semver": true,
"@babel/preset-env>@babel/compat-data": true,
"@babel/preset-env>@babel/helper-validator-option": true,
"browserify>process": true,
"stylelint>autoprefixer>browserslist": true
}
},
"@babel/core>@babel/helper-compilation-targets>semver": {
"globals": {
"console": true
},
"packages": {
"browserify>process": true
}
},
"@babel/core>@babel/helper-module-transforms": {
"packages": {
"@babel/core>@babel/helper-module-transforms>@babel/helper-module-imports": true,
"@babel/core>@babel/helper-module-transforms>@babel/helper-simple-access": true,
"@babel/core>@babel/template": true,
"@babel/core>@babel/types": true,
"browserify>assert": true,
"browserify>path-browserify": true,
"depcheck>@babel/traverse": true,
"depcheck>@babel/traverse>@babel/helper-environment-visitor": true,
"depcheck>@babel/traverse>@babel/helper-split-export-declaration": true,
"lavamoat>@babel/highlight>@babel/helper-validator-identifier": true
}
},
"@babel/core>@babel/helper-module-transforms>@babel/helper-module-imports": {
"packages": {
"@babel/core>@babel/types": true,
"browserify>assert": true
}
},
"@babel/core>@babel/helper-module-transforms>@babel/helper-simple-access": {
"packages": {
"@babel/core>@babel/types": true
}
},
"@babel/core>@babel/helpers": {
"packages": {
"@babel/core>@babel/template": true,
"@babel/core>@babel/types": true,
"depcheck>@babel/traverse": true
}
},
"@babel/core>@babel/template": {
"packages": {
"@babel/code-frame": true,
"@babel/core>@babel/parser": true,
"@babel/core>@babel/types": true
}
},
"@babel/core>@babel/types": {
"globals": {
"console.trace": true
},
"packages": {
"@babel/core>@babel/types>@babel/helper-string-parser": true,
"@babel/core>@babel/types>to-fast-properties": true,
"browserify>process": true,
"lavamoat>@babel/highlight>@babel/helper-validator-identifier": true
}
},
"@babel/core>semver": {
"globals": {
"console": true
},
"packages": {
"browserify>process": true
}
},
"@babel/runtime": { "@babel/runtime": {
"globals": { "globals": {
"regeneratorRuntime": "write" "regeneratorRuntime": "write"
@ -3176,6 +3353,7 @@
"packages": { "packages": {
"@metamask/controllers": true, "@metamask/controllers": true,
"@metamask/rpc-methods>@metamask/key-tree": true, "@metamask/rpc-methods>@metamask/key-tree": true,
"@metamask/rpc-methods>@metamask/snap-utils": true,
"@metamask/rpc-methods>@metamask/utils": true, "@metamask/rpc-methods>@metamask/utils": true,
"@metamask/snap-controllers": true, "@metamask/snap-controllers": true,
"eth-rpc-errors": true "eth-rpc-errors": true
@ -3226,6 +3404,29 @@
"@metamask/rpc-methods>@metamask/key-tree>@scure/base": true "@metamask/rpc-methods>@metamask/key-tree>@scure/base": true
} }
}, },
"@metamask/rpc-methods>@metamask/snap-utils": {
"globals": {
"URL": true
},
"packages": {
"@babel/core": true,
"@babel/core>@babel/types": true,
"@metamask/rpc-methods>@metamask/snap-utils>ajv": true,
"@metamask/rpc-methods>@metamask/snap-utils>rfdc": true,
"browserify": true,
"browserify>buffer": true,
"browserify>crypto-browserify": true,
"browserify>events": true,
"browserify>path-browserify": true,
"eslint>fast-deep-equal": true,
"semver": true
}
},
"@metamask/rpc-methods>@metamask/snap-utils>rfdc": {
"packages": {
"browserify>buffer": true
}
},
"@metamask/rpc-methods>@metamask/utils": { "@metamask/rpc-methods>@metamask/utils": {
"packages": { "packages": {
"eslint>fast-deep-equal": true "eslint>fast-deep-equal": true
@ -3285,26 +3486,23 @@
"packages": { "packages": {
"@metamask/controllers": true, "@metamask/controllers": true,
"@metamask/providers>@metamask/object-multiplex": true, "@metamask/providers>@metamask/object-multiplex": true,
"@metamask/rpc-methods>@metamask/snap-utils": true,
"@metamask/rpc-methods>@metamask/utils": true, "@metamask/rpc-methods>@metamask/utils": true,
"@metamask/snap-controllers>@metamask/browser-passworder": true, "@metamask/snap-controllers>@metamask/browser-passworder": true,
"@metamask/snap-controllers>@metamask/execution-environments": true, "@metamask/snap-controllers>@metamask/execution-environments": true,
"@metamask/snap-controllers>@metamask/obs-store": true, "@metamask/snap-controllers>@metamask/obs-store": true,
"@metamask/snap-controllers>@metamask/post-message-stream": true, "@metamask/snap-controllers>@metamask/post-message-stream": true,
"@metamask/snap-controllers>ajv": true, "@metamask/snap-controllers>@xstate/fsm": true,
"@metamask/snap-controllers>concat-stream": true, "@metamask/snap-controllers>concat-stream": true,
"@metamask/snap-controllers>gunzip-maybe": true, "@metamask/snap-controllers>gunzip-maybe": true,
"@metamask/snap-controllers>json-rpc-middleware-stream": true, "@metamask/snap-controllers>json-rpc-middleware-stream": true,
"@metamask/snap-controllers>nanoid": true, "@metamask/snap-controllers>nanoid": true,
"@metamask/snap-controllers>readable-web-to-node-stream": true, "@metamask/snap-controllers>readable-web-to-node-stream": true,
"@metamask/snap-controllers>tar-stream": true, "@metamask/snap-controllers>tar-stream": true,
"browserify>buffer": true,
"browserify>crypto-browserify": true,
"eslint>fast-deep-equal": true,
"eth-rpc-errors": true, "eth-rpc-errors": true,
"json-rpc-engine": true, "json-rpc-engine": true,
"json-rpc-engine>@metamask/safe-event-emitter": true, "json-rpc-engine>@metamask/safe-event-emitter": true,
"pump": true, "pump": true
"semver": true
} }
}, },
"@metamask/snap-controllers>@metamask/browser-passworder": { "@metamask/snap-controllers>@metamask/browser-passworder": {
@ -3394,11 +3592,6 @@
"@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true
} }
}, },
"@metamask/snap-controllers>ajv": {
"packages": {
"eslint>fast-deep-equal": true
}
},
"@metamask/snap-controllers>concat-stream": { "@metamask/snap-controllers>concat-stream": {
"packages": { "packages": {
"@metamask/snap-controllers>concat-stream>readable-stream": true, "@metamask/snap-controllers>concat-stream>readable-stream": true,
@ -4536,6 +4729,40 @@
"browserify>stream-browserify": true "browserify>stream-browserify": true
} }
}, },
"depcheck>@babel/traverse": {
"globals": {
"console.log": true,
"console.trace": true
},
"packages": {
"@babel/code-frame": true,
"@babel/core>@babel/generator": true,
"@babel/core>@babel/parser": true,
"@babel/core>@babel/types": true,
"depcheck>@babel/traverse>@babel/helper-environment-visitor": true,
"depcheck>@babel/traverse>@babel/helper-function-name": true,
"depcheck>@babel/traverse>@babel/helper-hoist-variables": true,
"depcheck>@babel/traverse>@babel/helper-split-export-declaration": true,
"depcheck>@babel/traverse>globals": true,
"madge>debug": true
}
},
"depcheck>@babel/traverse>@babel/helper-function-name": {
"packages": {
"@babel/core>@babel/template": true,
"@babel/core>@babel/types": true
}
},
"depcheck>@babel/traverse>@babel/helper-hoist-variables": {
"packages": {
"@babel/core>@babel/types": true
}
},
"depcheck>@babel/traverse>@babel/helper-split-export-declaration": {
"packages": {
"@babel/core>@babel/types": true
}
},
"depcheck>@vue/compiler-sfc>postcss>nanoid": { "depcheck>@vue/compiler-sfc>postcss>nanoid": {
"globals": { "globals": {
"crypto.getRandomValues": true "crypto.getRandomValues": true
@ -4856,6 +5083,7 @@
}, },
"eth-lattice-keyring>gridplus-sdk": { "eth-lattice-keyring>gridplus-sdk": {
"globals": { "globals": {
"ActiveXObject": true,
"AggregateError": true, "AggregateError": true,
"Buffer": true, "Buffer": true,
"DO_NOT_EXPORT_CRC": true, "DO_NOT_EXPORT_CRC": true,
@ -4871,6 +5099,7 @@
"console": true, "console": true,
"crypto": true, "crypto": true,
"define": true, "define": true,
"document": true,
"intToBuffer": true, "intToBuffer": true,
"location": true, "location": true,
"msCrypto": true, "msCrypto": true,
@ -5868,6 +6097,26 @@
"browserify>url": true "browserify>url": true
} }
}, },
"lavamoat>@babel/highlight": {
"packages": {
"lavamoat>@babel/highlight>@babel/helper-validator-identifier": true,
"lavamoat>@babel/highlight>chalk": true,
"loose-envify>js-tokens": true
}
},
"lavamoat>@babel/highlight>chalk": {
"packages": {
"browserify>process": true,
"lavamoat>@babel/highlight>chalk>ansi-styles": true,
"lavamoat>@babel/highlight>chalk>supports-color": true,
"mocha>escape-string-regexp": true
}
},
"lavamoat>@babel/highlight>chalk>ansi-styles": {
"packages": {
"@metamask/jazzicon>color>color-convert": true
}
},
"lavamoat>json-stable-stringify": { "lavamoat>json-stable-stringify": {
"packages": { "packages": {
"lavamoat>json-stable-stringify>jsonify": true "lavamoat>json-stable-stringify>jsonify": true
@ -6000,6 +6249,18 @@
"ethjs-query": true "ethjs-query": true
} }
}, },
"nyc>convert-source-map": {
"packages": {
"browserify>browser-resolve": true,
"browserify>path-browserify": true,
"nyc>convert-source-map>safe-buffer": true
}
},
"nyc>convert-source-map>safe-buffer": {
"packages": {
"browserify>buffer": true
}
},
"obj-multiplex": { "obj-multiplex": {
"globals": { "globals": {
"console.warn": true "console.warn": true
@ -6581,6 +6842,15 @@
"string.prototype.matchall>call-bind": true "string.prototype.matchall>call-bind": true
} }
}, },
"stylelint>autoprefixer>browserslist": {
"packages": {
"browserify>browser-resolve": true,
"browserify>process": true,
"stylelint>autoprefixer>browserslist>electron-to-chromium": true,
"stylelint>autoprefixer>browserslist>node-releases": true,
"stylelint>autoprefixer>caniuse-lite": true
}
},
"stylelint>write-file-atomic>typedarray-to-buffer": { "stylelint>write-file-atomic>typedarray-to-buffer": {
"packages": { "packages": {
"browserify>buffer": true, "browserify>buffer": true,

@ -681,7 +681,6 @@
"3box>ipfs>ipfs-unixfs": true, "3box>ipfs>ipfs-unixfs": true,
"3box>ipfs>ipfs-unixfs-importer>async-iterator-batch": true, "3box>ipfs>ipfs-unixfs-importer>async-iterator-batch": true,
"3box>ipfs>ipfs-unixfs-importer>async-iterator-first": true, "3box>ipfs>ipfs-unixfs-importer>async-iterator-first": true,
"3box>ipfs>ipfs-unixfs-importer>deep-extend": true,
"3box>ipfs>ipfs-unixfs-importer>rabin-wasm": true, "3box>ipfs>ipfs-unixfs-importer>rabin-wasm": true,
"3box>ipfs>ipld-dag-pb": true, "3box>ipfs>ipld-dag-pb": true,
"3box>ipfs>ipld-raw>multihashing-async": true, "3box>ipfs>ipld-raw>multihashing-async": true,
@ -692,11 +691,6 @@
"madge>rc>deep-extend": true "madge>rc>deep-extend": true
} }
}, },
"3box>ipfs>ipfs-unixfs-importer>deep-extend": {
"packages": {
"browserify>buffer": true
}
},
"3box>ipfs>ipfs-unixfs-importer>rabin-wasm": { "3box>ipfs>ipfs-unixfs-importer>rabin-wasm": {
"globals": { "globals": {
"Blob": true, "Blob": true,
@ -4469,6 +4463,7 @@
}, },
"eth-lattice-keyring>gridplus-sdk": { "eth-lattice-keyring>gridplus-sdk": {
"globals": { "globals": {
"ActiveXObject": true,
"AggregateError": true, "AggregateError": true,
"Buffer": true, "Buffer": true,
"DO_NOT_EXPORT_CRC": true, "DO_NOT_EXPORT_CRC": true,
@ -4484,6 +4479,7 @@
"console": true, "console": true,
"crypto": true, "crypto": true,
"define": true, "define": true,
"document": true,
"intToBuffer": true, "intToBuffer": true,
"location": true, "location": true,
"msCrypto": true, "msCrypto": true,

@ -193,6 +193,7 @@
"process.env.BABEL_TYPES_8_BREAKING": true "process.env.BABEL_TYPES_8_BREAKING": true
}, },
"packages": { "packages": {
"@babel/core>@babel/types>@babel/helper-string-parser": true,
"@babel/core>@babel/types>to-fast-properties": true, "@babel/core>@babel/types>to-fast-properties": true,
"lavamoat>@babel/highlight>@babel/helper-validator-identifier": true "lavamoat>@babel/highlight>@babel/helper-validator-identifier": true
} }

@ -133,10 +133,10 @@
"@metamask/obs-store": "^5.0.0", "@metamask/obs-store": "^5.0.0",
"@metamask/post-message-stream": "^4.0.0", "@metamask/post-message-stream": "^4.0.0",
"@metamask/providers": "^9.0.0", "@metamask/providers": "^9.0.0",
"@metamask/rpc-methods": "^0.18.1", "@metamask/rpc-methods": "^0.19.0",
"@metamask/slip44": "^2.1.0", "@metamask/slip44": "^2.1.0",
"@metamask/smart-transactions-controller": "^2.3.0", "@metamask/smart-transactions-controller": "^2.3.0",
"@metamask/snap-controllers": "^0.18.1", "@metamask/snap-controllers": "^0.19.0",
"@ngraveio/bc-ur": "^1.1.6", "@ngraveio/bc-ur": "^1.1.6",
"@popperjs/core": "^2.4.0", "@popperjs/core": "^2.4.0",
"@reduxjs/toolkit": "^1.6.2", "@reduxjs/toolkit": "^1.6.2",
@ -298,8 +298,8 @@
"browser-util-inspect": "^0.2.0", "browser-util-inspect": "^0.2.0",
"browserify": "^16.5.1", "browserify": "^16.5.1",
"chalk": "^3.0.0", "chalk": "^3.0.0",
"chromedriver": "^103.0.0",
"chokidar": "^3.5.3", "chokidar": "^3.5.3",
"chromedriver": "^103.0.0",
"concurrently": "^5.2.0", "concurrently": "^5.2.0",
"copy-webpack-plugin": "^6.0.3", "copy-webpack-plugin": "^6.0.3",
"cross-spawn": "^7.0.3", "cross-spawn": "^7.0.3",

@ -8,6 +8,7 @@ export const RestrictedMethods = Object.freeze({
snap_confirm: 'snap_confirm', snap_confirm: 'snap_confirm',
snap_notify: 'snap_notify', snap_notify: 'snap_notify',
snap_manageState: 'snap_manageState', snap_manageState: 'snap_manageState',
snap_getBip32Entropy: 'snap_getBip32Entropy',
'snap_getBip44Entropy_*': 'snap_getBip44Entropy_*', 'snap_getBip44Entropy_*': 'snap_getBip44Entropy_*',
'wallet_snap_*': 'wallet_snap_*', 'wallet_snap_*': 'wallet_snap_*',
///: END:ONLY_INCLUDE_IN ///: END:ONLY_INCLUDE_IN

@ -69,7 +69,7 @@ describe('Test Snap bip-44', function () {
}); });
// deal with permissions popover // deal with permissions popover
await driver.delay(1000); await driver.delay(1000);
await driver.press('#key-access-0', driver.Key.SPACE); await driver.press('#key-access-bip44-0', driver.Key.SPACE);
await driver.clickElement({ await driver.clickElement({
text: 'Confirm', text: 'Confirm',
tag: 'button', tag: 'button',

@ -66,7 +66,7 @@ export default function SnapInstallWarning({ onCancel, onSubmit, warnings }) {
title={t('areYouSure')} title={t('areYouSure')}
footer={<SnapInstallWarningFooter />} footer={<SnapInstallWarningFooter />}
headerProps={{ padding: [6, 6, 0] }} headerProps={{ padding: [6, 6, 0] }}
contentProps={{ padding: [0, 6, 4] }} contentProps={{ padding: [6, 4] }}
footerProps={{ padding: [4, 6] }} footerProps={{ padding: [4, 6] }}
> >
<Typography variant={TYPOGRAPHY.H6} boxProps={{ paddingBottom: 4 }}> <Typography variant={TYPOGRAPHY.H6} boxProps={{ paddingBottom: 4 }}>

@ -14,11 +14,15 @@
i { i {
display: block; display: block;
padding: 16px; margin: 16px;
min-width: 16px; min-width: 16px;
min-height: 16px; min-height: 16px;
color: var(--color-icon-alternative); color: var(--color-icon-alternative);
font-size: 1rem; font-size: 1rem;
} }
} }
.permission-label-item {
font-weight: bold;
}
} }

@ -3,25 +3,52 @@ import PropTypes from 'prop-types';
import { getPermissionDescription } from '../../../helpers/utils/permission'; import { getPermissionDescription } from '../../../helpers/utils/permission';
import { useI18nContext } from '../../../hooks/useI18nContext'; import { useI18nContext } from '../../../hooks/useI18nContext';
/**
* Get one or more permission descriptions for a permission name.
*
* @param t - The translation function.
* @param permissionName - The name of the permission to request.
* @param permissionValue - The value of the permission to request.
* @returns {JSX.Element[]} An array of permission description nodes.
*/
function getDescriptionNodes(t, permissionName, permissionValue) {
const { label, leftIcon, rightIcon } = getPermissionDescription(
t,
permissionName,
permissionValue,
);
if (Array.isArray(label)) {
return label.map((labelValue, index) => (
<div className="permission" key={`${permissionName}-${index}`}>
<i className={leftIcon} />
{labelValue}
{rightIcon && <i className={rightIcon} />}
</div>
));
}
return [
<div className="permission" key={permissionName}>
<i className={leftIcon} />
{label}
{rightIcon && <i className={rightIcon} />}
</div>,
];
}
export default function PermissionsConnectPermissionList({ permissions }) { export default function PermissionsConnectPermissionList({ permissions }) {
const t = useI18nContext(); const t = useI18nContext();
return ( return (
<div className="permissions-connect-permission-list"> <div className="permissions-connect-permission-list">
{Object.keys(permissions).map((permission) => { {Object.entries(permissions).reduce(
const { label, leftIcon, rightIcon } = getPermissionDescription( (target, [permissionName, permissionValue]) =>
t, target.concat(
permission, getDescriptionNodes(t, permissionName, permissionValue),
); ),
[],
return ( )}
<div className="permission" key={permission}>
<i className={leftIcon} />
{label}
{rightIcon && <i className={rightIcon} />}
</div>
);
})}
</div> </div>
); );
} }

@ -1,4 +1,7 @@
import deepFreeze from 'deep-freeze-strict'; import deepFreeze from 'deep-freeze-strict';
///: BEGIN:ONLY_INCLUDE_IN(flask)
import React from 'react';
///: END:ONLY_INCLUDE_IN
import { import {
RestrictedMethods, RestrictedMethods,
///: BEGIN:ONLY_INCLUDE_IN(flask) ///: BEGIN:ONLY_INCLUDE_IN(flask)
@ -29,6 +32,20 @@ const PERMISSION_DESCRIPTIONS = deepFreeze({
label: (t) => t('permission_notifications'), label: (t) => t('permission_notifications'),
rightIcon: null, rightIcon: null,
}, },
[RestrictedMethods.snap_getBip32Entropy]: {
label: (t, _, permissionValue) => {
return permissionValue.caveats[0].value.map(({ path, curve }) =>
t('permission_manageBip32Keys', [
<span className="permission-label-item" key={path.join('/')}>
{path.join('/')}
</span>,
curve,
]),
);
},
leftIcon: 'fas fa-door-open',
rightIcon: null,
},
[RestrictedMethods['snap_getBip44Entropy_*']]: { [RestrictedMethods['snap_getBip44Entropy_*']]: {
label: (t, permissionName) => { label: (t, permissionName) => {
const coinType = permissionName.split('_').slice(-1); const coinType = permissionName.split('_').slice(-1);
@ -82,9 +99,14 @@ const PERMISSION_DESCRIPTIONS = deepFreeze({
/** /**
* @param {Function} t - The translation function * @param {Function} t - The translation function
* @param {string} permissionName - The name of the permission to request * @param {string} permissionName - The name of the permission to request
* @param {object} permissionValue - The value of the permission to request
* @returns {(permissionName:string) => PermissionLabelObject} * @returns {(permissionName:string) => PermissionLabelObject}
*/ */
export const getPermissionDescription = (t, permissionName) => { export const getPermissionDescription = (
t,
permissionName,
permissionValue,
) => {
let value = PERMISSION_DESCRIPTIONS[UNKNOWN_PERMISSION]; let value = PERMISSION_DESCRIPTIONS[UNKNOWN_PERMISSION];
if (Object.hasOwnProperty.call(PERMISSION_DESCRIPTIONS, permissionName)) { if (Object.hasOwnProperty.call(PERMISSION_DESCRIPTIONS, permissionName)) {
@ -98,5 +120,5 @@ export const getPermissionDescription = (t, permissionName) => {
} }
///: END:ONLY_INCLUDE_IN ///: END:ONLY_INCLUDE_IN
return { ...value, label: value.label(t, permissionName) }; return { ...value, label: value.label(t, permissionName, permissionValue) };
}; };

@ -44,7 +44,14 @@ export default function SnapInstall({
v.startsWith('snap_getBip44Entropy_'), v.startsWith('snap_getBip44Entropy_'),
); );
const shouldShowWarning = bip44EntropyPermissions?.length > 0; const bip32EntropyPermissions =
request.permissions &&
Object.entries(request.permissions)
.filter(([key]) => key === 'snap_getBip32Entropy')
.map(([, value]) => value);
const shouldShowWarning =
bip32EntropyPermissions?.length > 0 || bip44EntropyPermissions?.length > 0;
const getCoinType = (bip44EntropyPermission) => const getCoinType = (bip44EntropyPermission) =>
bip44EntropyPermission?.split('_').slice(-1); bip44EntropyPermission?.split('_').slice(-1);
@ -107,17 +114,28 @@ export default function SnapInstall({
<SnapInstallWarning <SnapInstallWarning
onCancel={() => setIsShowingWarning(false)} onCancel={() => setIsShowingWarning(false)}
onSubmit={onSubmit} onSubmit={onSubmit}
warnings={bip44EntropyPermissions.map((permission, i) => { warnings={[
const coinType = getCoinType(permission); ...bip32EntropyPermissions.flatMap((permission, i) =>
return { permission.caveats[0].value.map(({ path, curve }) => ({
id: `key-access-${i}`, id: `key-access-bip32-${path.join('/')}-${curve}-${i}`,
message: t('snapInstallWarningKeyAccess', [ message: t('snapInstallWarningKeyAccess', [
targetSubjectMetadata.name, targetSubjectMetadata.name,
coinTypeToProtocolName(coinType) || `${path.join('/')} (${curve})`,
t('unrecognizedProtocol', [coinType]), ]),
]), })),
}; ),
})} ...bip44EntropyPermissions.map((permission, i) => {
const coinType = getCoinType(permission);
return {
id: `key-access-bip44-${i}`,
message: t('snapInstallWarningKeyAccess', [
targetSubjectMetadata.name,
coinTypeToProtocolName(coinType) ||
t('unrecognizedProtocol', [coinType]),
]),
};
}),
]}
/> />
)} )}
</Box> </Box>

@ -123,21 +123,21 @@
semver "^5.4.1" semver "^5.4.1"
source-map "^0.5.0" source-map "^0.5.0"
"@babel/core@>=7.9.0", "@babel/core@^7.1.0", "@babel/core@^7.12.1", "@babel/core@^7.12.10", "@babel/core@^7.7.5": "@babel/core@>=7.9.0", "@babel/core@^7.1.0", "@babel/core@^7.12.1", "@babel/core@^7.12.10", "@babel/core@^7.18.6", "@babel/core@^7.7.5":
version "7.18.9" version "7.18.10"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.9.tgz#805461f967c77ff46c74ca0460ccf4fe933ddd59" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.10.tgz#39ad504991d77f1f3da91be0b8b949a5bc466fb8"
integrity sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g== integrity sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==
dependencies: dependencies:
"@ampproject/remapping" "^2.1.0" "@ampproject/remapping" "^2.1.0"
"@babel/code-frame" "^7.18.6" "@babel/code-frame" "^7.18.6"
"@babel/generator" "^7.18.9" "@babel/generator" "^7.18.10"
"@babel/helper-compilation-targets" "^7.18.9" "@babel/helper-compilation-targets" "^7.18.9"
"@babel/helper-module-transforms" "^7.18.9" "@babel/helper-module-transforms" "^7.18.9"
"@babel/helpers" "^7.18.9" "@babel/helpers" "^7.18.9"
"@babel/parser" "^7.18.9" "@babel/parser" "^7.18.10"
"@babel/template" "^7.18.6" "@babel/template" "^7.18.10"
"@babel/traverse" "^7.18.9" "@babel/traverse" "^7.18.10"
"@babel/types" "^7.18.9" "@babel/types" "^7.18.10"
convert-source-map "^1.7.0" convert-source-map "^1.7.0"
debug "^4.1.0" debug "^4.1.0"
gensync "^1.0.0-beta.2" gensync "^1.0.0-beta.2"
@ -160,12 +160,12 @@
dependencies: dependencies:
eslint-rule-composer "^0.3.0" eslint-rule-composer "^0.3.0"
"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.18.9": "@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.18.10":
version "7.18.9" version "7.18.12"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.9.tgz#68337e9ea8044d6ddc690fb29acae39359cca0a5" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.12.tgz#fa58daa303757bd6f5e4bbca91b342040463d9f4"
integrity sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug== integrity sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==
dependencies: dependencies:
"@babel/types" "^7.18.9" "@babel/types" "^7.18.10"
"@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/gen-mapping" "^0.3.2"
jsesc "^2.5.1" jsesc "^2.5.1"
@ -355,6 +355,11 @@
dependencies: dependencies:
"@babel/types" "^7.18.6" "@babel/types" "^7.18.6"
"@babel/helper-string-parser@^7.18.10":
version "7.18.10"
resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56"
integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==
"@babel/helper-validator-identifier@^7.18.6": "@babel/helper-validator-identifier@^7.18.6":
version "7.18.6" version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076"
@ -398,10 +403,10 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.4.tgz#d5f92f57cf2c74ffe9b37981c0e72fee7311372e" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.4.tgz#d5f92f57cf2c74ffe9b37981c0e72fee7311372e"
integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng== integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==
"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.10.1", "@babel/parser@^7.12.0", "@babel/parser@^7.12.11", "@babel/parser@^7.12.5", "@babel/parser@^7.12.7", "@babel/parser@^7.13.9", "@babel/parser@^7.18.6", "@babel/parser@^7.18.9": "@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.10.1", "@babel/parser@^7.12.0", "@babel/parser@^7.12.11", "@babel/parser@^7.12.5", "@babel/parser@^7.12.7", "@babel/parser@^7.13.9", "@babel/parser@^7.18.10", "@babel/parser@^7.18.11":
version "7.18.9" version "7.18.11"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.9.tgz#f2dde0c682ccc264a9a8595efd030a5cc8fd2539" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.11.tgz#68bb07ab3d380affa9a3f96728df07969645d2d9"
integrity sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg== integrity sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6":
version "7.18.6" version "7.18.6"
@ -1196,36 +1201,37 @@
dependencies: dependencies:
regenerator-runtime "^0.13.4" regenerator-runtime "^0.13.4"
"@babel/template@^7.12.7", "@babel/template@^7.18.6", "@babel/template@^7.3.3": "@babel/template@^7.12.7", "@babel/template@^7.18.10", "@babel/template@^7.18.6", "@babel/template@^7.3.3":
version "7.18.6" version "7.18.10"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.6.tgz#1283f4993e00b929d6e2d3c72fdc9168a2977a31" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71"
integrity sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw== integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==
dependencies: dependencies:
"@babel/code-frame" "^7.18.6" "@babel/code-frame" "^7.18.6"
"@babel/parser" "^7.18.6" "@babel/parser" "^7.18.10"
"@babel/types" "^7.18.6" "@babel/types" "^7.18.10"
"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.1", "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.5", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.18.9": "@babel/traverse@^7.1.0", "@babel/traverse@^7.10.1", "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.5", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.18.10", "@babel/traverse@^7.18.9":
version "7.18.9" version "7.18.11"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.9.tgz#deeff3e8f1bad9786874cb2feda7a2d77a904f98" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.11.tgz#3d51f2afbd83ecf9912bcbb5c4d94e3d2ddaa16f"
integrity sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg== integrity sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ==
dependencies: dependencies:
"@babel/code-frame" "^7.18.6" "@babel/code-frame" "^7.18.6"
"@babel/generator" "^7.18.9" "@babel/generator" "^7.18.10"
"@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-environment-visitor" "^7.18.9"
"@babel/helper-function-name" "^7.18.9" "@babel/helper-function-name" "^7.18.9"
"@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-hoist-variables" "^7.18.6"
"@babel/helper-split-export-declaration" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6"
"@babel/parser" "^7.18.9" "@babel/parser" "^7.18.11"
"@babel/types" "^7.18.9" "@babel/types" "^7.18.10"
debug "^4.1.0" debug "^4.1.0"
globals "^11.1.0" globals "^11.1.0"
"@babel/types@^7.0.0", "@babel/types@^7.11.5", "@babel/types@^7.12.0", "@babel/types@^7.12.11", "@babel/types@^7.12.7", "@babel/types@^7.13.0", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": "@babel/types@^7.0.0", "@babel/types@^7.11.5", "@babel/types@^7.12.0", "@babel/types@^7.12.11", "@babel/types@^7.12.7", "@babel/types@^7.13.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4":
version "7.18.9" version "7.18.10"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.9.tgz#7148d64ba133d8d73a41b3172ac4b83a1452205f" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.10.tgz#4908e81b6b339ca7c6b7a555a5fc29446f26dde6"
integrity sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg== integrity sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==
dependencies: dependencies:
"@babel/helper-string-parser" "^7.18.10"
"@babel/helper-validator-identifier" "^7.18.6" "@babel/helper-validator-identifier" "^7.18.6"
to-fast-properties "^2.0.0" to-fast-properties "^2.0.0"
@ -2988,15 +2994,15 @@
resolved "https://registry.yarnpkg.com/@metamask/etherscan-link/-/etherscan-link-2.1.0.tgz#c0be8e68445b7b83cf85bcc03a56cdf8e256c973" resolved "https://registry.yarnpkg.com/@metamask/etherscan-link/-/etherscan-link-2.1.0.tgz#c0be8e68445b7b83cf85bcc03a56cdf8e256c973"
integrity sha512-ADuWlTUkFfN2vXlz81Bg/0BA+XRor+CdK1055p6k7H6BLIPoDKn9SBOFld9haQFuR9cKh/JYHcnlSIv5R4fUEw== integrity sha512-ADuWlTUkFfN2vXlz81Bg/0BA+XRor+CdK1055p6k7H6BLIPoDKn9SBOFld9haQFuR9cKh/JYHcnlSIv5R4fUEw==
"@metamask/execution-environments@^0.18.1": "@metamask/execution-environments@^0.19.0":
version "0.18.1" version "0.19.0"
resolved "https://registry.yarnpkg.com/@metamask/execution-environments/-/execution-environments-0.18.1.tgz#46853241fc0dda4e92b358d56fea927745efef42" resolved "https://registry.yarnpkg.com/@metamask/execution-environments/-/execution-environments-0.19.0.tgz#e2e269bdf66bcac96e6fb6a8b105b04c3ad906ca"
integrity sha512-PnEPvcIBsNq2rYshrZePAPL3vGaWPrJyztHlSn+dP9vM2XR1M+Qc0/QrgGy6hnOidQIkhn2ZuFfsnm72dJFmUA== integrity sha512-nOUATeSwWY08CDTBBtYtt6EYtVCbiFiJuz64g1bkS+TS5cQte+w8fYgzRsOPXCMPkbqrO1+8RV+ZU6gujoAJHA==
dependencies: dependencies:
"@metamask/object-multiplex" "^1.2.0" "@metamask/object-multiplex" "^1.2.0"
"@metamask/post-message-stream" "^6.0.0" "@metamask/post-message-stream" "^6.0.0"
"@metamask/providers" "^9.0.0" "@metamask/providers" "^9.0.0"
"@metamask/snap-types" "^0.18.1" "@metamask/snap-types" "^0.19.0"
"@metamask/utils" "^2.0.0" "@metamask/utils" "^2.0.0"
eth-rpc-errors "^4.0.3" eth-rpc-errors "^4.0.3"
pump "^3.0.0" pump "^3.0.0"
@ -3119,16 +3125,17 @@
pump "^3.0.0" pump "^3.0.0"
webextension-polyfill-ts "^0.25.0" webextension-polyfill-ts "^0.25.0"
"@metamask/rpc-methods@^0.18.1": "@metamask/rpc-methods@^0.19.0":
version "0.18.1" version "0.19.0"
resolved "https://registry.yarnpkg.com/@metamask/rpc-methods/-/rpc-methods-0.18.1.tgz#7fa7ff15fd70f6e5ae9f06f0caa719683f52f4f3" resolved "https://registry.yarnpkg.com/@metamask/rpc-methods/-/rpc-methods-0.19.0.tgz#20a2dd159330fa1bac1999d59f4a0fec282bdeaa"
integrity sha512-ZBGeg1HOF/k+nSzi2oXvKM5nm8jjRtV3bc6m3db0hlsy12KooMkdy0Q8ZiOkkqLWn0g8ivvHdxXU7LNhPZ8eBw== integrity sha512-YAr6T4Gy46VoJBD17l+Tc2WbHcMce+TQWDf+29ifroi0pN9BLKvAakdHKeQ12EoJl8NHSrJNoHCqweyLkGiNXQ==
dependencies: dependencies:
"@metamask/controllers" "^30.0.0" "@metamask/controllers" "^30.0.0"
"@metamask/key-tree" "^4.0.0" "@metamask/key-tree" "^4.0.0"
"@metamask/snap-controllers" "^0.18.1" "@metamask/snap-controllers" "^0.19.0"
"@metamask/snap-utils" "^0.19.0"
"@metamask/types" "^1.1.0" "@metamask/types" "^1.1.0"
"@metamask/utils" "^2.0.0" "@metamask/utils" "^2.1.0"
eth-rpc-errors "^4.0.2" eth-rpc-errors "^4.0.2"
"@metamask/safe-event-emitter@^2.0.0": "@metamask/safe-event-emitter@^2.0.0":
@ -3154,26 +3161,25 @@
isomorphic-fetch "^3.0.0" isomorphic-fetch "^3.0.0"
lodash "^4.17.21" lodash "^4.17.21"
"@metamask/snap-controllers@^0.18.1": "@metamask/snap-controllers@^0.19.0":
version "0.18.1" version "0.19.0"
resolved "https://registry.yarnpkg.com/@metamask/snap-controllers/-/snap-controllers-0.18.1.tgz#081da8664436aed5d3a0ff5f682807de7424fcff" resolved "https://registry.yarnpkg.com/@metamask/snap-controllers/-/snap-controllers-0.19.0.tgz#6a17b38ec589b96f68a9c7d2747af4de34a05a3f"
integrity sha512-hoozCeKVV+HCMIPmDg2F5KcIyBEsbIFTM5xL4dmkf5i16+yWDkdNN2iCIfePk+gtpcWyUK6bsevOdu2KwVgEHg== integrity sha512-0062+XF+aGX3CEkHKtwj9BOmC8xBKvam+InkpuW7JxIbO5uiL2T+ZtJVkqUrs6q2ASRFV5aC4Jc4C5fJvUiIcg==
dependencies: dependencies:
"@metamask/browser-passworder" "^3.0.0" "@metamask/browser-passworder" "^3.0.0"
"@metamask/controllers" "^30.0.0" "@metamask/controllers" "^30.0.0"
"@metamask/execution-environments" "^0.18.1" "@metamask/execution-environments" "^0.19.0"
"@metamask/object-multiplex" "^1.1.0" "@metamask/object-multiplex" "^1.1.0"
"@metamask/obs-store" "^7.0.0" "@metamask/obs-store" "^7.0.0"
"@metamask/post-message-stream" "^6.0.0" "@metamask/post-message-stream" "^6.0.0"
"@metamask/safe-event-emitter" "^2.0.0" "@metamask/safe-event-emitter" "^2.0.0"
"@metamask/snap-utils" "^0.19.0"
"@metamask/utils" "^2.0.0" "@metamask/utils" "^2.0.0"
"@types/deep-freeze-strict" "^1.1.0" "@types/deep-freeze-strict" "^1.1.0"
"@types/semver" "^7.3.9" "@xstate/fsm" "^2.0.0"
ajv "^8.8.2"
concat-stream "^2.0.0" concat-stream "^2.0.0"
deep-freeze-strict "^1.1.1" deep-freeze-strict "^1.1.1"
eth-rpc-errors "^4.0.2" eth-rpc-errors "^4.0.2"
fast-deep-equal "^3.1.3"
gunzip-maybe "^1.4.2" gunzip-maybe "^1.4.2"
immer "^9.0.6" immer "^9.0.6"
json-rpc-engine "^6.1.0" json-rpc-engine "^6.1.0"
@ -3181,16 +3187,28 @@
nanoid "^3.1.31" nanoid "^3.1.31"
pump "^3.0.0" pump "^3.0.0"
readable-web-to-node-stream "^3.0.2" readable-web-to-node-stream "^3.0.2"
semver "^7.3.5"
tar-stream "^2.2.0" tar-stream "^2.2.0"
"@metamask/snap-types@^0.18.1": "@metamask/snap-types@^0.19.0":
version "0.18.1" version "0.19.0"
resolved "https://registry.yarnpkg.com/@metamask/snap-types/-/snap-types-0.18.1.tgz#3e5e07a14d69ae43b246ae1abb24d7d1d40eca0f" resolved "https://registry.yarnpkg.com/@metamask/snap-types/-/snap-types-0.19.0.tgz#ead590ecbb840cf2cd1c4feffbf8228ca87bc912"
integrity sha512-ri9vznetbO2TjZjWUqfONgXyPEXP9j8VBgU8xCxCqqiyCi/sMIwSCemp81wnDN+kt7m7zXlC8TmEV3MkSnqGmw== integrity sha512-8huwKsiM05mG8/V8/zvJ3xy555P1RPk1fs1znbJaGTYk3HAJVW2i3d95iOcM6Cs+zbTwsrFfGnO2yqH31anPgA==
dependencies: dependencies:
"@metamask/controllers" "^30.0.0" "@metamask/controllers" "^30.0.0"
"@metamask/snap-utils@^0.19.0":
version "0.19.0"
resolved "https://registry.yarnpkg.com/@metamask/snap-utils/-/snap-utils-0.19.0.tgz#226f4df5287996d3c09b1b139c30a7c9c78772d1"
integrity sha512-oPDrWbj3ggv/Tt09X1nDC0x42TLapHEYB1mR8/V2TULlcfzlL7oUDy/AxOA3sDDiX8hH2q3OA7Htcadj8PKlNw==
dependencies:
"@babel/core" "^7.18.6"
"@metamask/utils" "^2.0.0"
ajv "^8.11.0"
fast-deep-equal "^3.1.3"
rfdc "^1.3.0"
semver "^7.3.7"
ses "^0.15.17"
"@metamask/test-dapp@^5.2.0": "@metamask/test-dapp@^5.2.0":
version "5.2.0" version "5.2.0"
resolved "https://registry.yarnpkg.com/@metamask/test-dapp/-/test-dapp-5.2.0.tgz#ecae2525e7b4d5ef42b7f478b33e3a25152789f8" resolved "https://registry.yarnpkg.com/@metamask/test-dapp/-/test-dapp-5.2.0.tgz#ecae2525e7b4d5ef42b7f478b33e3a25152789f8"
@ -3201,10 +3219,10 @@
resolved "https://registry.yarnpkg.com/@metamask/types/-/types-1.1.0.tgz#9bd14b33427932833c50c9187298804a18c2e025" resolved "https://registry.yarnpkg.com/@metamask/types/-/types-1.1.0.tgz#9bd14b33427932833c50c9187298804a18c2e025"
integrity sha512-EEV/GjlYkOSfSPnYXfOosxa3TqYtIW3fhg6jdw+cok/OhMgNn4wCfbENFqjytrHMU2f7ZKtBAvtiP5V8H44sSw== integrity sha512-EEV/GjlYkOSfSPnYXfOosxa3TqYtIW3fhg6jdw+cok/OhMgNn4wCfbENFqjytrHMU2f7ZKtBAvtiP5V8H44sSw==
"@metamask/utils@^2.0.0": "@metamask/utils@^2.0.0", "@metamask/utils@^2.1.0":
version "2.0.0" version "2.1.0"
resolved "https://registry.yarnpkg.com/@metamask/utils/-/utils-2.0.0.tgz#fe7e970416a256751c429f4a5e96aec6c4366ba7" resolved "https://registry.yarnpkg.com/@metamask/utils/-/utils-2.1.0.tgz#a65eaa0932b863383844ec323e05e293d8e718ab"
integrity sha512-AZ63AhRxAZXll+/SEiyEXgrxuAL4yOj0ny4V36VgPmTDvt+7GrmVJWrQF3o5PZZWV6ooaHZ9291RZHRcKZm0HA== integrity sha512-4PHdo5B1ifpw6GbsdlDpp8oqA++rddSmt2pWBHtIGGL2tQMvmfHdaDDSns4JP9iC+AbMogVcUpv5Vt8ow1zsRA==
dependencies: dependencies:
fast-deep-equal "^3.1.3" fast-deep-equal "^3.1.3"
@ -5093,11 +5111,6 @@
dependencies: dependencies:
"@types/node" "*" "@types/node" "*"
"@types/semver@^7.3.9":
version "7.3.9"
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.9.tgz#152c6c20a7688c30b967ec1841d31ace569863fc"
integrity sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==
"@types/source-list-map@*": "@types/source-list-map@*":
version "0.1.2" version "0.1.2"
resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9"
@ -5555,6 +5568,11 @@
"@webassemblyjs/wast-parser" "1.9.0" "@webassemblyjs/wast-parser" "1.9.0"
"@xtuc/long" "4.2.2" "@xtuc/long" "4.2.2"
"@xstate/fsm@^2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@xstate/fsm/-/fsm-2.0.0.tgz#221db16b606df3f4675f5be6058b633ec4b8b44a"
integrity sha512-p/zcvBMoU2ap5byMefLkR+AM+Eh99CU/SDEQeccgKlmFNOMDwphaRGqdk+emvel/SaGZ7Rf9sDvzAplLzLdEVQ==
"@xtuc/ieee754@^1.2.0": "@xtuc/ieee754@^1.2.0":
version "1.2.0" version "1.2.0"
resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
@ -5936,7 +5954,7 @@ ajv-merge-patch@5.0.1:
fast-json-patch "^2.0.6" fast-json-patch "^2.0.6"
json-merge-patch "^1.0.2" json-merge-patch "^1.0.2"
ajv@8.11.0, ajv@^8.8.2: ajv@8.11.0, ajv@^8.11.0:
version "8.11.0" version "8.11.0"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f"
integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==
@ -24135,6 +24153,11 @@ rework@1.0.1:
convert-source-map "^0.3.3" convert-source-map "^0.3.3"
css "^2.0.0" css "^2.0.0"
rfdc@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b"
integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==
rimraf@2.6.3, rimraf@~2.6.2: rimraf@2.6.3, rimraf@~2.6.2:
version "2.6.3" version "2.6.3"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
@ -24720,10 +24743,10 @@ ses@0.12.4, ses@^0.12.4:
"@agoric/make-hardener" "^0.1.2" "@agoric/make-hardener" "^0.1.2"
"@agoric/transform-module" "^0.4.1" "@agoric/transform-module" "^0.4.1"
ses@^0.15.15: ses@^0.15.15, ses@^0.15.17:
version "0.15.15" version "0.15.17"
resolved "https://registry.yarnpkg.com/ses/-/ses-0.15.15.tgz#082923a1cabeac3151f9b3867e325fe447ce037d" resolved "https://registry.yarnpkg.com/ses/-/ses-0.15.17.tgz#84e20cd08fb294989c6499942d220bd6604e1884"
integrity sha512-sJM4HRlM3VouA3RhRmS7wG5MRQPqZZnc6O4BvAefU7yeM+qp8EUfGAWQ9iB/X5cNh3+m5N9lC7DEpyxQ+E4D+w== integrity sha512-T8XKsR5LGV57ilyqE4InFJKWVniEEFGai0CjuVJPju9LvnjYPXvZ7V8jP7sGtJ500ApRVgNBCu+5ZcSUhiuXig==
set-blocking@^2.0.0, set-blocking@~2.0.0: set-blocking@^2.0.0, set-blocking@~2.0.0:
version "2.0.0" version "2.0.0"

Loading…
Cancel
Save