diff --git a/packages/examples/.eslintrc.js b/packages/examples/.eslintrc.js index f1544e5b5f..2a42863470 100644 --- a/packages/examples/.eslintrc.js +++ b/packages/examples/.eslintrc.js @@ -10,7 +10,7 @@ module.exports = { }, globals: { ethereum: true, - snap: true, + snaps: true, }, rules: { 'no-alert': 'off', diff --git a/packages/examples/examples/bls-signer/snap.manifest.json b/packages/examples/examples/bls-signer/snap.manifest.json index 43ccd94c14..567f4dec95 100644 --- a/packages/examples/examples/bls-signer/snap.manifest.json +++ b/packages/examples/examples/bls-signer/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps-monorepo.git" }, "source": { - "shasum": "ixIA4a4Yuk4obx/C6ZwX8wKeYh9pFZTNueB60O7l+rg=", + "shasum": "miCH7djJ/dGwPije8HLyMJsmXkmjD1E5XJ4ZWIRJt48=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/examples/bls-signer/src/index.js b/packages/examples/examples/bls-signer/src/index.js index 25e1975caa..9a2c687567 100644 --- a/packages/examples/examples/bls-signer/src/index.js +++ b/packages/examples/examples/bls-signer/src/index.js @@ -32,7 +32,7 @@ module.exports.onRpcRequest = async ({ request }) => { throw rpcErrors.eth.unauthorized(); } - const PRIVATE_KEY = await snap.request({ + const PRIVATE_KEY = await snaps.request({ method: 'snap_getEntropy', params: { version: 1, @@ -53,7 +53,7 @@ module.exports.onRpcRequest = async ({ request }) => { * @returns {Promise} The BLS12-381 public key. */ async function getPubKey() { - const PRIV_KEY = await snap.request({ + const PRIV_KEY = await snaps.request({ method: 'snap_getAppKey', }); return bls.getPublicKey(PRIV_KEY); @@ -70,7 +70,7 @@ async function getPubKey() { * and `false` otherwise. */ async function promptUser(header, message) { - const response = await snap.request({ + const response = await snaps.request({ method: 'snap_confirm', params: [{ prompt: header, textAreaContent: message }], }); diff --git a/packages/examples/examples/browserify/snap.manifest.json b/packages/examples/examples/browserify/snap.manifest.json index e69083c107..7b9f15fb98 100644 --- a/packages/examples/examples/browserify/snap.manifest.json +++ b/packages/examples/examples/browserify/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps-monorepo.git" }, "source": { - "shasum": "NOiOxPyR8Iu9y+I/6ziTImUC223pg/bLd6z9hRVrPtc=", + "shasum": "8+W9D201oiHmmRETMd+n4W7Qj8Q+NicMhFutRy7Wgm4=", "location": { "npm": { "filePath": "dist/snap.js", diff --git a/packages/examples/examples/browserify/src/snap.ts b/packages/examples/examples/browserify/src/snap.ts index 6ede69e5f4..8622c8c19f 100644 --- a/packages/examples/examples/browserify/src/snap.ts +++ b/packages/examples/examples/browserify/src/snap.ts @@ -14,7 +14,7 @@ import { OnRpcRequestHandler } from '@metamask/snaps-types'; export const onRpcRequest: OnRpcRequestHandler = ({ origin, request }) => { switch (request.method) { case 'inApp': - return snap.request({ + return snaps.request({ method: 'snap_notify', params: [ { @@ -24,7 +24,7 @@ export const onRpcRequest: OnRpcRequestHandler = ({ origin, request }) => { ], }); case 'native': - return snap.request({ + return snaps.request({ method: 'snap_notify', params: [ { diff --git a/packages/examples/examples/ethers-js/snap.manifest.json b/packages/examples/examples/ethers-js/snap.manifest.json index 4f9be53889..fbae482d22 100644 --- a/packages/examples/examples/ethers-js/snap.manifest.json +++ b/packages/examples/examples/ethers-js/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps-monorepo.git" }, "source": { - "shasum": "ZKh05KNz06P5GlNCYOuSUe3QQX6OuhSbMjH7RyCQmHo=", + "shasum": "VOyBi0w/CPD9GUbWssCYdqrJtaPG0Lnu6GhT2ZN1eiI=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/examples/ethers-js/src/index.js b/packages/examples/examples/ethers-js/src/index.js index 0da3b2a9a7..746c8e51d2 100644 --- a/packages/examples/examples/ethers-js/src/index.js +++ b/packages/examples/examples/ethers-js/src/index.js @@ -18,7 +18,7 @@ const provider = new ethers.providers.Web3Provider(ethereum); */ module.exports.onRpcRequest = async ({ request }) => { console.log('received request', request); - const privKey = await snap.request({ + const privKey = await snaps.request({ method: 'snap_getAppKey', }); console.log(`privKey is ${privKey}`); diff --git a/packages/examples/examples/notifications/snap.manifest.json b/packages/examples/examples/notifications/snap.manifest.json index d4c3260829..5f5f903179 100644 --- a/packages/examples/examples/notifications/snap.manifest.json +++ b/packages/examples/examples/notifications/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snap-template.git" }, "source": { - "shasum": "4aAg0VXdfByp6BWb6DuQo5Ui8rq+dx03/zuVgxp+KG4=", + "shasum": "ShjN76CTBN8ByMf+CZ9A81rHcKg3VcpU/aDsC8HjFls=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/examples/notifications/src/index.js b/packages/examples/examples/notifications/src/index.js index a8af336e7a..f4e228c2ea 100644 --- a/packages/examples/examples/notifications/src/index.js +++ b/packages/examples/examples/notifications/src/index.js @@ -13,7 +13,7 @@ module.exports.onRpcRequest = async ({ origin, request }) => { switch (request.method) { case 'inApp': - return snap.request({ + return snaps.request({ method: 'snap_notify', params: [ { @@ -23,7 +23,7 @@ module.exports.onRpcRequest = async ({ origin, request }) => { ], }); case 'native': - return snap.request({ + return snaps.request({ method: 'snap_notify', params: [ { diff --git a/packages/examples/examples/rollup/snap.manifest.json b/packages/examples/examples/rollup/snap.manifest.json index 8c3c0be5af..e36f76a8e7 100644 --- a/packages/examples/examples/rollup/snap.manifest.json +++ b/packages/examples/examples/rollup/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps-monorepo.git" }, "source": { - "shasum": "LLph+wooA1BT1BgEem4w2xzfocSKhSOcuQOyHnSNM/4=", + "shasum": "lXWNW+zE94++8/TeAZ1stUKzoRe1ohLqJY4dUiS54QA=", "location": { "npm": { "filePath": "dist/snap.js", diff --git a/packages/examples/examples/rollup/src/snap.ts b/packages/examples/examples/rollup/src/snap.ts index 6ede69e5f4..8622c8c19f 100644 --- a/packages/examples/examples/rollup/src/snap.ts +++ b/packages/examples/examples/rollup/src/snap.ts @@ -14,7 +14,7 @@ import { OnRpcRequestHandler } from '@metamask/snaps-types'; export const onRpcRequest: OnRpcRequestHandler = ({ origin, request }) => { switch (request.method) { case 'inApp': - return snap.request({ + return snaps.request({ method: 'snap_notify', params: [ { @@ -24,7 +24,7 @@ export const onRpcRequest: OnRpcRequestHandler = ({ origin, request }) => { ], }); case 'native': - return snap.request({ + return snaps.request({ method: 'snap_notify', params: [ { diff --git a/packages/examples/examples/typescript/snap.manifest.json b/packages/examples/examples/typescript/snap.manifest.json index 044d828845..fcc03aac08 100644 --- a/packages/examples/examples/typescript/snap.manifest.json +++ b/packages/examples/examples/typescript/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snap-template.git" }, "source": { - "shasum": "PFi6gpY6a3nVdQwkAvujHDe0hnFmdUKjS8bKMlM/qKs=", + "shasum": "s67hGX4eR3eMxlZIPN3C/M19HkeubAWpVID4HQvH2Ww=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/examples/typescript/src/index.ts b/packages/examples/examples/typescript/src/index.ts index 14396afed7..d7a93c4ae0 100644 --- a/packages/examples/examples/typescript/src/index.ts +++ b/packages/examples/examples/typescript/src/index.ts @@ -15,7 +15,7 @@ import { getMessage } from './message'; export const onRpcRequest: OnRpcRequestHandler = ({ origin, request }) => { switch (request.method) { case 'hello': - return snap.request({ + return snaps.request({ method: 'snap_notify', params: [ { diff --git a/packages/examples/examples/webpack/snap.manifest.json b/packages/examples/examples/webpack/snap.manifest.json index 87a5888786..8a94c08daf 100644 --- a/packages/examples/examples/webpack/snap.manifest.json +++ b/packages/examples/examples/webpack/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps-monorepo.git" }, "source": { - "shasum": "LMGtgd574bqP5aJQSJXJwgeOzB0sBaeJ6c8t9fkIdqM=", + "shasum": "IWOYjh6N3N8KUj08/0bjGsRHJQSNuJlMvt/3/cCNPBk=", "location": { "npm": { "filePath": "dist/snap.js", diff --git a/packages/examples/examples/webpack/src/snap.ts b/packages/examples/examples/webpack/src/snap.ts index 6ede69e5f4..8622c8c19f 100644 --- a/packages/examples/examples/webpack/src/snap.ts +++ b/packages/examples/examples/webpack/src/snap.ts @@ -14,7 +14,7 @@ import { OnRpcRequestHandler } from '@metamask/snaps-types'; export const onRpcRequest: OnRpcRequestHandler = ({ origin, request }) => { switch (request.method) { case 'inApp': - return snap.request({ + return snaps.request({ method: 'snap_notify', params: [ { @@ -24,7 +24,7 @@ export const onRpcRequest: OnRpcRequestHandler = ({ origin, request }) => { ], }); case 'native': - return snap.request({ + return snaps.request({ method: 'snap_notify', params: [ { diff --git a/packages/snaps-execution-environments/src/common/BaseSnapExecutor.test.ts b/packages/snaps-execution-environments/src/common/BaseSnapExecutor.test.ts index 4bef37fe67..030b902032 100644 --- a/packages/snaps-execution-environments/src/common/BaseSnapExecutor.test.ts +++ b/packages/snaps-execution-environments/src/common/BaseSnapExecutor.test.ts @@ -533,7 +533,7 @@ describe('BaseSnapExecutor', () => { it('reports when outbound requests are made using snap API', async () => { const CODE = ` - module.exports.onRpcRequest = () => snap.request({ method: 'wallet_getPermissions', params: [] }); + module.exports.onRpcRequest = () => snaps.request({ method: 'wallet_getPermissions', params: [] }); `; const executor = new TestSnapExecutor(); @@ -637,7 +637,7 @@ describe('BaseSnapExecutor', () => { it('only allows certain methods in snap API', async () => { const CODE = ` - module.exports.onRpcRequest = () => snap.request({ method: 'eth_blockNumber', params: [] }); + module.exports.onRpcRequest = () => snaps.request({ method: 'eth_blockNumber', params: [] }); `; const executor = new TestSnapExecutor(); diff --git a/packages/snaps-execution-environments/src/common/endowments/index.test.ts b/packages/snaps-execution-environments/src/common/endowments/index.test.ts index 6ce042384c..30b1206909 100644 --- a/packages/snaps-execution-environments/src/common/endowments/index.test.ts +++ b/packages/snaps-execution-environments/src/common/endowments/index.test.ts @@ -1,7 +1,7 @@ import fetchMock from 'jest-fetch-mock'; import { createEndowments, isConstructor } from '.'; -const mockSnapAPI = { foo: Symbol('bar') }; +const mockSnapsAPI = { foo: Symbol('bar') }; const mockEthereum = { foo: Symbol('bar') }; describe('Endowment utils', () => { @@ -18,30 +18,30 @@ describe('Endowment utils', () => { it('handles no endowments', () => { const { endowments } = createEndowments( - mockSnapAPI as any, + mockSnapsAPI as any, mockEthereum as any, ); expect( - createEndowments(mockSnapAPI as any, mockEthereum as any), + createEndowments(mockSnapsAPI as any, mockEthereum as any), ).toStrictEqual({ endowments: { - snap: mockSnapAPI, + snaps: mockSnapsAPI, }, teardown: expect.any(Function), }); - expect(endowments.snap).toBe(mockSnapAPI); + expect(endowments.snaps).toBe(mockSnapsAPI); }); it('handles unattenuated endowments', () => { const { endowments } = createEndowments( - mockSnapAPI as any, + mockSnapsAPI as any, mockEthereum as any, ['Uint8Array', 'Date'], ); expect(endowments).toStrictEqual({ - snap: mockSnapAPI, + snaps: mockSnapsAPI, Uint8Array, Date, }); @@ -55,7 +55,7 @@ describe('Endowment utils', () => { }; Object.assign(globalThis, { mockEndowment }); const { endowments } = createEndowments( - mockSnapAPI as any, + mockSnapsAPI as any, mockEthereum as any, ['Date', 'mockEndowment'], ); @@ -65,13 +65,13 @@ describe('Endowment utils', () => { it('handles factory endowments', () => { const { endowments } = createEndowments( - mockSnapAPI as any, + mockSnapsAPI as any, mockEthereum as any, ['setTimeout'], ); expect(endowments).toStrictEqual({ - snap: mockSnapAPI, + snaps: mockSnapsAPI, setTimeout: expect.any(Function), }); expect(endowments.setTimeout).not.toBe(setTimeout); @@ -79,13 +79,13 @@ describe('Endowment utils', () => { it('handles some endowments from the same factory', () => { const { endowments } = createEndowments( - mockSnapAPI as any, + mockSnapsAPI as any, mockEthereum as any, ['setTimeout'], ); expect(endowments).toMatchObject({ - snap: mockSnapAPI, + snaps: mockSnapsAPI, setTimeout: expect.any(Function), }); expect(endowments.setTimeout).not.toBe(setTimeout); @@ -93,13 +93,13 @@ describe('Endowment utils', () => { it('handles all endowments from the same factory', () => { const { endowments } = createEndowments( - mockSnapAPI as any, + mockSnapsAPI as any, mockEthereum as any, ['setTimeout', 'clearTimeout'], ); expect(endowments).toMatchObject({ - snap: mockSnapAPI, + snaps: mockSnapsAPI, setTimeout: expect.any(Function), clearTimeout: expect.any(Function), }); @@ -108,7 +108,7 @@ describe('Endowment utils', () => { it('handles multiple endowments, factory and non-factory', () => { const { endowments } = createEndowments( - mockSnapAPI as any, + mockSnapsAPI as any, mockEthereum as any, [ 'console', @@ -121,7 +121,7 @@ describe('Endowment utils', () => { ); expect(endowments).toMatchObject({ - snap: mockSnapAPI, + snaps: mockSnapsAPI, console, Uint8Array, Math: expect.any(Object), @@ -130,7 +130,7 @@ describe('Endowment utils', () => { WebAssembly, }); - expect(endowments.snap).toBe(mockSnapAPI); + expect(endowments.snaps).toBe(mockSnapsAPI); expect(endowments.console).toBe(console); expect(endowments.Uint8Array).toBe(Uint8Array); expect(endowments.WebAssembly).toBe(WebAssembly); @@ -142,13 +142,13 @@ describe('Endowment utils', () => { it('throws for unknown endowments', () => { expect(() => - createEndowments(mockSnapAPI as any, mockEthereum as any, ['foo']), + createEndowments(mockSnapsAPI as any, mockEthereum as any, ['foo']), ).toThrow('Unknown endowment: "foo"'); }); it('teardown calls all teardown functions', () => { const { endowments, teardown } = createEndowments( - mockSnapAPI as any, + mockSnapsAPI as any, mockEthereum as any, ['setTimeout', 'clearTimeout', 'setInterval', 'clearInterval'], ); @@ -175,7 +175,7 @@ describe('Endowment utils', () => { expect(clearTimeoutSpy).toHaveBeenCalledTimes(1); expect(clearIntervalSpy).toHaveBeenCalledTimes(1); expect(endowments).toMatchObject({ - snap: mockSnapAPI, + snaps: mockSnapsAPI, setTimeout: expect.any(Function), clearTimeout: expect.any(Function), setInterval: expect.any(Function), @@ -185,7 +185,7 @@ describe('Endowment utils', () => { it('teardown can be called multiple times', async () => { const { endowments, teardown } = createEndowments( - mockSnapAPI as any, + mockSnapsAPI as any, mockEthereum as any, ['setTimeout', 'clearTimeout', 'setInterval', 'clearInterval'], ); diff --git a/packages/snaps-execution-environments/src/common/endowments/index.ts b/packages/snaps-execution-environments/src/common/endowments/index.ts index c81ce0bc16..66caa99553 100644 --- a/packages/snaps-execution-environments/src/common/endowments/index.ts +++ b/packages/snaps-execution-environments/src/common/endowments/index.ts @@ -43,13 +43,13 @@ const endowmentFactories = [timeout, interval, network, crypto, math].reduce( * such attenuated / modified endowments. Otherwise, the value that's on the * root realm global will be used. * - * @param snap - The Snap's API object. + * @param snaps - The Snaps global API object. * @param ethereum - The Snap's EIP-1193 provider object. * @param endowments - The list of endowments to provide to the snap. * @returns An object containing the Snap's endowments. */ export function createEndowments( - snap: SnapsGlobalObject, + snaps: SnapsGlobalObject, ethereum: StreamProvider, endowments: string[] = [], ): { endowments: Record; teardown: () => Promise } { @@ -101,7 +101,7 @@ export function createEndowments( return { allEndowments, teardowns }; }, { - allEndowments: { snap } as Record, + allEndowments: { snaps } as Record, teardowns: [] as (() => void)[], }, ); diff --git a/packages/snaps-types/global.d.ts b/packages/snaps-types/global.d.ts index 4ab5ab0dcd..ffc6559804 100644 --- a/packages/snaps-types/global.d.ts +++ b/packages/snaps-types/global.d.ts @@ -4,5 +4,5 @@ import { SnapsGlobalObject } from './src'; // Types that should be available globally within a Snap declare global { const ethereum: MetaMaskInpageProvider; - const snap: SnapsGlobalObject; + const snaps: SnapsGlobalObject; } diff --git a/packages/snaps-utils/src/mock.test.ts b/packages/snaps-utils/src/mock.test.ts index 5aa48be5fa..4a9734f522 100644 --- a/packages/snaps-utils/src/mock.test.ts +++ b/packages/snaps-utils/src/mock.test.ts @@ -5,7 +5,7 @@ import { generateMockEndowments, isConstructor } from './mock'; describe('generateMockEndowments', () => { it('includes mock snap API', async () => { const endowments = generateMockEndowments(); - expect(await endowments.snap.request()).toBe(true); + expect(await endowments.snaps.request()).toBe(true); }); it('includes mock ethereum provider', async () => { diff --git a/packages/snaps-utils/src/mock.ts b/packages/snaps-utils/src/mock.ts index 726c3877a2..a9dca3f21c 100644 --- a/packages/snaps-utils/src/mock.ts +++ b/packages/snaps-utils/src/mock.ts @@ -19,7 +19,7 @@ type MockEthereumProvider = EventEmitter & { * * @returns A mocked snap provider. */ -function getMockSnapGlobal(): MockSnapGlobal { +function getMockSnapsGlobal(): MockSnapGlobal { return { request: async () => true }; } @@ -117,6 +117,6 @@ const generateMockEndowment = (key: string) => { export const generateMockEndowments = () => { return ALL_APIS.reduce>( (acc, cur) => ({ ...acc, [cur]: generateMockEndowment(cur) }), - { snap: getMockSnapGlobal(), ethereum: getMockEthereumProvider() }, + { snaps: getMockSnapsGlobal(), ethereum: getMockEthereumProvider() }, ); };