@metamask-previews/seedless-onboarding-controller 2.4.0-preview-89ee3f6 → 2.4.0-preview-4aa55b88
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 +9 -0
- package/dist/SeedlessOnboardingController.cjs +51 -51
- package/dist/SeedlessOnboardingController.cjs.map +1 -1
- package/dist/SeedlessOnboardingController.d.cts +2 -13
- package/dist/SeedlessOnboardingController.d.cts.map +1 -1
- package/dist/SeedlessOnboardingController.d.mts +2 -13
- package/dist/SeedlessOnboardingController.d.mts.map +1 -1
- package/dist/SeedlessOnboardingController.mjs +52 -52
- package/dist/SeedlessOnboardingController.mjs.map +1 -1
- package/dist/assertions.cjs +16 -1
- package/dist/assertions.cjs.map +1 -1
- package/dist/assertions.d.cts +7 -0
- package/dist/assertions.d.cts.map +1 -1
- package/dist/assertions.d.mts +7 -0
- package/dist/assertions.d.mts.map +1 -1
- package/dist/assertions.mjs +14 -0
- package/dist/assertions.mjs.map +1 -1
- package/dist/constants.cjs +3 -1
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +4 -2
- package/dist/constants.d.cts.map +1 -1
- package/dist/constants.d.mts +4 -2
- package/dist/constants.d.mts.map +1 -1
- package/dist/constants.mjs +3 -1
- package/dist/constants.mjs.map +1 -1
- package/dist/index.cjs +3 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +1 -0
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -0
- package/dist/index.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +6 -0
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +6 -0
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Added an optional parameter, `passwordOutdatedCacheTTL` to the constructor params and exported `SecretMetadata` class from the controller.([#6169](https://github.com/MetaMask/core/pull/6169))
|
|
13
|
+
|
|
14
|
+
### Removed
|
|
15
|
+
|
|
16
|
+
- Removed `syncLatestGlobalPassword` from the Controller. ([#6180](https://github.com/MetaMask/core/pull/6180))
|
|
17
|
+
- Moved the vault syncing to the `submitGlobalPassword` method
|
|
18
|
+
|
|
10
19
|
## [2.4.0]
|
|
11
20
|
|
|
12
21
|
### Fixed
|
|
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
10
10
|
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");
|
|
11
11
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
12
|
};
|
|
13
|
-
var _SeedlessOnboardingController_instances, _SeedlessOnboardingController_vaultEncryptor, _SeedlessOnboardingController_controllerOperationMutex, _SeedlessOnboardingController_vaultOperationMutex, _SeedlessOnboardingController_refreshJWTToken, _SeedlessOnboardingController_revokeRefreshToken, _SeedlessOnboardingController_isUnlocked, _SeedlessOnboardingController_submitGlobalPassword, _SeedlessOnboardingController_getAccessToken, _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_withPersistedSecretMetadataBackupsState, _SeedlessOnboardingController_filterDupesAndUpdateSocialBackupsMetadata, _SeedlessOnboardingController_createNewVaultWithAuthData, _SeedlessOnboardingController_updateVault, _SeedlessOnboardingController_withControllerLock, _SeedlessOnboardingController_withVaultLock, _SeedlessOnboardingController_serializeKeyData, _SeedlessOnboardingController_parseVaultData, _SeedlessOnboardingController_assertIsUnlocked, _SeedlessOnboardingController_assertIsAuthenticatedUser, _SeedlessOnboardingController_assertIsSRPBackedUpUser, _SeedlessOnboardingController_assertPasswordInSync, _SeedlessOnboardingController_resetPasswordOutdatedCache, _SeedlessOnboardingController_revokeRefreshTokenAndUpdateState, _SeedlessOnboardingController_isTokenExpiredError, _SeedlessOnboardingController_isMaxKeyChainLengthError, _SeedlessOnboardingController_executeWithTokenRefresh;
|
|
13
|
+
var _SeedlessOnboardingController_instances, _SeedlessOnboardingController_vaultEncryptor, _SeedlessOnboardingController_controllerOperationMutex, _SeedlessOnboardingController_vaultOperationMutex, _SeedlessOnboardingController_refreshJWTToken, _SeedlessOnboardingController_revokeRefreshToken, _SeedlessOnboardingController_isUnlocked, _SeedlessOnboardingController_passwordOutdatedCacheTTL, _SeedlessOnboardingController_submitGlobalPassword, _SeedlessOnboardingController_getAccessToken, _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_withPersistedSecretMetadataBackupsState, _SeedlessOnboardingController_filterDupesAndUpdateSocialBackupsMetadata, _SeedlessOnboardingController_createNewVaultWithAuthData, _SeedlessOnboardingController_updateVault, _SeedlessOnboardingController_withControllerLock, _SeedlessOnboardingController_withVaultLock, _SeedlessOnboardingController_serializeKeyData, _SeedlessOnboardingController_parseVaultData, _SeedlessOnboardingController_assertIsUnlocked, _SeedlessOnboardingController_assertIsAuthenticatedUser, _SeedlessOnboardingController_assertIsSRPBackedUpUser, _SeedlessOnboardingController_assertPasswordInSync, _SeedlessOnboardingController_resetPasswordOutdatedCache, _SeedlessOnboardingController_revokeRefreshTokenAndUpdateState, _SeedlessOnboardingController_isTokenExpiredError, _SeedlessOnboardingController_isMaxKeyChainLengthError, _SeedlessOnboardingController_executeWithTokenRefresh;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.SeedlessOnboardingController = exports.getDefaultSeedlessOnboardingControllerState = void 0;
|
|
16
16
|
const auth_network_utils_1 = require("@metamask/auth-network-utils");
|
|
@@ -136,8 +136,9 @@ class SeedlessOnboardingController extends base_controller_1.BaseController {
|
|
|
136
136
|
* @param options.network - The network to be used for the Seedless Onboarding flow.
|
|
137
137
|
* @param options.refreshJWTToken - A function to get a new jwt token using refresh token.
|
|
138
138
|
* @param options.revokeRefreshToken - A function to revoke the refresh token.
|
|
139
|
+
* @param options.passwordOutdatedCacheTTL - The TTL of the password outdated cache in milliseconds.,
|
|
139
140
|
*/
|
|
140
|
-
constructor({ messenger, state, encryptor, toprfKeyDeriver, network = constants_1.Web3AuthNetwork.Mainnet, refreshJWTToken, revokeRefreshToken, }) {
|
|
141
|
+
constructor({ messenger, state, encryptor, toprfKeyDeriver, network = constants_1.Web3AuthNetwork.Mainnet, refreshJWTToken, revokeRefreshToken, passwordOutdatedCacheTTL = constants_1.PASSWORD_OUTDATED_CACHE_TTL_MS, }) {
|
|
141
142
|
super({
|
|
142
143
|
name: constants_1.controllerName,
|
|
143
144
|
metadata: seedlessOnboardingMetadata,
|
|
@@ -159,6 +160,12 @@ class SeedlessOnboardingController extends base_controller_1.BaseController {
|
|
|
159
160
|
* The controller lock is synchronized with the keyring lock.
|
|
160
161
|
*/
|
|
161
162
|
_SeedlessOnboardingController_isUnlocked.set(this, false);
|
|
163
|
+
/**
|
|
164
|
+
* The TTL of the password outdated cache in milliseconds.
|
|
165
|
+
*/
|
|
166
|
+
_SeedlessOnboardingController_passwordOutdatedCacheTTL.set(this, void 0);
|
|
167
|
+
(0, assertions_1.assertIsPasswordOutdatedCacheValid)(passwordOutdatedCacheTTL);
|
|
168
|
+
__classPrivateFieldSet(this, _SeedlessOnboardingController_passwordOutdatedCacheTTL, passwordOutdatedCacheTTL, "f");
|
|
162
169
|
__classPrivateFieldSet(this, _SeedlessOnboardingController_vaultEncryptor, encryptor, "f");
|
|
163
170
|
this.toprfClient = new toprf_secure_backup_1.ToprfSecureBackup({
|
|
164
171
|
network,
|
|
@@ -514,33 +521,6 @@ class SeedlessOnboardingController extends base_controller_1.BaseController {
|
|
|
514
521
|
});
|
|
515
522
|
__classPrivateFieldSet(this, _SeedlessOnboardingController_isUnlocked, false, "f");
|
|
516
523
|
}
|
|
517
|
-
/**
|
|
518
|
-
* Sync the latest global password to the controller.
|
|
519
|
-
* reset vault with latest globalPassword,
|
|
520
|
-
* persist the latest global password authPubKey
|
|
521
|
-
*
|
|
522
|
-
* @param params - The parameters for syncing the latest global password.
|
|
523
|
-
* @param params.globalPassword - The latest global password.
|
|
524
|
-
* @returns A promise that resolves to the success of the operation.
|
|
525
|
-
*/
|
|
526
|
-
async syncLatestGlobalPassword({ globalPassword, }) {
|
|
527
|
-
return await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_withControllerLock).call(this, async () => {
|
|
528
|
-
__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_assertIsUnlocked).call(this);
|
|
529
|
-
const doSyncPassword = async () => {
|
|
530
|
-
// update vault with latest globalPassword
|
|
531
|
-
const { encKey, pwEncKey, authKeyPair } = await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_recoverEncKey).call(this, globalPassword);
|
|
532
|
-
// update and encrypt the vault with new password
|
|
533
|
-
await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_createNewVaultWithAuthData).call(this, {
|
|
534
|
-
password: globalPassword,
|
|
535
|
-
rawToprfEncryptionKey: encKey,
|
|
536
|
-
rawToprfPwEncryptionKey: pwEncKey,
|
|
537
|
-
rawToprfAuthKeyPair: authKeyPair,
|
|
538
|
-
});
|
|
539
|
-
__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_resetPasswordOutdatedCache).call(this);
|
|
540
|
-
};
|
|
541
|
-
return await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_executeWithTokenRefresh).call(this, doSyncPassword, 'syncLatestGlobalPassword');
|
|
542
|
-
});
|
|
543
|
-
}
|
|
544
524
|
/**
|
|
545
525
|
* @description Unlock the controller with the latest global password.
|
|
546
526
|
*
|
|
@@ -581,7 +561,7 @@ class SeedlessOnboardingController extends base_controller_1.BaseController {
|
|
|
581
561
|
const now = Date.now();
|
|
582
562
|
const isCacheValid = passwordOutdatedCache &&
|
|
583
563
|
now - passwordOutdatedCache.timestamp <
|
|
584
|
-
|
|
564
|
+
__classPrivateFieldGet(this, _SeedlessOnboardingController_passwordOutdatedCacheTTL, "f");
|
|
585
565
|
if (isCacheValid) {
|
|
586
566
|
return passwordOutdatedCache.isExpiredPwd;
|
|
587
567
|
}
|
|
@@ -590,11 +570,16 @@ class SeedlessOnboardingController extends base_controller_1.BaseController {
|
|
|
590
570
|
const currentDeviceAuthPubKey = __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_recoverAuthPubKey).call(this);
|
|
591
571
|
let globalAuthPubKey = options?.globalAuthPubKey;
|
|
592
572
|
if (!globalAuthPubKey) {
|
|
593
|
-
const { authPubKey } = await this.toprfClient
|
|
573
|
+
const { authPubKey } = await this.toprfClient
|
|
574
|
+
.fetchAuthPubKey({
|
|
594
575
|
nodeAuthTokens,
|
|
595
576
|
authConnectionId,
|
|
596
577
|
groupedAuthConnectionId,
|
|
597
578
|
userId,
|
|
579
|
+
})
|
|
580
|
+
.catch((error) => {
|
|
581
|
+
log('Error fetching auth pub key', error);
|
|
582
|
+
throw new Error(constants_1.SeedlessOnboardingControllerErrorMessage.FailedToFetchAuthPubKey);
|
|
598
583
|
});
|
|
599
584
|
globalAuthPubKey = authPubKey;
|
|
600
585
|
}
|
|
@@ -727,7 +712,7 @@ class SeedlessOnboardingController extends base_controller_1.BaseController {
|
|
|
727
712
|
}
|
|
728
713
|
}
|
|
729
714
|
exports.SeedlessOnboardingController = SeedlessOnboardingController;
|
|
730
|
-
_SeedlessOnboardingController_vaultEncryptor = new WeakMap(), _SeedlessOnboardingController_controllerOperationMutex = new WeakMap(), _SeedlessOnboardingController_vaultOperationMutex = new WeakMap(), _SeedlessOnboardingController_refreshJWTToken = new WeakMap(), _SeedlessOnboardingController_revokeRefreshToken = new WeakMap(), _SeedlessOnboardingController_isUnlocked = new WeakMap(), _SeedlessOnboardingController_instances = new WeakSet(), _SeedlessOnboardingController_submitGlobalPassword =
|
|
715
|
+
_SeedlessOnboardingController_vaultEncryptor = new WeakMap(), _SeedlessOnboardingController_controllerOperationMutex = new WeakMap(), _SeedlessOnboardingController_vaultOperationMutex = new WeakMap(), _SeedlessOnboardingController_refreshJWTToken = new WeakMap(), _SeedlessOnboardingController_revokeRefreshToken = new WeakMap(), _SeedlessOnboardingController_isUnlocked = new WeakMap(), _SeedlessOnboardingController_passwordOutdatedCacheTTL = new WeakMap(), _SeedlessOnboardingController_instances = new WeakSet(), _SeedlessOnboardingController_submitGlobalPassword =
|
|
731
716
|
/**
|
|
732
717
|
* @description Submit the global password to the controller, verify the
|
|
733
718
|
* password validity and unlock the controller.
|
|
@@ -741,31 +726,32 @@ _SeedlessOnboardingController_vaultEncryptor = new WeakMap(), _SeedlessOnboardin
|
|
|
741
726
|
* corresponding to the current authPubKey in state.
|
|
742
727
|
*/
|
|
743
728
|
async function _SeedlessOnboardingController_submitGlobalPassword({ targetAuthPubKey, globalPassword, maxKeyChainLength, }) {
|
|
744
|
-
const { pwEncKey:
|
|
729
|
+
const { pwEncKey: latestPwEncKey, authKeyPair: latestAuthKeyPair, encKey: latestEncKey, } = await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_recoverEncKey).call(this, globalPassword);
|
|
745
730
|
try {
|
|
746
731
|
// Recover vault encryption key.
|
|
747
|
-
const
|
|
732
|
+
const { pwEncKey } = await this.toprfClient.recoverPwEncKey({
|
|
748
733
|
targetAuthPubKey,
|
|
749
|
-
curPwEncKey,
|
|
750
|
-
curAuthKeyPair,
|
|
734
|
+
curPwEncKey: latestPwEncKey,
|
|
735
|
+
curAuthKeyPair: latestAuthKeyPair,
|
|
751
736
|
maxPwChainLength: maxKeyChainLength,
|
|
752
737
|
});
|
|
753
|
-
const { pwEncKey } = res;
|
|
754
738
|
const vaultKey = await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_loadSeedlessEncryptionKey).call(this, pwEncKey);
|
|
739
|
+
const keyringEncryptionKey = await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_loadKeyringEncryptionKey).call(this, pwEncKey);
|
|
755
740
|
// Unlock the controller
|
|
756
|
-
const { revokeToken
|
|
741
|
+
const { revokeToken } = await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_unlockVaultAndGetVaultData).call(this, undefined, vaultKey);
|
|
757
742
|
__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_setUnlocked).call(this);
|
|
758
743
|
if (revokeToken) {
|
|
759
744
|
// revoke and recyle refresh token after unlock to keep refresh token fresh, avoid malicious use of leaked refresh token
|
|
760
745
|
await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_revokeRefreshTokenAndUpdateState).call(this, revokeToken);
|
|
761
|
-
// re-creating vault to persist the new revoke token
|
|
762
|
-
await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_createNewVaultWithAuthData).call(this, {
|
|
763
|
-
password: globalPassword,
|
|
764
|
-
rawToprfEncryptionKey: toprfEncryptionKey,
|
|
765
|
-
rawToprfPwEncryptionKey: toprfPwEncryptionKey,
|
|
766
|
-
rawToprfAuthKeyPair: toprfAuthKeyPair,
|
|
767
|
-
});
|
|
768
746
|
}
|
|
747
|
+
// re-creating vault to persist the new revoke token
|
|
748
|
+
await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_createNewVaultWithAuthData).call(this, {
|
|
749
|
+
password: globalPassword,
|
|
750
|
+
rawToprfEncryptionKey: latestEncKey,
|
|
751
|
+
rawToprfPwEncryptionKey: latestPwEncKey,
|
|
752
|
+
rawToprfAuthKeyPair: latestAuthKeyPair,
|
|
753
|
+
});
|
|
754
|
+
await this.storeKeyringEncryptionKey(keyringEncryptionKey);
|
|
769
755
|
}
|
|
770
756
|
catch (error) {
|
|
771
757
|
if (__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_isTokenExpiredError).call(this, error)) {
|
|
@@ -945,16 +931,25 @@ async function _SeedlessOnboardingController_recoverEncKey(password) {
|
|
|
945
931
|
async function _SeedlessOnboardingController_changeEncryptionKey({ oldPassword, newPassword, latestKeyIndex, }) {
|
|
946
932
|
__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_assertIsAuthenticatedUser).call(this, this.state);
|
|
947
933
|
const { authConnectionId, groupedAuthConnectionId, userId } = this.state;
|
|
948
|
-
let
|
|
949
|
-
let
|
|
950
|
-
|
|
934
|
+
let encKey;
|
|
935
|
+
let pwEncKey;
|
|
936
|
+
let authKeyPair;
|
|
937
|
+
let globalKeyIndex = latestKeyIndex;
|
|
938
|
+
if (!globalKeyIndex) {
|
|
951
939
|
({
|
|
952
940
|
encKey,
|
|
953
941
|
pwEncKey,
|
|
954
942
|
authKeyPair,
|
|
955
|
-
keyShareIndex:
|
|
943
|
+
keyShareIndex: globalKeyIndex,
|
|
956
944
|
} = await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_recoverEncKey).call(this, oldPassword));
|
|
957
945
|
}
|
|
946
|
+
else {
|
|
947
|
+
({
|
|
948
|
+
toprfEncryptionKey: encKey,
|
|
949
|
+
toprfPwEncryptionKey: pwEncKey,
|
|
950
|
+
toprfAuthKeyPair: authKeyPair,
|
|
951
|
+
} = await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_unlockVaultAndGetVaultData).call(this, oldPassword));
|
|
952
|
+
}
|
|
958
953
|
const result = await this.toprfClient.changeEncKey({
|
|
959
954
|
nodeAuthTokens: this.state.nodeAuthTokens,
|
|
960
955
|
authConnectionId,
|
|
@@ -963,7 +958,7 @@ async function _SeedlessOnboardingController_changeEncryptionKey({ oldPassword,
|
|
|
963
958
|
oldEncKey: encKey,
|
|
964
959
|
oldPwEncKey: pwEncKey,
|
|
965
960
|
oldAuthKeyPair: authKeyPair,
|
|
966
|
-
newKeyShareIndex,
|
|
961
|
+
newKeyShareIndex: globalKeyIndex,
|
|
967
962
|
newPassword,
|
|
968
963
|
});
|
|
969
964
|
return result;
|
|
@@ -1313,11 +1308,16 @@ async function _SeedlessOnboardingController_assertPasswordInSync(options) {
|
|
|
1313
1308
|
if (!nodeAuthTokens || !authConnectionId || !userId) {
|
|
1314
1309
|
throw new Error(constants_1.SeedlessOnboardingControllerErrorMessage.MissingAuthUserInfo);
|
|
1315
1310
|
}
|
|
1316
|
-
const { authPubKey, keyIndex: latestKeyIndex } = await this.toprfClient
|
|
1311
|
+
const { authPubKey, keyIndex: latestKeyIndex } = await this.toprfClient
|
|
1312
|
+
.fetchAuthPubKey({
|
|
1317
1313
|
nodeAuthTokens,
|
|
1318
1314
|
authConnectionId,
|
|
1319
1315
|
groupedAuthConnectionId,
|
|
1320
1316
|
userId,
|
|
1317
|
+
})
|
|
1318
|
+
.catch((error) => {
|
|
1319
|
+
log('Error fetching auth pub key', error);
|
|
1320
|
+
throw new Error(constants_1.SeedlessOnboardingControllerErrorMessage.FailedToFetchAuthPubKey);
|
|
1321
1321
|
});
|
|
1322
1322
|
const isPasswordOutdated = await this.checkIsPasswordOutdated({
|
|
1323
1323
|
...options,
|