@metamask-previews/seedless-onboarding-controller 7.1.0-preview-40468f94 → 7.1.0-preview-fb7aa07ff

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.
@@ -1,85 +1,11 @@
1
1
  import { BaseController } from "@metamask/base-controller";
2
- import type { ControllerGetStateAction, ControllerStateChangeEvent } from "@metamask/base-controller";
3
2
  import type * as encryptionUtils from "@metamask/browser-passworder";
4
- import { Messenger } from "@metamask/messenger";
5
3
  import type { AuthenticateResult, SEC1EncodedPublicKey } from "@metamask/toprf-secure-backup";
6
4
  import { ToprfSecureBackup } from "@metamask/toprf-secure-backup";
7
5
  import type { AuthConnection } from "./constants.cjs";
8
- import { controllerName, SecretType, Web3AuthNetwork } from "./constants.cjs";
6
+ import { controllerName, SecretType } from "./constants.cjs";
9
7
  import { SecretMetadata } from "./SecretMetadata.cjs";
10
- import type { SeedlessOnboardingControllerState, SocialBackupsMetadata, VaultEncryptor, RefreshJWTToken, RevokeRefreshToken, RenewRefreshToken, ToprfKeyDeriver } from "./types.cjs";
11
- export type SeedlessOnboardingControllerGetStateAction = ControllerGetStateAction<typeof controllerName, SeedlessOnboardingControllerState>;
12
- /**
13
- * Get the access token from the controller.
14
- * If the tokens are expired, the method will refresh them and return the new access token.
15
- *
16
- * @returns The access token.
17
- */
18
- export type SeedlessOnboardingControllerGetAccessTokenAction = {
19
- type: `${typeof controllerName}:getAccessToken`;
20
- handler: SeedlessOnboardingController<encryptionUtils.EncryptionKey, encryptionUtils.KeyDerivationOptions>['getAccessToken'];
21
- };
22
- export type SeedlessOnboardingControllerActions = SeedlessOnboardingControllerGetStateAction | SeedlessOnboardingControllerGetAccessTokenAction;
23
- type AllowedActions = never;
24
- export type SeedlessOnboardingControllerStateChangeEvent = ControllerStateChangeEvent<typeof controllerName, SeedlessOnboardingControllerState>;
25
- export type SeedlessOnboardingControllerEvents = SeedlessOnboardingControllerStateChangeEvent;
26
- type AllowedEvents = never;
27
- export type SeedlessOnboardingControllerMessenger = Messenger<typeof controllerName, SeedlessOnboardingControllerActions | AllowedActions, SeedlessOnboardingControllerEvents | AllowedEvents>;
28
- /**
29
- * Seedless Onboarding Controller Options.
30
- *
31
- * @param messenger - The messenger to use for this controller.
32
- * @param state - The initial state to set on this controller.
33
- * @param encryptor - The encryptor to use for encrypting and decrypting seedless onboarding vault.
34
- */
35
- export type SeedlessOnboardingControllerOptions<EncryptionKey, SupportedKeyDerivationParams> = {
36
- messenger: SeedlessOnboardingControllerMessenger;
37
- /**
38
- * Initial state to set on this controller.
39
- */
40
- state?: Partial<SeedlessOnboardingControllerState>;
41
- /**
42
- * Encryptor to use for encrypting and decrypting seedless onboarding vault.
43
- *
44
- * @default browser-passworder @link https://github.com/MetaMask/browser-passworder
45
- */
46
- encryptor: VaultEncryptor<EncryptionKey, SupportedKeyDerivationParams>;
47
- /**
48
- * A function to get a new jwt token using refresh token.
49
- */
50
- refreshJWTToken: RefreshJWTToken;
51
- /**
52
- * A function to revoke the refresh token.
53
- */
54
- revokeRefreshToken: RevokeRefreshToken;
55
- /**
56
- * A function to renew the refresh token and get new revoke token.
57
- */
58
- renewRefreshToken: RenewRefreshToken;
59
- /**
60
- * Optional key derivation interface for the TOPRF client.
61
- *
62
- * If provided, it will be used as an additional step during
63
- * key derivation. This can be used, for example, to inject a slow key
64
- * derivation step to protect against local brute force attacks on the
65
- * password.
66
- *
67
- * @default browser-passworder @link https://github.com/MetaMask/browser-passworder
68
- */
69
- toprfKeyDeriver?: ToprfKeyDeriver;
70
- /**
71
- * Type of Web3Auth network to be used for the Seedless Onboarding flow.
72
- *
73
- * @default Web3AuthNetwork.Mainnet
74
- */
75
- network?: Web3AuthNetwork;
76
- /**
77
- * The TTL of the password outdated cache in milliseconds.
78
- *
79
- * @default PASSWORD_OUTDATED_CACHE_TTL_MS
80
- */
81
- passwordOutdatedCacheTTL?: number;
82
- };
8
+ import type { SeedlessOnboardingControllerMessenger, SeedlessOnboardingControllerOptions, SeedlessOnboardingControllerState, SocialBackupsMetadata } from "./types.cjs";
83
9
  /**
84
10
  * Get the initial state for the Seedless Onboarding Controller with defaults.
85
11
  *
@@ -221,7 +147,7 @@ export declare class SeedlessOnboardingController<EncryptionKey, SupportedKeyDer
221
147
  /**
222
148
  * Submit the password to the controller, verify the password validity and unlock the controller.
223
149
  *
224
- * This method will be used especially when user unlock the wallet.
150
+ * This method will be used especially when user rehydrate/unlock the wallet.
225
151
  * The provided password will be verified against the encrypted vault, encryption key will be derived and saved in the controller state.
226
152
  *
227
153
  * This operation is useful when user performs some actions that requires the user password/encryption key. e.g. add new srp backup
@@ -333,14 +259,6 @@ export declare class SeedlessOnboardingController<EncryptionKey, SupportedKeyDer
333
259
  * @returns A Promise that resolves to void.
334
260
  */
335
261
  revokePendingRefreshTokens(): Promise<void>;
336
- /**
337
- * Get the access token from the state.
338
- *
339
- * If the tokens are expired, the method will refresh them and return the new access token.
340
- *
341
- * @returns The access token.
342
- */
343
- getAccessToken(): Promise<string | undefined>;
344
262
  /**
345
263
  * Check if the current node auth token is expired.
346
264
  *
@@ -361,5 +279,4 @@ export declare class SeedlessOnboardingController<EncryptionKey, SupportedKeyDer
361
279
  */
362
280
  checkAccessTokenExpired(): boolean;
363
281
  }
364
- export {};
365
282
  //# sourceMappingURL=SeedlessOnboardingController.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SeedlessOnboardingController.d.cts","sourceRoot":"","sources":["../src/SeedlessOnboardingController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,kCAAkC;AAC3D,OAAO,KAAK,EACV,wBAAwB,EACxB,0BAA0B,EAE3B,kCAAkC;AACnC,OAAO,KAAK,KAAK,eAAe,qCAAqC;AACrE,OAAO,EAAE,SAAS,EAAE,4BAA4B;AAChD,OAAO,KAAK,EACV,kBAAkB,EAIlB,oBAAoB,EACrB,sCAAsC;AACvC,OAAO,EACL,iBAAiB,EAGlB,sCAAsC;AAiBvC,OAAO,KAAK,EAAE,cAAc,EAAE,wBAAoB;AAClD,OAAO,EACL,cAAc,EAEd,UAAU,EAEV,eAAe,EAChB,wBAAoB;AAGrB,OAAO,EAAE,cAAc,EAAE,6BAAyB;AAClD,OAAO,KAAK,EAEV,iCAAiC,EAEjC,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EAGjB,eAAe,EAChB,oBAAgB;AAYjB,MAAM,MAAM,0CAA0C,GACpD,wBAAwB,CACtB,OAAO,cAAc,EACrB,iCAAiC,CAClC,CAAC;AAEJ;;;;;GAKG;AACH,MAAM,MAAM,gDAAgD,GAAG;IAC7D,IAAI,EAAE,GAAG,OAAO,cAAc,iBAAiB,CAAC;IAChD,OAAO,EAAE,4BAA4B,CACnC,eAAe,CAAC,aAAa,EAC7B,eAAe,CAAC,oBAAoB,CACrC,CAAC,gBAAgB,CAAC,CAAC;CACrB,CAAC;AACF,MAAM,MAAM,mCAAmC,GAC3C,0CAA0C,GAC1C,gDAAgD,CAAC;AAErD,KAAK,cAAc,GAAG,KAAK,CAAC;AAG5B,MAAM,MAAM,4CAA4C,GACtD,0BAA0B,CACxB,OAAO,cAAc,EACrB,iCAAiC,CAClC,CAAC;AACJ,MAAM,MAAM,kCAAkC,GAC5C,4CAA4C,CAAC;AAE/C,KAAK,aAAa,GAAG,KAAK,CAAC;AAG3B,MAAM,MAAM,qCAAqC,GAAG,SAAS,CAC3D,OAAO,cAAc,EACrB,mCAAmC,GAAG,cAAc,EACpD,kCAAkC,GAAG,aAAa,CACnD,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,mCAAmC,CAC7C,aAAa,EACb,4BAA4B,IAC1B;IACF,SAAS,EAAE,qCAAqC,CAAC;IAEjD;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,iCAAiC,CAAC,CAAC;IAEnD;;;;OAIG;IACH,SAAS,EAAE,cAAc,CAAC,aAAa,EAAE,4BAA4B,CAAC,CAAC;IAEvE;;OAEG;IACH,eAAe,EAAE,eAAe,CAAC;IAEjC;;OAEG;IACH,kBAAkB,EAAE,kBAAkB,CAAC;IAEvC;;OAEG;IACH,iBAAiB,EAAE,iBAAiB,CAAC;IAErC;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC;;;;OAIG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAE1B;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,uDAAuD,CACrE,SAAS,CAAC,EAAE,OAAO,CAAC,iCAAiC,CAAC,GACrD,iCAAiC,CAenC;AA2ID,qBAAa,4BAA4B,CACvC,aAAa,EACb,6BAA6B,GAAG,eAAe,CAAC,oBAAoB,CACpE,SAAQ,cAAc,CACtB,OAAO,cAAc,EACrB,iCAAiC,EACjC,qCAAqC,CACtC;;IAUC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IA2BxC;;;;;;;;;;;;;OAaG;gBACS,EACV,SAAS,EACT,KAAK,EACL,SAAS,EACT,eAAe,EACf,OAAiC,EACjC,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,wBAAyD,GAC1D,EAAE,mCAAmC,CACpC,aAAa,EACb,6BAA6B,CAC9B;IA4BK,wBAAwB,IAAI,OAAO,CAAC;QACxC,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;IAyBF;;;OAGG;IACG,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9C;;;;;;;;;;;;;;;;;OAiBG;IACG,YAAY,CAAC,MAAM,EAAE;QACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,cAAc,EAAE,cAAc,CAAC;QAC/B,gBAAgB,EAAE,MAAM,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAyD/B;;;;;;;OAOG;IACG,iCAAiC,CACrC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;IA4ChB;;;;;;;;OAQG;IACG,gBAAgB,CACpB,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,UAAU,EAChB,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GACA,OAAO,CAAC,IAAI,CAAC;IA4BhB;;;;;;;OAOG;IACG,kBAAkB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA4CtE;;;;;;;;OAQG;IACG,cAAc,CAClB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IA6DhB;;;;;;OAMG;IACH,yBAAyB,CACvB,UAAU,EACN,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC,GAC5D,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC,EAAE,GACjE,IAAI;IAMP;;;;;;;;OAQG;IACG,mBAAmB,CACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,GACA,OAAO,CAAC,IAAI,CAAC;IAYhB;;;;;;;;OAQG;IACH,wBAAwB,CACtB,IAAI,EAAE,UAAU,EAChB,IAAI,GAAE,UAAgC,GACrC,qBAAqB,GAAG,SAAS;IAOpC;;;;;;;;;;OAUG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkDrD;;;;;;OAMG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAchC;;;;;;;;OAQG;IACG,wBAAwB,CAAC,EAC7B,cAAc,GACf,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;KACxB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBjB;;;;;;;OAOG;IACG,oBAAoB,CAAC,EACzB,cAAc,EACd,iBAAqB,GACtB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,GAAG,OAAO,CAAC,IAAI,CAAC;IA4FjB;;;;;;;;;OASG;IACG,uBAAuB,CAAC,OAAO,CAAC,EAAE;QACtC,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;KACzC,GAAG,OAAO,CAAC,OAAO,CAAC;IAiEpB;;;;;;;;;;OAUG;IACG,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC;IAahD;;OAEG;IACH,UAAU,IAAI,IAAI;IAuDlB;;;;;OAKG;IACG,yBAAyB,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5E;;;;;OAKG;IACG,wBAAwB,IAAI,OAAO,CAAC,MAAM,CAAC;IAuvBjD;;;;;;;OAOG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAwCxC;;;;;;;OAOG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CxD;;;;;;OAMG;IACG,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC;IAuCjD;;;;;;OAMG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAqMnD;;;;OAIG;IACI,yBAAyB,IAAI,OAAO;IAY3C;;;;OAIG;IACI,+BAA+B,IAAI,OAAO;IAYjD;;;;;OAKG;IACI,uBAAuB,IAAI,OAAO;CAa1C"}
1
+ {"version":3,"file":"SeedlessOnboardingController.d.cts","sourceRoot":"","sources":["../src/SeedlessOnboardingController.ts"],"names":[],"mappings":"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"}
@@ -1,85 +1,11 @@
1
1
  import { BaseController } from "@metamask/base-controller";
2
- import type { ControllerGetStateAction, ControllerStateChangeEvent } from "@metamask/base-controller";
3
2
  import type * as encryptionUtils from "@metamask/browser-passworder";
4
- import { Messenger } from "@metamask/messenger";
5
3
  import type { AuthenticateResult, SEC1EncodedPublicKey } from "@metamask/toprf-secure-backup";
6
4
  import { ToprfSecureBackup } from "@metamask/toprf-secure-backup";
7
5
  import type { AuthConnection } from "./constants.mjs";
8
- import { controllerName, SecretType, Web3AuthNetwork } from "./constants.mjs";
6
+ import { controllerName, SecretType } from "./constants.mjs";
9
7
  import { SecretMetadata } from "./SecretMetadata.mjs";
10
- import type { SeedlessOnboardingControllerState, SocialBackupsMetadata, VaultEncryptor, RefreshJWTToken, RevokeRefreshToken, RenewRefreshToken, ToprfKeyDeriver } from "./types.mjs";
11
- export type SeedlessOnboardingControllerGetStateAction = ControllerGetStateAction<typeof controllerName, SeedlessOnboardingControllerState>;
12
- /**
13
- * Get the access token from the controller.
14
- * If the tokens are expired, the method will refresh them and return the new access token.
15
- *
16
- * @returns The access token.
17
- */
18
- export type SeedlessOnboardingControllerGetAccessTokenAction = {
19
- type: `${typeof controllerName}:getAccessToken`;
20
- handler: SeedlessOnboardingController<encryptionUtils.EncryptionKey, encryptionUtils.KeyDerivationOptions>['getAccessToken'];
21
- };
22
- export type SeedlessOnboardingControllerActions = SeedlessOnboardingControllerGetStateAction | SeedlessOnboardingControllerGetAccessTokenAction;
23
- type AllowedActions = never;
24
- export type SeedlessOnboardingControllerStateChangeEvent = ControllerStateChangeEvent<typeof controllerName, SeedlessOnboardingControllerState>;
25
- export type SeedlessOnboardingControllerEvents = SeedlessOnboardingControllerStateChangeEvent;
26
- type AllowedEvents = never;
27
- export type SeedlessOnboardingControllerMessenger = Messenger<typeof controllerName, SeedlessOnboardingControllerActions | AllowedActions, SeedlessOnboardingControllerEvents | AllowedEvents>;
28
- /**
29
- * Seedless Onboarding Controller Options.
30
- *
31
- * @param messenger - The messenger to use for this controller.
32
- * @param state - The initial state to set on this controller.
33
- * @param encryptor - The encryptor to use for encrypting and decrypting seedless onboarding vault.
34
- */
35
- export type SeedlessOnboardingControllerOptions<EncryptionKey, SupportedKeyDerivationParams> = {
36
- messenger: SeedlessOnboardingControllerMessenger;
37
- /**
38
- * Initial state to set on this controller.
39
- */
40
- state?: Partial<SeedlessOnboardingControllerState>;
41
- /**
42
- * Encryptor to use for encrypting and decrypting seedless onboarding vault.
43
- *
44
- * @default browser-passworder @link https://github.com/MetaMask/browser-passworder
45
- */
46
- encryptor: VaultEncryptor<EncryptionKey, SupportedKeyDerivationParams>;
47
- /**
48
- * A function to get a new jwt token using refresh token.
49
- */
50
- refreshJWTToken: RefreshJWTToken;
51
- /**
52
- * A function to revoke the refresh token.
53
- */
54
- revokeRefreshToken: RevokeRefreshToken;
55
- /**
56
- * A function to renew the refresh token and get new revoke token.
57
- */
58
- renewRefreshToken: RenewRefreshToken;
59
- /**
60
- * Optional key derivation interface for the TOPRF client.
61
- *
62
- * If provided, it will be used as an additional step during
63
- * key derivation. This can be used, for example, to inject a slow key
64
- * derivation step to protect against local brute force attacks on the
65
- * password.
66
- *
67
- * @default browser-passworder @link https://github.com/MetaMask/browser-passworder
68
- */
69
- toprfKeyDeriver?: ToprfKeyDeriver;
70
- /**
71
- * Type of Web3Auth network to be used for the Seedless Onboarding flow.
72
- *
73
- * @default Web3AuthNetwork.Mainnet
74
- */
75
- network?: Web3AuthNetwork;
76
- /**
77
- * The TTL of the password outdated cache in milliseconds.
78
- *
79
- * @default PASSWORD_OUTDATED_CACHE_TTL_MS
80
- */
81
- passwordOutdatedCacheTTL?: number;
82
- };
8
+ import type { SeedlessOnboardingControllerMessenger, SeedlessOnboardingControllerOptions, SeedlessOnboardingControllerState, SocialBackupsMetadata } from "./types.mjs";
83
9
  /**
84
10
  * Get the initial state for the Seedless Onboarding Controller with defaults.
85
11
  *
@@ -221,7 +147,7 @@ export declare class SeedlessOnboardingController<EncryptionKey, SupportedKeyDer
221
147
  /**
222
148
  * Submit the password to the controller, verify the password validity and unlock the controller.
223
149
  *
224
- * This method will be used especially when user unlock the wallet.
150
+ * This method will be used especially when user rehydrate/unlock the wallet.
225
151
  * The provided password will be verified against the encrypted vault, encryption key will be derived and saved in the controller state.
226
152
  *
227
153
  * This operation is useful when user performs some actions that requires the user password/encryption key. e.g. add new srp backup
@@ -333,14 +259,6 @@ export declare class SeedlessOnboardingController<EncryptionKey, SupportedKeyDer
333
259
  * @returns A Promise that resolves to void.
334
260
  */
335
261
  revokePendingRefreshTokens(): Promise<void>;
336
- /**
337
- * Get the access token from the state.
338
- *
339
- * If the tokens are expired, the method will refresh them and return the new access token.
340
- *
341
- * @returns The access token.
342
- */
343
- getAccessToken(): Promise<string | undefined>;
344
262
  /**
345
263
  * Check if the current node auth token is expired.
346
264
  *
@@ -361,5 +279,4 @@ export declare class SeedlessOnboardingController<EncryptionKey, SupportedKeyDer
361
279
  */
362
280
  checkAccessTokenExpired(): boolean;
363
281
  }
364
- export {};
365
282
  //# sourceMappingURL=SeedlessOnboardingController.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SeedlessOnboardingController.d.mts","sourceRoot":"","sources":["../src/SeedlessOnboardingController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SeedlessOnboardingController.d.mts","sourceRoot":"","sources":["../src/SeedlessOnboardingController.ts"],"names":[],"mappings":"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"}
@@ -9,10 +9,9 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
9
9
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
- var _SeedlessOnboardingController_instances, _SeedlessOnboardingController_vaultEncryptor, _SeedlessOnboardingController_controllerOperationMutex, _SeedlessOnboardingController_vaultOperationMutex, _SeedlessOnboardingController_refreshJWTToken, _SeedlessOnboardingController_revokeRefreshToken, _SeedlessOnboardingController_renewRefreshToken, _SeedlessOnboardingController_passwordOutdatedCacheTTL, _SeedlessOnboardingController_isUnlocked, _SeedlessOnboardingController_cachedDecryptedVaultData, _SeedlessOnboardingController_submitGlobalPassword, _SeedlessOnboardingController_setUnlocked, _SeedlessOnboardingController_persistOprfKey, _SeedlessOnboardingController_persistAuthPubKey, _SeedlessOnboardingController_storeKeyringEncryptionKey, _SeedlessOnboardingController_loadKeyringEncryptionKey, _SeedlessOnboardingController_loadSeedlessEncryptionKey, _SeedlessOnboardingController_recoverAuthPubKey, _SeedlessOnboardingController_recoverEncKey, _SeedlessOnboardingController_fetchAllSecretDataFromMetadataStore, _SeedlessOnboardingController_changeEncryptionKey, _SeedlessOnboardingController_encryptAndStoreSecretData, _SeedlessOnboardingController_unlockVaultAndGetVaultData, _SeedlessOnboardingController_decryptAndParseVaultData, _SeedlessOnboardingController_withPersistedSecretMetadataBackupsState, _SeedlessOnboardingController_filterDupesAndUpdateSocialBackupsMetadata, _SeedlessOnboardingController_createNewVaultWithAuthData, _SeedlessOnboardingController_updateVault, _SeedlessOnboardingController_getAccessTokenAndRevokeToken, _SeedlessOnboardingController_withControllerLock, _SeedlessOnboardingController_withVaultLock, _SeedlessOnboardingController_parseVaultData, _SeedlessOnboardingController_assertIsUnlocked, _SeedlessOnboardingController_assertIsAuthenticatedUser, _SeedlessOnboardingController_assertPasswordInSync, _SeedlessOnboardingController_resetPasswordOutdatedCache, _SeedlessOnboardingController_addRefreshTokenToRevokeList, _SeedlessOnboardingController_isAuthTokenError, _SeedlessOnboardingController_isMaxKeyChainLengthError, _SeedlessOnboardingController_executeWithTokenRefresh, _SeedlessOnboardingController_updateVaultAfterAuthTokenRefresh, _SeedlessOnboardingController_checkTokensExpired;
12
+ var _SeedlessOnboardingController_instances, _SeedlessOnboardingController_vaultEncryptor, _SeedlessOnboardingController_controllerOperationMutex, _SeedlessOnboardingController_vaultOperationMutex, _SeedlessOnboardingController_refreshJWTToken, _SeedlessOnboardingController_revokeRefreshToken, _SeedlessOnboardingController_renewRefreshToken, _SeedlessOnboardingController_passwordOutdatedCacheTTL, _SeedlessOnboardingController_isUnlocked, _SeedlessOnboardingController_cachedDecryptedVaultData, _SeedlessOnboardingController_submitGlobalPassword, _SeedlessOnboardingController_setUnlocked, _SeedlessOnboardingController_persistOprfKey, _SeedlessOnboardingController_persistAuthPubKey, _SeedlessOnboardingController_storeKeyringEncryptionKey, _SeedlessOnboardingController_loadKeyringEncryptionKey, _SeedlessOnboardingController_loadSeedlessEncryptionKey, _SeedlessOnboardingController_recoverAuthPubKey, _SeedlessOnboardingController_recoverEncKey, _SeedlessOnboardingController_fetchAllSecretDataFromMetadataStore, _SeedlessOnboardingController_changeEncryptionKey, _SeedlessOnboardingController_encryptAndStoreSecretData, _SeedlessOnboardingController_unlockVaultAndGetVaultData, _SeedlessOnboardingController_decryptAndParseVaultData, _SeedlessOnboardingController_withPersistedSecretMetadataBackupsState, _SeedlessOnboardingController_filterDupesAndUpdateSocialBackupsMetadata, _SeedlessOnboardingController_createNewVaultWithAuthData, _SeedlessOnboardingController_updateVault, _SeedlessOnboardingController_getAccessTokenAndRevokeToken, _SeedlessOnboardingController_withControllerLock, _SeedlessOnboardingController_withVaultLock, _SeedlessOnboardingController_parseVaultData, _SeedlessOnboardingController_assertIsUnlocked, _SeedlessOnboardingController_assertIsAuthenticatedUser, _SeedlessOnboardingController_assertPasswordInSync, _SeedlessOnboardingController_resetPasswordOutdatedCache, _SeedlessOnboardingController_addRefreshTokenToRevokeList, _SeedlessOnboardingController_isAuthTokenError, _SeedlessOnboardingController_isMaxKeyChainLengthError, _SeedlessOnboardingController_executeWithTokenRefresh;
13
13
  import { keccak256AndHexify } from "@metamask/auth-network-utils";
14
14
  import { BaseController } from "@metamask/base-controller";
15
- import { Messenger } from "@metamask/messenger";
16
15
  import { ToprfSecureBackup, TOPRFErrorCode, TOPRFError } from "@metamask/toprf-secure-backup";
17
16
  import { base64ToBytes, bytesToBase64, isNullOrUndefined } from "@metamask/utils";
18
17
  import { gcm } from "@noble/ciphers/aes";
@@ -25,7 +24,7 @@ import { controllerName, PASSWORD_OUTDATED_CACHE_TTL_MS, SecretType, SeedlessOnb
25
24
  import { PasswordSyncError, RecoveryError } from "./errors.mjs";
26
25
  import { projectLogger, createModuleLogger } from "./logger.mjs";
27
26
  import { SecretMetadata } from "./SecretMetadata.mjs";
28
- import { compareAndGetLatestToken, decodeJWTToken, decodeNodeAuthToken, deserializeVaultData, serializeVaultData } from "./utils.mjs";
27
+ import { decodeJWTToken, decodeNodeAuthToken, deserializeVaultData, serializeVaultData } from "./utils.mjs";
29
28
  const log = createModuleLogger(projectLogger, controllerName);
30
29
  /**
31
30
  * Get the initial state for the Seedless Onboarding Controller with defaults.
@@ -239,7 +238,6 @@ export class SeedlessOnboardingController extends BaseController {
239
238
  __classPrivateFieldSet(this, _SeedlessOnboardingController_refreshJWTToken, refreshJWTToken, "f");
240
239
  __classPrivateFieldSet(this, _SeedlessOnboardingController_revokeRefreshToken, revokeRefreshToken, "f");
241
240
  __classPrivateFieldSet(this, _SeedlessOnboardingController_renewRefreshToken, renewRefreshToken, "f");
242
- this.messenger.registerActionHandler('SeedlessOnboardingController:getAccessToken', this.getAccessToken.bind(this));
243
241
  }
244
242
  async fetchMetadataAccessCreds() {
245
243
  const { metadataAccessToken } = this.state;
@@ -550,7 +548,7 @@ export class SeedlessOnboardingController extends BaseController {
550
548
  /**
551
549
  * Submit the password to the controller, verify the password validity and unlock the controller.
552
550
  *
553
- * This method will be used especially when user unlock the wallet.
551
+ * This method will be used especially when user rehydrate/unlock the wallet.
554
552
  * The provided password will be verified against the encrypted vault, encryption key will be derived and saved in the controller state.
555
553
  *
556
554
  * This operation is useful when user performs some actions that requires the user password/encryption key. e.g. add new srp backup
@@ -560,37 +558,7 @@ export class SeedlessOnboardingController extends BaseController {
560
558
  */
561
559
  async submitPassword(password) {
562
560
  return await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_withControllerLock).call(this, async () => {
563
- // get the access token from the state before unlocking, it might be the new token set from the `refreshAuthTokens` method.
564
- const { accessToken: accessTokenBeforeUnlock } = this.state;
565
- const deserializedVaultData = await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_unlockVaultAndGetVaultData).call(this, {
566
- password,
567
- });
568
- const { accessToken: accessTokenAfterUnlock } = this.state;
569
- let latestAccessToken = accessTokenAfterUnlock;
570
- // compare the access token from state before unlocking and after unlocking, take the latest access token if it's different.
571
- if (accessTokenBeforeUnlock &&
572
- accessTokenAfterUnlock &&
573
- accessTokenBeforeUnlock !== accessTokenAfterUnlock) {
574
- // If there was an access token in the state before unlocking, it might be the token set from the `refreshAuthTokens` method.
575
- // Compare it with the access token value from decrypted vault after unlocking and take the latest access token.
576
- latestAccessToken = compareAndGetLatestToken(accessTokenBeforeUnlock, accessTokenAfterUnlock);
577
- }
578
- // update the state and vault with the latest access token if it's different from the current access token in the state.
579
- if (latestAccessToken && latestAccessToken !== accessTokenAfterUnlock) {
580
- // update the access token in the state with the latest access token if it's different from the decrypted access token after unlocking
581
- this.update((state) => {
582
- state.accessToken = latestAccessToken;
583
- });
584
- const updatedVaultData = {
585
- ...deserializedVaultData,
586
- accessToken: latestAccessToken,
587
- };
588
- await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_updateVault).call(this, {
589
- password,
590
- vaultData: updatedVaultData,
591
- pwEncKey: deserializedVaultData.toprfPwEncryptionKey,
592
- });
593
- }
561
+ await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_unlockVaultAndGetVaultData).call(this, { password });
594
562
  __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_setUnlocked).call(this);
595
563
  });
596
564
  }
@@ -796,8 +764,6 @@ export class SeedlessOnboardingController extends BaseController {
796
764
  refreshToken,
797
765
  skipLock: true,
798
766
  });
799
- // update the vault with new access token
800
- await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_updateVaultAfterAuthTokenRefresh).call(this, accessToken);
801
767
  }
802
768
  catch (error) {
803
769
  log('Error refreshing node auth tokens', error);
@@ -888,21 +854,6 @@ export class SeedlessOnboardingController extends BaseController {
888
854
  }
889
855
  });
890
856
  }
891
- /**
892
- * Get the access token from the state.
893
- *
894
- * If the tokens are expired, the method will refresh them and return the new access token.
895
- *
896
- * @returns The access token.
897
- */
898
- async getAccessToken() {
899
- return __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_withControllerLock).call(this, async () => {
900
- __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_assertIsAuthenticatedUser).call(this, this.state);
901
- return __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_executeWithTokenRefresh).call(this, async () => {
902
- return this.state.accessToken;
903
- }, 'getAccessToken');
904
- });
905
- }
906
857
  /**
907
858
  * Check if the current node auth token is expired.
908
859
  *
@@ -970,39 +921,22 @@ _SeedlessOnboardingController_vaultEncryptor = new WeakMap(), _SeedlessOnboardin
970
921
  * corresponding to the current authPubKey in state.
971
922
  */
972
923
  async function _SeedlessOnboardingController_submitGlobalPassword({ targetAuthPubKey, globalPassword, maxKeyChainLength, }) {
973
- const { pwEncKey: globalPwEncKey, authKeyPair: globalAuthKeyPair } = await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_recoverEncKey).call(this, globalPassword);
924
+ const { pwEncKey: curPwEncKey, authKeyPair: curAuthKeyPair } = await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_recoverEncKey).call(this, globalPassword);
974
925
  try {
975
926
  // Recover vault encryption key.
976
927
  const res = await this.toprfClient.recoverPwEncKey({
977
928
  targetAuthPubKey,
978
- curPwEncKey: globalPwEncKey,
979
- curAuthKeyPair: globalAuthKeyPair,
929
+ curPwEncKey,
930
+ curAuthKeyPair,
980
931
  maxPwChainLength: maxKeyChainLength,
981
932
  });
982
933
  const { pwEncKey } = res;
983
934
  const vaultKey = await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_loadSeedlessEncryptionKey).call(this, pwEncKey);
984
- // accessToken before unlocking vault and flooding the state with values from the decrypted vault
985
- // it might be the new token set from the `refreshAuthTokens` method.
986
- const { accessToken: accessTokenBeforeUnlock } = this.state;
987
935
  // Unlock the controller
988
- const decryptedVaultData = await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_unlockVaultAndGetVaultData).call(this, {
936
+ await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_unlockVaultAndGetVaultData).call(this, {
989
937
  encryptionKey: vaultKey,
990
938
  });
991
939
  __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_setUnlocked).call(this);
992
- // accessToken from decrypted vault
993
- const accessTokenFromDecryptedVault = decryptedVaultData.accessToken;
994
- // compare the two access tokens, take the latest access token if it's different.
995
- if (accessTokenBeforeUnlock &&
996
- accessTokenFromDecryptedVault &&
997
- accessTokenBeforeUnlock !== accessTokenFromDecryptedVault) {
998
- const latestAccessToken = compareAndGetLatestToken(accessTokenBeforeUnlock, accessTokenFromDecryptedVault);
999
- // update the access token in the state with the latest access token if it's different from the decrypted access token after unlocking
1000
- // later when we call `syncLatestGlobalPassword`, the encrypted vault will be updated with the latest access token.
1001
- this.update((state) => {
1002
- state.accessToken = latestAccessToken;
1003
- });
1004
- }
1005
- __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_resetPasswordOutdatedCache).call(this);
1006
940
  }
1007
941
  catch (error) {
1008
942
  if (__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_isAuthTokenError).call(this, error)) {
@@ -1432,14 +1366,14 @@ async function _SeedlessOnboardingController_updateVault({ password, vaultData,
1432
1366
  // from the password using an intentionally slow key derivation function.
1433
1367
  // We should make sure that we only call it very intentionally.
1434
1368
  const { vault, exportedKeyString } = await __classPrivateFieldGet(this, _SeedlessOnboardingController_vaultEncryptor, "f").encryptWithDetail(password, serializedVaultData);
1369
+ // Encrypt vault key.
1435
1370
  const aes = managedNonce(gcm)(pwEncKey);
1436
1371
  const encryptedKey = aes.encrypt(utf8ToBytes(exportedKeyString));
1437
- const encryptedSeedlessEncryptionKey = bytesToBase64(encryptedKey);
1438
1372
  this.update((state) => {
1439
1373
  state.vault = vault;
1440
1374
  state.vaultEncryptionKey = exportedKeyString;
1441
1375
  state.vaultEncryptionSalt = JSON.parse(vault).salt;
1442
- state.encryptedSeedlessEncryptionKey = encryptedSeedlessEncryptionKey;
1376
+ state.encryptedSeedlessEncryptionKey = bytesToBase64(encryptedKey);
1443
1377
  });
1444
1378
  });
1445
1379
  }, _SeedlessOnboardingController_getAccessTokenAndRevokeToken =
@@ -1598,7 +1532,18 @@ async function _SeedlessOnboardingController_assertPasswordInSync(options) {
1598
1532
  */
1599
1533
  async function _SeedlessOnboardingController_executeWithTokenRefresh(operation, operationName) {
1600
1534
  try {
1601
- if (__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_checkTokensExpired).call(this)) {
1535
+ // proactively check for expired tokens and refresh them if needed
1536
+ const isNodeAuthTokenExpired = this.checkNodeAuthTokenExpired();
1537
+ const isMetadataAccessTokenExpired = this.checkMetadataAccessTokenExpired();
1538
+ // access token is only accessible when the vault is unlocked
1539
+ // so skip the check if the vault is locked
1540
+ let isAccessTokenExpired = false;
1541
+ if (__classPrivateFieldGet(this, _SeedlessOnboardingController_isUnlocked, "f")) {
1542
+ isAccessTokenExpired = this.checkAccessTokenExpired();
1543
+ }
1544
+ if (isNodeAuthTokenExpired ||
1545
+ isMetadataAccessTokenExpired ||
1546
+ isAccessTokenExpired) {
1602
1547
  log(`JWT token expired during ${operationName}, attempting to refresh tokens`, 'node auth token exp check');
1603
1548
  await this.refreshAuthTokens();
1604
1549
  }
@@ -1624,58 +1569,6 @@ async function _SeedlessOnboardingController_executeWithTokenRefresh(operation,
1624
1569
  throw error;
1625
1570
  }
1626
1571
  }
1627
- }, _SeedlessOnboardingController_updateVaultAfterAuthTokenRefresh = async function _SeedlessOnboardingController_updateVaultAfterAuthTokenRefresh(accessToken) {
1628
- await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_withVaultLock).call(this, async () => {
1629
- if (!__classPrivateFieldGet(this, _SeedlessOnboardingController_isUnlocked, "f")) {
1630
- // we just temporarily store the access token in the state
1631
- // when user attempts to unlock the vault, we will use this access token to update the vault
1632
- this.update((state) => {
1633
- state.accessToken = accessToken;
1634
- });
1635
- return;
1636
- }
1637
- const { vaultEncryptionKey, vaultEncryptionSalt } = this.state;
1638
- if (!vaultEncryptionKey ||
1639
- !vaultEncryptionSalt ||
1640
- !__classPrivateFieldGet(this, _SeedlessOnboardingController_cachedDecryptedVaultData, "f")) {
1641
- throw new Error(SeedlessOnboardingControllerErrorMessage.MissingCredentials);
1642
- }
1643
- const serializedVaultData = serializeVaultData({
1644
- ...__classPrivateFieldGet(this, _SeedlessOnboardingController_cachedDecryptedVaultData, "f"),
1645
- accessToken,
1646
- });
1647
- const encryptionKey = await __classPrivateFieldGet(this, _SeedlessOnboardingController_vaultEncryptor, "f").importKey(vaultEncryptionKey);
1648
- const updatedEncVault = await __classPrivateFieldGet(this, _SeedlessOnboardingController_vaultEncryptor, "f").encryptWithKey(encryptionKey, serializedVaultData);
1649
- // NOTE: Referenced from keyring-controller!
1650
- // We need to include the salt used to derive
1651
- // the encryption key, to be able to derive it
1652
- // from password again.
1653
- updatedEncVault.salt = vaultEncryptionSalt;
1654
- this.update((state) => {
1655
- state.vault = JSON.stringify(updatedEncVault);
1656
- state.vaultEncryptionSalt = vaultEncryptionSalt;
1657
- state.accessToken = accessToken;
1658
- state.vaultEncryptionKey = vaultEncryptionKey;
1659
- });
1660
- // update the cached decrypted vault data with the new access token
1661
- __classPrivateFieldSet(this, _SeedlessOnboardingController_cachedDecryptedVaultData, {
1662
- ...__classPrivateFieldGet(this, _SeedlessOnboardingController_cachedDecryptedVaultData, "f"),
1663
- accessToken,
1664
- }, "f");
1665
- });
1666
- }, _SeedlessOnboardingController_checkTokensExpired = function _SeedlessOnboardingController_checkTokensExpired() {
1667
- // proactively check for expired tokens and refresh them if needed
1668
- const isNodeAuthTokenExpired = this.checkNodeAuthTokenExpired();
1669
- const isMetadataAccessTokenExpired = this.checkMetadataAccessTokenExpired();
1670
- // access token is only accessible when the vault is unlocked
1671
- // so skip the check if the vault is locked
1672
- let isAccessTokenExpired = false;
1673
- if (__classPrivateFieldGet(this, _SeedlessOnboardingController_isUnlocked, "f")) {
1674
- isAccessTokenExpired = this.checkAccessTokenExpired();
1675
- }
1676
- return (isNodeAuthTokenExpired ||
1677
- isMetadataAccessTokenExpired ||
1678
- isAccessTokenExpired);
1679
1572
  };
1680
1573
  /**
1681
1574
  * Assert that the provided password is a valid non-empty string.