[FLASK] `snaps-skunkworks@0.22.0` (#16069)

* snaps-skunkworks@0.22.0

* Update LavaMoat policies

* Bump execution environment and fix a breaking change

* Fix caveat and permissions

* Fix test

* Exclude keyring endowment for now

* Fix test

* Fix snap_confirm missing title
feature/default_network_editable
Frederik Bolding 2 years ago committed by seaona
parent 742fc1a1c6
commit 305574703d
  1. 9
      app/scripts/controllers/permissions/flask/snap-permissions.js
  2. 2
      app/scripts/controllers/permissions/specifications.js
  3. 5
      app/scripts/controllers/permissions/specifications.test.js
  4. 4
      app/scripts/metamask-controller.js
  5. 28
      lavamoat/browserify/beta/policy.json
  6. 52
      lavamoat/browserify/flask/policy.json
  7. 28
      lavamoat/browserify/main/policy.json
  8. 6
      package.json
  9. 5
      shared/constants/permissions.test.js
  10. 3
      shared/constants/permissions.ts
  11. 4
      ui/pages/confirmation/templates/flask/snap-confirm/snap-confirm.js
  12. 87
      yarn.lock

@ -3,7 +3,10 @@ import {
restrictedMethodPermissionBuilders, restrictedMethodPermissionBuilders,
selectHooks, selectHooks,
} from '@metamask/rpc-methods'; } from '@metamask/rpc-methods';
import { ExcludedSnapPermissions } from '../../../../../shared/constants/permissions'; import {
ExcludedSnapEndowments,
ExcludedSnapPermissions,
} from '../../../../../shared/constants/permissions';
/** /**
* @returns {Record<string, Record<string, unknown>>} All endowment permission * @returns {Record<string, Record<string, unknown>>} All endowment permission
@ -12,7 +15,9 @@ import { ExcludedSnapPermissions } from '../../../../../shared/constants/permiss
export const buildSnapEndowmentSpecifications = () => export const buildSnapEndowmentSpecifications = () =>
Object.values(endowmentPermissionBuilders).reduce( Object.values(endowmentPermissionBuilders).reduce(
(allSpecifications, { targetKey, specificationBuilder }) => { (allSpecifications, { targetKey, specificationBuilder }) => {
allSpecifications[targetKey] = specificationBuilder(); if (!ExcludedSnapEndowments.has(targetKey)) {
allSpecifications[targetKey] = specificationBuilder();
}
return allSpecifications; return allSpecifications;
}, },
{}, {},

@ -1,5 +1,6 @@
import { constructPermission, PermissionType } from '@metamask/controllers'; import { constructPermission, PermissionType } from '@metamask/controllers';
///: BEGIN:ONLY_INCLUDE_IN(flask) ///: BEGIN:ONLY_INCLUDE_IN(flask)
import { endowmentCaveatSpecifications as snapsEndowmentCaveatSpecifications } from '@metamask/snap-controllers';
import { caveatSpecifications as snapsCaveatsSpecifications } from '@metamask/rpc-methods'; import { caveatSpecifications as snapsCaveatsSpecifications } from '@metamask/rpc-methods';
///: END:ONLY_INCLUDE_IN ///: END:ONLY_INCLUDE_IN
import { import {
@ -69,6 +70,7 @@ export const getCaveatSpecifications = ({ getIdentities }) => {
///: BEGIN:ONLY_INCLUDE_IN(flask) ///: BEGIN:ONLY_INCLUDE_IN(flask)
...snapsCaveatsSpecifications, ...snapsCaveatsSpecifications,
...snapsEndowmentCaveatSpecifications,
///: END:ONLY_INCLUDE_IN ///: END:ONLY_INCLUDE_IN
}; };
}; };

@ -16,7 +16,7 @@ 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(3); expect(Object.keys(caveatSpecifications)).toHaveLength(4);
expect( expect(
caveatSpecifications[CaveatTypes.restrictReturnedAccounts].type, caveatSpecifications[CaveatTypes.restrictReturnedAccounts].type,
).toStrictEqual(CaveatTypes.restrictReturnedAccounts); ).toStrictEqual(CaveatTypes.restrictReturnedAccounts);
@ -27,6 +27,9 @@ describe('PermissionController specifications', () => {
expect(caveatSpecifications.permittedCoinTypes.type).toStrictEqual( expect(caveatSpecifications.permittedCoinTypes.type).toStrictEqual(
SnapCaveatType.PermittedCoinTypes, SnapCaveatType.PermittedCoinTypes,
); );
expect(caveatSpecifications.snapKeyring.type).toStrictEqual(
SnapCaveatType.SnapKeyring,
);
}); });
describe('restrictReturnedAccounts', () => { describe('restrictReturnedAccounts', () => {

@ -654,7 +654,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.8.0', 'https://metamask.github.io/iframe-execution-environment/0.9.0',
), ),
messenger: this.controllerMessenger.getRestricted({ messenger: this.controllerMessenger.getRestricted({
name: 'ExecutionService', name: 'ExecutionService',
@ -3744,7 +3744,7 @@ export default class MetamaskController extends EventEmitter {
), ),
getSnaps: this.controllerMessenger.call.bind( getSnaps: this.controllerMessenger.call.bind(
this.controllerMessenger, this.controllerMessenger,
'SnapController:getSnaps', 'SnapController:getPermittedSnaps',
origin, origin,
), ),
requestPermissions: async (requestedPermissions) => { requestPermissions: async (requestedPermissions) => {

@ -682,11 +682,11 @@
"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>rabin-wasm": true, "3box>ipfs>ipfs-unixfs-importer>rabin-wasm": true,
"3box>ipfs>ipfs-unixfs-importer>superstruct": 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,
"3box>ipfs>multicodec": true, "3box>ipfs>multicodec": true,
"3box>ipfs>multihashes": true, "3box>ipfs>multihashes": true,
"3box>ipfs>superstruct": true,
"browserify>buffer": true, "browserify>buffer": true,
"madge>rc>deep-extend": true "madge>rc>deep-extend": true
} }
@ -841,11 +841,11 @@
"3box>ipfs>libp2p>libp2p-floodsub": true, "3box>ipfs>libp2p>libp2p-floodsub": true,
"3box>ipfs>libp2p>libp2p-ping": true, "3box>ipfs>libp2p>libp2p-ping": true,
"3box>ipfs>libp2p>libp2p-switch": true, "3box>ipfs>libp2p>libp2p-switch": true,
"3box>ipfs>libp2p>superstruct": true,
"3box>ipfs>multiaddr": true, "3box>ipfs>multiaddr": true,
"3box>ipfs>peer-book": true, "3box>ipfs>peer-book": true,
"3box>ipfs>peer-id": true, "3box>ipfs>peer-id": true,
"3box>ipfs>peer-info": true, "3box>ipfs>peer-info": true,
"3box>ipfs>superstruct": true,
"browserify>events": true, "browserify>events": true,
"browserify>insert-module-globals>is-buffer": true, "browserify>insert-module-globals>is-buffer": true,
"browserify>process": true, "browserify>process": true,
@ -3091,20 +3091,13 @@
"setTimeout": true "setTimeout": true
}, },
"packages": { "packages": {
"@metamask/eth-json-rpc-infura>@metamask/utils": true,
"@metamask/eth-json-rpc-infura>eth-json-rpc-middleware": true, "@metamask/eth-json-rpc-infura>eth-json-rpc-middleware": true,
"eth-block-tracker>@metamask/utils": true,
"eth-rpc-errors": true, "eth-rpc-errors": true,
"json-rpc-engine": true, "json-rpc-engine": true,
"node-fetch": true "node-fetch": true
} }
}, },
"@metamask/eth-json-rpc-infura>@metamask/utils": {
"packages": {
"@metamask/eth-json-rpc-infura>@metamask/utils>superstruct": true,
"eslint>fast-deep-equal": true,
"nock>debug": true
}
},
"@metamask/eth-json-rpc-infura>eth-json-rpc-middleware": { "@metamask/eth-json-rpc-infura>eth-json-rpc-middleware": {
"globals": { "globals": {
"URL": true, "URL": true,
@ -4539,9 +4532,13 @@
} }
}, },
"eth-block-tracker>@metamask/utils": { "eth-block-tracker>@metamask/utils": {
"globals": {
"TextDecoder": true,
"TextEncoder": true
},
"packages": { "packages": {
"@metamask/snap-utils>superstruct": true,
"eslint>fast-deep-equal": true, "eslint>fast-deep-equal": true,
"eth-block-tracker>@metamask/utils>superstruct": true,
"nock>debug": true "nock>debug": true
} }
}, },
@ -4598,7 +4595,7 @@
}, },
"packages": { "packages": {
"browserify>browser-resolve": true, "browserify>browser-resolve": true,
"eth-json-rpc-middleware>@metamask/utils": true, "eth-block-tracker>@metamask/utils": true,
"eth-json-rpc-middleware>eth-sig-util": true, "eth-json-rpc-middleware>eth-sig-util": true,
"eth-json-rpc-middleware>pify": true, "eth-json-rpc-middleware>pify": true,
"eth-rpc-errors": true, "eth-rpc-errors": true,
@ -4608,13 +4605,6 @@
"vinyl>clone": true "vinyl>clone": true
} }
}, },
"eth-json-rpc-middleware>@metamask/utils": {
"packages": {
"eslint>fast-deep-equal": true,
"eth-json-rpc-middleware>@metamask/utils>superstruct": true,
"nock>debug": true
}
},
"eth-json-rpc-middleware>eth-sig-util": { "eth-json-rpc-middleware>eth-sig-util": {
"packages": { "packages": {
"eth-json-rpc-middleware>eth-sig-util>ethereumjs-abi": true, "eth-json-rpc-middleware>eth-sig-util>ethereumjs-abi": true,

@ -682,11 +682,11 @@
"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>rabin-wasm": true, "3box>ipfs>ipfs-unixfs-importer>rabin-wasm": true,
"3box>ipfs>ipfs-unixfs-importer>superstruct": 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,
"3box>ipfs>multicodec": true, "3box>ipfs>multicodec": true,
"3box>ipfs>multihashes": true, "3box>ipfs>multihashes": true,
"3box>ipfs>superstruct": true,
"browserify>buffer": true, "browserify>buffer": true,
"madge>rc>deep-extend": true "madge>rc>deep-extend": true
} }
@ -841,11 +841,11 @@
"3box>ipfs>libp2p>libp2p-floodsub": true, "3box>ipfs>libp2p>libp2p-floodsub": true,
"3box>ipfs>libp2p>libp2p-ping": true, "3box>ipfs>libp2p>libp2p-ping": true,
"3box>ipfs>libp2p>libp2p-switch": true, "3box>ipfs>libp2p>libp2p-switch": true,
"3box>ipfs>libp2p>superstruct": true,
"3box>ipfs>multiaddr": true, "3box>ipfs>multiaddr": true,
"3box>ipfs>peer-book": true, "3box>ipfs>peer-book": true,
"3box>ipfs>peer-id": true, "3box>ipfs>peer-id": true,
"3box>ipfs>peer-info": true, "3box>ipfs>peer-info": true,
"3box>ipfs>superstruct": true,
"browserify>events": true, "browserify>events": true,
"browserify>insert-module-globals>is-buffer": true, "browserify>insert-module-globals>is-buffer": true,
"browserify>process": true, "browserify>process": true,
@ -3252,20 +3252,13 @@
"setTimeout": true "setTimeout": true
}, },
"packages": { "packages": {
"@metamask/eth-json-rpc-infura>@metamask/utils": true,
"@metamask/eth-json-rpc-infura>eth-json-rpc-middleware": true, "@metamask/eth-json-rpc-infura>eth-json-rpc-middleware": true,
"eth-block-tracker>@metamask/utils": true,
"eth-rpc-errors": true, "eth-rpc-errors": true,
"json-rpc-engine": true, "json-rpc-engine": true,
"node-fetch": true "node-fetch": true
} }
}, },
"@metamask/eth-json-rpc-infura>@metamask/utils": {
"packages": {
"@metamask/eth-json-rpc-infura>@metamask/utils>superstruct": true,
"eslint>fast-deep-equal": true,
"nock>debug": true
}
},
"@metamask/eth-json-rpc-infura>eth-json-rpc-middleware": { "@metamask/eth-json-rpc-infura>eth-json-rpc-middleware": {
"globals": { "globals": {
"URL": true, "URL": true,
@ -3575,11 +3568,15 @@
} }
}, },
"@metamask/rpc-methods": { "@metamask/rpc-methods": {
"globals": {
"console.warn": true
},
"packages": { "packages": {
"@metamask/rpc-methods>@metamask/controllers": true, "@metamask/rpc-methods>@metamask/controllers": true,
"@metamask/rpc-methods>@metamask/key-tree": true, "@metamask/rpc-methods>@metamask/key-tree": true,
"@metamask/snap-utils": true, "@metamask/snap-utils": true,
"@metamask/snap-utils>@metamask/utils": true, "@metamask/snap-utils>superstruct": true,
"eth-block-tracker>@metamask/utils": true,
"eth-rpc-errors": true "eth-rpc-errors": true
} }
}, },
@ -3892,7 +3889,7 @@
"@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,
"@metamask/snap-utils": true, "@metamask/snap-utils": true,
"@metamask/snap-utils>@metamask/utils": true, "eth-block-tracker>@metamask/utils": true,
"eth-rpc-errors": true, "eth-rpc-errors": true,
"json-rpc-engine": true, "json-rpc-engine": true,
"pump": true "pump": true
@ -4057,8 +4054,13 @@
"removeEventListener": true "removeEventListener": true
}, },
"packages": { "packages": {
"@metamask/snap-controllers>@metamask/post-message-stream>readable-stream": true, "@metamask/snap-controllers>@metamask/post-message-stream>@metamask/utils": true,
"@metamask/snap-utils>@metamask/utils": true "@metamask/snap-controllers>@metamask/post-message-stream>readable-stream": true
}
},
"@metamask/snap-controllers>@metamask/post-message-stream>@metamask/utils": {
"packages": {
"eslint>fast-deep-equal": true
} }
}, },
"@metamask/snap-controllers>@metamask/post-message-stream>readable-stream": { "@metamask/snap-controllers>@metamask/post-message-stream>readable-stream": {
@ -4282,20 +4284,17 @@
"@babel/core>@babel/types": true, "@babel/core>@babel/types": true,
"@metamask/snap-utils>ajv": true, "@metamask/snap-utils>ajv": true,
"@metamask/snap-utils>rfdc": true, "@metamask/snap-utils>rfdc": true,
"@metamask/snap-utils>superstruct": true,
"browserify": true, "browserify": true,
"browserify>buffer": true, "browserify>buffer": true,
"browserify>crypto-browserify": true, "browserify>crypto-browserify": true,
"browserify>events": true, "browserify>events": true,
"browserify>path-browserify": true, "browserify>path-browserify": true,
"eslint>fast-deep-equal": true, "eslint>fast-deep-equal": true,
"eth-block-tracker>@metamask/utils": true,
"semver": true "semver": true
} }
}, },
"@metamask/snap-utils>@metamask/utils": {
"packages": {
"eslint>fast-deep-equal": true
}
},
"@metamask/snap-utils>rfdc": { "@metamask/snap-utils>rfdc": {
"packages": { "packages": {
"browserify>buffer": true "browserify>buffer": true
@ -5351,9 +5350,13 @@
} }
}, },
"eth-block-tracker>@metamask/utils": { "eth-block-tracker>@metamask/utils": {
"globals": {
"TextDecoder": true,
"TextEncoder": true
},
"packages": { "packages": {
"@metamask/snap-utils>superstruct": true,
"eslint>fast-deep-equal": true, "eslint>fast-deep-equal": true,
"eth-block-tracker>@metamask/utils>superstruct": true,
"nock>debug": true "nock>debug": true
} }
}, },
@ -5410,7 +5413,7 @@
}, },
"packages": { "packages": {
"browserify>browser-resolve": true, "browserify>browser-resolve": true,
"eth-json-rpc-middleware>@metamask/utils": true, "eth-block-tracker>@metamask/utils": true,
"eth-json-rpc-middleware>eth-sig-util": true, "eth-json-rpc-middleware>eth-sig-util": true,
"eth-json-rpc-middleware>pify": true, "eth-json-rpc-middleware>pify": true,
"eth-rpc-errors": true, "eth-rpc-errors": true,
@ -5420,13 +5423,6 @@
"vinyl>clone": true "vinyl>clone": true
} }
}, },
"eth-json-rpc-middleware>@metamask/utils": {
"packages": {
"eslint>fast-deep-equal": true,
"eth-json-rpc-middleware>@metamask/utils>superstruct": true,
"nock>debug": true
}
},
"eth-json-rpc-middleware>eth-sig-util": { "eth-json-rpc-middleware>eth-sig-util": {
"packages": { "packages": {
"eth-json-rpc-middleware>eth-sig-util>ethereumjs-abi": true, "eth-json-rpc-middleware>eth-sig-util>ethereumjs-abi": true,

@ -682,11 +682,11 @@
"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>rabin-wasm": true, "3box>ipfs>ipfs-unixfs-importer>rabin-wasm": true,
"3box>ipfs>ipfs-unixfs-importer>superstruct": 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,
"3box>ipfs>multicodec": true, "3box>ipfs>multicodec": true,
"3box>ipfs>multihashes": true, "3box>ipfs>multihashes": true,
"3box>ipfs>superstruct": true,
"browserify>buffer": true, "browserify>buffer": true,
"madge>rc>deep-extend": true "madge>rc>deep-extend": true
} }
@ -841,11 +841,11 @@
"3box>ipfs>libp2p>libp2p-floodsub": true, "3box>ipfs>libp2p>libp2p-floodsub": true,
"3box>ipfs>libp2p>libp2p-ping": true, "3box>ipfs>libp2p>libp2p-ping": true,
"3box>ipfs>libp2p>libp2p-switch": true, "3box>ipfs>libp2p>libp2p-switch": true,
"3box>ipfs>libp2p>superstruct": true,
"3box>ipfs>multiaddr": true, "3box>ipfs>multiaddr": true,
"3box>ipfs>peer-book": true, "3box>ipfs>peer-book": true,
"3box>ipfs>peer-id": true, "3box>ipfs>peer-id": true,
"3box>ipfs>peer-info": true, "3box>ipfs>peer-info": true,
"3box>ipfs>superstruct": true,
"browserify>events": true, "browserify>events": true,
"browserify>insert-module-globals>is-buffer": true, "browserify>insert-module-globals>is-buffer": true,
"browserify>process": true, "browserify>process": true,
@ -3091,20 +3091,13 @@
"setTimeout": true "setTimeout": true
}, },
"packages": { "packages": {
"@metamask/eth-json-rpc-infura>@metamask/utils": true,
"@metamask/eth-json-rpc-infura>eth-json-rpc-middleware": true, "@metamask/eth-json-rpc-infura>eth-json-rpc-middleware": true,
"eth-block-tracker>@metamask/utils": true,
"eth-rpc-errors": true, "eth-rpc-errors": true,
"json-rpc-engine": true, "json-rpc-engine": true,
"node-fetch": true "node-fetch": true
} }
}, },
"@metamask/eth-json-rpc-infura>@metamask/utils": {
"packages": {
"@metamask/eth-json-rpc-infura>@metamask/utils>superstruct": true,
"eslint>fast-deep-equal": true,
"nock>debug": true
}
},
"@metamask/eth-json-rpc-infura>eth-json-rpc-middleware": { "@metamask/eth-json-rpc-infura>eth-json-rpc-middleware": {
"globals": { "globals": {
"URL": true, "URL": true,
@ -4539,9 +4532,13 @@
} }
}, },
"eth-block-tracker>@metamask/utils": { "eth-block-tracker>@metamask/utils": {
"globals": {
"TextDecoder": true,
"TextEncoder": true
},
"packages": { "packages": {
"@metamask/snap-utils>superstruct": true,
"eslint>fast-deep-equal": true, "eslint>fast-deep-equal": true,
"eth-block-tracker>@metamask/utils>superstruct": true,
"nock>debug": true "nock>debug": true
} }
}, },
@ -4598,7 +4595,7 @@
}, },
"packages": { "packages": {
"browserify>browser-resolve": true, "browserify>browser-resolve": true,
"eth-json-rpc-middleware>@metamask/utils": true, "eth-block-tracker>@metamask/utils": true,
"eth-json-rpc-middleware>eth-sig-util": true, "eth-json-rpc-middleware>eth-sig-util": true,
"eth-json-rpc-middleware>pify": true, "eth-json-rpc-middleware>pify": true,
"eth-rpc-errors": true, "eth-rpc-errors": true,
@ -4608,13 +4605,6 @@
"vinyl>clone": true "vinyl>clone": true
} }
}, },
"eth-json-rpc-middleware>@metamask/utils": {
"packages": {
"eslint>fast-deep-equal": true,
"eth-json-rpc-middleware>@metamask/utils>superstruct": true,
"nock>debug": true
}
},
"eth-json-rpc-middleware>eth-sig-util": { "eth-json-rpc-middleware>eth-sig-util": {
"packages": { "packages": {
"eth-json-rpc-middleware>eth-sig-util>ethereumjs-abi": true, "eth-json-rpc-middleware>eth-sig-util>ethereumjs-abi": true,

@ -134,11 +134,11 @@
"@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.21.0", "@metamask/rpc-methods": "^0.22.0",
"@metamask/slip44": "^2.1.0", "@metamask/slip44": "^2.1.0",
"@metamask/snap-controllers": "^0.21.0",
"@metamask/snap-utils": "^0.21.0",
"@metamask/smart-transactions-controller": "^2.3.2", "@metamask/smart-transactions-controller": "^2.3.2",
"@metamask/snap-controllers": "^0.22.0",
"@metamask/snap-utils": "^0.22.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",

@ -2,6 +2,7 @@ import { endowmentPermissionBuilders } from '@metamask/snap-controllers';
import { restrictedMethodPermissionBuilders } from '@metamask/rpc-methods'; import { restrictedMethodPermissionBuilders } from '@metamask/rpc-methods';
import { import {
EndowmentPermissions, EndowmentPermissions,
ExcludedSnapEndowments,
ExcludedSnapPermissions, ExcludedSnapPermissions,
RestrictedMethods, RestrictedMethods,
} from './permissions'; } from './permissions';
@ -9,7 +10,9 @@ import {
describe('EndowmentPermissions', () => { describe('EndowmentPermissions', () => {
it('has the expected permission keys', () => { it('has the expected permission keys', () => {
expect(Object.keys(EndowmentPermissions).sort()).toStrictEqual( expect(Object.keys(EndowmentPermissions).sort()).toStrictEqual(
Object.keys(endowmentPermissionBuilders).sort(), Object.keys(endowmentPermissionBuilders)
.filter((targetKey) => !ExcludedSnapEndowments.has(targetKey))
.sort(),
); );
}); });
}); });

@ -27,5 +27,6 @@ export const EndowmentPermissions = Object.freeze({
} as const); } as const);
// Methods / permissions in external packages that we are temporarily excluding. // Methods / permissions in external packages that we are temporarily excluding.
export const ExcludedSnapPermissions = new Set([]); export const ExcludedSnapPermissions = new Set(['snap_dialog']);
export const ExcludedSnapEndowments = new Set(['endowment:keyring']);
///: END:ONLY_INCLUDE_IN ///: END:ONLY_INCLUDE_IN

@ -5,14 +5,14 @@ import {
import ZENDESK_URLS from '../../../../../helpers/constants/zendesk-url'; import ZENDESK_URLS from '../../../../../helpers/constants/zendesk-url';
function getValues(pendingApproval, t, actions) { function getValues(pendingApproval, t, actions) {
const { prompt, description, textAreaContent } = pendingApproval.requestData; const { title, description, textAreaContent } = pendingApproval.requestData;
return { return {
content: [ content: [
{ {
element: 'Typography', element: 'Typography',
key: 'title', key: 'title',
children: prompt, children: title,
props: { props: {
variant: TYPOGRAPHY.H3, variant: TYPOGRAPHY.H3,
align: 'center', align: 'center',

@ -3317,17 +3317,17 @@
resolved "https://registry.yarnpkg.com/@metamask/etherscan-link/-/etherscan-link-2.2.0.tgz#76314d0c1405a0669fc4a0a19e0877bd3d0c389f" resolved "https://registry.yarnpkg.com/@metamask/etherscan-link/-/etherscan-link-2.2.0.tgz#76314d0c1405a0669fc4a0a19e0877bd3d0c389f"
integrity sha512-xUgehvgU+ZbzeJ44m4sUtsyf6Dwou+SlYhiKfi6lkRcbWh6Jl3TCi0YM9C7XWgxfnLSdQBO1ndvcp0kslKgMsA== integrity sha512-xUgehvgU+ZbzeJ44m4sUtsyf6Dwou+SlYhiKfi6lkRcbWh6Jl3TCi0YM9C7XWgxfnLSdQBO1ndvcp0kslKgMsA==
"@metamask/execution-environments@^0.21.0": "@metamask/execution-environments@^0.22.0":
version "0.21.0" version "0.22.0"
resolved "https://registry.yarnpkg.com/@metamask/execution-environments/-/execution-environments-0.21.0.tgz#40d5c63215fb98a43f9d7b3b31c371dbed93adba" resolved "https://registry.yarnpkg.com/@metamask/execution-environments/-/execution-environments-0.22.0.tgz#2dd67add467e64fc6e992cb36461f20959ed87fd"
integrity sha512-KnQ07SRcht/jpHa4KLHftI034GPZXzz2I1RsWk/0OMxQ3ECGJwDroH92pXNRy0+HTdz31XWhMzdc1GW5rR2CzA== integrity sha512-mb5O3HX5Nrt0urAPWohiyB9w465Qk12tF1hXz+vjwFZe4LAbTHza7XsbvTzAy1XD99JjhtLMi+IwaHp8GELcDg==
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.21.0" "@metamask/snap-types" "^0.22.0"
"@metamask/snap-utils" "^0.21.0" "@metamask/snap-utils" "^0.22.0"
"@metamask/utils" "^2.0.0" "@metamask/utils" "^3.1.0"
eth-rpc-errors "^4.0.3" eth-rpc-errors "^4.0.3"
pump "^3.0.0" pump "^3.0.0"
ses "^0.15.15" ses "^0.15.15"
@ -3449,17 +3449,18 @@
pump "^3.0.0" pump "^3.0.0"
webextension-polyfill-ts "^0.25.0" webextension-polyfill-ts "^0.25.0"
"@metamask/rpc-methods@^0.21.0": "@metamask/rpc-methods@^0.22.0":
version "0.21.0" version "0.22.0"
resolved "https://registry.yarnpkg.com/@metamask/rpc-methods/-/rpc-methods-0.21.0.tgz#7d00029aeaa606d5780fb2e7c01069e714822ae4" resolved "https://registry.yarnpkg.com/@metamask/rpc-methods/-/rpc-methods-0.22.0.tgz#17ee8db33deba5152d531123139fd3ea651e49ef"
integrity sha512-CXYBzIf6hYH8bkqkvGqFHFmsVdjYGznkgw96NpGosQS4vns07wrvBluA45WehAqgHDZHpom1ffQ8r11PksM86Q== integrity sha512-FCVbf68zgHHThG2OAOp9u7iBO1hjIMjo8S85bXsGtStUp9KjiGxnuQhyNK7b/Ny+WuHI+GP26abXRIyS2ampfA==
dependencies: dependencies:
"@metamask/controllers" "^31.0.0" "@metamask/controllers" "^31.0.0"
"@metamask/key-tree" "^5.0.2" "@metamask/key-tree" "^5.0.2"
"@metamask/snap-utils" "^0.21.0" "@metamask/snap-utils" "^0.22.0"
"@metamask/types" "^1.1.0" "@metamask/types" "^1.1.0"
"@metamask/utils" "^2.1.0" "@metamask/utils" "^3.1.0"
eth-rpc-errors "^4.0.2" eth-rpc-errors "^4.0.2"
superstruct "^0.16.5"
"@metamask/safe-event-emitter@^2.0.0": "@metamask/safe-event-emitter@^2.0.0":
version "2.0.0" version "2.0.0"
@ -3486,19 +3487,20 @@
isomorphic-fetch "^3.0.0" isomorphic-fetch "^3.0.0"
lodash "^4.17.21" lodash "^4.17.21"
"@metamask/snap-controllers@^0.21.0": "@metamask/snap-controllers@^0.22.0":
version "0.21.0" version "0.22.0"
resolved "https://registry.yarnpkg.com/@metamask/snap-controllers/-/snap-controllers-0.21.0.tgz#5fdc2f350c8739b070f1bfdbc9c7ef7409af234d" resolved "https://registry.yarnpkg.com/@metamask/snap-controllers/-/snap-controllers-0.22.0.tgz#bb1dfb7551cfca74b17addad2390ad80a6df8b7a"
integrity sha512-WZyfB+mQMifB7a5tf5WEVrWnLdoSMG/sXL6YQnItC/96SUX//c9IW+iNB6ZZfiP5lJFwafN5hjOExWH3O/fwbw== integrity sha512-k7TgYyzZna54ns3o9GjnLiHJDT3xvkG4i+zSEJSMPzqAy5Su5p2yMiTe/awEwTVFBMsC9xtX9owc0lArkk8NZw==
dependencies: dependencies:
"@metamask/browser-passworder" "^3.0.0" "@metamask/browser-passworder" "^3.0.0"
"@metamask/controllers" "^31.0.0" "@metamask/controllers" "^31.0.0"
"@metamask/execution-environments" "^0.21.0" "@metamask/execution-environments" "^0.22.0"
"@metamask/object-multiplex" "^1.1.0" "@metamask/object-multiplex" "^1.1.0"
"@metamask/post-message-stream" "^6.0.0" "@metamask/post-message-stream" "^6.0.0"
"@metamask/rpc-methods" "^0.21.0" "@metamask/rpc-methods" "^0.22.0"
"@metamask/snap-utils" "^0.21.0" "@metamask/snap-types" "^0.22.0"
"@metamask/utils" "^2.0.0" "@metamask/snap-utils" "^0.22.0"
"@metamask/utils" "^3.1.0"
"@xstate/fsm" "^2.0.0" "@xstate/fsm" "^2.0.0"
concat-stream "^2.0.0" concat-stream "^2.0.0"
eth-rpc-errors "^4.0.2" eth-rpc-errors "^4.0.2"
@ -3511,29 +3513,30 @@
readable-web-to-node-stream "^3.0.2" readable-web-to-node-stream "^3.0.2"
tar-stream "^2.2.0" tar-stream "^2.2.0"
"@metamask/snap-types@^0.21.0": "@metamask/snap-types@^0.22.0":
version "0.21.0" version "0.22.0"
resolved "https://registry.yarnpkg.com/@metamask/snap-types/-/snap-types-0.21.0.tgz#51380240a97a6ef492dca9d5bcb2d7c6f6c8a023" resolved "https://registry.yarnpkg.com/@metamask/snap-types/-/snap-types-0.22.0.tgz#4d74e34eea69a7afe0ad9a4d54be83cf5391bf9e"
integrity sha512-wyamdpiZqVfrHjAysnplVQexEisH8b00XTv6F8kTyKd4pbRTBswmOOc1DhBbi2+7Fw2J5a7pdLb9+/MRMwnztg== integrity sha512-XwJNk+Qbtr7xjuh1Iz7wqybp+xB3H6uRJjlOqtgIoOui9V2zfL/At/FzHMMvaLeUsWJhOVSJP5qmEzCYaOEvmQ==
dependencies: dependencies:
"@metamask/providers" "^9.0.0" "@metamask/providers" "^9.0.0"
"@metamask/snap-utils" "^0.21.0" "@metamask/snap-utils" "^0.22.0"
"@metamask/types" "^1.1.0" "@metamask/types" "^1.1.0"
"@metamask/snap-utils@^0.21.0": "@metamask/snap-utils@^0.22.0":
version "0.21.0" version "0.22.0"
resolved "https://registry.yarnpkg.com/@metamask/snap-utils/-/snap-utils-0.21.0.tgz#7ed5df1d0c25f2660ce36dcc436f3608d72e92d5" resolved "https://registry.yarnpkg.com/@metamask/snap-utils/-/snap-utils-0.22.0.tgz#1815eecfc8a388a4ae6744664ff28f58404730ee"
integrity sha512-bfGvCIZd1zfuRUFN68F0HrIHfsCmoh/j6/Sm5sj6v7mIGyERbgpu0mYEwKIRjuCtV5GkGimXU6H2Tof+ZWrLtQ== integrity sha512-mwe72I/sVMVogNU+gxUU1P2Kos4S/4lEX1MUz7Hr79jfYzTgwTfxz/gaMubjD6CF2q0ZvF5JQr6OBk6ZRLHhCw==
dependencies: dependencies:
"@babel/core" "^7.18.6" "@babel/core" "^7.18.6"
"@metamask/snap-types" "^0.21.0" "@metamask/snap-types" "^0.22.0"
"@metamask/utils" "^2.0.0" "@metamask/utils" "^3.1.0"
ajv "^8.11.0" ajv "^8.11.0"
eth-rpc-errors "^4.0.3" eth-rpc-errors "^4.0.3"
fast-deep-equal "^3.1.3" fast-deep-equal "^3.1.3"
rfdc "^1.3.0" rfdc "^1.3.0"
semver "^7.3.7" semver "^7.3.7"
ses "^0.15.17" ses "^0.15.17"
superstruct "^0.16.5"
"@metamask/test-dapp@^5.2.1": "@metamask/test-dapp@^5.2.1":
version "5.2.1" version "5.2.1"
@ -3545,22 +3548,22 @@
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.1.0": "@metamask/utils@^2.0.0":
version "2.1.0" version "2.1.0"
resolved "https://registry.yarnpkg.com/@metamask/utils/-/utils-2.1.0.tgz#a65eaa0932b863383844ec323e05e293d8e718ab" resolved "https://registry.yarnpkg.com/@metamask/utils/-/utils-2.1.0.tgz#a65eaa0932b863383844ec323e05e293d8e718ab"
integrity sha512-4PHdo5B1ifpw6GbsdlDpp8oqA++rddSmt2pWBHtIGGL2tQMvmfHdaDDSns4JP9iC+AbMogVcUpv5Vt8ow1zsRA== integrity sha512-4PHdo5B1ifpw6GbsdlDpp8oqA++rddSmt2pWBHtIGGL2tQMvmfHdaDDSns4JP9iC+AbMogVcUpv5Vt8ow1zsRA==
dependencies: dependencies:
fast-deep-equal "^3.1.3" fast-deep-equal "^3.1.3"
"@metamask/utils@^3.0.1": "@metamask/utils@^3.0.1", "@metamask/utils@^3.1.0":
version "3.0.1" version "3.1.0"
resolved "https://registry.yarnpkg.com/@metamask/utils/-/utils-3.0.1.tgz#53ed2b9cbbd12b18c1db6929728446633d6a74c4" resolved "https://registry.yarnpkg.com/@metamask/utils/-/utils-3.1.0.tgz#ecfabe08e807bfcfb9ed1d7e727779a9382bee2c"
integrity sha512-FDWQ+MeeWQh0b/w2D50+oVPrRqUIvawDlPia+EH9NCOFN0Ty3KkzkQXfO6FgHKMyR4aWuS4SBOrhWFRW8km6lQ== integrity sha512-zBGKgaqdKO9z2CoBSDzeE5KJUr5pM72YsumyUiklSyqMg/xL9vu7Z+E/pkRtwPmyi2YWXvq1rWfjugTt2+38nA==
dependencies: dependencies:
"@types/debug" "^4.1.7" "@types/debug" "^4.1.7"
debug "^4.3.4" debug "^4.3.4"
fast-deep-equal "^3.1.3" fast-deep-equal "^3.1.3"
superstruct "^0.16.0" superstruct "^0.16.5"
"@mrmlnc/readdir-enhanced@^2.2.1": "@mrmlnc/readdir-enhanced@^2.2.1":
version "2.2.1" version "2.2.1"
@ -26723,10 +26726,10 @@ superagent@^7.1.3:
readable-stream "^3.6.0" readable-stream "^3.6.0"
semver "^7.3.7" semver "^7.3.7"
superstruct@^0.16.0: superstruct@^0.16.5:
version "0.16.0" version "0.16.5"
resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.16.0.tgz#9af5e059acd08e774789ad8880962427ef68dace" resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.16.5.tgz#7b7e1f1f8bf6ab141c660e501ac57026e42c09c0"
integrity sha512-IDQtwnnlaan1NhuHqyD/U11lROYvCQ79JyfwlFU9xEVHzqV/Ys/RrwmHPCG0CVH/1g0BuodEjH1msxK2UHxehA== integrity sha512-GBa1VPdCUDAIrsoMVy2lzE/hKQnieUlc1JVoVzJ2YLx47SoPY4AqF85Ht1bPg5r+8I0v54GbaRdNTnYQ0p+T+Q==
superstruct@^0.6.0, superstruct@~0.6.0, superstruct@~0.6.1: superstruct@^0.6.0, superstruct@~0.6.0, superstruct@~0.6.1:
version "0.6.1" version "0.6.1"

Loading…
Cancel
Save