@dynamic-labs-wallet/node-svm 1.0.75 → 1.0.77

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 CHANGED
@@ -3,6 +3,17 @@
3
3
  var node = require('@dynamic-labs-wallet/node');
4
4
  var web3_js = require('@solana/web3.js');
5
5
 
6
+ function _extends() {
7
+ _extends = Object.assign || function assign(target) {
8
+ for(var i = 1; i < arguments.length; i++){
9
+ var source = arguments[i];
10
+ for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
11
+ }
12
+ return target;
13
+ };
14
+ return _extends.apply(this, arguments);
15
+ }
16
+
6
17
  const ERROR_CREATE_WALLET_ACCOUNT = 'Error creating svm wallet account';
7
18
  const ERROR_SIGN_RAW_MESSAGE = 'Error signing raw message';
8
19
 
@@ -164,7 +175,7 @@ class DynamicSvmWalletClient extends node.DynamicWalletClient {
164
175
  * @param message The message to sign (Uint8Array)
165
176
  * @param walletMetadata Wallet metadata (the full object returned by createWalletAccount/importPrivateKey, with backupInfo merged from any subsequent updatePassword/refresh/reshare)
166
177
  * @param password The password for encrypted backup shares
167
- */ async signMessage({ message, walletMetadata, password = undefined, externalServerKeyShares }) {
178
+ */ async signMessage({ message, walletMetadata, password = undefined, externalServerKeyShares, context }) {
168
179
  const { accountAddress } = walletMetadata;
169
180
  if (!accountAddress) {
170
181
  throw new Error('Account address is required');
@@ -172,13 +183,17 @@ class DynamicSvmWalletClient extends node.DynamicWalletClient {
172
183
  try {
173
184
  const messageBytes = typeof message === 'string' ? new TextEncoder().encode(message) : message;
174
185
  const messageHex = toHex(messageBytes);
186
+ const resolvedContext = context != null ? context : {
187
+ svmMessage: typeof message === 'string' ? message : messageHex
188
+ };
175
189
  const signatureEd25519 = await this.sign({
176
190
  message: messageHex,
177
191
  accountAddress,
178
192
  chainName: this.chainName,
179
193
  password,
180
194
  externalServerKeyShares,
181
- walletMetadata
195
+ walletMetadata,
196
+ context: resolvedContext
182
197
  });
183
198
  return encodeBase58(signatureEd25519);
184
199
  } catch (error) {
@@ -199,7 +214,7 @@ class DynamicSvmWalletClient extends node.DynamicWalletClient {
199
214
  * @param message The pre-formatted hex message to sign
200
215
  * @param walletMetadata Wallet metadata (the full object returned by createWalletAccount/importPrivateKey, with backupInfo merged from any subsequent updatePassword/refresh/reshare)
201
216
  * @param password The password for encrypted backup shares
202
- */ async signRawMessage({ message, walletMetadata, password = undefined, externalServerKeyShares }) {
217
+ */ async signRawMessage({ message, walletMetadata, password = undefined, externalServerKeyShares, context }) {
203
218
  const { accountAddress } = walletMetadata;
204
219
  if (!accountAddress) {
205
220
  throw new Error('Account address is required');
@@ -213,7 +228,8 @@ class DynamicSvmWalletClient extends node.DynamicWalletClient {
213
228
  password,
214
229
  externalServerKeyShares,
215
230
  isFormatted: true,
216
- walletMetadata
231
+ walletMetadata,
232
+ context
217
233
  });
218
234
  return encodeBase58(signatureEd25519);
219
235
  } catch (error) {
@@ -230,7 +246,7 @@ class DynamicSvmWalletClient extends node.DynamicWalletClient {
230
246
  }
231
247
  }
232
248
  //todo:should txn just be a string?
233
- async signTransaction({ walletMetadata, transaction, password = undefined, externalServerKeyShares, sponsor = false }) {
249
+ async signTransaction({ walletMetadata, transaction, password = undefined, externalServerKeyShares, sponsor = false, chainId, context }) {
234
250
  const { accountAddress } = walletMetadata;
235
251
  if (!accountAddress) {
236
252
  throw new Error('Account address is required');
@@ -254,6 +270,21 @@ class DynamicSvmWalletClient extends node.DynamicWalletClient {
254
270
  const messageBytes = transaction.serializeMessage();
255
271
  messageToSign = toHex(Buffer.isBuffer(messageBytes) ? messageBytes : messageBytes);
256
272
  }
273
+ // Mirrors the browser SVM client: svmTransaction context requires a chainId,
274
+ // so it's only attached when the caller provides one. Not derivable when
275
+ // `transaction` is a raw hex string (no Transaction object to serialize).
276
+ const resolvedContext = chainId !== undefined && typeof transaction !== 'string' ? _extends({}, context, {
277
+ svmTransaction: {
278
+ chainId,
279
+ method: 'signAndSendTransaction',
280
+ serializedTransactions: [
281
+ encodeBase58(transaction instanceof web3_js.VersionedTransaction ? transaction.serialize() : transaction.serialize({
282
+ requireAllSignatures: false,
283
+ verifySignatures: false
284
+ }))
285
+ ]
286
+ }
287
+ }) : context;
257
288
  const signatureEd25519 = await this.sign({
258
289
  message: messageToSign,
259
290
  accountAddress,
@@ -261,7 +292,8 @@ class DynamicSvmWalletClient extends node.DynamicWalletClient {
261
292
  password,
262
293
  externalServerKeyShares,
263
294
  walletMetadata,
264
- walletOperation: node.WalletOperation.SIGN_TRANSACTION
295
+ walletOperation: node.WalletOperation.SIGN_TRANSACTION,
296
+ context: resolvedContext
265
297
  });
266
298
  if (!signatureEd25519) {
267
299
  throw new Error('Signature is undefined');
@@ -504,17 +536,6 @@ async function sendTransaction({ signedTransaction, rpcUrl = 'https://api.devnet
504
536
  return txid;
505
537
  }
506
538
 
507
- function _extends() {
508
- _extends = Object.assign || function assign(target) {
509
- for(var i = 1; i < arguments.length; i++){
510
- var source = arguments[i];
511
- for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
512
- }
513
- return target;
514
- };
515
- return _extends.apply(this, arguments);
516
- }
517
-
518
539
  const logError = node.createLogError('node-svm');
519
540
  /**
520
541
  * Creates a delegated SVM wallet client for functional operations
@@ -532,11 +553,14 @@ const logError = node.createLogError('node-svm');
532
553
  };
533
554
  /**
534
555
  * Signs a message using delegated signing for SVM
535
- */ const delegatedSignMessage = async (client, { walletId, shareSetId, walletApiKey, keyShare, message, derivationPath, isFormatted = false })=>{
556
+ */ const delegatedSignMessage = async (client, { walletId, shareSetId, walletApiKey, keyShare, message, derivationPath, isFormatted = false, context })=>{
536
557
  try {
537
558
  if (!keyShare || !walletId || !walletApiKey) {
538
559
  throw new Error('Delegated key share, wallet ID, and wallet API key are required to sign a message');
539
560
  }
561
+ const resolvedContext = context != null ? context : {
562
+ svmMessage: message
563
+ };
540
564
  const signatureEd25519 = await node.delegatedSignMessage(client, {
541
565
  walletId,
542
566
  shareSetId,
@@ -545,7 +569,8 @@ const logError = node.createLogError('node-svm');
545
569
  message,
546
570
  chainName: client.chainName,
547
571
  derivationPath,
548
- isFormatted
572
+ isFormatted,
573
+ context: resolvedContext
549
574
  });
550
575
  return encodeBase58(signatureEd25519);
551
576
  } catch (error) {
@@ -598,7 +623,7 @@ const logError = node.createLogError('node-svm');
598
623
  * signerAddress: senderAddress, // Explicitly specify who signs
599
624
  * });
600
625
  *
601
- */ const delegatedSignTransaction = async (client, { walletId, shareSetId, walletApiKey, keyShare, transaction, signerAddress, derivationPath })=>{
626
+ */ const delegatedSignTransaction = async (client, { walletId, shareSetId, walletApiKey, keyShare, transaction, signerAddress, derivationPath, chainId, context })=>{
602
627
  try {
603
628
  if (!keyShare || !walletId || !walletApiKey) {
604
629
  throw new Error('Delegated key share, wallet ID, and wallet API key are required to sign a transaction');
@@ -613,6 +638,20 @@ const logError = node.createLogError('node-svm');
613
638
  const messageBytes = transaction.serializeMessage();
614
639
  messageToSign = messageBytes.toString('hex');
615
640
  }
641
+ // Mirrors the browser SVM client: svmTransaction context requires a chainId,
642
+ // so it's only attached when the caller provides one.
643
+ const resolvedContext = chainId !== undefined ? _extends({}, context, {
644
+ svmTransaction: {
645
+ chainId,
646
+ method: 'signAndSendTransaction',
647
+ serializedTransactions: [
648
+ encodeBase58(transaction instanceof web3_js.VersionedTransaction ? transaction.serialize() : transaction.serialize({
649
+ requireAllSignatures: false,
650
+ verifySignatures: false
651
+ }))
652
+ ]
653
+ }
654
+ }) : context;
616
655
  const signatureEd25519 = await node.delegatedSignMessage(client, {
617
656
  walletId,
618
657
  shareSetId,
@@ -621,7 +660,8 @@ const logError = node.createLogError('node-svm');
621
660
  message: messageToSign,
622
661
  chainName: client.chainName,
623
662
  derivationPath,
624
- isFormatted: false
663
+ isFormatted: false,
664
+ context: resolvedContext
625
665
  });
626
666
  if (!signatureEd25519) {
627
667
  throw new Error('Signature is undefined');
@@ -695,7 +735,7 @@ const logError = node.createLogError('node-svm');
695
735
  * message: hash,
696
736
  * });
697
737
  *
698
- */ const delegatedSignRawMessage = async (client, { walletId, shareSetId, walletApiKey, keyShare, message, derivationPath })=>{
738
+ */ const delegatedSignRawMessage = async (client, { walletId, shareSetId, walletApiKey, keyShare, message, derivationPath, context })=>{
699
739
  if (!keyShare || !walletId || !walletApiKey) {
700
740
  throw new Error('Delegated key share, wallet ID, and wallet API key are required to sign a raw message');
701
741
  }
@@ -707,7 +747,8 @@ const logError = node.createLogError('node-svm');
707
747
  keyShare,
708
748
  message: node.stripHexPrefix(message),
709
749
  derivationPath,
710
- isFormatted: true
750
+ isFormatted: true,
751
+ context
711
752
  });
712
753
  } catch (error) {
713
754
  logError({
package/index.esm.js CHANGED
@@ -1,6 +1,17 @@
1
1
  import { createLogError, DynamicWalletClient, getMPCChainConfig, stripHexPrefix, WalletOperation, SOLANA_RPC_URL, createDelegatedWalletClient, delegatedSignMessage as delegatedSignMessage$1, revokeDelegation as revokeDelegation$1 } from '@dynamic-labs-wallet/node';
2
2
  import { PublicKey, VersionedTransaction, Keypair, Transaction, Connection, SystemProgram } from '@solana/web3.js';
3
3
 
4
+ function _extends() {
5
+ _extends = Object.assign || function assign(target) {
6
+ for(var i = 1; i < arguments.length; i++){
7
+ var source = arguments[i];
8
+ for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
9
+ }
10
+ return target;
11
+ };
12
+ return _extends.apply(this, arguments);
13
+ }
14
+
4
15
  const ERROR_CREATE_WALLET_ACCOUNT = 'Error creating svm wallet account';
5
16
  const ERROR_SIGN_RAW_MESSAGE = 'Error signing raw message';
6
17
 
@@ -162,7 +173,7 @@ class DynamicSvmWalletClient extends DynamicWalletClient {
162
173
  * @param message The message to sign (Uint8Array)
163
174
  * @param walletMetadata Wallet metadata (the full object returned by createWalletAccount/importPrivateKey, with backupInfo merged from any subsequent updatePassword/refresh/reshare)
164
175
  * @param password The password for encrypted backup shares
165
- */ async signMessage({ message, walletMetadata, password = undefined, externalServerKeyShares }) {
176
+ */ async signMessage({ message, walletMetadata, password = undefined, externalServerKeyShares, context }) {
166
177
  const { accountAddress } = walletMetadata;
167
178
  if (!accountAddress) {
168
179
  throw new Error('Account address is required');
@@ -170,13 +181,17 @@ class DynamicSvmWalletClient extends DynamicWalletClient {
170
181
  try {
171
182
  const messageBytes = typeof message === 'string' ? new TextEncoder().encode(message) : message;
172
183
  const messageHex = toHex(messageBytes);
184
+ const resolvedContext = context != null ? context : {
185
+ svmMessage: typeof message === 'string' ? message : messageHex
186
+ };
173
187
  const signatureEd25519 = await this.sign({
174
188
  message: messageHex,
175
189
  accountAddress,
176
190
  chainName: this.chainName,
177
191
  password,
178
192
  externalServerKeyShares,
179
- walletMetadata
193
+ walletMetadata,
194
+ context: resolvedContext
180
195
  });
181
196
  return encodeBase58(signatureEd25519);
182
197
  } catch (error) {
@@ -197,7 +212,7 @@ class DynamicSvmWalletClient extends DynamicWalletClient {
197
212
  * @param message The pre-formatted hex message to sign
198
213
  * @param walletMetadata Wallet metadata (the full object returned by createWalletAccount/importPrivateKey, with backupInfo merged from any subsequent updatePassword/refresh/reshare)
199
214
  * @param password The password for encrypted backup shares
200
- */ async signRawMessage({ message, walletMetadata, password = undefined, externalServerKeyShares }) {
215
+ */ async signRawMessage({ message, walletMetadata, password = undefined, externalServerKeyShares, context }) {
201
216
  const { accountAddress } = walletMetadata;
202
217
  if (!accountAddress) {
203
218
  throw new Error('Account address is required');
@@ -211,7 +226,8 @@ class DynamicSvmWalletClient extends DynamicWalletClient {
211
226
  password,
212
227
  externalServerKeyShares,
213
228
  isFormatted: true,
214
- walletMetadata
229
+ walletMetadata,
230
+ context
215
231
  });
216
232
  return encodeBase58(signatureEd25519);
217
233
  } catch (error) {
@@ -228,7 +244,7 @@ class DynamicSvmWalletClient extends DynamicWalletClient {
228
244
  }
229
245
  }
230
246
  //todo:should txn just be a string?
231
- async signTransaction({ walletMetadata, transaction, password = undefined, externalServerKeyShares, sponsor = false }) {
247
+ async signTransaction({ walletMetadata, transaction, password = undefined, externalServerKeyShares, sponsor = false, chainId, context }) {
232
248
  const { accountAddress } = walletMetadata;
233
249
  if (!accountAddress) {
234
250
  throw new Error('Account address is required');
@@ -252,6 +268,21 @@ class DynamicSvmWalletClient extends DynamicWalletClient {
252
268
  const messageBytes = transaction.serializeMessage();
253
269
  messageToSign = toHex(Buffer.isBuffer(messageBytes) ? messageBytes : messageBytes);
254
270
  }
271
+ // Mirrors the browser SVM client: svmTransaction context requires a chainId,
272
+ // so it's only attached when the caller provides one. Not derivable when
273
+ // `transaction` is a raw hex string (no Transaction object to serialize).
274
+ const resolvedContext = chainId !== undefined && typeof transaction !== 'string' ? _extends({}, context, {
275
+ svmTransaction: {
276
+ chainId,
277
+ method: 'signAndSendTransaction',
278
+ serializedTransactions: [
279
+ encodeBase58(transaction instanceof VersionedTransaction ? transaction.serialize() : transaction.serialize({
280
+ requireAllSignatures: false,
281
+ verifySignatures: false
282
+ }))
283
+ ]
284
+ }
285
+ }) : context;
255
286
  const signatureEd25519 = await this.sign({
256
287
  message: messageToSign,
257
288
  accountAddress,
@@ -259,7 +290,8 @@ class DynamicSvmWalletClient extends DynamicWalletClient {
259
290
  password,
260
291
  externalServerKeyShares,
261
292
  walletMetadata,
262
- walletOperation: WalletOperation.SIGN_TRANSACTION
293
+ walletOperation: WalletOperation.SIGN_TRANSACTION,
294
+ context: resolvedContext
263
295
  });
264
296
  if (!signatureEd25519) {
265
297
  throw new Error('Signature is undefined');
@@ -502,17 +534,6 @@ async function sendTransaction({ signedTransaction, rpcUrl = 'https://api.devnet
502
534
  return txid;
503
535
  }
504
536
 
505
- function _extends() {
506
- _extends = Object.assign || function assign(target) {
507
- for(var i = 1; i < arguments.length; i++){
508
- var source = arguments[i];
509
- for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
510
- }
511
- return target;
512
- };
513
- return _extends.apply(this, arguments);
514
- }
515
-
516
537
  const logError = createLogError('node-svm');
517
538
  /**
518
539
  * Creates a delegated SVM wallet client for functional operations
@@ -530,11 +551,14 @@ const logError = createLogError('node-svm');
530
551
  };
531
552
  /**
532
553
  * Signs a message using delegated signing for SVM
533
- */ const delegatedSignMessage = async (client, { walletId, shareSetId, walletApiKey, keyShare, message, derivationPath, isFormatted = false })=>{
554
+ */ const delegatedSignMessage = async (client, { walletId, shareSetId, walletApiKey, keyShare, message, derivationPath, isFormatted = false, context })=>{
534
555
  try {
535
556
  if (!keyShare || !walletId || !walletApiKey) {
536
557
  throw new Error('Delegated key share, wallet ID, and wallet API key are required to sign a message');
537
558
  }
559
+ const resolvedContext = context != null ? context : {
560
+ svmMessage: message
561
+ };
538
562
  const signatureEd25519 = await delegatedSignMessage$1(client, {
539
563
  walletId,
540
564
  shareSetId,
@@ -543,7 +567,8 @@ const logError = createLogError('node-svm');
543
567
  message,
544
568
  chainName: client.chainName,
545
569
  derivationPath,
546
- isFormatted
570
+ isFormatted,
571
+ context: resolvedContext
547
572
  });
548
573
  return encodeBase58(signatureEd25519);
549
574
  } catch (error) {
@@ -596,7 +621,7 @@ const logError = createLogError('node-svm');
596
621
  * signerAddress: senderAddress, // Explicitly specify who signs
597
622
  * });
598
623
  *
599
- */ const delegatedSignTransaction = async (client, { walletId, shareSetId, walletApiKey, keyShare, transaction, signerAddress, derivationPath })=>{
624
+ */ const delegatedSignTransaction = async (client, { walletId, shareSetId, walletApiKey, keyShare, transaction, signerAddress, derivationPath, chainId, context })=>{
600
625
  try {
601
626
  if (!keyShare || !walletId || !walletApiKey) {
602
627
  throw new Error('Delegated key share, wallet ID, and wallet API key are required to sign a transaction');
@@ -611,6 +636,20 @@ const logError = createLogError('node-svm');
611
636
  const messageBytes = transaction.serializeMessage();
612
637
  messageToSign = messageBytes.toString('hex');
613
638
  }
639
+ // Mirrors the browser SVM client: svmTransaction context requires a chainId,
640
+ // so it's only attached when the caller provides one.
641
+ const resolvedContext = chainId !== undefined ? _extends({}, context, {
642
+ svmTransaction: {
643
+ chainId,
644
+ method: 'signAndSendTransaction',
645
+ serializedTransactions: [
646
+ encodeBase58(transaction instanceof VersionedTransaction ? transaction.serialize() : transaction.serialize({
647
+ requireAllSignatures: false,
648
+ verifySignatures: false
649
+ }))
650
+ ]
651
+ }
652
+ }) : context;
614
653
  const signatureEd25519 = await delegatedSignMessage$1(client, {
615
654
  walletId,
616
655
  shareSetId,
@@ -619,7 +658,8 @@ const logError = createLogError('node-svm');
619
658
  message: messageToSign,
620
659
  chainName: client.chainName,
621
660
  derivationPath,
622
- isFormatted: false
661
+ isFormatted: false,
662
+ context: resolvedContext
623
663
  });
624
664
  if (!signatureEd25519) {
625
665
  throw new Error('Signature is undefined');
@@ -693,7 +733,7 @@ const logError = createLogError('node-svm');
693
733
  * message: hash,
694
734
  * });
695
735
  *
696
- */ const delegatedSignRawMessage = async (client, { walletId, shareSetId, walletApiKey, keyShare, message, derivationPath })=>{
736
+ */ const delegatedSignRawMessage = async (client, { walletId, shareSetId, walletApiKey, keyShare, message, derivationPath, context })=>{
697
737
  if (!keyShare || !walletId || !walletApiKey) {
698
738
  throw new Error('Delegated key share, wallet ID, and wallet API key are required to sign a raw message');
699
739
  }
@@ -705,7 +745,8 @@ const logError = createLogError('node-svm');
705
745
  keyShare,
706
746
  message: stripHexPrefix(message),
707
747
  derivationPath,
708
- isFormatted: true
748
+ isFormatted: true,
749
+ context
709
750
  });
710
751
  } catch (error) {
711
752
  logError({
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@dynamic-labs-wallet/node-svm",
3
- "version": "1.0.75",
3
+ "version": "1.0.77",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
7
- "@dynamic-labs-wallet/node": "1.0.75",
7
+ "@dynamic-labs-wallet/node": "1.0.77",
8
8
  "@solana/web3.js": "^1.98.2"
9
9
  },
10
10
  "publishConfig": {
@@ -1,4 +1,5 @@
1
1
  import { type ServerKeyShare, DynamicWalletClient, type Ed25519KeygenResult, type ThresholdSignatureScheme, type TraceContext, type DynamicWalletClientProps, type WalletMetadata } from '@dynamic-labs-wallet/node';
2
+ import type { SignMessageContext } from '@dynamic-labs/sdk-api-core';
2
3
  import { Transaction, VersionedTransaction } from '@solana/web3.js';
3
4
  export declare class DynamicSvmWalletClient extends DynamicWalletClient {
4
5
  readonly chainName = "SVM";
@@ -34,11 +35,12 @@ export declare class DynamicSvmWalletClient extends DynamicWalletClient {
34
35
  * @param walletMetadata Wallet metadata (the full object returned by createWalletAccount/importPrivateKey, with backupInfo merged from any subsequent updatePassword/refresh/reshare)
35
36
  * @param password The password for encrypted backup shares
36
37
  */
37
- signMessage({ message, walletMetadata, password, externalServerKeyShares, }: {
38
+ signMessage({ message, walletMetadata, password, externalServerKeyShares, context, }: {
38
39
  message: string | Uint8Array;
39
40
  walletMetadata: WalletMetadata;
40
41
  password?: string;
41
42
  externalServerKeyShares?: ServerKeyShare[];
43
+ context?: SignMessageContext;
42
44
  }): Promise<string>;
43
45
  /**
44
46
  * Signs a pre-formatted (raw) message without additional encoding.
@@ -48,19 +50,22 @@ export declare class DynamicSvmWalletClient extends DynamicWalletClient {
48
50
  * @param walletMetadata Wallet metadata (the full object returned by createWalletAccount/importPrivateKey, with backupInfo merged from any subsequent updatePassword/refresh/reshare)
49
51
  * @param password The password for encrypted backup shares
50
52
  */
51
- signRawMessage({ message, walletMetadata, password, externalServerKeyShares, }: {
53
+ signRawMessage({ message, walletMetadata, password, externalServerKeyShares, context, }: {
52
54
  message: string;
53
55
  walletMetadata: WalletMetadata;
54
56
  password?: string;
55
57
  externalServerKeyShares?: ServerKeyShare[];
58
+ context?: SignMessageContext;
56
59
  }): Promise<string>;
57
- signTransaction({ walletMetadata, transaction, password, externalServerKeyShares, sponsor, }: {
60
+ signTransaction({ walletMetadata, transaction, password, externalServerKeyShares, sponsor, chainId, context, }: {
58
61
  walletMetadata: WalletMetadata;
59
62
  transaction: VersionedTransaction | Transaction | string;
60
63
  password?: string;
61
64
  externalServerKeyShares?: ServerKeyShare[];
62
65
  /** If true, requests gas sponsorship from Dynamic before signing. */
63
66
  sponsor?: boolean;
67
+ chainId?: string;
68
+ context?: SignMessageContext;
64
69
  }): Promise<string>;
65
70
  /**
66
71
  * Exports the private key for a given wallet
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { DelegatedWalletClient, ServerKeyShare } from '@dynamic-labs-wallet/node';
2
+ import type { SignMessageContext } from '@dynamic-labs/sdk-api-core';
2
3
  import type { Transaction } from '@solana/web3.js';
3
4
  import { VersionedTransaction } from '@solana/web3.js';
4
5
  export type DelegatedSvmClientConfig = {
@@ -18,7 +19,7 @@ export declare const createDelegatedSvmWalletClient: ({ environmentId, baseApiUr
18
19
  /**
19
20
  * Signs a message using delegated signing for SVM
20
21
  */
21
- export declare const delegatedSignMessage: (client: DelegatedSvmWalletClient, { walletId, shareSetId, walletApiKey, keyShare, message, derivationPath, isFormatted, }: {
22
+ export declare const delegatedSignMessage: (client: DelegatedSvmWalletClient, { walletId, shareSetId, walletApiKey, keyShare, message, derivationPath, isFormatted, context, }: {
22
23
  walletId: string;
23
24
  /**
24
25
  * Optional. The `shareSetId` from the `wallet.delegation.created`
@@ -33,6 +34,7 @@ export declare const delegatedSignMessage: (client: DelegatedSvmWalletClient, {
33
34
  message: string;
34
35
  derivationPath?: Uint32Array;
35
36
  isFormatted?: boolean;
37
+ context?: SignMessageContext;
36
38
  }) => Promise<string>;
37
39
  /**
38
40
  * Signs a transaction using delegated signing for SVM
@@ -74,7 +76,7 @@ export declare const delegatedSignMessage: (client: DelegatedSvmWalletClient, {
74
76
  * });
75
77
  *
76
78
  */
77
- export declare const delegatedSignTransaction: (client: DelegatedSvmWalletClient, { walletId, shareSetId, walletApiKey, keyShare, transaction, signerAddress, derivationPath, }: {
79
+ export declare const delegatedSignTransaction: (client: DelegatedSvmWalletClient, { walletId, shareSetId, walletApiKey, keyShare, transaction, signerAddress, derivationPath, chainId, context, }: {
78
80
  walletId: string;
79
81
  /**
80
82
  * Optional. The `shareSetId` from the `wallet.delegation.created`
@@ -89,6 +91,8 @@ export declare const delegatedSignTransaction: (client: DelegatedSvmWalletClient
89
91
  transaction: VersionedTransaction | Transaction;
90
92
  signerAddress?: string;
91
93
  derivationPath?: Uint32Array;
94
+ chainId?: string;
95
+ context?: SignMessageContext;
92
96
  }) => Promise<VersionedTransaction | Transaction>;
93
97
  /**
94
98
  * Signs a pre-formatted (raw) message using delegated signing for SVM.
@@ -124,7 +128,7 @@ export declare const delegatedSignTransaction: (client: DelegatedSvmWalletClient
124
128
  * });
125
129
  *
126
130
  */
127
- export declare const delegatedSignRawMessage: (client: DelegatedSvmWalletClient, { walletId, shareSetId, walletApiKey, keyShare, message, derivationPath, }: {
131
+ export declare const delegatedSignRawMessage: (client: DelegatedSvmWalletClient, { walletId, shareSetId, walletApiKey, keyShare, message, derivationPath, context, }: {
128
132
  walletId: string;
129
133
  /**
130
134
  * Optional. The `shareSetId` from the `wallet.delegation.created`
@@ -138,6 +142,7 @@ export declare const delegatedSignRawMessage: (client: DelegatedSvmWalletClient,
138
142
  keyShare: ServerKeyShare;
139
143
  message: string;
140
144
  derivationPath?: Uint32Array;
145
+ context?: SignMessageContext;
141
146
  }) => Promise<string>;
142
147
  /**
143
148
  * Revoke delegation - delegates to the node package
@@ -1 +1 @@
1
- {"version":3,"file":"delegatedClient.d.ts","sourceRoot":"","sources":["../../packages/src/delegatedClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAQvF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAa,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAMlE,MAAM,MAAM,wBAAwB,GAAG;IACrC,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,wBAAwB,GAAG,qBAAqB,GAAG;IAC7D,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,8BAA8B,sEAMxC,wBAAwB,KAAG,wBAU7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,WACvB,wBAAwB,2FAS7B;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,KACA,OAAO,CAAC,MAAM,CA0BhB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,wBAAwB,WAC3B,wBAAwB,iGAS7B;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,GAAG,CAAC;IACd,WAAW,EAAE,oBAAoB,GAAG,WAAW,CAAC;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,WAAW,CAAC;CAC9B,KACA,OAAO,CAAC,oBAAoB,GAAG,WAAW,CAqE5C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,uBAAuB,WAC1B,wBAAwB,8EAQ7B;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,WAAW,CAAC;CAC9B,KACA,OAAO,CAAC,MAAM,CAuBhB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,WAAkB,wBAAwB,gBAAgB;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,kBAE1G,CAAC"}
1
+ {"version":3,"file":"delegatedClient.d.ts","sourceRoot":"","sources":["../../packages/src/delegatedClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAQvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAa,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAMlE,MAAM,MAAM,wBAAwB,GAAG;IACrC,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,wBAAwB,GAAG,qBAAqB,GAAG;IAC7D,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,8BAA8B,sEAMxC,wBAAwB,KAAG,wBAU7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,WACvB,wBAAwB,oGAU7B;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B,KACA,OAAO,CAAC,MAAM,CA4BhB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,wBAAwB,WAC3B,wBAAwB,mHAW7B;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,GAAG,CAAC;IACd,WAAW,EAAE,oBAAoB,GAAG,WAAW,CAAC;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B,KACA,OAAO,CAAC,oBAAoB,GAAG,WAAW,CA0F5C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,uBAAuB,WAC1B,wBAAwB,uFAS7B;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B,KACA,OAAO,CAAC,MAAM,CAwBhB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,WAAkB,wBAAwB,gBAAgB;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,kBAE1G,CAAC"}