@dynamic-labs-wallet/browser 0.0.343 → 0.0.345

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
@@ -366,6 +366,17 @@ class StaleLocalSharesError extends Error {
366
366
  }
367
367
 
368
368
  const GOOGLE_DRIVE_UPLOAD_API = 'https://www.googleapis.com';
369
+ const GOOGLE_OAUTH_TOKENINFO_API = 'https://oauth2.googleapis.com/tokeninfo';
370
+ // Mirrors GOOGLE_DRIVE_BACKUP_REQUIRED_SCOPES in
371
+ // dynamic-auth/packages/sdk-react-core/src/lib/utils/hooks/useWalletBackup/googleDriveScopes.ts.
372
+ // Duplicated intentionally — dynamic-waas-sdk does not depend on dynamic-auth.
373
+ const GOOGLE_DRIVE_BACKUP_REQUIRED_SCOPES = [
374
+ 'https://www.googleapis.com/auth/drive.appdata',
375
+ 'https://www.googleapis.com/auth/drive.file'
376
+ ];
377
+ // Encrypted key-share backup files seen in DD are well under 10 KB; pad to
378
+ // 64 KB to absorb metadata + future growth.
379
+ const BACKUP_SIZE_BYTES_ESTIMATE = 64 * 1024;
369
380
  const USER_ACTIONABLE_REASONS = new Set([
370
381
  'auth_denied',
371
382
  'storage_full',
@@ -457,6 +468,89 @@ const createGoogleDriveError = (mapped)=>{
457
468
  error.errorReason = mapped.errorReason;
458
469
  return error;
459
470
  };
471
+ const probeGoogleDriveScopes = async (accessToken)=>{
472
+ const res = await fetch(`${GOOGLE_OAUTH_TOKENINFO_API}?access_token=${encodeURIComponent(accessToken)}`);
473
+ if (!res.ok) {
474
+ // Inconclusive — let the orchestrator's allSettled fallthrough discard this.
475
+ throw new Error(`tokeninfo HTTP ${res.status}`);
476
+ }
477
+ const body = await res.json();
478
+ var _body_scope;
479
+ const grantedScopes = ((_body_scope = body.scope) != null ? _body_scope : '').split(' ').filter(Boolean);
480
+ const missing = GOOGLE_DRIVE_BACKUP_REQUIRED_SCOPES.filter((s)=>!grantedScopes.includes(s));
481
+ if (missing.length === 0) return {
482
+ ok: true
483
+ };
484
+ return {
485
+ ok: false,
486
+ errorReason: 'auth_denied',
487
+ message: 'Google Drive access denied: missing or insufficient permissions. Make sure the app is requesting Drive permission and that you allowed it during sign-in, then try again.'
488
+ };
489
+ };
490
+ const probeGoogleDriveQuota = async (accessToken, requiredBytes = BACKUP_SIZE_BYTES_ESTIMATE)=>{
491
+ const res = await fetch(`${GOOGLE_DRIVE_UPLOAD_API}/drive/v3/about?fields=storageQuota`, {
492
+ headers: {
493
+ Authorization: `Bearer ${accessToken}`
494
+ }
495
+ });
496
+ if (!res.ok) {
497
+ // Reuse the same mapper the upload path uses so 401/403 here surface as
498
+ // 'auth_denied' identically when tokeninfo missed something.
499
+ const body = await parseGoogleDriveErrorBody(res);
500
+ const mapped = mapGoogleDriveUploadError(res.status, body);
501
+ return {
502
+ ok: false,
503
+ errorReason: mapped.errorReason,
504
+ message: mapped.message
505
+ };
506
+ }
507
+ const { storageQuota } = await res.json();
508
+ if (storageQuota.limit === undefined) return {
509
+ ok: true
510
+ }; // unlimited Workspace
511
+ const free = Number(storageQuota.limit) - Number(storageQuota.usage);
512
+ if (free >= requiredBytes) return {
513
+ ok: true
514
+ };
515
+ return {
516
+ ok: false,
517
+ errorReason: 'storage_full',
518
+ message: 'Google Drive storage is full. Free up space in your Google Drive and try again.'
519
+ };
520
+ };
521
+ const toBlock = (res, source)=>({
522
+ errorReason: res.errorReason,
523
+ isUserActionable: isUserActionableGoogleDriveBackupErrorReason(res.errorReason),
524
+ message: res.message,
525
+ source
526
+ });
527
+ /**
528
+ * Best-effort gate: probes Google Drive scopes (via OAuth tokeninfo) and
529
+ * storage quota (via drive/v3/about) in parallel and returns a definitive
530
+ * block when at least one probe confirms the upload would fail. If both
531
+ * probes are inconclusive (network errors, etc.) we fall open and return
532
+ * `{}` so the caller proceeds — the upload path will surface any real
533
+ * failure with the same `GoogleDriveBackupErrorReason` classification.
534
+ *
535
+ * Scope failure is preferred over quota failure when both fire — it's
536
+ * cheaper for the user to act on.
537
+ */ const runGoogleDriveBackupPreflight = async (accessToken)=>{
538
+ const [scopes, quota] = await Promise.allSettled([
539
+ probeGoogleDriveScopes(accessToken),
540
+ probeGoogleDriveQuota(accessToken)
541
+ ]);
542
+ if (scopes.status === 'fulfilled' && !scopes.value.ok) {
543
+ return {
544
+ blocking: toBlock(scopes.value, 'scopes')
545
+ };
546
+ }
547
+ if (quota.status === 'fulfilled' && !quota.value.ok) {
548
+ return {
549
+ blocking: toBlock(quota.value, 'quota')
550
+ };
551
+ }
552
+ return {};
553
+ };
460
554
  const uploadFileToGoogleDriveAppStorage = async ({ accessToken, fileName, jsonData })=>{
461
555
  return uploadFileToGoogleDrive({
462
556
  accessToken,
@@ -612,6 +706,10 @@ const ERROR_IMPORT_PRIVATE_KEY = '[DynamicWaasWalletClient]: Error importing pri
612
706
  const ERROR_PUBLIC_KEY_MISMATCH = 'Mismatch between the public keys of the server and the ones provided';
613
707
  const ERROR_PASSCODE_REQUIRED = '[DynamicWaasWalletClient]: A passcode is required for this environment. Please provide a password.';
614
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';
615
713
 
616
714
  /**
617
715
  * Normalizes an address to lowercase for consistent map key lookups.
@@ -817,6 +915,7 @@ const logRetryExhausted = (operationName, maxAttempts, errorContext, logContext)
817
915
  if (message.includes(ERROR_PASSCODE_REQUIRED)) return true;
818
916
  if (message.includes(ERROR_PUBLIC_KEY_MISMATCH)) return true;
819
917
  if (message.includes(ERROR_PASSWORD_MISMATCH)) return true;
918
+ if (message.includes(ERROR_MULTIPLE_WALLETS_PER_CHAIN)) return true;
820
919
  return false;
821
920
  };
822
921
  /**
@@ -841,11 +940,15 @@ const isHexString = (str)=>{
841
940
  return /^[0-9A-Fa-f]+$/.test(hex);
842
941
  };
843
942
  /**
844
- * Formats a message for Ed25519-based chains (Solana, TON, Stellar).
845
- * - If string is hex: converts to Uint8Array
846
- * - If string is not hex: encodes to hex string
847
- * - If already Uint8Array: passes through unchanged
848
- */ const formatEd25519Message = (message)=>{
943
+ * Normalizes a message to the bytes/hex form an MPC signer consumes:
944
+ * - string + hex charset Uint8Array
945
+ * - string + plain text → hex-encoded string
946
+ * - Uint8Array passthrough
947
+ *
948
+ * Chain-agnostic: used by every chain whose signer takes raw bytes (Solana,
949
+ * TON, Stellar — Ed25519 — and Midnight — BIP340 Schnorr). The signing
950
+ * algorithm is applied inside the MPC signer, not here.
951
+ */ const formatRawBytesMessage = (message)=>{
849
952
  if (typeof message !== 'string') {
850
953
  return message;
851
954
  }
@@ -854,9 +957,10 @@ const isHexString = (str)=>{
854
957
  }
855
958
  return Buffer.from(message).toString('hex');
856
959
  };
857
- const formatSolanaMessage = (message)=>formatEd25519Message(message);
858
- const formatTonMessage = (message)=>formatEd25519Message(message);
859
- /** Stellar signs raw bytes (Ed25519). Encode string to hex or pass hex through as Uint8Array. */ const formatStellarMessage = (message)=>formatEd25519Message(message);
960
+ const formatSolanaMessage = (message)=>formatRawBytesMessage(message);
961
+ const formatTonMessage = (message)=>formatRawBytesMessage(message);
962
+ const formatStellarMessage = (message)=>formatRawBytesMessage(message);
963
+ const formatMidnightMessage = (message)=>formatRawBytesMessage(message);
860
964
  const formatMessage = (chainName, message)=>{
861
965
  switch(chainName){
862
966
  case 'EVM':
@@ -870,6 +974,8 @@ const formatMessage = (chainName, message)=>{
870
974
  return formatTonMessage(message);
871
975
  case 'STELLAR':
872
976
  return formatStellarMessage(message);
977
+ case 'MIDNIGHT':
978
+ return formatMidnightMessage(message);
873
979
  default:
874
980
  throw new Error('Unsupported chain name');
875
981
  }
@@ -2581,12 +2687,24 @@ class DynamicWalletClient {
2581
2687
  return data;
2582
2688
  }
2583
2689
  prepareMessageForForwardMPC({ chainName, message, formattedMessage, signingAlgo, isFormatted }) {
2584
- if (chainName === 'SVM' || chainName === 'TON' || chainName === 'STELLAR') {
2585
- return formattedMessage;
2586
- }
2690
+ // BIP340 hash unwrap MUST come first. When `isFormatted=true`, callers wrap
2691
+ // the payload in a `MessageHash`; the direct-MPC path then reads
2692
+ // `formattedMessage.bytes`. The forward-MPC signer can't accept the object
2693
+ // — it needs the hex string. MIDNIGHT also uses BIP340, so without this
2694
+ // running before the chain-name early-return, the MessageHash leaks through
2695
+ // for `isFormatted=true` Midnight signs and the two code paths diverge.
2587
2696
  if (signingAlgo === 'BIP340' && formattedMessage instanceof web.MessageHash) {
2588
2697
  return formattedMessage.toHex();
2589
2698
  }
2699
+ // Ed25519-style-formatted chains: pass the formatted bytes through. MIDNIGHT
2700
+ // uses BIP340 at the MPC layer but formatMidnightMessage produces string |
2701
+ // Uint8Array (Ed25519-style framing), not a MessageHash — so the BIP340
2702
+ // branch above doesn't catch the `isFormatted=false` case. Without this,
2703
+ // forward-MPC Midnight signs would discard the formatted message and sign
2704
+ // raw bytes, producing signatures that don't match the direct-MPC path.
2705
+ if (chainName === 'SVM' || chainName === 'TON' || chainName === 'STELLAR' || chainName === 'MIDNIGHT') {
2706
+ return formattedMessage;
2707
+ }
2590
2708
  return core.serializeMessageForForwardMPC({
2591
2709
  message,
2592
2710
  isFormatted,
@@ -4863,17 +4981,63 @@ class DynamicWalletClient {
4863
4981
  * @param params.googleDriveAccessToken - Optional Google OAuth access token. When provided, the SDK uses it directly
4864
4982
  * instead of looking up the user's linked Google account and exchanging it for a token via the Dynamic backend.
4865
4983
  */ async backupKeySharesToGoogleDrive({ accountAddress, password, signedSessionId, googleDriveAccessToken }) {
4866
- const updatedBackupServiceAuthToken = await this.apiClient.getBackupRelayToken({});
4984
+ const [updatedBackupServiceAuthToken, resolvedAccessToken] = await Promise.all([
4985
+ this.apiClient.getBackupRelayToken({}),
4986
+ this.preflightGoogleDriveBackup({
4987
+ accountAddress,
4988
+ googleDriveAccessToken
4989
+ })
4990
+ ]);
4867
4991
  this.apiClient.syncBackupServiceAuthToken(updatedBackupServiceAuthToken);
4868
4992
  return this.backupKeySharesToCloudProvider({
4869
4993
  accountAddress,
4870
4994
  password,
4871
4995
  signedSessionId,
4872
4996
  backupLocation: core.BackupLocation.GOOGLE_DRIVE,
4873
- googleDriveAccessToken
4997
+ // Forward the resolved token so the downstream upload path doesn't
4998
+ // re-fetch it via fetchGoogleDriveAccessToken.
4999
+ googleDriveAccessToken: resolvedAccessToken
4874
5000
  });
4875
5001
  }
4876
5002
  /**
5003
+ * Resolve the Google Drive OAuth access token (lazy-fetch via
5004
+ * `fetchGoogleDriveAccessToken` if the caller didn't pass one explicitly),
5005
+ * run scope + quota probes against it, and either return the resolved
5006
+ * token or throw a classified `createGoogleDriveError` so the reshare
5007
+ * ceremony is short-circuited. The blocking log mirrors the upload-path
5008
+ * shape in `backup/utils.ts` so the same Datadog dashboard panels and
5009
+ * monitor pick up preflight events.
5010
+ */ async preflightGoogleDriveBackup({ accountAddress, googleDriveAccessToken }) {
5011
+ const accessTokenPromise = googleDriveAccessToken !== undefined ? Promise.resolve(googleDriveAccessToken) : this.fetchGoogleDriveAccessToken(accountAddress);
5012
+ const [preflightResult, resolvedAccessToken] = await Promise.all([
5013
+ accessTokenPromise.then((token)=>runGoogleDriveBackupPreflight(token)),
5014
+ accessTokenPromise
5015
+ ]);
5016
+ const { blocking } = preflightResult;
5017
+ if (blocking) {
5018
+ const logFn = blocking.isUserActionable ? this.logger.warn : this.logger.error;
5019
+ logFn.call(this.logger, '[DynamicWaasWalletClient] Google Drive backup failed (preflight)', {
5020
+ accountAddress,
5021
+ environmentId: this.environmentId,
5022
+ userId: this.userId,
5023
+ errorCount: 1,
5024
+ errorReason: blocking.errorReason,
5025
+ isUserActionable: blocking.isUserActionable,
5026
+ errors: [
5027
+ `Preflight (${blocking.source}): ${blocking.message}`
5028
+ ],
5029
+ preflight: true,
5030
+ source: blocking.source
5031
+ });
5032
+ throw createGoogleDriveError({
5033
+ message: blocking.message,
5034
+ isRetryable: false,
5035
+ errorReason: blocking.errorReason
5036
+ });
5037
+ }
5038
+ return resolvedAccessToken;
5039
+ }
5040
+ /**
4877
5041
  * This method handles the complete flow for ensuring wallet key shares are backed up to iCloud:
4878
5042
  * - For 2-of-2 wallets: Automatically reshares to 2-of-3 threshold, then distributes shares (1 to backend, 1 to iCloud)
4879
5043
  * - For 2-of-3 wallets: Call storeEncryptedBackupByWallet to backup for backend and iCloud
@@ -4924,14 +5088,16 @@ class DynamicWalletClient {
4924
5088
  * @param params.accountAddress - The wallet account address
4925
5089
  * @param params.password - Optional password for encryption (uses environment ID if not provided)
4926
5090
  * @param params.encryptedKeyShares - The specific key shares to upload to Google Drive
4927
- * @param params.googleDriveAccessToken - Optional Google OAuth access token. When provided, skips the on-the-fly token fetch.
5091
+ * @param params.googleDriveAccessToken - Google OAuth access token. Required; resolved upstream by `backupKeySharesToGoogleDrive` so the preflight can run on it.
4928
5092
  * @returns Promise<string[]> - Array of Google Drive key share IDs that were uploaded
4929
5093
  */ async uploadKeySharesToGoogleDrive({ accountAddress, encryptedKeyShares, googleDriveAccessToken }) {
4930
5094
  try {
4931
5095
  if (encryptedKeyShares.length === 0) {
4932
5096
  throw new Error('No key shares found');
4933
5097
  }
4934
- const accessToken = googleDriveAccessToken != null ? googleDriveAccessToken : await this.fetchGoogleDriveAccessToken(accountAddress);
5098
+ if (!googleDriveAccessToken) {
5099
+ throw new Error('googleDriveAccessToken is required for Google Drive upload');
5100
+ }
4935
5101
  const walletData = this.getWalletFromMap(accountAddress);
4936
5102
  const thresholdSignatureScheme = walletData.thresholdSignatureScheme;
4937
5103
  const fileName = getClientKeyShareExportFileName({
@@ -4945,7 +5111,7 @@ class DynamicWalletClient {
4945
5111
  thresholdSignatureScheme
4946
5112
  });
4947
5113
  await uploadBackupToGoogleDrive({
4948
- accessToken,
5114
+ accessToken: googleDriveAccessToken,
4949
5115
  fileName,
4950
5116
  backupData,
4951
5117
  accountAddress,
@@ -6042,6 +6208,7 @@ exports.ERROR_CREATE_WALLET_ACCOUNT = ERROR_CREATE_WALLET_ACCOUNT;
6042
6208
  exports.ERROR_EXPORT_PRIVATE_KEY = ERROR_EXPORT_PRIVATE_KEY;
6043
6209
  exports.ERROR_IMPORT_PRIVATE_KEY = ERROR_IMPORT_PRIVATE_KEY;
6044
6210
  exports.ERROR_KEYGEN_FAILED = ERROR_KEYGEN_FAILED;
6211
+ exports.ERROR_MULTIPLE_WALLETS_PER_CHAIN = ERROR_MULTIPLE_WALLETS_PER_CHAIN;
6045
6212
  exports.ERROR_PASSCODE_REQUIRED = ERROR_PASSCODE_REQUIRED;
6046
6213
  exports.ERROR_PASSWORD_MISMATCH = ERROR_PASSWORD_MISMATCH;
6047
6214
  exports.ERROR_PASSWORD_REQUIRED_FOR_ENCRYPTED_WALLET = ERROR_PASSWORD_REQUIRED_FOR_ENCRYPTED_WALLET;
package/index.esm.js CHANGED
@@ -367,6 +367,17 @@ class StaleLocalSharesError extends Error {
367
367
  }
368
368
 
369
369
  const GOOGLE_DRIVE_UPLOAD_API = 'https://www.googleapis.com';
370
+ const GOOGLE_OAUTH_TOKENINFO_API = 'https://oauth2.googleapis.com/tokeninfo';
371
+ // Mirrors GOOGLE_DRIVE_BACKUP_REQUIRED_SCOPES in
372
+ // dynamic-auth/packages/sdk-react-core/src/lib/utils/hooks/useWalletBackup/googleDriveScopes.ts.
373
+ // Duplicated intentionally — dynamic-waas-sdk does not depend on dynamic-auth.
374
+ const GOOGLE_DRIVE_BACKUP_REQUIRED_SCOPES = [
375
+ 'https://www.googleapis.com/auth/drive.appdata',
376
+ 'https://www.googleapis.com/auth/drive.file'
377
+ ];
378
+ // Encrypted key-share backup files seen in DD are well under 10 KB; pad to
379
+ // 64 KB to absorb metadata + future growth.
380
+ const BACKUP_SIZE_BYTES_ESTIMATE = 64 * 1024;
370
381
  const USER_ACTIONABLE_REASONS = new Set([
371
382
  'auth_denied',
372
383
  'storage_full',
@@ -458,6 +469,89 @@ const createGoogleDriveError = (mapped)=>{
458
469
  error.errorReason = mapped.errorReason;
459
470
  return error;
460
471
  };
472
+ const probeGoogleDriveScopes = async (accessToken)=>{
473
+ const res = await fetch(`${GOOGLE_OAUTH_TOKENINFO_API}?access_token=${encodeURIComponent(accessToken)}`);
474
+ if (!res.ok) {
475
+ // Inconclusive — let the orchestrator's allSettled fallthrough discard this.
476
+ throw new Error(`tokeninfo HTTP ${res.status}`);
477
+ }
478
+ const body = await res.json();
479
+ var _body_scope;
480
+ const grantedScopes = ((_body_scope = body.scope) != null ? _body_scope : '').split(' ').filter(Boolean);
481
+ const missing = GOOGLE_DRIVE_BACKUP_REQUIRED_SCOPES.filter((s)=>!grantedScopes.includes(s));
482
+ if (missing.length === 0) return {
483
+ ok: true
484
+ };
485
+ return {
486
+ ok: false,
487
+ errorReason: 'auth_denied',
488
+ message: 'Google Drive access denied: missing or insufficient permissions. Make sure the app is requesting Drive permission and that you allowed it during sign-in, then try again.'
489
+ };
490
+ };
491
+ const probeGoogleDriveQuota = async (accessToken, requiredBytes = BACKUP_SIZE_BYTES_ESTIMATE)=>{
492
+ const res = await fetch(`${GOOGLE_DRIVE_UPLOAD_API}/drive/v3/about?fields=storageQuota`, {
493
+ headers: {
494
+ Authorization: `Bearer ${accessToken}`
495
+ }
496
+ });
497
+ if (!res.ok) {
498
+ // Reuse the same mapper the upload path uses so 401/403 here surface as
499
+ // 'auth_denied' identically when tokeninfo missed something.
500
+ const body = await parseGoogleDriveErrorBody(res);
501
+ const mapped = mapGoogleDriveUploadError(res.status, body);
502
+ return {
503
+ ok: false,
504
+ errorReason: mapped.errorReason,
505
+ message: mapped.message
506
+ };
507
+ }
508
+ const { storageQuota } = await res.json();
509
+ if (storageQuota.limit === undefined) return {
510
+ ok: true
511
+ }; // unlimited Workspace
512
+ const free = Number(storageQuota.limit) - Number(storageQuota.usage);
513
+ if (free >= requiredBytes) return {
514
+ ok: true
515
+ };
516
+ return {
517
+ ok: false,
518
+ errorReason: 'storage_full',
519
+ message: 'Google Drive storage is full. Free up space in your Google Drive and try again.'
520
+ };
521
+ };
522
+ const toBlock = (res, source)=>({
523
+ errorReason: res.errorReason,
524
+ isUserActionable: isUserActionableGoogleDriveBackupErrorReason(res.errorReason),
525
+ message: res.message,
526
+ source
527
+ });
528
+ /**
529
+ * Best-effort gate: probes Google Drive scopes (via OAuth tokeninfo) and
530
+ * storage quota (via drive/v3/about) in parallel and returns a definitive
531
+ * block when at least one probe confirms the upload would fail. If both
532
+ * probes are inconclusive (network errors, etc.) we fall open and return
533
+ * `{}` so the caller proceeds — the upload path will surface any real
534
+ * failure with the same `GoogleDriveBackupErrorReason` classification.
535
+ *
536
+ * Scope failure is preferred over quota failure when both fire — it's
537
+ * cheaper for the user to act on.
538
+ */ const runGoogleDriveBackupPreflight = async (accessToken)=>{
539
+ const [scopes, quota] = await Promise.allSettled([
540
+ probeGoogleDriveScopes(accessToken),
541
+ probeGoogleDriveQuota(accessToken)
542
+ ]);
543
+ if (scopes.status === 'fulfilled' && !scopes.value.ok) {
544
+ return {
545
+ blocking: toBlock(scopes.value, 'scopes')
546
+ };
547
+ }
548
+ if (quota.status === 'fulfilled' && !quota.value.ok) {
549
+ return {
550
+ blocking: toBlock(quota.value, 'quota')
551
+ };
552
+ }
553
+ return {};
554
+ };
461
555
  const uploadFileToGoogleDriveAppStorage = async ({ accessToken, fileName, jsonData })=>{
462
556
  return uploadFileToGoogleDrive({
463
557
  accessToken,
@@ -613,6 +707,10 @@ const ERROR_IMPORT_PRIVATE_KEY = '[DynamicWaasWalletClient]: Error importing pri
613
707
  const ERROR_PUBLIC_KEY_MISMATCH = 'Mismatch between the public keys of the server and the ones provided';
614
708
  const ERROR_PASSCODE_REQUIRED = '[DynamicWaasWalletClient]: A passcode is required for this environment. Please provide a password.';
615
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';
616
714
 
617
715
  /**
618
716
  * Normalizes an address to lowercase for consistent map key lookups.
@@ -818,6 +916,7 @@ const logRetryExhausted = (operationName, maxAttempts, errorContext, logContext)
818
916
  if (message.includes(ERROR_PASSCODE_REQUIRED)) return true;
819
917
  if (message.includes(ERROR_PUBLIC_KEY_MISMATCH)) return true;
820
918
  if (message.includes(ERROR_PASSWORD_MISMATCH)) return true;
919
+ if (message.includes(ERROR_MULTIPLE_WALLETS_PER_CHAIN)) return true;
821
920
  return false;
822
921
  };
823
922
  /**
@@ -842,11 +941,15 @@ const isHexString = (str)=>{
842
941
  return /^[0-9A-Fa-f]+$/.test(hex);
843
942
  };
844
943
  /**
845
- * Formats a message for Ed25519-based chains (Solana, TON, Stellar).
846
- * - If string is hex: converts to Uint8Array
847
- * - If string is not hex: encodes to hex string
848
- * - If already Uint8Array: passes through unchanged
849
- */ const formatEd25519Message = (message)=>{
944
+ * Normalizes a message to the bytes/hex form an MPC signer consumes:
945
+ * - string + hex charset Uint8Array
946
+ * - string + plain text → hex-encoded string
947
+ * - Uint8Array passthrough
948
+ *
949
+ * Chain-agnostic: used by every chain whose signer takes raw bytes (Solana,
950
+ * TON, Stellar — Ed25519 — and Midnight — BIP340 Schnorr). The signing
951
+ * algorithm is applied inside the MPC signer, not here.
952
+ */ const formatRawBytesMessage = (message)=>{
850
953
  if (typeof message !== 'string') {
851
954
  return message;
852
955
  }
@@ -855,9 +958,10 @@ const isHexString = (str)=>{
855
958
  }
856
959
  return Buffer.from(message).toString('hex');
857
960
  };
858
- const formatSolanaMessage = (message)=>formatEd25519Message(message);
859
- const formatTonMessage = (message)=>formatEd25519Message(message);
860
- /** Stellar signs raw bytes (Ed25519). Encode string to hex or pass hex through as Uint8Array. */ const formatStellarMessage = (message)=>formatEd25519Message(message);
961
+ const formatSolanaMessage = (message)=>formatRawBytesMessage(message);
962
+ const formatTonMessage = (message)=>formatRawBytesMessage(message);
963
+ const formatStellarMessage = (message)=>formatRawBytesMessage(message);
964
+ const formatMidnightMessage = (message)=>formatRawBytesMessage(message);
861
965
  const formatMessage = (chainName, message)=>{
862
966
  switch(chainName){
863
967
  case 'EVM':
@@ -871,6 +975,8 @@ const formatMessage = (chainName, message)=>{
871
975
  return formatTonMessage(message);
872
976
  case 'STELLAR':
873
977
  return formatStellarMessage(message);
978
+ case 'MIDNIGHT':
979
+ return formatMidnightMessage(message);
874
980
  default:
875
981
  throw new Error('Unsupported chain name');
876
982
  }
@@ -2582,12 +2688,24 @@ class DynamicWalletClient {
2582
2688
  return data;
2583
2689
  }
2584
2690
  prepareMessageForForwardMPC({ chainName, message, formattedMessage, signingAlgo, isFormatted }) {
2585
- if (chainName === 'SVM' || chainName === 'TON' || chainName === 'STELLAR') {
2586
- return formattedMessage;
2587
- }
2691
+ // BIP340 hash unwrap MUST come first. When `isFormatted=true`, callers wrap
2692
+ // the payload in a `MessageHash`; the direct-MPC path then reads
2693
+ // `formattedMessage.bytes`. The forward-MPC signer can't accept the object
2694
+ // — it needs the hex string. MIDNIGHT also uses BIP340, so without this
2695
+ // running before the chain-name early-return, the MessageHash leaks through
2696
+ // for `isFormatted=true` Midnight signs and the two code paths diverge.
2588
2697
  if (signingAlgo === 'BIP340' && formattedMessage instanceof MessageHash) {
2589
2698
  return formattedMessage.toHex();
2590
2699
  }
2700
+ // Ed25519-style-formatted chains: pass the formatted bytes through. MIDNIGHT
2701
+ // uses BIP340 at the MPC layer but formatMidnightMessage produces string |
2702
+ // Uint8Array (Ed25519-style framing), not a MessageHash — so the BIP340
2703
+ // branch above doesn't catch the `isFormatted=false` case. Without this,
2704
+ // forward-MPC Midnight signs would discard the formatted message and sign
2705
+ // raw bytes, producing signatures that don't match the direct-MPC path.
2706
+ if (chainName === 'SVM' || chainName === 'TON' || chainName === 'STELLAR' || chainName === 'MIDNIGHT') {
2707
+ return formattedMessage;
2708
+ }
2591
2709
  return serializeMessageForForwardMPC({
2592
2710
  message,
2593
2711
  isFormatted,
@@ -4864,17 +4982,63 @@ class DynamicWalletClient {
4864
4982
  * @param params.googleDriveAccessToken - Optional Google OAuth access token. When provided, the SDK uses it directly
4865
4983
  * instead of looking up the user's linked Google account and exchanging it for a token via the Dynamic backend.
4866
4984
  */ async backupKeySharesToGoogleDrive({ accountAddress, password, signedSessionId, googleDriveAccessToken }) {
4867
- const updatedBackupServiceAuthToken = await this.apiClient.getBackupRelayToken({});
4985
+ const [updatedBackupServiceAuthToken, resolvedAccessToken] = await Promise.all([
4986
+ this.apiClient.getBackupRelayToken({}),
4987
+ this.preflightGoogleDriveBackup({
4988
+ accountAddress,
4989
+ googleDriveAccessToken
4990
+ })
4991
+ ]);
4868
4992
  this.apiClient.syncBackupServiceAuthToken(updatedBackupServiceAuthToken);
4869
4993
  return this.backupKeySharesToCloudProvider({
4870
4994
  accountAddress,
4871
4995
  password,
4872
4996
  signedSessionId,
4873
4997
  backupLocation: BackupLocation.GOOGLE_DRIVE,
4874
- googleDriveAccessToken
4998
+ // Forward the resolved token so the downstream upload path doesn't
4999
+ // re-fetch it via fetchGoogleDriveAccessToken.
5000
+ googleDriveAccessToken: resolvedAccessToken
4875
5001
  });
4876
5002
  }
4877
5003
  /**
5004
+ * Resolve the Google Drive OAuth access token (lazy-fetch via
5005
+ * `fetchGoogleDriveAccessToken` if the caller didn't pass one explicitly),
5006
+ * run scope + quota probes against it, and either return the resolved
5007
+ * token or throw a classified `createGoogleDriveError` so the reshare
5008
+ * ceremony is short-circuited. The blocking log mirrors the upload-path
5009
+ * shape in `backup/utils.ts` so the same Datadog dashboard panels and
5010
+ * monitor pick up preflight events.
5011
+ */ async preflightGoogleDriveBackup({ accountAddress, googleDriveAccessToken }) {
5012
+ const accessTokenPromise = googleDriveAccessToken !== undefined ? Promise.resolve(googleDriveAccessToken) : this.fetchGoogleDriveAccessToken(accountAddress);
5013
+ const [preflightResult, resolvedAccessToken] = await Promise.all([
5014
+ accessTokenPromise.then((token)=>runGoogleDriveBackupPreflight(token)),
5015
+ accessTokenPromise
5016
+ ]);
5017
+ const { blocking } = preflightResult;
5018
+ if (blocking) {
5019
+ const logFn = blocking.isUserActionable ? this.logger.warn : this.logger.error;
5020
+ logFn.call(this.logger, '[DynamicWaasWalletClient] Google Drive backup failed (preflight)', {
5021
+ accountAddress,
5022
+ environmentId: this.environmentId,
5023
+ userId: this.userId,
5024
+ errorCount: 1,
5025
+ errorReason: blocking.errorReason,
5026
+ isUserActionable: blocking.isUserActionable,
5027
+ errors: [
5028
+ `Preflight (${blocking.source}): ${blocking.message}`
5029
+ ],
5030
+ preflight: true,
5031
+ source: blocking.source
5032
+ });
5033
+ throw createGoogleDriveError({
5034
+ message: blocking.message,
5035
+ isRetryable: false,
5036
+ errorReason: blocking.errorReason
5037
+ });
5038
+ }
5039
+ return resolvedAccessToken;
5040
+ }
5041
+ /**
4878
5042
  * This method handles the complete flow for ensuring wallet key shares are backed up to iCloud:
4879
5043
  * - For 2-of-2 wallets: Automatically reshares to 2-of-3 threshold, then distributes shares (1 to backend, 1 to iCloud)
4880
5044
  * - For 2-of-3 wallets: Call storeEncryptedBackupByWallet to backup for backend and iCloud
@@ -4925,14 +5089,16 @@ class DynamicWalletClient {
4925
5089
  * @param params.accountAddress - The wallet account address
4926
5090
  * @param params.password - Optional password for encryption (uses environment ID if not provided)
4927
5091
  * @param params.encryptedKeyShares - The specific key shares to upload to Google Drive
4928
- * @param params.googleDriveAccessToken - Optional Google OAuth access token. When provided, skips the on-the-fly token fetch.
5092
+ * @param params.googleDriveAccessToken - Google OAuth access token. Required; resolved upstream by `backupKeySharesToGoogleDrive` so the preflight can run on it.
4929
5093
  * @returns Promise<string[]> - Array of Google Drive key share IDs that were uploaded
4930
5094
  */ async uploadKeySharesToGoogleDrive({ accountAddress, encryptedKeyShares, googleDriveAccessToken }) {
4931
5095
  try {
4932
5096
  if (encryptedKeyShares.length === 0) {
4933
5097
  throw new Error('No key shares found');
4934
5098
  }
4935
- const accessToken = googleDriveAccessToken != null ? googleDriveAccessToken : await this.fetchGoogleDriveAccessToken(accountAddress);
5099
+ if (!googleDriveAccessToken) {
5100
+ throw new Error('googleDriveAccessToken is required for Google Drive upload');
5101
+ }
4936
5102
  const walletData = this.getWalletFromMap(accountAddress);
4937
5103
  const thresholdSignatureScheme = walletData.thresholdSignatureScheme;
4938
5104
  const fileName = getClientKeyShareExportFileName({
@@ -4946,7 +5112,7 @@ class DynamicWalletClient {
4946
5112
  thresholdSignatureScheme
4947
5113
  });
4948
5114
  await uploadBackupToGoogleDrive({
4949
- accessToken,
5115
+ accessToken: googleDriveAccessToken,
4950
5116
  fileName,
4951
5117
  backupData,
4952
5118
  accountAddress,
@@ -5974,4 +6140,4 @@ DynamicWalletClient.rooms = {};
5974
6140
  DynamicWalletClient.roomsInitializing = {};
5975
6141
  DynamicWalletClient.roomsPersistChain = Promise.resolve();
5976
6142
 
5977
- 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_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, getGoogleOAuthAccountId, getICloudBackup, getMPCSignatureScheme, getMPCSigner, hasCloudProviderBackup, hasDelegatedBackup, hasEncryptedSharesCached, initializeCloudKit, isBrowser, isHeavyQueueOperation, isHexString, isICloudAuthenticated, isNonRetryableCeremonyError, isPublicKeyMismatchError, isRecoverQueueOperation, isSignQueueOperation, listICloudBackups, markCeremonyErrorNonRetryable, readEnvironmentSettings, retryPromise, shouldReshareToSameBackups, timeoutPromise };
6143
+ 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, getGoogleOAuthAccountId, 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.343",
3
+ "version": "0.0.345",
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.343",
7
+ "@dynamic-labs-wallet/core": "0.0.345",
8
8
  "@dynamic-labs-wallet/forward-mpc-client": "0.9.0",
9
- "@dynamic-labs-wallet/primitives": "0.0.343",
9
+ "@dynamic-labs-wallet/primitives": "0.0.345",
10
10
  "@dynamic-labs/sdk-api-core": "^0.0.964",
11
11
  "argon2id": "1.0.1",
12
12
  "axios": "1.15.2",
@@ -1,3 +1,4 @@
1
+ export declare const GOOGLE_DRIVE_BACKUP_REQUIRED_SCOPES: readonly ["https://www.googleapis.com/auth/drive.appdata", "https://www.googleapis.com/auth/drive.file"];
1
2
  type GoogleDriveErrorBody = {
2
3
  error?: {
3
4
  code?: number;
@@ -39,6 +40,27 @@ type MappedUploadError = {
39
40
  * The retry hint is consumed by retryPromise to short-circuit on non-transient failures.
40
41
  */
41
42
  export declare const mapGoogleDriveUploadError: (httpStatus: number, body: GoogleDriveErrorBody | null) => MappedUploadError;
43
+ export declare const createGoogleDriveError: (mapped: MappedUploadError) => Error;
44
+ type GoogleDriveBackupPreflightBlock = {
45
+ errorReason: GoogleDriveBackupErrorReason;
46
+ isUserActionable: boolean;
47
+ message: string;
48
+ source: 'scopes' | 'quota';
49
+ };
50
+ /**
51
+ * Best-effort gate: probes Google Drive scopes (via OAuth tokeninfo) and
52
+ * storage quota (via drive/v3/about) in parallel and returns a definitive
53
+ * block when at least one probe confirms the upload would fail. If both
54
+ * probes are inconclusive (network errors, etc.) we fall open and return
55
+ * `{}` so the caller proceeds — the upload path will surface any real
56
+ * failure with the same `GoogleDriveBackupErrorReason` classification.
57
+ *
58
+ * Scope failure is preferred over quota failure when both fire — it's
59
+ * cheaper for the user to act on.
60
+ */
61
+ export declare const runGoogleDriveBackupPreflight: (accessToken: string) => Promise<{
62
+ blocking?: GoogleDriveBackupPreflightBlock;
63
+ }>;
42
64
  export declare const uploadFileToGoogleDriveAppStorage: ({ accessToken, fileName, jsonData, }: {
43
65
  accessToken: string;
44
66
  fileName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"googleDrive.d.ts","sourceRoot":"","sources":["../../../src/backup/providers/googleDrive.ts"],"names":[],"mappings":"AAWA,KAAK,oBAAoB,GAAG;IAC1B,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,KAAK,CAAC;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACtD,OAAO,CAAC,EAAE,KAAK,CAAC;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACxD,CAAC;CACH,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,4BAA4B,GACpC,aAAa,GACb,cAAc,GACd,cAAc,GACd,qBAAqB,GACrB,SAAS,GACT,SAAS,CAAC;AAYd;;;;;GAKG;AACH,eAAO,MAAM,4CAA4C,WAAY,4BAA4B,KAAG,OAC/D,CAAC;AAEtC,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,4BAA4B,CAAC;CAC3C,CAAC;AAkBF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,eAAgB,MAAM,QAAQ,oBAAoB,GAAG,IAAI,KAAG,iBAkDjG,CAAC;AAoBF,eAAO,MAAM,iCAAiC,yCAI3C;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB,iBAOA,CAAC;AAEF,eAAO,MAAM,+BAA+B,yCAIzC;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB,iBAOA,CAAC;AA0FF,eAAO,MAAM,wBAAwB,+BAGlC;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,iBAuBA,CAAC;AAEF,eAAO,MAAM,2BAA2B,+BAGrC;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,KAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CA6BzB,CAAC"}
1
+ {"version":3,"file":"googleDrive.d.ts","sourceRoot":"","sources":["../../../src/backup/providers/googleDrive.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,mCAAmC,0GAGtC,CAAC;AAeX,KAAK,oBAAoB,GAAG;IAC1B,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,KAAK,CAAC;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACtD,OAAO,CAAC,EAAE,KAAK,CAAC;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACxD,CAAC;CACH,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,4BAA4B,GACpC,aAAa,GACb,cAAc,GACd,cAAc,GACd,qBAAqB,GACrB,SAAS,GACT,SAAS,CAAC;AAYd;;;;;GAKG;AACH,eAAO,MAAM,4CAA4C,WAAY,4BAA4B,KAAG,OAC/D,CAAC;AAEtC,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,4BAA4B,CAAC;CAC3C,CAAC;AAkBF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,eAAgB,MAAM,QAAQ,oBAAoB,GAAG,IAAI,KAAG,iBAkDjG,CAAC;AAUF,eAAO,MAAM,sBAAsB,WAAY,iBAAiB,KAAG,KAQlE,CAAC;AAiDF,KAAK,+BAA+B,GAAG;IACrC,WAAW,EAAE,4BAA4B,CAAC;IAC1C,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC5B,CAAC;AAYF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,6BAA6B,gBAC3B,MAAM,KAClB,OAAO,CAAC;IAAE,QAAQ,CAAC,EAAE,+BAA+B,CAAA;CAAE,CAaxD,CAAC;AAEF,eAAO,MAAM,iCAAiC,yCAI3C;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB,iBAOA,CAAC;AAEF,eAAO,MAAM,+BAA+B,yCAIzC;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB,iBAOA,CAAC;AA0FF,eAAO,MAAM,wBAAwB,+BAGlC;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,iBAuBA,CAAC;AAEF,eAAO,MAAM,2BAA2B,+BAGrC;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,KAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CA6BzB,CAAC"}
package/src/client.d.ts CHANGED
@@ -371,7 +371,7 @@ export declare class DynamicWalletClient {
371
371
  derivedPrivateKey: string | undefined;
372
372
  }>;
373
373
  protected getReconstructedKeyShare(accountAddress: string, mpcSigner: MPCSigner): Promise<ClientKeyShare>;
374
- private performMPCExport;
374
+ protected performMPCExport(mpcSigner: MPCSigner, reconstructedKeyShare: ClientKeyShare, roomId: string, exportId: string, accountAddress: string, chainName: string): Promise<string>;
375
375
  protected derivePrivateKeyFromExport(mpcSigner: MPCSigner, keyExportRaw: string, wallet: WalletProperties): Promise<string | undefined>;
376
376
  offlineExportKey({ chainName, keyShares, derivationPath, }: {
377
377
  chainName: string;
@@ -644,6 +644,16 @@ export declare class DynamicWalletClient {
644
644
  signedSessionId: string;
645
645
  googleDriveAccessToken?: string;
646
646
  }): Promise<void>;
647
+ /**
648
+ * Resolve the Google Drive OAuth access token (lazy-fetch via
649
+ * `fetchGoogleDriveAccessToken` if the caller didn't pass one explicitly),
650
+ * run scope + quota probes against it, and either return the resolved
651
+ * token or throw a classified `createGoogleDriveError` so the reshare
652
+ * ceremony is short-circuited. The blocking log mirrors the upload-path
653
+ * shape in `backup/utils.ts` so the same Datadog dashboard panels and
654
+ * monitor pick up preflight events.
655
+ */
656
+ private preflightGoogleDriveBackup;
647
657
  /**
648
658
  * This method handles the complete flow for ensuring wallet key shares are backed up to iCloud:
649
659
  * - For 2-of-2 wallets: Automatically reshares to 2-of-3 threshold, then distributes shares (1 to backend, 1 to iCloud)
@@ -678,7 +688,7 @@ export declare class DynamicWalletClient {
678
688
  * @param params.accountAddress - The wallet account address
679
689
  * @param params.password - Optional password for encryption (uses environment ID if not provided)
680
690
  * @param params.encryptedKeyShares - The specific key shares to upload to Google Drive
681
- * @param params.googleDriveAccessToken - Optional Google OAuth access token. When provided, skips the on-the-fly token fetch.
691
+ * @param params.googleDriveAccessToken - Google OAuth access token. Required; resolved upstream by `backupKeySharesToGoogleDrive` so the preflight can run on it.
682
692
  * @returns Promise<string[]> - Array of Google Drive key share IDs that were uploaded
683
693
  */
684
694
  private uploadKeySharesToGoogleDrive;
@@ -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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"}
@@ -10,4 +10,5 @@ export declare const ERROR_IMPORT_PRIVATE_KEY = "[DynamicWaasWalletClient]: Erro
10
10
  export declare const ERROR_PUBLIC_KEY_MISMATCH = "Mismatch between the public keys of the server and the ones provided";
11
11
  export declare const ERROR_PASSCODE_REQUIRED = "[DynamicWaasWalletClient]: A passcode is required for this environment. Please provide a password.";
12
12
  export declare const ERROR_REFRESH_NOT_SUPPORTED_FOR_TWO_OF_THREE = "[DynamicWaasWalletClient]: Refresh is not supported for 2/3 wallets. Reshare to 2/2 before refreshing.";
13
+ export declare const ERROR_MULTIPLE_WALLETS_PER_CHAIN = "Multiple wallets per chain not allowed";
13
14
  //# sourceMappingURL=errorConstants.d.ts.map
@@ -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"}
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 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../packages/src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../packages/src/utils.ts"],"names":[],"mappings":"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"}