From d81037007bd70ec26216c060c7eb2288a6dedf6f Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Wed, 25 Mar 2026 14:52:32 +0100 Subject: [PATCH 1/2] Make `#getTruncatedSnap` and `#getTruncatedSnapExpect` private --- .../src/snaps/SnapController.test.tsx | 14 ++++----- .../src/snaps/SnapController.ts | 30 +++++++++---------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/packages/snaps-controllers/src/snaps/SnapController.test.tsx b/packages/snaps-controllers/src/snaps/SnapController.test.tsx index f8891a56dc..bef7b93321 100644 --- a/packages/snaps-controllers/src/snaps/SnapController.test.tsx +++ b/packages/snaps-controllers/src/snaps/SnapController.test.tsx @@ -8979,11 +8979,11 @@ describe('SnapController', () => { [MOCK_SNAP_ID]: { version: '1.1.0' }, }); - const newSnapTruncated = controller.getTruncatedSnap(MOCK_SNAP_ID); - const newSnap = controller.getSnap(MOCK_SNAP_ID); - expect(result).toStrictEqual({ [MOCK_SNAP_ID]: newSnapTruncated }); + expect(result).toStrictEqual({ + [MOCK_SNAP_ID]: getTruncatedSnap(newSnap), + }); expect(newSnap?.version).toBe('1.1.0'); expect(newSnap?.versionHistory).toStrictEqual([ { @@ -9090,7 +9090,7 @@ describe('SnapController', () => { ); expect(onSnapUpdated).toHaveBeenCalledTimes(1); expect(onSnapUpdated).toHaveBeenCalledWith( - newSnapTruncated, + getTruncatedSnap(newSnap), '1.0.0', MOCK_ORIGIN, false, @@ -9362,11 +9362,11 @@ describe('SnapController', () => { [MOCK_SNAP_ID]: { version: '1.1.0' }, }); - const newSnapTruncated = controller.getTruncatedSnap(MOCK_SNAP_ID); - const newSnap = controller.getSnap(MOCK_SNAP_ID); - expect(result).toStrictEqual({ [MOCK_SNAP_ID]: newSnapTruncated }); + expect(result).toStrictEqual({ + [MOCK_SNAP_ID]: getTruncatedSnap(newSnap), + }); expect(newSnap?.version).toBe('1.1.0'); expect(newSnap?.versionHistory).toStrictEqual([ { diff --git a/packages/snaps-controllers/src/snaps/SnapController.ts b/packages/snaps-controllers/src/snaps/SnapController.ts index cbfbc9d3bb..a1a17920fd 100644 --- a/packages/snaps-controllers/src/snaps/SnapController.ts +++ b/packages/snaps-controllers/src/snaps/SnapController.ts @@ -1348,7 +1348,7 @@ export class SnapController extends BaseController< if (isUpdate) { this.messenger.publish( 'SnapController:snapUpdated', - this.getTruncatedSnapExpect(snapId), + this.#getTruncatedSnapExpect(snapId), existingSnap.version, METAMASK_ORIGIN, true, @@ -1356,7 +1356,7 @@ export class SnapController extends BaseController< } else if (!isMissingSource) { this.messenger.publish( 'SnapController:snapInstalled', - this.getTruncatedSnapExpect(snapId), + this.#getTruncatedSnapExpect(snapId), METAMASK_ORIGIN, true, ); @@ -1772,7 +1772,7 @@ export class SnapController extends BaseController< this.messenger.publish( 'SnapController:snapEnabled', - this.getTruncatedSnapExpect(snapId), + this.#getTruncatedSnapExpect(snapId), ); } @@ -1797,7 +1797,7 @@ export class SnapController extends BaseController< this.messenger.publish( 'SnapController:snapDisabled', - this.getTruncatedSnapExpect(snapId), + this.#getTruncatedSnapExpect(snapId), ); } @@ -1891,7 +1891,7 @@ export class SnapController extends BaseController< this.messenger.publish( 'SnapController:snapTerminated', - this.getTruncatedSnapExpect(snapId), + this.#getTruncatedSnapExpect(snapId), ); } @@ -1952,7 +1952,7 @@ export class SnapController extends BaseController< * @returns A truncated version of the snap state, that is less expensive to serialize. */ // TODO(ritave): this.get returns undefined, this.getTruncated returns null - getTruncatedSnap(snapId: SnapId): TruncatedSnap | null { + #getTruncatedSnap(snapId: SnapId): TruncatedSnap | null { const snap = this.getSnap(snapId); return snap ? truncateSnap(snap) : null; @@ -1965,7 +1965,7 @@ export class SnapController extends BaseController< * @param snapId - The id of the snap to get. * @returns A truncated version of the snap state, that is less expensive to serialize. */ - getTruncatedSnapExpect(snapId: SnapId): TruncatedSnap { + #getTruncatedSnapExpect(snapId: SnapId): TruncatedSnap { return truncateSnap(this.getSnapExpect(snapId)); } @@ -2371,7 +2371,7 @@ export class SnapController extends BaseController< await Promise.all( snapIds.map(async (snapId) => { const snap = this.getSnapExpect(snapId); - const truncated = this.getTruncatedSnapExpect(snapId); + const truncated = this.#getTruncatedSnapExpect(snapId); // Disable the snap and revoke all of its permissions before deleting // it. This ensures that the snap will not be restarted or otherwise // affect the host environment while we are deleting it. @@ -2597,7 +2597,7 @@ export class SnapController extends BaseController< return Object.keys(snaps).reduce( (permittedSnaps, snapId) => { const snap = this.getSnap(snapId); - const truncatedSnap = this.getTruncatedSnap(snapId as SnapId); + const truncatedSnap = this.#getTruncatedSnap(snapId as SnapId); if (truncatedSnap && snap?.status !== SnapStatus.Installing) { permittedSnaps[snapId] = truncatedSnap; @@ -2687,7 +2687,7 @@ export class SnapController extends BaseController< pendingInstalls.forEach((snapId) => this.messenger.publish( `SnapController:snapInstalled`, - this.getTruncatedSnapExpect(snapId), + this.#getTruncatedSnapExpect(snapId), origin, false, ), @@ -2696,7 +2696,7 @@ export class SnapController extends BaseController< pendingUpdates.forEach(({ snapId, oldVersion }) => this.messenger.publish( `SnapController:snapUpdated`, - this.getTruncatedSnapExpect(snapId), + this.#getTruncatedSnapExpect(snapId), oldVersion, origin, false, @@ -2737,7 +2737,7 @@ export class SnapController extends BaseController< location: SnapLocation, versionRange: SemVerRange, ): Promise { - const existingSnap = this.getTruncatedSnap(snapId); + const existingSnap = this.#getTruncatedSnap(snapId); // For devX we always re-install local snaps. if (existingSnap && !location.shouldAlwaysReload) { @@ -2799,7 +2799,7 @@ export class SnapController extends BaseController< sourceCode, }); - const truncated = this.getTruncatedSnapExpect(snapId); + const truncated = this.#getTruncatedSnapExpect(snapId); this.#updateApproval(pendingApproval.id, { loading: false, @@ -3066,7 +3066,7 @@ export class SnapController extends BaseController< throw new Error(`Snap ${snapId} crashed with updated source code.`); } - const truncatedSnap = this.getTruncatedSnapExpect(snapId); + const truncatedSnap = this.#getTruncatedSnapExpect(snapId); if (pendingApproval) { this.#updateApproval(pendingApproval.id, { @@ -4238,7 +4238,7 @@ export class SnapController extends BaseController< previousInitialConnections ?? {}, ); - const truncatedSnap = this.getTruncatedSnapExpect(snapId); + const truncatedSnap = this.#getTruncatedSnapExpect(snapId); this.messenger.publish( 'SnapController:snapRolledback', From f72851444ccbf72c40fb5a40876a7666cb236a26 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Wed, 25 Mar 2026 15:05:48 +0100 Subject: [PATCH 2/2] Update changelog --- packages/snaps-controllers/CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/snaps-controllers/CHANGELOG.md b/packages/snaps-controllers/CHANGELOG.md index d24f3defbc..7db3d2a965 100644 --- a/packages/snaps-controllers/CHANGELOG.md +++ b/packages/snaps-controllers/CHANGELOG.md @@ -93,8 +93,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Removed - **RREAKING:** Remove `AbstractExecutionService` class in favour of `ExecutionService` ([#3916](https://github.com/MetaMask/snaps/pull/3916)) -- **BREAKING:** Remove `incrementActiveReferences` and `decrementActiveReferences` actions and methods ([#3907](https://github.com/MetaMask/snaps/pull/3907), [#3920](https://github.com/MetaMask/snaps/pull/3920)) +- **BREAKING:** Remove `incrementActiveReferences` and `decrementActiveReferences` actions and methods from `SnapController` ([#3907](https://github.com/MetaMask/snaps/pull/3907), [#3920](https://github.com/MetaMask/snaps/pull/3920)) - This was never used in production. +- **BREAKING:** Remove public `getTruncatedSnap` and `getTruncatedSnapExpect` methods from `SnapController` ([#3923](https://github.com/MetaMask/snaps/pull/3923)) ## [18.0.4]