@dynamic-labs-wallet/node 0.0.190 → 0.0.192

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 CHANGED
@@ -1022,8 +1022,16 @@ class DynamicWalletClient {
1022
1022
  };
1023
1023
  }
1024
1024
  async recoverEncryptedBackupByWallet({ accountAddress, password, walletOperation, shareCount = undefined, storeRecoveredShares = true }) {
1025
+ var _wallet_externalServerKeySharesBackupInfo;
1025
1026
  this.ensureApiClientAuthenticated();
1026
- const wallet = this.walletMap[accountAddress];
1027
+ let wallet = this.walletMap[accountAddress];
1028
+ if (!wallet) {
1029
+ const fetchedWallet = await this.getWalletByAddress(accountAddress);
1030
+ if (!fetchedWallet) {
1031
+ throw new Error(`Wallet not found for address 1: ${accountAddress}`);
1032
+ }
1033
+ wallet = fetchedWallet;
1034
+ }
1027
1035
  this.logger.debug(`recoverEncryptedBackupByWallet wallet: ${walletOperation}`, wallet);
1028
1036
  const { shares } = this.recoverStrategy({
1029
1037
  externalServerKeySharesBackupInfo: wallet.externalServerKeySharesBackupInfo,
@@ -1050,6 +1058,11 @@ class DynamicWalletClient {
1050
1058
  return []; // Return empty array if no shares are available
1051
1059
  }
1052
1060
  const dynamicKeyShares = data.keyShares.filter((keyShare)=>keyShare.encryptedAccountCredential !== null && keyShare.backupLocation === core.BackupLocation.DYNAMIC);
1061
+ var _wallet_externalServerKeySharesBackupInfo_passwordEncrypted;
1062
+ const isPasswordEncrypted = (_wallet_externalServerKeySharesBackupInfo_passwordEncrypted = (_wallet_externalServerKeySharesBackupInfo = wallet.externalServerKeySharesBackupInfo) == null ? void 0 : _wallet_externalServerKeySharesBackupInfo.passwordEncrypted) != null ? _wallet_externalServerKeySharesBackupInfo_passwordEncrypted : false;
1063
+ if (isPasswordEncrypted && !password) {
1064
+ throw new Error('Password is required for decryption but not provided. This backup was encrypted with a password.');
1065
+ }
1053
1066
  const decryptedKeyShares = await Promise.all(dynamicKeyShares.map((keyShare)=>this.decryptKeyShare({
1054
1067
  keyShare: keyShare.encryptedAccountCredential,
1055
1068
  password: password != null ? password : this.environmentId
@@ -1226,23 +1239,29 @@ class DynamicWalletClient {
1226
1239
  return true;
1227
1240
  }
1228
1241
  async getWalletExternalServerKeyShareBackupInfo({ accountAddress }) {
1229
- var _this_walletMap_accountAddress_externalServerKeySharesBackupInfo_backups_BackupLocation_DYNAMIC, _this_walletMap_accountAddress_externalServerKeySharesBackupInfo_backups, _this_walletMap_accountAddress_externalServerKeySharesBackupInfo, _this_walletMap_accountAddress, _user_verifiedCredentials;
1242
+ var _wallet_externalServerKeySharesBackupInfo_backups_BackupLocation_DYNAMIC, _wallet_externalServerKeySharesBackupInfo_backups, _wallet_externalServerKeySharesBackupInfo, _user_verifiedCredentials;
1230
1243
  this.ensureApiClientAuthenticated();
1244
+ let wallet = this.walletMap[accountAddress];
1245
+ if (!wallet) {
1246
+ const fetchedWallet = await this.getWalletByAddress(accountAddress);
1247
+ if (!fetchedWallet) {
1248
+ throw new Error(`Wallet not found for address 2: ${accountAddress}`);
1249
+ }
1250
+ wallet = fetchedWallet;
1251
+ }
1231
1252
  // Return existing backup info if it exists
1232
- if (((_this_walletMap_accountAddress = this.walletMap[accountAddress]) == null ? void 0 : (_this_walletMap_accountAddress_externalServerKeySharesBackupInfo = _this_walletMap_accountAddress.externalServerKeySharesBackupInfo) == null ? void 0 : (_this_walletMap_accountAddress_externalServerKeySharesBackupInfo_backups = _this_walletMap_accountAddress_externalServerKeySharesBackupInfo.backups) == null ? void 0 : (_this_walletMap_accountAddress_externalServerKeySharesBackupInfo_backups_BackupLocation_DYNAMIC = _this_walletMap_accountAddress_externalServerKeySharesBackupInfo_backups[core.BackupLocation.DYNAMIC]) == null ? void 0 : _this_walletMap_accountAddress_externalServerKeySharesBackupInfo_backups_BackupLocation_DYNAMIC.length) > 0) {
1233
- return this.walletMap[accountAddress].externalServerKeySharesBackupInfo;
1253
+ if (((_wallet_externalServerKeySharesBackupInfo = wallet.externalServerKeySharesBackupInfo) == null ? void 0 : (_wallet_externalServerKeySharesBackupInfo_backups = _wallet_externalServerKeySharesBackupInfo.backups) == null ? void 0 : (_wallet_externalServerKeySharesBackupInfo_backups_BackupLocation_DYNAMIC = _wallet_externalServerKeySharesBackupInfo_backups[core.BackupLocation.DYNAMIC]) == null ? void 0 : _wallet_externalServerKeySharesBackupInfo_backups_BackupLocation_DYNAMIC.length) > 0) {
1254
+ return wallet.externalServerKeySharesBackupInfo;
1234
1255
  }
1235
1256
  // Get backup info from server
1236
1257
  const user = await this.apiClient.getUser(uuid.v4());
1237
- const wallet = (_user_verifiedCredentials = user.verifiedCredentials) == null ? void 0 : _user_verifiedCredentials.find((vc)=>vc.address.toLowerCase() === accountAddress.toLowerCase());
1258
+ const walletData = (_user_verifiedCredentials = user.verifiedCredentials) == null ? void 0 : _user_verifiedCredentials.find((vc)=>vc.address.toLowerCase() === accountAddress.toLowerCase());
1238
1259
  return getExternalServerKeyShareBackupInfo({
1239
- walletProperties: wallet == null ? void 0 : wallet.walletProperties
1260
+ walletProperties: walletData == null ? void 0 : walletData.walletProperties
1240
1261
  });
1241
1262
  }
1242
1263
  async getWallet({ accountAddress, walletOperation = core.WalletOperation.NO_OPERATION, shareCount = undefined, password = undefined }) {
1243
- const dynamicRequestId = uuid.v4();
1244
1264
  try {
1245
- var _user_verifiedCredentials;
1246
1265
  this.ensureApiClientAuthenticated();
1247
1266
  const existingWalletCheck = await this.checkWalletFields({
1248
1267
  accountAddress,
@@ -1253,22 +1272,13 @@ class DynamicWalletClient {
1253
1272
  this.logger.debug(`Wallet ${accountAddress} already exists`);
1254
1273
  return this.walletMap[accountAddress];
1255
1274
  }
1256
- //todo: Question - why don't we just call getWallets here? so then all are preloaded
1257
- // Fetch and restore wallet from server
1258
- const user = await this.apiClient.getUser(dynamicRequestId);
1259
- const wallet = (_user_verifiedCredentials = user.verifiedCredentials) == null ? void 0 : _user_verifiedCredentials.find((vc)=>vc.address.toLowerCase() === accountAddress.toLowerCase());
1275
+ const wallet = await this.getWalletByAddress(accountAddress);
1276
+ if (!wallet) {
1277
+ throw new Error(`Wallet not found for address 3: ${accountAddress}`);
1278
+ }
1260
1279
  this.logger.debug('Restoring wallet', wallet);
1261
- const walletProperties = wallet.walletProperties;
1262
- this.walletMap[accountAddress] = _extends({}, this.walletMap[accountAddress], {
1263
- walletId: wallet.id,
1264
- chainName: wallet.chainName,
1265
- accountAddress,
1266
- thresholdSignatureScheme: walletProperties.thresholdSignatureScheme,
1267
- derivationPath: walletProperties.derivationPath,
1268
- externalServerKeySharesBackupInfo: getExternalServerKeyShareBackupInfo({
1269
- walletProperties
1270
- })
1271
- });
1280
+ // The wallet is already processed, so we can use it directly
1281
+ this.walletMap[accountAddress] = wallet;
1272
1282
  if (walletOperation !== core.WalletOperation.NO_OPERATION && await this.requiresRestoreBackupSharesForOperation({
1273
1283
  accountAddress,
1274
1284
  walletOperation
@@ -1296,7 +1306,73 @@ class DynamicWalletClient {
1296
1306
  throw error;
1297
1307
  }
1298
1308
  }
1299
- async getWallets() {
1309
+ /**
1310
+ * Get a single wallet by address
1311
+ * First tries the efficient getWaasWalletByAddress endpoint, falls back to getUser() if not available
1312
+ */ async getWalletByAddress(accountAddress) {
1313
+ // Return cached wallet if available
1314
+ if (this.walletMap[accountAddress]) {
1315
+ return this.walletMap[accountAddress];
1316
+ }
1317
+ this.ensureApiClientAuthenticated();
1318
+ // Try getting single wallet by address first
1319
+ try {
1320
+ const walletResponse = await this.apiClient.getWaasWalletByAddress({
1321
+ walletAddress: accountAddress
1322
+ });
1323
+ const walletProperties = {
1324
+ walletId: walletResponse.wallet.walletId,
1325
+ chainName: walletResponse.wallet.chainName,
1326
+ accountAddress: walletResponse.wallet.accountAddress,
1327
+ externalServerKeyShares: [],
1328
+ derivationPath: walletResponse.wallet.derivationPath,
1329
+ thresholdSignatureScheme: walletResponse.wallet.thresholdSignatureScheme,
1330
+ externalServerKeySharesBackupInfo: getExternalServerKeyShareBackupInfo({
1331
+ walletProperties: {
1332
+ keyShares: [],
1333
+ thresholdSignatureScheme: walletResponse.wallet.thresholdSignatureScheme,
1334
+ derivationPath: walletResponse.wallet.derivationPath
1335
+ }
1336
+ })
1337
+ };
1338
+ // Cache the wallet
1339
+ this.walletMap[accountAddress] = walletProperties;
1340
+ return walletProperties;
1341
+ } catch (error) {
1342
+ var _error_response;
1343
+ // If the new endpoint doesn't exist (404 or not implemented), fall back to getUser()
1344
+ if ((error == null ? void 0 : (_error_response = error.response) == null ? void 0 : _error_response.status) === 404 || (error == null ? void 0 : error.code) === 'ERR_BAD_REQUEST') {
1345
+ var _user_verifiedCredentials, _wallet_walletProperties, _wallet_walletProperties1;
1346
+ this.logger.debug('getWaasWalletByAddress endpoint not available, falling back to getUser()');
1347
+ // Fallback to getUser() approach
1348
+ const user = await this.apiClient.getUser(uuid.v4());
1349
+ const wallet = (_user_verifiedCredentials = user.verifiedCredentials) == null ? void 0 : _user_verifiedCredentials.find((vc)=>vc.walletName === 'dynamicwaas' && vc.address.toLowerCase() === accountAddress.toLowerCase());
1350
+ if (!wallet) {
1351
+ return null;
1352
+ }
1353
+ var _wallet_walletProperties_derivationPath;
1354
+ const walletProperties = {
1355
+ walletId: wallet.id,
1356
+ chainName: wallet.chain,
1357
+ accountAddress: wallet.address,
1358
+ externalServerKeyShares: [],
1359
+ derivationPath: (_wallet_walletProperties_derivationPath = (_wallet_walletProperties = wallet.walletProperties) == null ? void 0 : _wallet_walletProperties.derivationPath) != null ? _wallet_walletProperties_derivationPath : undefined,
1360
+ thresholdSignatureScheme: (_wallet_walletProperties1 = wallet.walletProperties) == null ? void 0 : _wallet_walletProperties1.thresholdSignatureScheme,
1361
+ externalServerKeySharesBackupInfo: getExternalServerKeyShareBackupInfo({
1362
+ walletProperties: wallet.walletProperties || {}
1363
+ })
1364
+ };
1365
+ // Cache the wallet
1366
+ this.walletMap[accountAddress] = walletProperties;
1367
+ return walletProperties;
1368
+ }
1369
+ throw error;
1370
+ }
1371
+ }
1372
+ /**
1373
+ * Get all wallets (kept for backward compatibility but now uses lazy loading)
1374
+ * @deprecated Consider using getWalletByAddress for better performance with large wallet counts
1375
+ */ async getWallets() {
1300
1376
  var _user_verifiedCredentials;
1301
1377
  this.ensureApiClientAuthenticated();
1302
1378
  const user = await this.apiClient.getUser(uuid.v4());
package/index.esm.js CHANGED
@@ -1021,8 +1021,16 @@ class DynamicWalletClient {
1021
1021
  };
1022
1022
  }
1023
1023
  async recoverEncryptedBackupByWallet({ accountAddress, password, walletOperation, shareCount = undefined, storeRecoveredShares = true }) {
1024
+ var _wallet_externalServerKeySharesBackupInfo;
1024
1025
  this.ensureApiClientAuthenticated();
1025
- const wallet = this.walletMap[accountAddress];
1026
+ let wallet = this.walletMap[accountAddress];
1027
+ if (!wallet) {
1028
+ const fetchedWallet = await this.getWalletByAddress(accountAddress);
1029
+ if (!fetchedWallet) {
1030
+ throw new Error(`Wallet not found for address 1: ${accountAddress}`);
1031
+ }
1032
+ wallet = fetchedWallet;
1033
+ }
1026
1034
  this.logger.debug(`recoverEncryptedBackupByWallet wallet: ${walletOperation}`, wallet);
1027
1035
  const { shares } = this.recoverStrategy({
1028
1036
  externalServerKeySharesBackupInfo: wallet.externalServerKeySharesBackupInfo,
@@ -1049,6 +1057,11 @@ class DynamicWalletClient {
1049
1057
  return []; // Return empty array if no shares are available
1050
1058
  }
1051
1059
  const dynamicKeyShares = data.keyShares.filter((keyShare)=>keyShare.encryptedAccountCredential !== null && keyShare.backupLocation === BackupLocation.DYNAMIC);
1060
+ var _wallet_externalServerKeySharesBackupInfo_passwordEncrypted;
1061
+ const isPasswordEncrypted = (_wallet_externalServerKeySharesBackupInfo_passwordEncrypted = (_wallet_externalServerKeySharesBackupInfo = wallet.externalServerKeySharesBackupInfo) == null ? void 0 : _wallet_externalServerKeySharesBackupInfo.passwordEncrypted) != null ? _wallet_externalServerKeySharesBackupInfo_passwordEncrypted : false;
1062
+ if (isPasswordEncrypted && !password) {
1063
+ throw new Error('Password is required for decryption but not provided. This backup was encrypted with a password.');
1064
+ }
1052
1065
  const decryptedKeyShares = await Promise.all(dynamicKeyShares.map((keyShare)=>this.decryptKeyShare({
1053
1066
  keyShare: keyShare.encryptedAccountCredential,
1054
1067
  password: password != null ? password : this.environmentId
@@ -1225,23 +1238,29 @@ class DynamicWalletClient {
1225
1238
  return true;
1226
1239
  }
1227
1240
  async getWalletExternalServerKeyShareBackupInfo({ accountAddress }) {
1228
- var _this_walletMap_accountAddress_externalServerKeySharesBackupInfo_backups_BackupLocation_DYNAMIC, _this_walletMap_accountAddress_externalServerKeySharesBackupInfo_backups, _this_walletMap_accountAddress_externalServerKeySharesBackupInfo, _this_walletMap_accountAddress, _user_verifiedCredentials;
1241
+ var _wallet_externalServerKeySharesBackupInfo_backups_BackupLocation_DYNAMIC, _wallet_externalServerKeySharesBackupInfo_backups, _wallet_externalServerKeySharesBackupInfo, _user_verifiedCredentials;
1229
1242
  this.ensureApiClientAuthenticated();
1243
+ let wallet = this.walletMap[accountAddress];
1244
+ if (!wallet) {
1245
+ const fetchedWallet = await this.getWalletByAddress(accountAddress);
1246
+ if (!fetchedWallet) {
1247
+ throw new Error(`Wallet not found for address 2: ${accountAddress}`);
1248
+ }
1249
+ wallet = fetchedWallet;
1250
+ }
1230
1251
  // Return existing backup info if it exists
1231
- if (((_this_walletMap_accountAddress = this.walletMap[accountAddress]) == null ? void 0 : (_this_walletMap_accountAddress_externalServerKeySharesBackupInfo = _this_walletMap_accountAddress.externalServerKeySharesBackupInfo) == null ? void 0 : (_this_walletMap_accountAddress_externalServerKeySharesBackupInfo_backups = _this_walletMap_accountAddress_externalServerKeySharesBackupInfo.backups) == null ? void 0 : (_this_walletMap_accountAddress_externalServerKeySharesBackupInfo_backups_BackupLocation_DYNAMIC = _this_walletMap_accountAddress_externalServerKeySharesBackupInfo_backups[BackupLocation.DYNAMIC]) == null ? void 0 : _this_walletMap_accountAddress_externalServerKeySharesBackupInfo_backups_BackupLocation_DYNAMIC.length) > 0) {
1232
- return this.walletMap[accountAddress].externalServerKeySharesBackupInfo;
1252
+ if (((_wallet_externalServerKeySharesBackupInfo = wallet.externalServerKeySharesBackupInfo) == null ? void 0 : (_wallet_externalServerKeySharesBackupInfo_backups = _wallet_externalServerKeySharesBackupInfo.backups) == null ? void 0 : (_wallet_externalServerKeySharesBackupInfo_backups_BackupLocation_DYNAMIC = _wallet_externalServerKeySharesBackupInfo_backups[BackupLocation.DYNAMIC]) == null ? void 0 : _wallet_externalServerKeySharesBackupInfo_backups_BackupLocation_DYNAMIC.length) > 0) {
1253
+ return wallet.externalServerKeySharesBackupInfo;
1233
1254
  }
1234
1255
  // Get backup info from server
1235
1256
  const user = await this.apiClient.getUser(v4());
1236
- const wallet = (_user_verifiedCredentials = user.verifiedCredentials) == null ? void 0 : _user_verifiedCredentials.find((vc)=>vc.address.toLowerCase() === accountAddress.toLowerCase());
1257
+ const walletData = (_user_verifiedCredentials = user.verifiedCredentials) == null ? void 0 : _user_verifiedCredentials.find((vc)=>vc.address.toLowerCase() === accountAddress.toLowerCase());
1237
1258
  return getExternalServerKeyShareBackupInfo({
1238
- walletProperties: wallet == null ? void 0 : wallet.walletProperties
1259
+ walletProperties: walletData == null ? void 0 : walletData.walletProperties
1239
1260
  });
1240
1261
  }
1241
1262
  async getWallet({ accountAddress, walletOperation = WalletOperation.NO_OPERATION, shareCount = undefined, password = undefined }) {
1242
- const dynamicRequestId = v4();
1243
1263
  try {
1244
- var _user_verifiedCredentials;
1245
1264
  this.ensureApiClientAuthenticated();
1246
1265
  const existingWalletCheck = await this.checkWalletFields({
1247
1266
  accountAddress,
@@ -1252,22 +1271,13 @@ class DynamicWalletClient {
1252
1271
  this.logger.debug(`Wallet ${accountAddress} already exists`);
1253
1272
  return this.walletMap[accountAddress];
1254
1273
  }
1255
- //todo: Question - why don't we just call getWallets here? so then all are preloaded
1256
- // Fetch and restore wallet from server
1257
- const user = await this.apiClient.getUser(dynamicRequestId);
1258
- const wallet = (_user_verifiedCredentials = user.verifiedCredentials) == null ? void 0 : _user_verifiedCredentials.find((vc)=>vc.address.toLowerCase() === accountAddress.toLowerCase());
1274
+ const wallet = await this.getWalletByAddress(accountAddress);
1275
+ if (!wallet) {
1276
+ throw new Error(`Wallet not found for address 3: ${accountAddress}`);
1277
+ }
1259
1278
  this.logger.debug('Restoring wallet', wallet);
1260
- const walletProperties = wallet.walletProperties;
1261
- this.walletMap[accountAddress] = _extends({}, this.walletMap[accountAddress], {
1262
- walletId: wallet.id,
1263
- chainName: wallet.chainName,
1264
- accountAddress,
1265
- thresholdSignatureScheme: walletProperties.thresholdSignatureScheme,
1266
- derivationPath: walletProperties.derivationPath,
1267
- externalServerKeySharesBackupInfo: getExternalServerKeyShareBackupInfo({
1268
- walletProperties
1269
- })
1270
- });
1279
+ // The wallet is already processed, so we can use it directly
1280
+ this.walletMap[accountAddress] = wallet;
1271
1281
  if (walletOperation !== WalletOperation.NO_OPERATION && await this.requiresRestoreBackupSharesForOperation({
1272
1282
  accountAddress,
1273
1283
  walletOperation
@@ -1295,7 +1305,73 @@ class DynamicWalletClient {
1295
1305
  throw error;
1296
1306
  }
1297
1307
  }
1298
- async getWallets() {
1308
+ /**
1309
+ * Get a single wallet by address
1310
+ * First tries the efficient getWaasWalletByAddress endpoint, falls back to getUser() if not available
1311
+ */ async getWalletByAddress(accountAddress) {
1312
+ // Return cached wallet if available
1313
+ if (this.walletMap[accountAddress]) {
1314
+ return this.walletMap[accountAddress];
1315
+ }
1316
+ this.ensureApiClientAuthenticated();
1317
+ // Try getting single wallet by address first
1318
+ try {
1319
+ const walletResponse = await this.apiClient.getWaasWalletByAddress({
1320
+ walletAddress: accountAddress
1321
+ });
1322
+ const walletProperties = {
1323
+ walletId: walletResponse.wallet.walletId,
1324
+ chainName: walletResponse.wallet.chainName,
1325
+ accountAddress: walletResponse.wallet.accountAddress,
1326
+ externalServerKeyShares: [],
1327
+ derivationPath: walletResponse.wallet.derivationPath,
1328
+ thresholdSignatureScheme: walletResponse.wallet.thresholdSignatureScheme,
1329
+ externalServerKeySharesBackupInfo: getExternalServerKeyShareBackupInfo({
1330
+ walletProperties: {
1331
+ keyShares: [],
1332
+ thresholdSignatureScheme: walletResponse.wallet.thresholdSignatureScheme,
1333
+ derivationPath: walletResponse.wallet.derivationPath
1334
+ }
1335
+ })
1336
+ };
1337
+ // Cache the wallet
1338
+ this.walletMap[accountAddress] = walletProperties;
1339
+ return walletProperties;
1340
+ } catch (error) {
1341
+ var _error_response;
1342
+ // If the new endpoint doesn't exist (404 or not implemented), fall back to getUser()
1343
+ if ((error == null ? void 0 : (_error_response = error.response) == null ? void 0 : _error_response.status) === 404 || (error == null ? void 0 : error.code) === 'ERR_BAD_REQUEST') {
1344
+ var _user_verifiedCredentials, _wallet_walletProperties, _wallet_walletProperties1;
1345
+ this.logger.debug('getWaasWalletByAddress endpoint not available, falling back to getUser()');
1346
+ // Fallback to getUser() approach
1347
+ const user = await this.apiClient.getUser(v4());
1348
+ const wallet = (_user_verifiedCredentials = user.verifiedCredentials) == null ? void 0 : _user_verifiedCredentials.find((vc)=>vc.walletName === 'dynamicwaas' && vc.address.toLowerCase() === accountAddress.toLowerCase());
1349
+ if (!wallet) {
1350
+ return null;
1351
+ }
1352
+ var _wallet_walletProperties_derivationPath;
1353
+ const walletProperties = {
1354
+ walletId: wallet.id,
1355
+ chainName: wallet.chain,
1356
+ accountAddress: wallet.address,
1357
+ externalServerKeyShares: [],
1358
+ derivationPath: (_wallet_walletProperties_derivationPath = (_wallet_walletProperties = wallet.walletProperties) == null ? void 0 : _wallet_walletProperties.derivationPath) != null ? _wallet_walletProperties_derivationPath : undefined,
1359
+ thresholdSignatureScheme: (_wallet_walletProperties1 = wallet.walletProperties) == null ? void 0 : _wallet_walletProperties1.thresholdSignatureScheme,
1360
+ externalServerKeySharesBackupInfo: getExternalServerKeyShareBackupInfo({
1361
+ walletProperties: wallet.walletProperties || {}
1362
+ })
1363
+ };
1364
+ // Cache the wallet
1365
+ this.walletMap[accountAddress] = walletProperties;
1366
+ return walletProperties;
1367
+ }
1368
+ throw error;
1369
+ }
1370
+ }
1371
+ /**
1372
+ * Get all wallets (kept for backward compatibility but now uses lazy loading)
1373
+ * @deprecated Consider using getWalletByAddress for better performance with large wallet counts
1374
+ */ async getWallets() {
1299
1375
  var _user_verifiedCredentials;
1300
1376
  this.ensureApiClientAuthenticated();
1301
1377
  const user = await this.apiClient.getUser(v4());
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@dynamic-labs-wallet/node",
3
- "version": "0.0.190",
3
+ "version": "0.0.192",
4
4
  "license": "Licensed under the Dynamic Labs, Inc. Terms Of Service (https://www.dynamic.xyz/terms-conditions)",
5
5
  "type": "module",
6
6
  "dependencies": {
7
- "@dynamic-labs-wallet/core": "0.0.190",
7
+ "@dynamic-labs-wallet/core": "0.0.192",
8
8
  "@dynamic-labs-wallet/forward-mpc-client": "0.1.2",
9
9
  "@dynamic-labs/logger": "^4.25.3",
10
10
  "@dynamic-labs/sdk-api-core": "^0.0.801",
package/src/client.d.ts CHANGED
@@ -270,6 +270,15 @@ export declare class DynamicWalletClient {
270
270
  shareCount?: number;
271
271
  password?: string;
272
272
  }): Promise<WalletProperties>;
273
+ /**
274
+ * Get a single wallet by address
275
+ * First tries the efficient getWaasWalletByAddress endpoint, falls back to getUser() if not available
276
+ */
277
+ getWalletByAddress(accountAddress: string): Promise<WalletProperties | null>;
278
+ /**
279
+ * Get all wallets (kept for backward compatibility but now uses lazy loading)
280
+ * @deprecated Consider using getWalletByAddress for better performance with large wallet counts
281
+ */
273
282
  getWallets(): Promise<any>;
274
283
  }
275
284
  //# sourceMappingURL=client.d.ts.map
@@ -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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"}