From ecfe6cfad3a6da1212c69f997a3f4fe91c482c8f Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Tue, 4 Feb 2025 12:37:44 +0100 Subject: [PATCH 1/3] Add `name` and `state` to `ExecutionService` type --- .../src/services/AbstractExecutionService.ts | 4 ++++ packages/snaps-controllers/src/services/ExecutionService.ts | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/packages/snaps-controllers/src/services/AbstractExecutionService.ts b/packages/snaps-controllers/src/services/AbstractExecutionService.ts index 12b2a2632c..f883dab794 100644 --- a/packages/snaps-controllers/src/services/AbstractExecutionService.ts +++ b/packages/snaps-controllers/src/services/AbstractExecutionService.ts @@ -64,6 +64,10 @@ export type TerminateJobArgs = Partial> & export abstract class AbstractExecutionService implements ExecutionService { + name = 'ExecutionService' as const; + + state = null; + #snapRpcHooks: Map; // Cannot be hash private yet because of tests. diff --git a/packages/snaps-controllers/src/services/ExecutionService.ts b/packages/snaps-controllers/src/services/ExecutionService.ts index 579839a51f..d9ac4fe89f 100644 --- a/packages/snaps-controllers/src/services/ExecutionService.ts +++ b/packages/snaps-controllers/src/services/ExecutionService.ts @@ -12,6 +12,11 @@ type HandleRpcRequest = ( ) => Promise; export interface ExecutionService { + // These fields are required for modular initialisation of the execution + // service in the MetaMask extension. + name: 'ExecutionService'; + state: null; + terminateSnap: TerminateSnap; terminateAllSnaps: TerminateAll; executeSnap: ExecuteSnap; From 86e97dbf62bad4dca1aba4bb54e4a4e01060a159 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Tue, 4 Feb 2025 13:03:42 +0100 Subject: [PATCH 2/3] Add `name` and `state` to `MultichainRouter` --- packages/snaps-controllers/src/multichain/MultichainRouter.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/snaps-controllers/src/multichain/MultichainRouter.ts b/packages/snaps-controllers/src/multichain/MultichainRouter.ts index d352ea6f94..e1c25ac076 100644 --- a/packages/snaps-controllers/src/multichain/MultichainRouter.ts +++ b/packages/snaps-controllers/src/multichain/MultichainRouter.ts @@ -114,6 +114,10 @@ type ProtocolSnap = { const name = 'MultichainRouter'; export class MultichainRouter { + name: typeof name = name; + + state = null; + #messenger: MultichainRouterMessenger; #withSnapKeyring: WithSnapKeyringFunction; From c99af3311473b5f3edebaecd7e7b73adce2eaa4d Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Tue, 4 Feb 2025 13:06:36 +0100 Subject: [PATCH 3/3] Use `controllerName` --- .../snaps-controllers/src/services/AbstractExecutionService.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/snaps-controllers/src/services/AbstractExecutionService.ts b/packages/snaps-controllers/src/services/AbstractExecutionService.ts index f883dab794..53b64659d0 100644 --- a/packages/snaps-controllers/src/services/AbstractExecutionService.ts +++ b/packages/snaps-controllers/src/services/AbstractExecutionService.ts @@ -64,7 +64,7 @@ export type TerminateJobArgs = Partial> & export abstract class AbstractExecutionService implements ExecutionService { - name = 'ExecutionService' as const; + name: typeof controllerName = controllerName; state = null;