@dynamic-labs-wallet/browser 0.0.36 → 0.0.38
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.js +16 -18
- package/index.esm.js +16 -18
- package/package.json +2 -2
- package/src/client.d.ts +9 -9
- package/src/client.d.ts.map +1 -1
package/index.cjs.js
CHANGED
|
@@ -773,12 +773,7 @@ class DynamicWalletClient {
|
|
|
773
773
|
const serializedEncryptedKeyShare = Buffer.from(JSON.stringify(encryptedKeyShare)).toString('base64');
|
|
774
774
|
return serializedEncryptedKeyShare;
|
|
775
775
|
}
|
|
776
|
-
async storeEncryptedBackupByWallet({ accountAddress, password = undefined
|
|
777
|
-
await this.getWallet({
|
|
778
|
-
accountAddress,
|
|
779
|
-
password,
|
|
780
|
-
walletOperation
|
|
781
|
-
});
|
|
776
|
+
async storeEncryptedBackupByWallet({ accountAddress, password = undefined }) {
|
|
782
777
|
const encryptedKeyShares = await Promise.all(this.walletMap[accountAddress].clientKeyShares.map((keyShare)=>this.encryptKeyShare({
|
|
783
778
|
keyShare,
|
|
784
779
|
password
|
|
@@ -786,7 +781,7 @@ class DynamicWalletClient {
|
|
|
786
781
|
const data = await this.apiClient.storeEncryptedBackupByWallet({
|
|
787
782
|
walletId: this.walletMap[accountAddress].walletId,
|
|
788
783
|
encryptedKeyShares,
|
|
789
|
-
passwordEncrypted: Boolean(password)
|
|
784
|
+
passwordEncrypted: Boolean(password) && password !== this.environmentId
|
|
790
785
|
});
|
|
791
786
|
this.walletMap[accountAddress] = _extends({}, this.walletMap[accountAddress], {
|
|
792
787
|
clientKeySharesBackupInfo: getClientKeyShareBackupInfo({
|
|
@@ -823,7 +818,7 @@ class DynamicWalletClient {
|
|
|
823
818
|
* Helper function to determine keyshare recovery strategy for dynamic shares.
|
|
824
819
|
* For REFRESH operations, retrieves enough shares to meet the client threshold.
|
|
825
820
|
* For all other operations, retrieves just 1 share.
|
|
826
|
-
*
|
|
821
|
+
*
|
|
827
822
|
* @param clientKeyShareBackupInfo - Information about backed up key shares
|
|
828
823
|
* @param thresholdSignatureScheme - The signature scheme being used (2-of-2, 2-of-3, etc)
|
|
829
824
|
* @param walletOperation - The operation being performed (REFRESH, SIGN_MESSAGE, etc)
|
|
@@ -846,7 +841,7 @@ class DynamicWalletClient {
|
|
|
846
841
|
requiredShareCount
|
|
847
842
|
};
|
|
848
843
|
}
|
|
849
|
-
async recoverEncryptedBackupByWallet({ accountAddress, password, walletOperation, shareCount = undefined }) {
|
|
844
|
+
async recoverEncryptedBackupByWallet({ accountAddress, password, walletOperation, shareCount = undefined, storeRecoveredShares = true }) {
|
|
850
845
|
const wallet = this.walletMap[accountAddress];
|
|
851
846
|
this.logger.debug(`recoverEncryptedBackupByWallet wallet: ${walletOperation}`, wallet);
|
|
852
847
|
const { shares } = this.recoverStrategy({
|
|
@@ -865,10 +860,12 @@ class DynamicWalletClient {
|
|
|
865
860
|
keyShare: keyShare.encryptedAccountCredential,
|
|
866
861
|
password: password != null ? password : this.environmentId
|
|
867
862
|
})));
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
863
|
+
if (storeRecoveredShares) {
|
|
864
|
+
this.walletMap[accountAddress] = _extends({}, this.walletMap[accountAddress], {
|
|
865
|
+
clientKeyShares: mergeUniqueKeyShares(this.walletMap[accountAddress].clientKeyShares || [], decryptedKeyShares)
|
|
866
|
+
});
|
|
867
|
+
await this.storage.setItem(this.storageKey, JSON.stringify(this.walletMap));
|
|
868
|
+
}
|
|
872
869
|
return decryptedKeyShares;
|
|
873
870
|
}
|
|
874
871
|
async restoreWallets() {
|
|
@@ -1079,7 +1076,7 @@ class DynamicWalletClient {
|
|
|
1079
1076
|
thresholdSignatureSchemeCheck = true;
|
|
1080
1077
|
}
|
|
1081
1078
|
// check if derivation path exists
|
|
1082
|
-
if ((existingWallet == null ? void 0 : existingWallet.derivationPath) || (existingWallet == null ? void 0 : existingWallet.derivationPath) ===
|
|
1079
|
+
if ((existingWallet == null ? void 0 : existingWallet.derivationPath) || (existingWallet == null ? void 0 : existingWallet.derivationPath) === '') {
|
|
1083
1080
|
derivationPathCheck = true;
|
|
1084
1081
|
}
|
|
1085
1082
|
// check if wallet already exists with sufficient keyshares
|
|
@@ -1101,9 +1098,9 @@ class DynamicWalletClient {
|
|
|
1101
1098
|
return walletCheck && thresholdSignatureSchemeCheck && keyshareCheck && derivationPathCheck;
|
|
1102
1099
|
}
|
|
1103
1100
|
/**
|
|
1104
|
-
* verifyPassword attempts to recover and decrypt
|
|
1105
|
-
*
|
|
1106
|
-
*
|
|
1101
|
+
* verifyPassword attempts to recover and decrypt a single client key share using the provided password.
|
|
1102
|
+
* If successful, the key share is encrypted with the new password. This method solely performs the recovery
|
|
1103
|
+
* and decryption without storing the restored key shares. If unsuccessful, it throws an error.
|
|
1107
1104
|
*/ async verifyPassword({ accountAddress, password = undefined, walletOperation = WalletOperation.NO_OPERATION }) {
|
|
1108
1105
|
await this.getWallet({
|
|
1109
1106
|
accountAddress,
|
|
@@ -1132,7 +1129,8 @@ class DynamicWalletClient {
|
|
|
1132
1129
|
accountAddress,
|
|
1133
1130
|
password,
|
|
1134
1131
|
walletOperation,
|
|
1135
|
-
shareCount: 1
|
|
1132
|
+
shareCount: 1,
|
|
1133
|
+
storeRecoveredShares: false
|
|
1136
1134
|
});
|
|
1137
1135
|
} catch (error) {
|
|
1138
1136
|
this.logger.error('Error in verifying password', error);
|
package/index.esm.js
CHANGED
|
@@ -773,12 +773,7 @@ class DynamicWalletClient {
|
|
|
773
773
|
const serializedEncryptedKeyShare = Buffer.from(JSON.stringify(encryptedKeyShare)).toString('base64');
|
|
774
774
|
return serializedEncryptedKeyShare;
|
|
775
775
|
}
|
|
776
|
-
async storeEncryptedBackupByWallet({ accountAddress, password = undefined
|
|
777
|
-
await this.getWallet({
|
|
778
|
-
accountAddress,
|
|
779
|
-
password,
|
|
780
|
-
walletOperation
|
|
781
|
-
});
|
|
776
|
+
async storeEncryptedBackupByWallet({ accountAddress, password = undefined }) {
|
|
782
777
|
const encryptedKeyShares = await Promise.all(this.walletMap[accountAddress].clientKeyShares.map((keyShare)=>this.encryptKeyShare({
|
|
783
778
|
keyShare,
|
|
784
779
|
password
|
|
@@ -786,7 +781,7 @@ class DynamicWalletClient {
|
|
|
786
781
|
const data = await this.apiClient.storeEncryptedBackupByWallet({
|
|
787
782
|
walletId: this.walletMap[accountAddress].walletId,
|
|
788
783
|
encryptedKeyShares,
|
|
789
|
-
passwordEncrypted: Boolean(password)
|
|
784
|
+
passwordEncrypted: Boolean(password) && password !== this.environmentId
|
|
790
785
|
});
|
|
791
786
|
this.walletMap[accountAddress] = _extends({}, this.walletMap[accountAddress], {
|
|
792
787
|
clientKeySharesBackupInfo: getClientKeyShareBackupInfo({
|
|
@@ -823,7 +818,7 @@ class DynamicWalletClient {
|
|
|
823
818
|
* Helper function to determine keyshare recovery strategy for dynamic shares.
|
|
824
819
|
* For REFRESH operations, retrieves enough shares to meet the client threshold.
|
|
825
820
|
* For all other operations, retrieves just 1 share.
|
|
826
|
-
*
|
|
821
|
+
*
|
|
827
822
|
* @param clientKeyShareBackupInfo - Information about backed up key shares
|
|
828
823
|
* @param thresholdSignatureScheme - The signature scheme being used (2-of-2, 2-of-3, etc)
|
|
829
824
|
* @param walletOperation - The operation being performed (REFRESH, SIGN_MESSAGE, etc)
|
|
@@ -846,7 +841,7 @@ class DynamicWalletClient {
|
|
|
846
841
|
requiredShareCount
|
|
847
842
|
};
|
|
848
843
|
}
|
|
849
|
-
async recoverEncryptedBackupByWallet({ accountAddress, password, walletOperation, shareCount = undefined }) {
|
|
844
|
+
async recoverEncryptedBackupByWallet({ accountAddress, password, walletOperation, shareCount = undefined, storeRecoveredShares = true }) {
|
|
850
845
|
const wallet = this.walletMap[accountAddress];
|
|
851
846
|
this.logger.debug(`recoverEncryptedBackupByWallet wallet: ${walletOperation}`, wallet);
|
|
852
847
|
const { shares } = this.recoverStrategy({
|
|
@@ -865,10 +860,12 @@ class DynamicWalletClient {
|
|
|
865
860
|
keyShare: keyShare.encryptedAccountCredential,
|
|
866
861
|
password: password != null ? password : this.environmentId
|
|
867
862
|
})));
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
863
|
+
if (storeRecoveredShares) {
|
|
864
|
+
this.walletMap[accountAddress] = _extends({}, this.walletMap[accountAddress], {
|
|
865
|
+
clientKeyShares: mergeUniqueKeyShares(this.walletMap[accountAddress].clientKeyShares || [], decryptedKeyShares)
|
|
866
|
+
});
|
|
867
|
+
await this.storage.setItem(this.storageKey, JSON.stringify(this.walletMap));
|
|
868
|
+
}
|
|
872
869
|
return decryptedKeyShares;
|
|
873
870
|
}
|
|
874
871
|
async restoreWallets() {
|
|
@@ -1079,7 +1076,7 @@ class DynamicWalletClient {
|
|
|
1079
1076
|
thresholdSignatureSchemeCheck = true;
|
|
1080
1077
|
}
|
|
1081
1078
|
// check if derivation path exists
|
|
1082
|
-
if ((existingWallet == null ? void 0 : existingWallet.derivationPath) || (existingWallet == null ? void 0 : existingWallet.derivationPath) ===
|
|
1079
|
+
if ((existingWallet == null ? void 0 : existingWallet.derivationPath) || (existingWallet == null ? void 0 : existingWallet.derivationPath) === '') {
|
|
1083
1080
|
derivationPathCheck = true;
|
|
1084
1081
|
}
|
|
1085
1082
|
// check if wallet already exists with sufficient keyshares
|
|
@@ -1101,9 +1098,9 @@ class DynamicWalletClient {
|
|
|
1101
1098
|
return walletCheck && thresholdSignatureSchemeCheck && keyshareCheck && derivationPathCheck;
|
|
1102
1099
|
}
|
|
1103
1100
|
/**
|
|
1104
|
-
* verifyPassword attempts to recover and decrypt
|
|
1105
|
-
*
|
|
1106
|
-
*
|
|
1101
|
+
* verifyPassword attempts to recover and decrypt a single client key share using the provided password.
|
|
1102
|
+
* If successful, the key share is encrypted with the new password. This method solely performs the recovery
|
|
1103
|
+
* and decryption without storing the restored key shares. If unsuccessful, it throws an error.
|
|
1107
1104
|
*/ async verifyPassword({ accountAddress, password = undefined, walletOperation = WalletOperation.NO_OPERATION }) {
|
|
1108
1105
|
await this.getWallet({
|
|
1109
1106
|
accountAddress,
|
|
@@ -1132,7 +1129,8 @@ class DynamicWalletClient {
|
|
|
1132
1129
|
accountAddress,
|
|
1133
1130
|
password,
|
|
1134
1131
|
walletOperation,
|
|
1135
|
-
shareCount: 1
|
|
1132
|
+
shareCount: 1,
|
|
1133
|
+
storeRecoveredShares: false
|
|
1136
1134
|
});
|
|
1137
1135
|
} catch (error) {
|
|
1138
1136
|
this.logger.error('Error in verifying password', error);
|
package/package.json
CHANGED
package/src/client.d.ts
CHANGED
|
@@ -129,10 +129,9 @@ export declare class DynamicWalletClient {
|
|
|
129
129
|
keyShare: ClientKeyShare;
|
|
130
130
|
password?: string;
|
|
131
131
|
}): Promise<string>;
|
|
132
|
-
storeEncryptedBackupByWallet({ accountAddress, password,
|
|
132
|
+
storeEncryptedBackupByWallet({ accountAddress, password, }: {
|
|
133
133
|
accountAddress: string;
|
|
134
134
|
password?: string;
|
|
135
|
-
walletOperation?: WalletOperation;
|
|
136
135
|
}): Promise<any>;
|
|
137
136
|
updatePassword({ accountAddress, existingPassword, newPassword, }: {
|
|
138
137
|
accountAddress: string;
|
|
@@ -164,11 +163,12 @@ export declare class DynamicWalletClient {
|
|
|
164
163
|
shares: Partial<Record<BackupLocation, string[]>>;
|
|
165
164
|
requiredShareCount: number;
|
|
166
165
|
};
|
|
167
|
-
recoverEncryptedBackupByWallet({ accountAddress, password, walletOperation, shareCount, }: {
|
|
166
|
+
recoverEncryptedBackupByWallet({ accountAddress, password, walletOperation, shareCount, storeRecoveredShares, }: {
|
|
168
167
|
accountAddress: string;
|
|
169
168
|
password?: string;
|
|
170
169
|
walletOperation: WalletOperation;
|
|
171
170
|
shareCount?: number;
|
|
171
|
+
storeRecoveredShares?: boolean;
|
|
172
172
|
}): Promise<any[]>;
|
|
173
173
|
restoreWallets(): Promise<void>;
|
|
174
174
|
backupKeySharesToGoogleDrive({ accountAddress, fileName, oauthAccountId, password, }: {
|
|
@@ -194,11 +194,11 @@ export declare class DynamicWalletClient {
|
|
|
194
194
|
rawPublicKey: EcdsaPublicKey | Uint8Array | undefined;
|
|
195
195
|
clientKeyShares: ClientKeyShare[];
|
|
196
196
|
}>;
|
|
197
|
-
exportClientKeyshares({ accountAddress, password }: {
|
|
197
|
+
exportClientKeyshares({ accountAddress, password, }: {
|
|
198
198
|
accountAddress: string;
|
|
199
199
|
password?: string;
|
|
200
200
|
}): Promise<void>;
|
|
201
|
-
getClientKeyShares({ accountAddress, password }: {
|
|
201
|
+
getClientKeyShares({ accountAddress, password, }: {
|
|
202
202
|
accountAddress: string;
|
|
203
203
|
password?: string;
|
|
204
204
|
}): Promise<ClientKeyShare[]>;
|
|
@@ -210,16 +210,16 @@ export declare class DynamicWalletClient {
|
|
|
210
210
|
*/
|
|
211
211
|
private checkWalletFields;
|
|
212
212
|
/**
|
|
213
|
-
* verifyPassword attempts to recover and decrypt
|
|
214
|
-
*
|
|
215
|
-
*
|
|
213
|
+
* verifyPassword attempts to recover and decrypt a single client key share using the provided password.
|
|
214
|
+
* If successful, the key share is encrypted with the new password. This method solely performs the recovery
|
|
215
|
+
* and decryption without storing the restored key shares. If unsuccessful, it throws an error.
|
|
216
216
|
*/
|
|
217
217
|
verifyPassword({ accountAddress, password, walletOperation, }: {
|
|
218
218
|
accountAddress: string;
|
|
219
219
|
password?: string;
|
|
220
220
|
walletOperation?: WalletOperation;
|
|
221
221
|
}): Promise<void>;
|
|
222
|
-
isPasswordEncrypted({ accountAddress }: {
|
|
222
|
+
isPasswordEncrypted({ accountAddress, }: {
|
|
223
223
|
accountAddress: string;
|
|
224
224
|
}): Promise<boolean>;
|
|
225
225
|
/**
|
package/src/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../packages/src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,wBAAwB,EACxB,gBAAgB,EAIhB,cAAc,EACf,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAIL,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAElB,cAAc,EACf,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAoBrE,OAAO,EAGL,gBAAgB,EAEjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EAChB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../packages/src/client.ts"],"names":[],"mappings":"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"}
|