From 1ec190bd8cb2742046fa35cafe110fdce210a000 Mon Sep 17 00:00:00 2001 From: Frederik Bolding Date: Tue, 19 Jul 2022 17:41:06 +0200 Subject: [PATCH] [FLASK] `snaps-skunkworks@0.18.1` (#15230) * snaps-skunkworks@0.17.0 * Handle breaking changes * Fix import * Fix blocklist implementation * snaps-skunkworks@0.18.0 * Fix lint * Update LavaMoat policy * Update iframe-execution-environment * snaps-skunkworks@0.18.1 * Bump iframe-execution-environment * Update LavaMoat policy --- app/scripts/metamask-controller.js | 69 ++++++--- lavamoat/browserify/beta/policy.json | 202 ++++++++++++-------------- lavamoat/browserify/flask/policy.json | 202 ++++++++++++-------------- lavamoat/browserify/main/policy.json | 202 ++++++++++++-------------- package.json | 4 +- yarn.lock | 52 ++++--- 6 files changed, 358 insertions(+), 373 deletions(-) diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index d2ce70a24..19d7a3cd0 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -51,6 +51,7 @@ import { SnapController, IframeExecutionService, } from '@metamask/snap-controllers'; +import { satisfies as satisfiesSemver } from 'semver'; ///: END:ONLY_INCLUDE_IN import { @@ -625,7 +626,7 @@ export default class MetamaskController extends EventEmitter { ///: BEGIN:ONLY_INCLUDE_IN(flask) this.snapExecutionService = new IframeExecutionService({ iframeUrl: new URL( - 'https://metamask.github.io/iframe-execution-environment/0.5.0', + 'https://metamask.github.io/iframe-execution-environment/0.5.2', ), messenger: this.controllerMessenger.getRestricted({ name: 'ExecutionService', @@ -637,7 +638,8 @@ export default class MetamaskController extends EventEmitter { name: 'SnapController', allowedEvents: [ 'ExecutionService:unhandledError', - 'ExecutionService:unresponsive', + 'ExecutionService:outboundRequest', + 'ExecutionService:outboundResponse', ], allowedActions: [ `${this.permissionController.name}:getEndowments`, @@ -647,29 +649,51 @@ export default class MetamaskController extends EventEmitter { `${this.permissionController.name}:requestPermissions`, `${this.permissionController.name}:revokeAllPermissions`, `${this.permissionController.name}:revokePermissionForAllSubjects`, + 'ExecutionService:executeSnap', + 'ExecutionService:getRpcRequestHandler', + 'ExecutionService:terminateSnap', + 'ExecutionService:terminateAllSnaps', ], }); + const SNAP_BLOCKLIST = [ + { + id: 'npm:@consensys/starknet-snap', + versionRange: '<0.1.11', + }, + ]; + this.snapController = new SnapController({ environmentEndowmentPermissions: Object.values(EndowmentPermissions), - terminateAllSnaps: this.snapExecutionService.terminateAllSnaps.bind( - this.snapExecutionService, - ), - terminateSnap: this.snapExecutionService.terminateSnap.bind( - this.snapExecutionService, - ), - executeSnap: this.snapExecutionService.executeSnap.bind( - this.snapExecutionService, - ), - getRpcMessageHandler: this.snapExecutionService.getRpcMessageHandler.bind( - this.snapExecutionService, - ), closeAllConnections: this.removeAllConnections.bind(this), // Prefix subject with appKeyType to generate separate keys for separate uses getAppKey: async (subject, appKeyType) => { await this.appStateController.getUnlockPromise(true); return this.getAppKeyForSubject(`${appKeyType}:${subject}`); }, + checkBlockList: async (snapsToCheck) => { + return Object.entries(snapsToCheck).reduce( + (acc, [snapId, snapVersion]) => { + const blockInfo = SNAP_BLOCKLIST.find( + (blocked) => + blocked.id === snapId && + satisfiesSemver(snapVersion, blocked.versionRange, { + includePrerelease: true, + }), + ); + + const cur = blockInfo + ? { + blocked: true, + reason: blockInfo.reason, + infoUrl: blockInfo.infoUrl, + } + : { blocked: false }; + return { ...acc, [snapId]: cur }; + }, + {}, + ); + }, state: initState.SnapController, messenger: snapControllerMessenger, }); @@ -1112,9 +1136,9 @@ export default class MetamaskController extends EventEmitter { this.controllerMessenger, 'SnapController:get', ), - getSnapRpcHandler: this.controllerMessenger.call.bind( + handleSnapRpcRequest: this.controllerMessenger.call.bind( this.controllerMessenger, - 'SnapController:getRpcMessageHandler', + 'SnapController:handleRpcRequest', ), getSnapState: this.controllerMessenger.call.bind( this.controllerMessenger, @@ -1238,7 +1262,7 @@ export default class MetamaskController extends EventEmitter { // Record Snap metadata whenever a Snap is added to state. this.controllerMessenger.subscribe( `${this.snapController.name}:snapAdded`, - (snapId, snap, svgIcon = null) => { + (snap, svgIcon = null) => { const { manifest: { proposedName }, version, @@ -1246,7 +1270,7 @@ export default class MetamaskController extends EventEmitter { this.subjectMetadataController.addSubjectMetadata({ subjectType: SUBJECT_TYPES.SNAP, name: proposedName, - origin: snapId, + origin: snap.id, version, svgIcon, }); @@ -1255,12 +1279,13 @@ export default class MetamaskController extends EventEmitter { this.controllerMessenger.subscribe( `${this.snapController.name}:snapInstalled`, - (snapId) => { + (truncatedSnap) => { this.metaMetricsController.trackEvent({ event: 'Snap Installed', category: EVENT.CATEGORIES.SNAPS, properties: { - snap_id: snapId, + snap_id: truncatedSnap.id, + version: truncatedSnap.version, }, }); }, @@ -1268,12 +1293,12 @@ export default class MetamaskController extends EventEmitter { this.controllerMessenger.subscribe( `${this.snapController.name}:snapTerminated`, - (snapId) => { + (truncatedSnap) => { const approvals = Object.values( this.approvalController.state.pendingApprovals, ).filter( (approval) => - approval.origin === snapId && + approval.origin === truncatedSnap.id && approval.type === MESSAGE_TYPE.SNAP_CONFIRM, ); for (const approval of approvals) { diff --git a/lavamoat/browserify/beta/policy.json b/lavamoat/browserify/beta/policy.json index 64e2cd302..e371f4fba 100644 --- a/lavamoat/browserify/beta/policy.json +++ b/lavamoat/browserify/beta/policy.json @@ -3168,43 +3168,6 @@ "watchify>xtend": true } }, - "@metamask/post-message-stream": { - "globals": { - "addEventListener": true, - "location.origin": true, - "onmessage": "write", - "postMessage": true, - "removeEventListener": true - }, - "packages": { - "@metamask/post-message-stream>readable-stream": true - } - }, - "@metamask/post-message-stream>readable-stream": { - "packages": { - "@metamask/post-message-stream>readable-stream>safe-buffer": true, - "@metamask/post-message-stream>readable-stream>string_decoder": true, - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>events": true, - "browserify>process": true, - "browserify>timers-browserify": true, - "pumpify>inherits": true, - "readable-stream>core-util-is": true, - "readable-stream>isarray": true, - "vinyl>cloneable-readable>process-nextick-args": true - } - }, - "@metamask/post-message-stream>readable-stream>safe-buffer": { - "packages": { - "browserify>buffer": true - } - }, - "@metamask/post-message-stream>readable-stream>string_decoder": { - "packages": { - "@metamask/post-message-stream>readable-stream>safe-buffer": true - } - }, "@metamask/providers>@metamask/object-multiplex": { "globals": { "console.warn": true @@ -3314,7 +3277,6 @@ "@metamask/snap-controllers": { "globals": { "URL": true, - "Worker": true, "clearTimeout": true, "console.error": true, "console.info": true, @@ -3328,12 +3290,12 @@ }, "packages": { "@metamask/controllers": true, - "@metamask/post-message-stream": true, "@metamask/providers>@metamask/object-multiplex": true, "@metamask/rpc-methods>@metamask/utils": true, "@metamask/snap-controllers>@metamask/browser-passworder": true, "@metamask/snap-controllers>@metamask/execution-environments": true, "@metamask/snap-controllers>@metamask/obs-store": true, + "@metamask/snap-controllers>@metamask/post-message-stream": true, "@metamask/snap-controllers>ajv": true, "@metamask/snap-controllers>concat-stream": true, "@metamask/snap-controllers>gunzip-maybe": true, @@ -3373,12 +3335,71 @@ }, "@metamask/snap-controllers>@metamask/obs-store>through2": { "packages": { + "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream": true, "browserify>process": true, "browserify>util": true, - "readable-stream": true, "watchify>xtend": true } }, + "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream": { + "packages": { + "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream>process-nextick-args": true, + "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream>string_decoder": true, + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true, + "@storybook/api>util-deprecate": true, + "browserify>browser-resolve": true, + "browserify>events": true, + "browserify>process": true, + "browserify>timers-browserify": true, + "pumpify>inherits": true, + "readable-stream>core-util-is": true, + "readable-stream>isarray": true + } + }, + "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream>process-nextick-args": { + "packages": { + "browserify>process": true + } + }, + "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream>string_decoder": { + "packages": { + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true + } + }, + "@metamask/snap-controllers>@metamask/post-message-stream": { + "globals": { + "WorkerGlobalScope": true, + "addEventListener": true, + "location.origin": true, + "onmessage": "write", + "postMessage": true, + "removeEventListener": true + }, + "packages": { + "@metamask/rpc-methods>@metamask/utils": true, + "@metamask/snap-controllers>@metamask/post-message-stream>readable-stream": true + } + }, + "@metamask/snap-controllers>@metamask/post-message-stream>readable-stream": { + "packages": { + "@metamask/snap-controllers>@metamask/post-message-stream>readable-stream>string_decoder": true, + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true, + "@storybook/api>util-deprecate": true, + "browserify>browser-resolve": true, + "browserify>events": true, + "browserify>process": true, + "browserify>timers-browserify": true, + "pumpify>inherits": true, + "readable-stream>core-util-is": true, + "readable-stream>isarray": true, + "vinyl>cloneable-readable>process-nextick-args": true + } + }, + "@metamask/snap-controllers>@metamask/post-message-stream>readable-stream>string_decoder": { + "packages": { + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true + } + }, "@metamask/snap-controllers>ajv": { "packages": { "@storybook/api>fast-deep-equal": true @@ -3485,8 +3506,38 @@ "setTimeout": true }, "packages": { - "json-rpc-engine>@metamask/safe-event-emitter": true, - "readable-stream": true + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream": true, + "json-rpc-engine>@metamask/safe-event-emitter": true + } + }, + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream": { + "packages": { + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>process-nextick-args": true, + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true, + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>string_decoder": true, + "@storybook/api>util-deprecate": true, + "browserify>browser-resolve": true, + "browserify>events": true, + "browserify>process": true, + "browserify>timers-browserify": true, + "pumpify>inherits": true, + "readable-stream>core-util-is": true, + "readable-stream>isarray": true + } + }, + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>process-nextick-args": { + "packages": { + "browserify>process": true + } + }, + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": { + "packages": { + "browserify>buffer": true + } + }, + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>string_decoder": { + "packages": { + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true } }, "@metamask/snap-controllers>nanoid": { @@ -5712,73 +5763,6 @@ "browserify>process": true } }, - "ethjs-ens": { - "packages": { - "ethereum-ens-network-map": true, - "ethjs-ens>eth-ens-namehash": true, - "ethjs-ens>ethjs-contract": true, - "ethjs-ens>ethjs-query": true - } - }, - "ethjs-ens>eth-ens-namehash": { - "globals": { - "name": "write" - }, - "packages": { - "browserify>buffer": true, - "ethjs-ens>eth-ens-namehash>idna-uts46": true, - "ethjs-ens>eth-ens-namehash>js-sha3": true - } - }, - "ethjs-ens>eth-ens-namehash>idna-uts46": { - "globals": { - "define": true - }, - "packages": { - "browserify>punycode": true - } - }, - "ethjs-ens>eth-ens-namehash>js-sha3": { - "packages": { - "browserify>process": true - } - }, - "ethjs-ens>ethjs-contract": { - "packages": { - "ethjs-contract>ethjs-abi": true, - "ethjs-ens>ethjs-contract>ethjs-filter": true, - "ethjs-ens>ethjs-contract>js-sha3": true, - "ethjs>ethjs-util": true - } - }, - "ethjs-ens>ethjs-contract>ethjs-filter": { - "globals": { - "clearInterval": true, - "setInterval": true - } - }, - "ethjs-ens>ethjs-contract>js-sha3": { - "packages": { - "browserify>process": true - } - }, - "ethjs-ens>ethjs-query": { - "globals": { - "console": true - }, - "packages": { - "ethjs-ens>ethjs-query>ethjs-format": true, - "ethjs-ens>ethjs-query>ethjs-rpc": true - } - }, - "ethjs-ens>ethjs-query>ethjs-format": { - "packages": { - "ethjs-ens>ethjs-query>ethjs-format>ethjs-schema": true, - "ethjs>ethjs-util": true, - "ethjs>ethjs-util>strip-hex-prefix": true, - "ethjs>number-to-bn": true - } - }, "ethjs-query": { "globals": { "console": true diff --git a/lavamoat/browserify/flask/policy.json b/lavamoat/browserify/flask/policy.json index 64e2cd302..e371f4fba 100644 --- a/lavamoat/browserify/flask/policy.json +++ b/lavamoat/browserify/flask/policy.json @@ -3168,43 +3168,6 @@ "watchify>xtend": true } }, - "@metamask/post-message-stream": { - "globals": { - "addEventListener": true, - "location.origin": true, - "onmessage": "write", - "postMessage": true, - "removeEventListener": true - }, - "packages": { - "@metamask/post-message-stream>readable-stream": true - } - }, - "@metamask/post-message-stream>readable-stream": { - "packages": { - "@metamask/post-message-stream>readable-stream>safe-buffer": true, - "@metamask/post-message-stream>readable-stream>string_decoder": true, - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>events": true, - "browserify>process": true, - "browserify>timers-browserify": true, - "pumpify>inherits": true, - "readable-stream>core-util-is": true, - "readable-stream>isarray": true, - "vinyl>cloneable-readable>process-nextick-args": true - } - }, - "@metamask/post-message-stream>readable-stream>safe-buffer": { - "packages": { - "browserify>buffer": true - } - }, - "@metamask/post-message-stream>readable-stream>string_decoder": { - "packages": { - "@metamask/post-message-stream>readable-stream>safe-buffer": true - } - }, "@metamask/providers>@metamask/object-multiplex": { "globals": { "console.warn": true @@ -3314,7 +3277,6 @@ "@metamask/snap-controllers": { "globals": { "URL": true, - "Worker": true, "clearTimeout": true, "console.error": true, "console.info": true, @@ -3328,12 +3290,12 @@ }, "packages": { "@metamask/controllers": true, - "@metamask/post-message-stream": true, "@metamask/providers>@metamask/object-multiplex": true, "@metamask/rpc-methods>@metamask/utils": true, "@metamask/snap-controllers>@metamask/browser-passworder": true, "@metamask/snap-controllers>@metamask/execution-environments": true, "@metamask/snap-controllers>@metamask/obs-store": true, + "@metamask/snap-controllers>@metamask/post-message-stream": true, "@metamask/snap-controllers>ajv": true, "@metamask/snap-controllers>concat-stream": true, "@metamask/snap-controllers>gunzip-maybe": true, @@ -3373,12 +3335,71 @@ }, "@metamask/snap-controllers>@metamask/obs-store>through2": { "packages": { + "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream": true, "browserify>process": true, "browserify>util": true, - "readable-stream": true, "watchify>xtend": true } }, + "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream": { + "packages": { + "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream>process-nextick-args": true, + "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream>string_decoder": true, + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true, + "@storybook/api>util-deprecate": true, + "browserify>browser-resolve": true, + "browserify>events": true, + "browserify>process": true, + "browserify>timers-browserify": true, + "pumpify>inherits": true, + "readable-stream>core-util-is": true, + "readable-stream>isarray": true + } + }, + "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream>process-nextick-args": { + "packages": { + "browserify>process": true + } + }, + "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream>string_decoder": { + "packages": { + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true + } + }, + "@metamask/snap-controllers>@metamask/post-message-stream": { + "globals": { + "WorkerGlobalScope": true, + "addEventListener": true, + "location.origin": true, + "onmessage": "write", + "postMessage": true, + "removeEventListener": true + }, + "packages": { + "@metamask/rpc-methods>@metamask/utils": true, + "@metamask/snap-controllers>@metamask/post-message-stream>readable-stream": true + } + }, + "@metamask/snap-controllers>@metamask/post-message-stream>readable-stream": { + "packages": { + "@metamask/snap-controllers>@metamask/post-message-stream>readable-stream>string_decoder": true, + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true, + "@storybook/api>util-deprecate": true, + "browserify>browser-resolve": true, + "browserify>events": true, + "browserify>process": true, + "browserify>timers-browserify": true, + "pumpify>inherits": true, + "readable-stream>core-util-is": true, + "readable-stream>isarray": true, + "vinyl>cloneable-readable>process-nextick-args": true + } + }, + "@metamask/snap-controllers>@metamask/post-message-stream>readable-stream>string_decoder": { + "packages": { + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true + } + }, "@metamask/snap-controllers>ajv": { "packages": { "@storybook/api>fast-deep-equal": true @@ -3485,8 +3506,38 @@ "setTimeout": true }, "packages": { - "json-rpc-engine>@metamask/safe-event-emitter": true, - "readable-stream": true + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream": true, + "json-rpc-engine>@metamask/safe-event-emitter": true + } + }, + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream": { + "packages": { + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>process-nextick-args": true, + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true, + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>string_decoder": true, + "@storybook/api>util-deprecate": true, + "browserify>browser-resolve": true, + "browserify>events": true, + "browserify>process": true, + "browserify>timers-browserify": true, + "pumpify>inherits": true, + "readable-stream>core-util-is": true, + "readable-stream>isarray": true + } + }, + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>process-nextick-args": { + "packages": { + "browserify>process": true + } + }, + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": { + "packages": { + "browserify>buffer": true + } + }, + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>string_decoder": { + "packages": { + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true } }, "@metamask/snap-controllers>nanoid": { @@ -5712,73 +5763,6 @@ "browserify>process": true } }, - "ethjs-ens": { - "packages": { - "ethereum-ens-network-map": true, - "ethjs-ens>eth-ens-namehash": true, - "ethjs-ens>ethjs-contract": true, - "ethjs-ens>ethjs-query": true - } - }, - "ethjs-ens>eth-ens-namehash": { - "globals": { - "name": "write" - }, - "packages": { - "browserify>buffer": true, - "ethjs-ens>eth-ens-namehash>idna-uts46": true, - "ethjs-ens>eth-ens-namehash>js-sha3": true - } - }, - "ethjs-ens>eth-ens-namehash>idna-uts46": { - "globals": { - "define": true - }, - "packages": { - "browserify>punycode": true - } - }, - "ethjs-ens>eth-ens-namehash>js-sha3": { - "packages": { - "browserify>process": true - } - }, - "ethjs-ens>ethjs-contract": { - "packages": { - "ethjs-contract>ethjs-abi": true, - "ethjs-ens>ethjs-contract>ethjs-filter": true, - "ethjs-ens>ethjs-contract>js-sha3": true, - "ethjs>ethjs-util": true - } - }, - "ethjs-ens>ethjs-contract>ethjs-filter": { - "globals": { - "clearInterval": true, - "setInterval": true - } - }, - "ethjs-ens>ethjs-contract>js-sha3": { - "packages": { - "browserify>process": true - } - }, - "ethjs-ens>ethjs-query": { - "globals": { - "console": true - }, - "packages": { - "ethjs-ens>ethjs-query>ethjs-format": true, - "ethjs-ens>ethjs-query>ethjs-rpc": true - } - }, - "ethjs-ens>ethjs-query>ethjs-format": { - "packages": { - "ethjs-ens>ethjs-query>ethjs-format>ethjs-schema": true, - "ethjs>ethjs-util": true, - "ethjs>ethjs-util>strip-hex-prefix": true, - "ethjs>number-to-bn": true - } - }, "ethjs-query": { "globals": { "console": true diff --git a/lavamoat/browserify/main/policy.json b/lavamoat/browserify/main/policy.json index 64e2cd302..e371f4fba 100644 --- a/lavamoat/browserify/main/policy.json +++ b/lavamoat/browserify/main/policy.json @@ -3168,43 +3168,6 @@ "watchify>xtend": true } }, - "@metamask/post-message-stream": { - "globals": { - "addEventListener": true, - "location.origin": true, - "onmessage": "write", - "postMessage": true, - "removeEventListener": true - }, - "packages": { - "@metamask/post-message-stream>readable-stream": true - } - }, - "@metamask/post-message-stream>readable-stream": { - "packages": { - "@metamask/post-message-stream>readable-stream>safe-buffer": true, - "@metamask/post-message-stream>readable-stream>string_decoder": true, - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>events": true, - "browserify>process": true, - "browserify>timers-browserify": true, - "pumpify>inherits": true, - "readable-stream>core-util-is": true, - "readable-stream>isarray": true, - "vinyl>cloneable-readable>process-nextick-args": true - } - }, - "@metamask/post-message-stream>readable-stream>safe-buffer": { - "packages": { - "browserify>buffer": true - } - }, - "@metamask/post-message-stream>readable-stream>string_decoder": { - "packages": { - "@metamask/post-message-stream>readable-stream>safe-buffer": true - } - }, "@metamask/providers>@metamask/object-multiplex": { "globals": { "console.warn": true @@ -3314,7 +3277,6 @@ "@metamask/snap-controllers": { "globals": { "URL": true, - "Worker": true, "clearTimeout": true, "console.error": true, "console.info": true, @@ -3328,12 +3290,12 @@ }, "packages": { "@metamask/controllers": true, - "@metamask/post-message-stream": true, "@metamask/providers>@metamask/object-multiplex": true, "@metamask/rpc-methods>@metamask/utils": true, "@metamask/snap-controllers>@metamask/browser-passworder": true, "@metamask/snap-controllers>@metamask/execution-environments": true, "@metamask/snap-controllers>@metamask/obs-store": true, + "@metamask/snap-controllers>@metamask/post-message-stream": true, "@metamask/snap-controllers>ajv": true, "@metamask/snap-controllers>concat-stream": true, "@metamask/snap-controllers>gunzip-maybe": true, @@ -3373,12 +3335,71 @@ }, "@metamask/snap-controllers>@metamask/obs-store>through2": { "packages": { + "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream": true, "browserify>process": true, "browserify>util": true, - "readable-stream": true, "watchify>xtend": true } }, + "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream": { + "packages": { + "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream>process-nextick-args": true, + "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream>string_decoder": true, + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true, + "@storybook/api>util-deprecate": true, + "browserify>browser-resolve": true, + "browserify>events": true, + "browserify>process": true, + "browserify>timers-browserify": true, + "pumpify>inherits": true, + "readable-stream>core-util-is": true, + "readable-stream>isarray": true + } + }, + "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream>process-nextick-args": { + "packages": { + "browserify>process": true + } + }, + "@metamask/snap-controllers>@metamask/obs-store>through2>readable-stream>string_decoder": { + "packages": { + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true + } + }, + "@metamask/snap-controllers>@metamask/post-message-stream": { + "globals": { + "WorkerGlobalScope": true, + "addEventListener": true, + "location.origin": true, + "onmessage": "write", + "postMessage": true, + "removeEventListener": true + }, + "packages": { + "@metamask/rpc-methods>@metamask/utils": true, + "@metamask/snap-controllers>@metamask/post-message-stream>readable-stream": true + } + }, + "@metamask/snap-controllers>@metamask/post-message-stream>readable-stream": { + "packages": { + "@metamask/snap-controllers>@metamask/post-message-stream>readable-stream>string_decoder": true, + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true, + "@storybook/api>util-deprecate": true, + "browserify>browser-resolve": true, + "browserify>events": true, + "browserify>process": true, + "browserify>timers-browserify": true, + "pumpify>inherits": true, + "readable-stream>core-util-is": true, + "readable-stream>isarray": true, + "vinyl>cloneable-readable>process-nextick-args": true + } + }, + "@metamask/snap-controllers>@metamask/post-message-stream>readable-stream>string_decoder": { + "packages": { + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true + } + }, "@metamask/snap-controllers>ajv": { "packages": { "@storybook/api>fast-deep-equal": true @@ -3485,8 +3506,38 @@ "setTimeout": true }, "packages": { - "json-rpc-engine>@metamask/safe-event-emitter": true, - "readable-stream": true + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream": true, + "json-rpc-engine>@metamask/safe-event-emitter": true + } + }, + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream": { + "packages": { + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>process-nextick-args": true, + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true, + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>string_decoder": true, + "@storybook/api>util-deprecate": true, + "browserify>browser-resolve": true, + "browserify>events": true, + "browserify>process": true, + "browserify>timers-browserify": true, + "pumpify>inherits": true, + "readable-stream>core-util-is": true, + "readable-stream>isarray": true + } + }, + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>process-nextick-args": { + "packages": { + "browserify>process": true + } + }, + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": { + "packages": { + "browserify>buffer": true + } + }, + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>string_decoder": { + "packages": { + "@metamask/snap-controllers>json-rpc-middleware-stream>readable-stream>safe-buffer": true } }, "@metamask/snap-controllers>nanoid": { @@ -5712,73 +5763,6 @@ "browserify>process": true } }, - "ethjs-ens": { - "packages": { - "ethereum-ens-network-map": true, - "ethjs-ens>eth-ens-namehash": true, - "ethjs-ens>ethjs-contract": true, - "ethjs-ens>ethjs-query": true - } - }, - "ethjs-ens>eth-ens-namehash": { - "globals": { - "name": "write" - }, - "packages": { - "browserify>buffer": true, - "ethjs-ens>eth-ens-namehash>idna-uts46": true, - "ethjs-ens>eth-ens-namehash>js-sha3": true - } - }, - "ethjs-ens>eth-ens-namehash>idna-uts46": { - "globals": { - "define": true - }, - "packages": { - "browserify>punycode": true - } - }, - "ethjs-ens>eth-ens-namehash>js-sha3": { - "packages": { - "browserify>process": true - } - }, - "ethjs-ens>ethjs-contract": { - "packages": { - "ethjs-contract>ethjs-abi": true, - "ethjs-ens>ethjs-contract>ethjs-filter": true, - "ethjs-ens>ethjs-contract>js-sha3": true, - "ethjs>ethjs-util": true - } - }, - "ethjs-ens>ethjs-contract>ethjs-filter": { - "globals": { - "clearInterval": true, - "setInterval": true - } - }, - "ethjs-ens>ethjs-contract>js-sha3": { - "packages": { - "browserify>process": true - } - }, - "ethjs-ens>ethjs-query": { - "globals": { - "console": true - }, - "packages": { - "ethjs-ens>ethjs-query>ethjs-format": true, - "ethjs-ens>ethjs-query>ethjs-rpc": true - } - }, - "ethjs-ens>ethjs-query>ethjs-format": { - "packages": { - "ethjs-ens>ethjs-query>ethjs-format>ethjs-schema": true, - "ethjs>ethjs-util": true, - "ethjs>ethjs-util>strip-hex-prefix": true, - "ethjs>number-to-bn": true - } - }, "ethjs-query": { "globals": { "console": true diff --git a/package.json b/package.json index 04eaf9905..e68dec500 100644 --- a/package.json +++ b/package.json @@ -128,10 +128,10 @@ "@metamask/obs-store": "^5.0.0", "@metamask/post-message-stream": "^4.0.0", "@metamask/providers": "^9.0.0", - "@metamask/rpc-methods": "^0.16.0", + "@metamask/rpc-methods": "^0.18.1", "@metamask/slip44": "^2.1.0", "@metamask/smart-transactions-controller": "^2.1.0", - "@metamask/snap-controllers": "^0.16.0", + "@metamask/snap-controllers": "^0.18.1", "@ngraveio/bc-ur": "^1.1.6", "@popperjs/core": "^2.4.0", "@reduxjs/toolkit": "^1.6.2", diff --git a/yarn.lock b/yarn.lock index 7cc162d08..9578dee3c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2933,15 +2933,15 @@ resolved "https://registry.yarnpkg.com/@metamask/etherscan-link/-/etherscan-link-2.1.0.tgz#c0be8e68445b7b83cf85bcc03a56cdf8e256c973" integrity sha512-ADuWlTUkFfN2vXlz81Bg/0BA+XRor+CdK1055p6k7H6BLIPoDKn9SBOFld9haQFuR9cKh/JYHcnlSIv5R4fUEw== -"@metamask/execution-environments@^0.16.0": - version "0.16.0" - resolved "https://registry.yarnpkg.com/@metamask/execution-environments/-/execution-environments-0.16.0.tgz#1c12f1aeedc1b58db91fc3dfd2371b7235c00595" - integrity sha512-Y+2d3SzVmFq1ij3DssYOLmJLQZM1rVJmh+dyYPJ5BFI5Cl6YwPluOrc1hoEDokT14vs+4wQsjMTdIHchza1EmQ== +"@metamask/execution-environments@^0.18.1": + version "0.18.1" + resolved "https://registry.yarnpkg.com/@metamask/execution-environments/-/execution-environments-0.18.1.tgz#46853241fc0dda4e92b358d56fea927745efef42" + integrity sha512-PnEPvcIBsNq2rYshrZePAPL3vGaWPrJyztHlSn+dP9vM2XR1M+Qc0/QrgGy6hnOidQIkhn2ZuFfsnm72dJFmUA== dependencies: "@metamask/object-multiplex" "^1.2.0" - "@metamask/post-message-stream" "^4.0.0" + "@metamask/post-message-stream" "^6.0.0" "@metamask/providers" "^9.0.0" - "@metamask/snap-types" "^0.16.0" + "@metamask/snap-types" "^0.18.1" "@metamask/utils" "^2.0.0" eth-rpc-errors "^4.0.3" pump "^3.0.0" @@ -3023,7 +3023,7 @@ pump "^3.0.0" ses "0.12.4" -"@metamask/post-message-stream@4.0.0", "@metamask/post-message-stream@^4.0.0": +"@metamask/post-message-stream@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@metamask/post-message-stream/-/post-message-stream-4.0.0.tgz#72f120e562346ca86ccc9b3684023ad44265f0df" integrity sha512-r0JcoWXNuHycProx8ClxiIElJY/GVb/0/WWXTMsZu7qDejLo52VNXlwfydCdVjbMXeoT2nK1Yt3d5gjmHy5BWw== @@ -3038,6 +3038,14 @@ "@metamask/utils" "^2.0.0" readable-stream "2.3.3" +"@metamask/post-message-stream@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@metamask/post-message-stream/-/post-message-stream-6.0.0.tgz#e8c26b1ef41452b2f1862004651ae3970b944868" + integrity sha512-z0l6UMW3z6W4qIhKSh48/6n2Q9AG1oOh9tus+Ncs9w6dAbkElKke+mXZ7tT6oAyE3T4JZLnDfGKbPWYoq+nrsA== + dependencies: + "@metamask/utils" "^2.0.0" + readable-stream "2.3.3" + "@metamask/providers@^9.0.0": version "9.0.0" resolved "https://registry.yarnpkg.com/@metamask/providers/-/providers-9.0.0.tgz#644684f9eceb952138e80afb9103c7e39d8350fe" @@ -3056,14 +3064,14 @@ pump "^3.0.0" webextension-polyfill-ts "^0.25.0" -"@metamask/rpc-methods@^0.16.0": - version "0.16.0" - resolved "https://registry.yarnpkg.com/@metamask/rpc-methods/-/rpc-methods-0.16.0.tgz#1538aad3e9e1be4a52d3fabfcdf969c66a67f783" - integrity sha512-45ExuiJkZNt5zp3T/uPl9x1/Vn0liaDoNnh6ezcVWb3s7NFHfHGPjRA9SDJOlr7UqQTdk4ixnPyckkLa8cMuVw== +"@metamask/rpc-methods@^0.18.1": + version "0.18.1" + resolved "https://registry.yarnpkg.com/@metamask/rpc-methods/-/rpc-methods-0.18.1.tgz#7fa7ff15fd70f6e5ae9f06f0caa719683f52f4f3" + integrity sha512-ZBGeg1HOF/k+nSzi2oXvKM5nm8jjRtV3bc6m3db0hlsy12KooMkdy0Q8ZiOkkqLWn0g8ivvHdxXU7LNhPZ8eBw== dependencies: "@metamask/controllers" "^30.0.0" "@metamask/key-tree" "^4.0.0" - "@metamask/snap-controllers" "^0.16.0" + "@metamask/snap-controllers" "^0.18.1" "@metamask/types" "^1.1.0" "@metamask/utils" "^2.0.0" eth-rpc-errors "^4.0.2" @@ -3091,17 +3099,17 @@ isomorphic-fetch "^3.0.0" lodash "^4.17.21" -"@metamask/snap-controllers@^0.16.0": - version "0.16.0" - resolved "https://registry.yarnpkg.com/@metamask/snap-controllers/-/snap-controllers-0.16.0.tgz#c271b2c04aa49e657273646478ef6cae356a9212" - integrity sha512-B9zpP8FXGK7zbdPOfbb1pdipZNstSt5ps0lB67597T1o/lcR0APX9FUUATL0N1X52cAuqfs30sqpDJBr5/Y89w== +"@metamask/snap-controllers@^0.18.1": + version "0.18.1" + resolved "https://registry.yarnpkg.com/@metamask/snap-controllers/-/snap-controllers-0.18.1.tgz#081da8664436aed5d3a0ff5f682807de7424fcff" + integrity sha512-hoozCeKVV+HCMIPmDg2F5KcIyBEsbIFTM5xL4dmkf5i16+yWDkdNN2iCIfePk+gtpcWyUK6bsevOdu2KwVgEHg== dependencies: "@metamask/browser-passworder" "^3.0.0" "@metamask/controllers" "^30.0.0" - "@metamask/execution-environments" "^0.16.0" + "@metamask/execution-environments" "^0.18.1" "@metamask/object-multiplex" "^1.1.0" "@metamask/obs-store" "^7.0.0" - "@metamask/post-message-stream" "4.0.0" + "@metamask/post-message-stream" "^6.0.0" "@metamask/safe-event-emitter" "^2.0.0" "@metamask/utils" "^2.0.0" "@types/deep-freeze-strict" "^1.1.0" @@ -3121,10 +3129,10 @@ semver "^7.3.5" tar-stream "^2.2.0" -"@metamask/snap-types@^0.16.0": - version "0.16.0" - resolved "https://registry.yarnpkg.com/@metamask/snap-types/-/snap-types-0.16.0.tgz#e62a29843e8be520b9e7fa7fff4ef7ca1d8a7733" - integrity sha512-X3DJrltoBjEC8mnnyjK9LW5JdB9WgG+sIOMNtRPkM2OJjGw8uPcxjljJ9jV2gLYfwXfpVCB26Byn6ovmhIa2wQ== +"@metamask/snap-types@^0.18.1": + version "0.18.1" + resolved "https://registry.yarnpkg.com/@metamask/snap-types/-/snap-types-0.18.1.tgz#3e5e07a14d69ae43b246ae1abb24d7d1d40eca0f" + integrity sha512-ri9vznetbO2TjZjWUqfONgXyPEXP9j8VBgU8xCxCqqiyCi/sMIwSCemp81wnDN+kt7m7zXlC8TmEV3MkSnqGmw== dependencies: "@metamask/controllers" "^30.0.0"