@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 +259 -82
- package/index.esm.js +259 -83
- package/package.json +3 -3
- package/src/backup/password/errors.d.ts +48 -0
- package/src/backup/password/errors.d.ts.map +1 -0
- package/src/client.d.ts +2 -0
- package/src/client.d.ts.map +1 -1
- package/src/errorConstants.d.ts +1 -0
- package/src/errorConstants.d.ts.map +1 -1
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(
|
|
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
|
-
|
|
5888
|
-
|
|
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(
|
|
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
|
-
|
|
5889
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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;
|
package/src/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../packages/src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,cAAc,EAGd,WAAW,EACX,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,QAAQ,EACR,cAAc,EACd,gBAAgB,EAOhB,wBAAwB,EACxB,eAAe,EAWf,KAAK,oCAAoC,EAEzC,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EAEzB,MAAM,2BAA2B,CAAC;AAKnC,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAoBnF,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAexF,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAQL,KAAK,IAAI,EACT,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AA0BpB,KAAK,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,kCAAkC;IACjD,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5C;AAED,qBAAa,mBAAmB;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IAEtB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAa;IACjD,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAa;IAEpD,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAQ;IACrE,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACtC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAM;IAC3D,SAAS,CAAC,OAAO,EAAG,gBAAgB,CAAC;IACrC,SAAS,CAAC,aAAa,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,IAAI,CAAQ;IACjE,SAAS,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACtC,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAClD,SAAS,CAAC,iBAAiB,UAAS;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAM;IACzC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IAClD,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAM;IACpD,SAAS,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IACjE,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAoC;IAEpE;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAuB;IAEtD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAwB;IAEpE;;;OAGG;YACW,sBAAsB;gBAalC,EACE,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,KAAK,EACL,YAAY,EACZ,QAA0B,EAC1B,SAAqB,EACrB,sBAAsB,EAEtB,UAAU,EACV,gBAAgB,EAChB,8BAA8B,EAC9B,YAAY,EACZ,MAAM,GACP,EAAE,wBAAwB,EAC3B,eAAe,CAAC,EAAE,kCAAkC;IA0EtD;;OAEG;WACW,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAIlE;;OAEG;WACW,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAI3D;;OAEG;WACW,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAInE;;;;OAIG;WACW,gBAAgB,IAAI,IAAI;IAItC;;;OAGG;IACH,SAAS,CAAC,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIhF;;;;OAIG;cACa,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuBjH;;;OAGG;IACH,SAAS,CAAC,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAQpF,WAAW,IAAI,QAAQ;IAI9B;;;OAGG;IACU,sBAAsB;IAInC;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IA8BzB,iBAAiB,CAAC,SAAS,EAAE,MAAM;IA8CnC,UAAU,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAYxE;;OAEG;cACa,WAAW,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAyB7E,sBAAsB,CAAC,EAC3B,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,wBAAwB,EACxB,aAAa,EACb,OAAO,EACP,kBAAkB,GACnB,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QACzB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;KACzE;IAqBK,sBAAsB,CAAC,EAC3B,SAAS,EACT,wBAAwB,EACxB,aAAa,GACd,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAmB/B,eAAe,CAAC,EACpB,SAAS,EACT,QAAQ,EACR,cAAc,EACd,aAAa,GACd,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,cAAc,CAAC;QACzB,cAAc,EAAE,WAAW,GAAG,SAAS,CAAC;QACxC,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,GAAG,OAAO,CAAC,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;IAiB7D;;;;;;;;;;;;;;OAcG;IACG,sBAAsB,CAAC,EAC3B,SAAS,EACT,MAAM,EACN,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,aAAa,EACb,gBAAgB,EAChB,YAAY,GACb,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;QAClD,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;KAC7B,GAAG,OAAO,CAAC;QACV,YAAY,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;QAC/D,mBAAmB,EAAE,cAAc,EAAE,CAAC;KACvC,CAAC;IAsEF,0EAA0E;IAC1E,OAAO,CAAC,oBAAoB;IAItB,YAAY,CAAC,EACjB,SAAS,EACT,MAAM,EACN,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,aAAa,EACb,gBAAgB,EAChB,YAAY,GACb,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;QAClD,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;KAC7B,GAAG,OAAO,CAAC;QACV,YAAY,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;QAC/D,mBAAmB,EAAE,cAAc,EAAE,CAAC;KACvC,CAAC;IA2FI,MAAM,CAAC,IAAI,EAAE;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QACxE,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC;QACV,YAAY,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;QAC/D,eAAe,EAAE,cAAc,EAAE,CAAC;KACnC,CAAC;YAaY,gBAAgB;IAwGxB,mBAAmB,CAAC,IAAI,EAAE;QAC9B,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QACxE,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,4DAA4D;QAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC;QACV,YAAY,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;QAC/D,eAAe,EAAE,cAAc,EAAE,CAAC;KACnC,CAAC;YAaY,6BAA6B;IAqJrC,UAAU,CAAC,EACf,QAAQ,EACR,UAAU,EACV,OAAO,EACP,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,MAAM,EACN,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;QAC7B,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,kBAAkB,CAAC;QAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B;IA2BD,OAAO,CAAC,2BAA2B;IAsCnC,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,0BAA0B;IAO5B,oBAAoB,CAAC,EACzB,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,aAAa,GACd,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;QAC7B,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,cAAc,CAAC;QACzB,cAAc,EAAE,WAAW,GAAG,SAAS,CAAC;QACxC,gBAAgB,EAAE,aAAa,CAAC;QAChC,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,GAAG,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC;IAgDlC,UAAU,CAAC,EACf,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,EACR,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;QAC7B,MAAM,EAAE,MAAM,CAAC;QACf,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,EAAE,cAAc,CAAC;QACzB,cAAc,EAAE,WAAW,GAAG,SAAS,CAAC;QACxC,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,GAAG,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC;IAkFxC;;;;;;;OAOG;YACW,0BAA0B;IAoDlC,IAAI,CAAC,EACT,cAAc,EACd,OAAO,EACP,SAAS,EACT,QAAoB,EACpB,WAAmB,EACnB,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,OAAO,EACP,OAAO,EACP,YAAY,EACZ,aAAa,GACd,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;QAC7B,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,OAAO,CAAC,EAAE,kBAAkB,CAAC;QAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,GAAG,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC;YAmB1B,YAAY;IAsMpB,0BAA0B,CAAC,EAC/B,cAAc,EACd,SAAS,EACT,QAAoB,EACpB,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,YAAY,GACb,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,YAAY,CAAC,EAAE,YAAY,CAAC;KAC7B;IAcD;;;;;;;;;OASG;IACH,OAAO,CAAC,gCAAgC;IAsDxC;;;OAGG;IACH,OAAO,CAAC,wBAAwB;YAclB,kCAAkC;YAyIlC,mBAAmB;IAQ3B,WAAW,CAAC,EAChB,SAAS,EACT,cAAc,EACd,aAAa,GACd,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,cAAc,CAAC;QAC/B,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B;IA2BD;;;;;;;;;;;;;OAaG;IACG,eAAe,CAAC,EACpB,SAAS,EACT,MAAM,EACN,cAAc,EACd,2BAA2B,EAC3B,2BAA2B,GAC5B,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,gBAAgB,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;QACvB,2BAA2B,EAAE,wBAAwB,CAAC;QACtD,2BAA2B,EAAE,wBAAwB,CAAC;KACvD,GAAG,OAAO,CAAC;QACV,0BAA0B,EAAE,sBAAsB,EAAE,CAAC;QACrD,kBAAkB,EAAE,MAAM,EAAE,CAAC;QAC7B,uBAAuB,EAAE,MAAM,EAAE,CAAC;QAClC,uBAAuB,EAAE,cAAc,EAAE,CAAC;KAC3C,CAAC;IA+CI,OAAO,CAAC,EACZ,SAAS,EACT,cAAc,EACd,2BAA2B,EAC3B,2BAA2B,EAC3B,QAAoB,EACpB,eAAe,EACf,cAAmB,EACnB,4BAAoC,EACpC,QAAQ,EACR,mBAAmB,EACnB,gBAAwB,EACxB,sBAAsB,GACvB,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,2BAA2B,EAAE,wBAAwB,CAAC;QACtD,2BAA2B,EAAE,wBAAwB,CAAC;QACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;QAClC,4BAA4B,CAAC,EAAE,OAAO,CAAC;QACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC;YAmBa,eAAe;YA+Uf,0BAA0B;IAiElC,iBAAiB,CAAC,EACtB,cAAc,EACd,QAAoB,EACpB,eAAe,EACf,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAeK,gBAAgB,CAAC,EACrB,cAAc,EACd,QAAoB,EACpB,eAAe,EACf,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAYD,OAAO,CAAC,kBAAkB;IAgBpB,SAAS,CAAC,EACd,cAAc,EACd,SAAS,EACT,aAAa,EACb,QAAoB,EACpB,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,YAAY,GACb,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,YAAY,CAAC,EAAE,YAAY,CAAC;KAC7B;;;cA8Ee,wBAAwB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;cAsBrE,gBAAgB,CAC9B,SAAS,EAAE,SAAS,EACpB,qBAAqB,EAAE,cAAc,EACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM;cA0BH,0BAA0B,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB;IAgBzG,gBAAgB,CAAC,EACrB,SAAS,EACT,SAAS,EACT,cAAc,GACf,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,cAAc,EAAE,CAAC;QAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC;QACV,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;QACtC,YAAY,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;KAChE,CAAC;IAuDI,eAAe,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,cAAc,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAW7F;;OAEG;YACW,kCAAkC;IAsChD;;;OAGG;IACG,6BAA6B,CAAC,EAAE,cAAc,EAAE,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAiC9G;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,wBAAwB,CAAC,EACjC,cAAc,EACd,QAAQ,EACR,SAAS,EACT,wBAAwB,EACxB,cAAc,EACd,UAAU,EACV,YAAY,EACZ,cAAc,EACd,eAAoB,GACrB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC;QAC5B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC3C,GAAG,IAAI;IAwBR;;;OAGG;IACH;;OAEG;IACH,OAAO,CAAC,mBAAmB;YAgBb,gCAAgC;IAe9C;;;;;;;OAOG;IACG,2BAA2B,CAAC,EAChC,cAAc,EACd,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,cAAc,EAAE,CAAC;KACnC,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BjB;;;;;;;OAOG;YACW,iBAAiB;YAYjB,sBAAsB;YAuEtB,0BAA0B;IAqCxC;;;;;;;OAOG;YACW,4BAA4B;YAY5B,qBAAqB;YA4CrB,qBAAqB;IA4DnC,OAAO,CAAC,gCAAgC;IAsBlC,4BAA4B,CAAC,EACjC,cAAc,EACd,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,yBAAiC,EACjC,qBAAqB,EACrB,sBAAsB,GACvB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,YAAY,EAAE,iBAAiB,CAAC;QAChC,yBAAyB,CAAC,EAAE,OAAO,CAAC;QACpC,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC;;;;;;;;8BAh8FM,CAAC;;;YAmtGM,yBAAyB;IAiGvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACG,4BAA4B,CAAC,EACjC,cAAc,EACd,eAA2B,EAC3B,QAAoB,EACpB,eAAe,EACf,cAAmB,EACnB,iBAA6B,EAC7B,qBAAqB,EACrB,sBAAsB,GACvB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;QACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;QAClC,iBAAiB,CAAC,EAAE,cAAc,CAAC;QACnC,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC;;;;;;;;;;8BAr2GM,CAAC;;;IAg8GF,cAAc,CAAC,EACnB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,qBAAqB,GACtB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC;IAuCK,WAAW,CAAC,EAChB,cAAc,EACd,WAAW,EACX,eAAe,EACf,qBAAqB,GACtB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC;IA+BK,eAAe,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAW/G;;;;;;;OAOG;IACH;;;;OAIG;YACW,sCAAsC;IA6DpD,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,sBAAsB;cAMd,uCAAuC,CAAC,EACtD,QAAQ,EACR,eAAe,GAChB,EAAE;QACD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCjB;;;;OAIG;cACa,iCAAiC,CAAC,EAChD,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BjB;;;;;OAKG;YACW,8BAA8B;YAmC9B,2BAA2B;IAKzC;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,EACd,wBAAwB,EACxB,wBAAwB,EACxB,eAAe,EACf,UAAsB,GACvB,EAAE;QACD,wBAAwB,EAAE,kBAAkB,CAAC;QAC7C,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,eAAe,EAAE,eAAe,CAAC;QACjC,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG;QACF,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAClD,kBAAkB,EAAE,MAAM,CAAC;KAC5B;IA2CK,8BAA8B,CAAC,EACnC,cAAc,EACd,QAAQ,EACR,eAAe,EACf,eAAe,EACf,UAAsB,EACtB,oBAA2B,EAC3B,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,eAAe,CAAC;QACjC,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;YAcf,sCAAsC;IAyF9C,cAAc;IAmCpB;;;;OAIG;YACW,8BAA8B;IA0D5C;;;;;;;;;;;OAWG;IACG,4BAA4B,CAAC,EACjC,cAAc,EACd,QAAQ,EACR,eAAe,EACf,sBAAsB,GACvB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBjB;;;;;;;;OAQG;YACW,0BAA0B;IAyCxC;;;;;;;;;OASG;IACG,uBAAuB,CAAC,EAC5B,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,IAAI,CAAC;IASjB;;;;;;;OAOG;YACW,qBAAqB;IA8BnC;;;;;;;;;;;;OAYG;YACW,4BAA4B;IAsD1C;;;;;;OAMG;YACW,uBAAuB;IAkC/B,oCAAoC,CAAC,EACzC,cAAc,EACd,QAAQ,EACR,eAAe,EACf,sBAAsB,GACvB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,GAAG,OAAO,CAAC,IAAI,CAAC;IAyGX,qBAAqB,CAAC,EAC1B,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB;IAmCK,kBAAkB,CAAC,EACvB,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB;IAYD;;;;;OAKG;YACW,iBAAiB;IAsD/B;;;;OAIG;IACG,cAAc,CAAC,EACnB,cAAc,EACd,QAAoB,EACpB,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB;IAwBK,mBAAmB,CAAC,EAAE,cAAc,EAAE,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3F;;OAEG;IACG,4BAA4B,CAAC,EACjC,cAAc,EACd,eAAiD,GAClD,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;KACnC,GAAG,OAAO,CAAC,OAAO,CAAC;IAYpB;;OAEG;IACG,uCAAuC,CAAC,EAC5C,cAAc,EACd,eAAiD,GAClD,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;KACnC,GAAG,OAAO,CAAC,OAAO,CAAC;YAsBN,+BAA+B;IASvC,iCAAiC,CAAC,EAAE,cAAc,EAAE,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAwBtG,0BAA0B;IAYlC,SAAS,CAAC,EACd,cAAc,EACd,eAA8C,EAC9C,UAAsB,EACtB,QAAoB,EACpB,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;QAClC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoL7B;;;;;;;;;;;;;;;OAeG;IACG,sBAAsB,CAAC,EAC3B,cAAc,EACd,eAAe,EACf,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA4ChC;;;;;OAKG;YACW,4BAA4B;IAgD1C;;;;;;;;OAQG;IACG,YAAY,CAAC,EACjB,cAAc,EACd,QAAQ,EACR,eAAe,EACf,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0H7B;;OAEG;YACW,2BAA2B;IA8BnC,aAAa,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAI7C,UAAU;IAoFhB;;;OAGG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM;IAQzB,WAAW,CAAC,EAChB,QAAQ,EACR,wBAAwB,EACxB,SAAa,GACd,EAAE;QACD,QAAQ,EAAE,YAAY,CAAC;QACvB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;IAyDK,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAiC/C,QAAQ,CACZ,QAAQ,CAAC,EAAE,YAAY,EACvB,wBAAwB,CAAC,EAAE,wBAAwB,GAClD,OAAO,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAQrC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE;IAKrD;;;;OAIG;IACH,OAAO,CAAC,YAAY;IASpB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,wBAAwB,EAAE,wBAAwB,GAAG,MAAM;IAKhG,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE,wBAAwB,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IA0DpH,eAAe,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,YAAY,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;CAQ3F"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../packages/src/client.ts"],"names":[],"mappings":"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"}
|
package/src/errorConstants.d.ts
CHANGED
|
@@ -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"}
|