From 971758b78d7b8c4d8072e47cf55883799a8ca64e Mon Sep 17 00:00:00 2001 From: Frederik Bolding Date: Wed, 29 Jan 2025 10:59:46 +0100 Subject: [PATCH] feat: Add URLSearchParams as a default endowment --- .../src/common/endowments/commonEndowmentFactory.ts | 1 + .../src/common/endowments/endowments.test.browser.ts | 5 +++++ packages/snaps-simulation/src/methods/specifications.test.ts | 1 + packages/snaps-utils/src/default-endowments.ts | 1 + 4 files changed, 8 insertions(+) diff --git a/packages/snaps-execution-environments/src/common/endowments/commonEndowmentFactory.ts b/packages/snaps-execution-environments/src/common/endowments/commonEndowmentFactory.ts index 89efedc0e6..7736d5080b 100644 --- a/packages/snaps-execution-environments/src/common/endowments/commonEndowmentFactory.ts +++ b/packages/snaps-execution-environments/src/common/endowments/commonEndowmentFactory.ts @@ -49,6 +49,7 @@ const commonEndowments: CommonEndowmentSpecification[] = [ { endowment: Uint16Array, name: 'Uint16Array' }, { endowment: Uint32Array, name: 'Uint32Array' }, { endowment: URL, name: 'URL' }, + { endowment: URLSearchParams, name: 'URLSearchParams' }, { endowment: WebAssembly, name: 'WebAssembly' }, ]; diff --git a/packages/snaps-execution-environments/src/common/endowments/endowments.test.browser.ts b/packages/snaps-execution-environments/src/common/endowments/endowments.test.browser.ts index 2ad5ba4522..39a7d84f08 100644 --- a/packages/snaps-execution-environments/src/common/endowments/endowments.test.browser.ts +++ b/packages/snaps-execution-environments/src/common/endowments/endowments.test.browser.ts @@ -92,6 +92,10 @@ describe('endowments', () => { endowments: { URL }, factory: () => new URL('https://metamask.io/snaps/'), }, + URLSearchParams: { + endowments: { URLSearchParams }, + factory: () => new URLSearchParams('https://metamask.io/snaps?foo=bar'), + }, Int8Array: { endowments: { Int8Array }, factory: () => new Int8Array(), @@ -384,6 +388,7 @@ describe('endowments', () => { { factory: expect.any(Function), names: ['Uint16Array'] }, { factory: expect.any(Function), names: ['Uint32Array'] }, { factory: expect.any(Function), names: ['URL'] }, + { factory: expect.any(Function), names: ['URLSearchParams'] }, { factory: expect.any(Function), names: ['WebAssembly'] }, ]); }); diff --git a/packages/snaps-simulation/src/methods/specifications.test.ts b/packages/snaps-simulation/src/methods/specifications.test.ts index 1565b0cbcb..a1be97a8d5 100644 --- a/packages/snaps-simulation/src/methods/specifications.test.ts +++ b/packages/snaps-simulation/src/methods/specifications.test.ts @@ -347,6 +347,7 @@ describe('getEndowments', () => { "TextDecoder", "TextEncoder", "URL", + "URLSearchParams", "setInterval", "clearInterval", "Int8Array", diff --git a/packages/snaps-utils/src/default-endowments.ts b/packages/snaps-utils/src/default-endowments.ts index 54fc163f22..7cf263bc02 100644 --- a/packages/snaps-utils/src/default-endowments.ts +++ b/packages/snaps-utils/src/default-endowments.ts @@ -15,6 +15,7 @@ export const DEFAULT_ENDOWMENTS: readonly string[] = Object.freeze([ 'TextDecoder', 'TextEncoder', 'URL', + 'URLSearchParams', 'setInterval', 'clearInterval', 'Int8Array',