@metamask/snaps-controllers 20.0.5 → 21.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -1
- package/dist/snaps/SnapController.cjs +126 -19
- package/dist/snaps/SnapController.cjs.map +1 -1
- package/dist/snaps/SnapController.d.cts +24 -17
- package/dist/snaps/SnapController.d.cts.map +1 -1
- package/dist/snaps/SnapController.d.mts +24 -17
- package/dist/snaps/SnapController.d.mts.map +1 -1
- package/dist/snaps/SnapController.mjs +126 -19
- package/dist/snaps/SnapController.mjs.map +1 -1
- package/dist/snaps/registry/SnapRegistryController-method-action-types.cjs.map +1 -1
- package/dist/snaps/registry/SnapRegistryController-method-action-types.d.cts +12 -1
- package/dist/snaps/registry/SnapRegistryController-method-action-types.d.cts.map +1 -1
- package/dist/snaps/registry/SnapRegistryController-method-action-types.d.mts +12 -1
- package/dist/snaps/registry/SnapRegistryController-method-action-types.d.mts.map +1 -1
- package/dist/snaps/registry/SnapRegistryController-method-action-types.mjs.map +1 -1
- package/dist/snaps/registry/SnapRegistryController.cjs +28 -5
- package/dist/snaps/registry/SnapRegistryController.cjs.map +1 -1
- package/dist/snaps/registry/SnapRegistryController.d.cts +10 -1
- package/dist/snaps/registry/SnapRegistryController.d.cts.map +1 -1
- package/dist/snaps/registry/SnapRegistryController.d.mts +10 -1
- package/dist/snaps/registry/SnapRegistryController.d.mts.map +1 -1
- package/dist/snaps/registry/SnapRegistryController.mjs +28 -5
- package/dist/snaps/registry/SnapRegistryController.mjs.map +1 -1
- package/dist/snaps/registry/index.cjs.map +1 -1
- package/dist/snaps/registry/index.d.cts +1 -1
- package/dist/snaps/registry/index.d.cts.map +1 -1
- package/dist/snaps/registry/index.d.mts +1 -1
- package/dist/snaps/registry/index.d.mts.map +1 -1
- package/dist/snaps/registry/index.mjs.map +1 -1
- package/package.json +10 -9
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { AnalyticsControllerTrackEventAction } from "@metamask/analytics-controller";
|
|
1
2
|
import { type ApprovalControllerAddRequestAction, type ApprovalControllerUpdateRequestStateAction } from "@metamask/approval-controller";
|
|
2
3
|
import type { ControllerGetStateAction, ControllerStateChangeEvent } from "@metamask/base-controller";
|
|
3
4
|
import { BaseController } from "@metamask/base-controller";
|
|
@@ -14,7 +15,7 @@ import type { Json, NonEmptyArray, SemVerVersion } from "@metamask/utils";
|
|
|
14
15
|
import type { StateMachine } from "@xstate/fsm";
|
|
15
16
|
import { Mutex } from "async-mutex";
|
|
16
17
|
import { detectSnapLocation } from "./location/index.cjs";
|
|
17
|
-
import type { SnapRegistryControllerGetAction, SnapRegistryControllerGetMetadataAction, SnapRegistryControllerResolveVersionAction, SnapRegistryControllerRequestUpdateAction, SnapRegistryControllerRegistryUpdatedEvent } from "./registry/index.cjs";
|
|
18
|
+
import type { ClientConfig, SnapRegistryControllerGetAction, SnapRegistryControllerGetMetadataAction, SnapRegistryControllerResolveVersionAction, SnapRegistryControllerRequestUpdateAction, SnapRegistryControllerRegistryUpdatedEvent } from "./registry/index.cjs";
|
|
18
19
|
import type { SnapControllerMethodActions } from "./SnapController-method-action-types.cjs";
|
|
19
20
|
import { Timer } from "./Timer.cjs";
|
|
20
21
|
import type { SnapInterfaceControllerCreateInterfaceAction, SnapInterfaceControllerGetInterfaceAction, SnapInterfaceControllerSetInterfaceDisplayedAction } from "../interface/index.cjs";
|
|
@@ -128,14 +129,25 @@ export type SnapControllerSnapBlockedEvent = {
|
|
|
128
129
|
*/
|
|
129
130
|
export type SnapControllerSnapInstallStartedEvent = {
|
|
130
131
|
type: `${typeof controllerName}:snapInstallStarted`;
|
|
131
|
-
payload: [
|
|
132
|
+
payload: [
|
|
133
|
+
snapId: SnapId,
|
|
134
|
+
origin: string,
|
|
135
|
+
isUpdate: boolean,
|
|
136
|
+
preinstalled: boolean
|
|
137
|
+
];
|
|
132
138
|
};
|
|
133
139
|
/**
|
|
134
140
|
* Emitted when a snap installation or update failed.
|
|
135
141
|
*/
|
|
136
142
|
export type SnapControllerSnapInstallFailedEvent = {
|
|
137
143
|
type: `${typeof controllerName}:snapInstallFailed`;
|
|
138
|
-
payload: [
|
|
144
|
+
payload: [
|
|
145
|
+
snapId: SnapId,
|
|
146
|
+
origin: string,
|
|
147
|
+
isUpdate: boolean,
|
|
148
|
+
error: string,
|
|
149
|
+
preinstalled: boolean
|
|
150
|
+
];
|
|
139
151
|
};
|
|
140
152
|
/**
|
|
141
153
|
* Emitted when a snap has been started after being added and authorized during
|
|
@@ -168,7 +180,8 @@ export type SnapControllerSnapUpdatedEvent = {
|
|
|
168
180
|
snap: TruncatedSnap,
|
|
169
181
|
oldVersion: string,
|
|
170
182
|
origin: string,
|
|
171
|
-
preinstalled: boolean
|
|
183
|
+
preinstalled: boolean,
|
|
184
|
+
ota: boolean
|
|
172
185
|
];
|
|
173
186
|
};
|
|
174
187
|
/**
|
|
@@ -210,8 +223,8 @@ type KeyringControllerLockEvent = {
|
|
|
210
223
|
payload: [];
|
|
211
224
|
};
|
|
212
225
|
export type SnapControllerEvents = SnapControllerSnapBlockedEvent | SnapControllerSnapInstalledEvent | SnapControllerSnapUninstalledEvent | SnapControllerSnapInstallStartedEvent | SnapControllerSnapInstallFailedEvent | SnapControllerSnapUnblockedEvent | SnapControllerSnapUpdatedEvent | SnapControllerSnapRolledbackEvent | SnapControllerSnapTerminatedEvent | SnapControllerSnapEnabledEvent | SnapControllerSnapDisabledEvent | SnapControllerStateChangeEvent;
|
|
213
|
-
type AllowedActions = PermissionControllerGetEndowmentsAction | PermissionControllerGetPermissionsAction | PermissionControllerGetSubjectNamesAction | SubjectMetadataControllerGetSubjectMetadataAction | SubjectMetadataControllerAddSubjectMetadataAction | PermissionControllerHasPermissionAction | PermissionControllerHasPermissionsAction | PermissionControllerRevokePermissionsAction | PermissionControllerRevokeAllPermissionsAction | PermissionControllerRevokePermissionForAllSubjectsAction | PermissionControllerGrantPermissionsAction | PermissionControllerUpdateCaveatAction | ApprovalControllerAddRequestAction | ExecutionServiceHandleRpcRequestAction | ExecutionServiceExecuteSnapAction | ExecutionServiceTerminateSnapAction | ApprovalControllerUpdateRequestStateAction | SnapRegistryControllerGetAction | SnapRegistryControllerGetMetadataAction | SnapRegistryControllerResolveVersionAction | SnapRegistryControllerRequestUpdateAction | SnapInterfaceControllerCreateInterfaceAction | SnapInterfaceControllerGetInterfaceAction | SnapInterfaceControllerSetInterfaceDisplayedAction | StorageServiceSetItemAction | StorageServiceGetItemAction | StorageServiceRemoveItemAction | StorageServiceClearAction;
|
|
214
|
-
type AllowedEvents = ExecutionServiceEvents | SnapControllerSnapInstalledEvent | SnapControllerSnapUpdatedEvent | KeyringControllerLockEvent | SnapRegistryControllerRegistryUpdatedEvent;
|
|
226
|
+
type AllowedActions = AnalyticsControllerTrackEventAction | PermissionControllerGetEndowmentsAction | PermissionControllerGetPermissionsAction | PermissionControllerGetSubjectNamesAction | SubjectMetadataControllerGetSubjectMetadataAction | SubjectMetadataControllerAddSubjectMetadataAction | PermissionControllerHasPermissionAction | PermissionControllerHasPermissionsAction | PermissionControllerRevokePermissionsAction | PermissionControllerRevokeAllPermissionsAction | PermissionControllerRevokePermissionForAllSubjectsAction | PermissionControllerGrantPermissionsAction | PermissionControllerUpdateCaveatAction | ApprovalControllerAddRequestAction | ExecutionServiceHandleRpcRequestAction | ExecutionServiceExecuteSnapAction | ExecutionServiceTerminateSnapAction | ApprovalControllerUpdateRequestStateAction | SnapRegistryControllerGetAction | SnapRegistryControllerGetMetadataAction | SnapRegistryControllerResolveVersionAction | SnapRegistryControllerRequestUpdateAction | SnapInterfaceControllerCreateInterfaceAction | SnapInterfaceControllerGetInterfaceAction | SnapInterfaceControllerSetInterfaceDisplayedAction | StorageServiceSetItemAction | StorageServiceGetItemAction | StorageServiceRemoveItemAction | StorageServiceClearAction;
|
|
227
|
+
type AllowedEvents = ExecutionServiceEvents | SnapControllerSnapInstallStartedEvent | SnapControllerSnapInstallFailedEvent | SnapControllerSnapInstalledEvent | SnapControllerSnapUninstalledEvent | SnapControllerSnapUpdatedEvent | KeyringControllerLockEvent | SnapRegistryControllerRegistryUpdatedEvent;
|
|
215
228
|
export type SnapControllerMessenger = Messenger<typeof controllerName, SnapControllerActions | AllowedActions, SnapControllerEvents | AllowedEvents>;
|
|
216
229
|
type FeatureFlags = {
|
|
217
230
|
requireAllowlist?: boolean;
|
|
@@ -314,27 +327,21 @@ export type SnapControllerArgs = {
|
|
|
314
327
|
* object to fall back to the default cryptographic functions.
|
|
315
328
|
*/
|
|
316
329
|
clientCryptography?: CryptographicFunctions;
|
|
317
|
-
/**
|
|
318
|
-
* MetaMetrics event tracking hook.
|
|
319
|
-
*/
|
|
320
|
-
trackEvent: TrackEventHook;
|
|
321
330
|
/**
|
|
322
331
|
* A hook that returns a promise that resolves when the onboarding has completed.
|
|
323
332
|
*
|
|
324
333
|
* @returns A promise that resolves when onboarding is complete.
|
|
325
334
|
*/
|
|
326
335
|
ensureOnboardingComplete: () => Promise<void>;
|
|
336
|
+
/**
|
|
337
|
+
* The client configuration, containing the client type and version.
|
|
338
|
+
*/
|
|
339
|
+
clientConfig: ClientConfig;
|
|
327
340
|
};
|
|
328
|
-
type TrackingEventPayload = {
|
|
329
|
-
event: string;
|
|
330
|
-
category: string;
|
|
331
|
-
properties: Record<string, Json | undefined>;
|
|
332
|
-
};
|
|
333
|
-
type TrackEventHook = (event: TrackingEventPayload) => void;
|
|
334
341
|
export declare class SnapController extends BaseController<typeof controllerName, SnapControllerState, SnapControllerMessenger> {
|
|
335
342
|
#private;
|
|
336
343
|
private readonly maxRequestTime;
|
|
337
|
-
constructor({ messenger, state, dynamicPermissions, environmentEndowmentPermissions, excludedPermissions, idleTimeCheckInterval, maxIdleTime, maxRequestTime, fetchFunction, featureFlags, detectSnapLocation: detectSnapLocationFunction, preinstalledSnaps, encryptor, getMnemonicSeed, getFeatureFlags, clientCryptography,
|
|
344
|
+
constructor({ messenger, state, dynamicPermissions, environmentEndowmentPermissions, excludedPermissions, idleTimeCheckInterval, maxIdleTime, maxRequestTime, fetchFunction, featureFlags, detectSnapLocation: detectSnapLocationFunction, preinstalledSnaps, encryptor, getMnemonicSeed, getFeatureFlags, clientCryptography, ensureOnboardingComplete, clientConfig, }: SnapControllerArgs);
|
|
338
345
|
/**
|
|
339
346
|
* Initialise the SnapController.
|
|
340
347
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SnapController.d.cts","sourceRoot":"","sources":["../../src/snaps/SnapController.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SnapController.d.cts","sourceRoot":"","sources":["../../src/snaps/SnapController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { AnalyticsControllerTrackEventAction } from "@metamask/analytics-controller";
|
|
1
2
|
import { type ApprovalControllerAddRequestAction, type ApprovalControllerUpdateRequestStateAction } from "@metamask/approval-controller";
|
|
2
3
|
import type { ControllerGetStateAction, ControllerStateChangeEvent } from "@metamask/base-controller";
|
|
3
4
|
import { BaseController } from "@metamask/base-controller";
|
|
@@ -14,7 +15,7 @@ import type { Json, NonEmptyArray, SemVerVersion } from "@metamask/utils";
|
|
|
14
15
|
import type { StateMachine } from "@xstate/fsm";
|
|
15
16
|
import { Mutex } from "async-mutex";
|
|
16
17
|
import { detectSnapLocation } from "./location/index.mjs";
|
|
17
|
-
import type { SnapRegistryControllerGetAction, SnapRegistryControllerGetMetadataAction, SnapRegistryControllerResolveVersionAction, SnapRegistryControllerRequestUpdateAction, SnapRegistryControllerRegistryUpdatedEvent } from "./registry/index.mjs";
|
|
18
|
+
import type { ClientConfig, SnapRegistryControllerGetAction, SnapRegistryControllerGetMetadataAction, SnapRegistryControllerResolveVersionAction, SnapRegistryControllerRequestUpdateAction, SnapRegistryControllerRegistryUpdatedEvent } from "./registry/index.mjs";
|
|
18
19
|
import type { SnapControllerMethodActions } from "./SnapController-method-action-types.mjs";
|
|
19
20
|
import { Timer } from "./Timer.mjs";
|
|
20
21
|
import type { SnapInterfaceControllerCreateInterfaceAction, SnapInterfaceControllerGetInterfaceAction, SnapInterfaceControllerSetInterfaceDisplayedAction } from "../interface/index.mjs";
|
|
@@ -128,14 +129,25 @@ export type SnapControllerSnapBlockedEvent = {
|
|
|
128
129
|
*/
|
|
129
130
|
export type SnapControllerSnapInstallStartedEvent = {
|
|
130
131
|
type: `${typeof controllerName}:snapInstallStarted`;
|
|
131
|
-
payload: [
|
|
132
|
+
payload: [
|
|
133
|
+
snapId: SnapId,
|
|
134
|
+
origin: string,
|
|
135
|
+
isUpdate: boolean,
|
|
136
|
+
preinstalled: boolean
|
|
137
|
+
];
|
|
132
138
|
};
|
|
133
139
|
/**
|
|
134
140
|
* Emitted when a snap installation or update failed.
|
|
135
141
|
*/
|
|
136
142
|
export type SnapControllerSnapInstallFailedEvent = {
|
|
137
143
|
type: `${typeof controllerName}:snapInstallFailed`;
|
|
138
|
-
payload: [
|
|
144
|
+
payload: [
|
|
145
|
+
snapId: SnapId,
|
|
146
|
+
origin: string,
|
|
147
|
+
isUpdate: boolean,
|
|
148
|
+
error: string,
|
|
149
|
+
preinstalled: boolean
|
|
150
|
+
];
|
|
139
151
|
};
|
|
140
152
|
/**
|
|
141
153
|
* Emitted when a snap has been started after being added and authorized during
|
|
@@ -168,7 +180,8 @@ export type SnapControllerSnapUpdatedEvent = {
|
|
|
168
180
|
snap: TruncatedSnap,
|
|
169
181
|
oldVersion: string,
|
|
170
182
|
origin: string,
|
|
171
|
-
preinstalled: boolean
|
|
183
|
+
preinstalled: boolean,
|
|
184
|
+
ota: boolean
|
|
172
185
|
];
|
|
173
186
|
};
|
|
174
187
|
/**
|
|
@@ -210,8 +223,8 @@ type KeyringControllerLockEvent = {
|
|
|
210
223
|
payload: [];
|
|
211
224
|
};
|
|
212
225
|
export type SnapControllerEvents = SnapControllerSnapBlockedEvent | SnapControllerSnapInstalledEvent | SnapControllerSnapUninstalledEvent | SnapControllerSnapInstallStartedEvent | SnapControllerSnapInstallFailedEvent | SnapControllerSnapUnblockedEvent | SnapControllerSnapUpdatedEvent | SnapControllerSnapRolledbackEvent | SnapControllerSnapTerminatedEvent | SnapControllerSnapEnabledEvent | SnapControllerSnapDisabledEvent | SnapControllerStateChangeEvent;
|
|
213
|
-
type AllowedActions = PermissionControllerGetEndowmentsAction | PermissionControllerGetPermissionsAction | PermissionControllerGetSubjectNamesAction | SubjectMetadataControllerGetSubjectMetadataAction | SubjectMetadataControllerAddSubjectMetadataAction | PermissionControllerHasPermissionAction | PermissionControllerHasPermissionsAction | PermissionControllerRevokePermissionsAction | PermissionControllerRevokeAllPermissionsAction | PermissionControllerRevokePermissionForAllSubjectsAction | PermissionControllerGrantPermissionsAction | PermissionControllerUpdateCaveatAction | ApprovalControllerAddRequestAction | ExecutionServiceHandleRpcRequestAction | ExecutionServiceExecuteSnapAction | ExecutionServiceTerminateSnapAction | ApprovalControllerUpdateRequestStateAction | SnapRegistryControllerGetAction | SnapRegistryControllerGetMetadataAction | SnapRegistryControllerResolveVersionAction | SnapRegistryControllerRequestUpdateAction | SnapInterfaceControllerCreateInterfaceAction | SnapInterfaceControllerGetInterfaceAction | SnapInterfaceControllerSetInterfaceDisplayedAction | StorageServiceSetItemAction | StorageServiceGetItemAction | StorageServiceRemoveItemAction | StorageServiceClearAction;
|
|
214
|
-
type AllowedEvents = ExecutionServiceEvents | SnapControllerSnapInstalledEvent | SnapControllerSnapUpdatedEvent | KeyringControllerLockEvent | SnapRegistryControllerRegistryUpdatedEvent;
|
|
226
|
+
type AllowedActions = AnalyticsControllerTrackEventAction | PermissionControllerGetEndowmentsAction | PermissionControllerGetPermissionsAction | PermissionControllerGetSubjectNamesAction | SubjectMetadataControllerGetSubjectMetadataAction | SubjectMetadataControllerAddSubjectMetadataAction | PermissionControllerHasPermissionAction | PermissionControllerHasPermissionsAction | PermissionControllerRevokePermissionsAction | PermissionControllerRevokeAllPermissionsAction | PermissionControllerRevokePermissionForAllSubjectsAction | PermissionControllerGrantPermissionsAction | PermissionControllerUpdateCaveatAction | ApprovalControllerAddRequestAction | ExecutionServiceHandleRpcRequestAction | ExecutionServiceExecuteSnapAction | ExecutionServiceTerminateSnapAction | ApprovalControllerUpdateRequestStateAction | SnapRegistryControllerGetAction | SnapRegistryControllerGetMetadataAction | SnapRegistryControllerResolveVersionAction | SnapRegistryControllerRequestUpdateAction | SnapInterfaceControllerCreateInterfaceAction | SnapInterfaceControllerGetInterfaceAction | SnapInterfaceControllerSetInterfaceDisplayedAction | StorageServiceSetItemAction | StorageServiceGetItemAction | StorageServiceRemoveItemAction | StorageServiceClearAction;
|
|
227
|
+
type AllowedEvents = ExecutionServiceEvents | SnapControllerSnapInstallStartedEvent | SnapControllerSnapInstallFailedEvent | SnapControllerSnapInstalledEvent | SnapControllerSnapUninstalledEvent | SnapControllerSnapUpdatedEvent | KeyringControllerLockEvent | SnapRegistryControllerRegistryUpdatedEvent;
|
|
215
228
|
export type SnapControllerMessenger = Messenger<typeof controllerName, SnapControllerActions | AllowedActions, SnapControllerEvents | AllowedEvents>;
|
|
216
229
|
type FeatureFlags = {
|
|
217
230
|
requireAllowlist?: boolean;
|
|
@@ -314,27 +327,21 @@ export type SnapControllerArgs = {
|
|
|
314
327
|
* object to fall back to the default cryptographic functions.
|
|
315
328
|
*/
|
|
316
329
|
clientCryptography?: CryptographicFunctions;
|
|
317
|
-
/**
|
|
318
|
-
* MetaMetrics event tracking hook.
|
|
319
|
-
*/
|
|
320
|
-
trackEvent: TrackEventHook;
|
|
321
330
|
/**
|
|
322
331
|
* A hook that returns a promise that resolves when the onboarding has completed.
|
|
323
332
|
*
|
|
324
333
|
* @returns A promise that resolves when onboarding is complete.
|
|
325
334
|
*/
|
|
326
335
|
ensureOnboardingComplete: () => Promise<void>;
|
|
336
|
+
/**
|
|
337
|
+
* The client configuration, containing the client type and version.
|
|
338
|
+
*/
|
|
339
|
+
clientConfig: ClientConfig;
|
|
327
340
|
};
|
|
328
|
-
type TrackingEventPayload = {
|
|
329
|
-
event: string;
|
|
330
|
-
category: string;
|
|
331
|
-
properties: Record<string, Json | undefined>;
|
|
332
|
-
};
|
|
333
|
-
type TrackEventHook = (event: TrackingEventPayload) => void;
|
|
334
341
|
export declare class SnapController extends BaseController<typeof controllerName, SnapControllerState, SnapControllerMessenger> {
|
|
335
342
|
#private;
|
|
336
343
|
private readonly maxRequestTime;
|
|
337
|
-
constructor({ messenger, state, dynamicPermissions, environmentEndowmentPermissions, excludedPermissions, idleTimeCheckInterval, maxIdleTime, maxRequestTime, fetchFunction, featureFlags, detectSnapLocation: detectSnapLocationFunction, preinstalledSnaps, encryptor, getMnemonicSeed, getFeatureFlags, clientCryptography,
|
|
344
|
+
constructor({ messenger, state, dynamicPermissions, environmentEndowmentPermissions, excludedPermissions, idleTimeCheckInterval, maxIdleTime, maxRequestTime, fetchFunction, featureFlags, detectSnapLocation: detectSnapLocationFunction, preinstalledSnaps, encryptor, getMnemonicSeed, getFeatureFlags, clientCryptography, ensureOnboardingComplete, clientConfig, }: SnapControllerArgs);
|
|
338
345
|
/**
|
|
339
346
|
* Initialise the SnapController.
|
|
340
347
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SnapController.d.mts","sourceRoot":"","sources":["../../src/snaps/SnapController.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SnapController.d.mts","sourceRoot":"","sources":["../../src/snaps/SnapController.ts"],"names":[],"mappings":"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"}
|
|
@@ -100,13 +100,13 @@ export class SnapController extends BaseController {
|
|
|
100
100
|
#getMnemonicSeed;
|
|
101
101
|
#getFeatureFlags;
|
|
102
102
|
#clientCryptography;
|
|
103
|
+
#clientConfig;
|
|
103
104
|
#detectSnapLocation;
|
|
104
105
|
#snapsRuntimeData;
|
|
105
106
|
#rollbackSnapshots;
|
|
106
107
|
#timeoutForLastRequestStatus;
|
|
107
108
|
#statusMachine;
|
|
108
109
|
#preinstalledSnaps;
|
|
109
|
-
#trackEvent;
|
|
110
110
|
#trackSnapExport;
|
|
111
111
|
#ensureOnboardingComplete;
|
|
112
112
|
// A promise that resolves when the controller has finished setting up.
|
|
@@ -114,7 +114,7 @@ export class SnapController extends BaseController {
|
|
|
114
114
|
// It is resolved when the controller has finished setting up and the platform is ready.
|
|
115
115
|
// It is rejected if there is an error during setup.
|
|
116
116
|
#controllerSetup = createDeferredPromise();
|
|
117
|
-
constructor({ messenger, state, dynamicPermissions = ['endowment:caip25', 'wallet_snap'], environmentEndowmentPermissions = [], excludedPermissions = {}, idleTimeCheckInterval = inMilliseconds(5, Duration.Second), maxIdleTime = inMilliseconds(30, Duration.Second), maxRequestTime = inMilliseconds(60, Duration.Second), fetchFunction = globalThis.fetch.bind(undefined), featureFlags = {}, detectSnapLocation: detectSnapLocationFunction = detectSnapLocation, preinstalledSnaps = null, encryptor, getMnemonicSeed, getFeatureFlags = () => ({}), clientCryptography,
|
|
117
|
+
constructor({ messenger, state, dynamicPermissions = ['endowment:caip25', 'wallet_snap'], environmentEndowmentPermissions = [], excludedPermissions = {}, idleTimeCheckInterval = inMilliseconds(5, Duration.Second), maxIdleTime = inMilliseconds(30, Duration.Second), maxRequestTime = inMilliseconds(60, Duration.Second), fetchFunction = globalThis.fetch.bind(undefined), featureFlags = {}, detectSnapLocation: detectSnapLocationFunction = detectSnapLocation, preinstalledSnaps = null, encryptor, getMnemonicSeed, getFeatureFlags = () => ({}), clientCryptography, ensureOnboardingComplete, clientConfig, }) {
|
|
118
118
|
super({
|
|
119
119
|
messenger,
|
|
120
120
|
metadata: {
|
|
@@ -188,13 +188,13 @@ export class SnapController extends BaseController {
|
|
|
188
188
|
this.#getMnemonicSeed = getMnemonicSeed;
|
|
189
189
|
this.#getFeatureFlags = getFeatureFlags;
|
|
190
190
|
this.#clientCryptography = clientCryptography;
|
|
191
|
+
this.#clientConfig = clientConfig;
|
|
191
192
|
this.#preinstalledSnaps = preinstalledSnaps;
|
|
192
193
|
this._onUnhandledSnapError = this._onUnhandledSnapError.bind(this);
|
|
193
194
|
this._onOutboundRequest = this._onOutboundRequest.bind(this);
|
|
194
195
|
this._onOutboundResponse = this._onOutboundResponse.bind(this);
|
|
195
196
|
this.#rollbackSnapshots = new Map();
|
|
196
197
|
this.#snapsRuntimeData = new Map();
|
|
197
|
-
this.#trackEvent = trackEvent;
|
|
198
198
|
this.#ensureOnboardingComplete = ensureOnboardingComplete;
|
|
199
199
|
this.#pollForLastRequestStatus();
|
|
200
200
|
/* eslint-disable @typescript-eslint/unbound-method */
|
|
@@ -202,14 +202,117 @@ export class SnapController extends BaseController {
|
|
|
202
202
|
this.messenger.subscribe('ExecutionService:outboundRequest', this._onOutboundRequest);
|
|
203
203
|
this.messenger.subscribe('ExecutionService:outboundResponse', this._onOutboundResponse);
|
|
204
204
|
/* eslint-enable @typescript-eslint/unbound-method */
|
|
205
|
-
this.messenger.subscribe('SnapController:snapInstalled', (
|
|
206
|
-
this.#callLifecycleHook(origin, id, HandlerType.OnInstall).catch((error) => {
|
|
207
|
-
logError(`Error when calling \`onInstall\` lifecycle hook for snap "${id}": ${getErrorMessage(error)}`);
|
|
205
|
+
this.messenger.subscribe('SnapController:snapInstalled', (snap, origin, preinstalled) => {
|
|
206
|
+
this.#callLifecycleHook(origin, snap.id, HandlerType.OnInstall).catch((error) => {
|
|
207
|
+
logError(`Error when calling \`onInstall\` lifecycle hook for snap "${snap.id}": ${getErrorMessage(error)}`);
|
|
208
|
+
});
|
|
209
|
+
if (preinstalled) {
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
const snapMetadata = this.messenger.call('SnapRegistryController:getMetadata', snap.id);
|
|
213
|
+
this.messenger.call('AnalyticsController:trackEvent', {
|
|
214
|
+
name: 'Snap Installed',
|
|
215
|
+
properties: {
|
|
216
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
217
|
+
snap_id: snap.id,
|
|
218
|
+
version: snap.version,
|
|
219
|
+
origin,
|
|
220
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
221
|
+
snap_category: snapMetadata?.category ?? null,
|
|
222
|
+
},
|
|
223
|
+
sensitiveProperties: {},
|
|
224
|
+
saveDataRecording: false,
|
|
225
|
+
hasProperties: true,
|
|
226
|
+
});
|
|
227
|
+
});
|
|
228
|
+
this.messenger.subscribe('SnapController:snapUpdated', (snap, oldVersion, origin, preinstalled, ota) => {
|
|
229
|
+
this.#callLifecycleHook(origin, snap.id, HandlerType.OnUpdate).catch((error) => {
|
|
230
|
+
logError(`Error when calling \`onUpdate\` lifecycle hook for snap "${snap.id}": ${getErrorMessage(error)}`);
|
|
231
|
+
});
|
|
232
|
+
if (preinstalled && !ota) {
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
const snapMetadata = this.messenger.call('SnapRegistryController:getMetadata', snap.id);
|
|
236
|
+
this.messenger.call('AnalyticsController:trackEvent', {
|
|
237
|
+
name: 'Snap Updated',
|
|
238
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
239
|
+
properties: {
|
|
240
|
+
snap_id: snap.id,
|
|
241
|
+
old_version: oldVersion,
|
|
242
|
+
new_version: snap.version,
|
|
243
|
+
origin,
|
|
244
|
+
snap_category: snapMetadata?.category ?? null,
|
|
245
|
+
ota,
|
|
246
|
+
client_version: this.#clientConfig.version,
|
|
247
|
+
client_type: this.#clientConfig.type,
|
|
248
|
+
},
|
|
249
|
+
/* eslint-enable @typescript-eslint/naming-convention */
|
|
250
|
+
sensitiveProperties: {},
|
|
251
|
+
saveDataRecording: false,
|
|
252
|
+
hasProperties: true,
|
|
253
|
+
});
|
|
254
|
+
});
|
|
255
|
+
this.messenger.subscribe('SnapController:snapInstallStarted', (snapId, origin, isUpdate, preinstalled) => {
|
|
256
|
+
if (preinstalled) {
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
const snapMetadata = this.messenger.call('SnapRegistryController:getMetadata', snapId);
|
|
260
|
+
this.messenger.call('AnalyticsController:trackEvent', {
|
|
261
|
+
name: isUpdate ? 'Snap Update Started' : 'Snap Install Started',
|
|
262
|
+
properties: {
|
|
263
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
264
|
+
snap_id: snapId,
|
|
265
|
+
origin,
|
|
266
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
267
|
+
snap_category: snapMetadata?.category ?? null,
|
|
268
|
+
},
|
|
269
|
+
sensitiveProperties: {},
|
|
270
|
+
saveDataRecording: false,
|
|
271
|
+
hasProperties: true,
|
|
272
|
+
});
|
|
273
|
+
});
|
|
274
|
+
this.messenger.subscribe('SnapController:snapInstallFailed', (snapId, origin, isUpdate, error, preinstalled) => {
|
|
275
|
+
if (preinstalled) {
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
const isRejected = error.includes('User rejected the request.');
|
|
279
|
+
const snapMetadata = this.messenger.call('SnapRegistryController:getMetadata', snapId);
|
|
280
|
+
// eslint-disable-next-line no-nested-ternary
|
|
281
|
+
const name = isUpdate
|
|
282
|
+
? isRejected
|
|
283
|
+
? 'Snap Update Rejected'
|
|
284
|
+
: 'Snap Update Failed'
|
|
285
|
+
: isRejected
|
|
286
|
+
? 'Snap Install Rejected'
|
|
287
|
+
: 'Snap Install Failed';
|
|
288
|
+
this.messenger.call('AnalyticsController:trackEvent', {
|
|
289
|
+
name,
|
|
290
|
+
properties: {
|
|
291
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
292
|
+
snap_id: snapId,
|
|
293
|
+
origin,
|
|
294
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
295
|
+
snap_category: snapMetadata?.category ?? null,
|
|
296
|
+
},
|
|
297
|
+
sensitiveProperties: {},
|
|
298
|
+
saveDataRecording: false,
|
|
299
|
+
hasProperties: true,
|
|
208
300
|
});
|
|
209
301
|
});
|
|
210
|
-
this.messenger.subscribe('SnapController:
|
|
211
|
-
this
|
|
212
|
-
|
|
302
|
+
this.messenger.subscribe('SnapController:snapUninstalled', (snap) => {
|
|
303
|
+
const snapMetadata = this.messenger.call('SnapRegistryController:getMetadata', snap.id);
|
|
304
|
+
this.messenger.call('AnalyticsController:trackEvent', {
|
|
305
|
+
name: 'Snap Uninstalled',
|
|
306
|
+
properties: {
|
|
307
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
308
|
+
snap_id: snap.id,
|
|
309
|
+
version: snap.version,
|
|
310
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
311
|
+
snap_category: snapMetadata?.category ?? null,
|
|
312
|
+
},
|
|
313
|
+
sensitiveProperties: {},
|
|
314
|
+
saveDataRecording: false,
|
|
315
|
+
hasProperties: true,
|
|
213
316
|
});
|
|
214
317
|
});
|
|
215
318
|
this.messenger.subscribe('KeyringController:lock', this.#handleLock.bind(this));
|
|
@@ -223,18 +326,20 @@ export class SnapController extends BaseController {
|
|
|
223
326
|
Object.values(this.state?.snaps ?? {}).forEach((snap) => this.#setupRuntime(snap.id));
|
|
224
327
|
this.#trackSnapExport = throttleTracking((snapId, handler, success, origin) => {
|
|
225
328
|
const snapMetadata = this.messenger.call('SnapRegistryController:getMetadata', snapId);
|
|
226
|
-
this
|
|
227
|
-
|
|
228
|
-
category: 'Snaps',
|
|
329
|
+
this.messenger.call('AnalyticsController:trackEvent', {
|
|
330
|
+
name: 'Snap Export Used',
|
|
229
331
|
properties: {
|
|
230
332
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
231
333
|
snap_id: snapId,
|
|
232
334
|
export: handler,
|
|
233
335
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
234
|
-
snap_category: snapMetadata?.category,
|
|
336
|
+
snap_category: snapMetadata?.category ?? null,
|
|
235
337
|
success,
|
|
236
338
|
origin,
|
|
237
339
|
},
|
|
340
|
+
sensitiveProperties: {},
|
|
341
|
+
saveDataRecording: false,
|
|
342
|
+
hasProperties: true,
|
|
238
343
|
});
|
|
239
344
|
});
|
|
240
345
|
}
|
|
@@ -421,7 +526,7 @@ export class SnapController extends BaseController {
|
|
|
421
526
|
this.#setupRuntime(snapId);
|
|
422
527
|
// Emit events
|
|
423
528
|
if (isUpdate) {
|
|
424
|
-
this.messenger.publish('SnapController:snapUpdated', this.#getTruncatedSnapExpect(snapId), existingSnap.version, METAMASK_ORIGIN, true);
|
|
529
|
+
this.messenger.publish('SnapController:snapUpdated', this.#getTruncatedSnapExpect(snapId), existingSnap.version, METAMASK_ORIGIN, true, false);
|
|
425
530
|
}
|
|
426
531
|
else if (!isMissingSource) {
|
|
427
532
|
this.messenger.publish('SnapController:snapInstalled', this.#getTruncatedSnapExpect(snapId), METAMASK_ORIGIN, true);
|
|
@@ -513,6 +618,7 @@ export class SnapController extends BaseController {
|
|
|
513
618
|
const resolvedVersion = await this.#resolveAllowlistVersion(snap.id, preinstalledVersionRange, true);
|
|
514
619
|
if (resolvedVersion !== preinstalledVersionRange &&
|
|
515
620
|
gtVersion(resolvedVersion, snap.version)) {
|
|
621
|
+
const oldVersion = snap.version;
|
|
516
622
|
const location = this.#detectSnapLocation(snap.id, {
|
|
517
623
|
versionRange: resolvedVersion,
|
|
518
624
|
fetch: this.#fetchFunction,
|
|
@@ -526,6 +632,7 @@ export class SnapController extends BaseController {
|
|
|
526
632
|
versionRange: resolvedVersion,
|
|
527
633
|
automaticUpdate: true,
|
|
528
634
|
});
|
|
635
|
+
this.messenger.publish('SnapController:snapUpdated', this.#getTruncatedSnapExpect(snap.id), oldVersion, ORIGIN_METAMASK, true, true);
|
|
529
636
|
}
|
|
530
637
|
}));
|
|
531
638
|
}
|
|
@@ -1370,7 +1477,7 @@ export class SnapController extends BaseController {
|
|
|
1370
1477
|
}
|
|
1371
1478
|
// Once we finish all installs / updates, emit events.
|
|
1372
1479
|
pendingInstalls.forEach((snapId) => this.messenger.publish(`SnapController:snapInstalled`, this.#getTruncatedSnapExpect(snapId), origin, false));
|
|
1373
|
-
pendingUpdates.forEach(({ snapId, oldVersion }) => this.messenger.publish(`SnapController:snapUpdated`, this.#getTruncatedSnapExpect(snapId), oldVersion, origin, false));
|
|
1480
|
+
pendingUpdates.forEach(({ snapId, oldVersion }) => this.messenger.publish(`SnapController:snapUpdated`, this.#getTruncatedSnapExpect(snapId), oldVersion, origin, false, false));
|
|
1374
1481
|
snapIds.forEach((snapId) => this.#rollbackSnapshots.delete(snapId));
|
|
1375
1482
|
}
|
|
1376
1483
|
catch (error) {
|
|
@@ -1415,7 +1522,7 @@ export class SnapController extends BaseController {
|
|
|
1415
1522
|
snapId,
|
|
1416
1523
|
type: SNAP_APPROVAL_INSTALL,
|
|
1417
1524
|
});
|
|
1418
|
-
this.messenger.publish('SnapController:snapInstallStarted', snapId, origin, false);
|
|
1525
|
+
this.messenger.publish('SnapController:snapInstallStarted', snapId, origin, false, false);
|
|
1419
1526
|
// Existing snaps must be stopped before overwriting
|
|
1420
1527
|
if (existingSnap && this.isSnapRunning(snapId)) {
|
|
1421
1528
|
await this.stopSnap(snapId, SnapStatusEvents.Stop);
|
|
@@ -1456,7 +1563,7 @@ export class SnapController extends BaseController {
|
|
|
1456
1563
|
type: SNAP_APPROVAL_INSTALL,
|
|
1457
1564
|
error: errorString,
|
|
1458
1565
|
});
|
|
1459
|
-
this.messenger.publish('SnapController:snapInstallFailed', snapId, origin, false, errorString);
|
|
1566
|
+
this.messenger.publish('SnapController:snapInstallFailed', snapId, origin, false, errorString, false);
|
|
1460
1567
|
throw error;
|
|
1461
1568
|
}
|
|
1462
1569
|
}
|
|
@@ -1527,7 +1634,7 @@ export class SnapController extends BaseController {
|
|
|
1527
1634
|
type: SNAP_APPROVAL_UPDATE,
|
|
1528
1635
|
});
|
|
1529
1636
|
try {
|
|
1530
|
-
this.messenger.publish('SnapController:snapInstallStarted', snapId, origin, true);
|
|
1637
|
+
this.messenger.publish('SnapController:snapInstallStarted', snapId, origin, true, preinstalled ?? false);
|
|
1531
1638
|
const oldManifest = snap.manifest;
|
|
1532
1639
|
const newSnap = await fetchSnap(snapId, location);
|
|
1533
1640
|
const { sourceCode: sourceCodeFile, manifest: manifestFile } = newSnap;
|
|
@@ -1635,7 +1742,7 @@ export class SnapController extends BaseController {
|
|
|
1635
1742
|
type: SNAP_APPROVAL_UPDATE,
|
|
1636
1743
|
});
|
|
1637
1744
|
}
|
|
1638
|
-
this.messenger.publish('SnapController:snapInstallFailed', snapId, origin, true, errorString);
|
|
1745
|
+
this.messenger.publish('SnapController:snapInstallFailed', snapId, origin, true, errorString, preinstalled ?? false);
|
|
1639
1746
|
throw error;
|
|
1640
1747
|
}
|
|
1641
1748
|
}
|