From 7cbf1753c0adcac605d40debca6d663591806e4d Mon Sep 17 00:00:00 2001 From: Guillaume Roux Date: Tue, 1 Apr 2025 13:05:13 +0200 Subject: [PATCH 1/5] [WIP] move handers to folder --- packages/snaps-utils/src/handlers/index.ts | 123 ++++++++++++++++++ .../{handler-types.ts => handlers/types.ts} | 6 + .../snaps-utils/src/index.executionenv.ts | 1 - packages/snaps-utils/src/index.ts | 1 - 4 files changed, 129 insertions(+), 2 deletions(-) create mode 100644 packages/snaps-utils/src/handlers/index.ts rename packages/snaps-utils/src/{handler-types.ts => handlers/types.ts} (91%) diff --git a/packages/snaps-utils/src/handlers/index.ts b/packages/snaps-utils/src/handlers/index.ts new file mode 100644 index 0000000000..ed6178046f --- /dev/null +++ b/packages/snaps-utils/src/handlers/index.ts @@ -0,0 +1,123 @@ +import type { + OnAssetsConversionHandler, + OnAssetsLookupHandler, + OnCronjobHandler, + OnHomePageHandler, + OnInstallHandler, + OnKeyringRequestHandler, + OnNameLookupHandler, + OnProtocolRequestHandler, + OnRpcRequestHandler, + OnSettingsPageHandler, + OnSignatureHandler, + OnTransactionHandler, + OnUpdateHandler, + OnUserInputHandler, +} from '@metamask/snaps-sdk'; + +import { HandlerType } from './types'; + +export const SNAP_EXPORTS = { + [HandlerType.OnRpcRequest]: { + type: HandlerType.OnRpcRequest, + required: true, + validator: (snapExport: unknown): snapExport is OnRpcRequestHandler => { + return typeof snapExport === 'function'; + }, + }, + [HandlerType.OnTransaction]: { + type: HandlerType.OnTransaction, + required: true, + validator: (snapExport: unknown): snapExport is OnTransactionHandler => { + return typeof snapExport === 'function'; + }, + }, + [HandlerType.OnCronjob]: { + type: HandlerType.OnCronjob, + required: true, + validator: (snapExport: unknown): snapExport is OnCronjobHandler => { + return typeof snapExport === 'function'; + }, + }, + [HandlerType.OnNameLookup]: { + type: HandlerType.OnNameLookup, + required: true, + validator: (snapExport: unknown): snapExport is OnNameLookupHandler => { + return typeof snapExport === 'function'; + }, + }, + [HandlerType.OnInstall]: { + type: HandlerType.OnInstall, + required: false, + validator: (snapExport: unknown): snapExport is OnInstallHandler => { + return typeof snapExport === 'function'; + }, + }, + [HandlerType.OnUpdate]: { + type: HandlerType.OnUpdate, + required: false, + validator: (snapExport: unknown): snapExport is OnUpdateHandler => { + return typeof snapExport === 'function'; + }, + }, + [HandlerType.OnKeyringRequest]: { + type: HandlerType.OnKeyringRequest, + required: true, + validator: (snapExport: unknown): snapExport is OnKeyringRequestHandler => { + return typeof snapExport === 'function'; + }, + }, + [HandlerType.OnHomePage]: { + type: HandlerType.OnHomePage, + required: true, + validator: (snapExport: unknown): snapExport is OnHomePageHandler => { + return typeof snapExport === 'function'; + }, + }, + [HandlerType.OnSettingsPage]: { + type: HandlerType.OnSettingsPage, + required: true, + validator: (snapExport: unknown): snapExport is OnSettingsPageHandler => { + return typeof snapExport === 'function'; + }, + }, + [HandlerType.OnSignature]: { + type: HandlerType.OnSignature, + required: true, + validator: (snapExport: unknown): snapExport is OnSignatureHandler => { + return typeof snapExport === 'function'; + }, + }, + [HandlerType.OnUserInput]: { + type: HandlerType.OnUserInput, + required: false, + validator: (snapExport: unknown): snapExport is OnUserInputHandler => { + return typeof snapExport === 'function'; + }, + }, + [HandlerType.OnAssetsLookup]: { + type: HandlerType.OnAssetsLookup, + required: true, + validator: (snapExport: unknown): snapExport is OnAssetsLookupHandler => { + return typeof snapExport === 'function'; + }, + }, + [HandlerType.OnAssetsConversion]: { + type: HandlerType.OnAssetsConversion, + required: true, + validator: ( + snapExport: unknown, + ): snapExport is OnAssetsConversionHandler => { + return typeof snapExport === 'function'; + }, + }, + [HandlerType.OnProtocolRequest]: { + type: HandlerType.OnProtocolRequest, + required: true, + validator: ( + snapExport: unknown, + ): snapExport is OnProtocolRequestHandler => { + return typeof snapExport === 'function'; + }, + }, +} as const; diff --git a/packages/snaps-utils/src/handler-types.ts b/packages/snaps-utils/src/handlers/types.ts similarity index 91% rename from packages/snaps-utils/src/handler-types.ts rename to packages/snaps-utils/src/handlers/types.ts index 210ac70115..3f6b71ba14 100644 --- a/packages/snaps-utils/src/handler-types.ts +++ b/packages/snaps-utils/src/handlers/types.ts @@ -1,3 +1,9 @@ +export type SnapRpcHookArgs = { + origin: string; + handler: HandlerType; + request: Record; +}; + export enum HandlerType { OnRpcRequest = 'onRpcRequest', OnSignature = 'onSignature', diff --git a/packages/snaps-utils/src/index.executionenv.ts b/packages/snaps-utils/src/index.executionenv.ts index db7dbf9123..231173cb3f 100644 --- a/packages/snaps-utils/src/index.executionenv.ts +++ b/packages/snaps-utils/src/index.executionenv.ts @@ -1,7 +1,6 @@ // Special entrypoint for execution environments for bundle sizing reasons export * from './errors'; export * from './handlers'; -export * from './handler-types'; export * from './iframe'; export * from './logging'; export * from './types'; diff --git a/packages/snaps-utils/src/index.ts b/packages/snaps-utils/src/index.ts index bc35f64f4d..b51634f29b 100644 --- a/packages/snaps-utils/src/index.ts +++ b/packages/snaps-utils/src/index.ts @@ -14,7 +14,6 @@ export * from './derivation-paths'; export * from './entropy'; export * from './errors'; export * from './handlers'; -export * from './handler-types'; export * from './iframe'; export * from './json'; export * from './json-rpc'; From be120d41652481c019b8c1c5b2d52e4e835fa5b2 Mon Sep 17 00:00:00 2001 From: Guillaume Roux Date: Tue, 1 Apr 2025 13:34:24 +0200 Subject: [PATCH 2/5] move handlers related code to `/handlers` --- packages/snaps-utils/src/eval-worker.ts | 4 +- .../exports.test.ts} | 2 +- .../src/{handlers.ts => handlers/exports.ts} | 108 +-------------- .../snaps-utils/src/handlers/home-page.ts | 15 ++ packages/snaps-utils/src/handlers/index.ts | 130 +----------------- .../snaps-utils/src/handlers/name-lookup.ts | 31 +++++ .../snaps-utils/src/handlers/settings-page.ts | 3 + .../snaps-utils/src/handlers/signature.ts | 3 + .../snaps-utils/src/handlers/transaction.ts | 35 +++++ packages/snaps-utils/src/handlers/types.ts | 26 +++- .../snaps-utils/src/index.executionenv.ts | 3 +- 11 files changed, 125 insertions(+), 235 deletions(-) rename packages/snaps-utils/src/{handlers.test.ts => handlers/exports.test.ts} (87%) rename packages/snaps-utils/src/{handlers.ts => handlers/exports.ts} (57%) create mode 100644 packages/snaps-utils/src/handlers/home-page.ts create mode 100644 packages/snaps-utils/src/handlers/name-lookup.ts create mode 100644 packages/snaps-utils/src/handlers/settings-page.ts create mode 100644 packages/snaps-utils/src/handlers/signature.ts create mode 100644 packages/snaps-utils/src/handlers/transaction.ts diff --git a/packages/snaps-utils/src/eval-worker.ts b/packages/snaps-utils/src/eval-worker.ts index 3da16f88e9..232dbc30dd 100644 --- a/packages/snaps-utils/src/eval-worker.ts +++ b/packages/snaps-utils/src/eval-worker.ts @@ -6,8 +6,8 @@ import 'ses/lockdown'; import { readFileSync } from 'fs'; -import type { HandlerType } from './handler-types'; -import { SNAP_EXPORT_NAMES } from './handler-types'; +import type { HandlerType } from './handlers'; +import { SNAP_EXPORT_NAMES } from './handlers'; import { generateMockEndowments } from './mock'; declare let lockdown: any, Compartment: any; diff --git a/packages/snaps-utils/src/handlers.test.ts b/packages/snaps-utils/src/handlers/exports.test.ts similarity index 87% rename from packages/snaps-utils/src/handlers.test.ts rename to packages/snaps-utils/src/handlers/exports.test.ts index 292cc93ce9..d54ae59719 100644 --- a/packages/snaps-utils/src/handlers.test.ts +++ b/packages/snaps-utils/src/handlers/exports.test.ts @@ -1,4 +1,4 @@ -import { SNAP_EXPORTS } from './handlers'; +import { SNAP_EXPORTS } from './exports'; describe('SNAP_EXPORTS', () => { describe('validator', () => { diff --git a/packages/snaps-utils/src/handlers.ts b/packages/snaps-utils/src/handlers/exports.ts similarity index 57% rename from packages/snaps-utils/src/handlers.ts rename to packages/snaps-utils/src/handlers/exports.ts index ef24aa4da7..bcf4cefe3f 100644 --- a/packages/snaps-utils/src/handlers.ts +++ b/packages/snaps-utils/src/handlers/exports.ts @@ -14,27 +14,8 @@ import type { OnUpdateHandler, OnUserInputHandler, } from '@metamask/snaps-sdk'; -import { ComponentOrElementStruct, SeverityLevel } from '@metamask/snaps-sdk'; -import { - assign, - literal, - nullable, - object, - optional, - string, - array, - size, - union, -} from '@metamask/superstruct'; -import type { SnapHandler } from './handler-types'; -import { HandlerType } from './handler-types'; - -export type SnapRpcHookArgs = { - origin: string; - handler: HandlerType; - request: Record; -}; +import { HandlerType } from './types'; export const SNAP_EXPORTS = { [HandlerType.OnRpcRequest]: { @@ -141,89 +122,4 @@ export const SNAP_EXPORTS = { }, } as const; -export const OnTransactionSeverityResponseStruct = object({ - severity: optional(literal(SeverityLevel.Critical)), -}); - -export const OnTransactionResponseWithIdStruct = assign( - OnTransactionSeverityResponseStruct, - object({ - id: string(), - }), -); - -export const OnTransactionResponseWithContentStruct = assign( - OnTransactionSeverityResponseStruct, - object({ - content: ComponentOrElementStruct, - }), -); - -export const OnTransactionResponseStruct = nullable( - union([ - OnTransactionResponseWithContentStruct, - OnTransactionResponseWithIdStruct, - ]), -); - -export const OnSignatureResponseStruct = OnTransactionResponseStruct; - -export const OnHomePageResponseWithContentStruct = object({ - content: ComponentOrElementStruct, -}); - -export const OnHomePageResponseWithIdStruct = object({ - id: string(), -}); - -export const OnHomePageResponseStruct = union([ - OnHomePageResponseWithContentStruct, - OnHomePageResponseWithIdStruct, -]); - -export const OnSettingsPageResponseStruct = OnHomePageResponseStruct; - -export const AddressResolutionStruct = object({ - protocol: string(), - resolvedDomain: string(), -}); - -export const DomainResolutionStruct = object({ - protocol: string(), - resolvedAddress: string(), - domainName: string(), -}); - -export const AddressResolutionResponseStruct = object({ - resolvedDomains: size(array(AddressResolutionStruct), 1, Infinity), -}); - -export const DomainResolutionResponseStruct = object({ - resolvedAddresses: size(array(DomainResolutionStruct), 1, Infinity), -}); - -export const OnNameLookupResponseStruct = nullable( - union([AddressResolutionResponseStruct, DomainResolutionResponseStruct]), -); - -/** - * Utility type for getting the handler function type from a handler type. - */ -export type HandlerFunction = - Type['validator'] extends (snapExport: unknown) => snapExport is infer Handler - ? Handler - : never; - -/** - * All the function-based handlers that a snap can implement. - */ -export type SnapFunctionExports = { - [Key in keyof typeof SNAP_EXPORTS]?: HandlerFunction< - (typeof SNAP_EXPORTS)[Key] - >; -}; - -/** - * All handlers that a snap can implement. - */ -export type SnapExports = SnapFunctionExports; +export const SNAP_EXPORT_NAMES = Object.values(HandlerType); diff --git a/packages/snaps-utils/src/handlers/home-page.ts b/packages/snaps-utils/src/handlers/home-page.ts new file mode 100644 index 0000000000..fce4b94643 --- /dev/null +++ b/packages/snaps-utils/src/handlers/home-page.ts @@ -0,0 +1,15 @@ +import { ComponentOrElementStruct } from '@metamask/snaps-sdk'; +import { object, string, union } from '@metamask/superstruct'; + +export const OnHomePageResponseWithContentStruct = object({ + content: ComponentOrElementStruct, +}); + +export const OnHomePageResponseWithIdStruct = object({ + id: string(), +}); + +export const OnHomePageResponseStruct = union([ + OnHomePageResponseWithContentStruct, + OnHomePageResponseWithIdStruct, +]); diff --git a/packages/snaps-utils/src/handlers/index.ts b/packages/snaps-utils/src/handlers/index.ts index ed6178046f..0c164de707 100644 --- a/packages/snaps-utils/src/handlers/index.ts +++ b/packages/snaps-utils/src/handlers/index.ts @@ -1,123 +1,7 @@ -import type { - OnAssetsConversionHandler, - OnAssetsLookupHandler, - OnCronjobHandler, - OnHomePageHandler, - OnInstallHandler, - OnKeyringRequestHandler, - OnNameLookupHandler, - OnProtocolRequestHandler, - OnRpcRequestHandler, - OnSettingsPageHandler, - OnSignatureHandler, - OnTransactionHandler, - OnUpdateHandler, - OnUserInputHandler, -} from '@metamask/snaps-sdk'; - -import { HandlerType } from './types'; - -export const SNAP_EXPORTS = { - [HandlerType.OnRpcRequest]: { - type: HandlerType.OnRpcRequest, - required: true, - validator: (snapExport: unknown): snapExport is OnRpcRequestHandler => { - return typeof snapExport === 'function'; - }, - }, - [HandlerType.OnTransaction]: { - type: HandlerType.OnTransaction, - required: true, - validator: (snapExport: unknown): snapExport is OnTransactionHandler => { - return typeof snapExport === 'function'; - }, - }, - [HandlerType.OnCronjob]: { - type: HandlerType.OnCronjob, - required: true, - validator: (snapExport: unknown): snapExport is OnCronjobHandler => { - return typeof snapExport === 'function'; - }, - }, - [HandlerType.OnNameLookup]: { - type: HandlerType.OnNameLookup, - required: true, - validator: (snapExport: unknown): snapExport is OnNameLookupHandler => { - return typeof snapExport === 'function'; - }, - }, - [HandlerType.OnInstall]: { - type: HandlerType.OnInstall, - required: false, - validator: (snapExport: unknown): snapExport is OnInstallHandler => { - return typeof snapExport === 'function'; - }, - }, - [HandlerType.OnUpdate]: { - type: HandlerType.OnUpdate, - required: false, - validator: (snapExport: unknown): snapExport is OnUpdateHandler => { - return typeof snapExport === 'function'; - }, - }, - [HandlerType.OnKeyringRequest]: { - type: HandlerType.OnKeyringRequest, - required: true, - validator: (snapExport: unknown): snapExport is OnKeyringRequestHandler => { - return typeof snapExport === 'function'; - }, - }, - [HandlerType.OnHomePage]: { - type: HandlerType.OnHomePage, - required: true, - validator: (snapExport: unknown): snapExport is OnHomePageHandler => { - return typeof snapExport === 'function'; - }, - }, - [HandlerType.OnSettingsPage]: { - type: HandlerType.OnSettingsPage, - required: true, - validator: (snapExport: unknown): snapExport is OnSettingsPageHandler => { - return typeof snapExport === 'function'; - }, - }, - [HandlerType.OnSignature]: { - type: HandlerType.OnSignature, - required: true, - validator: (snapExport: unknown): snapExport is OnSignatureHandler => { - return typeof snapExport === 'function'; - }, - }, - [HandlerType.OnUserInput]: { - type: HandlerType.OnUserInput, - required: false, - validator: (snapExport: unknown): snapExport is OnUserInputHandler => { - return typeof snapExport === 'function'; - }, - }, - [HandlerType.OnAssetsLookup]: { - type: HandlerType.OnAssetsLookup, - required: true, - validator: (snapExport: unknown): snapExport is OnAssetsLookupHandler => { - return typeof snapExport === 'function'; - }, - }, - [HandlerType.OnAssetsConversion]: { - type: HandlerType.OnAssetsConversion, - required: true, - validator: ( - snapExport: unknown, - ): snapExport is OnAssetsConversionHandler => { - return typeof snapExport === 'function'; - }, - }, - [HandlerType.OnProtocolRequest]: { - type: HandlerType.OnProtocolRequest, - required: true, - validator: ( - snapExport: unknown, - ): snapExport is OnProtocolRequestHandler => { - return typeof snapExport === 'function'; - }, - }, -} as const; +export * from './exports'; +export * from './home-page'; +export * from './name-lookup'; +export * from './settings-page'; +export * from './signature'; +export * from './transaction'; +export * from './types'; diff --git a/packages/snaps-utils/src/handlers/name-lookup.ts b/packages/snaps-utils/src/handlers/name-lookup.ts new file mode 100644 index 0000000000..c99d2313c7 --- /dev/null +++ b/packages/snaps-utils/src/handlers/name-lookup.ts @@ -0,0 +1,31 @@ +import { + array, + nullable, + object, + size, + string, + union, +} from '@metamask/superstruct'; + +export const AddressResolutionStruct = object({ + protocol: string(), + resolvedDomain: string(), +}); + +export const DomainResolutionStruct = object({ + protocol: string(), + resolvedAddress: string(), + domainName: string(), +}); + +export const AddressResolutionResponseStruct = object({ + resolvedDomains: size(array(AddressResolutionStruct), 1, Infinity), +}); + +export const DomainResolutionResponseStruct = object({ + resolvedAddresses: size(array(DomainResolutionStruct), 1, Infinity), +}); + +export const OnNameLookupResponseStruct = nullable( + union([AddressResolutionResponseStruct, DomainResolutionResponseStruct]), +); diff --git a/packages/snaps-utils/src/handlers/settings-page.ts b/packages/snaps-utils/src/handlers/settings-page.ts new file mode 100644 index 0000000000..4876095e2f --- /dev/null +++ b/packages/snaps-utils/src/handlers/settings-page.ts @@ -0,0 +1,3 @@ +import { OnHomePageResponseStruct } from './home-page'; + +export const OnSettingsPageResponseStruct = OnHomePageResponseStruct; diff --git a/packages/snaps-utils/src/handlers/signature.ts b/packages/snaps-utils/src/handlers/signature.ts new file mode 100644 index 0000000000..6073ea65e8 --- /dev/null +++ b/packages/snaps-utils/src/handlers/signature.ts @@ -0,0 +1,3 @@ +import { OnTransactionResponseStruct } from './transaction'; + +export const OnSignatureResponseStruct = OnTransactionResponseStruct; diff --git a/packages/snaps-utils/src/handlers/transaction.ts b/packages/snaps-utils/src/handlers/transaction.ts new file mode 100644 index 0000000000..66cc708207 --- /dev/null +++ b/packages/snaps-utils/src/handlers/transaction.ts @@ -0,0 +1,35 @@ +import { ComponentOrElementStruct, SeverityLevel } from '@metamask/snaps-sdk'; +import { + literal, + object, + optional, + string, + assign, + nullable, + union, +} from '@metamask/superstruct'; + +export const OnTransactionSeverityResponseStruct = object({ + severity: optional(literal(SeverityLevel.Critical)), +}); + +export const OnTransactionResponseWithIdStruct = assign( + OnTransactionSeverityResponseStruct, + object({ + id: string(), + }), +); + +export const OnTransactionResponseWithContentStruct = assign( + OnTransactionSeverityResponseStruct, + object({ + content: ComponentOrElementStruct, + }), +); + +export const OnTransactionResponseStruct = nullable( + union([ + OnTransactionResponseWithContentStruct, + OnTransactionResponseWithIdStruct, + ]), +); diff --git a/packages/snaps-utils/src/handlers/types.ts b/packages/snaps-utils/src/handlers/types.ts index 3f6b71ba14..bd68948828 100644 --- a/packages/snaps-utils/src/handlers/types.ts +++ b/packages/snaps-utils/src/handlers/types.ts @@ -1,9 +1,33 @@ +import type { SNAP_EXPORTS } from './exports'; + export type SnapRpcHookArgs = { origin: string; handler: HandlerType; request: Record; }; +/** + * Utility type for getting the handler function type from a handler type. + */ +export type HandlerFunction = + Type['validator'] extends (snapExport: unknown) => snapExport is infer Handler + ? Handler + : never; + +/** + * All the function-based handlers that a snap can implement. + */ +export type SnapFunctionExports = { + [Key in keyof typeof SNAP_EXPORTS]?: HandlerFunction< + (typeof SNAP_EXPORTS)[Key] + >; +}; + +/** + * All handlers that a snap can implement. + */ +export type SnapExports = SnapFunctionExports; + export enum HandlerType { OnRpcRequest = 'onRpcRequest', OnSignature = 'onSignature', @@ -44,5 +68,3 @@ export type SnapHandler = { */ validator: (snapExport: unknown) => boolean; }; - -export const SNAP_EXPORT_NAMES = Object.values(HandlerType); diff --git a/packages/snaps-utils/src/index.executionenv.ts b/packages/snaps-utils/src/index.executionenv.ts index 231173cb3f..9ba4af102f 100644 --- a/packages/snaps-utils/src/index.executionenv.ts +++ b/packages/snaps-utils/src/index.executionenv.ts @@ -1,6 +1,7 @@ // Special entrypoint for execution environments for bundle sizing reasons export * from './errors'; -export * from './handlers'; +export type { SnapHandler } from './handlers'; +export { HandlerType, SNAP_EXPORT_NAMES } from './handlers'; export * from './iframe'; export * from './logging'; export * from './types'; From 34c788f14190f73c8f8e488ade781dd912a38064 Mon Sep 17 00:00:00 2001 From: Guillaume Roux Date: Tue, 1 Apr 2025 14:35:15 +0200 Subject: [PATCH 3/5] update tests --- packages/snaps-utils/coverage.json | 4 ++-- .../snaps-utils/src/handlers/exports.test.ts | 23 ++++++++++++++++++- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/packages/snaps-utils/coverage.json b/packages/snaps-utils/coverage.json index dcf2e2b964..fe235fd33d 100644 --- a/packages/snaps-utils/coverage.json +++ b/packages/snaps-utils/coverage.json @@ -1,6 +1,6 @@ { "branches": 99.75, "functions": 98.94, - "lines": 99.62, - "statements": 96.99 + "lines": 98.55, + "statements": 97.03 } diff --git a/packages/snaps-utils/src/handlers/exports.test.ts b/packages/snaps-utils/src/handlers/exports.test.ts index d54ae59719..cb0a5b617d 100644 --- a/packages/snaps-utils/src/handlers/exports.test.ts +++ b/packages/snaps-utils/src/handlers/exports.test.ts @@ -1,4 +1,4 @@ -import { SNAP_EXPORTS } from './exports'; +import { SNAP_EXPORT_NAMES, SNAP_EXPORTS } from './exports'; describe('SNAP_EXPORTS', () => { describe('validator', () => { @@ -11,3 +11,24 @@ describe('SNAP_EXPORTS', () => { ); }); }); + +describe('SNAP_EXPORT_NAMES', () => { + it('is an array of all handler types', () => { + expect(SNAP_EXPORT_NAMES).toStrictEqual([ + 'onRpcRequest', + 'onSignature', + 'onTransaction', + 'onCronjob', + 'onInstall', + 'onUpdate', + 'onNameLookup', + 'onKeyringRequest', + 'onHomePage', + 'onSettingsPage', + 'onUserInput', + 'onAssetsLookup', + 'onAssetsConversion', + 'onProtocolRequest', + ]); + }); +}); From e442cead5d106ae56697f59cf6a7993f5a6be92e Mon Sep 17 00:00:00 2001 From: Guillaume Roux Date: Tue, 1 Apr 2025 15:26:24 +0200 Subject: [PATCH 4/5] update execution env imports --- packages/snaps-utils/src/handlers/index.executionenv.ts | 2 ++ packages/snaps-utils/src/index.executionenv.ts | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 packages/snaps-utils/src/handlers/index.executionenv.ts diff --git a/packages/snaps-utils/src/handlers/index.executionenv.ts b/packages/snaps-utils/src/handlers/index.executionenv.ts new file mode 100644 index 0000000000..efd6355178 --- /dev/null +++ b/packages/snaps-utils/src/handlers/index.executionenv.ts @@ -0,0 +1,2 @@ +export { HandlerType, type SnapHandler } from './types'; +export { SNAP_EXPORT_NAMES } from './exports'; diff --git a/packages/snaps-utils/src/index.executionenv.ts b/packages/snaps-utils/src/index.executionenv.ts index 9ba4af102f..231173cb3f 100644 --- a/packages/snaps-utils/src/index.executionenv.ts +++ b/packages/snaps-utils/src/index.executionenv.ts @@ -1,7 +1,6 @@ // Special entrypoint for execution environments for bundle sizing reasons export * from './errors'; -export type { SnapHandler } from './handlers'; -export { HandlerType, SNAP_EXPORT_NAMES } from './handlers'; +export * from './handlers'; export * from './iframe'; export * from './logging'; export * from './types'; From 4a1e8072b44242f219540bb38855f4ae52c3be4f Mon Sep 17 00:00:00 2001 From: Guillaume Roux Date: Tue, 1 Apr 2025 15:33:11 +0200 Subject: [PATCH 5/5] fix execution env imports --- packages/snaps-utils/src/handlers/index.executionenv.ts | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 packages/snaps-utils/src/handlers/index.executionenv.ts diff --git a/packages/snaps-utils/src/handlers/index.executionenv.ts b/packages/snaps-utils/src/handlers/index.executionenv.ts deleted file mode 100644 index efd6355178..0000000000 --- a/packages/snaps-utils/src/handlers/index.executionenv.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { HandlerType, type SnapHandler } from './types'; -export { SNAP_EXPORT_NAMES } from './exports';