@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 +183 -16
- package/index.esm.js +183 -17
- package/package.json +3 -3
- package/src/backup/providers/googleDrive.d.ts +22 -0
- package/src/backup/providers/googleDrive.d.ts.map +1 -1
- package/src/client.d.ts +12 -2
- package/src/client.d.ts.map +1 -1
- package/src/errorConstants.d.ts +1 -0
- package/src/errorConstants.d.ts.map +1 -1
- package/src/utils.d.ts.map +1 -1
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
|
-
*
|
|
845
|
-
* -
|
|
846
|
-
* -
|
|
847
|
-
* -
|
|
848
|
-
|
|
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)=>
|
|
858
|
-
const formatTonMessage = (message)=>
|
|
859
|
-
|
|
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
|
-
|
|
2585
|
-
|
|
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
|
|
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
|
-
|
|
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 -
|
|
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
|
-
|
|
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
|
-
*
|
|
846
|
-
* -
|
|
847
|
-
* -
|
|
848
|
-
* -
|
|
849
|
-
|
|
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)=>
|
|
859
|
-
const formatTonMessage = (message)=>
|
|
860
|
-
|
|
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
|
-
|
|
2586
|
-
|
|
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
|
|
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
|
-
|
|
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 -
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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":"
|
|
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
|
-
|
|
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 -
|
|
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;
|
package/src/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../packages/src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../packages/src/client.ts"],"names":[],"mappings":"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"}
|
package/src/errorConstants.d.ts
CHANGED
|
@@ -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"}
|
package/src/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../packages/src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EACL,cAAc,EAGd,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../packages/src/utils.ts"],"names":[],"mappings":"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"}
|