diff --git a/app/scripts/controller-init/messengers/index.ts b/app/scripts/controller-init/messengers/index.ts index a00540f4aa15..faf15fea021b 100644 --- a/app/scripts/controller-init/messengers/index.ts +++ b/app/scripts/controller-init/messengers/index.ts @@ -1,3 +1,4 @@ +import { noop } from 'lodash'; import { getPPOMControllerMessenger, getPPOMControllerInitMessenger, @@ -26,18 +27,23 @@ import { export const CONTROLLER_MESSENGERS = { CronjobController: { getMessenger: getCronjobControllerMessenger, + getInitMessenger: noop, }, ExecutionService: { getMessenger: getExecutionServiceMessenger, + getInitMessenger: noop, }, MultichainAssetsController: { getMessenger: getMultichainAssetsControllerMessenger, + getInitMessenger: noop, }, MultichainBalancesController: { getMessenger: getMultichainBalancesControllerMessenger, + getInitMessenger: noop, }, MultichainTransactionsController: { getMessenger: getMultichainTransactionsControllerMessenger, + getInitMessenger: noop, }, RateLimitController: { getMessenger: getRateLimitControllerMessenger, @@ -45,6 +51,7 @@ export const CONTROLLER_MESSENGERS = { }, SnapsRegistry: { getMessenger: getSnapsRegistryMessenger, + getInitMessenger: noop, }, SnapController: { getMessenger: getSnapControllerMessenger, @@ -52,9 +59,11 @@ export const CONTROLLER_MESSENGERS = { }, SnapInsightsController: { getMessenger: getSnapInsightsControllerMessenger, + getInitMessenger: noop, }, SnapInterfaceController: { getMessenger: getSnapInterfaceControllerMessenger, + getInitMessenger: noop, }, PPOMController: { getMessenger: getPPOMControllerMessenger, diff --git a/app/scripts/controller-init/multichain/multichain-assets-controller-init.test.ts b/app/scripts/controller-init/multichain/multichain-assets-controller-init.test.ts index fa2f8e470e6a..0763242da197 100644 --- a/app/scripts/controller-init/multichain/multichain-assets-controller-init.test.ts +++ b/app/scripts/controller-init/multichain/multichain-assets-controller-init.test.ts @@ -20,6 +20,7 @@ function buildInitRequestMock(): jest.Mocked< controllerMessenger: getMultichainAssetsControllerMessenger( baseControllerMessenger, ), + initMessenger: undefined, }; } diff --git a/app/scripts/controller-init/multichain/multichain-balances-controller-init.test.ts b/app/scripts/controller-init/multichain/multichain-balances-controller-init.test.ts index 453aa81092a0..c51e9e1e454f 100644 --- a/app/scripts/controller-init/multichain/multichain-balances-controller-init.test.ts +++ b/app/scripts/controller-init/multichain/multichain-balances-controller-init.test.ts @@ -20,6 +20,7 @@ function buildInitRequestMock(): jest.Mocked< controllerMessenger: getMultichainBalancesControllerMessenger( baseControllerMessenger, ), + initMessenger: undefined, }; } diff --git a/app/scripts/controller-init/multichain/multichain-transactions-controller-init.test.ts b/app/scripts/controller-init/multichain/multichain-transactions-controller-init.test.ts index ca41b5b177a5..f611b17e4ebf 100644 --- a/app/scripts/controller-init/multichain/multichain-transactions-controller-init.test.ts +++ b/app/scripts/controller-init/multichain/multichain-transactions-controller-init.test.ts @@ -20,6 +20,7 @@ function buildInitRequestMock(): jest.Mocked< controllerMessenger: getMultichainTransactionsControllerMessenger( baseControllerMessenger, ), + initMessenger: undefined, }; } diff --git a/app/scripts/controller-init/snaps/cronjob-controller-init.test.ts b/app/scripts/controller-init/snaps/cronjob-controller-init.test.ts index 932a956f8d8a..f31e28747af4 100644 --- a/app/scripts/controller-init/snaps/cronjob-controller-init.test.ts +++ b/app/scripts/controller-init/snaps/cronjob-controller-init.test.ts @@ -21,6 +21,7 @@ function getInitRequestMock(): jest.Mocked< const requestMock = { ...buildControllerInitRequestMock(), controllerMessenger: getCronjobControllerMessenger(baseMessenger), + initMessenger: undefined, }; return requestMock; diff --git a/app/scripts/controller-init/snaps/execution-service-init.test.ts b/app/scripts/controller-init/snaps/execution-service-init.test.ts index d5b877201e40..033baedd321a 100644 --- a/app/scripts/controller-init/snaps/execution-service-init.test.ts +++ b/app/scripts/controller-init/snaps/execution-service-init.test.ts @@ -24,6 +24,7 @@ function getInitRequestMock(): jest.Mocked< const requestMock = { ...buildControllerInitRequestMock(), controllerMessenger: getExecutionServiceMessenger(baseMessenger), + initMessenger: undefined, }; return requestMock; diff --git a/app/scripts/controller-init/snaps/snap-insights-controller-init.test.ts b/app/scripts/controller-init/snaps/snap-insights-controller-init.test.ts index bd83b4abc794..e0db4f98e0f5 100644 --- a/app/scripts/controller-init/snaps/snap-insights-controller-init.test.ts +++ b/app/scripts/controller-init/snaps/snap-insights-controller-init.test.ts @@ -18,6 +18,7 @@ function getInitRequestMock(): jest.Mocked< const requestMock = { ...buildControllerInitRequestMock(), controllerMessenger: getSnapInsightsControllerMessenger(baseMessenger), + initMessenger: undefined, }; return requestMock; diff --git a/app/scripts/controller-init/snaps/snap-interface-controller-init.test.ts b/app/scripts/controller-init/snaps/snap-interface-controller-init.test.ts index 2101ed1c706b..588c7eb7bac1 100644 --- a/app/scripts/controller-init/snaps/snap-interface-controller-init.test.ts +++ b/app/scripts/controller-init/snaps/snap-interface-controller-init.test.ts @@ -18,6 +18,7 @@ function getInitRequestMock(): jest.Mocked< const requestMock = { ...buildControllerInitRequestMock(), controllerMessenger: getSnapInterfaceControllerMessenger(baseMessenger), + initMessenger: undefined, }; return requestMock; diff --git a/app/scripts/controller-init/snaps/snaps-registry-init.test.ts b/app/scripts/controller-init/snaps/snaps-registry-init.test.ts index e26d51a7f588..46e33068442f 100644 --- a/app/scripts/controller-init/snaps/snaps-registry-init.test.ts +++ b/app/scripts/controller-init/snaps/snaps-registry-init.test.ts @@ -18,6 +18,7 @@ function getInitRequestMock(): jest.Mocked< const requestMock = { ...buildControllerInitRequestMock(), controllerMessenger: getSnapsRegistryMessenger(baseMessenger), + initMessenger: undefined, }; return requestMock; diff --git a/app/scripts/controller-init/types.ts b/app/scripts/controller-init/types.ts index 1f16af803bc4..9af50172feea 100644 --- a/app/scripts/controller-init/types.ts +++ b/app/scripts/controller-init/types.ts @@ -161,15 +161,13 @@ export type ControllerInitRequest< message: string, url?: string, ) => Promise; -} & (InitMessengerType extends BaseRestrictedControllerMessenger - ? { - /** - * Required initialization messenger instance. - * Generated using the callback specified in `getInitMessengerCallback`. - */ - initMessenger: InitMessengerType; - } - : unknown); + + /** + * Required initialization messenger instance. + * Generated using the callback specified in `getInitMessengerCallback`. + */ + initMessenger: InitMessengerType; +}; /** * A single background API method available to the UI. diff --git a/app/scripts/controller-init/utils.ts b/app/scripts/controller-init/utils.ts index 2bbaf7abf4ea..b9eba4498651 100644 --- a/app/scripts/controller-init/utils.ts +++ b/app/scripts/controller-init/utils.ts @@ -29,14 +29,26 @@ export type InitControllersResult = { type BaseControllerInitRequest = ControllerInitRequest< BaseRestrictedControllerMessenger, - BaseRestrictedControllerMessenger + BaseRestrictedControllerMessenger | void >; type ControllerMessengerCallback = ( BaseControllerMessenger: BaseControllerMessenger, ) => BaseRestrictedControllerMessenger; -type ControllersToInitialize = 'PPOMController' | 'TransactionController'; +export type ControllersToInitialize = + | 'CronjobController' + | 'ExecutionService' + | 'MultichainAssetsController' + | 'MultichainBalancesController' + | 'MultichainTransactionsController' + | 'RateLimitController' + | 'SnapsRegistry' + | 'SnapController' + | 'SnapInsightsController' + | 'SnapInterfaceController' + | 'PPOMController' + | 'TransactionController'; type InitFunction = ControllerInitFunction< @@ -101,7 +113,6 @@ export function initControllers({ const messengerCallbacks = CONTROLLER_MESSENGERS[controllerName]; const controllerMessengerCallback = - // @ts-expect-error TODO: Resolve mismatch between base-controller versions. messengerCallbacks?.getMessenger as ControllerMessengerCallback; const initMessengerCallback = @@ -120,11 +131,8 @@ export function initControllers({ initMessenger, }; - // TODO: Remove @ts-expect-error once base-controller version mismatch is resolved - // Instead of suppressing all type errors, we'll be specific about the controllerMessenger mismatch const result = initFunction({ ...finalInitRequest, - // @ts-expect-error TODO: Resolve mismatch between base-controller versions. controllerMessenger: finalInitRequest.controllerMessenger, }); @@ -144,8 +152,8 @@ export function initControllers({ const memStateKey = memStateKeyRaw === null ? undefined : memStateKeyRaw ?? controllerName; - partialControllersByName[controllerName] = controller as Controller & - undefined; + // @ts-expect-error: Union too complex. + partialControllersByName[controllerName] = controller; controllerApi = { ...controllerApi,