@dynamic-labs-wallet/browser 1.0.46 → 1.0.48
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 +281 -35
- package/index.esm.js +281 -35
- package/package.json +3 -3
- package/src/backup/password/errors.d.ts +2 -1
- package/src/backup/password/errors.d.ts.map +1 -1
- package/src/backup/providers/googleDrive.d.ts.map +1 -1
- package/src/client.d.ts +39 -3
- package/src/client.d.ts.map +1 -1
- package/src/errors.d.ts +4 -0
- package/src/errors.d.ts.map +1 -1
package/index.cjs
CHANGED
|
@@ -399,6 +399,13 @@ class EnvironmentIdMismatchError extends Error {
|
|
|
399
399
|
this.actual = args.actual;
|
|
400
400
|
}
|
|
401
401
|
}
|
|
402
|
+
class WalletNotActiveError extends Error {
|
|
403
|
+
constructor(walletId){
|
|
404
|
+
super(`[DynamicWaasWalletClient]: wallet not active after backup activation (walletId: "${walletId}").`);
|
|
405
|
+
this.name = 'WalletNotActiveError';
|
|
406
|
+
this.walletId = walletId;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
402
409
|
class EncryptionSelfTestFailedError extends Error {
|
|
403
410
|
constructor(args){
|
|
404
411
|
super(`[DynamicWaasWalletClient]: backup aborted.`);
|
|
@@ -507,6 +514,7 @@ const ERROR_WALLETS_ALREADY_ENCRYPTED = '[DynamicWaasWalletClient]: Cannot set p
|
|
|
507
514
|
decryption_failure: false,
|
|
508
515
|
upload_failure: false,
|
|
509
516
|
activation_failure: false,
|
|
517
|
+
already_encrypted: true,
|
|
510
518
|
network: false,
|
|
511
519
|
unknown: false
|
|
512
520
|
};
|
|
@@ -579,6 +587,9 @@ const computeReason = (error)=>{
|
|
|
579
587
|
if (error.message.includes(ERROR_PASSWORD_MISMATCH) || error.message.includes(ERROR_INCORRECT_PASSWORD)) {
|
|
580
588
|
return 'wrong_password';
|
|
581
589
|
}
|
|
590
|
+
if (error.message.includes(ERROR_WALLETS_ALREADY_ENCRYPTED)) {
|
|
591
|
+
return 'already_encrypted';
|
|
592
|
+
}
|
|
582
593
|
if (error.message.startsWith(ENCRYPTION_FAILURE_MESSAGE_PREFIX)) {
|
|
583
594
|
return 'encryption_failure';
|
|
584
595
|
}
|
|
@@ -891,7 +902,16 @@ const listFilesFromGoogleDrive = async ({ accessToken, fileName })=>{
|
|
|
891
902
|
headers: {
|
|
892
903
|
Authorization: `Bearer ${accessToken}`
|
|
893
904
|
}
|
|
905
|
+
}).catch(()=>{
|
|
906
|
+
throw createGoogleDriveError(NETWORK_ERROR);
|
|
894
907
|
});
|
|
908
|
+
if (!resp.ok) {
|
|
909
|
+
// Distinguish a real API error (401/403/500/...) from "no such file". An
|
|
910
|
+
// error body has no `files`, so without this the recovery path would read
|
|
911
|
+
// it as "no file exists".
|
|
912
|
+
const body = await parseGoogleDriveErrorBody(resp);
|
|
913
|
+
throw createGoogleDriveError(mapGoogleDriveUploadError(resp.status, body));
|
|
914
|
+
}
|
|
895
915
|
const data = await resp.json();
|
|
896
916
|
// If no files found, return null
|
|
897
917
|
if (!data.files || data.files.length === 0) {
|
|
@@ -2775,31 +2795,106 @@ class DynamicWalletClient {
|
|
|
2775
2795
|
};
|
|
2776
2796
|
}
|
|
2777
2797
|
}
|
|
2778
|
-
async serverInitializeKeyGen({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, businessAccountId, onError, onCeremonyComplete }) {
|
|
2779
|
-
// Initialize keygen, create room, and create the wallet account on the server
|
|
2780
|
-
|
|
2781
|
-
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
|
|
2798
|
+
async serverInitializeKeyGen({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, businessAccountId, idempotencyKey, traceContext, onError, onCeremonyComplete }) {
|
|
2799
|
+
// Initialize keygen, create room, and create the wallet account on the server.
|
|
2800
|
+
// HTTP transport (flag on + idempotency key present) uses a single JSON
|
|
2801
|
+
// request/response; the legacy SSE path streams ceremony events.
|
|
2802
|
+
const useHttpTransport = this.featureFlags[core.FEATURE_FLAGS.ENABLE_HTTP_WAAS_TRANSPORT] === true && !!idempotencyKey;
|
|
2803
|
+
let data;
|
|
2804
|
+
if (useHttpTransport) {
|
|
2805
|
+
data = await this.apiClient.requestWalletCreationJson({
|
|
2806
|
+
chainName,
|
|
2807
|
+
clientKeygenIds,
|
|
2808
|
+
dynamicRequestId,
|
|
2809
|
+
thresholdSignatureScheme,
|
|
2810
|
+
bitcoinConfig,
|
|
2811
|
+
businessAccountId,
|
|
2812
|
+
idempotencyKey,
|
|
2813
|
+
traceContext,
|
|
2814
|
+
timeoutMs: 3000
|
|
2815
|
+
});
|
|
2816
|
+
} else {
|
|
2817
|
+
data = await this.apiClient.createWalletAccount({
|
|
2818
|
+
chainName,
|
|
2819
|
+
clientKeygenIds,
|
|
2820
|
+
dynamicRequestId,
|
|
2821
|
+
thresholdSignatureScheme,
|
|
2822
|
+
bitcoinConfig,
|
|
2823
|
+
businessAccountId,
|
|
2824
|
+
onError,
|
|
2825
|
+
onCeremonyComplete,
|
|
2826
|
+
// Diagnostic only: surfaces SSE delivery lag (e.g. buffering proxies
|
|
2827
|
+
// holding keygen_complete until the server's timeout closes the stream,
|
|
2828
|
+
// which strands the user without a wallet). Does not abort the request.
|
|
2829
|
+
onSlowDelivery: (meta)=>{
|
|
2830
|
+
this.logger.debug('[SseWatchdog] keygen_complete not received within watchdog window', _extends({}, meta, {
|
|
2831
|
+
chainName,
|
|
2832
|
+
dynamicRequestId,
|
|
2833
|
+
key: 'sseWatchdog',
|
|
2834
|
+
operation: 'createWalletAccount'
|
|
2835
|
+
}));
|
|
2836
|
+
}
|
|
2837
|
+
});
|
|
2838
|
+
}
|
|
2839
|
+
this.logger.debug(`[DynamicWaasWalletClient] Initialized client key generation with IDs: ${clientKeygenIds.join(', ')} for chain: ${chainName} using scheme: ${thresholdSignatureScheme}`);
|
|
2840
|
+
return data;
|
|
2841
|
+
}
|
|
2842
|
+
/**
|
|
2843
|
+
* HTTP transport only. After the relay keygen, re-issue the JSON `/create`
|
|
2844
|
+
* request (same idempotency key) until the async server ceremony reports the
|
|
2845
|
+
* wallet. The server's `completed` dedup branch returns walletId +
|
|
2846
|
+
* accountAddress + shareSetId — the payload the SSE `ceremony_complete` event
|
|
2847
|
+
* carried — once the worker finishes; until then it echoes only the room and
|
|
2848
|
+
* we keep polling. This stands in for the completion signal HTTP mode never
|
|
2849
|
+
* streams. Idempotency makes each poll a safe no-op server-side.
|
|
2850
|
+
*/ async pollHttpCeremonyCompletion({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, businessAccountId, idempotencyKey, traceContext }) {
|
|
2851
|
+
const POLL_INTERVAL_MS = 1000;
|
|
2852
|
+
const POLL_TIMEOUT_MS = 30000;
|
|
2853
|
+
const deadline = Date.now() + POLL_TIMEOUT_MS;
|
|
2854
|
+
while(Date.now() < deadline){
|
|
2855
|
+
try {
|
|
2856
|
+
const data = await this.apiClient.requestWalletCreationJson({
|
|
2794
2857
|
chainName,
|
|
2858
|
+
clientKeygenIds,
|
|
2795
2859
|
dynamicRequestId,
|
|
2796
|
-
|
|
2797
|
-
|
|
2798
|
-
|
|
2860
|
+
thresholdSignatureScheme,
|
|
2861
|
+
bitcoinConfig,
|
|
2862
|
+
businessAccountId,
|
|
2863
|
+
idempotencyKey,
|
|
2864
|
+
traceContext,
|
|
2865
|
+
timeoutMs: 5000,
|
|
2866
|
+
// Read-only: a poll must never claim a new attempt or enqueue a worker,
|
|
2867
|
+
// otherwise a slow ceremony could be re-driven into a second wallet.
|
|
2868
|
+
poll: true
|
|
2869
|
+
});
|
|
2870
|
+
if (data.walletId && data.accountAddress) {
|
|
2871
|
+
return {
|
|
2872
|
+
accountAddress: data.accountAddress,
|
|
2873
|
+
walletId: data.walletId,
|
|
2874
|
+
shareSetId: data.shareSetId
|
|
2875
|
+
};
|
|
2876
|
+
}
|
|
2877
|
+
} catch (error) {
|
|
2878
|
+
var _error_response;
|
|
2879
|
+
var _error_response_status;
|
|
2880
|
+
// Non-transient failures (4xx) won't resolve on retry — surface
|
|
2881
|
+
// immediately so the caller gets an actionable error instead of a
|
|
2882
|
+
// generic timeout after 30 s of pointless polling.
|
|
2883
|
+
const status = (_error_response_status = error == null ? void 0 : (_error_response = error.response) == null ? void 0 : _error_response.status) != null ? _error_response_status : error == null ? void 0 : error.status;
|
|
2884
|
+
if (status !== undefined && status >= 400 && status < 500 && status !== 429) {
|
|
2885
|
+
throw error;
|
|
2886
|
+
}
|
|
2887
|
+
// Transient failures (502, timeout) should not abort the entire keygen —
|
|
2888
|
+
// just retry the cheap poll until the deadline.
|
|
2889
|
+
this.logger.debug('[pollHttpCeremonyCompletion] transient poll error, retrying', {
|
|
2890
|
+
error: error.message,
|
|
2891
|
+
dynamicRequestId,
|
|
2892
|
+
chainName
|
|
2893
|
+
});
|
|
2799
2894
|
}
|
|
2800
|
-
|
|
2801
|
-
|
|
2802
|
-
|
|
2895
|
+
await new Promise((resolve)=>setTimeout(resolve, POLL_INTERVAL_MS));
|
|
2896
|
+
}
|
|
2897
|
+
throw new Error('Timed out waiting for wallet creation ceremony to complete');
|
|
2803
2898
|
}
|
|
2804
2899
|
async clientInitializeKeyGen({ chainName, thresholdSignatureScheme, bitcoinConfig }) {
|
|
2805
2900
|
// Get the mpc signer
|
|
@@ -3021,6 +3116,10 @@ class DynamicWalletClient {
|
|
|
3021
3116
|
}
|
|
3022
3117
|
async runKeyGenAttempt({ chainName, thresholdSignatureScheme, bitcoinConfig, businessAccountId, onCeremonyComplete, traceContext, password, signedSessionId }) {
|
|
3023
3118
|
const dynamicRequestId = uuid.v4();
|
|
3119
|
+
// Fresh per attempt so each retry gets a new server room with matching
|
|
3120
|
+
// clientKeygenIds. A stale key would return the cached (tainted) room
|
|
3121
|
+
// from a previous attempt whose clientKeygenIds no longer match.
|
|
3122
|
+
const idempotencyKey = uuid.v4();
|
|
3024
3123
|
try {
|
|
3025
3124
|
this.assertPasswordRequired(password);
|
|
3026
3125
|
await this.validatePasswordConsistencyForNewWallet({
|
|
@@ -3050,6 +3149,8 @@ class DynamicWalletClient {
|
|
|
3050
3149
|
thresholdSignatureScheme,
|
|
3051
3150
|
bitcoinConfig,
|
|
3052
3151
|
businessAccountId,
|
|
3152
|
+
idempotencyKey,
|
|
3153
|
+
traceContext,
|
|
3053
3154
|
onCeremonyComplete
|
|
3054
3155
|
});
|
|
3055
3156
|
this.logger.info('[DynamicWaasWalletClient] Server key generation initialized', _extends({
|
|
@@ -3065,6 +3166,7 @@ class DynamicWalletClient {
|
|
|
3065
3166
|
approxSseTransitMs: Date.now() - emittedAtMs
|
|
3066
3167
|
} : {}, this.getTraceContext(traceContext)));
|
|
3067
3168
|
const clientKeyGenStartedAt = Date.now();
|
|
3169
|
+
let refreshRoomInvoked = false;
|
|
3068
3170
|
const { rawPublicKey, clientKeygenResults: clientKeyShares, operationSource } = await this.clientKeyGen({
|
|
3069
3171
|
chainName,
|
|
3070
3172
|
roomId,
|
|
@@ -3075,16 +3177,22 @@ class DynamicWalletClient {
|
|
|
3075
3177
|
dynamicRequestId,
|
|
3076
3178
|
traceContext,
|
|
3077
3179
|
// On forward-MPC fallback, re-init the server keygen so a brand-new
|
|
3078
|
-
// server-joined room is created for the relay ceremony.
|
|
3079
|
-
|
|
3180
|
+
// server-joined room is created for the relay ceremony. Omit
|
|
3181
|
+
// idempotencyKey so the server creates a fresh room instead of
|
|
3182
|
+
// returning the cached (tainted) one from the initial attempt.
|
|
3183
|
+
refreshRoom: ()=>{
|
|
3184
|
+
refreshRoomInvoked = true;
|
|
3185
|
+
return this.serverInitializeKeyGen({
|
|
3080
3186
|
chainName,
|
|
3081
3187
|
clientKeygenIds,
|
|
3082
3188
|
dynamicRequestId,
|
|
3083
3189
|
thresholdSignatureScheme,
|
|
3084
3190
|
bitcoinConfig,
|
|
3085
3191
|
businessAccountId,
|
|
3192
|
+
traceContext,
|
|
3086
3193
|
onCeremonyComplete
|
|
3087
|
-
})
|
|
3194
|
+
});
|
|
3195
|
+
}
|
|
3088
3196
|
});
|
|
3089
3197
|
this.logger.info('[DynamicWaasWalletClient] Client key generation completed', _extends({
|
|
3090
3198
|
roomId,
|
|
@@ -3100,6 +3208,24 @@ class DynamicWalletClient {
|
|
|
3100
3208
|
dynamicRequestId,
|
|
3101
3209
|
durationMs: Date.now() - clientKeyGenStartedAt
|
|
3102
3210
|
}, this.getTraceContext(traceContext)));
|
|
3211
|
+
// HTTP transport doesn't stream `ceremony_complete`, so poll `/create`
|
|
3212
|
+
// (same idempotency key) after the relay keygen until the server reports
|
|
3213
|
+
// the wallet, then fire onCeremonyComplete manually.
|
|
3214
|
+
// Skip when refreshRoom was invoked: the SSE fallback already delivered
|
|
3215
|
+
// onCeremonyComplete via the event stream.
|
|
3216
|
+
if (this.featureFlags[core.FEATURE_FLAGS.ENABLE_HTTP_WAAS_TRANSPORT] === true && idempotencyKey && onCeremonyComplete && !refreshRoomInvoked) {
|
|
3217
|
+
const completion = await this.pollHttpCeremonyCompletion({
|
|
3218
|
+
chainName,
|
|
3219
|
+
clientKeygenIds,
|
|
3220
|
+
dynamicRequestId,
|
|
3221
|
+
thresholdSignatureScheme,
|
|
3222
|
+
bitcoinConfig,
|
|
3223
|
+
businessAccountId,
|
|
3224
|
+
idempotencyKey,
|
|
3225
|
+
traceContext
|
|
3226
|
+
});
|
|
3227
|
+
onCeremonyComplete(completion.accountAddress, completion.walletId, completion.shareSetId);
|
|
3228
|
+
}
|
|
3103
3229
|
return {
|
|
3104
3230
|
rawPublicKey,
|
|
3105
3231
|
clientKeyShares
|
|
@@ -6109,7 +6235,8 @@ class DynamicWalletClient {
|
|
|
6109
6235
|
// Step 2: Activate server shares. No refresh path here: this endpoint doesn't use
|
|
6110
6236
|
// the signed session, and its 400 is a server-side share-state mismatch a retry
|
|
6111
6237
|
// won't fix.
|
|
6112
|
-
const backupData = await retryPromise(()=>
|
|
6238
|
+
const backupData = await retryPromise(async ()=>{
|
|
6239
|
+
const result = await this.apiClient.markKeySharesAsBackedUp({
|
|
6113
6240
|
walletId: walletData.walletId,
|
|
6114
6241
|
// Same routing rule as publishDelegatedShare above: when this
|
|
6115
6242
|
// ceremony minted a separate `delegated` share set, the atomic
|
|
@@ -6119,9 +6246,24 @@ class DynamicWalletClient {
|
|
|
6119
6246
|
dynamicRequestId,
|
|
6120
6247
|
passwordUpdateBatchId,
|
|
6121
6248
|
businessAccountId
|
|
6122
|
-
})
|
|
6249
|
+
});
|
|
6250
|
+
// HTTP-transport activates the wallet asynchronously; walletActive
|
|
6251
|
+
// can briefly lag. Throw so retryPromise re-polls before surfacing.
|
|
6252
|
+
// Guard on `=== false` (not `!== true`) because refresh/reshare/
|
|
6253
|
+
// password-update flows return undefined for walletActive and must
|
|
6254
|
+
// pass through without spurious retries. DYNT-816
|
|
6255
|
+
if (this.featureFlags[core.FEATURE_FLAGS.ENABLE_HTTP_WAAS_TRANSPORT] === true && result.walletActive === false) {
|
|
6256
|
+
throw new WalletNotActiveError(walletData.walletId);
|
|
6257
|
+
}
|
|
6258
|
+
return result;
|
|
6259
|
+
}, {
|
|
6123
6260
|
operationName: BACKUP_OPERATION.MarkBackedUp,
|
|
6261
|
+
retryInterval: 250,
|
|
6124
6262
|
shouldRetry: (error)=>{
|
|
6263
|
+
// Transient HTTP-transport activation lag — re-poll the backup.
|
|
6264
|
+
if (error instanceof WalletNotActiveError) {
|
|
6265
|
+
return true;
|
|
6266
|
+
}
|
|
6125
6267
|
const status = getHttpStatus(error);
|
|
6126
6268
|
// 429 (rate limit) is the textbook back-off-and-retry status.
|
|
6127
6269
|
return status === undefined || status === 429 || status >= 500;
|
|
@@ -6927,7 +7069,8 @@ class DynamicWalletClient {
|
|
|
6927
7069
|
/**
|
|
6928
7070
|
* Internal helper method that handles the complete flow for ensuring wallet key shares are backed up to a cloud provider.
|
|
6929
7071
|
* - For 2-of-2 wallets: Automatically reshares to 2-of-3 threshold, then distributes shares (1 to backend, 1 to cloud)
|
|
6930
|
-
* - For 2-of-3 wallets:
|
|
7072
|
+
* - For non-delegated 2-of-3 wallets: same-scheme reshare to mint a fresh recovery share
|
|
7073
|
+
* - For delegated 2-of-3 (and other) wallets: storeEncryptedBackupByWallet backs up to backend and cloud
|
|
6931
7074
|
*/ async backupKeySharesToCloudProvider({ accountAddress, password, signedSessionId, sessionPublicKey, backupLocation, googleDriveAccessToken, googleDriveTokenSource }) {
|
|
6932
7075
|
try {
|
|
6933
7076
|
await this.getWallet({
|
|
@@ -6954,6 +7097,16 @@ class DynamicWalletClient {
|
|
|
6954
7097
|
googleDriveAccessToken,
|
|
6955
7098
|
googleDriveTokenSource
|
|
6956
7099
|
});
|
|
7100
|
+
} else if (currentThresholdSignatureScheme === core.ThresholdSignatureScheme.TWO_OF_THREE && !hasDelegatedBackup(walletData.clientKeySharesBackupInfo, walletData.otherShareSets)) {
|
|
7101
|
+
await this.reshareNonDelegatedTwoOfThree({
|
|
7102
|
+
accountAddress,
|
|
7103
|
+
backupLocation,
|
|
7104
|
+
password,
|
|
7105
|
+
signedSessionId,
|
|
7106
|
+
sessionPublicKey,
|
|
7107
|
+
googleDriveAccessToken,
|
|
7108
|
+
googleDriveTokenSource
|
|
7109
|
+
});
|
|
6957
7110
|
} else {
|
|
6958
7111
|
await this.storeEncryptedBackupByWallet({
|
|
6959
7112
|
accountAddress,
|
|
@@ -6980,6 +7133,105 @@ class DynamicWalletClient {
|
|
|
6980
7133
|
}
|
|
6981
7134
|
}
|
|
6982
7135
|
/**
|
|
7136
|
+
* Self-heal a non-delegated 2-of-3 wallet's cloud backup via a same-scheme
|
|
7137
|
+
* reshare that mints a fresh recovery share. The fresh share is redistributed to
|
|
7138
|
+
* every provider already holding a backup plus the requested one,
|
|
7139
|
+
* restricted to providers the reshare can deliver to.
|
|
7140
|
+
*/ async reshareNonDelegatedTwoOfThree({ accountAddress, backupLocation, password, signedSessionId, sessionPublicKey, googleDriveAccessToken, googleDriveTokenSource }) {
|
|
7141
|
+
const walletData = this.getWalletFromMap(accountAddress);
|
|
7142
|
+
const cloudProviders = new Set([
|
|
7143
|
+
...getActiveCloudProviders(walletData.clientKeySharesBackupInfo).filter((provider)=>provider === core.BackupLocation.GOOGLE_DRIVE || provider === core.BackupLocation.ICLOUD),
|
|
7144
|
+
backupLocation
|
|
7145
|
+
]);
|
|
7146
|
+
await this.validateICloudForReshare({
|
|
7147
|
+
accountAddress,
|
|
7148
|
+
backupLocation,
|
|
7149
|
+
cloudProviders
|
|
7150
|
+
});
|
|
7151
|
+
const resolvedDrive = await this.resolveGoogleDriveTokenForReshare({
|
|
7152
|
+
accountAddress,
|
|
7153
|
+
backupLocation,
|
|
7154
|
+
cloudProviders,
|
|
7155
|
+
googleDriveAccessToken,
|
|
7156
|
+
googleDriveTokenSource
|
|
7157
|
+
});
|
|
7158
|
+
this.logger.info('[DynamicWaasWalletClient] Non-delegated 2-of-3 re-backup: same-scheme reshare to mint a fresh recovery share', {
|
|
7159
|
+
accountAddress,
|
|
7160
|
+
environmentId: this.environmentId,
|
|
7161
|
+
userId: this.userId,
|
|
7162
|
+
backupLocation,
|
|
7163
|
+
cloudProviders: Array.from(cloudProviders)
|
|
7164
|
+
});
|
|
7165
|
+
await this.reshare({
|
|
7166
|
+
chainName: walletData.chainName,
|
|
7167
|
+
accountAddress,
|
|
7168
|
+
oldThresholdSignatureScheme: walletData.thresholdSignatureScheme,
|
|
7169
|
+
newThresholdSignatureScheme: walletData.thresholdSignatureScheme,
|
|
7170
|
+
password,
|
|
7171
|
+
signedSessionId,
|
|
7172
|
+
sessionPublicKey,
|
|
7173
|
+
cloudProviders: Array.from(cloudProviders),
|
|
7174
|
+
googleDriveAccessToken: resolvedDrive.googleDriveAccessToken,
|
|
7175
|
+
googleDriveTokenSource: resolvedDrive.googleDriveTokenSource
|
|
7176
|
+
});
|
|
7177
|
+
}
|
|
7178
|
+
/**
|
|
7179
|
+
* Validate iCloud for reshare: drop it from the provider set if CloudKit
|
|
7180
|
+
* isn't authenticated. Only applies when iCloud arrived via the union (not
|
|
7181
|
+
* the explicit request). A mid-ceremony upload failure wipes local shares,
|
|
7182
|
+
* so the check must happen before the share set is retired.
|
|
7183
|
+
*/ async validateICloudForReshare({ accountAddress, backupLocation, cloudProviders }) {
|
|
7184
|
+
if (!cloudProviders.has(core.BackupLocation.ICLOUD) || backupLocation === core.BackupLocation.ICLOUD) {
|
|
7185
|
+
return;
|
|
7186
|
+
}
|
|
7187
|
+
const iCloudReady = await isICloudAuthenticated();
|
|
7188
|
+
if (!iCloudReady) {
|
|
7189
|
+
this.logger.warn('[DynamicWaasWalletClient] Reshare skipping iCloud redistribution: CloudKit not authenticated', {
|
|
7190
|
+
accountAddress,
|
|
7191
|
+
environmentId: this.environmentId,
|
|
7192
|
+
userId: this.userId,
|
|
7193
|
+
backupLocation
|
|
7194
|
+
});
|
|
7195
|
+
cloudProviders.delete(core.BackupLocation.ICLOUD);
|
|
7196
|
+
}
|
|
7197
|
+
}
|
|
7198
|
+
/**
|
|
7199
|
+
* Validate Google Drive for reshare: resolve and probe the access token, then
|
|
7200
|
+
* drop Drive from the provider set if no usable token exists. A mid-ceremony
|
|
7201
|
+
* upload failure wipes local shares, so the check must happen before the
|
|
7202
|
+
* share set is retired.
|
|
7203
|
+
*/ async resolveGoogleDriveTokenForReshare({ accountAddress, backupLocation, cloudProviders, googleDriveAccessToken, googleDriveTokenSource }) {
|
|
7204
|
+
if (!cloudProviders.has(core.BackupLocation.GOOGLE_DRIVE) || googleDriveAccessToken !== undefined) {
|
|
7205
|
+
return {
|
|
7206
|
+
googleDriveAccessToken,
|
|
7207
|
+
googleDriveTokenSource
|
|
7208
|
+
};
|
|
7209
|
+
}
|
|
7210
|
+
try {
|
|
7211
|
+
const token = await this.fetchGoogleDriveAccessToken(accountAddress);
|
|
7212
|
+
const { blocking } = await runGoogleDriveBackupPreflight(token);
|
|
7213
|
+
if (blocking) {
|
|
7214
|
+
throw new Error(blocking.message);
|
|
7215
|
+
}
|
|
7216
|
+
return {
|
|
7217
|
+
googleDriveAccessToken: token,
|
|
7218
|
+
googleDriveTokenSource: 'stored_oauth'
|
|
7219
|
+
};
|
|
7220
|
+
} catch (e) {
|
|
7221
|
+
this.logger.warn('[DynamicWaasWalletClient] Reshare skipping Google Drive redistribution: no usable Drive token', {
|
|
7222
|
+
accountAddress,
|
|
7223
|
+
environmentId: this.environmentId,
|
|
7224
|
+
userId: this.userId,
|
|
7225
|
+
backupLocation
|
|
7226
|
+
});
|
|
7227
|
+
cloudProviders.delete(core.BackupLocation.GOOGLE_DRIVE);
|
|
7228
|
+
return {
|
|
7229
|
+
googleDriveAccessToken: undefined,
|
|
7230
|
+
googleDriveTokenSource: undefined
|
|
7231
|
+
};
|
|
7232
|
+
}
|
|
7233
|
+
}
|
|
7234
|
+
/**
|
|
6983
7235
|
* This method handles the complete flow for ensuring wallet key shares are backed up to Google Drive:
|
|
6984
7236
|
* - For 2-of-2 wallets: Automatically reshares to 2-of-3 threshold, then distributes shares (1 to backend, 1 to Google Drive)
|
|
6985
7237
|
* - For 2-of-3 wallets: Call storeEncryptedBackupByWallet to backup for backend and Google Drive
|
|
@@ -7005,13 +7257,7 @@ class DynamicWalletClient {
|
|
|
7005
7257
|
googleDriveAccessToken
|
|
7006
7258
|
})
|
|
7007
7259
|
]);
|
|
7008
|
-
|
|
7009
|
-
// token (matches the other callers). Now that syncBackupServiceAuthToken
|
|
7010
|
-
// runs in HEADER mode too, an unconditional call would throw on an empty
|
|
7011
|
-
// token instead of the previous silent no-op.
|
|
7012
|
-
if (updatedBackupServiceAuthToken) {
|
|
7013
|
-
this.apiClient.syncBackupServiceAuthToken(updatedBackupServiceAuthToken);
|
|
7014
|
-
}
|
|
7260
|
+
this.apiClient.syncBackupServiceAuthToken(updatedBackupServiceAuthToken);
|
|
7015
7261
|
await this.backupKeySharesToCloudProvider({
|
|
7016
7262
|
accountAddress,
|
|
7017
7263
|
password,
|
package/index.esm.js
CHANGED
|
@@ -400,6 +400,13 @@ class EnvironmentIdMismatchError extends Error {
|
|
|
400
400
|
this.actual = args.actual;
|
|
401
401
|
}
|
|
402
402
|
}
|
|
403
|
+
class WalletNotActiveError extends Error {
|
|
404
|
+
constructor(walletId){
|
|
405
|
+
super(`[DynamicWaasWalletClient]: wallet not active after backup activation (walletId: "${walletId}").`);
|
|
406
|
+
this.name = 'WalletNotActiveError';
|
|
407
|
+
this.walletId = walletId;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
403
410
|
class EncryptionSelfTestFailedError extends Error {
|
|
404
411
|
constructor(args){
|
|
405
412
|
super(`[DynamicWaasWalletClient]: backup aborted.`);
|
|
@@ -508,6 +515,7 @@ const ERROR_WALLETS_ALREADY_ENCRYPTED = '[DynamicWaasWalletClient]: Cannot set p
|
|
|
508
515
|
decryption_failure: false,
|
|
509
516
|
upload_failure: false,
|
|
510
517
|
activation_failure: false,
|
|
518
|
+
already_encrypted: true,
|
|
511
519
|
network: false,
|
|
512
520
|
unknown: false
|
|
513
521
|
};
|
|
@@ -580,6 +588,9 @@ const computeReason = (error)=>{
|
|
|
580
588
|
if (error.message.includes(ERROR_PASSWORD_MISMATCH) || error.message.includes(ERROR_INCORRECT_PASSWORD)) {
|
|
581
589
|
return 'wrong_password';
|
|
582
590
|
}
|
|
591
|
+
if (error.message.includes(ERROR_WALLETS_ALREADY_ENCRYPTED)) {
|
|
592
|
+
return 'already_encrypted';
|
|
593
|
+
}
|
|
583
594
|
if (error.message.startsWith(ENCRYPTION_FAILURE_MESSAGE_PREFIX)) {
|
|
584
595
|
return 'encryption_failure';
|
|
585
596
|
}
|
|
@@ -892,7 +903,16 @@ const listFilesFromGoogleDrive = async ({ accessToken, fileName })=>{
|
|
|
892
903
|
headers: {
|
|
893
904
|
Authorization: `Bearer ${accessToken}`
|
|
894
905
|
}
|
|
906
|
+
}).catch(()=>{
|
|
907
|
+
throw createGoogleDriveError(NETWORK_ERROR);
|
|
895
908
|
});
|
|
909
|
+
if (!resp.ok) {
|
|
910
|
+
// Distinguish a real API error (401/403/500/...) from "no such file". An
|
|
911
|
+
// error body has no `files`, so without this the recovery path would read
|
|
912
|
+
// it as "no file exists".
|
|
913
|
+
const body = await parseGoogleDriveErrorBody(resp);
|
|
914
|
+
throw createGoogleDriveError(mapGoogleDriveUploadError(resp.status, body));
|
|
915
|
+
}
|
|
896
916
|
const data = await resp.json();
|
|
897
917
|
// If no files found, return null
|
|
898
918
|
if (!data.files || data.files.length === 0) {
|
|
@@ -2776,31 +2796,106 @@ class DynamicWalletClient {
|
|
|
2776
2796
|
};
|
|
2777
2797
|
}
|
|
2778
2798
|
}
|
|
2779
|
-
async serverInitializeKeyGen({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, businessAccountId, onError, onCeremonyComplete }) {
|
|
2780
|
-
// Initialize keygen, create room, and create the wallet account on the server
|
|
2781
|
-
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
|
|
2799
|
+
async serverInitializeKeyGen({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, businessAccountId, idempotencyKey, traceContext, onError, onCeremonyComplete }) {
|
|
2800
|
+
// Initialize keygen, create room, and create the wallet account on the server.
|
|
2801
|
+
// HTTP transport (flag on + idempotency key present) uses a single JSON
|
|
2802
|
+
// request/response; the legacy SSE path streams ceremony events.
|
|
2803
|
+
const useHttpTransport = this.featureFlags[FEATURE_FLAGS.ENABLE_HTTP_WAAS_TRANSPORT] === true && !!idempotencyKey;
|
|
2804
|
+
let data;
|
|
2805
|
+
if (useHttpTransport) {
|
|
2806
|
+
data = await this.apiClient.requestWalletCreationJson({
|
|
2807
|
+
chainName,
|
|
2808
|
+
clientKeygenIds,
|
|
2809
|
+
dynamicRequestId,
|
|
2810
|
+
thresholdSignatureScheme,
|
|
2811
|
+
bitcoinConfig,
|
|
2812
|
+
businessAccountId,
|
|
2813
|
+
idempotencyKey,
|
|
2814
|
+
traceContext,
|
|
2815
|
+
timeoutMs: 3000
|
|
2816
|
+
});
|
|
2817
|
+
} else {
|
|
2818
|
+
data = await this.apiClient.createWalletAccount({
|
|
2819
|
+
chainName,
|
|
2820
|
+
clientKeygenIds,
|
|
2821
|
+
dynamicRequestId,
|
|
2822
|
+
thresholdSignatureScheme,
|
|
2823
|
+
bitcoinConfig,
|
|
2824
|
+
businessAccountId,
|
|
2825
|
+
onError,
|
|
2826
|
+
onCeremonyComplete,
|
|
2827
|
+
// Diagnostic only: surfaces SSE delivery lag (e.g. buffering proxies
|
|
2828
|
+
// holding keygen_complete until the server's timeout closes the stream,
|
|
2829
|
+
// which strands the user without a wallet). Does not abort the request.
|
|
2830
|
+
onSlowDelivery: (meta)=>{
|
|
2831
|
+
this.logger.debug('[SseWatchdog] keygen_complete not received within watchdog window', _extends({}, meta, {
|
|
2832
|
+
chainName,
|
|
2833
|
+
dynamicRequestId,
|
|
2834
|
+
key: 'sseWatchdog',
|
|
2835
|
+
operation: 'createWalletAccount'
|
|
2836
|
+
}));
|
|
2837
|
+
}
|
|
2838
|
+
});
|
|
2839
|
+
}
|
|
2840
|
+
this.logger.debug(`[DynamicWaasWalletClient] Initialized client key generation with IDs: ${clientKeygenIds.join(', ')} for chain: ${chainName} using scheme: ${thresholdSignatureScheme}`);
|
|
2841
|
+
return data;
|
|
2842
|
+
}
|
|
2843
|
+
/**
|
|
2844
|
+
* HTTP transport only. After the relay keygen, re-issue the JSON `/create`
|
|
2845
|
+
* request (same idempotency key) until the async server ceremony reports the
|
|
2846
|
+
* wallet. The server's `completed` dedup branch returns walletId +
|
|
2847
|
+
* accountAddress + shareSetId — the payload the SSE `ceremony_complete` event
|
|
2848
|
+
* carried — once the worker finishes; until then it echoes only the room and
|
|
2849
|
+
* we keep polling. This stands in for the completion signal HTTP mode never
|
|
2850
|
+
* streams. Idempotency makes each poll a safe no-op server-side.
|
|
2851
|
+
*/ async pollHttpCeremonyCompletion({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, businessAccountId, idempotencyKey, traceContext }) {
|
|
2852
|
+
const POLL_INTERVAL_MS = 1000;
|
|
2853
|
+
const POLL_TIMEOUT_MS = 30000;
|
|
2854
|
+
const deadline = Date.now() + POLL_TIMEOUT_MS;
|
|
2855
|
+
while(Date.now() < deadline){
|
|
2856
|
+
try {
|
|
2857
|
+
const data = await this.apiClient.requestWalletCreationJson({
|
|
2795
2858
|
chainName,
|
|
2859
|
+
clientKeygenIds,
|
|
2796
2860
|
dynamicRequestId,
|
|
2797
|
-
|
|
2798
|
-
|
|
2799
|
-
|
|
2861
|
+
thresholdSignatureScheme,
|
|
2862
|
+
bitcoinConfig,
|
|
2863
|
+
businessAccountId,
|
|
2864
|
+
idempotencyKey,
|
|
2865
|
+
traceContext,
|
|
2866
|
+
timeoutMs: 5000,
|
|
2867
|
+
// Read-only: a poll must never claim a new attempt or enqueue a worker,
|
|
2868
|
+
// otherwise a slow ceremony could be re-driven into a second wallet.
|
|
2869
|
+
poll: true
|
|
2870
|
+
});
|
|
2871
|
+
if (data.walletId && data.accountAddress) {
|
|
2872
|
+
return {
|
|
2873
|
+
accountAddress: data.accountAddress,
|
|
2874
|
+
walletId: data.walletId,
|
|
2875
|
+
shareSetId: data.shareSetId
|
|
2876
|
+
};
|
|
2877
|
+
}
|
|
2878
|
+
} catch (error) {
|
|
2879
|
+
var _error_response;
|
|
2880
|
+
var _error_response_status;
|
|
2881
|
+
// Non-transient failures (4xx) won't resolve on retry — surface
|
|
2882
|
+
// immediately so the caller gets an actionable error instead of a
|
|
2883
|
+
// generic timeout after 30 s of pointless polling.
|
|
2884
|
+
const status = (_error_response_status = error == null ? void 0 : (_error_response = error.response) == null ? void 0 : _error_response.status) != null ? _error_response_status : error == null ? void 0 : error.status;
|
|
2885
|
+
if (status !== undefined && status >= 400 && status < 500 && status !== 429) {
|
|
2886
|
+
throw error;
|
|
2887
|
+
}
|
|
2888
|
+
// Transient failures (502, timeout) should not abort the entire keygen —
|
|
2889
|
+
// just retry the cheap poll until the deadline.
|
|
2890
|
+
this.logger.debug('[pollHttpCeremonyCompletion] transient poll error, retrying', {
|
|
2891
|
+
error: error.message,
|
|
2892
|
+
dynamicRequestId,
|
|
2893
|
+
chainName
|
|
2894
|
+
});
|
|
2800
2895
|
}
|
|
2801
|
-
|
|
2802
|
-
|
|
2803
|
-
|
|
2896
|
+
await new Promise((resolve)=>setTimeout(resolve, POLL_INTERVAL_MS));
|
|
2897
|
+
}
|
|
2898
|
+
throw new Error('Timed out waiting for wallet creation ceremony to complete');
|
|
2804
2899
|
}
|
|
2805
2900
|
async clientInitializeKeyGen({ chainName, thresholdSignatureScheme, bitcoinConfig }) {
|
|
2806
2901
|
// Get the mpc signer
|
|
@@ -3022,6 +3117,10 @@ class DynamicWalletClient {
|
|
|
3022
3117
|
}
|
|
3023
3118
|
async runKeyGenAttempt({ chainName, thresholdSignatureScheme, bitcoinConfig, businessAccountId, onCeremonyComplete, traceContext, password, signedSessionId }) {
|
|
3024
3119
|
const dynamicRequestId = v4();
|
|
3120
|
+
// Fresh per attempt so each retry gets a new server room with matching
|
|
3121
|
+
// clientKeygenIds. A stale key would return the cached (tainted) room
|
|
3122
|
+
// from a previous attempt whose clientKeygenIds no longer match.
|
|
3123
|
+
const idempotencyKey = v4();
|
|
3025
3124
|
try {
|
|
3026
3125
|
this.assertPasswordRequired(password);
|
|
3027
3126
|
await this.validatePasswordConsistencyForNewWallet({
|
|
@@ -3051,6 +3150,8 @@ class DynamicWalletClient {
|
|
|
3051
3150
|
thresholdSignatureScheme,
|
|
3052
3151
|
bitcoinConfig,
|
|
3053
3152
|
businessAccountId,
|
|
3153
|
+
idempotencyKey,
|
|
3154
|
+
traceContext,
|
|
3054
3155
|
onCeremonyComplete
|
|
3055
3156
|
});
|
|
3056
3157
|
this.logger.info('[DynamicWaasWalletClient] Server key generation initialized', _extends({
|
|
@@ -3066,6 +3167,7 @@ class DynamicWalletClient {
|
|
|
3066
3167
|
approxSseTransitMs: Date.now() - emittedAtMs
|
|
3067
3168
|
} : {}, this.getTraceContext(traceContext)));
|
|
3068
3169
|
const clientKeyGenStartedAt = Date.now();
|
|
3170
|
+
let refreshRoomInvoked = false;
|
|
3069
3171
|
const { rawPublicKey, clientKeygenResults: clientKeyShares, operationSource } = await this.clientKeyGen({
|
|
3070
3172
|
chainName,
|
|
3071
3173
|
roomId,
|
|
@@ -3076,16 +3178,22 @@ class DynamicWalletClient {
|
|
|
3076
3178
|
dynamicRequestId,
|
|
3077
3179
|
traceContext,
|
|
3078
3180
|
// On forward-MPC fallback, re-init the server keygen so a brand-new
|
|
3079
|
-
// server-joined room is created for the relay ceremony.
|
|
3080
|
-
|
|
3181
|
+
// server-joined room is created for the relay ceremony. Omit
|
|
3182
|
+
// idempotencyKey so the server creates a fresh room instead of
|
|
3183
|
+
// returning the cached (tainted) one from the initial attempt.
|
|
3184
|
+
refreshRoom: ()=>{
|
|
3185
|
+
refreshRoomInvoked = true;
|
|
3186
|
+
return this.serverInitializeKeyGen({
|
|
3081
3187
|
chainName,
|
|
3082
3188
|
clientKeygenIds,
|
|
3083
3189
|
dynamicRequestId,
|
|
3084
3190
|
thresholdSignatureScheme,
|
|
3085
3191
|
bitcoinConfig,
|
|
3086
3192
|
businessAccountId,
|
|
3193
|
+
traceContext,
|
|
3087
3194
|
onCeremonyComplete
|
|
3088
|
-
})
|
|
3195
|
+
});
|
|
3196
|
+
}
|
|
3089
3197
|
});
|
|
3090
3198
|
this.logger.info('[DynamicWaasWalletClient] Client key generation completed', _extends({
|
|
3091
3199
|
roomId,
|
|
@@ -3101,6 +3209,24 @@ class DynamicWalletClient {
|
|
|
3101
3209
|
dynamicRequestId,
|
|
3102
3210
|
durationMs: Date.now() - clientKeyGenStartedAt
|
|
3103
3211
|
}, this.getTraceContext(traceContext)));
|
|
3212
|
+
// HTTP transport doesn't stream `ceremony_complete`, so poll `/create`
|
|
3213
|
+
// (same idempotency key) after the relay keygen until the server reports
|
|
3214
|
+
// the wallet, then fire onCeremonyComplete manually.
|
|
3215
|
+
// Skip when refreshRoom was invoked: the SSE fallback already delivered
|
|
3216
|
+
// onCeremonyComplete via the event stream.
|
|
3217
|
+
if (this.featureFlags[FEATURE_FLAGS.ENABLE_HTTP_WAAS_TRANSPORT] === true && idempotencyKey && onCeremonyComplete && !refreshRoomInvoked) {
|
|
3218
|
+
const completion = await this.pollHttpCeremonyCompletion({
|
|
3219
|
+
chainName,
|
|
3220
|
+
clientKeygenIds,
|
|
3221
|
+
dynamicRequestId,
|
|
3222
|
+
thresholdSignatureScheme,
|
|
3223
|
+
bitcoinConfig,
|
|
3224
|
+
businessAccountId,
|
|
3225
|
+
idempotencyKey,
|
|
3226
|
+
traceContext
|
|
3227
|
+
});
|
|
3228
|
+
onCeremonyComplete(completion.accountAddress, completion.walletId, completion.shareSetId);
|
|
3229
|
+
}
|
|
3104
3230
|
return {
|
|
3105
3231
|
rawPublicKey,
|
|
3106
3232
|
clientKeyShares
|
|
@@ -6110,7 +6236,8 @@ class DynamicWalletClient {
|
|
|
6110
6236
|
// Step 2: Activate server shares. No refresh path here: this endpoint doesn't use
|
|
6111
6237
|
// the signed session, and its 400 is a server-side share-state mismatch a retry
|
|
6112
6238
|
// won't fix.
|
|
6113
|
-
const backupData = await retryPromise(()=>
|
|
6239
|
+
const backupData = await retryPromise(async ()=>{
|
|
6240
|
+
const result = await this.apiClient.markKeySharesAsBackedUp({
|
|
6114
6241
|
walletId: walletData.walletId,
|
|
6115
6242
|
// Same routing rule as publishDelegatedShare above: when this
|
|
6116
6243
|
// ceremony minted a separate `delegated` share set, the atomic
|
|
@@ -6120,9 +6247,24 @@ class DynamicWalletClient {
|
|
|
6120
6247
|
dynamicRequestId,
|
|
6121
6248
|
passwordUpdateBatchId,
|
|
6122
6249
|
businessAccountId
|
|
6123
|
-
})
|
|
6250
|
+
});
|
|
6251
|
+
// HTTP-transport activates the wallet asynchronously; walletActive
|
|
6252
|
+
// can briefly lag. Throw so retryPromise re-polls before surfacing.
|
|
6253
|
+
// Guard on `=== false` (not `!== true`) because refresh/reshare/
|
|
6254
|
+
// password-update flows return undefined for walletActive and must
|
|
6255
|
+
// pass through without spurious retries. DYNT-816
|
|
6256
|
+
if (this.featureFlags[FEATURE_FLAGS.ENABLE_HTTP_WAAS_TRANSPORT] === true && result.walletActive === false) {
|
|
6257
|
+
throw new WalletNotActiveError(walletData.walletId);
|
|
6258
|
+
}
|
|
6259
|
+
return result;
|
|
6260
|
+
}, {
|
|
6124
6261
|
operationName: BACKUP_OPERATION.MarkBackedUp,
|
|
6262
|
+
retryInterval: 250,
|
|
6125
6263
|
shouldRetry: (error)=>{
|
|
6264
|
+
// Transient HTTP-transport activation lag — re-poll the backup.
|
|
6265
|
+
if (error instanceof WalletNotActiveError) {
|
|
6266
|
+
return true;
|
|
6267
|
+
}
|
|
6126
6268
|
const status = getHttpStatus(error);
|
|
6127
6269
|
// 429 (rate limit) is the textbook back-off-and-retry status.
|
|
6128
6270
|
return status === undefined || status === 429 || status >= 500;
|
|
@@ -6928,7 +7070,8 @@ class DynamicWalletClient {
|
|
|
6928
7070
|
/**
|
|
6929
7071
|
* Internal helper method that handles the complete flow for ensuring wallet key shares are backed up to a cloud provider.
|
|
6930
7072
|
* - For 2-of-2 wallets: Automatically reshares to 2-of-3 threshold, then distributes shares (1 to backend, 1 to cloud)
|
|
6931
|
-
* - For 2-of-3 wallets:
|
|
7073
|
+
* - For non-delegated 2-of-3 wallets: same-scheme reshare to mint a fresh recovery share
|
|
7074
|
+
* - For delegated 2-of-3 (and other) wallets: storeEncryptedBackupByWallet backs up to backend and cloud
|
|
6932
7075
|
*/ async backupKeySharesToCloudProvider({ accountAddress, password, signedSessionId, sessionPublicKey, backupLocation, googleDriveAccessToken, googleDriveTokenSource }) {
|
|
6933
7076
|
try {
|
|
6934
7077
|
await this.getWallet({
|
|
@@ -6955,6 +7098,16 @@ class DynamicWalletClient {
|
|
|
6955
7098
|
googleDriveAccessToken,
|
|
6956
7099
|
googleDriveTokenSource
|
|
6957
7100
|
});
|
|
7101
|
+
} else if (currentThresholdSignatureScheme === ThresholdSignatureScheme.TWO_OF_THREE && !hasDelegatedBackup(walletData.clientKeySharesBackupInfo, walletData.otherShareSets)) {
|
|
7102
|
+
await this.reshareNonDelegatedTwoOfThree({
|
|
7103
|
+
accountAddress,
|
|
7104
|
+
backupLocation,
|
|
7105
|
+
password,
|
|
7106
|
+
signedSessionId,
|
|
7107
|
+
sessionPublicKey,
|
|
7108
|
+
googleDriveAccessToken,
|
|
7109
|
+
googleDriveTokenSource
|
|
7110
|
+
});
|
|
6958
7111
|
} else {
|
|
6959
7112
|
await this.storeEncryptedBackupByWallet({
|
|
6960
7113
|
accountAddress,
|
|
@@ -6981,6 +7134,105 @@ class DynamicWalletClient {
|
|
|
6981
7134
|
}
|
|
6982
7135
|
}
|
|
6983
7136
|
/**
|
|
7137
|
+
* Self-heal a non-delegated 2-of-3 wallet's cloud backup via a same-scheme
|
|
7138
|
+
* reshare that mints a fresh recovery share. The fresh share is redistributed to
|
|
7139
|
+
* every provider already holding a backup plus the requested one,
|
|
7140
|
+
* restricted to providers the reshare can deliver to.
|
|
7141
|
+
*/ async reshareNonDelegatedTwoOfThree({ accountAddress, backupLocation, password, signedSessionId, sessionPublicKey, googleDriveAccessToken, googleDriveTokenSource }) {
|
|
7142
|
+
const walletData = this.getWalletFromMap(accountAddress);
|
|
7143
|
+
const cloudProviders = new Set([
|
|
7144
|
+
...getActiveCloudProviders(walletData.clientKeySharesBackupInfo).filter((provider)=>provider === BackupLocation.GOOGLE_DRIVE || provider === BackupLocation.ICLOUD),
|
|
7145
|
+
backupLocation
|
|
7146
|
+
]);
|
|
7147
|
+
await this.validateICloudForReshare({
|
|
7148
|
+
accountAddress,
|
|
7149
|
+
backupLocation,
|
|
7150
|
+
cloudProviders
|
|
7151
|
+
});
|
|
7152
|
+
const resolvedDrive = await this.resolveGoogleDriveTokenForReshare({
|
|
7153
|
+
accountAddress,
|
|
7154
|
+
backupLocation,
|
|
7155
|
+
cloudProviders,
|
|
7156
|
+
googleDriveAccessToken,
|
|
7157
|
+
googleDriveTokenSource
|
|
7158
|
+
});
|
|
7159
|
+
this.logger.info('[DynamicWaasWalletClient] Non-delegated 2-of-3 re-backup: same-scheme reshare to mint a fresh recovery share', {
|
|
7160
|
+
accountAddress,
|
|
7161
|
+
environmentId: this.environmentId,
|
|
7162
|
+
userId: this.userId,
|
|
7163
|
+
backupLocation,
|
|
7164
|
+
cloudProviders: Array.from(cloudProviders)
|
|
7165
|
+
});
|
|
7166
|
+
await this.reshare({
|
|
7167
|
+
chainName: walletData.chainName,
|
|
7168
|
+
accountAddress,
|
|
7169
|
+
oldThresholdSignatureScheme: walletData.thresholdSignatureScheme,
|
|
7170
|
+
newThresholdSignatureScheme: walletData.thresholdSignatureScheme,
|
|
7171
|
+
password,
|
|
7172
|
+
signedSessionId,
|
|
7173
|
+
sessionPublicKey,
|
|
7174
|
+
cloudProviders: Array.from(cloudProviders),
|
|
7175
|
+
googleDriveAccessToken: resolvedDrive.googleDriveAccessToken,
|
|
7176
|
+
googleDriveTokenSource: resolvedDrive.googleDriveTokenSource
|
|
7177
|
+
});
|
|
7178
|
+
}
|
|
7179
|
+
/**
|
|
7180
|
+
* Validate iCloud for reshare: drop it from the provider set if CloudKit
|
|
7181
|
+
* isn't authenticated. Only applies when iCloud arrived via the union (not
|
|
7182
|
+
* the explicit request). A mid-ceremony upload failure wipes local shares,
|
|
7183
|
+
* so the check must happen before the share set is retired.
|
|
7184
|
+
*/ async validateICloudForReshare({ accountAddress, backupLocation, cloudProviders }) {
|
|
7185
|
+
if (!cloudProviders.has(BackupLocation.ICLOUD) || backupLocation === BackupLocation.ICLOUD) {
|
|
7186
|
+
return;
|
|
7187
|
+
}
|
|
7188
|
+
const iCloudReady = await isICloudAuthenticated();
|
|
7189
|
+
if (!iCloudReady) {
|
|
7190
|
+
this.logger.warn('[DynamicWaasWalletClient] Reshare skipping iCloud redistribution: CloudKit not authenticated', {
|
|
7191
|
+
accountAddress,
|
|
7192
|
+
environmentId: this.environmentId,
|
|
7193
|
+
userId: this.userId,
|
|
7194
|
+
backupLocation
|
|
7195
|
+
});
|
|
7196
|
+
cloudProviders.delete(BackupLocation.ICLOUD);
|
|
7197
|
+
}
|
|
7198
|
+
}
|
|
7199
|
+
/**
|
|
7200
|
+
* Validate Google Drive for reshare: resolve and probe the access token, then
|
|
7201
|
+
* drop Drive from the provider set if no usable token exists. A mid-ceremony
|
|
7202
|
+
* upload failure wipes local shares, so the check must happen before the
|
|
7203
|
+
* share set is retired.
|
|
7204
|
+
*/ async resolveGoogleDriveTokenForReshare({ accountAddress, backupLocation, cloudProviders, googleDriveAccessToken, googleDriveTokenSource }) {
|
|
7205
|
+
if (!cloudProviders.has(BackupLocation.GOOGLE_DRIVE) || googleDriveAccessToken !== undefined) {
|
|
7206
|
+
return {
|
|
7207
|
+
googleDriveAccessToken,
|
|
7208
|
+
googleDriveTokenSource
|
|
7209
|
+
};
|
|
7210
|
+
}
|
|
7211
|
+
try {
|
|
7212
|
+
const token = await this.fetchGoogleDriveAccessToken(accountAddress);
|
|
7213
|
+
const { blocking } = await runGoogleDriveBackupPreflight(token);
|
|
7214
|
+
if (blocking) {
|
|
7215
|
+
throw new Error(blocking.message);
|
|
7216
|
+
}
|
|
7217
|
+
return {
|
|
7218
|
+
googleDriveAccessToken: token,
|
|
7219
|
+
googleDriveTokenSource: 'stored_oauth'
|
|
7220
|
+
};
|
|
7221
|
+
} catch (e) {
|
|
7222
|
+
this.logger.warn('[DynamicWaasWalletClient] Reshare skipping Google Drive redistribution: no usable Drive token', {
|
|
7223
|
+
accountAddress,
|
|
7224
|
+
environmentId: this.environmentId,
|
|
7225
|
+
userId: this.userId,
|
|
7226
|
+
backupLocation
|
|
7227
|
+
});
|
|
7228
|
+
cloudProviders.delete(BackupLocation.GOOGLE_DRIVE);
|
|
7229
|
+
return {
|
|
7230
|
+
googleDriveAccessToken: undefined,
|
|
7231
|
+
googleDriveTokenSource: undefined
|
|
7232
|
+
};
|
|
7233
|
+
}
|
|
7234
|
+
}
|
|
7235
|
+
/**
|
|
6984
7236
|
* This method handles the complete flow for ensuring wallet key shares are backed up to Google Drive:
|
|
6985
7237
|
* - For 2-of-2 wallets: Automatically reshares to 2-of-3 threshold, then distributes shares (1 to backend, 1 to Google Drive)
|
|
6986
7238
|
* - For 2-of-3 wallets: Call storeEncryptedBackupByWallet to backup for backend and Google Drive
|
|
@@ -7006,13 +7258,7 @@ class DynamicWalletClient {
|
|
|
7006
7258
|
googleDriveAccessToken
|
|
7007
7259
|
})
|
|
7008
7260
|
]);
|
|
7009
|
-
|
|
7010
|
-
// token (matches the other callers). Now that syncBackupServiceAuthToken
|
|
7011
|
-
// runs in HEADER mode too, an unconditional call would throw on an empty
|
|
7012
|
-
// token instead of the previous silent no-op.
|
|
7013
|
-
if (updatedBackupServiceAuthToken) {
|
|
7014
|
-
this.apiClient.syncBackupServiceAuthToken(updatedBackupServiceAuthToken);
|
|
7015
|
-
}
|
|
7261
|
+
this.apiClient.syncBackupServiceAuthToken(updatedBackupServiceAuthToken);
|
|
7016
7262
|
await this.backupKeySharesToCloudProvider({
|
|
7017
7263
|
accountAddress,
|
|
7018
7264
|
password,
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs-wallet/browser",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.48",
|
|
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": "1.0.
|
|
7
|
+
"@dynamic-labs-wallet/core": "1.0.48",
|
|
8
8
|
"@dynamic-labs-wallet/forward-mpc-client": "0.12.0",
|
|
9
|
-
"@dynamic-labs-wallet/primitives": "1.0.
|
|
9
|
+
"@dynamic-labs-wallet/primitives": "1.0.48",
|
|
10
10
|
"@dynamic-labs/sdk-api-core": "^0.0.984",
|
|
11
11
|
"argon2id": "1.0.1",
|
|
12
12
|
"axios": "1.16.0",
|
|
@@ -11,7 +11,7 @@ export type PasswordOperation = 'setPassword' | 'updatePassword' | 'unlockWallet
|
|
|
11
11
|
* Mirrors the convention established by GoogleDriveBackupErrorReason
|
|
12
12
|
* (backup/providers/googleDrive.ts) — see PR #958.
|
|
13
13
|
*/
|
|
14
|
-
export type PasswordBackupErrorReason = 'wrong_password' | 'stale_local_shares' | 'encryption_failure' | 'decryption_failure' | 'upload_failure' | 'activation_failure' | 'network' | 'unknown';
|
|
14
|
+
export type PasswordBackupErrorReason = 'wrong_password' | 'stale_local_shares' | 'encryption_failure' | 'decryption_failure' | 'upload_failure' | 'activation_failure' | 'already_encrypted' | 'network' | 'unknown';
|
|
15
15
|
/**
|
|
16
16
|
* Failures classified as user-actionable are caused by end-user input or
|
|
17
17
|
* local state and are not actionable by oncall. They are emitted at log
|
|
@@ -30,6 +30,7 @@ export declare const USER_ACTIONABLE_PASSWORD_BACKUP_ERROR_REASONS: {
|
|
|
30
30
|
readonly decryption_failure: false;
|
|
31
31
|
readonly upload_failure: false;
|
|
32
32
|
readonly activation_failure: false;
|
|
33
|
+
readonly already_encrypted: true;
|
|
33
34
|
readonly network: false;
|
|
34
35
|
readonly unknown: false;
|
|
35
36
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/backup/password/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/backup/password/errors.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,gBAAgB,GAAG,cAAc,CAAC;AAElF;;;;;;;GAOG;AACH,MAAM,MAAM,yBAAyB,GACjC,gBAAgB,GAChB,oBAAoB,GACpB,oBAAoB,GACpB,oBAAoB,GACpB,gBAAgB,GAChB,oBAAoB,GACpB,mBAAmB,GACnB,SAAS,GACT,SAAS,CAAC;AAEd;;;;;;;;;;GAUG;AACH,eAAO,MAAM,6CAA6C;;;;;;;;;;CAUK,CAAC;AAEhE,eAAO,MAAM,yCAAyC,WAAY,yBAAyB,KAAG,OACvC,CAAC;AAmGxD;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,UAAW,OAAO,KAAG,yBAM5D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,iBAiCA,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
|
@@ -153,16 +153,28 @@ export declare class DynamicWalletClient {
|
|
|
153
153
|
* Client initialization logic
|
|
154
154
|
*/
|
|
155
155
|
protected _initialize(traceContext?: TraceContext): Promise<InitializeResult>;
|
|
156
|
-
serverInitializeKeyGen({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, businessAccountId, onError, onCeremonyComplete, }: {
|
|
156
|
+
serverInitializeKeyGen({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, businessAccountId, idempotencyKey, traceContext, onError, onCeremonyComplete, }: {
|
|
157
157
|
chainName: string;
|
|
158
158
|
clientKeygenIds: string[];
|
|
159
159
|
dynamicRequestId: string;
|
|
160
160
|
thresholdSignatureScheme: ThresholdSignatureScheme;
|
|
161
161
|
bitcoinConfig?: BitcoinConfig;
|
|
162
162
|
businessAccountId?: string;
|
|
163
|
+
idempotencyKey?: string;
|
|
164
|
+
traceContext?: TraceContext;
|
|
163
165
|
onError?: (error: Error) => void;
|
|
164
166
|
onCeremonyComplete?: (accountAddress: string, walletId: string, shareSetId?: string) => void;
|
|
165
167
|
}): Promise<import("@dynamic-labs-wallet/core").KeygenCompleteResponse>;
|
|
168
|
+
/**
|
|
169
|
+
* HTTP transport only. After the relay keygen, re-issue the JSON `/create`
|
|
170
|
+
* request (same idempotency key) until the async server ceremony reports the
|
|
171
|
+
* wallet. The server's `completed` dedup branch returns walletId +
|
|
172
|
+
* accountAddress + shareSetId — the payload the SSE `ceremony_complete` event
|
|
173
|
+
* carried — once the worker finishes; until then it echoes only the room and
|
|
174
|
+
* we keep polling. This stands in for the completion signal HTTP mode never
|
|
175
|
+
* streams. Idempotency makes each poll a safe no-op server-side.
|
|
176
|
+
*/
|
|
177
|
+
private pollHttpCeremonyCompletion;
|
|
166
178
|
clientInitializeKeyGen({ chainName, thresholdSignatureScheme, bitcoinConfig, }: {
|
|
167
179
|
chainName: string;
|
|
168
180
|
thresholdSignatureScheme: ThresholdSignatureScheme;
|
|
@@ -234,7 +246,7 @@ export declare class DynamicWalletClient {
|
|
|
234
246
|
bitcoinConfig?: BitcoinConfig;
|
|
235
247
|
businessAccountId?: string;
|
|
236
248
|
onError?: (error: Error) => void;
|
|
237
|
-
onCeremonyComplete?: (accountAddress: string, walletId: string) => void;
|
|
249
|
+
onCeremonyComplete?: (accountAddress: string, walletId: string, shareSetId?: string) => void;
|
|
238
250
|
traceContext?: TraceContext;
|
|
239
251
|
password?: string;
|
|
240
252
|
signedSessionId: string;
|
|
@@ -599,6 +611,7 @@ export declare class DynamicWalletClient {
|
|
|
599
611
|
}): Promise<{
|
|
600
612
|
message: string;
|
|
601
613
|
walletId: string;
|
|
614
|
+
walletActive?: boolean;
|
|
602
615
|
passwordUpdateStatus?: "pending" | "activated";
|
|
603
616
|
locationsWithKeyShares: {
|
|
604
617
|
location: BackupLocation;
|
|
@@ -658,6 +671,7 @@ export declare class DynamicWalletClient {
|
|
|
658
671
|
keygenIds: string[];
|
|
659
672
|
message: string;
|
|
660
673
|
walletId: string;
|
|
674
|
+
walletActive?: boolean;
|
|
661
675
|
passwordUpdateStatus?: "pending" | "activated";
|
|
662
676
|
locationsWithKeyShares: {
|
|
663
677
|
location: BackupLocation;
|
|
@@ -770,9 +784,31 @@ export declare class DynamicWalletClient {
|
|
|
770
784
|
/**
|
|
771
785
|
* Internal helper method that handles the complete flow for ensuring wallet key shares are backed up to a cloud provider.
|
|
772
786
|
* - For 2-of-2 wallets: Automatically reshares to 2-of-3 threshold, then distributes shares (1 to backend, 1 to cloud)
|
|
773
|
-
* - For 2-of-3 wallets:
|
|
787
|
+
* - For non-delegated 2-of-3 wallets: same-scheme reshare to mint a fresh recovery share
|
|
788
|
+
* - For delegated 2-of-3 (and other) wallets: storeEncryptedBackupByWallet backs up to backend and cloud
|
|
774
789
|
*/
|
|
775
790
|
private backupKeySharesToCloudProvider;
|
|
791
|
+
/**
|
|
792
|
+
* Self-heal a non-delegated 2-of-3 wallet's cloud backup via a same-scheme
|
|
793
|
+
* reshare that mints a fresh recovery share. The fresh share is redistributed to
|
|
794
|
+
* every provider already holding a backup plus the requested one,
|
|
795
|
+
* restricted to providers the reshare can deliver to.
|
|
796
|
+
*/
|
|
797
|
+
private reshareNonDelegatedTwoOfThree;
|
|
798
|
+
/**
|
|
799
|
+
* Validate iCloud for reshare: drop it from the provider set if CloudKit
|
|
800
|
+
* isn't authenticated. Only applies when iCloud arrived via the union (not
|
|
801
|
+
* the explicit request). A mid-ceremony upload failure wipes local shares,
|
|
802
|
+
* so the check must happen before the share set is retired.
|
|
803
|
+
*/
|
|
804
|
+
private validateICloudForReshare;
|
|
805
|
+
/**
|
|
806
|
+
* Validate Google Drive for reshare: resolve and probe the access token, then
|
|
807
|
+
* drop Drive from the provider set if no usable token exists. A mid-ceremony
|
|
808
|
+
* upload failure wipes local shares, so the check must happen before the
|
|
809
|
+
* share set is retired.
|
|
810
|
+
*/
|
|
811
|
+
private resolveGoogleDriveTokenForReshare;
|
|
776
812
|
/**
|
|
777
813
|
* This method handles the complete flow for ensuring wallet key shares are backed up to Google Drive:
|
|
778
814
|
* - For 2-of-2 wallets: Automatically reshares to 2-of-3 threshold, then distributes shares (1 to backend, 1 to Google Drive)
|
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/errors.d.ts
CHANGED
|
@@ -11,6 +11,10 @@ export declare class EnvironmentIdMismatchError extends Error {
|
|
|
11
11
|
actual: string;
|
|
12
12
|
});
|
|
13
13
|
}
|
|
14
|
+
export declare class WalletNotActiveError extends Error {
|
|
15
|
+
readonly walletId: string;
|
|
16
|
+
constructor(walletId: string);
|
|
17
|
+
}
|
|
14
18
|
export declare class EncryptionSelfTestFailedError extends Error {
|
|
15
19
|
readonly walletId: string | undefined;
|
|
16
20
|
readonly accountAddress: string;
|
package/src/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../packages/src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAE1C,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,SAAgB,aAAa,EAAE,MAAM,CAAC;gBAE1B,aAAa,EAAE,MAAM;CAKlC;AAED,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEnB,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAMvD;AAED,qBAAa,6BAA8B,SAAQ,KAAK;IACtD,SAAgB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,SAAgB,cAAc,EAAE,MAAM,CAAC;gBAE3B,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAS5F"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../packages/src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAE1C,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,SAAgB,aAAa,EAAE,MAAM,CAAC;gBAE1B,aAAa,EAAE,MAAM;CAKlC;AAED,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEnB,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAMvD;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,SAAgB,QAAQ,EAAE,MAAM,CAAC;gBAErB,QAAQ,EAAE,MAAM;CAK7B;AAED,qBAAa,6BAA8B,SAAQ,KAAK;IACtD,SAAgB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,SAAgB,cAAc,EAAE,MAAM,CAAC;gBAE3B,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAS5F"}
|