@dynamic-labs-wallet/browser 0.0.348 → 0.0.349

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 CHANGED
@@ -365,6 +365,196 @@ class StaleLocalSharesError extends Error {
365
365
  }
366
366
  }
367
367
 
368
+ const ERROR_NO_KEY_SHARES_BACKED_UP = 'No key shares were backed up to Dynamic backend';
369
+ const ERROR_KEYGEN_FAILED = '[DynamicWaasWalletClient]: Error with keygen';
370
+ const ERROR_CREATE_WALLET_ACCOUNT = '[DynamicWaasWalletClient]: Error creating wallet account';
371
+ const ERROR_SIGN_MESSAGE = '[DynamicWaasWalletClient]: Error signing message';
372
+ const ERROR_SIGN_TYPED_DATA = '[DynamicWaasWalletClient]: Error signing typed data';
373
+ const ERROR_ACCOUNT_ADDRESS_REQUIRED = '[DynamicWaasWalletClient]: Account address is required';
374
+ const ERROR_VERIFY_MESSAGE_SIGNATURE = '[DynamicWaasWalletClient]: Error verifying message signature';
375
+ const ERROR_VERIFY_TRANSACTION_SIGNATURE = '[DynamicWaasWalletClient]: Error verifying transaction signature';
376
+ const ERROR_EXPORT_PRIVATE_KEY = '[DynamicWaasWalletClient]: Error exporting private key';
377
+ const ERROR_IMPORT_PRIVATE_KEY = '[DynamicWaasWalletClient]: Error importing private key';
378
+ const ERROR_PUBLIC_KEY_MISMATCH = 'Mismatch between the public keys of the server and the ones provided';
379
+ const ERROR_PASSCODE_REQUIRED = '[DynamicWaasWalletClient]: A passcode is required for this environment. Please provide a password.';
380
+ const ERROR_REFRESH_NOT_SUPPORTED_FOR_TWO_OF_THREE = '[DynamicWaasWalletClient]: Refresh is not supported for 2/3 wallets. Reshare to 2/2 before refreshing.';
381
+ // Server-side error returned by /waas/create when an env disallows more than
382
+ // one wallet per chain and the user already has one. Matched verbatim by
383
+ // isNonRetryableCeremonyError — keep in sync with the backend wording.
384
+ const ERROR_MULTIPLE_WALLETS_PER_CHAIN = 'Multiple wallets per chain not allowed';
385
+
386
+ 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.';
387
+ const ERROR_PASSWORD_REQUIRED_FOR_ENCRYPTED_WALLET = '[DynamicWaasWalletClient]: Password is required for refresh/reshare of a password-encrypted wallet.';
388
+ const ERROR_EXISTING_PASSWORD_REQUIRED = '[DynamicWaasWalletClient]: Existing password is required to update the password for encrypted wallets.';
389
+ const ERROR_WALLETS_ALREADY_ENCRYPTED = '[DynamicWaasWalletClient]: Cannot set password: wallets are already password-encrypted. Use updatePassword instead.';
390
+ /**
391
+ * Checks if password consistency validation is needed.
392
+ * Returns false if no password provided or password is the environmentId default.
393
+ */ function shouldValidatePassword(password, environmentId) {
394
+ if (!password || password === environmentId) {
395
+ return false;
396
+ }
397
+ return true;
398
+ }
399
+ /**
400
+ * Finds the first password-encrypted wallet in the walletMap.
401
+ * Returns [normalizedAddress, walletProperties] or undefined.
402
+ */ function findPasswordEncryptedWallet(walletMap) {
403
+ for (const [address, wallet] of Object.entries(walletMap)){
404
+ var _wallet_clientKeySharesBackupInfo;
405
+ if ((_wallet_clientKeySharesBackupInfo = wallet.clientKeySharesBackupInfo) == null ? void 0 : _wallet_clientKeySharesBackupInfo.passwordEncrypted) {
406
+ return [
407
+ address,
408
+ wallet
409
+ ];
410
+ }
411
+ }
412
+ return undefined;
413
+ }
414
+ /**
415
+ * Extracts the first encrypted key share credential from cached encrypted data.
416
+ * Returns the base64-encoded encrypted credential string, or undefined if none found.
417
+ */ function extractFirstEncryptedCredential(encryptedData) {
418
+ try {
419
+ const parsed = JSON.parse(encryptedData);
420
+ const keyShares = parsed == null ? void 0 : parsed.keyShares;
421
+ if (!Array.isArray(keyShares) || keyShares.length === 0) {
422
+ return undefined;
423
+ }
424
+ return keyShares[0].encryptedAccountCredential;
425
+ } catch (e) {
426
+ return undefined;
427
+ }
428
+ }
429
+ /**
430
+ * Checks if a wallet uses password-based encryption for its key share backups.
431
+ */ function isWalletPasswordEncrypted(wallet) {
432
+ var _wallet_clientKeySharesBackupInfo;
433
+ var _wallet_clientKeySharesBackupInfo_passwordEncrypted;
434
+ return (_wallet_clientKeySharesBackupInfo_passwordEncrypted = wallet == null ? void 0 : (_wallet_clientKeySharesBackupInfo = wallet.clientKeySharesBackupInfo) == null ? void 0 : _wallet_clientKeySharesBackupInfo.passwordEncrypted) != null ? _wallet_clientKeySharesBackupInfo_passwordEncrypted : false;
435
+ }
436
+ /**
437
+ * Checks if an error indicates a password mismatch (wrong password during decryption).
438
+ */ function isPasswordMismatchError(error) {
439
+ return error instanceof InvalidPasswordError;
440
+ }
441
+
442
+ /**
443
+ * Failures classified as user-actionable are caused by end-user input or
444
+ * local state and are not actionable by oncall. They are emitted at log
445
+ * level `warn` (status:warning) so the dashboard's primary health metric —
446
+ * System-side Success Rate (status:error denominator only) — does not count
447
+ * them as outages.
448
+ *
449
+ * The `satisfies` clause forces every new PasswordBackupErrorReason to
450
+ * declare its user-actionable bit explicitly — adding a member to the union
451
+ * without updating this map is a compile error.
452
+ */ const USER_ACTIONABLE_PASSWORD_BACKUP_ERROR_REASONS = {
453
+ wrong_password: true,
454
+ stale_local_shares: false,
455
+ encryption_failure: false,
456
+ decryption_failure: false,
457
+ upload_failure: false,
458
+ activation_failure: false,
459
+ network: false,
460
+ unknown: false
461
+ };
462
+ const isUserActionablePasswordBackupErrorReason = (reason)=>USER_ACTIONABLE_PASSWORD_BACKUP_ERROR_REASONS[reason];
463
+ const NETWORK_ERROR_CODES = new Set([
464
+ 'ECONNABORTED',
465
+ 'ECONNRESET',
466
+ 'ETIMEDOUT',
467
+ 'ENETUNREACH'
468
+ ]);
469
+ // Browser fetch() throws TypeError on network failure. The message varies by
470
+ // engine: Chrome/Firefox emit 'Failed to fetch' / 'NetworkError when …',
471
+ // Safari emits 'Load failed' or 'The network connection was lost'.
472
+ const FETCH_NETWORK_ERROR_REGEX = /failed to fetch|networkerror|load failed|network connection/i;
473
+ const ENCRYPTION_FAILURE_MESSAGE_PREFIX = 'Error encrypting data:';
474
+ const DECRYPTION_FAILURE_MESSAGE_PREFIX = 'Decryption failed:';
475
+ const isStaleSharesError = (error)=>error instanceof StaleLocalSharesError || error instanceof Error && error.name === 'StaleLocalSharesError';
476
+ const isNetworkLikeError = (error)=>{
477
+ if (typeof error !== 'object' || error === null) {
478
+ return false;
479
+ }
480
+ const maybeAxios = error;
481
+ if (maybeAxios.isAxiosError) {
482
+ return maybeAxios.response === undefined;
483
+ }
484
+ if (typeof maybeAxios.code === 'string' && NETWORK_ERROR_CODES.has(maybeAxios.code)) {
485
+ return true;
486
+ }
487
+ return error instanceof TypeError && FETCH_NETWORK_ERROR_REGEX.test(error.message);
488
+ };
489
+ const isHttpResponseError = (error)=>{
490
+ if (typeof error !== 'object' || error === null) {
491
+ return false;
492
+ }
493
+ const maybeAxios = error;
494
+ return Boolean(maybeAxios.isAxiosError && maybeAxios.response);
495
+ };
496
+ // Cache classification on the Error instance so failures that bubble through
497
+ // multiple catches (orchestrator → setPassword/updatePassword/unlockWallet)
498
+ // only run the full classifier once.
499
+ const CACHED_REASON = Symbol.for('dynamic.passwordBackupErrorReason');
500
+ const readCachedReason = (error)=>{
501
+ if (typeof error !== 'object' || error === null) return undefined;
502
+ return error[CACHED_REASON];
503
+ };
504
+ const writeCachedReason = (error, reason)=>{
505
+ if (typeof error !== 'object' || error === null) return;
506
+ try {
507
+ error[CACHED_REASON] = reason;
508
+ } catch (e) {
509
+ // Frozen/sealed errors — ignore, just lose the cache on this path.
510
+ }
511
+ };
512
+ const computeReason = (error)=>{
513
+ if (isPasswordMismatchError(error)) {
514
+ return 'wrong_password';
515
+ }
516
+ if (isStaleSharesError(error)) {
517
+ return 'stale_local_shares';
518
+ }
519
+ if (error instanceof Error) {
520
+ if (error.message.includes(ERROR_PASSWORD_MISMATCH)) {
521
+ return 'wrong_password';
522
+ }
523
+ if (error.message.startsWith(ENCRYPTION_FAILURE_MESSAGE_PREFIX)) {
524
+ return 'encryption_failure';
525
+ }
526
+ if (error.message.includes(ERROR_NO_KEY_SHARES_BACKED_UP)) {
527
+ return 'upload_failure';
528
+ }
529
+ if (error.message.startsWith(DECRYPTION_FAILURE_MESSAGE_PREFIX)) {
530
+ return 'decryption_failure';
531
+ }
532
+ }
533
+ if (isNetworkLikeError(error)) {
534
+ return 'network';
535
+ }
536
+ if (isHttpResponseError(error)) {
537
+ return 'upload_failure';
538
+ }
539
+ return 'unknown';
540
+ };
541
+ /**
542
+ * Classifies an arbitrary error thrown from the password-encrypted backup
543
+ * flow into one of the dashboard-tracked PasswordBackupErrorReason values.
544
+ *
545
+ * Defensive by design: unknown shapes fall through to 'unknown' rather than
546
+ * throwing — this helper runs inside catch blocks and must never mask the
547
+ * original error. Memoizes the result on the Error instance so the same
548
+ * thrown error is only classified once even when it bubbles through
549
+ * multiple catches.
550
+ */ const classifyPasswordBackupError = (error)=>{
551
+ const cached = readCachedReason(error);
552
+ if (cached !== undefined) return cached;
553
+ const reason = computeReason(error);
554
+ writeCachedReason(error, reason);
555
+ return reason;
556
+ };
557
+
368
558
  const GOOGLE_DRIVE_UPLOAD_API = 'https://www.googleapis.com';
369
559
  const GOOGLE_OAUTH_TOKENINFO_API = 'https://oauth2.googleapis.com/tokeninfo';
370
560
  // Mirrors GOOGLE_DRIVE_BACKUP_REQUIRED_SCOPES in
@@ -694,85 +884,12 @@ const ROOM_EXPIRATION_TIME = 1000 * 60 * 10; // 10 minutes
694
884
  const ROOM_CACHE_COUNT = 5;
695
885
  const ENVIRONMENT_SETTINGS_STORAGE_KEY = 'dynamic_environment_settings';
696
886
 
697
- const ERROR_KEYGEN_FAILED = '[DynamicWaasWalletClient]: Error with keygen';
698
- const ERROR_CREATE_WALLET_ACCOUNT = '[DynamicWaasWalletClient]: Error creating wallet account';
699
- const ERROR_SIGN_MESSAGE = '[DynamicWaasWalletClient]: Error signing message';
700
- const ERROR_SIGN_TYPED_DATA = '[DynamicWaasWalletClient]: Error signing typed data';
701
- const ERROR_ACCOUNT_ADDRESS_REQUIRED = '[DynamicWaasWalletClient]: Account address is required';
702
- const ERROR_VERIFY_MESSAGE_SIGNATURE = '[DynamicWaasWalletClient]: Error verifying message signature';
703
- const ERROR_VERIFY_TRANSACTION_SIGNATURE = '[DynamicWaasWalletClient]: Error verifying transaction signature';
704
- const ERROR_EXPORT_PRIVATE_KEY = '[DynamicWaasWalletClient]: Error exporting private key';
705
- const ERROR_IMPORT_PRIVATE_KEY = '[DynamicWaasWalletClient]: Error importing private key';
706
- const ERROR_PUBLIC_KEY_MISMATCH = 'Mismatch between the public keys of the server and the ones provided';
707
- const ERROR_PASSCODE_REQUIRED = '[DynamicWaasWalletClient]: A passcode is required for this environment. Please provide a password.';
708
- const ERROR_REFRESH_NOT_SUPPORTED_FOR_TWO_OF_THREE = '[DynamicWaasWalletClient]: Refresh is not supported for 2/3 wallets. Reshare to 2/2 before refreshing.';
709
- // Server-side error returned by /waas/create when an env disallows more than
710
- // one wallet per chain and the user already has one. Matched verbatim by
711
- // isNonRetryableCeremonyError — keep in sync with the backend wording.
712
- const ERROR_MULTIPLE_WALLETS_PER_CHAIN = 'Multiple wallets per chain not allowed';
713
-
714
887
  /**
715
888
  * Normalizes an address to lowercase for consistent map key lookups.
716
889
  * This ensures that addresses with different casing (e.g., EIP-55 checksummed vs lowercase)
717
890
  * resolve to the same wallet entry.
718
891
  */ const normalizeAddress = (address)=>address.toLowerCase();
719
892
 
720
- 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.';
721
- const ERROR_PASSWORD_REQUIRED_FOR_ENCRYPTED_WALLET = '[DynamicWaasWalletClient]: Password is required for refresh/reshare of a password-encrypted wallet.';
722
- const ERROR_EXISTING_PASSWORD_REQUIRED = '[DynamicWaasWalletClient]: Existing password is required to update the password for encrypted wallets.';
723
- const ERROR_WALLETS_ALREADY_ENCRYPTED = '[DynamicWaasWalletClient]: Cannot set password: wallets are already password-encrypted. Use updatePassword instead.';
724
- /**
725
- * Checks if password consistency validation is needed.
726
- * Returns false if no password provided or password is the environmentId default.
727
- */ function shouldValidatePassword(password, environmentId) {
728
- if (!password || password === environmentId) {
729
- return false;
730
- }
731
- return true;
732
- }
733
- /**
734
- * Finds the first password-encrypted wallet in the walletMap.
735
- * Returns [normalizedAddress, walletProperties] or undefined.
736
- */ function findPasswordEncryptedWallet(walletMap) {
737
- for (const [address, wallet] of Object.entries(walletMap)){
738
- var _wallet_clientKeySharesBackupInfo;
739
- if ((_wallet_clientKeySharesBackupInfo = wallet.clientKeySharesBackupInfo) == null ? void 0 : _wallet_clientKeySharesBackupInfo.passwordEncrypted) {
740
- return [
741
- address,
742
- wallet
743
- ];
744
- }
745
- }
746
- return undefined;
747
- }
748
- /**
749
- * Extracts the first encrypted key share credential from cached encrypted data.
750
- * Returns the base64-encoded encrypted credential string, or undefined if none found.
751
- */ function extractFirstEncryptedCredential(encryptedData) {
752
- try {
753
- const parsed = JSON.parse(encryptedData);
754
- const keyShares = parsed == null ? void 0 : parsed.keyShares;
755
- if (!Array.isArray(keyShares) || keyShares.length === 0) {
756
- return undefined;
757
- }
758
- return keyShares[0].encryptedAccountCredential;
759
- } catch (e) {
760
- return undefined;
761
- }
762
- }
763
- /**
764
- * Checks if a wallet uses password-based encryption for its key share backups.
765
- */ function isWalletPasswordEncrypted(wallet) {
766
- var _wallet_clientKeySharesBackupInfo;
767
- var _wallet_clientKeySharesBackupInfo_passwordEncrypted;
768
- return (_wallet_clientKeySharesBackupInfo_passwordEncrypted = wallet == null ? void 0 : (_wallet_clientKeySharesBackupInfo = wallet.clientKeySharesBackupInfo) == null ? void 0 : _wallet_clientKeySharesBackupInfo.passwordEncrypted) != null ? _wallet_clientKeySharesBackupInfo_passwordEncrypted : false;
769
- }
770
- /**
771
- * Checks if an error indicates a password mismatch (wrong password during decryption).
772
- */ function isPasswordMismatchError(error) {
773
- return error instanceof InvalidPasswordError;
774
- }
775
-
776
893
  const isBrowser = ()=>typeof window !== 'undefined';
777
894
  /**
778
895
  * Helper function to extract pubkey from potentially nested structure
@@ -4078,7 +4195,7 @@ class DynamicWalletClient {
4078
4195
  dynamicRequestId
4079
4196
  });
4080
4197
  if (data.keyShareIds.length === 0) {
4081
- throw new Error('No key shares were backed up to Dynamic backend');
4198
+ throw new Error(ERROR_NO_KEY_SHARES_BACKED_UP);
4082
4199
  }
4083
4200
  // For batch password updates, stage to the pending key now so that all wallets'
4084
4201
  // shares are ready to promote atomically when the last one activates.
@@ -4223,18 +4340,20 @@ class DynamicWalletClient {
4223
4340
  const dynamicRequestId = uuid.v4();
4224
4341
  // Get wallet data early for logging context (also used in catch block)
4225
4342
  const walletData = this.getWalletFromMap(accountAddress);
4226
- // Common context for all logs in this method
4343
+ // Common context for all logs in this method. hasPassword and
4344
+ // passwordUpdateBatchId are propagated to every subordinate log line so
4345
+ // the password-encrypted backups dashboard can filter on @hasPassword:true.
4227
4346
  const logContext = {
4228
4347
  accountAddress,
4229
4348
  dynamicRequestId,
4230
4349
  walletId: walletData == null ? void 0 : walletData.walletId,
4231
4350
  userId: this.userId,
4232
- environmentId: this.environmentId
4351
+ environmentId: this.environmentId,
4352
+ hasPassword: !!password,
4353
+ passwordUpdateBatchId
4233
4354
  };
4234
4355
  this.logger.info('[backupSharesWithDistribution] Starting backup', _extends({}, logContext, {
4235
- hasPassword: !!password,
4236
4356
  preserveDelegatedLocation,
4237
- passwordUpdateBatchId,
4238
4357
  dynamicShareCount: distribution.clientShares.length,
4239
4358
  cloudProviders: Object.keys(distribution.cloudProviderShares),
4240
4359
  hasDelegatedShare: !!distribution.delegatedShare
@@ -4419,12 +4538,20 @@ class DynamicWalletClient {
4419
4538
  }));
4420
4539
  return backupData;
4421
4540
  } catch (error) {
4541
+ const errorReason = classifyPasswordBackupError(error);
4542
+ const logFn = isUserActionablePasswordBackupErrorReason(errorReason) ? this.logger.warn : this.logger.error;
4543
+ logFn.call(this.logger, '[backupSharesWithDistribution] failed', _extends({}, logContext, {
4544
+ chainName: walletData == null ? void 0 : walletData.chainName,
4545
+ errorReason,
4546
+ errorName: error instanceof Error ? error.name : undefined,
4547
+ errorMessage: error instanceof Error ? error.message : String(error),
4548
+ errorStack: error instanceof Error ? error.stack : undefined
4549
+ }));
4422
4550
  logError({
4423
4551
  message: 'Error in backupSharesWithDistribution',
4424
4552
  error: error,
4425
4553
  context: _extends({}, logContext, {
4426
- chainName: walletData == null ? void 0 : walletData.chainName,
4427
- errorStack: error instanceof Error ? error.stack : undefined
4554
+ chainName: walletData == null ? void 0 : walletData.chainName
4428
4555
  })
4429
4556
  });
4430
4557
  throw error;
@@ -4628,6 +4755,28 @@ class DynamicWalletClient {
4628
4755
  keygenIds: (_backupData_locationsWithKeyShares_map1 = (_backupData_locationsWithKeyShares1 = backupData.locationsWithKeyShares) == null ? void 0 : _backupData_locationsWithKeyShares1.map((ks)=>ks.keygenId)) != null ? _backupData_locationsWithKeyShares_map1 : []
4629
4756
  });
4630
4757
  }
4758
+ logPasswordOperationSuccess(passwordOperation, context) {
4759
+ this.logger.info(`[${passwordOperation}] succeeded`, _extends({}, context, {
4760
+ passwordOperation,
4761
+ environmentId: this.environmentId,
4762
+ userId: this.userId
4763
+ }));
4764
+ }
4765
+ // User-actionable failures (wrong_password) route to warn/status:warning so
4766
+ // they don't count against the dashboard's System-side Success Rate metric.
4767
+ logPasswordOperationFailure(passwordOperation, error, context) {
4768
+ const errorReason = classifyPasswordBackupError(error);
4769
+ const logFn = isUserActionablePasswordBackupErrorReason(errorReason) ? this.logger.warn : this.logger.error;
4770
+ logFn.call(this.logger, `[${passwordOperation}] failed`, _extends({}, context, {
4771
+ passwordOperation,
4772
+ errorReason,
4773
+ environmentId: this.environmentId,
4774
+ userId: this.userId,
4775
+ errorName: error instanceof Error ? error.name : undefined,
4776
+ errorMessage: error instanceof Error ? error.message : String(error),
4777
+ errorStack: error instanceof Error ? error.stack : undefined
4778
+ }));
4779
+ }
4631
4780
  async updatePassword({ accountAddress, existingPassword, newPassword, signedSessionId, passwordUpdateBatchId }) {
4632
4781
  const dynamicRequestId = uuid.v4();
4633
4782
  try {
@@ -4649,6 +4798,11 @@ class DynamicWalletClient {
4649
4798
  signedSessionId,
4650
4799
  passwordUpdateBatchId
4651
4800
  });
4801
+ this.logPasswordOperationSuccess('updatePassword', {
4802
+ accountAddress,
4803
+ walletId: wallet == null ? void 0 : wallet.walletId,
4804
+ passwordUpdateBatchId
4805
+ });
4652
4806
  } catch (error) {
4653
4807
  var _this_storage_removeItem, _this_storage;
4654
4808
  // The pending encrypted-shares cache entry may have been written before the failure.
@@ -4656,6 +4810,10 @@ class DynamicWalletClient {
4656
4810
  await ((_this_storage = this.storage) == null ? void 0 : (_this_storage_removeItem = _this_storage.removeItem(`${normalizeAddress(accountAddress)}${ENCRYPTED_SHARES_PENDING_SUFFIX}`)) == null ? void 0 : _this_storage_removeItem.catch(()=>{
4657
4811
  // Ignore — don't mask the original error
4658
4812
  }));
4813
+ this.logPasswordOperationFailure('updatePassword', error, {
4814
+ accountAddress,
4815
+ passwordUpdateBatchId
4816
+ });
4659
4817
  logError({
4660
4818
  message: 'Error in updatePassword',
4661
4819
  error: error,
@@ -4680,6 +4838,11 @@ class DynamicWalletClient {
4680
4838
  signedSessionId,
4681
4839
  passwordUpdateBatchId
4682
4840
  });
4841
+ this.logPasswordOperationSuccess('setPassword', {
4842
+ accountAddress,
4843
+ walletId: wallet == null ? void 0 : wallet.walletId,
4844
+ passwordUpdateBatchId
4845
+ });
4683
4846
  } catch (error) {
4684
4847
  var _this_storage_removeItem, _this_storage;
4685
4848
  // A pending cache entry may have been written if passwordUpdateBatchId was set.
@@ -4687,6 +4850,10 @@ class DynamicWalletClient {
4687
4850
  await ((_this_storage = this.storage) == null ? void 0 : (_this_storage_removeItem = _this_storage.removeItem(`${normalizeAddress(accountAddress)}${ENCRYPTED_SHARES_PENDING_SUFFIX}`)) == null ? void 0 : _this_storage_removeItem.catch(()=>{
4688
4851
  // Ignore — don't mask the original error
4689
4852
  }));
4853
+ this.logPasswordOperationFailure('setPassword', error, {
4854
+ accountAddress,
4855
+ passwordUpdateBatchId
4856
+ });
4690
4857
  logError({
4691
4858
  message: 'Error in setPassword',
4692
4859
  error: error,
@@ -5805,6 +5972,7 @@ class DynamicWalletClient {
5805
5972
  */ async unlockWallet({ accountAddress, password, signedSessionId, mfaToken }) {
5806
5973
  const dynamicRequestId = uuid.v4();
5807
5974
  try {
5975
+ var _this_getWalletFromMap;
5808
5976
  await this.requireWalletFromMap(accountAddress, signedSessionId);
5809
5977
  const walletInMap = this.getWalletFromMap(accountAddress);
5810
5978
  if ((walletInMap == null ? void 0 : walletInMap.walletReadyState) === core.WalletReadyState.READY) {
@@ -5884,11 +6052,19 @@ class DynamicWalletClient {
5884
6052
  }
5885
6053
  }
5886
6054
  await this.storage.setItem(this.storageKey, JSON.stringify(this.walletMap));
5887
- this.logger.debug('[DynamicWaasWalletClient] Wallet unlocked successfully', {
5888
- accountAddress
6055
+ const additionalWalletsFailed = results.filter((r)=>r.status === 'rejected').length;
6056
+ const additionalWalletsUnlocked = results.length - additionalWalletsFailed;
6057
+ this.logPasswordOperationSuccess('unlockWallet', {
6058
+ accountAddress,
6059
+ walletId: (_this_getWalletFromMap = this.getWalletFromMap(accountAddress)) == null ? void 0 : _this_getWalletFromMap.walletId,
6060
+ additionalWalletsUnlocked,
6061
+ additionalWalletsFailed
5889
6062
  });
5890
6063
  return this.getWalletFromMap(accountAddress);
5891
6064
  } catch (error) {
6065
+ this.logPasswordOperationFailure('unlockWallet', error, {
6066
+ accountAddress
6067
+ });
5892
6068
  logError({
5893
6069
  message: 'Error in unlockWallet',
5894
6070
  error: error,
@@ -6322,6 +6498,7 @@ exports.ERROR_EXPORT_PRIVATE_KEY = ERROR_EXPORT_PRIVATE_KEY;
6322
6498
  exports.ERROR_IMPORT_PRIVATE_KEY = ERROR_IMPORT_PRIVATE_KEY;
6323
6499
  exports.ERROR_KEYGEN_FAILED = ERROR_KEYGEN_FAILED;
6324
6500
  exports.ERROR_MULTIPLE_WALLETS_PER_CHAIN = ERROR_MULTIPLE_WALLETS_PER_CHAIN;
6501
+ exports.ERROR_NO_KEY_SHARES_BACKED_UP = ERROR_NO_KEY_SHARES_BACKED_UP;
6325
6502
  exports.ERROR_PASSCODE_REQUIRED = ERROR_PASSCODE_REQUIRED;
6326
6503
  exports.ERROR_PASSWORD_MISMATCH = ERROR_PASSWORD_MISMATCH;
6327
6504
  exports.ERROR_PASSWORD_REQUIRED_FOR_ENCRYPTED_WALLET = ERROR_PASSWORD_REQUIRED_FOR_ENCRYPTED_WALLET;
package/index.esm.js CHANGED
@@ -366,6 +366,196 @@ class StaleLocalSharesError extends Error {
366
366
  }
367
367
  }
368
368
 
369
+ const ERROR_NO_KEY_SHARES_BACKED_UP = 'No key shares were backed up to Dynamic backend';
370
+ const ERROR_KEYGEN_FAILED = '[DynamicWaasWalletClient]: Error with keygen';
371
+ const ERROR_CREATE_WALLET_ACCOUNT = '[DynamicWaasWalletClient]: Error creating wallet account';
372
+ const ERROR_SIGN_MESSAGE = '[DynamicWaasWalletClient]: Error signing message';
373
+ const ERROR_SIGN_TYPED_DATA = '[DynamicWaasWalletClient]: Error signing typed data';
374
+ const ERROR_ACCOUNT_ADDRESS_REQUIRED = '[DynamicWaasWalletClient]: Account address is required';
375
+ const ERROR_VERIFY_MESSAGE_SIGNATURE = '[DynamicWaasWalletClient]: Error verifying message signature';
376
+ const ERROR_VERIFY_TRANSACTION_SIGNATURE = '[DynamicWaasWalletClient]: Error verifying transaction signature';
377
+ const ERROR_EXPORT_PRIVATE_KEY = '[DynamicWaasWalletClient]: Error exporting private key';
378
+ const ERROR_IMPORT_PRIVATE_KEY = '[DynamicWaasWalletClient]: Error importing private key';
379
+ const ERROR_PUBLIC_KEY_MISMATCH = 'Mismatch between the public keys of the server and the ones provided';
380
+ const ERROR_PASSCODE_REQUIRED = '[DynamicWaasWalletClient]: A passcode is required for this environment. Please provide a password.';
381
+ const ERROR_REFRESH_NOT_SUPPORTED_FOR_TWO_OF_THREE = '[DynamicWaasWalletClient]: Refresh is not supported for 2/3 wallets. Reshare to 2/2 before refreshing.';
382
+ // Server-side error returned by /waas/create when an env disallows more than
383
+ // one wallet per chain and the user already has one. Matched verbatim by
384
+ // isNonRetryableCeremonyError — keep in sync with the backend wording.
385
+ const ERROR_MULTIPLE_WALLETS_PER_CHAIN = 'Multiple wallets per chain not allowed';
386
+
387
+ 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.';
388
+ const ERROR_PASSWORD_REQUIRED_FOR_ENCRYPTED_WALLET = '[DynamicWaasWalletClient]: Password is required for refresh/reshare of a password-encrypted wallet.';
389
+ const ERROR_EXISTING_PASSWORD_REQUIRED = '[DynamicWaasWalletClient]: Existing password is required to update the password for encrypted wallets.';
390
+ const ERROR_WALLETS_ALREADY_ENCRYPTED = '[DynamicWaasWalletClient]: Cannot set password: wallets are already password-encrypted. Use updatePassword instead.';
391
+ /**
392
+ * Checks if password consistency validation is needed.
393
+ * Returns false if no password provided or password is the environmentId default.
394
+ */ function shouldValidatePassword(password, environmentId) {
395
+ if (!password || password === environmentId) {
396
+ return false;
397
+ }
398
+ return true;
399
+ }
400
+ /**
401
+ * Finds the first password-encrypted wallet in the walletMap.
402
+ * Returns [normalizedAddress, walletProperties] or undefined.
403
+ */ function findPasswordEncryptedWallet(walletMap) {
404
+ for (const [address, wallet] of Object.entries(walletMap)){
405
+ var _wallet_clientKeySharesBackupInfo;
406
+ if ((_wallet_clientKeySharesBackupInfo = wallet.clientKeySharesBackupInfo) == null ? void 0 : _wallet_clientKeySharesBackupInfo.passwordEncrypted) {
407
+ return [
408
+ address,
409
+ wallet
410
+ ];
411
+ }
412
+ }
413
+ return undefined;
414
+ }
415
+ /**
416
+ * Extracts the first encrypted key share credential from cached encrypted data.
417
+ * Returns the base64-encoded encrypted credential string, or undefined if none found.
418
+ */ function extractFirstEncryptedCredential(encryptedData) {
419
+ try {
420
+ const parsed = JSON.parse(encryptedData);
421
+ const keyShares = parsed == null ? void 0 : parsed.keyShares;
422
+ if (!Array.isArray(keyShares) || keyShares.length === 0) {
423
+ return undefined;
424
+ }
425
+ return keyShares[0].encryptedAccountCredential;
426
+ } catch (e) {
427
+ return undefined;
428
+ }
429
+ }
430
+ /**
431
+ * Checks if a wallet uses password-based encryption for its key share backups.
432
+ */ function isWalletPasswordEncrypted(wallet) {
433
+ var _wallet_clientKeySharesBackupInfo;
434
+ var _wallet_clientKeySharesBackupInfo_passwordEncrypted;
435
+ return (_wallet_clientKeySharesBackupInfo_passwordEncrypted = wallet == null ? void 0 : (_wallet_clientKeySharesBackupInfo = wallet.clientKeySharesBackupInfo) == null ? void 0 : _wallet_clientKeySharesBackupInfo.passwordEncrypted) != null ? _wallet_clientKeySharesBackupInfo_passwordEncrypted : false;
436
+ }
437
+ /**
438
+ * Checks if an error indicates a password mismatch (wrong password during decryption).
439
+ */ function isPasswordMismatchError(error) {
440
+ return error instanceof InvalidPasswordError;
441
+ }
442
+
443
+ /**
444
+ * Failures classified as user-actionable are caused by end-user input or
445
+ * local state and are not actionable by oncall. They are emitted at log
446
+ * level `warn` (status:warning) so the dashboard's primary health metric —
447
+ * System-side Success Rate (status:error denominator only) — does not count
448
+ * them as outages.
449
+ *
450
+ * The `satisfies` clause forces every new PasswordBackupErrorReason to
451
+ * declare its user-actionable bit explicitly — adding a member to the union
452
+ * without updating this map is a compile error.
453
+ */ const USER_ACTIONABLE_PASSWORD_BACKUP_ERROR_REASONS = {
454
+ wrong_password: true,
455
+ stale_local_shares: false,
456
+ encryption_failure: false,
457
+ decryption_failure: false,
458
+ upload_failure: false,
459
+ activation_failure: false,
460
+ network: false,
461
+ unknown: false
462
+ };
463
+ const isUserActionablePasswordBackupErrorReason = (reason)=>USER_ACTIONABLE_PASSWORD_BACKUP_ERROR_REASONS[reason];
464
+ const NETWORK_ERROR_CODES = new Set([
465
+ 'ECONNABORTED',
466
+ 'ECONNRESET',
467
+ 'ETIMEDOUT',
468
+ 'ENETUNREACH'
469
+ ]);
470
+ // Browser fetch() throws TypeError on network failure. The message varies by
471
+ // engine: Chrome/Firefox emit 'Failed to fetch' / 'NetworkError when …',
472
+ // Safari emits 'Load failed' or 'The network connection was lost'.
473
+ const FETCH_NETWORK_ERROR_REGEX = /failed to fetch|networkerror|load failed|network connection/i;
474
+ const ENCRYPTION_FAILURE_MESSAGE_PREFIX = 'Error encrypting data:';
475
+ const DECRYPTION_FAILURE_MESSAGE_PREFIX = 'Decryption failed:';
476
+ const isStaleSharesError = (error)=>error instanceof StaleLocalSharesError || error instanceof Error && error.name === 'StaleLocalSharesError';
477
+ const isNetworkLikeError = (error)=>{
478
+ if (typeof error !== 'object' || error === null) {
479
+ return false;
480
+ }
481
+ const maybeAxios = error;
482
+ if (maybeAxios.isAxiosError) {
483
+ return maybeAxios.response === undefined;
484
+ }
485
+ if (typeof maybeAxios.code === 'string' && NETWORK_ERROR_CODES.has(maybeAxios.code)) {
486
+ return true;
487
+ }
488
+ return error instanceof TypeError && FETCH_NETWORK_ERROR_REGEX.test(error.message);
489
+ };
490
+ const isHttpResponseError = (error)=>{
491
+ if (typeof error !== 'object' || error === null) {
492
+ return false;
493
+ }
494
+ const maybeAxios = error;
495
+ return Boolean(maybeAxios.isAxiosError && maybeAxios.response);
496
+ };
497
+ // Cache classification on the Error instance so failures that bubble through
498
+ // multiple catches (orchestrator → setPassword/updatePassword/unlockWallet)
499
+ // only run the full classifier once.
500
+ const CACHED_REASON = Symbol.for('dynamic.passwordBackupErrorReason');
501
+ const readCachedReason = (error)=>{
502
+ if (typeof error !== 'object' || error === null) return undefined;
503
+ return error[CACHED_REASON];
504
+ };
505
+ const writeCachedReason = (error, reason)=>{
506
+ if (typeof error !== 'object' || error === null) return;
507
+ try {
508
+ error[CACHED_REASON] = reason;
509
+ } catch (e) {
510
+ // Frozen/sealed errors — ignore, just lose the cache on this path.
511
+ }
512
+ };
513
+ const computeReason = (error)=>{
514
+ if (isPasswordMismatchError(error)) {
515
+ return 'wrong_password';
516
+ }
517
+ if (isStaleSharesError(error)) {
518
+ return 'stale_local_shares';
519
+ }
520
+ if (error instanceof Error) {
521
+ if (error.message.includes(ERROR_PASSWORD_MISMATCH)) {
522
+ return 'wrong_password';
523
+ }
524
+ if (error.message.startsWith(ENCRYPTION_FAILURE_MESSAGE_PREFIX)) {
525
+ return 'encryption_failure';
526
+ }
527
+ if (error.message.includes(ERROR_NO_KEY_SHARES_BACKED_UP)) {
528
+ return 'upload_failure';
529
+ }
530
+ if (error.message.startsWith(DECRYPTION_FAILURE_MESSAGE_PREFIX)) {
531
+ return 'decryption_failure';
532
+ }
533
+ }
534
+ if (isNetworkLikeError(error)) {
535
+ return 'network';
536
+ }
537
+ if (isHttpResponseError(error)) {
538
+ return 'upload_failure';
539
+ }
540
+ return 'unknown';
541
+ };
542
+ /**
543
+ * Classifies an arbitrary error thrown from the password-encrypted backup
544
+ * flow into one of the dashboard-tracked PasswordBackupErrorReason values.
545
+ *
546
+ * Defensive by design: unknown shapes fall through to 'unknown' rather than
547
+ * throwing — this helper runs inside catch blocks and must never mask the
548
+ * original error. Memoizes the result on the Error instance so the same
549
+ * thrown error is only classified once even when it bubbles through
550
+ * multiple catches.
551
+ */ const classifyPasswordBackupError = (error)=>{
552
+ const cached = readCachedReason(error);
553
+ if (cached !== undefined) return cached;
554
+ const reason = computeReason(error);
555
+ writeCachedReason(error, reason);
556
+ return reason;
557
+ };
558
+
369
559
  const GOOGLE_DRIVE_UPLOAD_API = 'https://www.googleapis.com';
370
560
  const GOOGLE_OAUTH_TOKENINFO_API = 'https://oauth2.googleapis.com/tokeninfo';
371
561
  // Mirrors GOOGLE_DRIVE_BACKUP_REQUIRED_SCOPES in
@@ -695,85 +885,12 @@ const ROOM_EXPIRATION_TIME = 1000 * 60 * 10; // 10 minutes
695
885
  const ROOM_CACHE_COUNT = 5;
696
886
  const ENVIRONMENT_SETTINGS_STORAGE_KEY = 'dynamic_environment_settings';
697
887
 
698
- const ERROR_KEYGEN_FAILED = '[DynamicWaasWalletClient]: Error with keygen';
699
- const ERROR_CREATE_WALLET_ACCOUNT = '[DynamicWaasWalletClient]: Error creating wallet account';
700
- const ERROR_SIGN_MESSAGE = '[DynamicWaasWalletClient]: Error signing message';
701
- const ERROR_SIGN_TYPED_DATA = '[DynamicWaasWalletClient]: Error signing typed data';
702
- const ERROR_ACCOUNT_ADDRESS_REQUIRED = '[DynamicWaasWalletClient]: Account address is required';
703
- const ERROR_VERIFY_MESSAGE_SIGNATURE = '[DynamicWaasWalletClient]: Error verifying message signature';
704
- const ERROR_VERIFY_TRANSACTION_SIGNATURE = '[DynamicWaasWalletClient]: Error verifying transaction signature';
705
- const ERROR_EXPORT_PRIVATE_KEY = '[DynamicWaasWalletClient]: Error exporting private key';
706
- const ERROR_IMPORT_PRIVATE_KEY = '[DynamicWaasWalletClient]: Error importing private key';
707
- const ERROR_PUBLIC_KEY_MISMATCH = 'Mismatch between the public keys of the server and the ones provided';
708
- const ERROR_PASSCODE_REQUIRED = '[DynamicWaasWalletClient]: A passcode is required for this environment. Please provide a password.';
709
- const ERROR_REFRESH_NOT_SUPPORTED_FOR_TWO_OF_THREE = '[DynamicWaasWalletClient]: Refresh is not supported for 2/3 wallets. Reshare to 2/2 before refreshing.';
710
- // Server-side error returned by /waas/create when an env disallows more than
711
- // one wallet per chain and the user already has one. Matched verbatim by
712
- // isNonRetryableCeremonyError — keep in sync with the backend wording.
713
- const ERROR_MULTIPLE_WALLETS_PER_CHAIN = 'Multiple wallets per chain not allowed';
714
-
715
888
  /**
716
889
  * Normalizes an address to lowercase for consistent map key lookups.
717
890
  * This ensures that addresses with different casing (e.g., EIP-55 checksummed vs lowercase)
718
891
  * resolve to the same wallet entry.
719
892
  */ const normalizeAddress = (address)=>address.toLowerCase();
720
893
 
721
- 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.';
722
- const ERROR_PASSWORD_REQUIRED_FOR_ENCRYPTED_WALLET = '[DynamicWaasWalletClient]: Password is required for refresh/reshare of a password-encrypted wallet.';
723
- const ERROR_EXISTING_PASSWORD_REQUIRED = '[DynamicWaasWalletClient]: Existing password is required to update the password for encrypted wallets.';
724
- const ERROR_WALLETS_ALREADY_ENCRYPTED = '[DynamicWaasWalletClient]: Cannot set password: wallets are already password-encrypted. Use updatePassword instead.';
725
- /**
726
- * Checks if password consistency validation is needed.
727
- * Returns false if no password provided or password is the environmentId default.
728
- */ function shouldValidatePassword(password, environmentId) {
729
- if (!password || password === environmentId) {
730
- return false;
731
- }
732
- return true;
733
- }
734
- /**
735
- * Finds the first password-encrypted wallet in the walletMap.
736
- * Returns [normalizedAddress, walletProperties] or undefined.
737
- */ function findPasswordEncryptedWallet(walletMap) {
738
- for (const [address, wallet] of Object.entries(walletMap)){
739
- var _wallet_clientKeySharesBackupInfo;
740
- if ((_wallet_clientKeySharesBackupInfo = wallet.clientKeySharesBackupInfo) == null ? void 0 : _wallet_clientKeySharesBackupInfo.passwordEncrypted) {
741
- return [
742
- address,
743
- wallet
744
- ];
745
- }
746
- }
747
- return undefined;
748
- }
749
- /**
750
- * Extracts the first encrypted key share credential from cached encrypted data.
751
- * Returns the base64-encoded encrypted credential string, or undefined if none found.
752
- */ function extractFirstEncryptedCredential(encryptedData) {
753
- try {
754
- const parsed = JSON.parse(encryptedData);
755
- const keyShares = parsed == null ? void 0 : parsed.keyShares;
756
- if (!Array.isArray(keyShares) || keyShares.length === 0) {
757
- return undefined;
758
- }
759
- return keyShares[0].encryptedAccountCredential;
760
- } catch (e) {
761
- return undefined;
762
- }
763
- }
764
- /**
765
- * Checks if a wallet uses password-based encryption for its key share backups.
766
- */ function isWalletPasswordEncrypted(wallet) {
767
- var _wallet_clientKeySharesBackupInfo;
768
- var _wallet_clientKeySharesBackupInfo_passwordEncrypted;
769
- return (_wallet_clientKeySharesBackupInfo_passwordEncrypted = wallet == null ? void 0 : (_wallet_clientKeySharesBackupInfo = wallet.clientKeySharesBackupInfo) == null ? void 0 : _wallet_clientKeySharesBackupInfo.passwordEncrypted) != null ? _wallet_clientKeySharesBackupInfo_passwordEncrypted : false;
770
- }
771
- /**
772
- * Checks if an error indicates a password mismatch (wrong password during decryption).
773
- */ function isPasswordMismatchError(error) {
774
- return error instanceof InvalidPasswordError;
775
- }
776
-
777
894
  const isBrowser = ()=>typeof window !== 'undefined';
778
895
  /**
779
896
  * Helper function to extract pubkey from potentially nested structure
@@ -4079,7 +4196,7 @@ class DynamicWalletClient {
4079
4196
  dynamicRequestId
4080
4197
  });
4081
4198
  if (data.keyShareIds.length === 0) {
4082
- throw new Error('No key shares were backed up to Dynamic backend');
4199
+ throw new Error(ERROR_NO_KEY_SHARES_BACKED_UP);
4083
4200
  }
4084
4201
  // For batch password updates, stage to the pending key now so that all wallets'
4085
4202
  // shares are ready to promote atomically when the last one activates.
@@ -4224,18 +4341,20 @@ class DynamicWalletClient {
4224
4341
  const dynamicRequestId = v4();
4225
4342
  // Get wallet data early for logging context (also used in catch block)
4226
4343
  const walletData = this.getWalletFromMap(accountAddress);
4227
- // Common context for all logs in this method
4344
+ // Common context for all logs in this method. hasPassword and
4345
+ // passwordUpdateBatchId are propagated to every subordinate log line so
4346
+ // the password-encrypted backups dashboard can filter on @hasPassword:true.
4228
4347
  const logContext = {
4229
4348
  accountAddress,
4230
4349
  dynamicRequestId,
4231
4350
  walletId: walletData == null ? void 0 : walletData.walletId,
4232
4351
  userId: this.userId,
4233
- environmentId: this.environmentId
4352
+ environmentId: this.environmentId,
4353
+ hasPassword: !!password,
4354
+ passwordUpdateBatchId
4234
4355
  };
4235
4356
  this.logger.info('[backupSharesWithDistribution] Starting backup', _extends({}, logContext, {
4236
- hasPassword: !!password,
4237
4357
  preserveDelegatedLocation,
4238
- passwordUpdateBatchId,
4239
4358
  dynamicShareCount: distribution.clientShares.length,
4240
4359
  cloudProviders: Object.keys(distribution.cloudProviderShares),
4241
4360
  hasDelegatedShare: !!distribution.delegatedShare
@@ -4420,12 +4539,20 @@ class DynamicWalletClient {
4420
4539
  }));
4421
4540
  return backupData;
4422
4541
  } catch (error) {
4542
+ const errorReason = classifyPasswordBackupError(error);
4543
+ const logFn = isUserActionablePasswordBackupErrorReason(errorReason) ? this.logger.warn : this.logger.error;
4544
+ logFn.call(this.logger, '[backupSharesWithDistribution] failed', _extends({}, logContext, {
4545
+ chainName: walletData == null ? void 0 : walletData.chainName,
4546
+ errorReason,
4547
+ errorName: error instanceof Error ? error.name : undefined,
4548
+ errorMessage: error instanceof Error ? error.message : String(error),
4549
+ errorStack: error instanceof Error ? error.stack : undefined
4550
+ }));
4423
4551
  logError({
4424
4552
  message: 'Error in backupSharesWithDistribution',
4425
4553
  error: error,
4426
4554
  context: _extends({}, logContext, {
4427
- chainName: walletData == null ? void 0 : walletData.chainName,
4428
- errorStack: error instanceof Error ? error.stack : undefined
4555
+ chainName: walletData == null ? void 0 : walletData.chainName
4429
4556
  })
4430
4557
  });
4431
4558
  throw error;
@@ -4629,6 +4756,28 @@ class DynamicWalletClient {
4629
4756
  keygenIds: (_backupData_locationsWithKeyShares_map1 = (_backupData_locationsWithKeyShares1 = backupData.locationsWithKeyShares) == null ? void 0 : _backupData_locationsWithKeyShares1.map((ks)=>ks.keygenId)) != null ? _backupData_locationsWithKeyShares_map1 : []
4630
4757
  });
4631
4758
  }
4759
+ logPasswordOperationSuccess(passwordOperation, context) {
4760
+ this.logger.info(`[${passwordOperation}] succeeded`, _extends({}, context, {
4761
+ passwordOperation,
4762
+ environmentId: this.environmentId,
4763
+ userId: this.userId
4764
+ }));
4765
+ }
4766
+ // User-actionable failures (wrong_password) route to warn/status:warning so
4767
+ // they don't count against the dashboard's System-side Success Rate metric.
4768
+ logPasswordOperationFailure(passwordOperation, error, context) {
4769
+ const errorReason = classifyPasswordBackupError(error);
4770
+ const logFn = isUserActionablePasswordBackupErrorReason(errorReason) ? this.logger.warn : this.logger.error;
4771
+ logFn.call(this.logger, `[${passwordOperation}] failed`, _extends({}, context, {
4772
+ passwordOperation,
4773
+ errorReason,
4774
+ environmentId: this.environmentId,
4775
+ userId: this.userId,
4776
+ errorName: error instanceof Error ? error.name : undefined,
4777
+ errorMessage: error instanceof Error ? error.message : String(error),
4778
+ errorStack: error instanceof Error ? error.stack : undefined
4779
+ }));
4780
+ }
4632
4781
  async updatePassword({ accountAddress, existingPassword, newPassword, signedSessionId, passwordUpdateBatchId }) {
4633
4782
  const dynamicRequestId = v4();
4634
4783
  try {
@@ -4650,6 +4799,11 @@ class DynamicWalletClient {
4650
4799
  signedSessionId,
4651
4800
  passwordUpdateBatchId
4652
4801
  });
4802
+ this.logPasswordOperationSuccess('updatePassword', {
4803
+ accountAddress,
4804
+ walletId: wallet == null ? void 0 : wallet.walletId,
4805
+ passwordUpdateBatchId
4806
+ });
4653
4807
  } catch (error) {
4654
4808
  var _this_storage_removeItem, _this_storage;
4655
4809
  // The pending encrypted-shares cache entry may have been written before the failure.
@@ -4657,6 +4811,10 @@ class DynamicWalletClient {
4657
4811
  await ((_this_storage = this.storage) == null ? void 0 : (_this_storage_removeItem = _this_storage.removeItem(`${normalizeAddress(accountAddress)}${ENCRYPTED_SHARES_PENDING_SUFFIX}`)) == null ? void 0 : _this_storage_removeItem.catch(()=>{
4658
4812
  // Ignore — don't mask the original error
4659
4813
  }));
4814
+ this.logPasswordOperationFailure('updatePassword', error, {
4815
+ accountAddress,
4816
+ passwordUpdateBatchId
4817
+ });
4660
4818
  logError({
4661
4819
  message: 'Error in updatePassword',
4662
4820
  error: error,
@@ -4681,6 +4839,11 @@ class DynamicWalletClient {
4681
4839
  signedSessionId,
4682
4840
  passwordUpdateBatchId
4683
4841
  });
4842
+ this.logPasswordOperationSuccess('setPassword', {
4843
+ accountAddress,
4844
+ walletId: wallet == null ? void 0 : wallet.walletId,
4845
+ passwordUpdateBatchId
4846
+ });
4684
4847
  } catch (error) {
4685
4848
  var _this_storage_removeItem, _this_storage;
4686
4849
  // A pending cache entry may have been written if passwordUpdateBatchId was set.
@@ -4688,6 +4851,10 @@ class DynamicWalletClient {
4688
4851
  await ((_this_storage = this.storage) == null ? void 0 : (_this_storage_removeItem = _this_storage.removeItem(`${normalizeAddress(accountAddress)}${ENCRYPTED_SHARES_PENDING_SUFFIX}`)) == null ? void 0 : _this_storage_removeItem.catch(()=>{
4689
4852
  // Ignore — don't mask the original error
4690
4853
  }));
4854
+ this.logPasswordOperationFailure('setPassword', error, {
4855
+ accountAddress,
4856
+ passwordUpdateBatchId
4857
+ });
4691
4858
  logError({
4692
4859
  message: 'Error in setPassword',
4693
4860
  error: error,
@@ -5806,6 +5973,7 @@ class DynamicWalletClient {
5806
5973
  */ async unlockWallet({ accountAddress, password, signedSessionId, mfaToken }) {
5807
5974
  const dynamicRequestId = v4();
5808
5975
  try {
5976
+ var _this_getWalletFromMap;
5809
5977
  await this.requireWalletFromMap(accountAddress, signedSessionId);
5810
5978
  const walletInMap = this.getWalletFromMap(accountAddress);
5811
5979
  if ((walletInMap == null ? void 0 : walletInMap.walletReadyState) === WalletReadyState.READY) {
@@ -5885,11 +6053,19 @@ class DynamicWalletClient {
5885
6053
  }
5886
6054
  }
5887
6055
  await this.storage.setItem(this.storageKey, JSON.stringify(this.walletMap));
5888
- this.logger.debug('[DynamicWaasWalletClient] Wallet unlocked successfully', {
5889
- accountAddress
6056
+ const additionalWalletsFailed = results.filter((r)=>r.status === 'rejected').length;
6057
+ const additionalWalletsUnlocked = results.length - additionalWalletsFailed;
6058
+ this.logPasswordOperationSuccess('unlockWallet', {
6059
+ accountAddress,
6060
+ walletId: (_this_getWalletFromMap = this.getWalletFromMap(accountAddress)) == null ? void 0 : _this_getWalletFromMap.walletId,
6061
+ additionalWalletsUnlocked,
6062
+ additionalWalletsFailed
5890
6063
  });
5891
6064
  return this.getWalletFromMap(accountAddress);
5892
6065
  } catch (error) {
6066
+ this.logPasswordOperationFailure('unlockWallet', error, {
6067
+ accountAddress
6068
+ });
5893
6069
  logError({
5894
6070
  message: 'Error in unlockWallet',
5895
6071
  error: error,
@@ -6253,4 +6429,4 @@ DynamicWalletClient.rooms = {};
6253
6429
  DynamicWalletClient.roomsInitializing = {};
6254
6430
  DynamicWalletClient.roomsPersistChain = Promise.resolve();
6255
6431
 
6256
- export { BACKUP_FILENAME, CLIENT_KEYSHARE_EXPORT_FILENAME_PREFIX, DynamicWalletClient, ENVIRONMENT_SETTINGS_STORAGE_KEY, ERROR_ACCOUNT_ADDRESS_REQUIRED, ERROR_CREATE_WALLET_ACCOUNT, ERROR_EXPORT_PRIVATE_KEY, ERROR_IMPORT_PRIVATE_KEY, ERROR_KEYGEN_FAILED, ERROR_MULTIPLE_WALLETS_PER_CHAIN, ERROR_PASSCODE_REQUIRED, ERROR_PASSWORD_MISMATCH, ERROR_PASSWORD_REQUIRED_FOR_ENCRYPTED_WALLET, ERROR_PUBLIC_KEY_MISMATCH, ERROR_REFRESH_NOT_SUPPORTED_FOR_TWO_OF_THREE, ERROR_SIGN_MESSAGE, ERROR_SIGN_TYPED_DATA, ERROR_VERIFY_MESSAGE_SIGNATURE, ERROR_VERIFY_TRANSACTION_SIGNATURE, HEAVY_QUEUE_OPERATIONS, RECOVER_QUEUE_OPERATIONS, ROOM_CACHE_COUNT, ROOM_EXPIRATION_TIME, SIGNED_SESSION_ID_MIN_VERSION, SIGNED_SESSION_ID_MIN_VERSION_BY_NAMESPACE, SIGN_QUEUE_OPERATIONS, STORAGE_KEY, StaleLocalSharesError, WalletBusyError, WalletNotReadyError, cancelICloudAuth, createAddCloudProviderToExistingDelegationDistribution, createBackupData, createCloudProviderDistribution, createDelegationOnlyDistribution, createDelegationWithCloudProviderDistribution, createDynamicOnlyDistribution, deleteICloudBackup, downloadStringAsFile, extractPubkey, formatEvmMessage, formatMessage, getActiveCloudProviders, getBitcoinAddressTypeFromDerivationPath, getClientKeyShareBackupInfo, getClientKeyShareExportFileName, getDelegatedShareSet, getGoogleOAuthAccountId, getHttpStatus, getICloudBackup, getMPCSignatureScheme, getMPCSigner, hasCloudProviderBackup, hasDelegatedBackup, hasEncryptedSharesCached, initializeCloudKit, isBrowser, isHeavyQueueOperation, isHexString, isICloudAuthenticated, isNonRetryableCeremonyError, isPublicKeyMismatchError, isRecoverQueueOperation, isSignQueueOperation, listICloudBackups, markCeremonyErrorNonRetryable, readEnvironmentSettings, retryPromise, shouldReshareToSameBackups, timeoutPromise };
6432
+ export { BACKUP_FILENAME, CLIENT_KEYSHARE_EXPORT_FILENAME_PREFIX, DynamicWalletClient, ENVIRONMENT_SETTINGS_STORAGE_KEY, ERROR_ACCOUNT_ADDRESS_REQUIRED, ERROR_CREATE_WALLET_ACCOUNT, ERROR_EXPORT_PRIVATE_KEY, ERROR_IMPORT_PRIVATE_KEY, ERROR_KEYGEN_FAILED, ERROR_MULTIPLE_WALLETS_PER_CHAIN, ERROR_NO_KEY_SHARES_BACKED_UP, ERROR_PASSCODE_REQUIRED, ERROR_PASSWORD_MISMATCH, ERROR_PASSWORD_REQUIRED_FOR_ENCRYPTED_WALLET, ERROR_PUBLIC_KEY_MISMATCH, ERROR_REFRESH_NOT_SUPPORTED_FOR_TWO_OF_THREE, ERROR_SIGN_MESSAGE, ERROR_SIGN_TYPED_DATA, ERROR_VERIFY_MESSAGE_SIGNATURE, ERROR_VERIFY_TRANSACTION_SIGNATURE, HEAVY_QUEUE_OPERATIONS, RECOVER_QUEUE_OPERATIONS, ROOM_CACHE_COUNT, ROOM_EXPIRATION_TIME, SIGNED_SESSION_ID_MIN_VERSION, SIGNED_SESSION_ID_MIN_VERSION_BY_NAMESPACE, SIGN_QUEUE_OPERATIONS, STORAGE_KEY, StaleLocalSharesError, WalletBusyError, WalletNotReadyError, cancelICloudAuth, createAddCloudProviderToExistingDelegationDistribution, createBackupData, createCloudProviderDistribution, createDelegationOnlyDistribution, createDelegationWithCloudProviderDistribution, createDynamicOnlyDistribution, deleteICloudBackup, downloadStringAsFile, extractPubkey, formatEvmMessage, formatMessage, getActiveCloudProviders, getBitcoinAddressTypeFromDerivationPath, getClientKeyShareBackupInfo, getClientKeyShareExportFileName, getDelegatedShareSet, getGoogleOAuthAccountId, getHttpStatus, getICloudBackup, getMPCSignatureScheme, getMPCSigner, hasCloudProviderBackup, hasDelegatedBackup, hasEncryptedSharesCached, initializeCloudKit, isBrowser, isHeavyQueueOperation, isHexString, isICloudAuthenticated, isNonRetryableCeremonyError, isPublicKeyMismatchError, isRecoverQueueOperation, isSignQueueOperation, listICloudBackups, markCeremonyErrorNonRetryable, readEnvironmentSettings, retryPromise, shouldReshareToSameBackups, timeoutPromise };
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@dynamic-labs-wallet/browser",
3
- "version": "0.0.348",
3
+ "version": "0.0.349",
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.348",
7
+ "@dynamic-labs-wallet/core": "0.0.349",
8
8
  "@dynamic-labs-wallet/forward-mpc-client": "0.9.0",
9
- "@dynamic-labs-wallet/primitives": "0.0.348",
9
+ "@dynamic-labs-wallet/primitives": "0.0.349",
10
10
  "@dynamic-labs/sdk-api-core": "^0.0.964",
11
11
  "argon2id": "1.0.1",
12
12
  "axios": "1.15.2",
@@ -0,0 +1,48 @@
1
+ /**
2
+ * The three user-facing password operations whose health is tracked
3
+ * on the WaaS password-encrypted backups dashboard.
4
+ */
5
+ export type PasswordOperation = 'setPassword' | 'updatePassword' | 'unlockWallet';
6
+ /**
7
+ * Stable, structured classification for failures in the password-encrypted
8
+ * backup / unlock flow. Surfaced as `@errorReason` on the dashboard so panels
9
+ * can branch on a fixed enum instead of substring-matching error messages.
10
+ *
11
+ * Mirrors the convention established by GoogleDriveBackupErrorReason
12
+ * (backup/providers/googleDrive.ts) — see PR #958.
13
+ */
14
+ export type PasswordBackupErrorReason = 'wrong_password' | 'stale_local_shares' | 'encryption_failure' | 'decryption_failure' | 'upload_failure' | 'activation_failure' | 'network' | 'unknown';
15
+ /**
16
+ * Failures classified as user-actionable are caused by end-user input or
17
+ * local state and are not actionable by oncall. They are emitted at log
18
+ * level `warn` (status:warning) so the dashboard's primary health metric —
19
+ * System-side Success Rate (status:error denominator only) — does not count
20
+ * them as outages.
21
+ *
22
+ * The `satisfies` clause forces every new PasswordBackupErrorReason to
23
+ * declare its user-actionable bit explicitly — adding a member to the union
24
+ * without updating this map is a compile error.
25
+ */
26
+ export declare const USER_ACTIONABLE_PASSWORD_BACKUP_ERROR_REASONS: {
27
+ readonly wrong_password: true;
28
+ readonly stale_local_shares: false;
29
+ readonly encryption_failure: false;
30
+ readonly decryption_failure: false;
31
+ readonly upload_failure: false;
32
+ readonly activation_failure: false;
33
+ readonly network: false;
34
+ readonly unknown: false;
35
+ };
36
+ export declare const isUserActionablePasswordBackupErrorReason: (reason: PasswordBackupErrorReason) => boolean;
37
+ /**
38
+ * Classifies an arbitrary error thrown from the password-encrypted backup
39
+ * flow into one of the dashboard-tracked PasswordBackupErrorReason values.
40
+ *
41
+ * Defensive by design: unknown shapes fall through to 'unknown' rather than
42
+ * throwing — this helper runs inside catch blocks and must never mask the
43
+ * original error. Memoizes the result on the Error instance so the same
44
+ * thrown error is only classified once even when it bubbles through
45
+ * multiple catches.
46
+ */
47
+ export declare const classifyPasswordBackupError: (error: unknown) => PasswordBackupErrorReason;
48
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/backup/password/errors.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,gBAAgB,GAAG,cAAc,CAAC;AAElF;;;;;;;GAOG;AACH,MAAM,MAAM,yBAAyB,GACjC,gBAAgB,GAChB,oBAAoB,GACpB,oBAAoB,GACpB,oBAAoB,GACpB,gBAAgB,GAChB,oBAAoB,GACpB,SAAS,GACT,SAAS,CAAC;AAEd;;;;;;;;;;GAUG;AACH,eAAO,MAAM,6CAA6C;;;;;;;;;CASK,CAAC;AAEhE,eAAO,MAAM,yCAAyC,WAAY,yBAAyB,KAAG,OACvC,CAAC;AAsFxD;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,UAAW,OAAO,KAAG,yBAM5D,CAAC"}
package/src/client.d.ts CHANGED
@@ -537,6 +537,8 @@ export declare class DynamicWalletClient {
537
537
  externalKeyShareId?: string;
538
538
  }[];
539
539
  }>;
540
+ private logPasswordOperationSuccess;
541
+ private logPasswordOperationFailure;
540
542
  updatePassword({ accountAddress, existingPassword, newPassword, signedSessionId, passwordUpdateBatchId, }: {
541
543
  accountAddress: string;
542
544
  existingPassword?: string;
@@ -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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"}
@@ -1,3 +1,4 @@
1
+ export declare const ERROR_NO_KEY_SHARES_BACKED_UP = "No key shares were backed up to Dynamic backend";
1
2
  export declare const ERROR_KEYGEN_FAILED = "[DynamicWaasWalletClient]: Error with keygen";
2
3
  export declare const ERROR_CREATE_WALLET_ACCOUNT = "[DynamicWaasWalletClient]: Error creating wallet account";
3
4
  export declare const ERROR_SIGN_MESSAGE = "[DynamicWaasWalletClient]: Error signing message";
@@ -1 +1 @@
1
- {"version":3,"file":"errorConstants.d.ts","sourceRoot":"","sources":["../../packages/src/errorConstants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,iDAAiD,CAAC;AAElF,eAAO,MAAM,2BAA2B,6DAA6D,CAAC;AAEtG,eAAO,MAAM,kBAAkB,qDAAqD,CAAC;AAErF,eAAO,MAAM,qBAAqB,wDAAwD,CAAC;AAE3F,eAAO,MAAM,8BAA8B,2DAA2D,CAAC;AAEvG,eAAO,MAAM,8BAA8B,iEAAiE,CAAC;AAE7G,eAAO,MAAM,kCAAkC,qEAAqE,CAAC;AAErH,eAAO,MAAM,wBAAwB,2DAA2D,CAAC;AAEjG,eAAO,MAAM,wBAAwB,2DAA2D,CAAC;AAEjG,eAAO,MAAM,yBAAyB,yEAAyE,CAAC;AAEhH,eAAO,MAAM,uBAAuB,uGACkE,CAAC;AAEvG,eAAO,MAAM,4CAA4C,2GACiD,CAAC;AAK3G,eAAO,MAAM,gCAAgC,2CAA2C,CAAC"}
1
+ {"version":3,"file":"errorConstants.d.ts","sourceRoot":"","sources":["../../packages/src/errorConstants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,6BAA6B,oDAAoD,CAAC;AAE/F,eAAO,MAAM,mBAAmB,iDAAiD,CAAC;AAElF,eAAO,MAAM,2BAA2B,6DAA6D,CAAC;AAEtG,eAAO,MAAM,kBAAkB,qDAAqD,CAAC;AAErF,eAAO,MAAM,qBAAqB,wDAAwD,CAAC;AAE3F,eAAO,MAAM,8BAA8B,2DAA2D,CAAC;AAEvG,eAAO,MAAM,8BAA8B,iEAAiE,CAAC;AAE7G,eAAO,MAAM,kCAAkC,qEAAqE,CAAC;AAErH,eAAO,MAAM,wBAAwB,2DAA2D,CAAC;AAEjG,eAAO,MAAM,wBAAwB,2DAA2D,CAAC;AAEjG,eAAO,MAAM,yBAAyB,yEAAyE,CAAC;AAEhH,eAAO,MAAM,uBAAuB,uGACkE,CAAC;AAEvG,eAAO,MAAM,4CAA4C,2GACiD,CAAC;AAK3G,eAAO,MAAM,gCAAgC,2CAA2C,CAAC"}