@dynamic-labs-wallet/node 0.0.322 → 0.0.324

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.
Files changed (37) hide show
  1. package/index.cjs.js +19 -13
  2. package/index.esm.js +19 -14
  3. package/package.json +2 -2
  4. package/src/backup/encryption.d.ts +62 -0
  5. package/src/backup/encryption.d.ts.map +1 -0
  6. package/src/backup/utils.d.ts +4 -0
  7. package/src/backup/utils.d.ts.map +1 -0
  8. package/src/client.d.ts +353 -0
  9. package/src/client.d.ts.map +1 -0
  10. package/src/constants.d.ts +2 -0
  11. package/src/constants.d.ts.map +1 -0
  12. package/src/core/createCore.d.ts +43 -0
  13. package/src/core/createCore.d.ts.map +1 -0
  14. package/src/core/types.d.ts +7 -0
  15. package/src/core/types.d.ts.map +1 -0
  16. package/src/delegatedClient/createDelegatedClient.d.ts +23 -0
  17. package/src/delegatedClient/createDelegatedClient.d.ts.map +1 -0
  18. package/src/delegatedClient/index.d.ts +7 -0
  19. package/src/delegatedClient/index.d.ts.map +1 -0
  20. package/src/delegatedClient/modules/decryptWebhookData.d.ts +18 -0
  21. package/src/delegatedClient/modules/decryptWebhookData.d.ts.map +1 -0
  22. package/src/delegatedClient/modules/revokeDelegation.d.ts +3 -0
  23. package/src/delegatedClient/modules/revokeDelegation.d.ts.map +1 -0
  24. package/src/delegatedClient/modules/sign.d.ts +31 -0
  25. package/src/delegatedClient/modules/sign.d.ts.map +1 -0
  26. package/src/index.d.ts +13 -0
  27. package/src/index.d.ts.map +1 -0
  28. package/src/mpc/index.d.ts +3 -0
  29. package/src/mpc/index.d.ts.map +1 -0
  30. package/src/mpc/mpc.d.ts +12 -0
  31. package/src/mpc/mpc.d.ts.map +1 -0
  32. package/src/mpc/types.d.ts +5 -0
  33. package/src/mpc/types.d.ts.map +1 -0
  34. package/src/types.d.ts +41 -0
  35. package/src/types.d.ts.map +1 -0
  36. package/src/utils.d.ts +49 -0
  37. package/src/utils.d.ts.map +1 -0
package/index.cjs.js CHANGED
@@ -72,12 +72,8 @@ const base64ToBytes = (base64)=>{
72
72
  const ensureBase64Padding = (str)=>{
73
73
  return str.padEnd(Math.ceil(str.length / 4) * 4, '=');
74
74
  };
75
- const isHexString = (str)=>{
76
- // Remove 0x prefix if present
77
- const hex = str.startsWith('0x') ? str.slice(2) : str;
78
- // Check if string contains only hex characters
79
- return /^[0-9A-Fa-f]+$/.test(hex);
80
- };
75
+ const stripHexPrefix = (str)=>str.startsWith('0x') ? str.slice(2) : str;
76
+ const isHexString = (str)=>/^[0-9A-Fa-f]+$/.test(stripHexPrefix(str));
81
77
  const getExternalServerKeyShareBackupInfo = (params)=>{
82
78
  var _params_walletProperties, _params_walletProperties_keyShares_;
83
79
  const backups = {
@@ -592,8 +588,8 @@ class DynamicWalletClient {
592
588
  externalServerKeyShares: externalServerKeygenResults
593
589
  };
594
590
  }
595
- async dynamicServerSign({ walletId, message, isFormatted, context, bitcoinConfig, onError }) {
596
- const dynamicRequestId = uuid.v4();
591
+ async dynamicServerSign({ walletId, message, isFormatted, context, bitcoinConfig, onError, dynamicRequestId: providedRequestId }) {
592
+ const dynamicRequestId = providedRequestId || uuid.v4();
597
593
  this.ensureApiClientAuthenticated();
598
594
  // Create the room and sign the message
599
595
  if (typeof message !== 'string') {
@@ -609,7 +605,9 @@ class DynamicWalletClient {
609
605
  forwardMPCClientEnabled: this.forwardMPCEnabled,
610
606
  bitcoinConfig
611
607
  });
612
- return data;
608
+ return _extends({}, data, {
609
+ dynamicRequestId
610
+ });
613
611
  }
614
612
  async externalServerSign({ chainName, message, roomId, keyShare, derivationPath, isFormatted, bitcoinConfig }) {
615
613
  try {
@@ -627,7 +625,7 @@ class DynamicWalletClient {
627
625
  throw error;
628
626
  }
629
627
  }
630
- async forwardMPCClientSign({ chainName, message, roomId, keyShare, derivationPath, formattedMessage, dynamicRequestId, isFormatted }) {
628
+ async forwardMPCClientSign({ chainName, message, roomId, keyShare, derivationPath, formattedMessage, dynamicRequestId, isFormatted, walletId }) {
631
629
  try {
632
630
  const messageForForwardMPC = core$1.serializeMessageForForwardMPC({
633
631
  message,
@@ -644,7 +642,12 @@ class DynamicWalletClient {
644
642
  signingAlgo: chainName === 'EVM' ? 'ECDSA' : 'ED25519',
645
643
  hashAlgo: chainName === 'EVM' && !isFormatted ? 'keccak256' : undefined,
646
644
  derivationPath: derivationPath,
647
- roomUuid: roomId
645
+ roomUuid: roomId,
646
+ walletId,
647
+ environmentId: this.environmentId,
648
+ traceContext: {
649
+ traceId: dynamicRequestId
650
+ }
648
651
  });
649
652
  if (!(signatureBytes instanceof Uint8Array)) {
650
653
  throw new TypeError(`Invalid signature format: expected Uint8Array, got ${typeof signatureBytes}`);
@@ -659,6 +662,7 @@ class DynamicWalletClient {
659
662
  } catch (error) {
660
663
  this.logger.error('Error signing message with forward MPC client', {
661
664
  error,
665
+ walletId,
662
666
  environmentId: this.environmentId,
663
667
  dynamicRequestId
664
668
  });
@@ -710,8 +714,9 @@ class DynamicWalletClient {
710
714
  keyShare: externalServerKeyShares[0],
711
715
  derivationPath,
712
716
  formattedMessage,
713
- dynamicRequestId: uuid.v4(),
714
- isFormatted
717
+ dynamicRequestId: data.dynamicRequestId,
718
+ isFormatted,
719
+ walletId: wallet.walletId
715
720
  });
716
721
  return signature;
717
722
  } else {
@@ -1883,6 +1888,7 @@ exports.mergeUniqueKeyShares = mergeUniqueKeyShares;
1883
1888
  exports.retryPromise = retryPromise;
1884
1889
  exports.revokeDelegation = revokeDelegation;
1885
1890
  exports.stringToBytes = stringToBytes;
1891
+ exports.stripHexPrefix = stripHexPrefix;
1886
1892
  Object.keys(core).forEach(function (k) {
1887
1893
  if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
1888
1894
  enumerable: true,
package/index.esm.js CHANGED
@@ -71,12 +71,8 @@ const base64ToBytes = (base64)=>{
71
71
  const ensureBase64Padding = (str)=>{
72
72
  return str.padEnd(Math.ceil(str.length / 4) * 4, '=');
73
73
  };
74
- const isHexString = (str)=>{
75
- // Remove 0x prefix if present
76
- const hex = str.startsWith('0x') ? str.slice(2) : str;
77
- // Check if string contains only hex characters
78
- return /^[0-9A-Fa-f]+$/.test(hex);
79
- };
74
+ const stripHexPrefix = (str)=>str.startsWith('0x') ? str.slice(2) : str;
75
+ const isHexString = (str)=>/^[0-9A-Fa-f]+$/.test(stripHexPrefix(str));
80
76
  const getExternalServerKeyShareBackupInfo = (params)=>{
81
77
  var _params_walletProperties, _params_walletProperties_keyShares_;
82
78
  const backups = {
@@ -591,8 +587,8 @@ class DynamicWalletClient {
591
587
  externalServerKeyShares: externalServerKeygenResults
592
588
  };
593
589
  }
594
- async dynamicServerSign({ walletId, message, isFormatted, context, bitcoinConfig, onError }) {
595
- const dynamicRequestId = v4();
590
+ async dynamicServerSign({ walletId, message, isFormatted, context, bitcoinConfig, onError, dynamicRequestId: providedRequestId }) {
591
+ const dynamicRequestId = providedRequestId || v4();
596
592
  this.ensureApiClientAuthenticated();
597
593
  // Create the room and sign the message
598
594
  if (typeof message !== 'string') {
@@ -608,7 +604,9 @@ class DynamicWalletClient {
608
604
  forwardMPCClientEnabled: this.forwardMPCEnabled,
609
605
  bitcoinConfig
610
606
  });
611
- return data;
607
+ return _extends({}, data, {
608
+ dynamicRequestId
609
+ });
612
610
  }
613
611
  async externalServerSign({ chainName, message, roomId, keyShare, derivationPath, isFormatted, bitcoinConfig }) {
614
612
  try {
@@ -626,7 +624,7 @@ class DynamicWalletClient {
626
624
  throw error;
627
625
  }
628
626
  }
629
- async forwardMPCClientSign({ chainName, message, roomId, keyShare, derivationPath, formattedMessage, dynamicRequestId, isFormatted }) {
627
+ async forwardMPCClientSign({ chainName, message, roomId, keyShare, derivationPath, formattedMessage, dynamicRequestId, isFormatted, walletId }) {
630
628
  try {
631
629
  const messageForForwardMPC = serializeMessageForForwardMPC({
632
630
  message,
@@ -643,7 +641,12 @@ class DynamicWalletClient {
643
641
  signingAlgo: chainName === 'EVM' ? 'ECDSA' : 'ED25519',
644
642
  hashAlgo: chainName === 'EVM' && !isFormatted ? 'keccak256' : undefined,
645
643
  derivationPath: derivationPath,
646
- roomUuid: roomId
644
+ roomUuid: roomId,
645
+ walletId,
646
+ environmentId: this.environmentId,
647
+ traceContext: {
648
+ traceId: dynamicRequestId
649
+ }
647
650
  });
648
651
  if (!(signatureBytes instanceof Uint8Array)) {
649
652
  throw new TypeError(`Invalid signature format: expected Uint8Array, got ${typeof signatureBytes}`);
@@ -658,6 +661,7 @@ class DynamicWalletClient {
658
661
  } catch (error) {
659
662
  this.logger.error('Error signing message with forward MPC client', {
660
663
  error,
664
+ walletId,
661
665
  environmentId: this.environmentId,
662
666
  dynamicRequestId
663
667
  });
@@ -709,8 +713,9 @@ class DynamicWalletClient {
709
713
  keyShare: externalServerKeyShares[0],
710
714
  derivationPath,
711
715
  formattedMessage,
712
- dynamicRequestId: v4(),
713
- isFormatted
716
+ dynamicRequestId: data.dynamicRequestId,
717
+ isFormatted,
718
+ walletId: wallet.walletId
714
719
  });
715
720
  return signature;
716
721
  } else {
@@ -1848,4 +1853,4 @@ const revokeDelegation = async (client, walletId)=>{
1848
1853
  }
1849
1854
  };
1850
1855
 
1851
- export { DynamicWalletClient, base64ToBytes, bytesToBase64, createDelegatedWalletClient, createLogError, delegatedSignMessage, ensureBase64Padding, formatEvmMessage, formatMessage, getExternalServerKeyShareBackupInfo, getMPCSignatureScheme, getMPCSigner, isHexString, logError, mergeUniqueKeyShares, retryPromise, revokeDelegation, stringToBytes };
1856
+ export { DynamicWalletClient, base64ToBytes, bytesToBase64, createDelegatedWalletClient, createLogError, delegatedSignMessage, ensureBase64Padding, formatEvmMessage, formatMessage, getExternalServerKeyShareBackupInfo, getMPCSignatureScheme, getMPCSigner, isHexString, logError, mergeUniqueKeyShares, retryPromise, revokeDelegation, stringToBytes, stripHexPrefix };
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@dynamic-labs-wallet/node",
3
- "version": "0.0.322",
3
+ "version": "0.0.324",
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.322",
7
+ "@dynamic-labs-wallet/core": "0.0.324",
8
8
  "@dynamic-labs-wallet/forward-mpc-client": "0.5.5",
9
9
  "@dynamic-labs/logger": "^4.45.2",
10
10
  "@dynamic-labs/sdk-api-core": "^0.0.900",
@@ -0,0 +1,62 @@
1
+ import type { EncryptionMetadata } from '@dynamic-labs-wallet/core';
2
+ export declare const ENCRYPTION_VERSION_LEGACY = "v1";
3
+ export declare const ENCRYPTION_VERSION_CURRENT = "v2";
4
+ export declare const PBKDF2_ALGORITHM = "PBKDF2";
5
+ export declare const PBKDF2_HASH_ALGORITHM = "SHA-256";
6
+ export declare const AES_GCM_ALGORITHM = "AES-GCM";
7
+ export declare const AES_GCM_LENGTH = 256;
8
+ export declare const ENCRYPTION_VERSIONS: {
9
+ readonly v1: {
10
+ readonly version: "v1";
11
+ readonly algorithm: "AES-GCM";
12
+ readonly keyDerivation: "PBKDF2";
13
+ readonly iterations: 100000;
14
+ readonly hashAlgorithm: "SHA-256";
15
+ readonly algorithmLength: 256;
16
+ };
17
+ readonly v2: {
18
+ readonly version: "v2";
19
+ readonly algorithm: "AES-GCM";
20
+ readonly keyDerivation: "PBKDF2";
21
+ readonly iterations: 1000000;
22
+ readonly hashAlgorithm: "SHA-256";
23
+ readonly algorithmLength: 256;
24
+ };
25
+ };
26
+ export declare const PBKDF2_ITERATIONS: 1000000;
27
+ export declare const PBKDF2_ITERATIONS_LEGACY: 100000;
28
+ export type EncryptionVersion = (typeof ENCRYPTION_VERSIONS)[keyof typeof ENCRYPTION_VERSIONS];
29
+ /**
30
+ * Encrypts data using the specified encryption version.
31
+ * Always uses the latest encryption configuration for new encryptions by default.
32
+ */
33
+ export declare const encryptData: ({ data, password, version, }: {
34
+ data: string;
35
+ password: string;
36
+ version?: string;
37
+ }) => Promise<{
38
+ salt: string;
39
+ iv: string;
40
+ cipher: string;
41
+ version: string;
42
+ }>;
43
+ /**
44
+ * Decrypts data with version-based configuration.
45
+ * Uses the version field from the data to determine encryption parameters.
46
+ * Falls back to legacy version for backward compatibility if no version is specified.
47
+ */
48
+ export declare const decryptData: ({ data, password, }: {
49
+ data: {
50
+ salt: string;
51
+ iv: string;
52
+ cipher: string;
53
+ version?: string;
54
+ };
55
+ password: string;
56
+ }) => Promise<string>;
57
+ /**
58
+ * Gets encryption metadata for a specific version.
59
+ * Used when we need to include metadata in legacy systems or APIs that require it.
60
+ */
61
+ export declare const getEncryptionMetadataForVersion: (version: string) => EncryptionMetadata;
62
+ //# sourceMappingURL=encryption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryption.d.ts","sourceRoot":"","sources":["../../src/backup/encryption.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAC9C,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,eAAO,MAAM,gBAAgB,WAAW,CAAC;AACzC,eAAO,MAAM,qBAAqB,YAAY,CAAC;AAC/C,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAC3C,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;CAiBtB,CAAC;AAEX,eAAO,MAAM,iBAAiB,SAA6D,CAAC;AAC5F,eAAO,MAAM,wBAAwB,QAA4D,CAAC;AAElG,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,OAAO,mBAAmB,CAAC,CAAC;AAgC/F;;;GAGG;AACH,eAAO,MAAM,WAAW,iCAIrB;IACD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;;;;;EA6BA,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,wBAGrB;IACD,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,QAAQ,EAAE,MAAM,CAAC;CAClB,oBAmCA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,+BAA+B,YAAa,MAAM,KAAG,kBAajE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ServerKeyShare } from '../mpc/types.js';
2
+ import type { WalletProperties } from '../types.js';
3
+ export declare const checkIfExternalServerKeySharesAreRequired: (wallet: WalletProperties, externalServerKeyShares?: ServerKeyShare[]) => void;
4
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/backup/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,eAAO,MAAM,yCAAyC,WAC5C,gBAAgB,4BACE,cAAc,EAAE,SAW3C,CAAC"}
@@ -0,0 +1,353 @@
1
+ import { BIP340KeygenResult, EcdsaKeygenResult, EcdsaSignature, MessageHash, type EcdsaPublicKey } from '#internal/node';
2
+ import { BackupLocation, DynamicApiClient, ThresholdSignatureScheme, type ILogger, WalletOperation, type BitcoinConfig, type KeyShareBackupInfo, type RequestWithElevatedAccessToken } from '@dynamic-labs-wallet/core';
3
+ import { ForwardMPCClientV2 } from '@dynamic-labs-wallet/forward-mpc-client';
4
+ import type { SignMessageContext } from '@dynamic-labs/sdk-api-core';
5
+ import type { ServerKeyShare } from './mpc/index.js';
6
+ import type { ServerInitKeygenResult } from './mpc/types.js';
7
+ import type { DynamicWalletClientProps, WalletProperties } from './types.js';
8
+ export declare class DynamicWalletClient {
9
+ environmentId: string;
10
+ debug: boolean;
11
+ protected logger: ILogger;
12
+ protected apiClient: DynamicApiClient;
13
+ protected walletMap: Record<string, WalletProperties>;
14
+ protected baseMPCRelayApiUrl?: string;
15
+ protected baseJWTAuthToken?: string;
16
+ protected baseApiUrl?: string;
17
+ protected isApiClientAuthenticated: boolean;
18
+ protected forwardMPCEnabled: boolean;
19
+ protected resolvedForwardMPCClient: ForwardMPCClientV2 | undefined;
20
+ constructor({ environmentId, baseApiUrl, baseMPCRelayApiUrl, debug, forwardMPCClient, enableMPCAccelerator, logger, }: DynamicWalletClientProps);
21
+ private ensureApiClientAuthenticated;
22
+ authenticateApiToken(authToken: string): Promise<void>;
23
+ dynamicServerInitializeKeyGen({ chainName, externalServerKeygenIds, thresholdSignatureScheme, dynamicRequestId, skipLock, bitcoinConfig, onError, onCeremonyComplete, }: {
24
+ chainName: string;
25
+ externalServerKeygenIds: string[];
26
+ thresholdSignatureScheme: ThresholdSignatureScheme;
27
+ dynamicRequestId: string;
28
+ skipLock?: boolean;
29
+ bitcoinConfig?: BitcoinConfig;
30
+ onError?: (error: Error) => void;
31
+ onCeremonyComplete?: (accountAddress: string, walletId: string) => void;
32
+ }): Promise<import("@dynamic-labs-wallet/core").KeygenCompleteResponse>;
33
+ externalServerInitializeKeyGen({ chainName, thresholdSignatureScheme, bitcoinConfig, }: {
34
+ chainName: string;
35
+ thresholdSignatureScheme: ThresholdSignatureScheme;
36
+ bitcoinConfig?: BitcoinConfig;
37
+ }): Promise<ServerInitKeygenResult[]>;
38
+ derivePublicKey({ chainName, keyShare, derivationPath, bitcoinConfig, }: {
39
+ chainName: string;
40
+ keyShare: ServerKeyShare;
41
+ derivationPath: Uint32Array | undefined;
42
+ bitcoinConfig?: BitcoinConfig;
43
+ }): Promise<string | EcdsaPublicKey | Uint8Array | undefined>;
44
+ forwardMPCExternalServerKeyGen({ chainName, roomId, dynamicServerKeygenIds, externalServerInitKeygenResults, thresholdSignatureScheme, bitcoinConfig, }: {
45
+ chainName: string;
46
+ roomId: string;
47
+ dynamicServerKeygenIds: string[];
48
+ externalServerInitKeygenResults: ServerInitKeygenResult[];
49
+ thresholdSignatureScheme: ThresholdSignatureScheme;
50
+ bitcoinConfig?: BitcoinConfig;
51
+ }): Promise<{
52
+ rawPublicKey: EcdsaPublicKey | Uint8Array | string | undefined;
53
+ externalServerKeyGenResults: ServerKeyShare[];
54
+ }>;
55
+ externalServerKeyGen({ chainName, roomId, dynamicServerKeygenIds, externalServerInitKeygenResults, thresholdSignatureScheme, bitcoinConfig, }: {
56
+ chainName: string;
57
+ roomId: string;
58
+ dynamicServerKeygenIds: string[];
59
+ externalServerInitKeygenResults: ServerInitKeygenResult[];
60
+ thresholdSignatureScheme: ThresholdSignatureScheme;
61
+ bitcoinConfig?: BitcoinConfig;
62
+ }): Promise<{
63
+ rawPublicKey: EcdsaPublicKey | Uint8Array | string | undefined;
64
+ externalServerKeyGenResults: ServerKeyShare[];
65
+ }>;
66
+ keyGen({ chainName, thresholdSignatureScheme, skipLock, bitcoinConfig, onError, onCeremonyComplete, }: {
67
+ chainName: string;
68
+ thresholdSignatureScheme: ThresholdSignatureScheme;
69
+ skipLock?: boolean;
70
+ bitcoinConfig?: BitcoinConfig;
71
+ onError?: (error: Error) => void;
72
+ onCeremonyComplete?: (accountAddress: string, walletId: string) => void;
73
+ }): Promise<{
74
+ rawPublicKey: EcdsaPublicKey | Uint8Array | string | undefined;
75
+ externalServerKeyShares: ServerKeyShare[];
76
+ }>;
77
+ importRawPrivateKey({ chainName, privateKey, thresholdSignatureScheme, bitcoinConfig, onError, onCeremonyComplete, }: {
78
+ chainName: string;
79
+ privateKey: string;
80
+ thresholdSignatureScheme: ThresholdSignatureScheme;
81
+ bitcoinConfig?: BitcoinConfig;
82
+ onError?: (error: Error) => void;
83
+ onCeremonyComplete?: (accountAddress: string, walletId: string) => void;
84
+ }): Promise<{
85
+ rawPublicKey: EcdsaPublicKey | Uint8Array | string | undefined;
86
+ externalServerKeyShares: ServerKeyShare[];
87
+ }>;
88
+ dynamicServerSign({ walletId, message, isFormatted, context, bitcoinConfig, onError, dynamicRequestId: providedRequestId, }: {
89
+ walletId: string;
90
+ message: string | Uint8Array;
91
+ isFormatted?: boolean;
92
+ context?: SignMessageContext;
93
+ bitcoinConfig?: BitcoinConfig;
94
+ onError?: (error: Error) => void;
95
+ dynamicRequestId?: string;
96
+ }): Promise<{
97
+ dynamicRequestId: string;
98
+ roomId: string;
99
+ serverKeygenIds: string[];
100
+ }>;
101
+ externalServerSign({ chainName, message, roomId, keyShare, derivationPath, isFormatted, bitcoinConfig, }: {
102
+ chainName: string;
103
+ message: string | Uint8Array;
104
+ roomId: string;
105
+ keyShare: ServerKeyShare;
106
+ derivationPath: Uint32Array | undefined;
107
+ isFormatted?: boolean;
108
+ bitcoinConfig?: BitcoinConfig;
109
+ }): Promise<Uint8Array | EcdsaSignature>;
110
+ forwardMPCClientSign({ chainName, message, roomId, keyShare, derivationPath, formattedMessage, dynamicRequestId, isFormatted, walletId, }: {
111
+ chainName: string;
112
+ message: string | Uint8Array;
113
+ roomId: string;
114
+ keyShare: ServerKeyShare;
115
+ derivationPath: Uint32Array | undefined;
116
+ formattedMessage: string | Uint8Array | MessageHash;
117
+ dynamicRequestId: string;
118
+ isFormatted?: boolean;
119
+ walletId?: string;
120
+ }): Promise<Uint8Array | EcdsaSignature>;
121
+ sign({ accountAddress, externalServerKeyShares, message, chainName, password, isFormatted, context, onError, bitcoinConfig, }: {
122
+ accountAddress: string;
123
+ externalServerKeyShares?: ServerKeyShare[];
124
+ message: string | Uint8Array;
125
+ chainName: string;
126
+ password?: string;
127
+ isFormatted?: boolean;
128
+ context?: SignMessageContext;
129
+ bitcoinConfig?: BitcoinConfig;
130
+ onError?: (error: Error) => void;
131
+ }): Promise<Uint8Array | EcdsaSignature>;
132
+ refreshWalletAccountShares({ accountAddress, chainName, password, externalServerKeyShares, backUpToClientShareService, }: {
133
+ accountAddress: string;
134
+ chainName: string;
135
+ password?: string;
136
+ externalServerKeyShares?: ServerKeyShare[];
137
+ backUpToClientShareService?: boolean;
138
+ }): Promise<(EcdsaKeygenResult | BIP340KeygenResult)[]>;
139
+ getExportId({ chainName, serverKeyShare, bitcoinConfig, }: {
140
+ chainName: string;
141
+ serverKeyShare: ServerKeyShare;
142
+ bitcoinConfig?: BitcoinConfig;
143
+ }): Promise<string>;
144
+ /**
145
+ * Helper function to create client shares required to complete a reshare ceremony.
146
+ * @param {string} chainName - The chain to create shares for
147
+ * @param {WalletProperties} wallet - The wallet to reshare
148
+ * @param {ThresholdSignatureScheme} oldThresholdSignatureScheme - The current threshold signature scheme
149
+ * @param {ThresholdSignatureScheme} newThresholdSignatureScheme - The target threshold signature scheme
150
+ * @returns {Promise<{
151
+ * newClientInitKeygenResults: ClientInitKeygenResult[],
152
+ * newClientKeygenIds: string[],
153
+ * existingClientKeygenIds: string[],
154
+ * existingClientKeyShares: ClientKeyShare[]
155
+ * }>} Object containing new and existing client keygen results, IDs and shares
156
+ * @todo Support higher to lower reshare strategies
157
+ */
158
+ reshareStrategy({ chainName, wallet, oldThresholdSignatureScheme, newThresholdSignatureScheme, }: {
159
+ chainName: string;
160
+ wallet: WalletProperties;
161
+ oldThresholdSignatureScheme: ThresholdSignatureScheme;
162
+ newThresholdSignatureScheme: ThresholdSignatureScheme;
163
+ }): Promise<{
164
+ newExternalServerInitKeygenResults: ServerInitKeygenResult[];
165
+ newExternalServerKeygenIds: string[];
166
+ existingExternalServerKeygenIds: string[];
167
+ existingExternalServerKeyShares: ServerKeyShare[];
168
+ }>;
169
+ reshare({ chainName, accountAddress, oldThresholdSignatureScheme, newThresholdSignatureScheme, password, externalServerKeyShares, backUpToClientShareService, }: {
170
+ chainName: string;
171
+ accountAddress: string;
172
+ oldThresholdSignatureScheme: ThresholdSignatureScheme;
173
+ newThresholdSignatureScheme: ThresholdSignatureScheme;
174
+ password?: string;
175
+ externalServerKeyShares?: ServerKeyShare[];
176
+ backUpToClientShareService?: boolean;
177
+ }): Promise<(EcdsaKeygenResult | BIP340KeygenResult)[]>;
178
+ exportKey({ accountAddress, chainName, password, externalServerKeyShares, bitcoinConfig, elevatedAccessToken, }: RequestWithElevatedAccessToken<{
179
+ accountAddress: string;
180
+ chainName: string;
181
+ password?: string;
182
+ externalServerKeyShares?: ServerKeyShare[];
183
+ bitcoinConfig?: BitcoinConfig;
184
+ }>): Promise<{
185
+ derivedPrivateKey: string | undefined;
186
+ }>;
187
+ offlineExportKey({ chainName, keyShares, derivationPath, }: {
188
+ chainName: string;
189
+ keyShares: ServerKeyShare[];
190
+ derivationPath?: string;
191
+ }): Promise<{
192
+ derivedPrivateKey: string | undefined;
193
+ }>;
194
+ encryptKeyShare({ keyShare, password }: {
195
+ keyShare: ServerKeyShare;
196
+ password?: string;
197
+ }): Promise<string>;
198
+ ensureCeremonyCompletionBeforeBackup({ accountAddress }: {
199
+ accountAddress: string;
200
+ }): Promise<void>;
201
+ storeEncryptedBackupByWallet({ accountAddress, externalServerKeyShares, password, backUpToClientShareService, }: {
202
+ accountAddress: string;
203
+ externalServerKeyShares?: ServerKeyShare[];
204
+ password?: string;
205
+ backUpToClientShareService: boolean;
206
+ }): Promise<{
207
+ share: ServerKeyShare;
208
+ backedUpToClientKeyShareService: boolean;
209
+ }[]>;
210
+ storeEncryptedBackupByWalletWithRetry({ accountAddress, externalServerKeyShares, password, backUpToClientShareService, }: {
211
+ accountAddress: string;
212
+ externalServerKeyShares?: ServerKeyShare[];
213
+ password?: string;
214
+ backUpToClientShareService: boolean;
215
+ }): Promise<Array<{
216
+ share: ServerKeyShare;
217
+ backedUpToClientKeyShareService: boolean;
218
+ }>>;
219
+ getExternalServerKeyShares({ accountAddress, password }: {
220
+ accountAddress: string;
221
+ password?: string;
222
+ }): Promise<any[]>;
223
+ updatePassword({ accountAddress, existingPassword, newPassword, backUpToClientShareService, }: {
224
+ accountAddress: string;
225
+ existingPassword?: string;
226
+ newPassword?: string;
227
+ backUpToClientShareService: boolean;
228
+ }): Promise<void>;
229
+ decryptKeyShare({ keyShare, password }: {
230
+ keyShare: string;
231
+ password?: string;
232
+ }): Promise<ServerKeyShare>;
233
+ /**
234
+ * Helper function to determine keyshare recovery strategy for dynamic shares.
235
+ * For REFRESH operations, retrieves enough shares to meet the client threshold.
236
+ * For all other operations, retrieves just 1 share.
237
+ *
238
+ * @param clientKeyShareBackupInfo - Information about backed up key shares
239
+ * @param thresholdSignatureScheme - The signature scheme being used (2-of-2, 2-of-3, etc)
240
+ * @param walletOperation - The operation being performed (REFRESH, SIGN_MESSAGE, etc)
241
+ * @param shareCount - The number of shares to recover if specified for reshare operations
242
+ * @returns @shares: Object mapping backup locations to arrays of share IDs to recover
243
+ * @returns @requiredShareCount: The number of shares required to recover
244
+ */
245
+ recoverStrategy({ externalServerKeySharesBackupInfo, thresholdSignatureScheme, walletOperation, shareCount, }: {
246
+ externalServerKeySharesBackupInfo: KeyShareBackupInfo;
247
+ thresholdSignatureScheme: ThresholdSignatureScheme;
248
+ walletOperation: WalletOperation;
249
+ shareCount?: number;
250
+ }): {
251
+ shares: Partial<Record<BackupLocation, string[]>>;
252
+ requiredShareCount: number;
253
+ };
254
+ /**
255
+ * Attempts to recover key shares from backup if they are not provided.
256
+ * The recovered shares will be stored in the wallet map for use in signing operations.
257
+ * @param accountAddress - The account address to recover shares for
258
+ * @param password - The password to decrypt the shares
259
+ * @param walletOperation - The wallet operation being performed
260
+ * @param externalServerKeyShares - The provided key shares (if any)
261
+ * @param errorMessage - The error message to throw if recovery fails
262
+ * @throws Error if recovery is needed but fails
263
+ */
264
+ protected ensureKeySharesRecovered({ accountAddress, password, walletOperation, externalServerKeyShares, errorMessage, }: {
265
+ accountAddress: string;
266
+ password?: string;
267
+ walletOperation: WalletOperation;
268
+ externalServerKeyShares?: ServerKeyShare[];
269
+ errorMessage: string;
270
+ }): Promise<void>;
271
+ recoverEncryptedBackupByWallet({ accountAddress, password, walletOperation, shareCount, storeRecoveredShares, }: {
272
+ accountAddress: string;
273
+ password?: string;
274
+ walletOperation: WalletOperation;
275
+ shareCount?: number;
276
+ storeRecoveredShares?: boolean;
277
+ }): Promise<any[]>;
278
+ exportExternalServerKeyShares({ accountAddress, password }: {
279
+ accountAddress: string;
280
+ password?: string;
281
+ }): Promise<any[]>;
282
+ /**
283
+ * Helper function to check if the required wallet fields are present and valid
284
+ * @param accountAddress - The account address of the wallet to check
285
+ * @param walletOperation - The wallet operation that determines required fields
286
+ * @returns boolean indicating if wallet needs to be re-fetched and restored from server
287
+ */
288
+ private checkWalletFields;
289
+ /**
290
+ * verifyPassword attempts to recover and decrypt a single client key share using the provided password.
291
+ * If successful, the key share is encrypted with the new password. This method solely performs the recovery
292
+ * and decryption without storing the restored key shares. If unsuccessful, it throws an error.
293
+ */
294
+ verifyPassword({ accountAddress, password }: {
295
+ accountAddress: string;
296
+ password?: string;
297
+ }): Promise<void>;
298
+ isPasswordEncrypted({ accountAddress }: {
299
+ accountAddress: string;
300
+ }): Promise<boolean>;
301
+ /**
302
+ * check if the operation requires a password
303
+ */
304
+ requiresPasswordForOperation({ accountAddress, walletOperation, }: {
305
+ accountAddress: string;
306
+ walletOperation?: WalletOperation;
307
+ }): Promise<boolean>;
308
+ /**
309
+ * check if the operation requires restoring backup shares
310
+ */
311
+ requiresRestoreBackupSharesForOperation({ accountAddress, walletOperation, }: {
312
+ accountAddress: string;
313
+ walletOperation?: WalletOperation;
314
+ }): Promise<boolean>;
315
+ getWalletExternalServerKeyShareBackupInfo({ accountAddress, }: {
316
+ accountAddress: string;
317
+ }): Promise<KeyShareBackupInfo>;
318
+ getWallet({ accountAddress, walletOperation, shareCount, password, }: {
319
+ accountAddress: string;
320
+ walletOperation?: WalletOperation;
321
+ shareCount?: number;
322
+ password?: string;
323
+ }): Promise<WalletProperties>;
324
+ /**
325
+ * Get a single wallet by address
326
+ * First tries the efficient getWaasWalletByAddress endpoint, falls back to getUser() if not available
327
+ */
328
+ getWalletByAddress(accountAddress: string): Promise<WalletProperties | null>;
329
+ /**
330
+ * Get all wallets (kept for backward compatibility but now uses lazy loading)
331
+ * @deprecated Consider using getWalletByAddress for better performance with large wallet counts
332
+ */
333
+ getWallets(): Promise<WalletProperties[]>;
334
+ /**
335
+ * Helper method to initialize or update a wallet entry in the walletMap.
336
+ * This provides a consistent way to set up wallet properties across different operations.
337
+ * @param accountAddress - The account address for the wallet
338
+ * @param walletId - The wallet ID
339
+ * @param chainName - The chain name (e.g., 'BTC', 'EVM')
340
+ * @param thresholdSignatureScheme - The threshold signature scheme
341
+ * @param derivationPath - Optional derivation path for the wallet
342
+ * @param additionalProps - Optional additional properties to merge into the wallet entry
343
+ */
344
+ protected initializeWalletMapEntry({ accountAddress, walletId, chainName, thresholdSignatureScheme, derivationPath, additionalProps, }: {
345
+ accountAddress: string;
346
+ walletId: string;
347
+ chainName: string;
348
+ thresholdSignatureScheme: ThresholdSignatureScheme;
349
+ derivationPath?: string;
350
+ additionalProps?: Record<string, unknown>;
351
+ }): void;
352
+ }
353
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../packages/src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const DEFAULT_LOG_LEVEL = "INFO";
2
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../packages/src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,SAAS,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { DynamicApiClient, type ILogger } from '@dynamic-labs-wallet/core';
2
+ export type CoreConfig = {
3
+ environmentId: string;
4
+ baseApiUrl?: string;
5
+ baseMPCRelayApiUrl?: string;
6
+ /**
7
+ * Enables verbose debug-level logging when `true`.
8
+ *
9
+ * Only applies to the built-in default logger. If you provide a custom
10
+ * `logger`, configure its verbosity directly — this flag has no effect on it.
11
+ *
12
+ * @default false
13
+ */
14
+ debug?: boolean;
15
+ /**
16
+ * Custom logger for SDK diagnostic output.
17
+ *
18
+ * Accepts any object that implements `ILogger` (`debug`, `info`, `warn`, `error`).
19
+ * When provided, the SDK routes all internal logging through this instance.
20
+ * You are responsible for configuring its log level — the `debug` flag has
21
+ * no effect on custom loggers.
22
+ *
23
+ * When omitted, a built-in logger is used with verbosity controlled by `debug`.
24
+ */
25
+ logger?: ILogger;
26
+ };
27
+ export type Core = {
28
+ environmentId: string;
29
+ createApiClient: (options?: Partial<DynamicApiClientConfig>) => DynamicApiClient;
30
+ logger: ILogger;
31
+ baseMPCRelayApiUrl?: string;
32
+ baseApiUrl?: string;
33
+ debug: boolean;
34
+ apiKey?: string;
35
+ };
36
+ export type DynamicApiClientConfig = {
37
+ environmentId: string;
38
+ authToken?: string;
39
+ baseApiUrl?: string;
40
+ sdkVersion?: string;
41
+ };
42
+ export declare const createCore: ({ environmentId, baseApiUrl, baseMPCRelayApiUrl, debug, logger, }: CoreConfig) => Core;
43
+ //# sourceMappingURL=createCore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createCore.d.ts","sourceRoot":"","sources":["../../src/core/createCore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAU,KAAK,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAGnF,MAAM,MAAM,UAAU,GAAG;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,KAAK,gBAAgB,CAAC;IACjF,MAAM,EAAE,OAAO,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,UAAU,sEAMpB,UAAU,KAAG,IA4Bf,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { Core } from './createCore.js';
2
+ export type WithCore<T> = T & {
3
+ _core: Core;
4
+ };
5
+ export declare const assignCore: <T extends object>(target: T, core: Core) => T;
6
+ export declare const getCore: <T extends object>(obj: WithCore<T>) => Core;
7
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG;IAC5B,KAAK,EAAE,IAAI,CAAC;CACb,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,MAAM,UAAU,CAAC,QAAQ,IAAI,KAAG,CAOpE,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,MAAM,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAG,IAE5D,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { DynamicApiClient } from '@dynamic-labs-wallet/core';
2
+ import type { WalletProperties } from '../types.js';
3
+ export type DelegatedClientConfig = {
4
+ environmentId: string;
5
+ baseApiUrl?: string;
6
+ baseMPCRelayApiUrl?: string;
7
+ apiKey: string;
8
+ debug?: boolean;
9
+ };
10
+ export type DelegatedWalletClient = {
11
+ get environmentId(): string;
12
+ get debug(): boolean;
13
+ get apiUrl(): string | undefined;
14
+ get wallets(): Record<string, WalletProperties>;
15
+ createApiClient: (options?: Record<string, any>) => DynamicApiClient;
16
+ logger: any;
17
+ apiKey: string;
18
+ baseMPCRelayApiUrl?: string;
19
+ };
20
+ export declare const createDelegatedApiClient: (client: DelegatedWalletClient, options?: Record<string, any>) => DynamicApiClient;
21
+ export declare const createDelegatedApiClientWithWalletKey: (client: DelegatedWalletClient, walletApiKey: string) => DynamicApiClient;
22
+ export declare const createDelegatedWalletClient: ({ environmentId, baseApiUrl, baseMPCRelayApiUrl, apiKey, debug, }: DelegatedClientConfig) => DelegatedWalletClient;
23
+ //# sourceMappingURL=createDelegatedClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createDelegatedClient.d.ts","sourceRoot":"","sources":["../../src/delegatedClient/createDelegatedClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,aAAa,IAAI,MAAM,CAAC;IAC5B,IAAI,KAAK,IAAI,OAAO,CAAC;IACrB,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAAC;IACjC,IAAI,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAChD,eAAe,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,gBAAgB,CAAC;IACrE,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAGF,eAAO,MAAM,wBAAwB,WAC3B,qBAAqB,YACpB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAC3B,gBAEF,CAAC;AAGF,eAAO,MAAM,qCAAqC,WACxC,qBAAqB,gBACf,MAAM,KACnB,gBAOF,CAAC;AAEF,eAAO,MAAM,2BAA2B,sEAMrC,qBAAqB,0BAsCvB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { createDelegatedWalletClient } from './createDelegatedClient.js';
2
+ export type { DelegatedWalletClient, DelegatedClientConfig } from './createDelegatedClient.js';
3
+ export { delegatedSignMessage } from './modules/sign.js';
4
+ export { revokeDelegation } from './modules/revokeDelegation.js';
5
+ export { decryptDelegatedWebhookData } from './modules/decryptWebhookData.js';
6
+ export type { EncryptedDelegatedPayload } from './modules/decryptWebhookData.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/delegatedClient/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,YAAY,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAG/F,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,YAAY,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { ServerKeyShare } from '../../mpc/types.js';
2
+ export type EncryptedDelegatedPayload = {
3
+ alg: string;
4
+ iv: string;
5
+ ct: string;
6
+ tag: string;
7
+ ek: string;
8
+ kid?: string;
9
+ };
10
+ export declare function decryptDelegatedWebhookData({ privateKeyPem, encryptedDelegatedKeyShare, encryptedWalletApiKey, }: {
11
+ privateKeyPem: string;
12
+ encryptedDelegatedKeyShare: EncryptedDelegatedPayload;
13
+ encryptedWalletApiKey: EncryptedDelegatedPayload;
14
+ }): {
15
+ decryptedDelegatedShare: ServerKeyShare;
16
+ decryptedWalletApiKey: string;
17
+ };
18
+ //# sourceMappingURL=decryptWebhookData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decryptWebhookData.d.ts","sourceRoot":"","sources":["../../../src/delegatedClient/modules/decryptWebhookData.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,MAAM,yBAAyB,GAAG;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAyBF,wBAAgB,2BAA2B,CAAC,EAC1C,aAAa,EACb,0BAA0B,EAC1B,qBAAqB,GACtB,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;IACtB,0BAA0B,EAAE,yBAAyB,CAAC;IACtD,qBAAqB,EAAE,yBAAyB,CAAC;CAClD,GAAG;IACF,uBAAuB,EAAE,cAAc,CAAC;IACxC,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAkCA"}
@@ -0,0 +1,3 @@
1
+ import type { DelegatedWalletClient } from '../createDelegatedClient.js';
2
+ export declare const revokeDelegation: (client: DelegatedWalletClient, walletId: string) => Promise<void>;
3
+ //# sourceMappingURL=revokeDelegation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revokeDelegation.d.ts","sourceRoot":"","sources":["../../../src/delegatedClient/modules/revokeDelegation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EAEtB,MAAM,6BAA6B,CAAC;AAErC,eAAO,MAAM,gBAAgB,WAAkB,qBAAqB,YAAY,MAAM,KAAG,OAAO,CAAC,IAAI,CAapG,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { EcdsaSignature } from '#internal/node';
2
+ import type { ServerKeyShare } from '../../mpc/types.js';
3
+ import type { DelegatedWalletClient } from '../createDelegatedClient.js';
4
+ import type { SignMessageContext } from '@dynamic-labs/sdk-api-core';
5
+ export declare const dynamicDelegatedSign: (client: DelegatedWalletClient, { walletId, message, isFormatted, walletApiKey, onError, context, }: {
6
+ walletId: string;
7
+ message: string | Uint8Array;
8
+ isFormatted?: boolean;
9
+ walletApiKey: string;
10
+ onError?: (error: Error) => void;
11
+ context?: SignMessageContext;
12
+ }) => Promise<import("@dynamic-labs-wallet/core").OpenRoomResponse>;
13
+ export declare const delegatedSign: (client: DelegatedWalletClient, { chainName, message, roomId, keyShare, derivationPath, isFormatted, }: {
14
+ chainName: string;
15
+ message: string | Uint8Array;
16
+ roomId: string;
17
+ keyShare: ServerKeyShare;
18
+ derivationPath: Uint32Array | undefined;
19
+ isFormatted?: boolean;
20
+ }) => Promise<Uint8Array | EcdsaSignature>;
21
+ export declare const delegatedSignMessage: (client: DelegatedWalletClient, { walletId, walletApiKey, keyShare, message, chainName, isFormatted, onError, context, }: {
22
+ walletId: string;
23
+ walletApiKey: string;
24
+ keyShare: ServerKeyShare;
25
+ message: string | Uint8Array;
26
+ chainName: string;
27
+ isFormatted?: boolean;
28
+ onError?: (error: Error) => void;
29
+ context?: SignMessageContext;
30
+ }) => Promise<Uint8Array | EcdsaSignature>;
31
+ //# sourceMappingURL=sign.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sign.d.ts","sourceRoot":"","sources":["../../../src/delegatedClient/modules/sign.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGrE,eAAO,MAAM,oBAAoB,WACvB,qBAAqB,uEAQ1B;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B,kEAsBF,CAAC;AAEF,eAAO,MAAM,aAAa,WAChB,qBAAqB,0EAQ1B;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,cAAc,CAAC;IACzB,cAAc,EAAE,WAAW,GAAG,SAAS,CAAC;IACxC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,KACA,OAAO,CAAC,UAAU,GAAG,cAAc,CAgBrC,CAAC;AAEF,eAAO,MAAM,oBAAoB,WACvB,qBAAqB,4FAU1B;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B,KACA,OAAO,CAAC,UAAU,GAAG,cAAc,CAkCrC,CAAC"}
package/src/index.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ export * from '#internal/core';
2
+ export { ThresholdSignatureScheme } from '@dynamic-labs-wallet/core';
3
+ export type { TraceContext } from '@dynamic-labs-wallet/core';
4
+ export { WalletOperation, SOLANA_RPC_URL, getMPCChainConfig } from '@dynamic-labs-wallet/core';
5
+ export { getMPCSignatureScheme, getMPCSigner } from './mpc/index.js';
6
+ export type { ServerInitKeygenResult, ServerKeyShare, SignMessage } from './mpc/index.js';
7
+ export * from './client.js';
8
+ export * from './types.js';
9
+ export * from './utils.js';
10
+ export * from './mpc/index.js';
11
+ export { createDelegatedWalletClient, delegatedSignMessage, revokeDelegation } from './delegatedClient/index.js';
12
+ export type { DelegatedWalletClient, DelegatedClientConfig } from './delegatedClient/index.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/src/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,YAAY,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG/F,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACrE,YAAY,EAAE,sBAAsB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG1F,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACjH,YAAY,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { getMPCSignatureScheme, getMPCSigner } from './mpc.js';
2
+ export type { ServerInitKeygenResult, ServerKeyShare, SignMessage } from './types.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mpc/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC/D,YAAY,EAAE,sBAAsB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { type BitcoinConfig, SigningAlgorithm } from '@dynamic-labs-wallet/core';
2
+ import { Ecdsa, ExportableEd25519, BIP340 } from '#internal/node';
3
+ export declare const getMPCSignatureScheme: ({ signingAlgorithm, baseRelayUrl, }: {
4
+ signingAlgorithm: SigningAlgorithm;
5
+ baseRelayUrl?: string;
6
+ }) => Ecdsa | ExportableEd25519 | BIP340;
7
+ export declare const getMPCSigner: ({ chainName, baseRelayUrl, bitcoinConfig, }: {
8
+ chainName: string;
9
+ baseRelayUrl?: string;
10
+ bitcoinConfig?: BitcoinConfig;
11
+ }) => Ecdsa | ExportableEd25519 | BIP340;
12
+ //# sourceMappingURL=mpc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mpc.d.ts","sourceRoot":"","sources":["../../src/mpc/mpc.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAElB,gBAAgB,EAEjB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAIlE,eAAO,MAAM,qBAAqB,wCAG/B;IACD,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,uCAWA,CAAC;AAEF,eAAO,MAAM,YAAY,gDAItB;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,uCAOA,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { BIP340InitKeygenResult, BIP340KeygenResult, EcdsaInitKeygenResult, EcdsaKeygenResult, Ed25519InitKeygenResult, Ed25519KeygenResult, MessageHash } from '#internal/node';
2
+ export type ServerInitKeygenResult = EcdsaInitKeygenResult | Ed25519InitKeygenResult | BIP340InitKeygenResult;
3
+ export type ServerKeyShare = EcdsaKeygenResult | Ed25519KeygenResult | BIP340KeygenResult;
4
+ export type SignMessage = MessageHash | Uint8Array;
5
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mpc/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EACnB,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,sBAAsB,CAAC;AAE9G,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;AAE1F,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC"}
package/src/types.d.ts ADDED
@@ -0,0 +1,41 @@
1
+ import type { ThresholdSignatureScheme, KeyShareBackupInfo, ILogger } from '@dynamic-labs-wallet/core';
2
+ import type { ForwardMPCClientV2 } from '@dynamic-labs-wallet/forward-mpc-client';
3
+ import type { ServerKeyShare } from './mpc/types.js';
4
+ export interface DynamicWalletClientProps {
5
+ environmentId: string;
6
+ baseApiUrl?: string;
7
+ baseMPCRelayApiUrl?: string;
8
+ /**
9
+ * Enables verbose debug-level logging when `true`.
10
+ *
11
+ * Only applies to the built-in default logger. If you provide a custom
12
+ * `logger`, configure its verbosity directly — this flag has no effect on it.
13
+ *
14
+ * @default false
15
+ */
16
+ debug?: boolean;
17
+ forwardMPCClient?: ForwardMPCClientV2;
18
+ enableMPCAccelerator?: boolean;
19
+ /**
20
+ * Custom logger for SDK diagnostic output.
21
+ *
22
+ * Accepts any object that implements `ILogger` (`debug`, `info`, `warn`, `error`).
23
+ * When provided, the SDK routes all internal logging through this instance.
24
+ * You are responsible for configuring its log level — the `debug` flag has
25
+ * no effect on custom loggers.
26
+ *
27
+ * When omitted, a built-in logger is used with verbosity controlled by `debug`.
28
+ */
29
+ logger?: ILogger;
30
+ }
31
+ export interface WalletProperties {
32
+ chainName: string;
33
+ walletId: string;
34
+ accountAddress: string;
35
+ externalServerKeyShares: ServerKeyShare[];
36
+ thresholdSignatureScheme: ThresholdSignatureScheme;
37
+ derivationPath?: string;
38
+ addressType?: string;
39
+ externalServerKeySharesBackupInfo: KeyShareBackupInfo;
40
+ }
41
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../packages/src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACvG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,kBAAkB,CAAC;IACtC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB,EAAE,cAAc,EAAE,CAAC;IAC1C,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iCAAiC,EAAE,kBAAkB,CAAC;CACvD"}
package/src/utils.d.ts ADDED
@@ -0,0 +1,49 @@
1
+ import { MessageHash } from '#internal/node';
2
+ import { type KeyShareBackupInfo, type WaasWalletProperties } from '@dynamic-labs-wallet/core';
3
+ import type { ServerKeyShare } from './mpc/types.js';
4
+ export declare const createLogError: (clientTag: string) => ({ message, error, context }: {
5
+ message: string;
6
+ error: Error;
7
+ context: Record<string, unknown>;
8
+ }) => void;
9
+ export declare const logError: ({ message, error, context, clientTag, }: {
10
+ message: string;
11
+ error: Error;
12
+ context: Record<string, unknown>;
13
+ clientTag?: string;
14
+ }) => void;
15
+ export declare const bytesToBase64: (arr: Uint8Array) => string;
16
+ export declare const stringToBytes: (str: string) => Uint8Array;
17
+ export declare const base64ToBytes: (base64: string) => Uint8Array;
18
+ export declare const ensureBase64Padding: (str: string) => string;
19
+ export declare const stripHexPrefix: (str: string) => string;
20
+ export declare const isHexString: (str: string) => boolean;
21
+ export declare const getExternalServerKeyShareBackupInfo: (params?: {
22
+ walletProperties: WaasWalletProperties;
23
+ }) => KeyShareBackupInfo;
24
+ /**
25
+ * Helper function to merge keyshares and remove duplicates based on pubkey and secretShare
26
+ * @param existingKeyShares - Array of existing keyshares
27
+ * @param newKeyShares - Array of new keyshares to merge
28
+ * @returns Array of merged unique keyshares
29
+ */
30
+ export declare const mergeUniqueKeyShares: (existingKeyShares: ServerKeyShare[], newKeyShares: ServerKeyShare[]) => ServerKeyShare[];
31
+ interface RetryConfig {
32
+ maxAttempts?: number;
33
+ retryInterval?: number;
34
+ operationName?: string;
35
+ logContext?: Record<string, unknown>;
36
+ }
37
+ /**
38
+ * Generic helper function to retry a promise-based operations
39
+ *
40
+ * @param operation - The async operation to retry
41
+ * @param config - Configuration options for retry behavior
42
+ * @returns Promise with the operation result
43
+ * @throws Last error encountered after all retries are exhausted
44
+ */
45
+ export declare function retryPromise<T>(operation: () => Promise<T>, { maxAttempts, retryInterval, operationName, logContext }?: RetryConfig): Promise<T>;
46
+ export declare const formatEvmMessage: (message: string | Uint8Array) => MessageHash;
47
+ export declare const formatMessage: (chainName: string, message: string | Uint8Array) => string | Uint8Array | MessageHash;
48
+ export {};
49
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../packages/src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAI1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,eAAO,MAAM,cAAc,cACb,MAAM,mCACY;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,KAAG,IAClD,CAAC;AAErD,eAAO,MAAM,QAAQ,4CAKlB;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,KAAG,IAUH,CAAC;AAEF,eAAO,MAAM,aAAa,QAAS,UAAU,WAE5C,CAAC;AAEF,eAAO,MAAM,aAAa,QAAS,MAAM,eAExC,CAAC;AAEF,eAAO,MAAM,aAAa,WAAY,MAAM,eAE3C,CAAC;AAGF,eAAO,MAAM,mBAAmB,QAAS,MAAM,KAAG,MAEjD,CAAC;AAEF,eAAO,MAAM,cAAc,QAAS,MAAM,WAAgD,CAAC;AAE3F,eAAO,MAAM,WAAW,QAAS,MAAM,YAA+C,CAAC;AAEvF,eAAO,MAAM,mCAAmC,YAAa;IAC3D,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,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,EAAE,WAAe,EAAE,aAAmB,EAAE,aAA2B,EAAE,UAAe,EAAE,GAAE,WAAgB,GACvG,OAAO,CAAC,CAAC,CAAC,CAuBZ;AACD,eAAO,MAAM,gBAAgB,YAAa,MAAM,GAAG,UAAU,gBAO5D,CAAC;AAyBF,eAAO,MAAM,aAAa,cAAe,MAAM,WAAW,MAAM,GAAG,UAAU,KAAG,MAAM,GAAG,UAAU,GAAG,WAarG,CAAC"}