diff --git a/packages/snaps-controllers/CHANGELOG.md b/packages/snaps-controllers/CHANGELOG.md index 28ea6c8921..af67fef689 100644 --- a/packages/snaps-controllers/CHANGELOG.md +++ b/packages/snaps-controllers/CHANGELOG.md @@ -67,6 +67,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - **BREAKING:**: Rename `MultichainRouter` to `MultichainRoutingService` and update action types accordingly ([#3913](https://github.com/MetaMask/snaps/pull/3913)) - This is consistent with the naming of other services. - **BREAKING:** `MultichainRoutingService` now requires `SnapController:getRunnableSnaps` instead of `SnapController:getAllSnaps` ([#3913](https://github.com/MetaMask/snaps/pull/3913)) +- **BREAKING:** `SnapInsightsController` now requires `SnapController:getRunnableSnaps` instead of `SnapController:getAllSnaps` ([#3915](https://github.com/MetaMask/snaps/pull/3915)) ### Removed diff --git a/packages/snaps-controllers/src/insights/SnapInsightsController.test.ts b/packages/snaps-controllers/src/insights/SnapInsightsController.test.ts index 5dfee842aa..ee23a5fd30 100644 --- a/packages/snaps-controllers/src/insights/SnapInsightsController.test.ts +++ b/packages/snaps-controllers/src/insights/SnapInsightsController.test.ts @@ -31,9 +31,15 @@ describe('SnapInsightsController', () => { }, ); - rootMessenger.registerActionHandler('SnapController:getAllSnaps', () => { - return [getTruncatedSnap(), getTruncatedSnap({ id: MOCK_LOCAL_SNAP_ID })]; - }); + rootMessenger.registerActionHandler( + 'SnapController:getRunnableSnaps', + () => { + return [ + getTruncatedSnap(), + getTruncatedSnap({ id: MOCK_LOCAL_SNAP_ID }), + ]; + }, + ); rootMessenger.registerActionHandler( 'SnapController:handleRequest', @@ -157,9 +163,15 @@ describe('SnapInsightsController', () => { }, ); - rootMessenger.registerActionHandler('SnapController:getAllSnaps', () => { - return [getTruncatedSnap(), getTruncatedSnap({ id: MOCK_LOCAL_SNAP_ID })]; - }); + rootMessenger.registerActionHandler( + 'SnapController:getRunnableSnaps', + () => { + return [ + getTruncatedSnap(), + getTruncatedSnap({ id: MOCK_LOCAL_SNAP_ID }), + ]; + }, + ); rootMessenger.registerActionHandler( 'SnapController:handleRequest', @@ -285,9 +297,15 @@ describe('SnapInsightsController', () => { messenger: controllerMessenger, }); - rootMessenger.registerActionHandler('SnapController:getAllSnaps', () => { - return [getTruncatedSnap(), getTruncatedSnap({ id: MOCK_LOCAL_SNAP_ID })]; - }); + rootMessenger.registerActionHandler( + 'SnapController:getRunnableSnaps', + () => { + return [ + getTruncatedSnap(), + getTruncatedSnap({ id: MOCK_LOCAL_SNAP_ID }), + ]; + }, + ); rootMessenger.registerActionHandler( 'SnapController:handleRequest', @@ -388,9 +406,15 @@ describe('SnapInsightsController', () => { messenger: controllerMessenger, }); - rootMessenger.registerActionHandler('SnapController:getAllSnaps', () => { - return [getTruncatedSnap(), getTruncatedSnap({ id: MOCK_LOCAL_SNAP_ID })]; - }); + rootMessenger.registerActionHandler( + 'SnapController:getRunnableSnaps', + () => { + return [ + getTruncatedSnap(), + getTruncatedSnap({ id: MOCK_LOCAL_SNAP_ID }), + ]; + }, + ); rootMessenger.registerActionHandler( 'SnapController:handleRequest', @@ -456,9 +480,15 @@ describe('SnapInsightsController', () => { it('ignores insight if transaction has already been signed', async () => { const rootMessenger = getRootSnapInsightsControllerMessenger(); - rootMessenger.registerActionHandler('SnapController:getAllSnaps', () => { - return [getTruncatedSnap(), getTruncatedSnap({ id: MOCK_LOCAL_SNAP_ID })]; - }); + rootMessenger.registerActionHandler( + 'SnapController:getRunnableSnaps', + () => { + return [ + getTruncatedSnap(), + getTruncatedSnap({ id: MOCK_LOCAL_SNAP_ID }), + ]; + }, + ); const { resolve, promise } = createDeferredPromise(); @@ -556,9 +586,15 @@ describe('SnapInsightsController', () => { messenger: controllerMessenger, }); - rootMessenger.registerActionHandler('SnapController:getAllSnaps', () => { - return [getTruncatedSnap(), getTruncatedSnap({ id: MOCK_LOCAL_SNAP_ID })]; - }); + rootMessenger.registerActionHandler( + 'SnapController:getRunnableSnaps', + () => { + return [ + getTruncatedSnap(), + getTruncatedSnap({ id: MOCK_LOCAL_SNAP_ID }), + ]; + }, + ); const { resolve, promise } = createDeferredPromise(); diff --git a/packages/snaps-controllers/src/insights/SnapInsightsController.ts b/packages/snaps-controllers/src/insights/SnapInsightsController.ts index 057dd2860b..9517252bda 100644 --- a/packages/snaps-controllers/src/insights/SnapInsightsController.ts +++ b/packages/snaps-controllers/src/insights/SnapInsightsController.ts @@ -20,14 +20,13 @@ import { hasProperty, hexToBigInt } from '@metamask/utils'; import type { SnapInterfaceControllerDeleteInterfaceAction } from '../interface'; import type { - SnapControllerGetAllSnapsAction, + SnapControllerGetRunnableSnapsAction, SnapControllerHandleRequestAction, } from '../snaps'; -import { getRunnableSnaps } from '../snaps'; import type { TransactionControllerUnapprovedTransactionAddedEvent, TransactionMeta, - SignatureStateChange, + SignatureControllerStateChangeEvent, SignatureControllerState, StateSignature, TransactionControllerTransactionStatusUpdatedEvent, @@ -36,9 +35,9 @@ import type { const controllerName = 'SnapInsightsController'; export type SnapInsightsControllerAllowedActions = - | SnapControllerHandleRequestAction - | SnapControllerGetAllSnapsAction | GetPermissions + | SnapControllerGetRunnableSnapsAction + | SnapControllerHandleRequestAction | SnapInterfaceControllerDeleteInterfaceAction; export type SnapInsightsControllerGetStateAction = ControllerGetStateAction< @@ -59,7 +58,7 @@ export type SnapInsightControllerEvents = SnapInsightControllerStateChangeEvent; export type SnapInsightsControllerAllowedEvents = | TransactionControllerUnapprovedTransactionAddedEvent | TransactionControllerTransactionStatusUpdatedEvent - | SignatureStateChange; + | SignatureControllerStateChangeEvent; export type SnapInsightsControllerMessenger = Messenger< typeof controllerName, @@ -146,8 +145,9 @@ export class SnapInsightsController extends BaseController< * @returns A list of objects containing Snap IDs and the permission object. */ #getSnapsWithPermission(permissionName: string) { - const allSnaps = this.messenger.call('SnapController:getAllSnaps'); - const filteredSnaps = getRunnableSnaps(allSnaps); + const filteredSnaps = this.messenger.call( + 'SnapController:getRunnableSnaps', + ); return filteredSnaps.reduce((accumulator, snap) => { const permissions = this.messenger.call( diff --git a/packages/snaps-controllers/src/insights/index.ts b/packages/snaps-controllers/src/insights/index.ts index 2cd0140cc6..d0d0fa10c5 100644 --- a/packages/snaps-controllers/src/insights/index.ts +++ b/packages/snaps-controllers/src/insights/index.ts @@ -1 +1,6 @@ -export * from './SnapInsightsController'; +export type { + SnapInsight, + SnapInsightsControllerMessenger, + SnapInsightsControllerState, +} from './SnapInsightsController'; +export { SnapInsightsController } from './SnapInsightsController'; diff --git a/packages/snaps-controllers/src/test-utils/controller.tsx b/packages/snaps-controllers/src/test-utils/controller.tsx index 42c735cf56..b166da106c 100644 --- a/packages/snaps-controllers/src/test-utils/controller.tsx +++ b/packages/snaps-controllers/src/test-utils/controller.tsx @@ -953,7 +953,7 @@ export const getRestrictedSnapInsightsControllerMessenger = ( messenger.delegate({ actions: [ 'PermissionController:getPermissions', - 'SnapController:getAllSnaps', + 'SnapController:getRunnableSnaps', 'SnapController:handleRequest', 'SnapInterfaceController:deleteInterface', ], diff --git a/packages/snaps-controllers/src/types/controllers.ts b/packages/snaps-controllers/src/types/controllers.ts index 1d24aab183..20a1085e92 100644 --- a/packages/snaps-controllers/src/types/controllers.ts +++ b/packages/snaps-controllers/src/types/controllers.ts @@ -155,7 +155,7 @@ export type SignatureControllerState = { unapprovedTypedMessagesCount: number; }; -export type SignatureStateChange = ControllerStateChangeEvent< +export type SignatureControllerStateChangeEvent = ControllerStateChangeEvent< 'SignatureController', SignatureControllerState >;