@dynamic-labs-wallet/browser 1.0.31 → 1.0.33
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 +126 -19
- package/index.esm.js +126 -19
- package/package.json +3 -3
- package/src/backup/encryption/constants.d.ts +1 -1
- package/src/client.d.ts +33 -5
- package/src/client.d.ts.map +1 -1
package/index.cjs
CHANGED
|
@@ -81,7 +81,7 @@ const getMPCSigner = ({ chainName, baseRelayUrl, bitcoinConfig })=>{
|
|
|
81
81
|
}({});
|
|
82
82
|
/**
|
|
83
83
|
* Current default version for new encryptions
|
|
84
|
-
*/ const
|
|
84
|
+
*/ const DEFAULT_ENCRYPTION_VERSION = "v2";
|
|
85
85
|
/**
|
|
86
86
|
* Algorithm constants
|
|
87
87
|
*/ const PBKDF2_ALGORITHM = 'PBKDF2';
|
|
@@ -332,7 +332,7 @@ const KEY_SHARE_DECRYPTION_ERROR = 'Decryption failed.';
|
|
|
332
332
|
/**
|
|
333
333
|
* Encrypts data using the specified encryption version.
|
|
334
334
|
* Always uses the latest encryption configuration for new encryptions by default.
|
|
335
|
-
*/ const encryptData = async ({ data, password, version =
|
|
335
|
+
*/ const encryptData = async ({ data, password, version = DEFAULT_ENCRYPTION_VERSION, onRawKey })=>{
|
|
336
336
|
const encryptionConfig = getEncryptionConfig(version);
|
|
337
337
|
try {
|
|
338
338
|
// Generate a random salt and IV
|
|
@@ -1291,8 +1291,8 @@ const createBackupData = ({ encryptedKeyShares, accountAddress, thresholdSignatu
|
|
|
1291
1291
|
accountAddress,
|
|
1292
1292
|
thresholdSignatureScheme,
|
|
1293
1293
|
hasPassword,
|
|
1294
|
-
encryption: getEncryptionMetadataForVersion(
|
|
1295
|
-
encryptionVersion:
|
|
1294
|
+
encryption: getEncryptionMetadataForVersion(DEFAULT_ENCRYPTION_VERSION),
|
|
1295
|
+
encryptionVersion: DEFAULT_ENCRYPTION_VERSION,
|
|
1296
1296
|
shareCount: encryptedKeyShares.length
|
|
1297
1297
|
}
|
|
1298
1298
|
};
|
|
@@ -4097,7 +4097,7 @@ class DynamicWalletClient {
|
|
|
4097
4097
|
encrypted
|
|
4098
4098
|
],
|
|
4099
4099
|
passwordEncrypted: false,
|
|
4100
|
-
encryptionVersion:
|
|
4100
|
+
encryptionVersion: DEFAULT_ENCRYPTION_VERSION,
|
|
4101
4101
|
clientKeyshareBackupGrant,
|
|
4102
4102
|
signedSessionId: resolvedSignedSessionId,
|
|
4103
4103
|
dynamicRequestId
|
|
@@ -5301,12 +5301,13 @@ class DynamicWalletClient {
|
|
|
5301
5301
|
throw error;
|
|
5302
5302
|
}
|
|
5303
5303
|
}
|
|
5304
|
-
async encryptKeyShare({ keyShare, password, onRawKey }) {
|
|
5304
|
+
async encryptKeyShare({ keyShare, password, onRawKey, version }) {
|
|
5305
5305
|
const serializedKeyShare = JSON.stringify(keyShare);
|
|
5306
5306
|
const encryptedKeyShare = await encryptData({
|
|
5307
5307
|
data: serializedKeyShare,
|
|
5308
5308
|
password: password != null ? password : this.environmentId,
|
|
5309
|
-
onRawKey
|
|
5309
|
+
onRawKey,
|
|
5310
|
+
version
|
|
5310
5311
|
});
|
|
5311
5312
|
this.logPasswordSharePresence(password, 'encrypt');
|
|
5312
5313
|
// stringify the encrypted key share, convert to base64, and store it
|
|
@@ -5489,18 +5490,19 @@ class DynamicWalletClient {
|
|
|
5489
5490
|
}
|
|
5490
5491
|
return shares;
|
|
5491
5492
|
}
|
|
5492
|
-
async backupToDynamicBackend({ walletId, clientShares, password, signedSessionId, dynamicRequestId, chainName, bitcoinConfig, isPasswordEncrypted, accountAddress, preEncryptedShares, passwordUpdateBatchId }) {
|
|
5493
|
+
async backupToDynamicBackend({ walletId, clientShares, password, signedSessionId, dynamicRequestId, chainName, bitcoinConfig, isPasswordEncrypted, accountAddress, preEncryptedShares, passwordUpdateBatchId, encryptionVersion = DEFAULT_ENCRYPTION_VERSION }) {
|
|
5493
5494
|
var _this_getWalletFromMap;
|
|
5494
5495
|
const encryptedDynamicShares = preEncryptedShares != null ? preEncryptedShares : await Promise.all(clientShares.map((keyShare)=>this.encryptKeyShare({
|
|
5495
5496
|
keyShare,
|
|
5496
|
-
password
|
|
5497
|
+
password,
|
|
5498
|
+
version: encryptionVersion
|
|
5497
5499
|
})));
|
|
5498
5500
|
const data = await this.apiClient.storeEncryptedBackupByWallet({
|
|
5499
5501
|
walletId,
|
|
5500
5502
|
shareSetId: (_this_getWalletFromMap = this.getWalletFromMap(accountAddress)) == null ? void 0 : _this_getWalletFromMap.shareSetId,
|
|
5501
5503
|
encryptedKeyShares: encryptedDynamicShares,
|
|
5502
5504
|
passwordEncrypted: isPasswordEncrypted,
|
|
5503
|
-
encryptionVersion
|
|
5505
|
+
encryptionVersion,
|
|
5504
5506
|
signedSessionId,
|
|
5505
5507
|
requiresSignedSessionId: this.requiresSignedSessionId(),
|
|
5506
5508
|
dynamicRequestId
|
|
@@ -5580,10 +5582,11 @@ class DynamicWalletClient {
|
|
|
5580
5582
|
]);
|
|
5581
5583
|
}));
|
|
5582
5584
|
}
|
|
5583
|
-
async backupToCloudProvider({ provider, shares, accountAddress, password, chainName, bitcoinConfig, isPasswordEncrypted, preEncryptedShares, googleDriveAccessToken, googleDriveTokenSource }) {
|
|
5585
|
+
async backupToCloudProvider({ provider, shares, accountAddress, password, chainName, bitcoinConfig, isPasswordEncrypted, preEncryptedShares, googleDriveAccessToken, googleDriveTokenSource, encryptionVersion }) {
|
|
5584
5586
|
const encryptedCloudShares = preEncryptedShares != null ? preEncryptedShares : await Promise.all(shares.map((keyShare)=>this.encryptKeyShare({
|
|
5585
5587
|
keyShare,
|
|
5586
|
-
password
|
|
5588
|
+
password,
|
|
5589
|
+
version: encryptionVersion
|
|
5587
5590
|
})));
|
|
5588
5591
|
await this.uploadToCloudProvider({
|
|
5589
5592
|
provider,
|
|
@@ -5649,7 +5652,7 @@ class DynamicWalletClient {
|
|
|
5649
5652
|
}
|
|
5650
5653
|
return location;
|
|
5651
5654
|
}
|
|
5652
|
-
async backupSharesWithDistribution({ accountAddress, password, signedSessionId, distribution, preserveDelegatedLocation = false, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId }) {
|
|
5655
|
+
async backupSharesWithDistribution({ accountAddress, password, signedSessionId, distribution, preserveDelegatedLocation = false, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId, encryptionVersion }) {
|
|
5653
5656
|
const dynamicRequestId = uuid.v4();
|
|
5654
5657
|
// Get wallet data early for logging context (also used in catch block)
|
|
5655
5658
|
const walletData = this.getWalletFromMap(accountAddress);
|
|
@@ -5705,7 +5708,8 @@ class DynamicWalletClient {
|
|
|
5705
5708
|
onRawKey: encryptKeyByBlob ? (key, inputFingerprint)=>derived = {
|
|
5706
5709
|
key,
|
|
5707
5710
|
inputFingerprint
|
|
5708
|
-
} : undefined
|
|
5711
|
+
} : undefined,
|
|
5712
|
+
version: encryptionVersion
|
|
5709
5713
|
});
|
|
5710
5714
|
if (encryptKeyByBlob && derived) encryptKeyByBlob.set(blob, derived);
|
|
5711
5715
|
return blob;
|
|
@@ -5764,7 +5768,8 @@ class DynamicWalletClient {
|
|
|
5764
5768
|
isPasswordEncrypted,
|
|
5765
5769
|
accountAddress,
|
|
5766
5770
|
preEncryptedShares: preEncryptedDynamicShares,
|
|
5767
|
-
passwordUpdateBatchId
|
|
5771
|
+
passwordUpdateBatchId,
|
|
5772
|
+
encryptionVersion
|
|
5768
5773
|
}), {
|
|
5769
5774
|
operationName,
|
|
5770
5775
|
// Refresh a consumed nonce on a 400; otherwise back off and retry
|
|
@@ -5794,7 +5799,8 @@ class DynamicWalletClient {
|
|
|
5794
5799
|
isPasswordEncrypted,
|
|
5795
5800
|
preEncryptedShares: encrypted,
|
|
5796
5801
|
googleDriveAccessToken,
|
|
5797
|
-
googleDriveTokenSource
|
|
5802
|
+
googleDriveTokenSource,
|
|
5803
|
+
encryptionVersion
|
|
5798
5804
|
}));
|
|
5799
5805
|
}
|
|
5800
5806
|
// When this ceremony minted a separate `delegated` share set (FF=on
|
|
@@ -6059,7 +6065,7 @@ class DynamicWalletClient {
|
|
|
6059
6065
|
* @param params.signedSessionId - Optional signed session ID for authentication
|
|
6060
6066
|
* @param params.backupToGoogleDrive - Whether to backup to Google Drive (defaults to false)
|
|
6061
6067
|
* @returns Promise with backup metadata including share locations and IDs
|
|
6062
|
-
*/ async storeEncryptedBackupByWallet({ accountAddress, clientKeyShares = undefined, password = undefined, signedSessionId, cloudProviders = [], delegatedKeyshare = undefined, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId }) {
|
|
6068
|
+
*/ async storeEncryptedBackupByWallet({ accountAddress, clientKeyShares = undefined, password = undefined, signedSessionId, cloudProviders = [], delegatedKeyshare = undefined, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId, encryptionVersion }) {
|
|
6063
6069
|
var _backupData_locationsWithKeyShares, _backupData_locationsWithKeyShares1;
|
|
6064
6070
|
const hasProvidedShares = clientKeyShares !== undefined;
|
|
6065
6071
|
const keySharesToBackup = clientKeyShares != null ? clientKeyShares : await this.getClientKeySharesFromStorage({
|
|
@@ -6134,7 +6140,8 @@ class DynamicWalletClient {
|
|
|
6134
6140
|
passwordUpdateBatchId,
|
|
6135
6141
|
googleDriveAccessToken,
|
|
6136
6142
|
googleDriveTokenSource,
|
|
6137
|
-
businessAccountId
|
|
6143
|
+
businessAccountId,
|
|
6144
|
+
encryptionVersion
|
|
6138
6145
|
});
|
|
6139
6146
|
var _backupData_locationsWithKeyShares_map, _backupData_locationsWithKeyShares_map1;
|
|
6140
6147
|
return _extends({}, backupData, {
|
|
@@ -7684,6 +7691,11 @@ class DynamicWalletClient {
|
|
|
7684
7691
|
})
|
|
7685
7692
|
}
|
|
7686
7693
|
});
|
|
7694
|
+
// One-off Argon2id (v3) re-backup for affected users. Runs after userId is
|
|
7695
|
+
// resolved and the walletMap is freshly populated from the server.
|
|
7696
|
+
// Fire-and-forget: it sets its run-once guard synchronously and never
|
|
7697
|
+
// throws (per-target try/catch), so it must not block the getWallets result.
|
|
7698
|
+
void this.maybeRunArgon2idRebackup(dynamicRequestId);
|
|
7687
7699
|
return wallets;
|
|
7688
7700
|
} catch (error) {
|
|
7689
7701
|
logError({
|
|
@@ -7697,6 +7709,98 @@ class DynamicWalletClient {
|
|
|
7697
7709
|
}
|
|
7698
7710
|
}
|
|
7699
7711
|
/**
|
|
7712
|
+
* One-off re-backup for users whose Argon2id (v3) Dynamic backup can no longer be
|
|
7713
|
+
* decrypted (DYNT-1112). The v3 derived key is only deterministic within a specific
|
|
7714
|
+
* environment/setup; when that environment or its parameters change the derived key
|
|
7715
|
+
* no longer matches and the blob fails to decrypt — even though the local client
|
|
7716
|
+
* shares are still readable. While those local shares are still present we re-upload
|
|
7717
|
+
* them, re-encrypted with v2 (PBKDF2), whose derivation is stable across
|
|
7718
|
+
* environments, overwriting the no-longer-decryptable copy.
|
|
7719
|
+
*
|
|
7720
|
+
* Targets come from the `argon2id-rebackup-targets` LaunchDarkly flag. Idempotency
|
|
7721
|
+
* is keyed on the `externalKeyShareId`: re-backing up produces a new id, so once
|
|
7722
|
+
* the known-bad id is gone the wallet is skipped. The shares are read from local
|
|
7723
|
+
* storage only — this never refetches shares from the server. The backup path runs
|
|
7724
|
+
* its own encryption round-trip self-test before uploading, so a blob that can't be
|
|
7725
|
+
* decrypted is never pushed.
|
|
7726
|
+
*/ async maybeRunArgon2idRebackup(dynamicRequestId) {
|
|
7727
|
+
if (this.argon2idRebackupAttempted || !this.userId) {
|
|
7728
|
+
return;
|
|
7729
|
+
}
|
|
7730
|
+
const targets = this.argon2idRebackupTargets.filter((target)=>target.userId === this.userId);
|
|
7731
|
+
if (targets.length === 0) {
|
|
7732
|
+
return;
|
|
7733
|
+
}
|
|
7734
|
+
// Attempt at most once per instance regardless of outcome; a still-bricked
|
|
7735
|
+
// wallet retries on the next session (its known-bad id is unchanged).
|
|
7736
|
+
this.argon2idRebackupAttempted = true;
|
|
7737
|
+
for (const target of targets){
|
|
7738
|
+
const logContext = {
|
|
7739
|
+
walletId: target.walletId,
|
|
7740
|
+
userId: this.userId,
|
|
7741
|
+
dynamicRequestId
|
|
7742
|
+
};
|
|
7743
|
+
try {
|
|
7744
|
+
var _wallet_clientKeySharesBackupInfo_backups_BackupLocation_DYNAMIC, _wallet_clientKeySharesBackupInfo_backups, _wallet_clientKeySharesBackupInfo;
|
|
7745
|
+
const entry = Object.entries(this.walletMap).find(([, wallet])=>wallet.walletId === target.walletId);
|
|
7746
|
+
if (!entry) {
|
|
7747
|
+
continue;
|
|
7748
|
+
}
|
|
7749
|
+
const [accountAddress, wallet] = entry;
|
|
7750
|
+
// Safety: the rescue re-encrypts with no password (envId path), so never
|
|
7751
|
+
// touch a password-encrypted wallet — that would overwrite a protected
|
|
7752
|
+
// backup with an unprotected one. The v3 bug only affects the envId path,
|
|
7753
|
+
// so this should never be targeted; guard against a misconfigured flag.
|
|
7754
|
+
if (isWalletPasswordEncrypted(wallet)) {
|
|
7755
|
+
this.logger.info('[argon2id-rebackup] skipping; wallet is password-encrypted', {
|
|
7756
|
+
context: logContext
|
|
7757
|
+
});
|
|
7758
|
+
continue;
|
|
7759
|
+
}
|
|
7760
|
+
var _wallet_clientKeySharesBackupInfo_backups_BackupLocation_DYNAMIC_map;
|
|
7761
|
+
// Idempotency: only proceed while the known-bad backup id is still present.
|
|
7762
|
+
const currentDynamicIds = (_wallet_clientKeySharesBackupInfo_backups_BackupLocation_DYNAMIC_map = (_wallet_clientKeySharesBackupInfo = wallet.clientKeySharesBackupInfo) == null ? void 0 : (_wallet_clientKeySharesBackupInfo_backups = _wallet_clientKeySharesBackupInfo.backups) == null ? void 0 : (_wallet_clientKeySharesBackupInfo_backups_BackupLocation_DYNAMIC = _wallet_clientKeySharesBackupInfo_backups[core.BackupLocation.DYNAMIC]) == null ? void 0 : _wallet_clientKeySharesBackupInfo_backups_BackupLocation_DYNAMIC.map((ks)=>ks.externalKeyShareId)) != null ? _wallet_clientKeySharesBackupInfo_backups_BackupLocation_DYNAMIC_map : [];
|
|
7763
|
+
if (!currentDynamicIds.includes(target.externalKeyShareId)) {
|
|
7764
|
+
this.logger.info('[argon2id-rebackup] skipping; backup id already rotated', {
|
|
7765
|
+
context: logContext
|
|
7766
|
+
});
|
|
7767
|
+
continue;
|
|
7768
|
+
}
|
|
7769
|
+
// Reuse local shares only — never refetch from the server.
|
|
7770
|
+
const clientKeyShares = await this.getClientKeySharesFromStorage({
|
|
7771
|
+
accountAddress
|
|
7772
|
+
});
|
|
7773
|
+
if (!clientKeyShares || clientKeyShares.length === 0) {
|
|
7774
|
+
this.logger.info('[argon2id-rebackup] skipping; no local shares to back up', {
|
|
7775
|
+
context: logContext
|
|
7776
|
+
});
|
|
7777
|
+
continue;
|
|
7778
|
+
}
|
|
7779
|
+
this.logger.info('[argon2id-rebackup] re-backing up affected wallet', {
|
|
7780
|
+
context: logContext
|
|
7781
|
+
});
|
|
7782
|
+
// Passing clientKeyShares explicitly skips the ensureLocalSharesAreFresh
|
|
7783
|
+
// server round-trip. No password → default (envId) encryption path. Force
|
|
7784
|
+
// v2 (PBKDF2), whose derivation is environment-independent, so the rescue
|
|
7785
|
+
// blob stays decryptable even if the env/setup later changes.
|
|
7786
|
+
await this.storeEncryptedBackupByWallet({
|
|
7787
|
+
accountAddress,
|
|
7788
|
+
clientKeyShares,
|
|
7789
|
+
encryptionVersion: EncryptionVersion.V2_PBKDF2
|
|
7790
|
+
});
|
|
7791
|
+
this.logger.info('[argon2id-rebackup] re-backup complete', {
|
|
7792
|
+
context: logContext
|
|
7793
|
+
});
|
|
7794
|
+
} catch (error) {
|
|
7795
|
+
logError({
|
|
7796
|
+
message: 'Error during Argon2id re-backup',
|
|
7797
|
+
error: error,
|
|
7798
|
+
context: logContext
|
|
7799
|
+
});
|
|
7800
|
+
}
|
|
7801
|
+
}
|
|
7802
|
+
}
|
|
7803
|
+
/**
|
|
7700
7804
|
* sync auth token with api client
|
|
7701
7805
|
* @param authToken - auth token to sync
|
|
7702
7806
|
*/ syncAuthToken(authToken) {
|
|
@@ -7883,7 +7987,7 @@ class DynamicWalletClient {
|
|
|
7883
7987
|
time: (traceContext == null ? void 0 : traceContext.startTime) ? now - traceContext.startTime : 0
|
|
7884
7988
|
}, traceContext);
|
|
7885
7989
|
}
|
|
7886
|
-
constructor({ environmentId, baseApiUrl, baseMPCRelayApiUrl, storageKey, debug, featureFlags, authMode = core.AuthMode.HEADER, authToken = undefined, backupServiceAuthToken, // Represents the version of the client SDK used by developer
|
|
7990
|
+
constructor({ environmentId, baseApiUrl, baseMPCRelayApiUrl, storageKey, debug, featureFlags, argon2idRebackupTargets, authMode = core.AuthMode.HEADER, authToken = undefined, backupServiceAuthToken, // Represents the version of the client SDK used by developer
|
|
7887
7991
|
sdkVersion, forwardMPCClient, baseClientKeysharesRelayApiUrl, iCloudConfig, logger }, internalOptions){
|
|
7888
7992
|
this.userId = undefined;
|
|
7889
7993
|
this.sessionId = undefined;
|
|
@@ -7894,6 +7998,8 @@ class DynamicWalletClient {
|
|
|
7894
7998
|
this.iframe = null;
|
|
7895
7999
|
this.forwardMPCEnabled = false;
|
|
7896
8000
|
this.featureFlags = {};
|
|
8001
|
+
/** Targets for the one-off Argon2id (v3) re-backup; see {@link maybeRunArgon2idRebackup}. */ this.argon2idRebackupTargets = [];
|
|
8002
|
+
/** Guards the one-off Argon2id re-backup so it runs at most once per client instance. */ this.argon2idRebackupAttempted = false;
|
|
7897
8003
|
this.logger = logger != null ? logger : new core.NoopLogger();
|
|
7898
8004
|
core.Logger.configure(this.logger);
|
|
7899
8005
|
if (!uuid.validate(environmentId)) {
|
|
@@ -7940,6 +8046,7 @@ class DynamicWalletClient {
|
|
|
7940
8046
|
});
|
|
7941
8047
|
this.debug = Boolean(debug);
|
|
7942
8048
|
this.featureFlags = featureFlags || {};
|
|
8049
|
+
this.argon2idRebackupTargets = argon2idRebackupTargets || [];
|
|
7943
8050
|
// setup storage for walletMap metadata (used regardless of secureStorage)
|
|
7944
8051
|
if (supportsLocalStorage()) {
|
|
7945
8052
|
this.storage = localStorageAdapter;
|
package/index.esm.js
CHANGED
|
@@ -82,7 +82,7 @@ const getMPCSigner = ({ chainName, baseRelayUrl, bitcoinConfig })=>{
|
|
|
82
82
|
}({});
|
|
83
83
|
/**
|
|
84
84
|
* Current default version for new encryptions
|
|
85
|
-
*/ const
|
|
85
|
+
*/ const DEFAULT_ENCRYPTION_VERSION = "v2";
|
|
86
86
|
/**
|
|
87
87
|
* Algorithm constants
|
|
88
88
|
*/ const PBKDF2_ALGORITHM = 'PBKDF2';
|
|
@@ -333,7 +333,7 @@ const KEY_SHARE_DECRYPTION_ERROR = 'Decryption failed.';
|
|
|
333
333
|
/**
|
|
334
334
|
* Encrypts data using the specified encryption version.
|
|
335
335
|
* Always uses the latest encryption configuration for new encryptions by default.
|
|
336
|
-
*/ const encryptData = async ({ data, password, version =
|
|
336
|
+
*/ const encryptData = async ({ data, password, version = DEFAULT_ENCRYPTION_VERSION, onRawKey })=>{
|
|
337
337
|
const encryptionConfig = getEncryptionConfig(version);
|
|
338
338
|
try {
|
|
339
339
|
// Generate a random salt and IV
|
|
@@ -1292,8 +1292,8 @@ const createBackupData = ({ encryptedKeyShares, accountAddress, thresholdSignatu
|
|
|
1292
1292
|
accountAddress,
|
|
1293
1293
|
thresholdSignatureScheme,
|
|
1294
1294
|
hasPassword,
|
|
1295
|
-
encryption: getEncryptionMetadataForVersion(
|
|
1296
|
-
encryptionVersion:
|
|
1295
|
+
encryption: getEncryptionMetadataForVersion(DEFAULT_ENCRYPTION_VERSION),
|
|
1296
|
+
encryptionVersion: DEFAULT_ENCRYPTION_VERSION,
|
|
1297
1297
|
shareCount: encryptedKeyShares.length
|
|
1298
1298
|
}
|
|
1299
1299
|
};
|
|
@@ -4098,7 +4098,7 @@ class DynamicWalletClient {
|
|
|
4098
4098
|
encrypted
|
|
4099
4099
|
],
|
|
4100
4100
|
passwordEncrypted: false,
|
|
4101
|
-
encryptionVersion:
|
|
4101
|
+
encryptionVersion: DEFAULT_ENCRYPTION_VERSION,
|
|
4102
4102
|
clientKeyshareBackupGrant,
|
|
4103
4103
|
signedSessionId: resolvedSignedSessionId,
|
|
4104
4104
|
dynamicRequestId
|
|
@@ -5302,12 +5302,13 @@ class DynamicWalletClient {
|
|
|
5302
5302
|
throw error;
|
|
5303
5303
|
}
|
|
5304
5304
|
}
|
|
5305
|
-
async encryptKeyShare({ keyShare, password, onRawKey }) {
|
|
5305
|
+
async encryptKeyShare({ keyShare, password, onRawKey, version }) {
|
|
5306
5306
|
const serializedKeyShare = JSON.stringify(keyShare);
|
|
5307
5307
|
const encryptedKeyShare = await encryptData({
|
|
5308
5308
|
data: serializedKeyShare,
|
|
5309
5309
|
password: password != null ? password : this.environmentId,
|
|
5310
|
-
onRawKey
|
|
5310
|
+
onRawKey,
|
|
5311
|
+
version
|
|
5311
5312
|
});
|
|
5312
5313
|
this.logPasswordSharePresence(password, 'encrypt');
|
|
5313
5314
|
// stringify the encrypted key share, convert to base64, and store it
|
|
@@ -5490,18 +5491,19 @@ class DynamicWalletClient {
|
|
|
5490
5491
|
}
|
|
5491
5492
|
return shares;
|
|
5492
5493
|
}
|
|
5493
|
-
async backupToDynamicBackend({ walletId, clientShares, password, signedSessionId, dynamicRequestId, chainName, bitcoinConfig, isPasswordEncrypted, accountAddress, preEncryptedShares, passwordUpdateBatchId }) {
|
|
5494
|
+
async backupToDynamicBackend({ walletId, clientShares, password, signedSessionId, dynamicRequestId, chainName, bitcoinConfig, isPasswordEncrypted, accountAddress, preEncryptedShares, passwordUpdateBatchId, encryptionVersion = DEFAULT_ENCRYPTION_VERSION }) {
|
|
5494
5495
|
var _this_getWalletFromMap;
|
|
5495
5496
|
const encryptedDynamicShares = preEncryptedShares != null ? preEncryptedShares : await Promise.all(clientShares.map((keyShare)=>this.encryptKeyShare({
|
|
5496
5497
|
keyShare,
|
|
5497
|
-
password
|
|
5498
|
+
password,
|
|
5499
|
+
version: encryptionVersion
|
|
5498
5500
|
})));
|
|
5499
5501
|
const data = await this.apiClient.storeEncryptedBackupByWallet({
|
|
5500
5502
|
walletId,
|
|
5501
5503
|
shareSetId: (_this_getWalletFromMap = this.getWalletFromMap(accountAddress)) == null ? void 0 : _this_getWalletFromMap.shareSetId,
|
|
5502
5504
|
encryptedKeyShares: encryptedDynamicShares,
|
|
5503
5505
|
passwordEncrypted: isPasswordEncrypted,
|
|
5504
|
-
encryptionVersion
|
|
5506
|
+
encryptionVersion,
|
|
5505
5507
|
signedSessionId,
|
|
5506
5508
|
requiresSignedSessionId: this.requiresSignedSessionId(),
|
|
5507
5509
|
dynamicRequestId
|
|
@@ -5581,10 +5583,11 @@ class DynamicWalletClient {
|
|
|
5581
5583
|
]);
|
|
5582
5584
|
}));
|
|
5583
5585
|
}
|
|
5584
|
-
async backupToCloudProvider({ provider, shares, accountAddress, password, chainName, bitcoinConfig, isPasswordEncrypted, preEncryptedShares, googleDriveAccessToken, googleDriveTokenSource }) {
|
|
5586
|
+
async backupToCloudProvider({ provider, shares, accountAddress, password, chainName, bitcoinConfig, isPasswordEncrypted, preEncryptedShares, googleDriveAccessToken, googleDriveTokenSource, encryptionVersion }) {
|
|
5585
5587
|
const encryptedCloudShares = preEncryptedShares != null ? preEncryptedShares : await Promise.all(shares.map((keyShare)=>this.encryptKeyShare({
|
|
5586
5588
|
keyShare,
|
|
5587
|
-
password
|
|
5589
|
+
password,
|
|
5590
|
+
version: encryptionVersion
|
|
5588
5591
|
})));
|
|
5589
5592
|
await this.uploadToCloudProvider({
|
|
5590
5593
|
provider,
|
|
@@ -5650,7 +5653,7 @@ class DynamicWalletClient {
|
|
|
5650
5653
|
}
|
|
5651
5654
|
return location;
|
|
5652
5655
|
}
|
|
5653
|
-
async backupSharesWithDistribution({ accountAddress, password, signedSessionId, distribution, preserveDelegatedLocation = false, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId }) {
|
|
5656
|
+
async backupSharesWithDistribution({ accountAddress, password, signedSessionId, distribution, preserveDelegatedLocation = false, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId, encryptionVersion }) {
|
|
5654
5657
|
const dynamicRequestId = v4();
|
|
5655
5658
|
// Get wallet data early for logging context (also used in catch block)
|
|
5656
5659
|
const walletData = this.getWalletFromMap(accountAddress);
|
|
@@ -5706,7 +5709,8 @@ class DynamicWalletClient {
|
|
|
5706
5709
|
onRawKey: encryptKeyByBlob ? (key, inputFingerprint)=>derived = {
|
|
5707
5710
|
key,
|
|
5708
5711
|
inputFingerprint
|
|
5709
|
-
} : undefined
|
|
5712
|
+
} : undefined,
|
|
5713
|
+
version: encryptionVersion
|
|
5710
5714
|
});
|
|
5711
5715
|
if (encryptKeyByBlob && derived) encryptKeyByBlob.set(blob, derived);
|
|
5712
5716
|
return blob;
|
|
@@ -5765,7 +5769,8 @@ class DynamicWalletClient {
|
|
|
5765
5769
|
isPasswordEncrypted,
|
|
5766
5770
|
accountAddress,
|
|
5767
5771
|
preEncryptedShares: preEncryptedDynamicShares,
|
|
5768
|
-
passwordUpdateBatchId
|
|
5772
|
+
passwordUpdateBatchId,
|
|
5773
|
+
encryptionVersion
|
|
5769
5774
|
}), {
|
|
5770
5775
|
operationName,
|
|
5771
5776
|
// Refresh a consumed nonce on a 400; otherwise back off and retry
|
|
@@ -5795,7 +5800,8 @@ class DynamicWalletClient {
|
|
|
5795
5800
|
isPasswordEncrypted,
|
|
5796
5801
|
preEncryptedShares: encrypted,
|
|
5797
5802
|
googleDriveAccessToken,
|
|
5798
|
-
googleDriveTokenSource
|
|
5803
|
+
googleDriveTokenSource,
|
|
5804
|
+
encryptionVersion
|
|
5799
5805
|
}));
|
|
5800
5806
|
}
|
|
5801
5807
|
// When this ceremony minted a separate `delegated` share set (FF=on
|
|
@@ -6060,7 +6066,7 @@ class DynamicWalletClient {
|
|
|
6060
6066
|
* @param params.signedSessionId - Optional signed session ID for authentication
|
|
6061
6067
|
* @param params.backupToGoogleDrive - Whether to backup to Google Drive (defaults to false)
|
|
6062
6068
|
* @returns Promise with backup metadata including share locations and IDs
|
|
6063
|
-
*/ async storeEncryptedBackupByWallet({ accountAddress, clientKeyShares = undefined, password = undefined, signedSessionId, cloudProviders = [], delegatedKeyshare = undefined, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId }) {
|
|
6069
|
+
*/ async storeEncryptedBackupByWallet({ accountAddress, clientKeyShares = undefined, password = undefined, signedSessionId, cloudProviders = [], delegatedKeyshare = undefined, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId, encryptionVersion }) {
|
|
6064
6070
|
var _backupData_locationsWithKeyShares, _backupData_locationsWithKeyShares1;
|
|
6065
6071
|
const hasProvidedShares = clientKeyShares !== undefined;
|
|
6066
6072
|
const keySharesToBackup = clientKeyShares != null ? clientKeyShares : await this.getClientKeySharesFromStorage({
|
|
@@ -6135,7 +6141,8 @@ class DynamicWalletClient {
|
|
|
6135
6141
|
passwordUpdateBatchId,
|
|
6136
6142
|
googleDriveAccessToken,
|
|
6137
6143
|
googleDriveTokenSource,
|
|
6138
|
-
businessAccountId
|
|
6144
|
+
businessAccountId,
|
|
6145
|
+
encryptionVersion
|
|
6139
6146
|
});
|
|
6140
6147
|
var _backupData_locationsWithKeyShares_map, _backupData_locationsWithKeyShares_map1;
|
|
6141
6148
|
return _extends({}, backupData, {
|
|
@@ -7685,6 +7692,11 @@ class DynamicWalletClient {
|
|
|
7685
7692
|
})
|
|
7686
7693
|
}
|
|
7687
7694
|
});
|
|
7695
|
+
// One-off Argon2id (v3) re-backup for affected users. Runs after userId is
|
|
7696
|
+
// resolved and the walletMap is freshly populated from the server.
|
|
7697
|
+
// Fire-and-forget: it sets its run-once guard synchronously and never
|
|
7698
|
+
// throws (per-target try/catch), so it must not block the getWallets result.
|
|
7699
|
+
void this.maybeRunArgon2idRebackup(dynamicRequestId);
|
|
7688
7700
|
return wallets;
|
|
7689
7701
|
} catch (error) {
|
|
7690
7702
|
logError({
|
|
@@ -7698,6 +7710,98 @@ class DynamicWalletClient {
|
|
|
7698
7710
|
}
|
|
7699
7711
|
}
|
|
7700
7712
|
/**
|
|
7713
|
+
* One-off re-backup for users whose Argon2id (v3) Dynamic backup can no longer be
|
|
7714
|
+
* decrypted (DYNT-1112). The v3 derived key is only deterministic within a specific
|
|
7715
|
+
* environment/setup; when that environment or its parameters change the derived key
|
|
7716
|
+
* no longer matches and the blob fails to decrypt — even though the local client
|
|
7717
|
+
* shares are still readable. While those local shares are still present we re-upload
|
|
7718
|
+
* them, re-encrypted with v2 (PBKDF2), whose derivation is stable across
|
|
7719
|
+
* environments, overwriting the no-longer-decryptable copy.
|
|
7720
|
+
*
|
|
7721
|
+
* Targets come from the `argon2id-rebackup-targets` LaunchDarkly flag. Idempotency
|
|
7722
|
+
* is keyed on the `externalKeyShareId`: re-backing up produces a new id, so once
|
|
7723
|
+
* the known-bad id is gone the wallet is skipped. The shares are read from local
|
|
7724
|
+
* storage only — this never refetches shares from the server. The backup path runs
|
|
7725
|
+
* its own encryption round-trip self-test before uploading, so a blob that can't be
|
|
7726
|
+
* decrypted is never pushed.
|
|
7727
|
+
*/ async maybeRunArgon2idRebackup(dynamicRequestId) {
|
|
7728
|
+
if (this.argon2idRebackupAttempted || !this.userId) {
|
|
7729
|
+
return;
|
|
7730
|
+
}
|
|
7731
|
+
const targets = this.argon2idRebackupTargets.filter((target)=>target.userId === this.userId);
|
|
7732
|
+
if (targets.length === 0) {
|
|
7733
|
+
return;
|
|
7734
|
+
}
|
|
7735
|
+
// Attempt at most once per instance regardless of outcome; a still-bricked
|
|
7736
|
+
// wallet retries on the next session (its known-bad id is unchanged).
|
|
7737
|
+
this.argon2idRebackupAttempted = true;
|
|
7738
|
+
for (const target of targets){
|
|
7739
|
+
const logContext = {
|
|
7740
|
+
walletId: target.walletId,
|
|
7741
|
+
userId: this.userId,
|
|
7742
|
+
dynamicRequestId
|
|
7743
|
+
};
|
|
7744
|
+
try {
|
|
7745
|
+
var _wallet_clientKeySharesBackupInfo_backups_BackupLocation_DYNAMIC, _wallet_clientKeySharesBackupInfo_backups, _wallet_clientKeySharesBackupInfo;
|
|
7746
|
+
const entry = Object.entries(this.walletMap).find(([, wallet])=>wallet.walletId === target.walletId);
|
|
7747
|
+
if (!entry) {
|
|
7748
|
+
continue;
|
|
7749
|
+
}
|
|
7750
|
+
const [accountAddress, wallet] = entry;
|
|
7751
|
+
// Safety: the rescue re-encrypts with no password (envId path), so never
|
|
7752
|
+
// touch a password-encrypted wallet — that would overwrite a protected
|
|
7753
|
+
// backup with an unprotected one. The v3 bug only affects the envId path,
|
|
7754
|
+
// so this should never be targeted; guard against a misconfigured flag.
|
|
7755
|
+
if (isWalletPasswordEncrypted(wallet)) {
|
|
7756
|
+
this.logger.info('[argon2id-rebackup] skipping; wallet is password-encrypted', {
|
|
7757
|
+
context: logContext
|
|
7758
|
+
});
|
|
7759
|
+
continue;
|
|
7760
|
+
}
|
|
7761
|
+
var _wallet_clientKeySharesBackupInfo_backups_BackupLocation_DYNAMIC_map;
|
|
7762
|
+
// Idempotency: only proceed while the known-bad backup id is still present.
|
|
7763
|
+
const currentDynamicIds = (_wallet_clientKeySharesBackupInfo_backups_BackupLocation_DYNAMIC_map = (_wallet_clientKeySharesBackupInfo = wallet.clientKeySharesBackupInfo) == null ? void 0 : (_wallet_clientKeySharesBackupInfo_backups = _wallet_clientKeySharesBackupInfo.backups) == null ? void 0 : (_wallet_clientKeySharesBackupInfo_backups_BackupLocation_DYNAMIC = _wallet_clientKeySharesBackupInfo_backups[BackupLocation.DYNAMIC]) == null ? void 0 : _wallet_clientKeySharesBackupInfo_backups_BackupLocation_DYNAMIC.map((ks)=>ks.externalKeyShareId)) != null ? _wallet_clientKeySharesBackupInfo_backups_BackupLocation_DYNAMIC_map : [];
|
|
7764
|
+
if (!currentDynamicIds.includes(target.externalKeyShareId)) {
|
|
7765
|
+
this.logger.info('[argon2id-rebackup] skipping; backup id already rotated', {
|
|
7766
|
+
context: logContext
|
|
7767
|
+
});
|
|
7768
|
+
continue;
|
|
7769
|
+
}
|
|
7770
|
+
// Reuse local shares only — never refetch from the server.
|
|
7771
|
+
const clientKeyShares = await this.getClientKeySharesFromStorage({
|
|
7772
|
+
accountAddress
|
|
7773
|
+
});
|
|
7774
|
+
if (!clientKeyShares || clientKeyShares.length === 0) {
|
|
7775
|
+
this.logger.info('[argon2id-rebackup] skipping; no local shares to back up', {
|
|
7776
|
+
context: logContext
|
|
7777
|
+
});
|
|
7778
|
+
continue;
|
|
7779
|
+
}
|
|
7780
|
+
this.logger.info('[argon2id-rebackup] re-backing up affected wallet', {
|
|
7781
|
+
context: logContext
|
|
7782
|
+
});
|
|
7783
|
+
// Passing clientKeyShares explicitly skips the ensureLocalSharesAreFresh
|
|
7784
|
+
// server round-trip. No password → default (envId) encryption path. Force
|
|
7785
|
+
// v2 (PBKDF2), whose derivation is environment-independent, so the rescue
|
|
7786
|
+
// blob stays decryptable even if the env/setup later changes.
|
|
7787
|
+
await this.storeEncryptedBackupByWallet({
|
|
7788
|
+
accountAddress,
|
|
7789
|
+
clientKeyShares,
|
|
7790
|
+
encryptionVersion: EncryptionVersion.V2_PBKDF2
|
|
7791
|
+
});
|
|
7792
|
+
this.logger.info('[argon2id-rebackup] re-backup complete', {
|
|
7793
|
+
context: logContext
|
|
7794
|
+
});
|
|
7795
|
+
} catch (error) {
|
|
7796
|
+
logError({
|
|
7797
|
+
message: 'Error during Argon2id re-backup',
|
|
7798
|
+
error: error,
|
|
7799
|
+
context: logContext
|
|
7800
|
+
});
|
|
7801
|
+
}
|
|
7802
|
+
}
|
|
7803
|
+
}
|
|
7804
|
+
/**
|
|
7701
7805
|
* sync auth token with api client
|
|
7702
7806
|
* @param authToken - auth token to sync
|
|
7703
7807
|
*/ syncAuthToken(authToken) {
|
|
@@ -7884,7 +7988,7 @@ class DynamicWalletClient {
|
|
|
7884
7988
|
time: (traceContext == null ? void 0 : traceContext.startTime) ? now - traceContext.startTime : 0
|
|
7885
7989
|
}, traceContext);
|
|
7886
7990
|
}
|
|
7887
|
-
constructor({ environmentId, baseApiUrl, baseMPCRelayApiUrl, storageKey, debug, featureFlags, authMode = AuthMode.HEADER, authToken = undefined, backupServiceAuthToken, // Represents the version of the client SDK used by developer
|
|
7991
|
+
constructor({ environmentId, baseApiUrl, baseMPCRelayApiUrl, storageKey, debug, featureFlags, argon2idRebackupTargets, authMode = AuthMode.HEADER, authToken = undefined, backupServiceAuthToken, // Represents the version of the client SDK used by developer
|
|
7888
7992
|
sdkVersion, forwardMPCClient, baseClientKeysharesRelayApiUrl, iCloudConfig, logger }, internalOptions){
|
|
7889
7993
|
this.userId = undefined;
|
|
7890
7994
|
this.sessionId = undefined;
|
|
@@ -7895,6 +7999,8 @@ class DynamicWalletClient {
|
|
|
7895
7999
|
this.iframe = null;
|
|
7896
8000
|
this.forwardMPCEnabled = false;
|
|
7897
8001
|
this.featureFlags = {};
|
|
8002
|
+
/** Targets for the one-off Argon2id (v3) re-backup; see {@link maybeRunArgon2idRebackup}. */ this.argon2idRebackupTargets = [];
|
|
8003
|
+
/** Guards the one-off Argon2id re-backup so it runs at most once per client instance. */ this.argon2idRebackupAttempted = false;
|
|
7898
8004
|
this.logger = logger != null ? logger : new NoopLogger();
|
|
7899
8005
|
Logger.configure(this.logger);
|
|
7900
8006
|
if (!validate(environmentId)) {
|
|
@@ -7941,6 +8047,7 @@ class DynamicWalletClient {
|
|
|
7941
8047
|
});
|
|
7942
8048
|
this.debug = Boolean(debug);
|
|
7943
8049
|
this.featureFlags = featureFlags || {};
|
|
8050
|
+
this.argon2idRebackupTargets = argon2idRebackupTargets || [];
|
|
7944
8051
|
// setup storage for walletMap metadata (used regardless of secureStorage)
|
|
7945
8052
|
if (supportsLocalStorage()) {
|
|
7946
8053
|
this.storage = localStorageAdapter;
|
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.33",
|
|
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.33",
|
|
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.33",
|
|
10
10
|
"@dynamic-labs/sdk-api-core": "^0.0.984",
|
|
11
11
|
"argon2id": "1.0.1",
|
|
12
12
|
"axios": "1.16.0",
|
|
@@ -9,7 +9,7 @@ export declare enum EncryptionVersion {
|
|
|
9
9
|
/**
|
|
10
10
|
* Current default version for new encryptions
|
|
11
11
|
*/
|
|
12
|
-
export declare const
|
|
12
|
+
export declare const DEFAULT_ENCRYPTION_VERSION = EncryptionVersion.V2_PBKDF2;
|
|
13
13
|
/**
|
|
14
14
|
* Algorithm constants
|
|
15
15
|
*/
|
package/src/client.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EcdsaSignature, MessageHash, type EcdsaPublicKey } from '#internal/web';
|
|
2
|
-
import { AuthMode, BackupLocation, DynamicApiClient, BusinessAccountClient, type TargetSignerIdentity, type BusinessAccountSignerType, ThresholdSignatureScheme, WalletOperation, type BackupLocationWithExternalKeyShareId, type BitcoinConfig, type DynamicWalletClientProps, type FeatureFlags, type GetWalletResponse, type ILogger, type InitializeResult, type KeyShareBackupInfo, type SecureStorageAdapter, type ShareSet, type ShareSetType, type TraceContext, type WalletRecoveryState, type CreateWaasSDKContainer } from '@dynamic-labs-wallet/core';
|
|
2
|
+
import { AuthMode, BackupLocation, DynamicApiClient, BusinessAccountClient, type TargetSignerIdentity, type BusinessAccountSignerType, ThresholdSignatureScheme, WalletOperation, type Argon2idRebackupTarget, type BackupLocationWithExternalKeyShareId, type BitcoinConfig, type DynamicWalletClientProps, type FeatureFlags, type GetWalletResponse, type ILogger, type InitializeResult, type KeyShareBackupInfo, type SecureStorageAdapter, type ShareSet, type ShareSetType, type TraceContext, type WalletRecoveryState, type CreateWaasSDKContainer } from '@dynamic-labs-wallet/core';
|
|
3
3
|
import { RoomTypeEnum, type SignMessageContext } from '@dynamic-labs/sdk-api-core';
|
|
4
|
+
import { EncryptionVersion } from './backup/encryption/constants.js';
|
|
4
5
|
import type { DerivationInputFingerprint } from './backup/encryption/types.js';
|
|
5
6
|
import type { ClientInitKeygenResult, ClientKeyShare, MPCSigner } from './mpc/types.js';
|
|
6
7
|
import { type SupportedStorage } from './services/localStorage.js';
|
|
@@ -48,6 +49,10 @@ export declare class DynamicWalletClient {
|
|
|
48
49
|
readonly instanceId: string;
|
|
49
50
|
readonly iframeDomain: string;
|
|
50
51
|
readonly featureFlags: FeatureFlags;
|
|
52
|
+
/** Targets for the one-off Argon2id (v3) re-backup; see {@link maybeRunArgon2idRebackup}. */
|
|
53
|
+
protected readonly argon2idRebackupTargets: Argon2idRebackupTarget[];
|
|
54
|
+
/** Guards the one-off Argon2id re-backup so it runs at most once per client instance. */
|
|
55
|
+
private argon2idRebackupAttempted;
|
|
51
56
|
protected authMode: AuthMode;
|
|
52
57
|
protected sdkVersion?: string;
|
|
53
58
|
protected baseClientKeysharesRelayApiUrl?: string;
|
|
@@ -69,7 +74,7 @@ export declare class DynamicWalletClient {
|
|
|
69
74
|
private readonly getSignedSessionIdCallback?;
|
|
70
75
|
/** Owns signed-session resolution, version-gating, and nonce-refresh retries. */
|
|
71
76
|
private readonly signedSession;
|
|
72
|
-
constructor({ environmentId, baseApiUrl, baseMPCRelayApiUrl, storageKey, debug, featureFlags, authMode, authToken, backupServiceAuthToken, sdkVersion, forwardMPCClient, baseClientKeysharesRelayApiUrl, iCloudConfig, logger, }: DynamicWalletClientProps, internalOptions?: DynamicWalletClientInternalOptions);
|
|
77
|
+
constructor({ environmentId, baseApiUrl, baseMPCRelayApiUrl, storageKey, debug, featureFlags, argon2idRebackupTargets, authMode, authToken, backupServiceAuthToken, sdkVersion, forwardMPCClient, baseClientKeysharesRelayApiUrl, iCloudConfig, logger, }: DynamicWalletClientProps, internalOptions?: DynamicWalletClientInternalOptions);
|
|
73
78
|
/**
|
|
74
79
|
* Check if wallet has heavy operations in progress
|
|
75
80
|
*/
|
|
@@ -473,11 +478,13 @@ export declare class DynamicWalletClient {
|
|
|
473
478
|
* stays visible and retryable rather than masquerading as "unrecoverable".
|
|
474
479
|
*/
|
|
475
480
|
private assertServerCopyRecoverable;
|
|
476
|
-
encryptKeyShare({ keyShare, password, onRawKey, }: {
|
|
481
|
+
encryptKeyShare({ keyShare, password, onRawKey, version, }: {
|
|
477
482
|
keyShare: ClientKeyShare;
|
|
478
483
|
password?: string;
|
|
479
484
|
/** In-process hook receiving the raw derived key bytes (key material, never log) + input fingerprint. */
|
|
480
485
|
onRawKey?: (rawKey: Uint8Array, inputFingerprint: DerivationInputFingerprint) => void;
|
|
486
|
+
/** Encryption version to use. Defaults to the current default (v3) when omitted. */
|
|
487
|
+
version?: EncryptionVersion;
|
|
481
488
|
}): Promise<string>;
|
|
482
489
|
/**
|
|
483
490
|
* helper function to store encrypted backup by wallet from iframe local storage
|
|
@@ -557,7 +564,7 @@ export declare class DynamicWalletClient {
|
|
|
557
564
|
private backupToCloudProvider;
|
|
558
565
|
private publishDelegatedShare;
|
|
559
566
|
private createPreservedDelegatedLocation;
|
|
560
|
-
backupSharesWithDistribution({ accountAddress, password, signedSessionId, distribution, preserveDelegatedLocation, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId, }: {
|
|
567
|
+
backupSharesWithDistribution({ accountAddress, password, signedSessionId, distribution, preserveDelegatedLocation, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId, encryptionVersion, }: {
|
|
561
568
|
accountAddress: string;
|
|
562
569
|
password?: string;
|
|
563
570
|
signedSessionId?: string;
|
|
@@ -567,6 +574,8 @@ export declare class DynamicWalletClient {
|
|
|
567
574
|
googleDriveAccessToken?: string;
|
|
568
575
|
googleDriveTokenSource?: 'external' | 'stored_oauth';
|
|
569
576
|
businessAccountId?: string;
|
|
577
|
+
/** Version the shares are encrypted with. Defaults to the current default (v3) when omitted. */
|
|
578
|
+
encryptionVersion?: EncryptionVersion;
|
|
570
579
|
}): Promise<{
|
|
571
580
|
message: string;
|
|
572
581
|
walletId: string;
|
|
@@ -610,7 +619,7 @@ export declare class DynamicWalletClient {
|
|
|
610
619
|
* @param params.backupToGoogleDrive - Whether to backup to Google Drive (defaults to false)
|
|
611
620
|
* @returns Promise with backup metadata including share locations and IDs
|
|
612
621
|
*/
|
|
613
|
-
storeEncryptedBackupByWallet({ accountAddress, clientKeyShares, password, signedSessionId, cloudProviders, delegatedKeyshare, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId, }: {
|
|
622
|
+
storeEncryptedBackupByWallet({ accountAddress, clientKeyShares, password, signedSessionId, cloudProviders, delegatedKeyshare, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId, encryptionVersion, }: {
|
|
614
623
|
accountAddress: string;
|
|
615
624
|
clientKeyShares?: ClientKeyShare[];
|
|
616
625
|
password?: string;
|
|
@@ -621,6 +630,8 @@ export declare class DynamicWalletClient {
|
|
|
621
630
|
googleDriveAccessToken?: string;
|
|
622
631
|
googleDriveTokenSource?: 'external' | 'stored_oauth';
|
|
623
632
|
businessAccountId?: string;
|
|
633
|
+
/** Version the shares are encrypted with. Defaults to the current default (v3) when omitted. */
|
|
634
|
+
encryptionVersion?: EncryptionVersion;
|
|
624
635
|
}): Promise<{
|
|
625
636
|
keyShareIds: string[];
|
|
626
637
|
keygenIds: string[];
|
|
@@ -925,6 +936,23 @@ export declare class DynamicWalletClient {
|
|
|
925
936
|
private decryptAndStoreWalletShares;
|
|
926
937
|
getAllWallets(): Promise<GetWalletResponse[]>;
|
|
927
938
|
getWallets(): Promise<any>;
|
|
939
|
+
/**
|
|
940
|
+
* One-off re-backup for users whose Argon2id (v3) Dynamic backup can no longer be
|
|
941
|
+
* decrypted (DYNT-1112). The v3 derived key is only deterministic within a specific
|
|
942
|
+
* environment/setup; when that environment or its parameters change the derived key
|
|
943
|
+
* no longer matches and the blob fails to decrypt — even though the local client
|
|
944
|
+
* shares are still readable. While those local shares are still present we re-upload
|
|
945
|
+
* them, re-encrypted with v2 (PBKDF2), whose derivation is stable across
|
|
946
|
+
* environments, overwriting the no-longer-decryptable copy.
|
|
947
|
+
*
|
|
948
|
+
* Targets come from the `argon2id-rebackup-targets` LaunchDarkly flag. Idempotency
|
|
949
|
+
* is keyed on the `externalKeyShareId`: re-backing up produces a new id, so once
|
|
950
|
+
* the known-bad id is gone the wallet is skipped. The shares are read from local
|
|
951
|
+
* storage only — this never refetches shares from the server. The backup path runs
|
|
952
|
+
* its own encryption round-trip self-test before uploading, so a blob that can't be
|
|
953
|
+
* decrypted is never pushed.
|
|
954
|
+
*/
|
|
955
|
+
private maybeRunArgon2idRebackup;
|
|
928
956
|
/**
|
|
929
957
|
* sync auth token with api client
|
|
930
958
|
* @param authToken - auth token to sync
|
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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"}
|