@dynamic-labs-wallet/browser 0.0.262 → 0.0.264

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/index.cjs.js CHANGED
@@ -1137,6 +1137,61 @@ const initializeCloudKit = async (config, signInButtonId, onSignInRequired, onSi
1137
1137
  }
1138
1138
  };
1139
1139
 
1140
+ const ERROR_PASSWORD_MISMATCH = '[DynamicWaasWalletClient]: Password does not match the password used for existing wallets. All wallets must use the same password for encrypted backups.';
1141
+ const ERROR_PASSWORD_REQUIRED_FOR_ENCRYPTED_WALLET = '[DynamicWaasWalletClient]: Password is required for refresh/reshare of a password-encrypted wallet.';
1142
+ /**
1143
+ * Checks if password consistency validation is needed.
1144
+ * Returns false if no password provided or password is the environmentId default.
1145
+ */ function shouldValidatePassword(password, environmentId) {
1146
+ if (!password || password === environmentId) {
1147
+ return false;
1148
+ }
1149
+ return true;
1150
+ }
1151
+ /**
1152
+ * Finds the first password-encrypted wallet in the walletMap.
1153
+ * Returns [normalizedAddress, walletProperties] or undefined.
1154
+ */ function findPasswordEncryptedWallet(walletMap) {
1155
+ for (const [address, wallet] of Object.entries(walletMap)){
1156
+ var _wallet_clientKeySharesBackupInfo;
1157
+ if ((_wallet_clientKeySharesBackupInfo = wallet.clientKeySharesBackupInfo) == null ? void 0 : _wallet_clientKeySharesBackupInfo.passwordEncrypted) {
1158
+ return [
1159
+ address,
1160
+ wallet
1161
+ ];
1162
+ }
1163
+ }
1164
+ return undefined;
1165
+ }
1166
+ /**
1167
+ * Extracts the first encrypted key share credential from cached encrypted data.
1168
+ * Returns the base64-encoded encrypted credential string, or undefined if none found.
1169
+ */ function extractFirstEncryptedCredential(encryptedData) {
1170
+ try {
1171
+ const parsed = JSON.parse(encryptedData);
1172
+ const keyShares = parsed == null ? void 0 : parsed.keyShares;
1173
+ if (!Array.isArray(keyShares) || keyShares.length === 0) {
1174
+ return undefined;
1175
+ }
1176
+ return keyShares[0].encryptedAccountCredential;
1177
+ } catch (e) {
1178
+ return undefined;
1179
+ }
1180
+ }
1181
+ /**
1182
+ * Checks if a wallet uses password-based encryption for its key share backups.
1183
+ */ function isWalletPasswordEncrypted(wallet) {
1184
+ var _wallet_clientKeySharesBackupInfo;
1185
+ var _wallet_clientKeySharesBackupInfo_passwordEncrypted;
1186
+ return (_wallet_clientKeySharesBackupInfo_passwordEncrypted = wallet == null ? void 0 : (_wallet_clientKeySharesBackupInfo = wallet.clientKeySharesBackupInfo) == null ? void 0 : _wallet_clientKeySharesBackupInfo.passwordEncrypted) != null ? _wallet_clientKeySharesBackupInfo_passwordEncrypted : false;
1187
+ }
1188
+ /**
1189
+ * Checks if an error indicates a password mismatch (wrong password during decryption).
1190
+ * Matches against the INVALID_PASSWORD_ERROR message from encryption/core.ts
1191
+ */ function isPasswordMismatchError(error) {
1192
+ return error instanceof Error && error.message === INVALID_PASSWORD_ERROR;
1193
+ }
1194
+
1140
1195
  class WalletNotReadyError extends Error {
1141
1196
  constructor(accountAddress, walletReadyState){
1142
1197
  super(`Wallet ${accountAddress} is not ready and requires password to be unlocked`);
@@ -1910,9 +1965,13 @@ class DynamicWalletClient {
1910
1965
  clientKeygenResults
1911
1966
  };
1912
1967
  }
1913
- async keyGen({ chainName, thresholdSignatureScheme, bitcoinConfig, onError, onCeremonyComplete, traceContext }) {
1968
+ async keyGen({ chainName, thresholdSignatureScheme, bitcoinConfig, onError, onCeremonyComplete, traceContext, password, signedSessionId }) {
1914
1969
  const dynamicRequestId = uuid.v4();
1915
1970
  try {
1971
+ await this.validatePasswordConsistencyForNewWallet({
1972
+ password,
1973
+ signedSessionId
1974
+ });
1916
1975
  const clientKeygenInitResults = await this.clientInitializeKeyGen({
1917
1976
  chainName,
1918
1977
  thresholdSignatureScheme,
@@ -1977,9 +2036,13 @@ class DynamicWalletClient {
1977
2036
  throw error;
1978
2037
  }
1979
2038
  }
1980
- async importRawPrivateKey({ chainName, privateKey, thresholdSignatureScheme, bitcoinConfig, onError, onCeremonyComplete, traceContext, legacyWalletId }) {
2039
+ async importRawPrivateKey({ chainName, privateKey, thresholdSignatureScheme, bitcoinConfig, onError, onCeremonyComplete, traceContext, legacyWalletId, password, signedSessionId }) {
1981
2040
  const dynamicRequestId = uuid.v4();
1982
2041
  try {
2042
+ await this.validatePasswordConsistencyForNewWallet({
2043
+ password,
2044
+ signedSessionId
2045
+ });
1983
2046
  const mpcSigner = getMPCSigner({
1984
2047
  chainName,
1985
2048
  baseRelayUrl: this.baseMPCRelayApiUrl,
@@ -2430,6 +2493,11 @@ class DynamicWalletClient {
2430
2493
  walletOperation: core.WalletOperation.REFRESH,
2431
2494
  signedSessionId
2432
2495
  });
2496
+ await this.validatePasswordForExistingWallet({
2497
+ accountAddress,
2498
+ password,
2499
+ signedSessionId
2500
+ });
2433
2501
  const wallet = await this.getWallet({
2434
2502
  accountAddress,
2435
2503
  walletOperation: core.WalletOperation.NO_OPERATION,
@@ -2605,6 +2673,11 @@ class DynamicWalletClient {
2605
2673
  walletOperation: core.WalletOperation.RESHARE,
2606
2674
  signedSessionId
2607
2675
  });
2676
+ await this.validatePasswordForExistingWallet({
2677
+ accountAddress,
2678
+ password,
2679
+ signedSessionId
2680
+ });
2608
2681
  const { existingClientShareCount } = core.getReshareConfig({
2609
2682
  oldThresholdSignatureScheme,
2610
2683
  newThresholdSignatureScheme
@@ -3177,7 +3250,7 @@ class DynamicWalletClient {
3177
3250
  throw error;
3178
3251
  }
3179
3252
  const locations = [];
3180
- const isPasswordEncrypted = Boolean(password) && password !== this.environmentId;
3253
+ const isPasswordEncrypted = shouldValidatePassword(password, this.environmentId);
3181
3254
  if (distribution.clientShares.length > 0) {
3182
3255
  const encryptedDynamicShares = await Promise.all(distribution.clientShares.map((keyShare)=>this.encryptKeyShare({
3183
3256
  keyShare,
@@ -3413,6 +3486,112 @@ class DynamicWalletClient {
3413
3486
  return deserializedKeyShare;
3414
3487
  }
3415
3488
  /**
3489
+ * Validates that the provided password is consistent with existing encrypted wallets.
3490
+ * This prevents users from creating multiple wallets with different passwords.
3491
+ *
3492
+ * @param password - User-provided password (optional)
3493
+ * @param signedSessionId - Signed session ID for API calls
3494
+ * @throws Error with ERROR_PASSWORD_MISMATCH if password doesn't match existing wallets
3495
+ */ /**
3496
+ * Shared helper: fetches encrypted shares (from storage or API) and validates
3497
+ * the provided password by attempting to decrypt the first credential.
3498
+ * Throws ERROR_PASSWORD_MISMATCH if the password is incorrect.
3499
+ */ async validatePasswordAgainstEncryptedShares({ wallet, address, password, signedSessionId }) {
3500
+ const storageKey = `${normalizeAddress(address)}${core.ENCRYPTED_SHARES_STORAGE_SUFFIX}`;
3501
+ let encryptedData = await this.storage.getItem(storageKey);
3502
+ if (!encryptedData) {
3503
+ const { shares } = this.recoverStrategy({
3504
+ clientKeyShareBackupInfo: wallet.clientKeySharesBackupInfo,
3505
+ thresholdSignatureScheme: wallet.thresholdSignatureScheme,
3506
+ walletOperation: core.WalletOperation.RECOVER
3507
+ });
3508
+ const result = await this.apiClient.recoverEncryptedBackupByWallet({
3509
+ walletId: wallet.walletId,
3510
+ keyShareIds: shares[core.BackupLocation.DYNAMIC] || [],
3511
+ signedSessionId,
3512
+ requiresSignedSessionId: this.requiresSignedSessionId()
3513
+ });
3514
+ if (!result) {
3515
+ throw new Error('Failed to retrieve encrypted backup from API for password validation');
3516
+ }
3517
+ encryptedData = JSON.stringify(result);
3518
+ await this.storage.setItem(storageKey, encryptedData);
3519
+ }
3520
+ const credential = extractFirstEncryptedCredential(encryptedData);
3521
+ if (!credential) {
3522
+ return;
3523
+ }
3524
+ try {
3525
+ await this.decryptKeyShare({
3526
+ keyShare: credential,
3527
+ password
3528
+ });
3529
+ } catch (error) {
3530
+ if (isPasswordMismatchError(error)) {
3531
+ throw new Error(ERROR_PASSWORD_MISMATCH);
3532
+ }
3533
+ throw error;
3534
+ }
3535
+ }
3536
+ async validatePasswordConsistencyForNewWallet({ password, signedSessionId }) {
3537
+ try {
3538
+ // Early exit if validation not needed
3539
+ if (!shouldValidatePassword(password, this.environmentId)) {
3540
+ return;
3541
+ }
3542
+ // Ensure walletMap is populated
3543
+ await this.getWallets();
3544
+ // Find first password-encrypted wallet
3545
+ const found = findPasswordEncryptedWallet(this.walletMap);
3546
+ if (!found) {
3547
+ return; // No existing encrypted wallets
3548
+ }
3549
+ const [address, wallet] = found;
3550
+ await this.validatePasswordAgainstEncryptedShares({
3551
+ wallet,
3552
+ address,
3553
+ password: password,
3554
+ signedSessionId
3555
+ });
3556
+ } catch (error) {
3557
+ this.logger.error('Error validating password consistency', {
3558
+ error: error instanceof Error ? error.message : error,
3559
+ hasPassword: !!password
3560
+ });
3561
+ throw error;
3562
+ }
3563
+ }
3564
+ /**
3565
+ * Validates that the provided password matches the existing encryption for
3566
+ * a password-encrypted wallet. Must be called before refresh/reshare ceremonies.
3567
+ * Throws if the wallet is password-encrypted but no password (or wrong password) is provided.
3568
+ */ async validatePasswordForExistingWallet({ accountAddress, password, signedSessionId }) {
3569
+ try {
3570
+ // Ensure walletMap is populated
3571
+ await this.getWallets();
3572
+ const walletProperties = this.getWalletFromMap(accountAddress);
3573
+ if (!isWalletPasswordEncrypted(walletProperties)) {
3574
+ return; // Not password-encrypted, no validation needed
3575
+ }
3576
+ // Password-encrypted wallet requires a real password
3577
+ if (!shouldValidatePassword(password, this.environmentId)) {
3578
+ throw new Error(ERROR_PASSWORD_REQUIRED_FOR_ENCRYPTED_WALLET);
3579
+ }
3580
+ await this.validatePasswordAgainstEncryptedShares({
3581
+ wallet: walletProperties,
3582
+ address: accountAddress,
3583
+ password: password,
3584
+ signedSessionId
3585
+ });
3586
+ } catch (error) {
3587
+ this.logger.error('Error validating password for existing wallet', {
3588
+ error: error instanceof Error ? error.message : error,
3589
+ hasPassword: !!password
3590
+ });
3591
+ throw error;
3592
+ }
3593
+ }
3594
+ /**
3416
3595
  * Helper function to get Google OAuth Account ID or throw an error if not found.
3417
3596
  * @param accountAddress - The account address for logging purposes
3418
3597
  * @returns The Google OAuth Account ID
@@ -4033,10 +4212,8 @@ class DynamicWalletClient {
4033
4212
  accountAddress,
4034
4213
  walletOperation
4035
4214
  })) {
4036
- var _walletData_clientKeySharesBackupInfo;
4037
4215
  const walletData = this.getWalletFromMap(accountAddress);
4038
- var _walletData_clientKeySharesBackupInfo_passwordEncrypted;
4039
- const isPasswordEncrypted = (_walletData_clientKeySharesBackupInfo_passwordEncrypted = (_walletData_clientKeySharesBackupInfo = walletData.clientKeySharesBackupInfo) == null ? void 0 : _walletData_clientKeySharesBackupInfo.passwordEncrypted) != null ? _walletData_clientKeySharesBackupInfo_passwordEncrypted : false;
4216
+ const isPasswordEncrypted = isWalletPasswordEncrypted(walletData);
4040
4217
  // Password-encrypted wallet without password - fetch and cache for eager loading
4041
4218
  if (walletOperation === core.WalletOperation.RECOVER && isPasswordEncrypted && !password) {
4042
4219
  const { shares } = this.recoverStrategy({
@@ -4205,10 +4382,7 @@ class DynamicWalletClient {
4205
4382
  password
4206
4383
  });
4207
4384
  // Decrypt all other password-encrypted wallets with the same password
4208
- const otherEncryptedWallets = Object.entries(this.walletMap).filter(([addr, w])=>{
4209
- var _w_clientKeySharesBackupInfo;
4210
- return addr !== normalizedAccountAddress && w.walletReadyState !== core.WalletReadyState.READY && ((_w_clientKeySharesBackupInfo = w.clientKeySharesBackupInfo) == null ? void 0 : _w_clientKeySharesBackupInfo.passwordEncrypted);
4211
- });
4385
+ const otherEncryptedWallets = Object.entries(this.walletMap).filter(([addr, w])=>addr !== normalizedAccountAddress && w.walletReadyState !== core.WalletReadyState.READY && isWalletPasswordEncrypted(w));
4212
4386
  await Promise.all(otherEncryptedWallets.map(async ([otherAddr])=>{
4213
4387
  try {
4214
4388
  const otherEncryptedStorageKey = `${otherAddr}${core.ENCRYPTED_SHARES_STORAGE_SUFFIX}`;
@@ -4548,6 +4722,8 @@ exports.ERROR_CREATE_WALLET_ACCOUNT = ERROR_CREATE_WALLET_ACCOUNT;
4548
4722
  exports.ERROR_EXPORT_PRIVATE_KEY = ERROR_EXPORT_PRIVATE_KEY;
4549
4723
  exports.ERROR_IMPORT_PRIVATE_KEY = ERROR_IMPORT_PRIVATE_KEY;
4550
4724
  exports.ERROR_KEYGEN_FAILED = ERROR_KEYGEN_FAILED;
4725
+ exports.ERROR_PASSWORD_MISMATCH = ERROR_PASSWORD_MISMATCH;
4726
+ exports.ERROR_PASSWORD_REQUIRED_FOR_ENCRYPTED_WALLET = ERROR_PASSWORD_REQUIRED_FOR_ENCRYPTED_WALLET;
4551
4727
  exports.ERROR_PUBLIC_KEY_MISMATCH = ERROR_PUBLIC_KEY_MISMATCH;
4552
4728
  exports.ERROR_SIGN_MESSAGE = ERROR_SIGN_MESSAGE;
4553
4729
  exports.ERROR_SIGN_TYPED_DATA = ERROR_SIGN_TYPED_DATA;
package/index.esm.js CHANGED
@@ -1138,6 +1138,61 @@ const initializeCloudKit = async (config, signInButtonId, onSignInRequired, onSi
1138
1138
  }
1139
1139
  };
1140
1140
 
1141
+ const ERROR_PASSWORD_MISMATCH = '[DynamicWaasWalletClient]: Password does not match the password used for existing wallets. All wallets must use the same password for encrypted backups.';
1142
+ const ERROR_PASSWORD_REQUIRED_FOR_ENCRYPTED_WALLET = '[DynamicWaasWalletClient]: Password is required for refresh/reshare of a password-encrypted wallet.';
1143
+ /**
1144
+ * Checks if password consistency validation is needed.
1145
+ * Returns false if no password provided or password is the environmentId default.
1146
+ */ function shouldValidatePassword(password, environmentId) {
1147
+ if (!password || password === environmentId) {
1148
+ return false;
1149
+ }
1150
+ return true;
1151
+ }
1152
+ /**
1153
+ * Finds the first password-encrypted wallet in the walletMap.
1154
+ * Returns [normalizedAddress, walletProperties] or undefined.
1155
+ */ function findPasswordEncryptedWallet(walletMap) {
1156
+ for (const [address, wallet] of Object.entries(walletMap)){
1157
+ var _wallet_clientKeySharesBackupInfo;
1158
+ if ((_wallet_clientKeySharesBackupInfo = wallet.clientKeySharesBackupInfo) == null ? void 0 : _wallet_clientKeySharesBackupInfo.passwordEncrypted) {
1159
+ return [
1160
+ address,
1161
+ wallet
1162
+ ];
1163
+ }
1164
+ }
1165
+ return undefined;
1166
+ }
1167
+ /**
1168
+ * Extracts the first encrypted key share credential from cached encrypted data.
1169
+ * Returns the base64-encoded encrypted credential string, or undefined if none found.
1170
+ */ function extractFirstEncryptedCredential(encryptedData) {
1171
+ try {
1172
+ const parsed = JSON.parse(encryptedData);
1173
+ const keyShares = parsed == null ? void 0 : parsed.keyShares;
1174
+ if (!Array.isArray(keyShares) || keyShares.length === 0) {
1175
+ return undefined;
1176
+ }
1177
+ return keyShares[0].encryptedAccountCredential;
1178
+ } catch (e) {
1179
+ return undefined;
1180
+ }
1181
+ }
1182
+ /**
1183
+ * Checks if a wallet uses password-based encryption for its key share backups.
1184
+ */ function isWalletPasswordEncrypted(wallet) {
1185
+ var _wallet_clientKeySharesBackupInfo;
1186
+ var _wallet_clientKeySharesBackupInfo_passwordEncrypted;
1187
+ return (_wallet_clientKeySharesBackupInfo_passwordEncrypted = wallet == null ? void 0 : (_wallet_clientKeySharesBackupInfo = wallet.clientKeySharesBackupInfo) == null ? void 0 : _wallet_clientKeySharesBackupInfo.passwordEncrypted) != null ? _wallet_clientKeySharesBackupInfo_passwordEncrypted : false;
1188
+ }
1189
+ /**
1190
+ * Checks if an error indicates a password mismatch (wrong password during decryption).
1191
+ * Matches against the INVALID_PASSWORD_ERROR message from encryption/core.ts
1192
+ */ function isPasswordMismatchError(error) {
1193
+ return error instanceof Error && error.message === INVALID_PASSWORD_ERROR;
1194
+ }
1195
+
1141
1196
  class WalletNotReadyError extends Error {
1142
1197
  constructor(accountAddress, walletReadyState){
1143
1198
  super(`Wallet ${accountAddress} is not ready and requires password to be unlocked`);
@@ -1911,9 +1966,13 @@ class DynamicWalletClient {
1911
1966
  clientKeygenResults
1912
1967
  };
1913
1968
  }
1914
- async keyGen({ chainName, thresholdSignatureScheme, bitcoinConfig, onError, onCeremonyComplete, traceContext }) {
1969
+ async keyGen({ chainName, thresholdSignatureScheme, bitcoinConfig, onError, onCeremonyComplete, traceContext, password, signedSessionId }) {
1915
1970
  const dynamicRequestId = v4();
1916
1971
  try {
1972
+ await this.validatePasswordConsistencyForNewWallet({
1973
+ password,
1974
+ signedSessionId
1975
+ });
1917
1976
  const clientKeygenInitResults = await this.clientInitializeKeyGen({
1918
1977
  chainName,
1919
1978
  thresholdSignatureScheme,
@@ -1978,9 +2037,13 @@ class DynamicWalletClient {
1978
2037
  throw error;
1979
2038
  }
1980
2039
  }
1981
- async importRawPrivateKey({ chainName, privateKey, thresholdSignatureScheme, bitcoinConfig, onError, onCeremonyComplete, traceContext, legacyWalletId }) {
2040
+ async importRawPrivateKey({ chainName, privateKey, thresholdSignatureScheme, bitcoinConfig, onError, onCeremonyComplete, traceContext, legacyWalletId, password, signedSessionId }) {
1982
2041
  const dynamicRequestId = v4();
1983
2042
  try {
2043
+ await this.validatePasswordConsistencyForNewWallet({
2044
+ password,
2045
+ signedSessionId
2046
+ });
1984
2047
  const mpcSigner = getMPCSigner({
1985
2048
  chainName,
1986
2049
  baseRelayUrl: this.baseMPCRelayApiUrl,
@@ -2431,6 +2494,11 @@ class DynamicWalletClient {
2431
2494
  walletOperation: WalletOperation.REFRESH,
2432
2495
  signedSessionId
2433
2496
  });
2497
+ await this.validatePasswordForExistingWallet({
2498
+ accountAddress,
2499
+ password,
2500
+ signedSessionId
2501
+ });
2434
2502
  const wallet = await this.getWallet({
2435
2503
  accountAddress,
2436
2504
  walletOperation: WalletOperation.NO_OPERATION,
@@ -2606,6 +2674,11 @@ class DynamicWalletClient {
2606
2674
  walletOperation: WalletOperation.RESHARE,
2607
2675
  signedSessionId
2608
2676
  });
2677
+ await this.validatePasswordForExistingWallet({
2678
+ accountAddress,
2679
+ password,
2680
+ signedSessionId
2681
+ });
2609
2682
  const { existingClientShareCount } = getReshareConfig({
2610
2683
  oldThresholdSignatureScheme,
2611
2684
  newThresholdSignatureScheme
@@ -3178,7 +3251,7 @@ class DynamicWalletClient {
3178
3251
  throw error;
3179
3252
  }
3180
3253
  const locations = [];
3181
- const isPasswordEncrypted = Boolean(password) && password !== this.environmentId;
3254
+ const isPasswordEncrypted = shouldValidatePassword(password, this.environmentId);
3182
3255
  if (distribution.clientShares.length > 0) {
3183
3256
  const encryptedDynamicShares = await Promise.all(distribution.clientShares.map((keyShare)=>this.encryptKeyShare({
3184
3257
  keyShare,
@@ -3414,6 +3487,112 @@ class DynamicWalletClient {
3414
3487
  return deserializedKeyShare;
3415
3488
  }
3416
3489
  /**
3490
+ * Validates that the provided password is consistent with existing encrypted wallets.
3491
+ * This prevents users from creating multiple wallets with different passwords.
3492
+ *
3493
+ * @param password - User-provided password (optional)
3494
+ * @param signedSessionId - Signed session ID for API calls
3495
+ * @throws Error with ERROR_PASSWORD_MISMATCH if password doesn't match existing wallets
3496
+ */ /**
3497
+ * Shared helper: fetches encrypted shares (from storage or API) and validates
3498
+ * the provided password by attempting to decrypt the first credential.
3499
+ * Throws ERROR_PASSWORD_MISMATCH if the password is incorrect.
3500
+ */ async validatePasswordAgainstEncryptedShares({ wallet, address, password, signedSessionId }) {
3501
+ const storageKey = `${normalizeAddress(address)}${ENCRYPTED_SHARES_STORAGE_SUFFIX}`;
3502
+ let encryptedData = await this.storage.getItem(storageKey);
3503
+ if (!encryptedData) {
3504
+ const { shares } = this.recoverStrategy({
3505
+ clientKeyShareBackupInfo: wallet.clientKeySharesBackupInfo,
3506
+ thresholdSignatureScheme: wallet.thresholdSignatureScheme,
3507
+ walletOperation: WalletOperation.RECOVER
3508
+ });
3509
+ const result = await this.apiClient.recoverEncryptedBackupByWallet({
3510
+ walletId: wallet.walletId,
3511
+ keyShareIds: shares[BackupLocation.DYNAMIC] || [],
3512
+ signedSessionId,
3513
+ requiresSignedSessionId: this.requiresSignedSessionId()
3514
+ });
3515
+ if (!result) {
3516
+ throw new Error('Failed to retrieve encrypted backup from API for password validation');
3517
+ }
3518
+ encryptedData = JSON.stringify(result);
3519
+ await this.storage.setItem(storageKey, encryptedData);
3520
+ }
3521
+ const credential = extractFirstEncryptedCredential(encryptedData);
3522
+ if (!credential) {
3523
+ return;
3524
+ }
3525
+ try {
3526
+ await this.decryptKeyShare({
3527
+ keyShare: credential,
3528
+ password
3529
+ });
3530
+ } catch (error) {
3531
+ if (isPasswordMismatchError(error)) {
3532
+ throw new Error(ERROR_PASSWORD_MISMATCH);
3533
+ }
3534
+ throw error;
3535
+ }
3536
+ }
3537
+ async validatePasswordConsistencyForNewWallet({ password, signedSessionId }) {
3538
+ try {
3539
+ // Early exit if validation not needed
3540
+ if (!shouldValidatePassword(password, this.environmentId)) {
3541
+ return;
3542
+ }
3543
+ // Ensure walletMap is populated
3544
+ await this.getWallets();
3545
+ // Find first password-encrypted wallet
3546
+ const found = findPasswordEncryptedWallet(this.walletMap);
3547
+ if (!found) {
3548
+ return; // No existing encrypted wallets
3549
+ }
3550
+ const [address, wallet] = found;
3551
+ await this.validatePasswordAgainstEncryptedShares({
3552
+ wallet,
3553
+ address,
3554
+ password: password,
3555
+ signedSessionId
3556
+ });
3557
+ } catch (error) {
3558
+ this.logger.error('Error validating password consistency', {
3559
+ error: error instanceof Error ? error.message : error,
3560
+ hasPassword: !!password
3561
+ });
3562
+ throw error;
3563
+ }
3564
+ }
3565
+ /**
3566
+ * Validates that the provided password matches the existing encryption for
3567
+ * a password-encrypted wallet. Must be called before refresh/reshare ceremonies.
3568
+ * Throws if the wallet is password-encrypted but no password (or wrong password) is provided.
3569
+ */ async validatePasswordForExistingWallet({ accountAddress, password, signedSessionId }) {
3570
+ try {
3571
+ // Ensure walletMap is populated
3572
+ await this.getWallets();
3573
+ const walletProperties = this.getWalletFromMap(accountAddress);
3574
+ if (!isWalletPasswordEncrypted(walletProperties)) {
3575
+ return; // Not password-encrypted, no validation needed
3576
+ }
3577
+ // Password-encrypted wallet requires a real password
3578
+ if (!shouldValidatePassword(password, this.environmentId)) {
3579
+ throw new Error(ERROR_PASSWORD_REQUIRED_FOR_ENCRYPTED_WALLET);
3580
+ }
3581
+ await this.validatePasswordAgainstEncryptedShares({
3582
+ wallet: walletProperties,
3583
+ address: accountAddress,
3584
+ password: password,
3585
+ signedSessionId
3586
+ });
3587
+ } catch (error) {
3588
+ this.logger.error('Error validating password for existing wallet', {
3589
+ error: error instanceof Error ? error.message : error,
3590
+ hasPassword: !!password
3591
+ });
3592
+ throw error;
3593
+ }
3594
+ }
3595
+ /**
3417
3596
  * Helper function to get Google OAuth Account ID or throw an error if not found.
3418
3597
  * @param accountAddress - The account address for logging purposes
3419
3598
  * @returns The Google OAuth Account ID
@@ -4034,10 +4213,8 @@ class DynamicWalletClient {
4034
4213
  accountAddress,
4035
4214
  walletOperation
4036
4215
  })) {
4037
- var _walletData_clientKeySharesBackupInfo;
4038
4216
  const walletData = this.getWalletFromMap(accountAddress);
4039
- var _walletData_clientKeySharesBackupInfo_passwordEncrypted;
4040
- const isPasswordEncrypted = (_walletData_clientKeySharesBackupInfo_passwordEncrypted = (_walletData_clientKeySharesBackupInfo = walletData.clientKeySharesBackupInfo) == null ? void 0 : _walletData_clientKeySharesBackupInfo.passwordEncrypted) != null ? _walletData_clientKeySharesBackupInfo_passwordEncrypted : false;
4217
+ const isPasswordEncrypted = isWalletPasswordEncrypted(walletData);
4041
4218
  // Password-encrypted wallet without password - fetch and cache for eager loading
4042
4219
  if (walletOperation === WalletOperation.RECOVER && isPasswordEncrypted && !password) {
4043
4220
  const { shares } = this.recoverStrategy({
@@ -4206,10 +4383,7 @@ class DynamicWalletClient {
4206
4383
  password
4207
4384
  });
4208
4385
  // Decrypt all other password-encrypted wallets with the same password
4209
- const otherEncryptedWallets = Object.entries(this.walletMap).filter(([addr, w])=>{
4210
- var _w_clientKeySharesBackupInfo;
4211
- return addr !== normalizedAccountAddress && w.walletReadyState !== WalletReadyState.READY && ((_w_clientKeySharesBackupInfo = w.clientKeySharesBackupInfo) == null ? void 0 : _w_clientKeySharesBackupInfo.passwordEncrypted);
4212
- });
4386
+ const otherEncryptedWallets = Object.entries(this.walletMap).filter(([addr, w])=>addr !== normalizedAccountAddress && w.walletReadyState !== WalletReadyState.READY && isWalletPasswordEncrypted(w));
4213
4387
  await Promise.all(otherEncryptedWallets.map(async ([otherAddr])=>{
4214
4388
  try {
4215
4389
  const otherEncryptedStorageKey = `${otherAddr}${ENCRYPTED_SHARES_STORAGE_SUFFIX}`;
@@ -4491,4 +4665,4 @@ class DynamicWalletClient {
4491
4665
  DynamicWalletClient.rooms = {};
4492
4666
  DynamicWalletClient.roomsInitializing = {};
4493
4667
 
4494
- export { DynamicWalletClient, ERROR_ACCOUNT_ADDRESS_REQUIRED, ERROR_CREATE_WALLET_ACCOUNT, ERROR_EXPORT_PRIVATE_KEY, ERROR_IMPORT_PRIVATE_KEY, ERROR_KEYGEN_FAILED, ERROR_PUBLIC_KEY_MISMATCH, ERROR_SIGN_MESSAGE, ERROR_SIGN_TYPED_DATA, ERROR_VERIFY_MESSAGE_SIGNATURE, ERROR_VERIFY_TRANSACTION_SIGNATURE, HEAVY_QUEUE_OPERATIONS, RECOVER_QUEUE_OPERATIONS, SIGN_QUEUE_OPERATIONS, WalletBusyError, WalletNotReadyError, cancelICloudAuth, createAddCloudProviderToExistingDelegationDistribution, createBackupData, createCloudProviderDistribution, createDelegationOnlyDistribution, createDelegationWithCloudProviderDistribution, createDynamicOnlyDistribution, deleteICloudBackup, downloadStringAsFile, extractPubkey, formatEvmMessage, formatMessage, getActiveCloudProviders, getBitcoinAddressTypeFromDerivationPath, getClientKeyShareBackupInfo, getClientKeyShareExportFileName, getGoogleOAuthAccountId, getICloudBackup, getMPCSignatureScheme, getMPCSigner, hasCloudProviderBackup, hasDelegatedBackup, hasEncryptedSharesCached, initializeCloudKit, isBrowser, isHeavyQueueOperation, isHexString, isICloudAuthenticated, isPublicKeyMismatchError, isRecoverQueueOperation, isSignQueueOperation, listICloudBackups, mergeUniqueKeyShares, retryPromise, timeoutPromise };
4668
+ export { DynamicWalletClient, ERROR_ACCOUNT_ADDRESS_REQUIRED, ERROR_CREATE_WALLET_ACCOUNT, ERROR_EXPORT_PRIVATE_KEY, ERROR_IMPORT_PRIVATE_KEY, ERROR_KEYGEN_FAILED, ERROR_PASSWORD_MISMATCH, ERROR_PASSWORD_REQUIRED_FOR_ENCRYPTED_WALLET, ERROR_PUBLIC_KEY_MISMATCH, ERROR_SIGN_MESSAGE, ERROR_SIGN_TYPED_DATA, ERROR_VERIFY_MESSAGE_SIGNATURE, ERROR_VERIFY_TRANSACTION_SIGNATURE, HEAVY_QUEUE_OPERATIONS, RECOVER_QUEUE_OPERATIONS, SIGN_QUEUE_OPERATIONS, WalletBusyError, WalletNotReadyError, cancelICloudAuth, createAddCloudProviderToExistingDelegationDistribution, createBackupData, createCloudProviderDistribution, createDelegationOnlyDistribution, createDelegationWithCloudProviderDistribution, createDynamicOnlyDistribution, deleteICloudBackup, downloadStringAsFile, extractPubkey, formatEvmMessage, formatMessage, getActiveCloudProviders, getBitcoinAddressTypeFromDerivationPath, getClientKeyShareBackupInfo, getClientKeyShareExportFileName, getGoogleOAuthAccountId, getICloudBackup, getMPCSignatureScheme, getMPCSigner, hasCloudProviderBackup, hasDelegatedBackup, hasEncryptedSharesCached, initializeCloudKit, isBrowser, isHeavyQueueOperation, isHexString, isICloudAuthenticated, isPublicKeyMismatchError, isRecoverQueueOperation, isSignQueueOperation, listICloudBackups, mergeUniqueKeyShares, retryPromise, timeoutPromise };
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@dynamic-labs-wallet/browser",
3
- "version": "0.0.262",
3
+ "version": "0.0.264",
4
4
  "license": "Licensed under the Dynamic Labs, Inc. Terms Of Service (https://www.dynamic.xyz/terms-conditions)",
5
5
  "type": "module",
6
6
  "dependencies": {
7
- "@dynamic-labs-wallet/core": "0.0.262",
7
+ "@dynamic-labs-wallet/core": "0.0.264",
8
8
  "@dynamic-labs/logger": "^4.25.3",
9
9
  "@dynamic-labs/sdk-api-core": "^0.0.864",
10
10
  "argon2id": "1.0.1",
11
- "axios": "1.13.2",
11
+ "axios": "1.13.5",
12
12
  "http-errors": "2.0.0",
13
13
  "p-queue": "9.1.0",
14
14
  "semver": "^7.6.3",
@@ -1,5 +1,6 @@
1
1
  import type { EncryptionMetadata } from '@dynamic-labs-wallet/core';
2
2
  import type { DecryptionData, EncryptedData } from './types.js';
3
+ export declare const INVALID_PASSWORD_ERROR = "Decryption failed: Invalid password. Please check your password and try again.";
3
4
  /**
4
5
  * Encrypts data using the specified encryption version.
5
6
  * Always uses the latest encryption configuration for new encryptions by default.
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/backup/encryption/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAUpE,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EAEd,MAAM,YAAY,CAAC;AA4BpB;;;GAGG;AACH,eAAO,MAAM,WAAW,iCAIrB;IACD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,KAAG,OAAO,CAAC,aAAa,CAiCxB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,wBAGrB;IACD,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB,KAAG,OAAO,CAAC,MAAM,CAmEjB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,+BAA+B,YACjC,MAAM,KACd,kBAmBF,CAAC"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/backup/encryption/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAUpE,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EAEd,MAAM,YAAY,CAAC;AAGpB,eAAO,MAAM,sBAAsB,mFAC+C,CAAC;AAwBnF;;;GAGG;AACH,eAAO,MAAM,WAAW,iCAIrB;IACD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,KAAG,OAAO,CAAC,aAAa,CAiCxB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,wBAGrB;IACD,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB,KAAG,OAAO,CAAC,MAAM,CAmEjB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,+BAA+B,YACjC,MAAM,KACd,kBAmBF,CAAC"}
package/src/client.d.ts CHANGED
@@ -123,18 +123,20 @@ export declare class DynamicWalletClient {
123
123
  rawPublicKey: EcdsaPublicKey | Uint8Array | string | undefined;
124
124
  clientKeygenResults: ClientKeyShare[];
125
125
  }>;
126
- keyGen({ chainName, thresholdSignatureScheme, bitcoinConfig, onError, onCeremonyComplete, traceContext, }: {
126
+ keyGen({ chainName, thresholdSignatureScheme, bitcoinConfig, onError, onCeremonyComplete, traceContext, password, signedSessionId, }: {
127
127
  chainName: string;
128
128
  thresholdSignatureScheme: ThresholdSignatureScheme;
129
129
  bitcoinConfig?: BitcoinConfig;
130
130
  onError?: (error: Error) => void;
131
131
  onCeremonyComplete?: (accountAddress: string, walletId: string) => void;
132
132
  traceContext?: TraceContext;
133
+ password?: string;
134
+ signedSessionId: string;
133
135
  }): Promise<{
134
136
  rawPublicKey: EcdsaPublicKey | Uint8Array | string | undefined;
135
137
  clientKeyShares: ClientKeyShare[];
136
138
  }>;
137
- importRawPrivateKey({ chainName, privateKey, thresholdSignatureScheme, bitcoinConfig, onError, onCeremonyComplete, traceContext, legacyWalletId, }: {
139
+ importRawPrivateKey({ chainName, privateKey, thresholdSignatureScheme, bitcoinConfig, onError, onCeremonyComplete, traceContext, legacyWalletId, password, signedSessionId, }: {
138
140
  chainName: string;
139
141
  privateKey: string;
140
142
  thresholdSignatureScheme: ThresholdSignatureScheme;
@@ -144,6 +146,8 @@ export declare class DynamicWalletClient {
144
146
  traceContext?: TraceContext;
145
147
  /** ID of the legacy embedded wallet being upgraded to v3 */
146
148
  legacyWalletId?: string;
149
+ password?: string;
150
+ signedSessionId: string;
147
151
  }): Promise<{
148
152
  rawPublicKey: EcdsaPublicKey | Uint8Array | string | undefined;
149
153
  clientKeyShares: ClientKeyShare[];
@@ -446,6 +450,34 @@ export declare class DynamicWalletClient {
446
450
  keyShare: string;
447
451
  password?: string;
448
452
  }): Promise<ClientKeyShare>;
453
+ /**
454
+ * Validates that the provided password is consistent with existing encrypted wallets.
455
+ * This prevents users from creating multiple wallets with different passwords.
456
+ *
457
+ * @param password - User-provided password (optional)
458
+ * @param signedSessionId - Signed session ID for API calls
459
+ * @throws Error with ERROR_PASSWORD_MISMATCH if password doesn't match existing wallets
460
+ */
461
+ /**
462
+ * Shared helper: fetches encrypted shares (from storage or API) and validates
463
+ * the provided password by attempting to decrypt the first credential.
464
+ * Throws ERROR_PASSWORD_MISMATCH if the password is incorrect.
465
+ */
466
+ private validatePasswordAgainstEncryptedShares;
467
+ protected validatePasswordConsistencyForNewWallet({ password, signedSessionId, }: {
468
+ password?: string;
469
+ signedSessionId: string;
470
+ }): Promise<void>;
471
+ /**
472
+ * Validates that the provided password matches the existing encryption for
473
+ * a password-encrypted wallet. Must be called before refresh/reshare ceremonies.
474
+ * Throws if the wallet is password-encrypted but no password (or wrong password) is provided.
475
+ */
476
+ protected validatePasswordForExistingWallet({ accountAddress, password, signedSessionId, }: {
477
+ accountAddress: string;
478
+ password?: string;
479
+ signedSessionId: string;
480
+ }): Promise<void>;
449
481
  /**
450
482
  * Helper function to get Google OAuth Account ID or throw an error if not found.
451
483
  * @param accountAddress - The account address for logging purposes
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../packages/src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../packages/src/client.ts"],"names":[],"mappings":"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"}
package/src/index.d.ts CHANGED
@@ -4,6 +4,7 @@ export * from './types.js';
4
4
  export * from './errorConstants.js';
5
5
  export * from './mpc/index.js';
6
6
  export * from './utils.js';
7
+ export { ERROR_PASSWORD_MISMATCH, ERROR_PASSWORD_REQUIRED_FOR_ENCRYPTED_WALLET, } from './passwordValidation.js';
7
8
  export { cancelICloudAuth, deleteICloudBackup, getICloudBackup, initializeCloudKit, isICloudAuthenticated, listICloudBackups, type ICloudBackupRecord, } from './backup/providers/iCloud.js';
8
9
  export { Logger };
9
10
  import { Logger } from './services/logger.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAE1C,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAE3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAG3B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,KAAK,kBAAkB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAE1C,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAE3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAG3B,OAAO,EACL,uBAAuB,EACvB,4CAA4C,GAC7C,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,KAAK,kBAAkB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { WalletProperties } from './types.js';
2
+ export declare const ERROR_PASSWORD_MISMATCH = "[DynamicWaasWalletClient]: Password does not match the password used for existing wallets. All wallets must use the same password for encrypted backups.";
3
+ export declare const ERROR_PASSWORD_REQUIRED_FOR_ENCRYPTED_WALLET = "[DynamicWaasWalletClient]: Password is required for refresh/reshare of a password-encrypted wallet.";
4
+ /**
5
+ * Checks if password consistency validation is needed.
6
+ * Returns false if no password provided or password is the environmentId default.
7
+ */
8
+ export declare function shouldValidatePassword(password: string | undefined, environmentId: string): boolean;
9
+ /**
10
+ * Finds the first password-encrypted wallet in the walletMap.
11
+ * Returns [normalizedAddress, walletProperties] or undefined.
12
+ */
13
+ export declare function findPasswordEncryptedWallet(walletMap: Record<string, WalletProperties>): [string, WalletProperties] | undefined;
14
+ /**
15
+ * Extracts the first encrypted key share credential from cached encrypted data.
16
+ * Returns the base64-encoded encrypted credential string, or undefined if none found.
17
+ */
18
+ export declare function extractFirstEncryptedCredential(encryptedData: string): string | undefined;
19
+ /**
20
+ * Checks if a wallet uses password-based encryption for its key share backups.
21
+ */
22
+ export declare function isWalletPasswordEncrypted(wallet: WalletProperties | undefined): boolean;
23
+ /**
24
+ * Checks if an error indicates a password mismatch (wrong password during decryption).
25
+ * Matches against the INVALID_PASSWORD_ERROR message from encryption/core.ts
26
+ */
27
+ export declare function isPasswordMismatchError(error: unknown): boolean;
28
+ //# sourceMappingURL=passwordValidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passwordValidation.d.ts","sourceRoot":"","sources":["../../packages/src/passwordValidation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,eAAO,MAAM,uBAAuB,6JACwH,CAAC;AAE7J,eAAO,MAAM,4CAA4C,wGAC8C,CAAC;AAExG;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,aAAa,EAAE,MAAM,GACpB,OAAO,CAKT;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAC1C,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,SAAS,CAOxC;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,aAAa,EAAE,MAAM,GACpB,MAAM,GAAG,SAAS,CAapB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,gBAAgB,GAAG,SAAS,GACnC,OAAO,CAET;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE/D"}