@dynamic-labs-wallet/browser 0.0.164 → 0.0.166

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
@@ -475,7 +475,8 @@ const getClientKeyShareBackupInfo = (params)=>{
475
475
  [core.BackupLocation.GOOGLE_DRIVE]: [],
476
476
  [core.BackupLocation.ICLOUD]: [],
477
477
  [core.BackupLocation.USER]: [],
478
- [core.BackupLocation.EXTERNAL]: []
478
+ [core.BackupLocation.EXTERNAL]: [],
479
+ [core.BackupLocation.DELEGATED]: []
479
480
  };
480
481
  if (!(params == null ? void 0 : (_params_walletProperties = params.walletProperties) == null ? void 0 : _params_walletProperties.keyShares)) {
481
482
  return {
@@ -720,6 +721,94 @@ const localStorageWriteTest = {
720
721
  }
721
722
  });
722
723
 
724
+ /** Algorithm label for the new hybrid encryption standard */ const ALG_LABEL_RSA = 'HYBRID-RSA-AES-256';
725
+ /**
726
+ * Convert base64 to base64url encoding
727
+ */ const toBase64Url = (buffer)=>{
728
+ const base64 = Buffer.from(buffer).toString('base64');
729
+ return base64.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
730
+ };
731
+ /**
732
+ * Convert ArrayBuffer to base64url
733
+ */ const arrayBufferToBase64Url = (buffer)=>{
734
+ return toBase64Url(buffer);
735
+ };
736
+ /**
737
+ * Import RSA public key from PEM format
738
+ */ const importRSAPublicKey = async (publicKeyPem)=>{
739
+ // Remove PEM headers and decode base64
740
+ const pemHeader = '-----BEGIN PUBLIC KEY-----';
741
+ const pemFooter = '-----END PUBLIC KEY-----';
742
+ const pemContents = publicKeyPem.replace(pemHeader, '').replace(pemFooter, '').replace(/\s/g, '');
743
+ const binaryDer = Buffer.from(pemContents, 'base64').toString('binary');
744
+ const keyData = new Uint8Array(binaryDer.length);
745
+ for(let i = 0; i < binaryDer.length; i++){
746
+ keyData[i] = binaryDer.charCodeAt(i);
747
+ }
748
+ return await crypto.subtle.importKey('spki', keyData, {
749
+ name: 'RSA-OAEP',
750
+ hash: 'SHA-256'
751
+ }, false, [
752
+ 'encrypt'
753
+ ]);
754
+ };
755
+ /**
756
+ * Creates the encoded envelope bytes from the encrypted data components
757
+ */ const createEncodedEnvelopeBytes = (iv, ciphertext, authTag, encryptedAesKey)=>{
758
+ const envelopeData = {
759
+ algorithm: ALG_LABEL_RSA,
760
+ iv: arrayBufferToBase64Url(iv.buffer),
761
+ encryptedData: arrayBufferToBase64Url(ciphertext.buffer),
762
+ authTag: arrayBufferToBase64Url(authTag.buffer),
763
+ encryptedKey: arrayBufferToBase64Url(encryptedAesKey)
764
+ };
765
+ return Buffer.from(new TextEncoder().encode(JSON.stringify(envelopeData))).toString('base64');
766
+ };
767
+ /**
768
+ * Encrypts data using HYBRID-RSA-AES-256 encryption scheme with Web Crypto API.
769
+ * 1. Generate random AES-256 key
770
+ * 2. Encrypt AES key with RSA public key
771
+ * 3. Encrypt data with AES-256-GCM
772
+ */ const encryptDelegatedKeyShare = async (data, publicKeyPem)=>{
773
+ try {
774
+ // Step 1: Generate a random AES-256 key and 16-byte IV
775
+ const aesKey = await crypto.subtle.generateKey({
776
+ name: 'AES-GCM',
777
+ length: 256
778
+ }, true, [
779
+ 'encrypt'
780
+ ]);
781
+ const iv = crypto.getRandomValues(new Uint8Array(16)); // 128-bit IV for GCM
782
+ // Step 2: Encrypt the data with AES-256-GCM
783
+ const plaintext = new TextEncoder().encode(data);
784
+ const encryptedData = await crypto.subtle.encrypt({
785
+ name: 'AES-GCM',
786
+ iv: iv
787
+ }, aesKey, plaintext);
788
+ // Extract the auth tag from the encrypted data (last 16 bytes)
789
+ const encryptedDataArray = new Uint8Array(encryptedData);
790
+ const authTag = encryptedDataArray.slice(-16);
791
+ const ciphertext = encryptedDataArray.slice(0, -16);
792
+ // Step 3: Encrypt the AES key with RSA public key
793
+ const rsaPublicKey = await importRSAPublicKey(publicKeyPem);
794
+ // Export the AES key to encrypt it
795
+ const aesKeyData = await crypto.subtle.exportKey('raw', aesKey);
796
+ const encryptedAesKey = await crypto.subtle.encrypt({
797
+ name: 'RSA-OAEP'
798
+ }, rsaPublicKey, aesKeyData);
799
+ return {
800
+ algorithm: ALG_LABEL_RSA,
801
+ iv: arrayBufferToBase64Url(iv.buffer),
802
+ encryptedData: arrayBufferToBase64Url(ciphertext.buffer),
803
+ authTag: arrayBufferToBase64Url(authTag.buffer),
804
+ encryptedKey: arrayBufferToBase64Url(encryptedAesKey),
805
+ encodedEnvelopeBytes: createEncodedEnvelopeBytes(iv, ciphertext, authTag, encryptedAesKey)
806
+ };
807
+ } catch (error) {
808
+ throw new Error(`Encryption failed: ${error instanceof Error ? error.message : String(error)}`);
809
+ }
810
+ };
811
+
723
812
  class DynamicWalletClient {
724
813
  getAuthMode() {
725
814
  return this.authMode;
@@ -1256,6 +1345,7 @@ class DynamicWalletClient {
1256
1345
  async reshare({ chainName, accountAddress, oldThresholdSignatureScheme, newThresholdSignatureScheme, password = undefined, signedSessionId, backupToGoogleDrive = false, delegateToProjectEnvironment = false, mfaToken }) {
1257
1346
  const dynamicRequestId = uuid.v4();
1258
1347
  try {
1348
+ var _publicKey_key, _publicKey_key1;
1259
1349
  await this.verifyPassword({
1260
1350
  accountAddress,
1261
1351
  password,
@@ -1307,35 +1397,54 @@ class DynamicWalletClient {
1307
1397
  chainName,
1308
1398
  baseRelayUrl: this.baseMPCRelayApiUrl
1309
1399
  });
1310
- const reshareResults = await Promise.all([
1311
- ...newClientInitKeygenResults.map((keygenResult)=>mpcSigner.reshareNewParty(roomId, oldMpcConfig.threshold, newMpcConfig.threshold, keygenResult, allPartyKeygenIds)),
1312
- ...existingClientKeyShares.map((keyShare)=>mpcSigner.reshareRemainingParty(roomId, newMpcConfig.threshold, keyShare, allPartyKeygenIds))
1400
+ const existingResharePromises = existingClientKeyShares.map((keyShare)=>mpcSigner.reshareRemainingParty(roomId, newMpcConfig.threshold, keyShare, allPartyKeygenIds));
1401
+ const newResharePromises = newClientInitKeygenResults.map((keygenResult)=>mpcSigner.reshareNewParty(roomId, oldMpcConfig.threshold, newMpcConfig.threshold, keygenResult, allPartyKeygenIds));
1402
+ // Run both share parties in parallel by group
1403
+ const [existingReshareResults, newReshareResults] = await Promise.all([
1404
+ Promise.all(existingResharePromises),
1405
+ Promise.all(newResharePromises)
1313
1406
  ]);
1407
+ const clientKeyshares = delegateToProjectEnvironment ? [
1408
+ ...existingReshareResults
1409
+ ] : [
1410
+ ...existingReshareResults,
1411
+ ...newReshareResults
1412
+ ];
1314
1413
  this.walletMap[accountAddress] = _extends({}, this.walletMap[accountAddress], {
1315
1414
  thresholdSignatureScheme: newThresholdSignatureScheme
1316
1415
  });
1317
1416
  await this.setClientKeySharesToLocalStorage({
1318
1417
  accountAddress,
1319
- clientKeyShares: reshareResults,
1418
+ clientKeyShares: clientKeyshares,
1320
1419
  overwriteOrMerge: 'overwrite'
1321
1420
  });
1322
- if (delegateToProjectEnvironment) {
1323
- await this.storeEncryptedBackupByDelegatedWallet({
1324
- accountAddress,
1325
- password,
1326
- signedSessionId
1327
- });
1328
- } else {
1329
- await this.storeEncryptedBackupByWallet({
1330
- accountAddress,
1331
- password,
1332
- signedSessionId,
1333
- backupToGoogleDrive
1334
- });
1421
+ await this.storeEncryptedBackupByWallet({
1422
+ accountAddress,
1423
+ password,
1424
+ signedSessionId,
1425
+ backupToGoogleDrive,
1426
+ delegatedLocations: newReshareResults.map(()=>({
1427
+ location: core.BackupLocation.DELEGATED
1428
+ }))
1429
+ });
1430
+ const publicKey = await this.apiClient.getDelegatedEncryptionKey({
1431
+ environmentId: this.environmentId
1432
+ });
1433
+ if (!(publicKey == null ? void 0 : (_publicKey_key = publicKey.key) == null ? void 0 : _publicKey_key.publicKeyPemB64)) {
1434
+ throw new Error('Public key not found');
1335
1435
  }
1436
+ const encryptedDelegatedKeyShareEnvelope = await encryptDelegatedKeyShare(JSON.stringify(clientKeyshares[0]), publicKey == null ? void 0 : (_publicKey_key1 = publicKey.key) == null ? void 0 : _publicKey_key1.publicKeyPemB64);
1437
+ await this.apiClient.publishDelegatedKeyShare({
1438
+ walletId: this.walletMap[accountAddress].walletId,
1439
+ encryptedKeyShare: encryptedDelegatedKeyShareEnvelope == null ? void 0 : encryptedDelegatedKeyShareEnvelope.encodedEnvelopeBytes,
1440
+ encryptionVersion: ENCRYPTION_VERSION_CURRENT,
1441
+ signedSessionId,
1442
+ requiresSignedSessionId: this.requiresSignedSessionId(),
1443
+ dynamicRequestId
1444
+ });
1336
1445
  } catch (error) {
1337
1446
  logError({
1338
- message: 'Error in reshare',
1447
+ message: 'Error in reshare, resetting wallet to previous state',
1339
1448
  error: error,
1340
1449
  context: {
1341
1450
  accountAddress,
@@ -1346,36 +1455,14 @@ class DynamicWalletClient {
1346
1455
  dynamicRequestId
1347
1456
  }
1348
1457
  });
1349
- throw error;
1350
- }
1351
- }
1352
- async sendKeySharesToDelegatedAccess({ accountAddress, chainName, delegatedKeyShares, environmentId, userId, walletId }) {
1353
- try {
1354
- if (!this.delegatedAccessEndpoint) {
1355
- throw new Error('Cannot send key shares to delegated access because delegated access endpoint is not set');
1356
- }
1357
- const delegatedAccessEndpoint = this.delegatedAccessEndpoint;
1358
- const response = await fetch(delegatedAccessEndpoint, {
1359
- method: 'POST',
1360
- body: JSON.stringify({
1361
- chainName,
1362
- accountAddress,
1363
- delegatedKeyShares,
1364
- environmentId,
1365
- userId,
1366
- walletId
1367
- })
1458
+ // reset user wallet when reshare fails, this would allow the client to recover wallets from an active state
1459
+ this.walletMap[accountAddress] = _extends({}, this.walletMap[accountAddress], {
1460
+ thresholdSignatureScheme: oldThresholdSignatureScheme
1368
1461
  });
1369
- const data = await response.json();
1370
- return data;
1371
- } catch (error) {
1372
- logError({
1373
- message: 'Error in sendKeySharesToDelegatedAccess',
1374
- error: error,
1375
- context: {
1376
- accountAddress,
1377
- chainName
1378
- }
1462
+ await this.setClientKeySharesToLocalStorage({
1463
+ accountAddress,
1464
+ clientKeyShares: [],
1465
+ overwriteOrMerge: 'overwrite'
1379
1466
  });
1380
1467
  throw error;
1381
1468
  }
@@ -1386,12 +1473,6 @@ class DynamicWalletClient {
1386
1473
  if (!delegateToProjectEnvironment) {
1387
1474
  throw new Error('Delegation is not allowed for this project environment');
1388
1475
  }
1389
- const environmentSettings = await this.apiClient.getEnvironmentSettings();
1390
- const delegatedAccessEndpoint = environmentSettings.sdk.waas.delegatedAccessEndpoint;
1391
- if (!delegatedAccessEndpoint) {
1392
- throw new Error('Cannot delegate key shares because verified access endpoint is not set in the environment settings');
1393
- }
1394
- this.delegatedAccessEndpoint = delegatedAccessEndpoint;
1395
1476
  const wallet = await this.getWallet({
1396
1477
  accountAddress,
1397
1478
  walletOperation: core.WalletOperation.REACH_ALL_PARTIES,
@@ -1402,25 +1483,20 @@ class DynamicWalletClient {
1402
1483
  throw new Error('Delegation is not allowed for SUI');
1403
1484
  }
1404
1485
  const currentThresholdSignatureScheme = this.walletMap[accountAddress].thresholdSignatureScheme;
1405
- if (currentThresholdSignatureScheme === core.ThresholdSignatureScheme.TWO_OF_TWO) {
1406
- // Reshare to 2-of-3, which will automatically handle the backup distribution
1407
- await this.reshare({
1408
- chainName: this.walletMap[accountAddress].chainName,
1409
- accountAddress,
1410
- oldThresholdSignatureScheme: currentThresholdSignatureScheme,
1411
- newThresholdSignatureScheme: core.ThresholdSignatureScheme.TWO_OF_THREE,
1412
- password,
1413
- signedSessionId,
1414
- backupToGoogleDrive: false,
1415
- delegateToProjectEnvironment: true,
1416
- mfaToken
1417
- });
1418
- const backupInfo = this.walletMap[accountAddress].clientKeySharesBackupInfo;
1419
- const delegatedKeyShares = backupInfo.backups[core.BackupLocation.EXTERNAL] || [];
1420
- return delegatedKeyShares;
1421
- } else {
1422
- throw new Error('Delegation is not allowed for this threshold signature scheme');
1423
- }
1486
+ await this.reshare({
1487
+ chainName: this.walletMap[accountAddress].chainName,
1488
+ accountAddress,
1489
+ oldThresholdSignatureScheme: currentThresholdSignatureScheme,
1490
+ newThresholdSignatureScheme: core.ThresholdSignatureScheme.TWO_OF_THREE,
1491
+ password,
1492
+ signedSessionId,
1493
+ backupToGoogleDrive: false,
1494
+ delegateToProjectEnvironment: true,
1495
+ mfaToken
1496
+ });
1497
+ const backupInfo = this.walletMap[accountAddress].clientKeySharesBackupInfo;
1498
+ const delegatedKeyShares = backupInfo.backups[core.BackupLocation.EXTERNAL] || [];
1499
+ return delegatedKeyShares;
1424
1500
  } catch (error) {
1425
1501
  logError({
1426
1502
  message: 'Error in delegateKeyShares',
@@ -1622,7 +1698,7 @@ class DynamicWalletClient {
1622
1698
  * @param params.signedSessionId - Optional signed session ID for authentication
1623
1699
  * @param params.backupToGoogleDrive - Whether to backup to Google Drive (defaults to false)
1624
1700
  * @returns Promise with backup metadata including share locations and IDs
1625
- */ async storeEncryptedBackupByWallet({ accountAddress, clientKeyShares = undefined, password = undefined, signedSessionId, backupToGoogleDrive = false }) {
1701
+ */ async storeEncryptedBackupByWallet({ accountAddress, clientKeyShares = undefined, password = undefined, signedSessionId, backupToGoogleDrive = false, delegatedLocations = [] }) {
1626
1702
  const dynamicRequestId = uuid.v4();
1627
1703
  try {
1628
1704
  var _this_walletMap_accountAddress, _this_walletMap_accountAddress_clientKeySharesBackupInfo_backups_BackupLocation_GOOGLE_DRIVE, _this_walletMap_accountAddress_clientKeySharesBackupInfo_backups, _this_walletMap_accountAddress_clientKeySharesBackupInfo, _this_walletMap_accountAddress1;
@@ -1690,6 +1766,9 @@ class DynamicWalletClient {
1690
1766
  location: core.BackupLocation.GOOGLE_DRIVE
1691
1767
  });
1692
1768
  }
1769
+ if ((delegatedLocations == null ? void 0 : delegatedLocations.length) > 0) {
1770
+ locations.push(...delegatedLocations);
1771
+ }
1693
1772
  const backupData = await this.apiClient.markKeySharesAsBackedUp({
1694
1773
  walletId: this.walletMap[accountAddress].walletId,
1695
1774
  locations,
@@ -1724,110 +1803,6 @@ class DynamicWalletClient {
1724
1803
  throw error;
1725
1804
  }
1726
1805
  }
1727
- async storeEncryptedBackupByDelegatedWallet({ accountAddress, clientKeyShares = undefined, password = undefined, signedSessionId }) {
1728
- const dynamicRequestId = uuid.v4();
1729
- try {
1730
- var _this_walletMap_accountAddress, _this_walletMap_accountAddress_clientKeySharesBackupInfo_backups_BackupLocation_EXTERNAL, _this_walletMap_accountAddress_clientKeySharesBackupInfo_backups, _this_walletMap_accountAddress_clientKeySharesBackupInfo, _this_walletMap_accountAddress1;
1731
- const keySharesToBackup = clientKeyShares != null ? clientKeyShares : await this.getClientKeySharesFromLocalStorage({
1732
- accountAddress
1733
- });
1734
- if (!((_this_walletMap_accountAddress = this.walletMap[accountAddress]) == null ? void 0 : _this_walletMap_accountAddress.walletId)) {
1735
- const error = new Error(`WalletId not found for accountAddress ${accountAddress}`);
1736
- logError({
1737
- message: 'Error in storeEncryptedBackupByWallet, wallet or walletId not found from the wallet map',
1738
- error,
1739
- context: {
1740
- accountAddress,
1741
- walletMap: this.walletMap
1742
- }
1743
- });
1744
- throw error;
1745
- }
1746
- let dynamicClientKeyShares = [];
1747
- let delegatedKeyShares = [];
1748
- const encryptedKeyShares = await Promise.all(keySharesToBackup.map((keyShare)=>this.encryptKeyShare({
1749
- keyShare,
1750
- password
1751
- })));
1752
- const hasExistingDelegatedBackup = ((_this_walletMap_accountAddress1 = this.walletMap[accountAddress]) == null ? void 0 : (_this_walletMap_accountAddress_clientKeySharesBackupInfo = _this_walletMap_accountAddress1.clientKeySharesBackupInfo) == null ? void 0 : (_this_walletMap_accountAddress_clientKeySharesBackupInfo_backups = _this_walletMap_accountAddress_clientKeySharesBackupInfo.backups) == null ? void 0 : (_this_walletMap_accountAddress_clientKeySharesBackupInfo_backups_BackupLocation_EXTERNAL = _this_walletMap_accountAddress_clientKeySharesBackupInfo_backups[core.BackupLocation.EXTERNAL]) == null ? void 0 : _this_walletMap_accountAddress_clientKeySharesBackupInfo_backups_BackupLocation_EXTERNAL.length) > 0;
1753
- const shouldBackupToDelegated = hasExistingDelegatedBackup || keySharesToBackup.length >= 2;
1754
- if (shouldBackupToDelegated) {
1755
- // For 2 shares: 1 to backend, 1 to delegated
1756
- // For 3+ shares: N-1 to backend, 1 to delegated
1757
- dynamicClientKeyShares = encryptedKeyShares.slice(0, -core.DELEGATED_SHARE_COUNT);
1758
- delegatedKeyShares = encryptedKeyShares.slice(-core.DELEGATED_SHARE_COUNT);
1759
- } else {
1760
- dynamicClientKeyShares = encryptedKeyShares;
1761
- }
1762
- const data = await this.apiClient.storeEncryptedBackupByWallet({
1763
- walletId: this.walletMap[accountAddress].walletId,
1764
- encryptedKeyShares: dynamicClientKeyShares,
1765
- passwordEncrypted: Boolean(password) && password !== this.environmentId,
1766
- encryptionVersion: ENCRYPTION_VERSION_CURRENT,
1767
- signedSessionId,
1768
- authMode: this.authMode,
1769
- requiresSignedSessionId: this.requiresSignedSessionId(),
1770
- dynamicRequestId
1771
- });
1772
- await this.apiClient.markKeySharesAsBackedUp({
1773
- walletId: this.walletMap[accountAddress].walletId,
1774
- dynamicRequestId,
1775
- locations: [
1776
- {
1777
- location: core.BackupLocation.DYNAMIC
1778
- }
1779
- ]
1780
- });
1781
- if (delegatedKeyShares.length > 0) {
1782
- const wallet = this.walletMap[accountAddress];
1783
- var _this_userId;
1784
- const delegatedKeyShareIds = await this.sendKeySharesToDelegatedAccess({
1785
- accountAddress,
1786
- chainName: wallet.chainName,
1787
- environmentId: this.environmentId,
1788
- walletId: wallet.walletId,
1789
- userId: (_this_userId = this.userId) != null ? _this_userId : '',
1790
- delegatedKeyShares: delegatedKeyShares
1791
- });
1792
- data.keyShares.push({
1793
- backupLocation: core.BackupLocation.EXTERNAL,
1794
- id: delegatedKeyShareIds
1795
- });
1796
- //todo: combine with user share service backup once other branch is merged
1797
- await this.apiClient.markKeySharesAsBackedUp({
1798
- walletId: this.walletMap[accountAddress].walletId,
1799
- locations: [
1800
- {
1801
- location: core.BackupLocation.EXTERNAL
1802
- }
1803
- ],
1804
- dynamicRequestId
1805
- });
1806
- }
1807
- const updatedBackupInfo = getClientKeyShareBackupInfo({
1808
- walletProperties: {
1809
- derivationPath: this.walletMap[accountAddress].derivationPath,
1810
- keyShares: data.keyShares,
1811
- thresholdSignatureScheme: this.walletMap[accountAddress].thresholdSignatureScheme
1812
- }
1813
- });
1814
- this.walletMap[accountAddress] = _extends({}, this.walletMap[accountAddress], {
1815
- clientKeySharesBackupInfo: updatedBackupInfo
1816
- });
1817
- await this.storage.setItem(this.storageKey, JSON.stringify(this.walletMap));
1818
- return data;
1819
- } catch (error) {
1820
- logError({
1821
- message: 'Error in storeEncryptedBackupByDelegatedWallet',
1822
- error: error,
1823
- context: {
1824
- accountAddress,
1825
- dynamicRequestId
1826
- }
1827
- });
1828
- throw error;
1829
- }
1830
- }
1831
1806
  async storeEncryptedBackupByWalletWithRetry({ accountAddress, clientKeyShares, password, signedSessionId }) {
1832
1807
  await retryPromise(()=>this.storeEncryptedBackupByWallet({
1833
1808
  accountAddress,
@@ -2495,7 +2470,6 @@ class DynamicWalletClient {
2495
2470
  sdkVersion }){
2496
2471
  this.userId = undefined;
2497
2472
  this.sessionId = undefined;
2498
- this.delegatedAccessEndpoint = undefined;
2499
2473
  this.initializePromise = null;
2500
2474
  this.logger = logger;
2501
2475
  this.walletMap = {} // todo: store in session storage
package/index.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import { SigningAlgorithm, MPC_RELAY_PROD_API_URL, getMPCChainConfig, AuthMode, BackupLocation, parseNamespacedVersion, getClientThreshold, MPC_CONFIG, getTSSConfig, WalletOperation, getReshareConfig, FEATURE_FLAGS, ThresholdSignatureScheme, DELEGATED_SHARE_COUNT, verifiedCredentialNameToChainEnum, DynamicApiClient, getEnvironmentFromUrl, IFRAME_DOMAIN_MAP } from '@dynamic-labs-wallet/core';
1
+ import { SigningAlgorithm, MPC_RELAY_PROD_API_URL, getMPCChainConfig, AuthMode, BackupLocation, parseNamespacedVersion, getClientThreshold, MPC_CONFIG, getTSSConfig, WalletOperation, getReshareConfig, FEATURE_FLAGS, ThresholdSignatureScheme, verifiedCredentialNameToChainEnum, DynamicApiClient, getEnvironmentFromUrl, IFRAME_DOMAIN_MAP } from '@dynamic-labs-wallet/core';
2
2
  export * from '@dynamic-labs-wallet/core';
3
3
  import { BIP340, ExportableEd25519, Ecdsa, MessageHash, EcdsaKeygenResult, ExportableEd25519KeygenResult, BIP340KeygenResult } from './internal/web';
4
4
  export { BIP340, BIP340InitKeygenResult, BIP340KeygenResult, Ecdsa, EcdsaInitKeygenResult, EcdsaKeygenResult, EcdsaPublicKey, EcdsaSignature, Ed25519, Ed25519InitKeygenResult, Ed25519KeygenResult, MessageHash } from './internal/web';
@@ -476,7 +476,8 @@ const getClientKeyShareBackupInfo = (params)=>{
476
476
  [BackupLocation.GOOGLE_DRIVE]: [],
477
477
  [BackupLocation.ICLOUD]: [],
478
478
  [BackupLocation.USER]: [],
479
- [BackupLocation.EXTERNAL]: []
479
+ [BackupLocation.EXTERNAL]: [],
480
+ [BackupLocation.DELEGATED]: []
480
481
  };
481
482
  if (!(params == null ? void 0 : (_params_walletProperties = params.walletProperties) == null ? void 0 : _params_walletProperties.keyShares)) {
482
483
  return {
@@ -721,6 +722,94 @@ const localStorageWriteTest = {
721
722
  }
722
723
  });
723
724
 
725
+ /** Algorithm label for the new hybrid encryption standard */ const ALG_LABEL_RSA = 'HYBRID-RSA-AES-256';
726
+ /**
727
+ * Convert base64 to base64url encoding
728
+ */ const toBase64Url = (buffer)=>{
729
+ const base64 = Buffer.from(buffer).toString('base64');
730
+ return base64.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
731
+ };
732
+ /**
733
+ * Convert ArrayBuffer to base64url
734
+ */ const arrayBufferToBase64Url = (buffer)=>{
735
+ return toBase64Url(buffer);
736
+ };
737
+ /**
738
+ * Import RSA public key from PEM format
739
+ */ const importRSAPublicKey = async (publicKeyPem)=>{
740
+ // Remove PEM headers and decode base64
741
+ const pemHeader = '-----BEGIN PUBLIC KEY-----';
742
+ const pemFooter = '-----END PUBLIC KEY-----';
743
+ const pemContents = publicKeyPem.replace(pemHeader, '').replace(pemFooter, '').replace(/\s/g, '');
744
+ const binaryDer = Buffer.from(pemContents, 'base64').toString('binary');
745
+ const keyData = new Uint8Array(binaryDer.length);
746
+ for(let i = 0; i < binaryDer.length; i++){
747
+ keyData[i] = binaryDer.charCodeAt(i);
748
+ }
749
+ return await crypto.subtle.importKey('spki', keyData, {
750
+ name: 'RSA-OAEP',
751
+ hash: 'SHA-256'
752
+ }, false, [
753
+ 'encrypt'
754
+ ]);
755
+ };
756
+ /**
757
+ * Creates the encoded envelope bytes from the encrypted data components
758
+ */ const createEncodedEnvelopeBytes = (iv, ciphertext, authTag, encryptedAesKey)=>{
759
+ const envelopeData = {
760
+ algorithm: ALG_LABEL_RSA,
761
+ iv: arrayBufferToBase64Url(iv.buffer),
762
+ encryptedData: arrayBufferToBase64Url(ciphertext.buffer),
763
+ authTag: arrayBufferToBase64Url(authTag.buffer),
764
+ encryptedKey: arrayBufferToBase64Url(encryptedAesKey)
765
+ };
766
+ return Buffer.from(new TextEncoder().encode(JSON.stringify(envelopeData))).toString('base64');
767
+ };
768
+ /**
769
+ * Encrypts data using HYBRID-RSA-AES-256 encryption scheme with Web Crypto API.
770
+ * 1. Generate random AES-256 key
771
+ * 2. Encrypt AES key with RSA public key
772
+ * 3. Encrypt data with AES-256-GCM
773
+ */ const encryptDelegatedKeyShare = async (data, publicKeyPem)=>{
774
+ try {
775
+ // Step 1: Generate a random AES-256 key and 16-byte IV
776
+ const aesKey = await crypto.subtle.generateKey({
777
+ name: 'AES-GCM',
778
+ length: 256
779
+ }, true, [
780
+ 'encrypt'
781
+ ]);
782
+ const iv = crypto.getRandomValues(new Uint8Array(16)); // 128-bit IV for GCM
783
+ // Step 2: Encrypt the data with AES-256-GCM
784
+ const plaintext = new TextEncoder().encode(data);
785
+ const encryptedData = await crypto.subtle.encrypt({
786
+ name: 'AES-GCM',
787
+ iv: iv
788
+ }, aesKey, plaintext);
789
+ // Extract the auth tag from the encrypted data (last 16 bytes)
790
+ const encryptedDataArray = new Uint8Array(encryptedData);
791
+ const authTag = encryptedDataArray.slice(-16);
792
+ const ciphertext = encryptedDataArray.slice(0, -16);
793
+ // Step 3: Encrypt the AES key with RSA public key
794
+ const rsaPublicKey = await importRSAPublicKey(publicKeyPem);
795
+ // Export the AES key to encrypt it
796
+ const aesKeyData = await crypto.subtle.exportKey('raw', aesKey);
797
+ const encryptedAesKey = await crypto.subtle.encrypt({
798
+ name: 'RSA-OAEP'
799
+ }, rsaPublicKey, aesKeyData);
800
+ return {
801
+ algorithm: ALG_LABEL_RSA,
802
+ iv: arrayBufferToBase64Url(iv.buffer),
803
+ encryptedData: arrayBufferToBase64Url(ciphertext.buffer),
804
+ authTag: arrayBufferToBase64Url(authTag.buffer),
805
+ encryptedKey: arrayBufferToBase64Url(encryptedAesKey),
806
+ encodedEnvelopeBytes: createEncodedEnvelopeBytes(iv, ciphertext, authTag, encryptedAesKey)
807
+ };
808
+ } catch (error) {
809
+ throw new Error(`Encryption failed: ${error instanceof Error ? error.message : String(error)}`);
810
+ }
811
+ };
812
+
724
813
  class DynamicWalletClient {
725
814
  getAuthMode() {
726
815
  return this.authMode;
@@ -1257,6 +1346,7 @@ class DynamicWalletClient {
1257
1346
  async reshare({ chainName, accountAddress, oldThresholdSignatureScheme, newThresholdSignatureScheme, password = undefined, signedSessionId, backupToGoogleDrive = false, delegateToProjectEnvironment = false, mfaToken }) {
1258
1347
  const dynamicRequestId = v4();
1259
1348
  try {
1349
+ var _publicKey_key, _publicKey_key1;
1260
1350
  await this.verifyPassword({
1261
1351
  accountAddress,
1262
1352
  password,
@@ -1308,35 +1398,54 @@ class DynamicWalletClient {
1308
1398
  chainName,
1309
1399
  baseRelayUrl: this.baseMPCRelayApiUrl
1310
1400
  });
1311
- const reshareResults = await Promise.all([
1312
- ...newClientInitKeygenResults.map((keygenResult)=>mpcSigner.reshareNewParty(roomId, oldMpcConfig.threshold, newMpcConfig.threshold, keygenResult, allPartyKeygenIds)),
1313
- ...existingClientKeyShares.map((keyShare)=>mpcSigner.reshareRemainingParty(roomId, newMpcConfig.threshold, keyShare, allPartyKeygenIds))
1401
+ const existingResharePromises = existingClientKeyShares.map((keyShare)=>mpcSigner.reshareRemainingParty(roomId, newMpcConfig.threshold, keyShare, allPartyKeygenIds));
1402
+ const newResharePromises = newClientInitKeygenResults.map((keygenResult)=>mpcSigner.reshareNewParty(roomId, oldMpcConfig.threshold, newMpcConfig.threshold, keygenResult, allPartyKeygenIds));
1403
+ // Run both share parties in parallel by group
1404
+ const [existingReshareResults, newReshareResults] = await Promise.all([
1405
+ Promise.all(existingResharePromises),
1406
+ Promise.all(newResharePromises)
1314
1407
  ]);
1408
+ const clientKeyshares = delegateToProjectEnvironment ? [
1409
+ ...existingReshareResults
1410
+ ] : [
1411
+ ...existingReshareResults,
1412
+ ...newReshareResults
1413
+ ];
1315
1414
  this.walletMap[accountAddress] = _extends({}, this.walletMap[accountAddress], {
1316
1415
  thresholdSignatureScheme: newThresholdSignatureScheme
1317
1416
  });
1318
1417
  await this.setClientKeySharesToLocalStorage({
1319
1418
  accountAddress,
1320
- clientKeyShares: reshareResults,
1419
+ clientKeyShares: clientKeyshares,
1321
1420
  overwriteOrMerge: 'overwrite'
1322
1421
  });
1323
- if (delegateToProjectEnvironment) {
1324
- await this.storeEncryptedBackupByDelegatedWallet({
1325
- accountAddress,
1326
- password,
1327
- signedSessionId
1328
- });
1329
- } else {
1330
- await this.storeEncryptedBackupByWallet({
1331
- accountAddress,
1332
- password,
1333
- signedSessionId,
1334
- backupToGoogleDrive
1335
- });
1422
+ await this.storeEncryptedBackupByWallet({
1423
+ accountAddress,
1424
+ password,
1425
+ signedSessionId,
1426
+ backupToGoogleDrive,
1427
+ delegatedLocations: newReshareResults.map(()=>({
1428
+ location: BackupLocation.DELEGATED
1429
+ }))
1430
+ });
1431
+ const publicKey = await this.apiClient.getDelegatedEncryptionKey({
1432
+ environmentId: this.environmentId
1433
+ });
1434
+ if (!(publicKey == null ? void 0 : (_publicKey_key = publicKey.key) == null ? void 0 : _publicKey_key.publicKeyPemB64)) {
1435
+ throw new Error('Public key not found');
1336
1436
  }
1437
+ const encryptedDelegatedKeyShareEnvelope = await encryptDelegatedKeyShare(JSON.stringify(clientKeyshares[0]), publicKey == null ? void 0 : (_publicKey_key1 = publicKey.key) == null ? void 0 : _publicKey_key1.publicKeyPemB64);
1438
+ await this.apiClient.publishDelegatedKeyShare({
1439
+ walletId: this.walletMap[accountAddress].walletId,
1440
+ encryptedKeyShare: encryptedDelegatedKeyShareEnvelope == null ? void 0 : encryptedDelegatedKeyShareEnvelope.encodedEnvelopeBytes,
1441
+ encryptionVersion: ENCRYPTION_VERSION_CURRENT,
1442
+ signedSessionId,
1443
+ requiresSignedSessionId: this.requiresSignedSessionId(),
1444
+ dynamicRequestId
1445
+ });
1337
1446
  } catch (error) {
1338
1447
  logError({
1339
- message: 'Error in reshare',
1448
+ message: 'Error in reshare, resetting wallet to previous state',
1340
1449
  error: error,
1341
1450
  context: {
1342
1451
  accountAddress,
@@ -1347,36 +1456,14 @@ class DynamicWalletClient {
1347
1456
  dynamicRequestId
1348
1457
  }
1349
1458
  });
1350
- throw error;
1351
- }
1352
- }
1353
- async sendKeySharesToDelegatedAccess({ accountAddress, chainName, delegatedKeyShares, environmentId, userId, walletId }) {
1354
- try {
1355
- if (!this.delegatedAccessEndpoint) {
1356
- throw new Error('Cannot send key shares to delegated access because delegated access endpoint is not set');
1357
- }
1358
- const delegatedAccessEndpoint = this.delegatedAccessEndpoint;
1359
- const response = await fetch(delegatedAccessEndpoint, {
1360
- method: 'POST',
1361
- body: JSON.stringify({
1362
- chainName,
1363
- accountAddress,
1364
- delegatedKeyShares,
1365
- environmentId,
1366
- userId,
1367
- walletId
1368
- })
1459
+ // reset user wallet when reshare fails, this would allow the client to recover wallets from an active state
1460
+ this.walletMap[accountAddress] = _extends({}, this.walletMap[accountAddress], {
1461
+ thresholdSignatureScheme: oldThresholdSignatureScheme
1369
1462
  });
1370
- const data = await response.json();
1371
- return data;
1372
- } catch (error) {
1373
- logError({
1374
- message: 'Error in sendKeySharesToDelegatedAccess',
1375
- error: error,
1376
- context: {
1377
- accountAddress,
1378
- chainName
1379
- }
1463
+ await this.setClientKeySharesToLocalStorage({
1464
+ accountAddress,
1465
+ clientKeyShares: [],
1466
+ overwriteOrMerge: 'overwrite'
1380
1467
  });
1381
1468
  throw error;
1382
1469
  }
@@ -1387,12 +1474,6 @@ class DynamicWalletClient {
1387
1474
  if (!delegateToProjectEnvironment) {
1388
1475
  throw new Error('Delegation is not allowed for this project environment');
1389
1476
  }
1390
- const environmentSettings = await this.apiClient.getEnvironmentSettings();
1391
- const delegatedAccessEndpoint = environmentSettings.sdk.waas.delegatedAccessEndpoint;
1392
- if (!delegatedAccessEndpoint) {
1393
- throw new Error('Cannot delegate key shares because verified access endpoint is not set in the environment settings');
1394
- }
1395
- this.delegatedAccessEndpoint = delegatedAccessEndpoint;
1396
1477
  const wallet = await this.getWallet({
1397
1478
  accountAddress,
1398
1479
  walletOperation: WalletOperation.REACH_ALL_PARTIES,
@@ -1403,25 +1484,20 @@ class DynamicWalletClient {
1403
1484
  throw new Error('Delegation is not allowed for SUI');
1404
1485
  }
1405
1486
  const currentThresholdSignatureScheme = this.walletMap[accountAddress].thresholdSignatureScheme;
1406
- if (currentThresholdSignatureScheme === ThresholdSignatureScheme.TWO_OF_TWO) {
1407
- // Reshare to 2-of-3, which will automatically handle the backup distribution
1408
- await this.reshare({
1409
- chainName: this.walletMap[accountAddress].chainName,
1410
- accountAddress,
1411
- oldThresholdSignatureScheme: currentThresholdSignatureScheme,
1412
- newThresholdSignatureScheme: ThresholdSignatureScheme.TWO_OF_THREE,
1413
- password,
1414
- signedSessionId,
1415
- backupToGoogleDrive: false,
1416
- delegateToProjectEnvironment: true,
1417
- mfaToken
1418
- });
1419
- const backupInfo = this.walletMap[accountAddress].clientKeySharesBackupInfo;
1420
- const delegatedKeyShares = backupInfo.backups[BackupLocation.EXTERNAL] || [];
1421
- return delegatedKeyShares;
1422
- } else {
1423
- throw new Error('Delegation is not allowed for this threshold signature scheme');
1424
- }
1487
+ await this.reshare({
1488
+ chainName: this.walletMap[accountAddress].chainName,
1489
+ accountAddress,
1490
+ oldThresholdSignatureScheme: currentThresholdSignatureScheme,
1491
+ newThresholdSignatureScheme: ThresholdSignatureScheme.TWO_OF_THREE,
1492
+ password,
1493
+ signedSessionId,
1494
+ backupToGoogleDrive: false,
1495
+ delegateToProjectEnvironment: true,
1496
+ mfaToken
1497
+ });
1498
+ const backupInfo = this.walletMap[accountAddress].clientKeySharesBackupInfo;
1499
+ const delegatedKeyShares = backupInfo.backups[BackupLocation.EXTERNAL] || [];
1500
+ return delegatedKeyShares;
1425
1501
  } catch (error) {
1426
1502
  logError({
1427
1503
  message: 'Error in delegateKeyShares',
@@ -1623,7 +1699,7 @@ class DynamicWalletClient {
1623
1699
  * @param params.signedSessionId - Optional signed session ID for authentication
1624
1700
  * @param params.backupToGoogleDrive - Whether to backup to Google Drive (defaults to false)
1625
1701
  * @returns Promise with backup metadata including share locations and IDs
1626
- */ async storeEncryptedBackupByWallet({ accountAddress, clientKeyShares = undefined, password = undefined, signedSessionId, backupToGoogleDrive = false }) {
1702
+ */ async storeEncryptedBackupByWallet({ accountAddress, clientKeyShares = undefined, password = undefined, signedSessionId, backupToGoogleDrive = false, delegatedLocations = [] }) {
1627
1703
  const dynamicRequestId = v4();
1628
1704
  try {
1629
1705
  var _this_walletMap_accountAddress, _this_walletMap_accountAddress_clientKeySharesBackupInfo_backups_BackupLocation_GOOGLE_DRIVE, _this_walletMap_accountAddress_clientKeySharesBackupInfo_backups, _this_walletMap_accountAddress_clientKeySharesBackupInfo, _this_walletMap_accountAddress1;
@@ -1691,6 +1767,9 @@ class DynamicWalletClient {
1691
1767
  location: BackupLocation.GOOGLE_DRIVE
1692
1768
  });
1693
1769
  }
1770
+ if ((delegatedLocations == null ? void 0 : delegatedLocations.length) > 0) {
1771
+ locations.push(...delegatedLocations);
1772
+ }
1694
1773
  const backupData = await this.apiClient.markKeySharesAsBackedUp({
1695
1774
  walletId: this.walletMap[accountAddress].walletId,
1696
1775
  locations,
@@ -1725,110 +1804,6 @@ class DynamicWalletClient {
1725
1804
  throw error;
1726
1805
  }
1727
1806
  }
1728
- async storeEncryptedBackupByDelegatedWallet({ accountAddress, clientKeyShares = undefined, password = undefined, signedSessionId }) {
1729
- const dynamicRequestId = v4();
1730
- try {
1731
- var _this_walletMap_accountAddress, _this_walletMap_accountAddress_clientKeySharesBackupInfo_backups_BackupLocation_EXTERNAL, _this_walletMap_accountAddress_clientKeySharesBackupInfo_backups, _this_walletMap_accountAddress_clientKeySharesBackupInfo, _this_walletMap_accountAddress1;
1732
- const keySharesToBackup = clientKeyShares != null ? clientKeyShares : await this.getClientKeySharesFromLocalStorage({
1733
- accountAddress
1734
- });
1735
- if (!((_this_walletMap_accountAddress = this.walletMap[accountAddress]) == null ? void 0 : _this_walletMap_accountAddress.walletId)) {
1736
- const error = new Error(`WalletId not found for accountAddress ${accountAddress}`);
1737
- logError({
1738
- message: 'Error in storeEncryptedBackupByWallet, wallet or walletId not found from the wallet map',
1739
- error,
1740
- context: {
1741
- accountAddress,
1742
- walletMap: this.walletMap
1743
- }
1744
- });
1745
- throw error;
1746
- }
1747
- let dynamicClientKeyShares = [];
1748
- let delegatedKeyShares = [];
1749
- const encryptedKeyShares = await Promise.all(keySharesToBackup.map((keyShare)=>this.encryptKeyShare({
1750
- keyShare,
1751
- password
1752
- })));
1753
- const hasExistingDelegatedBackup = ((_this_walletMap_accountAddress1 = this.walletMap[accountAddress]) == null ? void 0 : (_this_walletMap_accountAddress_clientKeySharesBackupInfo = _this_walletMap_accountAddress1.clientKeySharesBackupInfo) == null ? void 0 : (_this_walletMap_accountAddress_clientKeySharesBackupInfo_backups = _this_walletMap_accountAddress_clientKeySharesBackupInfo.backups) == null ? void 0 : (_this_walletMap_accountAddress_clientKeySharesBackupInfo_backups_BackupLocation_EXTERNAL = _this_walletMap_accountAddress_clientKeySharesBackupInfo_backups[BackupLocation.EXTERNAL]) == null ? void 0 : _this_walletMap_accountAddress_clientKeySharesBackupInfo_backups_BackupLocation_EXTERNAL.length) > 0;
1754
- const shouldBackupToDelegated = hasExistingDelegatedBackup || keySharesToBackup.length >= 2;
1755
- if (shouldBackupToDelegated) {
1756
- // For 2 shares: 1 to backend, 1 to delegated
1757
- // For 3+ shares: N-1 to backend, 1 to delegated
1758
- dynamicClientKeyShares = encryptedKeyShares.slice(0, -DELEGATED_SHARE_COUNT);
1759
- delegatedKeyShares = encryptedKeyShares.slice(-DELEGATED_SHARE_COUNT);
1760
- } else {
1761
- dynamicClientKeyShares = encryptedKeyShares;
1762
- }
1763
- const data = await this.apiClient.storeEncryptedBackupByWallet({
1764
- walletId: this.walletMap[accountAddress].walletId,
1765
- encryptedKeyShares: dynamicClientKeyShares,
1766
- passwordEncrypted: Boolean(password) && password !== this.environmentId,
1767
- encryptionVersion: ENCRYPTION_VERSION_CURRENT,
1768
- signedSessionId,
1769
- authMode: this.authMode,
1770
- requiresSignedSessionId: this.requiresSignedSessionId(),
1771
- dynamicRequestId
1772
- });
1773
- await this.apiClient.markKeySharesAsBackedUp({
1774
- walletId: this.walletMap[accountAddress].walletId,
1775
- dynamicRequestId,
1776
- locations: [
1777
- {
1778
- location: BackupLocation.DYNAMIC
1779
- }
1780
- ]
1781
- });
1782
- if (delegatedKeyShares.length > 0) {
1783
- const wallet = this.walletMap[accountAddress];
1784
- var _this_userId;
1785
- const delegatedKeyShareIds = await this.sendKeySharesToDelegatedAccess({
1786
- accountAddress,
1787
- chainName: wallet.chainName,
1788
- environmentId: this.environmentId,
1789
- walletId: wallet.walletId,
1790
- userId: (_this_userId = this.userId) != null ? _this_userId : '',
1791
- delegatedKeyShares: delegatedKeyShares
1792
- });
1793
- data.keyShares.push({
1794
- backupLocation: BackupLocation.EXTERNAL,
1795
- id: delegatedKeyShareIds
1796
- });
1797
- //todo: combine with user share service backup once other branch is merged
1798
- await this.apiClient.markKeySharesAsBackedUp({
1799
- walletId: this.walletMap[accountAddress].walletId,
1800
- locations: [
1801
- {
1802
- location: BackupLocation.EXTERNAL
1803
- }
1804
- ],
1805
- dynamicRequestId
1806
- });
1807
- }
1808
- const updatedBackupInfo = getClientKeyShareBackupInfo({
1809
- walletProperties: {
1810
- derivationPath: this.walletMap[accountAddress].derivationPath,
1811
- keyShares: data.keyShares,
1812
- thresholdSignatureScheme: this.walletMap[accountAddress].thresholdSignatureScheme
1813
- }
1814
- });
1815
- this.walletMap[accountAddress] = _extends({}, this.walletMap[accountAddress], {
1816
- clientKeySharesBackupInfo: updatedBackupInfo
1817
- });
1818
- await this.storage.setItem(this.storageKey, JSON.stringify(this.walletMap));
1819
- return data;
1820
- } catch (error) {
1821
- logError({
1822
- message: 'Error in storeEncryptedBackupByDelegatedWallet',
1823
- error: error,
1824
- context: {
1825
- accountAddress,
1826
- dynamicRequestId
1827
- }
1828
- });
1829
- throw error;
1830
- }
1831
- }
1832
1807
  async storeEncryptedBackupByWalletWithRetry({ accountAddress, clientKeyShares, password, signedSessionId }) {
1833
1808
  await retryPromise(()=>this.storeEncryptedBackupByWallet({
1834
1809
  accountAddress,
@@ -2496,7 +2471,6 @@ class DynamicWalletClient {
2496
2471
  sdkVersion }){
2497
2472
  this.userId = undefined;
2498
2473
  this.sessionId = undefined;
2499
- this.delegatedAccessEndpoint = undefined;
2500
2474
  this.initializePromise = null;
2501
2475
  this.logger = logger;
2502
2476
  this.walletMap = {} // todo: store in session storage
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@dynamic-labs-wallet/browser",
3
- "version": "0.0.164",
3
+ "version": "0.0.166",
4
4
  "license": "Licensed under the Dynamic Labs, Inc. Terms Of Service (https://www.dynamic.xyz/terms-conditions)",
5
5
  "type": "commonjs",
6
6
  "dependencies": {
7
- "@dynamic-labs-wallet/core": "0.0.164",
7
+ "@dynamic-labs-wallet/core": "0.0.166",
8
8
  "@dynamic-labs/logger": "^4.25.3",
9
9
  "@dynamic-labs/sdk-api-core": "^0.0.764",
10
10
  "argon2id": "1.0.1",
package/src/client.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { AuthMode, BackupLocation, type BackupLocationWithExternalKeyShareId, DynamicApiClient, type DynamicWalletClientProps, FeatureFlags, type InitializeResult, type KeyShareBackupInfo, ThresholdSignatureScheme, WalletOperation } from '@dynamic-labs-wallet/core';
2
- import { BIP340KeygenResult, EcdsaKeygenResult, type EcdsaPublicKey, type EcdsaSignature, ExportableEd25519KeygenResult } from '../../internal/web';
2
+ import { BIP340KeygenResult, EcdsaKeygenResult, type EcdsaPublicKey, type EcdsaSignature, ExportableEd25519KeygenResult } from '../internal/web';
3
3
  import type { SignMessageContext } from '@dynamic-labs/sdk-api-core';
4
4
  import type { ClientInitKeygenResult, ClientKeyShare } from './mpc/types';
5
5
  import { type SupportedStorage } from './services/localStorage';
@@ -10,7 +10,6 @@ export declare class DynamicWalletClient {
10
10
  debug: boolean;
11
11
  protected userId: string | undefined;
12
12
  protected sessionId: string | undefined;
13
- protected delegatedAccessEndpoint: string | undefined;
14
13
  protected initializePromise: Promise<InitializeResult> | null;
15
14
  protected logger: import("@dynamic-labs/logger").Logger;
16
15
  protected apiClient: DynamicApiClient;
@@ -163,14 +162,6 @@ export declare class DynamicWalletClient {
163
162
  delegateToProjectEnvironment?: boolean;
164
163
  mfaToken?: string;
165
164
  }): Promise<void>;
166
- sendKeySharesToDelegatedAccess({ accountAddress, chainName, delegatedKeyShares, environmentId, userId, walletId, }: {
167
- accountAddress: string;
168
- chainName: string;
169
- delegatedKeyShares: string[];
170
- environmentId: string;
171
- userId: string;
172
- walletId: string;
173
- }): Promise<any>;
174
165
  delegateKeyShares({ accountAddress, password, signedSessionId, mfaToken, }: {
175
166
  accountAddress: string;
176
167
  password?: string;
@@ -239,18 +230,13 @@ export declare class DynamicWalletClient {
239
230
  * @param params.backupToGoogleDrive - Whether to backup to Google Drive (defaults to false)
240
231
  * @returns Promise with backup metadata including share locations and IDs
241
232
  */
242
- storeEncryptedBackupByWallet({ accountAddress, clientKeyShares, password, signedSessionId, backupToGoogleDrive, }: {
233
+ storeEncryptedBackupByWallet({ accountAddress, clientKeyShares, password, signedSessionId, backupToGoogleDrive, delegatedLocations, }: {
243
234
  accountAddress: string;
244
235
  clientKeyShares?: ClientKeyShare[];
245
236
  password?: string;
246
237
  signedSessionId: string;
247
238
  backupToGoogleDrive?: boolean;
248
- }): Promise<any>;
249
- storeEncryptedBackupByDelegatedWallet({ accountAddress, clientKeyShares, password, signedSessionId, }: {
250
- accountAddress: string;
251
- clientKeyShares?: ClientKeyShare[];
252
- password?: string;
253
- signedSessionId: string;
239
+ delegatedLocations?: any[];
254
240
  }): Promise<any>;
255
241
  storeEncryptedBackupByWalletWithRetry({ accountAddress, clientKeyShares, password, signedSessionId, }: {
256
242
  accountAddress: string;
@@ -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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"}
@@ -1,4 +1,4 @@
1
- import { Ecdsa, Ed25519, BIP340, BIP340KeygenResult, EcdsaPublicKey, Ed25519KeygenResult, EcdsaKeygenResult, MessageHash, EcdsaInitKeygenResult, Ed25519InitKeygenResult, BIP340InitKeygenResult, EcdsaSignature } from '../../../internal/web';
1
+ import { Ecdsa, Ed25519, BIP340, BIP340KeygenResult, EcdsaPublicKey, Ed25519KeygenResult, EcdsaKeygenResult, MessageHash, EcdsaInitKeygenResult, Ed25519InitKeygenResult, BIP340InitKeygenResult, EcdsaSignature } from '../../internal/web';
2
2
  export { Ecdsa, Ed25519, BIP340, EcdsaPublicKey, EcdsaKeygenResult, Ed25519KeygenResult, BIP340KeygenResult, MessageHash, EcdsaInitKeygenResult, Ed25519InitKeygenResult, BIP340InitKeygenResult, EcdsaSignature, };
3
3
  export * from './mpc';
4
4
  export * from './types';
package/src/mpc/mpc.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { SigningAlgorithm } from '@dynamic-labs-wallet/core';
2
- import { Ecdsa, ExportableEd25519, BIP340 } from '../../../internal/web';
2
+ import { Ecdsa, ExportableEd25519, BIP340 } from '../../internal/web';
3
3
  export declare const getMPCSignatureScheme: ({ signingAlgorithm, baseRelayUrl, }: {
4
4
  signingAlgorithm: SigningAlgorithm;
5
5
  baseRelayUrl?: string;
@@ -1,5 +1,5 @@
1
- import type { BIP340InitKeygenResult, BIP340KeygenResult, ExportableEd25519InitKeygenResult, EcdsaInitKeygenResult, EcdsaKeygenResult, ExportableEd25519KeygenResult } from '../../../internal/web';
1
+ import type { BIP340InitKeygenResult, BIP340KeygenResult, ExportableEd25519InitKeygenResult, EcdsaInitKeygenResult, EcdsaKeygenResult, ExportableEd25519KeygenResult } from '../../internal/web';
2
2
  export type ClientInitKeygenResult = EcdsaInitKeygenResult | ExportableEd25519InitKeygenResult | BIP340InitKeygenResult;
3
3
  export type ClientKeyShare = EcdsaKeygenResult | ExportableEd25519KeygenResult | BIP340KeygenResult;
4
- export type { Ecdsa, BIP340, EcdsaPublicKey, EcdsaKeygenResult, ExportableEd25519InitKeygenResult, ExportableEd25519KeygenResult, BIP340KeygenResult, MessageHash, EcdsaSignature, } from '../../../internal/web';
4
+ export type { Ecdsa, BIP340, EcdsaPublicKey, EcdsaKeygenResult, ExportableEd25519InitKeygenResult, ExportableEd25519KeygenResult, BIP340KeygenResult, MessageHash, EcdsaSignature, } from '../../internal/web';
5
5
  //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,19 @@
1
+ /** Algorithm label for the new hybrid encryption standard */
2
+ export declare const ALG_LABEL_RSA = "HYBRID-RSA-AES-256";
3
+ /** Envelope returned for encrypted delegated key share */
4
+ export type EncryptedDelegatedKeyShareEnvelope = {
5
+ algorithm: typeof ALG_LABEL_RSA;
6
+ iv: string;
7
+ encryptedData: string;
8
+ authTag: string;
9
+ encryptedKey: string;
10
+ encodedEnvelopeBytes: string;
11
+ };
12
+ /**
13
+ * Encrypts data using HYBRID-RSA-AES-256 encryption scheme with Web Crypto API.
14
+ * 1. Generate random AES-256 key
15
+ * 2. Encrypt AES key with RSA public key
16
+ * 3. Encrypt data with AES-256-GCM
17
+ */
18
+ export declare const encryptDelegatedKeyShare: (data: string, publicKeyPem: string) => Promise<EncryptedDelegatedKeyShareEnvelope>;
19
+ //# sourceMappingURL=encryption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryption.d.ts","sourceRoot":"","sources":["../../src/services/encryption.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,eAAO,MAAM,aAAa,uBAAuB,CAAC;AAElD,0DAA0D;AAC1D,MAAM,MAAM,kCAAkC,GAAG;IAC/C,SAAS,EAAE,OAAO,aAAa,CAAC;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CAAC;AAqEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,SAC7B,MAAM,gBACE,MAAM,KACnB,OAAO,CAAC,kCAAkC,CA+D5C,CAAC"}
package/src/utils.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { type KeyShareBackupInfo, type ThresholdSignatureScheme, type WaasWalletProperties } from '@dynamic-labs-wallet/core';
2
2
  import type { JwtVerifiedCredential } from '@dynamic-labs/sdk-api-core';
3
- import { MessageHash } from '../../internal/web';
3
+ import { MessageHash } from '../internal/web';
4
4
  import type { ClientKeyShare } from './mpc/types';
5
5
  export declare const isBrowser: () => boolean;
6
6
  export declare const getClientKeyShareExportFileName: ({ thresholdSignatureScheme, accountAddress, }: {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../packages/src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAExE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIlD,eAAO,MAAM,SAAS,eAAsC,CAAC;AAE7D,eAAO,MAAM,+BAA+B,kDAGzC;IACD,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,cAAc,EAAE,MAAM,CAAC;CACxB,WAEA,CAAC;AAEF,eAAO,MAAM,2BAA2B,YAAa;IACnD,gBAAgB,EAAE,oBAAoB,CAAC;CACxC,KAAG,kBA2CH,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,sBACZ,cAAc,EAAE,gBACrB,cAAc,EAAE,KAC7B,cAAc,EAchB,CAAC;AAEF,eAAO,MAAM,cAAc,4BAGxB;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,qBAOA,CAAC;AAEF,UAAU,WAAW;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAClC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,EACE,WAAe,EACf,aAAmB,EACnB,aAA2B,EAC3B,UAAe,GAChB,GAAE,WAAgB,GAClB,OAAO,CAAC,CAAC,CAAC,CAmCZ;AAED,eAAO,MAAM,gBAAgB,YAAa,MAAM,GAAG,UAAU,gBAS5D,CAAC;AAEF,eAAO,MAAM,WAAW,QAAS,MAAM,YAKtC,CAAC;AAgBF,eAAO,MAAM,aAAa,cACb,MAAM,WACR,MAAM,GAAG,UAAU,KAC3B,MAAM,GAAG,UAAU,GAAG,WAWxB,CAAC;AAEF,eAAO,MAAM,uBAAuB,wBACb,qBAAqB,EAAE,KAC3C,MAAM,GAAG,SAOX,CAAC;AAEF,eAAO,MAAM,gBAAgB,mFAK1B;IACD,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;;;;;;;;;;;CAaA,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../packages/src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAExE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIlD,eAAO,MAAM,SAAS,eAAsC,CAAC;AAE7D,eAAO,MAAM,+BAA+B,kDAGzC;IACD,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,cAAc,EAAE,MAAM,CAAC;CACxB,WAEA,CAAC;AAEF,eAAO,MAAM,2BAA2B,YAAa;IACnD,gBAAgB,EAAE,oBAAoB,CAAC;CACxC,KAAG,kBA4CH,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,sBACZ,cAAc,EAAE,gBACrB,cAAc,EAAE,KAC7B,cAAc,EAchB,CAAC;AAEF,eAAO,MAAM,cAAc,4BAGxB;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,qBAOA,CAAC;AAEF,UAAU,WAAW;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAClC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,EACE,WAAe,EACf,aAAmB,EACnB,aAA2B,EAC3B,UAAe,GAChB,GAAE,WAAgB,GAClB,OAAO,CAAC,CAAC,CAAC,CAmCZ;AAED,eAAO,MAAM,gBAAgB,YAAa,MAAM,GAAG,UAAU,gBAS5D,CAAC;AAEF,eAAO,MAAM,WAAW,QAAS,MAAM,YAKtC,CAAC;AAgBF,eAAO,MAAM,aAAa,cACb,MAAM,WACR,MAAM,GAAG,UAAU,KAC3B,MAAM,GAAG,UAAU,GAAG,WAWxB,CAAC;AAEF,eAAO,MAAM,uBAAuB,wBACb,qBAAqB,EAAE,KAC3C,MAAM,GAAG,SAOX,CAAC;AAEF,eAAO,MAAM,gBAAgB,mFAK1B;IACD,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;;;;;;;;;;;CAaA,CAAC"}