@secondlayer/stacks 0.1.0 → 0.2.1

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 (93) hide show
  1. package/dist/shared/stacks-2ar4prfz.cjs +328 -0
  2. package/dist/shared/stacks-2ar4prfz.cjs.map +11 -0
  3. package/dist/shared/stacks-61rvzkz1.cjs.map +1 -1
  4. package/dist/shared/{stacks-d1fmkv3p.js → stacks-9avax1yf.js} +2 -2
  5. package/dist/shared/{stacks-ph4a6322.js → stacks-9mdk86wp.js} +16 -18
  6. package/dist/shared/{stacks-ph4a6322.js.map → stacks-9mdk86wp.js.map} +2 -2
  7. package/dist/shared/stacks-an5k8n4t.cjs.map +2 -2
  8. package/dist/shared/stacks-dr5en54r.cjs +119 -0
  9. package/dist/shared/stacks-dr5en54r.cjs.map +10 -0
  10. package/dist/shared/{stacks-b008c3w8.cjs → stacks-fedzr2ka.js} +134 -2
  11. package/dist/shared/stacks-fedzr2ka.js.map +13 -0
  12. package/dist/shared/{stacks-j2cy7qtt.js → stacks-ky14tdf6.cjs} +109 -24
  13. package/dist/shared/stacks-ky14tdf6.cjs.map +13 -0
  14. package/dist/shared/stacks-mrk6tkkh.cjs +41 -0
  15. package/dist/shared/{stacks-2gdt3aqj.cjs.map → stacks-mrk6tkkh.cjs.map} +1 -1
  16. package/dist/shared/{stacks-1ddg6mbv.js → stacks-qcx67vqa.js} +3 -3
  17. package/dist/shared/stacks-qcx67vqa.js.map +10 -0
  18. package/dist/shared/stacks-qyt8m5v0.js +282 -0
  19. package/dist/shared/stacks-qyt8m5v0.js.map +11 -0
  20. package/dist/shared/{stacks-hfem9dck.cjs → stacks-vbke9mqw.cjs} +328 -87
  21. package/dist/shared/stacks-vbke9mqw.cjs.map +15 -0
  22. package/dist/shared/{stacks-md6e5ta0.js → stacks-vd9jcp0b.js} +13 -17
  23. package/dist/shared/{stacks-md6e5ta0.js.map → stacks-vd9jcp0b.js.map} +3 -3
  24. package/dist/shared/stacks-vdfag81a.cjs.map +2 -2
  25. package/dist/shared/{stacks-xtz0n62y.js → stacks-vyb9rx8q.js} +341 -106
  26. package/dist/shared/stacks-vyb9rx8q.js.map +15 -0
  27. package/dist/shared/{stacks-m2dc5xwg.js → stacks-wrb1es85.js} +7 -11
  28. package/dist/shared/{stacks-m2dc5xwg.js.map → stacks-wrb1es85.js.map} +3 -3
  29. package/dist/shared/stacks-yfveb68e.js +121 -0
  30. package/dist/shared/stacks-yfveb68e.js.map +10 -0
  31. package/dist/src/accounts/index.js +1 -2
  32. package/dist/src/accounts/index.js.map +2 -2
  33. package/dist/src/actions/index.d.cts +3 -5
  34. package/dist/src/actions/index.d.ts +3 -5
  35. package/dist/src/actions/index.js +8 -11
  36. package/dist/src/actions/index.js.map +1 -1
  37. package/dist/src/bns/index.cjs +13 -13
  38. package/dist/src/bns/index.cjs.map +3 -3
  39. package/dist/src/bns/index.js +22 -25
  40. package/dist/src/bns/index.js.map +3 -3
  41. package/dist/src/chains/index.js +1 -2
  42. package/dist/src/chains/index.js.map +1 -1
  43. package/dist/src/clarity/index.cjs +1 -326
  44. package/dist/src/clarity/index.cjs.map +3 -5
  45. package/dist/src/clarity/index.js +18 -272
  46. package/dist/src/clarity/index.js.map +3 -5
  47. package/dist/src/connect/index.cjs +19 -9
  48. package/dist/src/connect/index.cjs.map +2 -2
  49. package/dist/src/connect/walletconnect/index.cjs +19 -9
  50. package/dist/src/connect/walletconnect/index.cjs.map +4 -4
  51. package/dist/src/connect/walletconnect/index.js +1 -1
  52. package/dist/src/connect/walletconnect/index.js.map +4 -4
  53. package/dist/src/index.cjs +1 -2
  54. package/dist/src/index.cjs.map +5 -5
  55. package/dist/src/index.js +9 -16
  56. package/dist/src/index.js.map +5 -5
  57. package/dist/src/postconditions/index.cjs +1 -117
  58. package/dist/src/postconditions/index.cjs.map +3 -4
  59. package/dist/src/postconditions/index.js +5 -119
  60. package/dist/src/postconditions/index.js.map +3 -4
  61. package/dist/src/pox/index.cjs +9 -9
  62. package/dist/src/pox/index.cjs.map +4 -4
  63. package/dist/src/pox/index.js +17 -20
  64. package/dist/src/pox/index.js.map +4 -4
  65. package/dist/src/stackingdao/index.cjs +13 -13
  66. package/dist/src/stackingdao/index.cjs.map +3 -3
  67. package/dist/src/stackingdao/index.js +21 -24
  68. package/dist/src/stackingdao/index.js.map +3 -3
  69. package/dist/src/subscriptions/index.js +1 -2
  70. package/dist/src/subscriptions/index.js.map +1 -1
  71. package/dist/src/transactions/index.js +18 -22
  72. package/dist/src/transactions/index.js.map +1 -1
  73. package/dist/src/utils/index.cjs.map +2 -2
  74. package/dist/src/utils/index.js +4 -5
  75. package/dist/src/utils/index.js.map +3 -3
  76. package/package.json +1 -1
  77. package/dist/shared/stacks-1aqm7c2h.cjs +0 -110
  78. package/dist/shared/stacks-1aqm7c2h.cjs.map +0 -11
  79. package/dist/shared/stacks-1ddg6mbv.js.map +0 -10
  80. package/dist/shared/stacks-2gdt3aqj.cjs +0 -44
  81. package/dist/shared/stacks-8yykgdww.js +0 -125
  82. package/dist/shared/stacks-8yykgdww.js.map +0 -11
  83. package/dist/shared/stacks-b008c3w8.cjs.map +0 -11
  84. package/dist/shared/stacks-hfem9dck.cjs.map +0 -13
  85. package/dist/shared/stacks-j2cy7qtt.js.map +0 -11
  86. package/dist/shared/stacks-njvyj3ab.js +0 -23
  87. package/dist/shared/stacks-njvyj3ab.js.map +0 -9
  88. package/dist/shared/stacks-pz73cn97.js +0 -285
  89. package/dist/shared/stacks-pz73cn97.js.map +0 -11
  90. package/dist/shared/stacks-xtz0n62y.js.map +0 -13
  91. package/dist/shared/stacks-zyv9qqme.cjs +0 -249
  92. package/dist/shared/stacks-zyv9qqme.cjs.map +0 -11
  93. /package/dist/shared/{stacks-d1fmkv3p.js.map → stacks-9avax1yf.js.map} +0 -0
package/dist/src/index.js CHANGED
@@ -22,7 +22,7 @@ import {
22
22
  simulateTransaction,
23
23
  sponsorTransaction,
24
24
  transferStx
25
- } from "../shared/stacks-md6e5ta0.js";
25
+ } from "../shared/stacks-vd9jcp0b.js";
26
26
  import {
27
27
  callContract,
28
28
  estimateFee,
@@ -30,7 +30,7 @@ import {
30
30
  getNonce,
31
31
  readContract,
32
32
  sendTransaction
33
- } from "../shared/stacks-m2dc5xwg.js";
33
+ } from "../shared/stacks-wrb1es85.js";
34
34
  import {
35
35
  WebSocketError,
36
36
  watchAddress,
@@ -41,14 +41,15 @@ import {
41
41
  watchTransaction
42
42
  } from "../shared/stacks-y3dh7hv1.js";
43
43
  import"../shared/stacks-709tra19.js";
44
- import"../shared/stacks-ph4a6322.js";
44
+ import"../shared/stacks-9mdk86wp.js";
45
45
  import {
46
46
  buildContractCall,
47
47
  buildContractDeploy,
48
- buildTokenTransfer
49
- } from "../shared/stacks-pz73cn97.js";
50
- import"../shared/stacks-j2cy7qtt.js";
51
- import"../shared/stacks-8yykgdww.js";
48
+ buildTokenTransfer,
49
+ finalizeMultiSig,
50
+ makeMultiSigAddress
51
+ } from "../shared/stacks-vyb9rx8q.js";
52
+ import"../shared/stacks-fedzr2ka.js";
52
53
  import {
53
54
  formatStx,
54
55
  parseStx
@@ -67,13 +68,6 @@ import {
67
68
  parseContractId
68
69
  } from "../shared/stacks-gjvbq6w7.js";
69
70
  import"../shared/stacks-nqytwfcc.js";
70
- import {
71
- __require,
72
- __toESM
73
- } from "../shared/stacks-njvyj3ab.js";
74
- import {
75
- finalizeMultiSig
76
- } from "../shared/stacks-xtz0n62y.js";
77
71
 
78
72
  // src/clients/createClient.ts
79
73
  var BASE_KEYS = new Set(["chain", "account", "transport", "request", "extend"]);
@@ -156,7 +150,6 @@ function multisigActions(client) {
156
150
  async function resolveNonce(nonce) {
157
151
  if (nonce !== undefined)
158
152
  return nonce;
159
- const { makeMultiSigAddress } = await import("../shared/stacks-xtz0n62y.js");
160
153
  const address = makeMultiSigAddress(signers, requiredSignatures, client.chain);
161
154
  return getNonce(client, { address });
162
155
  }
@@ -620,5 +613,5 @@ export {
620
613
  AddressVersion
621
614
  };
622
615
 
623
- //# debugId=2C73D96B89AABA6B64756E2164756E21
616
+ //# debugId=96BF38EA5F3075A964756E2164756E21
624
617
  //# sourceMappingURL=index.js.map
@@ -7,15 +7,15 @@
7
7
  "import type { ClientConfig, Client } from \"./types.ts\";\nimport { createClient } from \"./createClient.ts\";\nimport { publicActions, type PublicActions } from \"./decorators/public.ts\";\n\n/** Configuration for {@link createPublicClient} (no account needed). */\nexport type PublicClientConfig = Omit<ClientConfig, \"account\">;\n\n/**\n * Create a read-only client pre-extended with {@link PublicActions}.\n * Use for queries, contract reads, and event subscriptions.\n */\nexport function createPublicClient(\n config: PublicClientConfig\n): Client<PublicActions> & PublicActions {\n return createClient(config).extend(publicActions);\n}\n",
8
8
  "import type { Client } from \"../types.ts\";\nimport { sendTransaction, type SendTransactionParams, type SendTransactionResult } from \"../../actions/wallet/sendTransaction.ts\";\nimport { signTransactionAction, type SignTransactionParams } from \"../../actions/wallet/signTransaction.ts\";\nimport { transferStx, type TransferStxParams } from \"../../actions/wallet/transferStx.ts\";\nimport { callContract, type CallContractParams } from \"../../actions/wallet/callContract.ts\";\nimport { deployContract, type DeployContractParams } from \"../../actions/wallet/deployContract.ts\";\nimport { signMessage, type SignMessageParams } from \"../../actions/wallet/signMessage.ts\";\nimport { sponsorTransaction, type SponsorTransactionParams } from \"../../actions/wallet/sponsorTransaction.ts\";\nimport type { StacksTransaction } from \"../../transactions/types.ts\";\n\n/** Signing actions: send transactions, transfer STX, call/deploy contracts, sign messages. */\nexport type WalletActions = {\n sendTransaction: (params: SendTransactionParams) => Promise<SendTransactionResult>;\n signTransaction: (params: SignTransactionParams) => Promise<StacksTransaction>;\n transferStx: (params: TransferStxParams) => Promise<string>;\n callContract: (params: CallContractParams) => Promise<string>;\n deployContract: (params: DeployContractParams) => Promise<string>;\n signMessage: (params: SignMessageParams) => Promise<string>;\n sponsorTransaction: (params: SponsorTransactionParams) => Promise<StacksTransaction>;\n};\n\n/** Decorator that binds {@link WalletActions} to a client instance. */\nexport function walletActions(client: Client): WalletActions {\n return {\n sendTransaction: (params) => sendTransaction(client, params),\n signTransaction: (params) => signTransactionAction(client, params),\n transferStx: (params) => transferStx(client, params),\n callContract: (params) => callContract(client, params),\n deployContract: (params) => deployContract(client, params),\n signMessage: (params) => signMessage(client, params),\n sponsorTransaction: (params) => sponsorTransaction(client, params),\n };\n}\n",
9
9
  "import type { ClientConfig, Client, Account } from \"./types.ts\";\nimport { createClient } from \"./createClient.ts\";\nimport { walletActions, type WalletActions } from \"./decorators/wallet.ts\";\n\n/** Configuration for {@link createWalletClient} — requires an account for signing. */\nexport type WalletClientConfig = ClientConfig & {\n account: Account;\n};\n\n/**\n * Create a client pre-extended with {@link WalletActions} for signing and broadcasting transactions.\n */\nexport function createWalletClient(\n config: WalletClientConfig\n): Client<WalletActions> & WalletActions & { account: Account } {\n return createClient(config).extend(walletActions) as any;\n}\n",
10
- "import type { Client } from \"../types.ts\";\nimport type { PostCondition } from \"../../postconditions/types.ts\";\nimport type { ClarityValue } from \"../../clarity/types.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport type { StacksTransaction, ClarityVersion, MultiSigHashMode } from \"../../transactions/types.ts\";\nimport { buildTokenTransfer, buildContractCall, buildContractDeploy } from \"../../transactions/build.ts\";\nimport { finalizeMultiSig, isNonSequential } from \"../../transactions/multisig.ts\";\nimport { sendTransaction, type SendTransactionResult } from \"../../actions/wallet/sendTransaction.ts\";\nimport { getNonce } from \"../../actions/public/getNonce.ts\";\nimport { estimateFee } from \"../../actions/public/estimateFee.ts\";\nimport { parseContractId } from \"../../utils/address.ts\";\n\nexport type MultiSigTransferStxParams = {\n to: string;\n amount: IntegerType;\n memo?: string;\n fee?: IntegerType;\n nonce?: IntegerType;\n postConditionMode?: \"allow\" | \"deny\";\n postConditions?: PostCondition[];\n};\n\nexport type MultiSigCallContractParams = {\n contract: string;\n functionName: string;\n functionArgs?: ClarityValue[];\n fee?: IntegerType;\n nonce?: IntegerType;\n postConditionMode?: \"allow\" | \"deny\";\n postConditions?: PostCondition[];\n};\n\nexport type MultiSigDeployContractParams = {\n contractName: string;\n codeBody: string;\n clarityVersion?: ClarityVersion;\n fee?: IntegerType;\n nonce?: IntegerType;\n postConditionMode?: \"allow\" | \"deny\";\n postConditions?: PostCondition[];\n};\n\nexport type MultiSigSendTransactionParams = {\n transaction: StacksTransaction;\n attachment?: Uint8Array | string;\n};\n\n/** Multi-sig transaction actions: build unsigned transactions and broadcast with auto-finalization. */\nexport type MultiSigActions = {\n transferStx: (params: MultiSigTransferStxParams) => Promise<StacksTransaction>;\n callContract: (params: MultiSigCallContractParams) => Promise<StacksTransaction>;\n deployContract: (params: MultiSigDeployContractParams) => Promise<StacksTransaction>;\n sendTransaction: (params: MultiSigSendTransactionParams) => Promise<SendTransactionResult>;\n};\n\n/** Decorator that binds {@link MultiSigActions} to a multi-sig client. */\nexport function multisigActions(client: Client): MultiSigActions {\n const msConfig = (client as any)._multisigConfig as {\n signers: string[];\n requiredSignatures: number;\n hashMode?: MultiSigHashMode;\n };\n\n if (!msConfig) throw new Error(\"multisigActions requires a multi-sig client\");\n\n const { signers, requiredSignatures, hashMode } = msConfig;\n\n /** Resolve nonce from the multi-sig address */\n async function resolveNonce(nonce?: IntegerType): Promise<IntegerType> {\n if (nonce !== undefined) return nonce;\n const { makeMultiSigAddress } = await import(\"../../transactions/multisig.ts\");\n const address = makeMultiSigAddress(signers, requiredSignatures, client.chain);\n return getNonce(client, { address });\n }\n\n return {\n async transferStx(params) {\n const nonce = await resolveNonce(params.nonce);\n\n const unsigned = buildTokenTransfer({\n recipient: params.to,\n amount: params.amount,\n memo: params.memo,\n fee: params.fee ?? 0n,\n nonce,\n publicKeys: signers,\n signaturesRequired: requiredSignatures,\n hashMode,\n chain: client.chain,\n postConditionMode: params.postConditionMode,\n postConditions: params.postConditions,\n });\n\n if (params.fee === undefined) {\n const estimates = await estimateFee(client, { transaction: unsigned });\n const mid = estimates[1] ?? estimates[0];\n if (mid) {\n (unsigned.auth.spendingCondition as any).fee = BigInt(mid.fee);\n }\n }\n\n return unsigned;\n },\n\n async callContract(params) {\n const [contractAddress, contractName] = parseContractId(params.contract);\n const nonce = await resolveNonce(params.nonce);\n\n const unsigned = buildContractCall({\n contractAddress,\n contractName,\n functionName: params.functionName,\n functionArgs: params.functionArgs ?? [],\n fee: params.fee ?? 0n,\n nonce,\n publicKeys: signers,\n signaturesRequired: requiredSignatures,\n hashMode,\n chain: client.chain,\n postConditionMode: params.postConditionMode,\n postConditions: params.postConditions,\n });\n\n if (params.fee === undefined) {\n const estimates = await estimateFee(client, { transaction: unsigned });\n const mid = estimates[1] ?? estimates[0];\n if (mid) {\n (unsigned.auth.spendingCondition as any).fee = BigInt(mid.fee);\n }\n }\n\n return unsigned;\n },\n\n async deployContract(params) {\n const nonce = await resolveNonce(params.nonce);\n\n const unsigned = buildContractDeploy({\n contractName: params.contractName,\n codeBody: params.codeBody,\n clarityVersion: params.clarityVersion,\n fee: params.fee ?? 0n,\n nonce,\n publicKeys: signers,\n signaturesRequired: requiredSignatures,\n hashMode,\n chain: client.chain,\n postConditionMode: params.postConditionMode,\n postConditions: params.postConditions,\n });\n\n if (params.fee === undefined) {\n const estimates = await estimateFee(client, { transaction: unsigned });\n const mid = estimates[1] ?? estimates[0];\n if (mid) {\n (unsigned.auth.spendingCondition as any).fee = BigInt(mid.fee);\n }\n }\n\n return unsigned;\n },\n\n async sendTransaction(params) {\n // Auto-finalize before broadcast\n const finalized = finalizeMultiSig(params.transaction, signers);\n return sendTransaction(client, {\n transaction: finalized,\n attachment: params.attachment,\n });\n },\n };\n}\n",
10
+ "import type { Client } from \"../types.ts\";\nimport type { PostCondition } from \"../../postconditions/types.ts\";\nimport type { ClarityValue } from \"../../clarity/types.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport type { StacksTransaction, ClarityVersion, MultiSigHashMode } from \"../../transactions/types.ts\";\nimport { buildTokenTransfer, buildContractCall, buildContractDeploy } from \"../../transactions/build.ts\";\nimport { finalizeMultiSig, makeMultiSigAddress } from \"../../transactions/multisig.ts\";\nimport { sendTransaction, type SendTransactionResult } from \"../../actions/wallet/sendTransaction.ts\";\nimport { getNonce } from \"../../actions/public/getNonce.ts\";\nimport { estimateFee } from \"../../actions/public/estimateFee.ts\";\nimport { parseContractId } from \"../../utils/address.ts\";\n\nexport type MultiSigTransferStxParams = {\n to: string;\n amount: IntegerType;\n memo?: string;\n fee?: IntegerType;\n nonce?: IntegerType;\n postConditionMode?: \"allow\" | \"deny\";\n postConditions?: PostCondition[];\n};\n\nexport type MultiSigCallContractParams = {\n contract: string;\n functionName: string;\n functionArgs?: ClarityValue[];\n fee?: IntegerType;\n nonce?: IntegerType;\n postConditionMode?: \"allow\" | \"deny\";\n postConditions?: PostCondition[];\n};\n\nexport type MultiSigDeployContractParams = {\n contractName: string;\n codeBody: string;\n clarityVersion?: ClarityVersion;\n fee?: IntegerType;\n nonce?: IntegerType;\n postConditionMode?: \"allow\" | \"deny\";\n postConditions?: PostCondition[];\n};\n\nexport type MultiSigSendTransactionParams = {\n transaction: StacksTransaction;\n attachment?: Uint8Array | string;\n};\n\n/** Multi-sig transaction actions: build unsigned transactions and broadcast with auto-finalization. */\nexport type MultiSigActions = {\n transferStx: (params: MultiSigTransferStxParams) => Promise<StacksTransaction>;\n callContract: (params: MultiSigCallContractParams) => Promise<StacksTransaction>;\n deployContract: (params: MultiSigDeployContractParams) => Promise<StacksTransaction>;\n sendTransaction: (params: MultiSigSendTransactionParams) => Promise<SendTransactionResult>;\n};\n\n/** Decorator that binds {@link MultiSigActions} to a multi-sig client. */\nexport function multisigActions(client: Client): MultiSigActions {\n const msConfig = (client as any)._multisigConfig as {\n signers: string[];\n requiredSignatures: number;\n hashMode?: MultiSigHashMode;\n };\n\n if (!msConfig) throw new Error(\"multisigActions requires a multi-sig client\");\n\n const { signers, requiredSignatures, hashMode } = msConfig;\n\n /** Resolve nonce from the multi-sig address */\n async function resolveNonce(nonce?: IntegerType): Promise<IntegerType> {\n if (nonce !== undefined) return nonce;\n const address = makeMultiSigAddress(signers, requiredSignatures, client.chain);\n return getNonce(client, { address });\n }\n\n return {\n async transferStx(params) {\n const nonce = await resolveNonce(params.nonce);\n\n const unsigned = buildTokenTransfer({\n recipient: params.to,\n amount: params.amount,\n memo: params.memo,\n fee: params.fee ?? 0n,\n nonce,\n publicKeys: signers,\n signaturesRequired: requiredSignatures,\n hashMode,\n chain: client.chain,\n postConditionMode: params.postConditionMode,\n postConditions: params.postConditions,\n });\n\n if (params.fee === undefined) {\n const estimates = await estimateFee(client, { transaction: unsigned });\n const mid = estimates[1] ?? estimates[0];\n if (mid) {\n (unsigned.auth.spendingCondition as any).fee = BigInt(mid.fee);\n }\n }\n\n return unsigned;\n },\n\n async callContract(params) {\n const [contractAddress, contractName] = parseContractId(params.contract);\n const nonce = await resolveNonce(params.nonce);\n\n const unsigned = buildContractCall({\n contractAddress,\n contractName,\n functionName: params.functionName,\n functionArgs: params.functionArgs ?? [],\n fee: params.fee ?? 0n,\n nonce,\n publicKeys: signers,\n signaturesRequired: requiredSignatures,\n hashMode,\n chain: client.chain,\n postConditionMode: params.postConditionMode,\n postConditions: params.postConditions,\n });\n\n if (params.fee === undefined) {\n const estimates = await estimateFee(client, { transaction: unsigned });\n const mid = estimates[1] ?? estimates[0];\n if (mid) {\n (unsigned.auth.spendingCondition as any).fee = BigInt(mid.fee);\n }\n }\n\n return unsigned;\n },\n\n async deployContract(params) {\n const nonce = await resolveNonce(params.nonce);\n\n const unsigned = buildContractDeploy({\n contractName: params.contractName,\n codeBody: params.codeBody,\n clarityVersion: params.clarityVersion,\n fee: params.fee ?? 0n,\n nonce,\n publicKeys: signers,\n signaturesRequired: requiredSignatures,\n hashMode,\n chain: client.chain,\n postConditionMode: params.postConditionMode,\n postConditions: params.postConditions,\n });\n\n if (params.fee === undefined) {\n const estimates = await estimateFee(client, { transaction: unsigned });\n const mid = estimates[1] ?? estimates[0];\n if (mid) {\n (unsigned.auth.spendingCondition as any).fee = BigInt(mid.fee);\n }\n }\n\n return unsigned;\n },\n\n async sendTransaction(params) {\n // Auto-finalize before broadcast\n const finalized = finalizeMultiSig(params.transaction, signers);\n return sendTransaction(client, {\n transaction: finalized,\n attachment: params.attachment,\n });\n },\n };\n}\n",
11
11
  "import type { ClientConfig, Client } from \"./types.ts\";\nimport type { MultiSigHashMode } from \"../transactions/types.ts\";\nimport { createClient } from \"./createClient.ts\";\nimport { multisigActions, type MultiSigActions } from \"./decorators/multisig.ts\";\n\n/** Configuration for {@link createMultiSigClient} — requires signer public keys and threshold. */\nexport type MultiSigClientConfig = Omit<ClientConfig, \"account\"> & {\n signers: string[];\n requiredSignatures: number;\n hashMode?: MultiSigHashMode;\n};\n\n/** A client pre-extended with {@link MultiSigActions} for m-of-n signing workflows. */\nexport type MultiSigClient = Client<MultiSigActions> & MultiSigActions;\n\n/**\n * Create a client for multi-sig transaction workflows.\n * Builds unsigned transactions that can be signed by each party then broadcast.\n */\nexport function createMultiSigClient(config: MultiSigClientConfig): MultiSigClient {\n const client = createClient(config);\n\n // Attach multi-sig config for the decorator to read\n (client as any)._multisigConfig = {\n signers: config.signers,\n requiredSignatures: config.requiredSignatures,\n hashMode: config.hashMode,\n };\n\n return client.extend(multisigActions) as any;\n}\n",
12
12
  "import type { TransportConfig, RequestFn, Transport, RequestOptions } from \"./types.ts\";\n\nexport function createTransport(\n type: string,\n config: TransportConfig & { request: RequestFn }\n): Transport {\n return {\n type,\n request: config.request,\n config,\n };\n}\n\nexport async function fetchWithRetry(\n url: string,\n options: RequestInit,\n retryCount: number,\n retryDelay: number,\n timeout: number\n): Promise<Response> {\n let lastError: Error | undefined;\n\n for (let attempt = 0; attempt <= retryCount; attempt++) {\n try {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), timeout);\n\n const response = await fetch(url, {\n ...options,\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (response.ok || response.status < 500) {\n return response;\n }\n\n lastError = new Error(`HTTP ${response.status}: ${response.statusText}`);\n } catch (error) {\n lastError =\n error instanceof Error ? error : new Error(String(error));\n }\n\n if (attempt < retryCount) {\n await new Promise((r) => setTimeout(r, retryDelay * (attempt + 1)));\n }\n }\n\n throw lastError ?? new Error(\"Request failed\");\n}\n\nexport function buildRequestFn(\n baseUrl: string,\n config: TransportConfig\n): RequestFn {\n const {\n timeout = 30_000,\n retryCount = 3,\n retryDelay = 150,\n fetchOptions = {},\n apiKey,\n } = config;\n\n return async (path: string, options?: RequestOptions) => {\n const url = `${baseUrl.replace(/\\/$/, \"\")}${path}`;\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n ...(fetchOptions.headers as Record<string, string>),\n ...options?.headers,\n };\n\n if (apiKey) {\n headers[\"x-api-key\"] = apiKey;\n }\n\n const init: RequestInit = {\n ...fetchOptions,\n method: options?.method ?? \"GET\",\n headers,\n };\n\n if (options?.body !== undefined) {\n init.body = JSON.stringify(options.body);\n }\n\n const response = await fetchWithRetry(\n url,\n init,\n retryCount,\n retryDelay,\n timeout\n );\n\n const contentType = response.headers.get(\"content-type\") ?? \"\";\n if (contentType.includes(\"application/json\")) {\n return response.json();\n }\n return response.text();\n };\n}\n",
13
- "import type { StacksChain } from \"../chains/types.ts\";\nimport type { TransportConfig, TransportFactory } from \"./types.ts\";\nimport { buildRequestFn, createTransport } from \"./createTransport.ts\";\n\n/**\n * Create an HTTP transport for Stacks node RPC calls.\n * Falls back to the chain's default RPC URL, then `localhost:3999`.\n */\nexport function http(url?: string, config?: TransportConfig): TransportFactory {\n return (params) => {\n const resolvedUrl =\n url ?? params?.chain?.rpcUrls.default.http[0] ?? \"http://localhost:3999\";\n\n const mergedConfig: TransportConfig = {\n ...config,\n url: resolvedUrl,\n };\n\n return createTransport(\"http\", {\n ...mergedConfig,\n request: buildRequestFn(resolvedUrl, mergedConfig),\n });\n };\n}\n",
13
+ "import type { TransportConfig, TransportFactory } from \"./types.ts\";\nimport { buildRequestFn, createTransport } from \"./createTransport.ts\";\n\n/**\n * Create an HTTP transport for Stacks node RPC calls.\n * Falls back to the chain's default RPC URL, then `localhost:3999`.\n */\nexport function http(url?: string, config?: TransportConfig): TransportFactory {\n return (params) => {\n const resolvedUrl =\n url ?? params?.chain?.rpcUrls.default.http[0] ?? \"http://localhost:3999\";\n\n const mergedConfig: TransportConfig = {\n ...config,\n url: resolvedUrl,\n };\n\n return createTransport(\"http\", {\n ...mergedConfig,\n request: buildRequestFn(resolvedUrl, mergedConfig),\n });\n };\n}\n",
14
14
  "import type { RequestFn, TransportFactory } from \"./types.ts\";\nimport { createTransport } from \"./createTransport.ts\";\n\n/** Create a transport backed by a user-provided request function. */\nexport function custom(params: { request: RequestFn }): TransportFactory {\n return () => createTransport(\"custom\", { request: params.request });\n}\n",
15
15
  "import type { TransportFactory } from \"./types.ts\";\nimport { createTransport } from \"./createTransport.ts\";\n\n/** Create a transport that tries each transport in order until one succeeds. */\nexport function fallback(transports: TransportFactory[]): TransportFactory {\n return (params) => {\n const resolved = transports.map((t) => t(params));\n\n return createTransport(\"fallback\", {\n request: async (path, options) => {\n let lastError: Error | undefined;\n for (const transport of resolved) {\n try {\n return await transport.request(path, options);\n } catch (error) {\n lastError =\n error instanceof Error ? error : new Error(String(error));\n }\n }\n throw lastError ?? new Error(\"All transports failed\");\n },\n });\n };\n}\n",
16
- "import type { StacksChain } from \"../chains/types.ts\";\nimport type { Transport, TransportConfig, TransportFactory } from \"./types.ts\";\nimport type { Subscription, WsSubscribeParams } from \"../subscriptions/types.ts\";\nimport { buildRequestFn } from \"./createTransport.ts\";\nimport { WebSocketError } from \"../errors/websocket.ts\";\n\n/** Configuration for the WebSocket transport, extending base {@link TransportConfig}. */\nexport type WebSocketTransportConfig = TransportConfig & {\n /** WebSocket URL (resolved from chain if omitted) */\n url?: string;\n /** Enable auto-reconnect (default: true) */\n reconnect?: boolean;\n /** Max reconnect attempts (default: 10) */\n reconnectMaxAttempts?: number;\n /** Base delay in ms for exponential backoff (default: 1000) */\n reconnectBaseDelay?: number;\n};\n\n/** Transport with WebSocket subscription capabilities and auto-reconnect. */\nexport type WebSocketTransport = Transport & {\n type: \"webSocket\";\n subscribe: (\n params: WsSubscribeParams,\n callback: (data: any) => void\n ) => Promise<Subscription>;\n destroy: () => void;\n};\n\ntype JsonRpcRequest = {\n jsonrpc: \"2.0\";\n id: number;\n method: string;\n params: Record<string, unknown>;\n};\n\ntype JsonRpcResponse = {\n jsonrpc: \"2.0\";\n id: number;\n result?: unknown;\n error?: { code: number; message: string };\n};\n\ntype JsonRpcNotification = {\n jsonrpc: \"2.0\";\n method: string;\n params: unknown;\n};\n\ntype SubEntry = {\n params: WsSubscribeParams;\n callbacks: Set<(data: any) => void>;\n};\n\nfunction subKey(params: WsSubscribeParams): string {\n const parts: string[] = [params.event];\n if (params.tx_id) parts.push(`tx_id:${params.tx_id}`);\n if (params.address) parts.push(`address:${params.address}`);\n if (params.asset_identifier)\n parts.push(`asset:${params.asset_identifier}`);\n if (params.value) parts.push(`value:${params.value}`);\n return parts.join(\"|\");\n}\n\nexport class WebSocketChannel {\n private ws: WebSocket | null = null;\n private url: string;\n private nextId = 1;\n private pending = new Map<\n number,\n { resolve: (v: unknown) => void; reject: (e: Error) => void }\n >();\n private subs = new Map<string, SubEntry>();\n private destroyed = false;\n private reconnecting = false;\n private reconnectAttempt = 0;\n private reconnectTimer: ReturnType<typeof setTimeout> | null = null;\n\n private reconnect: boolean;\n private reconnectMaxAttempts: number;\n private reconnectBaseDelay: number;\n\n constructor(url: string, config?: WebSocketTransportConfig) {\n this.url = url;\n this.reconnect = config?.reconnect ?? true;\n this.reconnectMaxAttempts = config?.reconnectMaxAttempts ?? 10;\n this.reconnectBaseDelay = config?.reconnectBaseDelay ?? 1000;\n }\n\n private connect(): Promise<void> {\n if (this.ws?.readyState === WebSocket.OPEN) return Promise.resolve();\n if (this.ws?.readyState === WebSocket.CONNECTING) {\n return new Promise((resolve, reject) => {\n const onOpen = () => {\n this.ws?.removeEventListener(\"error\", onError);\n resolve();\n };\n const onError = (e: Event) => {\n this.ws?.removeEventListener(\"open\", onOpen);\n reject(\n new WebSocketError(\"WebSocket connection failed\", {\n details: String(e),\n })\n );\n };\n this.ws!.addEventListener(\"open\", onOpen, { once: true });\n this.ws!.addEventListener(\"error\", onError, { once: true });\n });\n }\n\n return new Promise((resolve, reject) => {\n this.ws = new WebSocket(this.url);\n\n this.ws.addEventListener(\n \"open\",\n () => {\n this.reconnectAttempt = 0;\n this.reconnecting = false;\n resolve();\n },\n { once: true }\n );\n\n this.ws.addEventListener(\n \"error\",\n (e) => {\n reject(\n new WebSocketError(\"WebSocket connection failed\", {\n details: String(e),\n })\n );\n },\n { once: true }\n );\n\n this.ws.addEventListener(\"message\", (event) => {\n this.handleMessage(event.data);\n });\n\n this.ws.addEventListener(\"close\", () => {\n if (!this.destroyed) this.handleDisconnect();\n });\n });\n }\n\n private handleMessage(raw: string | ArrayBuffer | Blob) {\n const data =\n typeof raw === \"string\" ? raw : new TextDecoder().decode(raw as ArrayBuffer);\n\n let msg: JsonRpcResponse | JsonRpcNotification;\n try {\n msg = JSON.parse(data);\n } catch {\n return;\n }\n\n // RPC response\n if (\"id\" in msg && msg.id != null) {\n const rpc = msg as JsonRpcResponse;\n const p = this.pending.get(rpc.id);\n if (!p) return;\n this.pending.delete(rpc.id);\n if (rpc.error) {\n p.reject(\n new WebSocketError(rpc.error.message, {\n details: `JSON-RPC error ${rpc.error.code}`,\n })\n );\n } else {\n p.resolve(rpc.result);\n }\n return;\n }\n\n // Notification\n const notif = msg as JsonRpcNotification;\n if (!notif.method) return;\n\n for (const [, entry] of this.subs) {\n if (entry.params.event === notif.method) {\n for (const cb of entry.callbacks) {\n try {\n cb(notif.params);\n } catch {\n // subscriber error — don't crash channel\n }\n }\n }\n }\n }\n\n private handleDisconnect() {\n this.ws = null;\n\n // reject pending RPCs\n for (const [, p] of this.pending) {\n p.reject(new WebSocketError(\"WebSocket disconnected\"));\n }\n this.pending.clear();\n\n if (\n this.reconnect &&\n this.subs.size > 0 &&\n this.reconnectAttempt < this.reconnectMaxAttempts\n ) {\n this.scheduleReconnect();\n }\n }\n\n private scheduleReconnect() {\n if (this.destroyed || this.reconnecting) return;\n this.reconnecting = true;\n const delay = this.reconnectBaseDelay * 2 ** this.reconnectAttempt;\n this.reconnectAttempt++;\n\n this.reconnectTimer = setTimeout(async () => {\n this.reconnecting = false;\n try {\n await this.connect();\n await this.resubscribeAll();\n } catch {\n if (!this.destroyed && this.subs.size > 0) {\n this.handleDisconnect();\n }\n }\n }, delay);\n }\n\n private async resubscribeAll() {\n for (const [, entry] of this.subs) {\n await this.sendRpc(\"subscribe\", entry.params);\n }\n }\n\n private sendRpc(method: string, params: Record<string, unknown>): Promise<unknown> {\n return new Promise((resolve, reject) => {\n if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {\n return reject(new WebSocketError(\"WebSocket not connected\"));\n }\n\n const id = this.nextId++;\n const msg: JsonRpcRequest = {\n jsonrpc: \"2.0\",\n id,\n method,\n params,\n };\n\n this.pending.set(id, { resolve, reject });\n this.ws.send(JSON.stringify(msg));\n });\n }\n\n async subscribe(\n params: WsSubscribeParams,\n callback: (data: any) => void\n ): Promise<Subscription> {\n if (this.destroyed) {\n throw new WebSocketError(\"WebSocket channel has been destroyed\");\n }\n\n await this.connect();\n\n const key = subKey(params);\n let entry = this.subs.get(key);\n\n if (entry) {\n // Dedup: reuse existing WS subscription\n entry.callbacks.add(callback);\n } else {\n // New WS subscription\n entry = { params, callbacks: new Set([callback]) };\n this.subs.set(key, entry);\n await this.sendRpc(\"subscribe\", params);\n }\n\n return {\n unsubscribe: () => {\n const e = this.subs.get(key);\n if (!e) return;\n e.callbacks.delete(callback);\n if (e.callbacks.size === 0) {\n this.subs.delete(key);\n // Best-effort unsubscribe RPC\n if (this.ws?.readyState === WebSocket.OPEN) {\n this.sendRpc(\"unsubscribe\", params).catch(() => {});\n }\n // Auto-close when no subscribers remain\n if (this.subs.size === 0) this.closeQuietly();\n }\n },\n };\n }\n\n private closeQuietly() {\n if (this.ws) {\n this.ws.close();\n this.ws = null;\n }\n }\n\n destroy(): void {\n this.destroyed = true;\n if (this.reconnectTimer) clearTimeout(this.reconnectTimer);\n\n for (const [, p] of this.pending) {\n p.reject(new WebSocketError(\"WebSocket channel destroyed\"));\n }\n this.pending.clear();\n this.subs.clear();\n\n if (this.ws) {\n this.ws.close();\n this.ws = null;\n }\n }\n}\n\nfunction deriveWsUrl(httpUrl: string): string {\n return httpUrl.replace(/^http/, \"ws\").replace(/\\/$/, \"\") + \"/extended/v1/ws\";\n}\n\n/**\n * Create a WebSocket transport for real-time Stacks event subscriptions.\n * HTTP requests use the resolved RPC URL; subscriptions use the WS endpoint.\n */\nexport function webSocket(\n url?: string,\n config?: WebSocketTransportConfig\n): TransportFactory {\n return (params) => {\n const httpUrl =\n config?.url ??\n params?.chain?.rpcUrls.default.http[0] ??\n \"http://localhost:3999\";\n\n const wsUrl =\n url ??\n params?.chain?.rpcUrls.default.ws?.[0] ??\n deriveWsUrl(httpUrl);\n\n const resolvedHttpConfig: TransportConfig = {\n ...config,\n url: httpUrl,\n };\n\n const channel = new WebSocketChannel(wsUrl, config);\n\n const transport: WebSocketTransport = {\n type: \"webSocket\",\n request: buildRequestFn(httpUrl, resolvedHttpConfig),\n config: resolvedHttpConfig,\n subscribe: (subParams, callback) =>\n channel.subscribe(subParams, callback),\n destroy: () => channel.destroy(),\n };\n\n return transport;\n };\n}\n"
16
+ "import type { Transport, TransportConfig, TransportFactory } from \"./types.ts\";\nimport type { Subscription, WsSubscribeParams } from \"../subscriptions/types.ts\";\nimport { buildRequestFn } from \"./createTransport.ts\";\nimport { WebSocketError } from \"../errors/websocket.ts\";\n\n/** Configuration for the WebSocket transport, extending base {@link TransportConfig}. */\nexport type WebSocketTransportConfig = TransportConfig & {\n /** WebSocket URL (resolved from chain if omitted) */\n url?: string;\n /** Enable auto-reconnect (default: true) */\n reconnect?: boolean;\n /** Max reconnect attempts (default: 10) */\n reconnectMaxAttempts?: number;\n /** Base delay in ms for exponential backoff (default: 1000) */\n reconnectBaseDelay?: number;\n};\n\n/** Transport with WebSocket subscription capabilities and auto-reconnect. */\nexport type WebSocketTransport = Transport & {\n type: \"webSocket\";\n subscribe: (\n params: WsSubscribeParams,\n callback: (data: any) => void\n ) => Promise<Subscription>;\n destroy: () => void;\n};\n\ntype JsonRpcRequest = {\n jsonrpc: \"2.0\";\n id: number;\n method: string;\n params: Record<string, unknown>;\n};\n\ntype JsonRpcResponse = {\n jsonrpc: \"2.0\";\n id: number;\n result?: unknown;\n error?: { code: number; message: string };\n};\n\ntype JsonRpcNotification = {\n jsonrpc: \"2.0\";\n method: string;\n params: unknown;\n};\n\ntype SubEntry = {\n params: WsSubscribeParams;\n callbacks: Set<(data: any) => void>;\n};\n\nfunction subKey(params: WsSubscribeParams): string {\n const parts: string[] = [params.event];\n if (params.tx_id) parts.push(`tx_id:${params.tx_id}`);\n if (params.address) parts.push(`address:${params.address}`);\n if (params.asset_identifier)\n parts.push(`asset:${params.asset_identifier}`);\n if (params.value) parts.push(`value:${params.value}`);\n return parts.join(\"|\");\n}\n\nexport class WebSocketChannel {\n private ws: WebSocket | null = null;\n private url: string;\n private nextId = 1;\n private pending = new Map<\n number,\n { resolve: (v: unknown) => void; reject: (e: Error) => void }\n >();\n private subs = new Map<string, SubEntry>();\n private destroyed = false;\n private reconnecting = false;\n private reconnectAttempt = 0;\n private reconnectTimer: ReturnType<typeof setTimeout> | null = null;\n\n private reconnect: boolean;\n private reconnectMaxAttempts: number;\n private reconnectBaseDelay: number;\n\n constructor(url: string, config?: WebSocketTransportConfig) {\n this.url = url;\n this.reconnect = config?.reconnect ?? true;\n this.reconnectMaxAttempts = config?.reconnectMaxAttempts ?? 10;\n this.reconnectBaseDelay = config?.reconnectBaseDelay ?? 1000;\n }\n\n private connect(): Promise<void> {\n if (this.ws?.readyState === WebSocket.OPEN) return Promise.resolve();\n if (this.ws?.readyState === WebSocket.CONNECTING) {\n return new Promise((resolve, reject) => {\n const onOpen = () => {\n this.ws?.removeEventListener(\"error\", onError);\n resolve();\n };\n const onError = (e: Event) => {\n this.ws?.removeEventListener(\"open\", onOpen);\n reject(\n new WebSocketError(\"WebSocket connection failed\", {\n details: String(e),\n })\n );\n };\n this.ws!.addEventListener(\"open\", onOpen, { once: true });\n this.ws!.addEventListener(\"error\", onError, { once: true });\n });\n }\n\n return new Promise((resolve, reject) => {\n this.ws = new WebSocket(this.url);\n\n this.ws.addEventListener(\n \"open\",\n () => {\n this.reconnectAttempt = 0;\n this.reconnecting = false;\n resolve();\n },\n { once: true }\n );\n\n this.ws.addEventListener(\n \"error\",\n (e) => {\n reject(\n new WebSocketError(\"WebSocket connection failed\", {\n details: String(e),\n })\n );\n },\n { once: true }\n );\n\n this.ws.addEventListener(\"message\", (event) => {\n this.handleMessage(event.data);\n });\n\n this.ws.addEventListener(\"close\", () => {\n if (!this.destroyed) this.handleDisconnect();\n });\n });\n }\n\n private handleMessage(raw: string | ArrayBuffer | Blob) {\n const data =\n typeof raw === \"string\" ? raw : new TextDecoder().decode(raw as ArrayBuffer);\n\n let msg: JsonRpcResponse | JsonRpcNotification;\n try {\n msg = JSON.parse(data);\n } catch {\n return;\n }\n\n // RPC response\n if (\"id\" in msg && msg.id != null) {\n const rpc = msg as JsonRpcResponse;\n const p = this.pending.get(rpc.id);\n if (!p) return;\n this.pending.delete(rpc.id);\n if (rpc.error) {\n p.reject(\n new WebSocketError(rpc.error.message, {\n details: `JSON-RPC error ${rpc.error.code}`,\n })\n );\n } else {\n p.resolve(rpc.result);\n }\n return;\n }\n\n // Notification\n const notif = msg as JsonRpcNotification;\n if (!notif.method) return;\n\n for (const [, entry] of this.subs) {\n if (entry.params.event === notif.method) {\n for (const cb of entry.callbacks) {\n try {\n cb(notif.params);\n } catch {\n // subscriber error — don't crash channel\n }\n }\n }\n }\n }\n\n private handleDisconnect() {\n this.ws = null;\n\n // reject pending RPCs\n for (const [, p] of this.pending) {\n p.reject(new WebSocketError(\"WebSocket disconnected\"));\n }\n this.pending.clear();\n\n if (\n this.reconnect &&\n this.subs.size > 0 &&\n this.reconnectAttempt < this.reconnectMaxAttempts\n ) {\n this.scheduleReconnect();\n }\n }\n\n private scheduleReconnect() {\n if (this.destroyed || this.reconnecting) return;\n this.reconnecting = true;\n const delay = this.reconnectBaseDelay * 2 ** this.reconnectAttempt;\n this.reconnectAttempt++;\n\n this.reconnectTimer = setTimeout(async () => {\n this.reconnecting = false;\n try {\n await this.connect();\n await this.resubscribeAll();\n } catch {\n if (!this.destroyed && this.subs.size > 0) {\n this.handleDisconnect();\n }\n }\n }, delay);\n }\n\n private async resubscribeAll() {\n for (const [, entry] of this.subs) {\n await this.sendRpc(\"subscribe\", entry.params);\n }\n }\n\n private sendRpc(method: string, params: Record<string, unknown>): Promise<unknown> {\n return new Promise((resolve, reject) => {\n if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {\n return reject(new WebSocketError(\"WebSocket not connected\"));\n }\n\n const id = this.nextId++;\n const msg: JsonRpcRequest = {\n jsonrpc: \"2.0\",\n id,\n method,\n params,\n };\n\n this.pending.set(id, { resolve, reject });\n this.ws.send(JSON.stringify(msg));\n });\n }\n\n async subscribe(\n params: WsSubscribeParams,\n callback: (data: any) => void\n ): Promise<Subscription> {\n if (this.destroyed) {\n throw new WebSocketError(\"WebSocket channel has been destroyed\");\n }\n\n await this.connect();\n\n const key = subKey(params);\n let entry = this.subs.get(key);\n\n if (entry) {\n // Dedup: reuse existing WS subscription\n entry.callbacks.add(callback);\n } else {\n // New WS subscription\n entry = { params, callbacks: new Set([callback]) };\n this.subs.set(key, entry);\n await this.sendRpc(\"subscribe\", params);\n }\n\n return {\n unsubscribe: () => {\n const e = this.subs.get(key);\n if (!e) return;\n e.callbacks.delete(callback);\n if (e.callbacks.size === 0) {\n this.subs.delete(key);\n // Best-effort unsubscribe RPC\n if (this.ws?.readyState === WebSocket.OPEN) {\n this.sendRpc(\"unsubscribe\", params).catch(() => {});\n }\n // Auto-close when no subscribers remain\n if (this.subs.size === 0) this.closeQuietly();\n }\n },\n };\n }\n\n private closeQuietly() {\n if (this.ws) {\n this.ws.close();\n this.ws = null;\n }\n }\n\n destroy(): void {\n this.destroyed = true;\n if (this.reconnectTimer) clearTimeout(this.reconnectTimer);\n\n for (const [, p] of this.pending) {\n p.reject(new WebSocketError(\"WebSocket channel destroyed\"));\n }\n this.pending.clear();\n this.subs.clear();\n\n if (this.ws) {\n this.ws.close();\n this.ws = null;\n }\n }\n}\n\nfunction deriveWsUrl(httpUrl: string): string {\n return httpUrl.replace(/^http/, \"ws\").replace(/\\/$/, \"\") + \"/extended/v1/ws\";\n}\n\n/**\n * Create a WebSocket transport for real-time Stacks event subscriptions.\n * HTTP requests use the resolved RPC URL; subscriptions use the WS endpoint.\n */\nexport function webSocket(\n url?: string,\n config?: WebSocketTransportConfig\n): TransportFactory {\n return (params) => {\n const httpUrl =\n config?.url ??\n params?.chain?.rpcUrls.default.http[0] ??\n \"http://localhost:3999\";\n\n const wsUrl =\n url ??\n params?.chain?.rpcUrls.default.ws?.[0] ??\n deriveWsUrl(httpUrl);\n\n const resolvedHttpConfig: TransportConfig = {\n ...config,\n url: httpUrl,\n };\n\n const channel = new WebSocketChannel(wsUrl, config);\n\n const transport: WebSocketTransport = {\n type: \"webSocket\",\n request: buildRequestFn(httpUrl, resolvedHttpConfig),\n config: resolvedHttpConfig,\n subscribe: (subParams, callback) =>\n channel.subscribe(subParams, callback),\n destroy: () => channel.destroy(),\n };\n\n return transport;\n };\n}\n"
17
17
  ],
18
- "mappings": "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",
19
- "debugId": "2C73D96B89AABA6B64756E2164756E21",
18
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAM,YAAY,IAAI,IAAI,CAAC,SAAS,WAAW,aAAa,WAAW,QAAQ,CAAC;AAEhF,SAAS,UAAU,CAAC,MAAgC;AAAA,EAClD,OAAQ,CAAC,OAAY;AAAA,IACnB,MAAM,aAAa,GAAG,IAAI;AAAA,IAC1B,MAAM,OAAO,KAAK,KAAK;AAAA,IACvB,YAAY,KAAK,UAAU,OAAO,QAAQ,UAAU,GAAG;AAAA,MACrD,IAAI,UAAU,IAAI,GAAG;AAAA,QAAG;AAAA,MACvB,KAAa,OAAO;AAAA,IACvB;AAAA,IACA,KAAK,SAAS,WAAW,IAAI;AAAA,IAC7B,OAAO;AAAA;AAAA;AAQJ,SAAS,YAEf,CAAC,QAAyC;AAAA,EACzC,MAAM,YAAY,OAAO,UAAU,EAAE,OAAO,OAAO,MAAM,CAAC;AAAA,EAE1D,MAAM,SAAiB;AAAA,IACrB,OAAO,OAAO;AAAA,IACd,SAAS,OAAO;AAAA,IAChB;AAAA,IACA,SAAS,UAAU;AAAA,IACnB,QAAQ;AAAA,EACV;AAAA,EAEA,OAAO,SAAS,WAAW,MAAM;AAAA,EAEjC,OAAO;AAAA;;ACWF,SAAS,aAAa,CAAC,QAA+B;AAAA,EAC3D,OAAO;AAAA,IACL,UAAU,CAAC,WAAW,SAAS,QAAQ,MAAM;AAAA,IAC7C,YAAY,CAAC,WAAW,WAAW,QAAQ,MAAM;AAAA,IACjD,gBAAgB,CAAC,WAAW,eAAe,QAAQ,MAAM;AAAA,IACzD,UAAU,CAAC,WAAW,SAAS,QAAQ,MAAM;AAAA,IAC7C,gBAAgB,MAAM,eAAe,MAAM;AAAA,IAC3C,cAAc,CAAC,WAAW,aAAa,QAAQ,MAAM;AAAA,IACrD,gBAAgB,CAAC,WAAW,eAAe,QAAQ,MAAM;AAAA,IACzD,aAAa,CAAC,WAAW,YAAY,QAAQ,MAAM;AAAA,IACnD,aAAa,CAAC,WAAW,YAAY,QAAQ,MAAM;AAAA,IACnD,WAAW,CAAC,WAAW,UAAU,QAAQ,MAAM;AAAA,IAC/C,cAAc,CAAC,WAAW,aAAa,QAAQ,MAAM;AAAA,IACrD,qBAAqB,CAAC,WAAW,oBAAoB,QAAQ,MAAM;AAAA,IACnE,aAAa,CAAC,WAAW,YAAY,QAAQ,MAAM;AAAA,IACnD,cAAc,CAAC,WAAW,aAAa,QAAQ,MAAM;AAAA,IACrD,kBAAkB,CAAC,WAAW,iBAAiB,QAAQ,MAAM;AAAA,IAC7D,cAAc,CAAC,WAAW,aAAa,QAAQ,MAAM;AAAA,IACrD,qBAAqB,CAAC,WAAW,oBAAoB,QAAQ,MAAM;AAAA,IACnE,eAAe,CAAC,WAAW,cAAc,QAAQ,MAAM;AAAA,EACzD;AAAA;;;ACxDK,SAAS,kBAAkB,CAChC,QACuC;AAAA,EACvC,OAAO,aAAa,MAAM,EAAE,OAAO,aAAa;AAAA;;ACQ3C,SAAS,aAAa,CAAC,QAA+B;AAAA,EAC3D,OAAO;AAAA,IACL,iBAAiB,CAAC,WAAW,gBAAgB,QAAQ,MAAM;AAAA,IAC3D,iBAAiB,CAAC,WAAW,sBAAsB,QAAQ,MAAM;AAAA,IACjE,aAAa,CAAC,WAAW,YAAY,QAAQ,MAAM;AAAA,IACnD,cAAc,CAAC,WAAW,aAAa,QAAQ,MAAM;AAAA,IACrD,gBAAgB,CAAC,WAAW,eAAe,QAAQ,MAAM;AAAA,IACzD,aAAa,CAAC,WAAW,YAAY,QAAQ,MAAM;AAAA,IACnD,oBAAoB,CAAC,WAAW,mBAAmB,QAAQ,MAAM;AAAA,EACnE;AAAA;;;ACnBK,SAAS,kBAAkB,CAChC,QAC8D;AAAA,EAC9D,OAAO,aAAa,MAAM,EAAE,OAAO,aAAa;AAAA;;ACyC3C,SAAS,eAAe,CAAC,QAAiC;AAAA,EAC/D,MAAM,WAAY,OAAe;AAAA,EAMjC,IAAI,CAAC;AAAA,IAAU,MAAM,IAAI,MAAM,6CAA6C;AAAA,EAE5E,QAAQ,SAAS,oBAAoB,aAAa;AAAA,EAGlD,eAAe,YAAY,CAAC,OAA2C;AAAA,IACrE,IAAI,UAAU;AAAA,MAAW,OAAO;AAAA,IAChC,MAAM,UAAU,oBAAoB,SAAS,oBAAoB,OAAO,KAAK;AAAA,IAC7E,OAAO,SAAS,QAAQ,EAAE,QAAQ,CAAC;AAAA;AAAA,EAGrC,OAAO;AAAA,SACC,YAAW,CAAC,QAAQ;AAAA,MACxB,MAAM,QAAQ,MAAM,aAAa,OAAO,KAAK;AAAA,MAE7C,MAAM,WAAW,mBAAmB;AAAA,QAClC,WAAW,OAAO;AAAA,QAClB,QAAQ,OAAO;AAAA,QACf,MAAM,OAAO;AAAA,QACb,KAAK,OAAO,OAAO;AAAA,QACnB;AAAA,QACA,YAAY;AAAA,QACZ,oBAAoB;AAAA,QACpB;AAAA,QACA,OAAO,OAAO;AAAA,QACd,mBAAmB,OAAO;AAAA,QAC1B,gBAAgB,OAAO;AAAA,MACzB,CAAC;AAAA,MAED,IAAI,OAAO,QAAQ,WAAW;AAAA,QAC5B,MAAM,YAAY,MAAM,YAAY,QAAQ,EAAE,aAAa,SAAS,CAAC;AAAA,QACrE,MAAM,MAAM,UAAU,MAAM,UAAU;AAAA,QACtC,IAAI,KAAK;AAAA,UACN,SAAS,KAAK,kBAA0B,MAAM,OAAO,IAAI,GAAG;AAAA,QAC/D;AAAA,MACF;AAAA,MAEA,OAAO;AAAA;AAAA,SAGH,aAAY,CAAC,QAAQ;AAAA,MACzB,OAAO,iBAAiB,gBAAgB,gBAAgB,OAAO,QAAQ;AAAA,MACvE,MAAM,QAAQ,MAAM,aAAa,OAAO,KAAK;AAAA,MAE7C,MAAM,WAAW,kBAAkB;AAAA,QACjC;AAAA,QACA;AAAA,QACA,cAAc,OAAO;AAAA,QACrB,cAAc,OAAO,gBAAgB,CAAC;AAAA,QACtC,KAAK,OAAO,OAAO;AAAA,QACnB;AAAA,QACA,YAAY;AAAA,QACZ,oBAAoB;AAAA,QACpB;AAAA,QACA,OAAO,OAAO;AAAA,QACd,mBAAmB,OAAO;AAAA,QAC1B,gBAAgB,OAAO;AAAA,MACzB,CAAC;AAAA,MAED,IAAI,OAAO,QAAQ,WAAW;AAAA,QAC5B,MAAM,YAAY,MAAM,YAAY,QAAQ,EAAE,aAAa,SAAS,CAAC;AAAA,QACrE,MAAM,MAAM,UAAU,MAAM,UAAU;AAAA,QACtC,IAAI,KAAK;AAAA,UACN,SAAS,KAAK,kBAA0B,MAAM,OAAO,IAAI,GAAG;AAAA,QAC/D;AAAA,MACF;AAAA,MAEA,OAAO;AAAA;AAAA,SAGH,eAAc,CAAC,QAAQ;AAAA,MAC3B,MAAM,QAAQ,MAAM,aAAa,OAAO,KAAK;AAAA,MAE7C,MAAM,WAAW,oBAAoB;AAAA,QACnC,cAAc,OAAO;AAAA,QACrB,UAAU,OAAO;AAAA,QACjB,gBAAgB,OAAO;AAAA,QACvB,KAAK,OAAO,OAAO;AAAA,QACnB;AAAA,QACA,YAAY;AAAA,QACZ,oBAAoB;AAAA,QACpB;AAAA,QACA,OAAO,OAAO;AAAA,QACd,mBAAmB,OAAO;AAAA,QAC1B,gBAAgB,OAAO;AAAA,MACzB,CAAC;AAAA,MAED,IAAI,OAAO,QAAQ,WAAW;AAAA,QAC5B,MAAM,YAAY,MAAM,YAAY,QAAQ,EAAE,aAAa,SAAS,CAAC;AAAA,QACrE,MAAM,MAAM,UAAU,MAAM,UAAU;AAAA,QACtC,IAAI,KAAK;AAAA,UACN,SAAS,KAAK,kBAA0B,MAAM,OAAO,IAAI,GAAG;AAAA,QAC/D;AAAA,MACF;AAAA,MAEA,OAAO;AAAA;AAAA,SAGH,gBAAe,CAAC,QAAQ;AAAA,MAE5B,MAAM,YAAY,iBAAiB,OAAO,aAAa,OAAO;AAAA,MAC9D,OAAO,gBAAgB,QAAQ;AAAA,QAC7B,aAAa;AAAA,QACb,YAAY,OAAO;AAAA,MACrB,CAAC;AAAA;AAAA,EAEL;AAAA;;;ACtJK,SAAS,oBAAoB,CAAC,QAA8C;AAAA,EACjF,MAAM,SAAS,aAAa,MAAM;AAAA,EAGjC,OAAe,kBAAkB;AAAA,IAChC,SAAS,OAAO;AAAA,IAChB,oBAAoB,OAAO;AAAA,IAC3B,UAAU,OAAO;AAAA,EACnB;AAAA,EAEA,OAAO,OAAO,OAAO,eAAe;AAAA;;AC3B/B,SAAS,eAAe,CAC7B,MACA,QACW;AAAA,EACX,OAAO;AAAA,IACL;AAAA,IACA,SAAS,OAAO;AAAA,IAChB;AAAA,EACF;AAAA;AAGF,eAAsB,cAAc,CAClC,KACA,SACA,YACA,YACA,SACmB;AAAA,EACnB,IAAI;AAAA,EAEJ,SAAS,UAAU,EAAG,WAAW,YAAY,WAAW;AAAA,IACtD,IAAI;AAAA,MACF,MAAM,aAAa,IAAI;AAAA,MACvB,MAAM,YAAY,WAAW,MAAM,WAAW,MAAM,GAAG,OAAO;AAAA,MAE9D,MAAM,WAAW,MAAM,MAAM,KAAK;AAAA,WAC7B;AAAA,QACH,QAAQ,WAAW;AAAA,MACrB,CAAC;AAAA,MAED,aAAa,SAAS;AAAA,MAEtB,IAAI,SAAS,MAAM,SAAS,SAAS,KAAK;AAAA,QACxC,OAAO;AAAA,MACT;AAAA,MAEA,YAAY,IAAI,MAAM,QAAQ,SAAS,WAAW,SAAS,YAAY;AAAA,MACvE,OAAO,OAAO;AAAA,MACd,YACE,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;AAAA;AAAA,IAG5D,IAAI,UAAU,YAAY;AAAA,MACxB,MAAM,IAAI,QAAQ,CAAC,MAAM,WAAW,GAAG,cAAc,UAAU,EAAE,CAAC;AAAA,IACpE;AAAA,EACF;AAAA,EAEA,MAAM,aAAa,IAAI,MAAM,gBAAgB;AAAA;AAGxC,SAAS,cAAc,CAC5B,SACA,QACW;AAAA,EACX;AAAA,IACE,UAAU;AAAA,IACV,aAAa;AAAA,IACb,aAAa;AAAA,IACb,eAAe,CAAC;AAAA,IAChB;AAAA,MACE;AAAA,EAEJ,OAAO,OAAO,MAAc,YAA6B;AAAA,IACvD,MAAM,MAAM,GAAG,QAAQ,QAAQ,OAAO,EAAE,IAAI;AAAA,IAC5C,MAAM,UAAkC;AAAA,MACtC,gBAAgB;AAAA,SACZ,aAAa;AAAA,SACd,SAAS;AAAA,IACd;AAAA,IAEA,IAAI,QAAQ;AAAA,MACV,QAAQ,eAAe;AAAA,IACzB;AAAA,IAEA,MAAM,OAAoB;AAAA,SACrB;AAAA,MACH,QAAQ,SAAS,UAAU;AAAA,MAC3B;AAAA,IACF;AAAA,IAEA,IAAI,SAAS,SAAS,WAAW;AAAA,MAC/B,KAAK,OAAO,KAAK,UAAU,QAAQ,IAAI;AAAA,IACzC;AAAA,IAEA,MAAM,WAAW,MAAM,eACrB,KACA,MACA,YACA,YACA,OACF;AAAA,IAEA,MAAM,cAAc,SAAS,QAAQ,IAAI,cAAc,KAAK;AAAA,IAC5D,IAAI,YAAY,SAAS,kBAAkB,GAAG;AAAA,MAC5C,OAAO,SAAS,KAAK;AAAA,IACvB;AAAA,IACA,OAAO,SAAS,KAAK;AAAA;AAAA;;;AC3FlB,SAAS,IAAI,CAAC,KAAc,QAA4C;AAAA,EAC7E,OAAO,CAAC,WAAW;AAAA,IACjB,MAAM,cACJ,OAAO,QAAQ,OAAO,QAAQ,QAAQ,KAAK,MAAM;AAAA,IAEnD,MAAM,eAAgC;AAAA,SACjC;AAAA,MACH,KAAK;AAAA,IACP;AAAA,IAEA,OAAO,gBAAgB,QAAQ;AAAA,SAC1B;AAAA,MACH,SAAS,eAAe,aAAa,YAAY;AAAA,IACnD,CAAC;AAAA;AAAA;;AChBE,SAAS,MAAM,CAAC,QAAkD;AAAA,EACvE,OAAO,MAAM,gBAAgB,UAAU,EAAE,SAAS,OAAO,QAAQ,CAAC;AAAA;;ACD7D,SAAS,QAAQ,CAAC,YAAkD;AAAA,EACzE,OAAO,CAAC,WAAW;AAAA,IACjB,MAAM,WAAW,WAAW,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;AAAA,IAEhD,OAAO,gBAAgB,YAAY;AAAA,MACjC,SAAS,OAAO,MAAM,YAAY;AAAA,QAChC,IAAI;AAAA,QACJ,WAAW,aAAa,UAAU;AAAA,UAChC,IAAI;AAAA,YACF,OAAO,MAAM,UAAU,QAAQ,MAAM,OAAO;AAAA,YAC5C,OAAO,OAAO;AAAA,YACd,YACE,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;AAAA;AAAA,QAE9D;AAAA,QACA,MAAM,aAAa,IAAI,MAAM,uBAAuB;AAAA;AAAA,IAExD,CAAC;AAAA;AAAA;;AC+BL,SAAS,MAAM,CAAC,QAAmC;AAAA,EACjD,MAAM,QAAkB,CAAC,OAAO,KAAK;AAAA,EACrC,IAAI,OAAO;AAAA,IAAO,MAAM,KAAK,SAAS,OAAO,OAAO;AAAA,EACpD,IAAI,OAAO;AAAA,IAAS,MAAM,KAAK,WAAW,OAAO,SAAS;AAAA,EAC1D,IAAI,OAAO;AAAA,IACT,MAAM,KAAK,SAAS,OAAO,kBAAkB;AAAA,EAC/C,IAAI,OAAO;AAAA,IAAO,MAAM,KAAK,SAAS,OAAO,OAAO;AAAA,EACpD,OAAO,MAAM,KAAK,GAAG;AAAA;AAAA;AAGhB,MAAM,iBAAiB;AAAA,EACpB,KAAuB;AAAA,EACvB;AAAA,EACA,SAAS;AAAA,EACT,UAAU,IAAI;AAAA,EAId,OAAO,IAAI;AAAA,EACX,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,iBAAuD;AAAA,EAEvD;AAAA,EACA;AAAA,EACA;AAAA,EAER,WAAW,CAAC,KAAa,QAAmC;AAAA,IAC1D,KAAK,MAAM;AAAA,IACX,KAAK,YAAY,QAAQ,aAAa;AAAA,IACtC,KAAK,uBAAuB,QAAQ,wBAAwB;AAAA,IAC5D,KAAK,qBAAqB,QAAQ,sBAAsB;AAAA;AAAA,EAGlD,OAAO,GAAkB;AAAA,IAC/B,IAAI,KAAK,IAAI,eAAe,UAAU;AAAA,MAAM,OAAO,QAAQ,QAAQ;AAAA,IACnE,IAAI,KAAK,IAAI,eAAe,UAAU,YAAY;AAAA,MAChD,OAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AAAA,QACtC,MAAM,SAAS,MAAM;AAAA,UACnB,KAAK,IAAI,oBAAoB,SAAS,OAAO;AAAA,UAC7C,QAAQ;AAAA;AAAA,QAEV,MAAM,UAAU,CAAC,MAAa;AAAA,UAC5B,KAAK,IAAI,oBAAoB,QAAQ,MAAM;AAAA,UAC3C,OACE,IAAI,eAAe,+BAA+B;AAAA,YAChD,SAAS,OAAO,CAAC;AAAA,UACnB,CAAC,CACH;AAAA;AAAA,QAEF,KAAK,GAAI,iBAAiB,QAAQ,QAAQ,EAAE,MAAM,KAAK,CAAC;AAAA,QACxD,KAAK,GAAI,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;AAAA,OAC3D;AAAA,IACH;AAAA,IAEA,OAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AAAA,MACtC,KAAK,KAAK,IAAI,UAAU,KAAK,GAAG;AAAA,MAEhC,KAAK,GAAG,iBACN,QACA,MAAM;AAAA,QACJ,KAAK,mBAAmB;AAAA,QACxB,KAAK,eAAe;AAAA,QACpB,QAAQ;AAAA,SAEV,EAAE,MAAM,KAAK,CACf;AAAA,MAEA,KAAK,GAAG,iBACN,SACA,CAAC,MAAM;AAAA,QACL,OACE,IAAI,eAAe,+BAA+B;AAAA,UAChD,SAAS,OAAO,CAAC;AAAA,QACnB,CAAC,CACH;AAAA,SAEF,EAAE,MAAM,KAAK,CACf;AAAA,MAEA,KAAK,GAAG,iBAAiB,WAAW,CAAC,UAAU;AAAA,QAC7C,KAAK,cAAc,MAAM,IAAI;AAAA,OAC9B;AAAA,MAED,KAAK,GAAG,iBAAiB,SAAS,MAAM;AAAA,QACtC,IAAI,CAAC,KAAK;AAAA,UAAW,KAAK,iBAAiB;AAAA,OAC5C;AAAA,KACF;AAAA;AAAA,EAGK,aAAa,CAAC,KAAkC;AAAA,IACtD,MAAM,OACJ,OAAO,QAAQ,WAAW,MAAM,IAAI,YAAY,EAAE,OAAO,GAAkB;AAAA,IAE7E,IAAI;AAAA,IACJ,IAAI;AAAA,MACF,MAAM,KAAK,MAAM,IAAI;AAAA,MACrB,MAAM;AAAA,MACN;AAAA;AAAA,IAIF,IAAI,QAAQ,OAAO,IAAI,MAAM,MAAM;AAAA,MACjC,MAAM,MAAM;AAAA,MACZ,MAAM,IAAI,KAAK,QAAQ,IAAI,IAAI,EAAE;AAAA,MACjC,IAAI,CAAC;AAAA,QAAG;AAAA,MACR,KAAK,QAAQ,OAAO,IAAI,EAAE;AAAA,MAC1B,IAAI,IAAI,OAAO;AAAA,QACb,EAAE,OACA,IAAI,eAAe,IAAI,MAAM,SAAS;AAAA,UACpC,SAAS,kBAAkB,IAAI,MAAM;AAAA,QACvC,CAAC,CACH;AAAA,MACF,EAAO;AAAA,QACL,EAAE,QAAQ,IAAI,MAAM;AAAA;AAAA,MAEtB;AAAA,IACF;AAAA,IAGA,MAAM,QAAQ;AAAA,IACd,IAAI,CAAC,MAAM;AAAA,MAAQ;AAAA,IAEnB,cAAc,UAAU,KAAK,MAAM;AAAA,MACjC,IAAI,MAAM,OAAO,UAAU,MAAM,QAAQ;AAAA,QACvC,WAAW,MAAM,MAAM,WAAW;AAAA,UAChC,IAAI;AAAA,YACF,GAAG,MAAM,MAAM;AAAA,YACf,MAAM;AAAA,QAGV;AAAA,MACF;AAAA,IACF;AAAA;AAAA,EAGM,gBAAgB,GAAG;AAAA,IACzB,KAAK,KAAK;AAAA,IAGV,cAAc,MAAM,KAAK,SAAS;AAAA,MAChC,EAAE,OAAO,IAAI,eAAe,wBAAwB,CAAC;AAAA,IACvD;AAAA,IACA,KAAK,QAAQ,MAAM;AAAA,IAEnB,IACE,KAAK,aACL,KAAK,KAAK,OAAO,KACjB,KAAK,mBAAmB,KAAK,sBAC7B;AAAA,MACA,KAAK,kBAAkB;AAAA,IACzB;AAAA;AAAA,EAGM,iBAAiB,GAAG;AAAA,IAC1B,IAAI,KAAK,aAAa,KAAK;AAAA,MAAc;AAAA,IACzC,KAAK,eAAe;AAAA,IACpB,MAAM,QAAQ,KAAK,qBAAqB,KAAK,KAAK;AAAA,IAClD,KAAK;AAAA,IAEL,KAAK,iBAAiB,WAAW,YAAY;AAAA,MAC3C,KAAK,eAAe;AAAA,MACpB,IAAI;AAAA,QACF,MAAM,KAAK,QAAQ;AAAA,QACnB,MAAM,KAAK,eAAe;AAAA,QAC1B,MAAM;AAAA,QACN,IAAI,CAAC,KAAK,aAAa,KAAK,KAAK,OAAO,GAAG;AAAA,UACzC,KAAK,iBAAiB;AAAA,QACxB;AAAA;AAAA,OAED,KAAK;AAAA;AAAA,OAGI,eAAc,GAAG;AAAA,IAC7B,cAAc,UAAU,KAAK,MAAM;AAAA,MACjC,MAAM,KAAK,QAAQ,aAAa,MAAM,MAAM;AAAA,IAC9C;AAAA;AAAA,EAGM,OAAO,CAAC,QAAgB,QAAmD;AAAA,IACjF,OAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AAAA,MACtC,IAAI,CAAC,KAAK,MAAM,KAAK,GAAG,eAAe,UAAU,MAAM;AAAA,QACrD,OAAO,OAAO,IAAI,eAAe,yBAAyB,CAAC;AAAA,MAC7D;AAAA,MAEA,MAAM,KAAK,KAAK;AAAA,MAChB,MAAM,MAAsB;AAAA,QAC1B,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MAEA,KAAK,QAAQ,IAAI,IAAI,EAAE,SAAS,OAAO,CAAC;AAAA,MACxC,KAAK,GAAG,KAAK,KAAK,UAAU,GAAG,CAAC;AAAA,KACjC;AAAA;AAAA,OAGG,UAAS,CACb,QACA,UACuB;AAAA,IACvB,IAAI,KAAK,WAAW;AAAA,MAClB,MAAM,IAAI,eAAe,sCAAsC;AAAA,IACjE;AAAA,IAEA,MAAM,KAAK,QAAQ;AAAA,IAEnB,MAAM,MAAM,OAAO,MAAM;AAAA,IACzB,IAAI,QAAQ,KAAK,KAAK,IAAI,GAAG;AAAA,IAE7B,IAAI,OAAO;AAAA,MAET,MAAM,UAAU,IAAI,QAAQ;AAAA,IAC9B,EAAO;AAAA,MAEL,QAAQ,EAAE,QAAQ,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE;AAAA,MACjD,KAAK,KAAK,IAAI,KAAK,KAAK;AAAA,MACxB,MAAM,KAAK,QAAQ,aAAa,MAAM;AAAA;AAAA,IAGxC,OAAO;AAAA,MACL,aAAa,MAAM;AAAA,QACjB,MAAM,IAAI,KAAK,KAAK,IAAI,GAAG;AAAA,QAC3B,IAAI,CAAC;AAAA,UAAG;AAAA,QACR,EAAE,UAAU,OAAO,QAAQ;AAAA,QAC3B,IAAI,EAAE,UAAU,SAAS,GAAG;AAAA,UAC1B,KAAK,KAAK,OAAO,GAAG;AAAA,UAEpB,IAAI,KAAK,IAAI,eAAe,UAAU,MAAM;AAAA,YAC1C,KAAK,QAAQ,eAAe,MAAM,EAAE,MAAM,MAAM,EAAE;AAAA,UACpD;AAAA,UAEA,IAAI,KAAK,KAAK,SAAS;AAAA,YAAG,KAAK,aAAa;AAAA,QAC9C;AAAA;AAAA,IAEJ;AAAA;AAAA,EAGM,YAAY,GAAG;AAAA,IACrB,IAAI,KAAK,IAAI;AAAA,MACX,KAAK,GAAG,MAAM;AAAA,MACd,KAAK,KAAK;AAAA,IACZ;AAAA;AAAA,EAGF,OAAO,GAAS;AAAA,IACd,KAAK,YAAY;AAAA,IACjB,IAAI,KAAK;AAAA,MAAgB,aAAa,KAAK,cAAc;AAAA,IAEzD,cAAc,MAAM,KAAK,SAAS;AAAA,MAChC,EAAE,OAAO,IAAI,eAAe,6BAA6B,CAAC;AAAA,IAC5D;AAAA,IACA,KAAK,QAAQ,MAAM;AAAA,IACnB,KAAK,KAAK,MAAM;AAAA,IAEhB,IAAI,KAAK,IAAI;AAAA,MACX,KAAK,GAAG,MAAM;AAAA,MACd,KAAK,KAAK;AAAA,IACZ;AAAA;AAEJ;AAEA,SAAS,WAAW,CAAC,SAAyB;AAAA,EAC5C,OAAO,QAAQ,QAAQ,SAAS,IAAI,EAAE,QAAQ,OAAO,EAAE,IAAI;AAAA;AAOtD,SAAS,SAAS,CACvB,KACA,QACkB;AAAA,EAClB,OAAO,CAAC,WAAW;AAAA,IACjB,MAAM,UACJ,QAAQ,OACR,QAAQ,OAAO,QAAQ,QAAQ,KAAK,MACpC;AAAA,IAEF,MAAM,QACJ,OACA,QAAQ,OAAO,QAAQ,QAAQ,KAAK,MACpC,YAAY,OAAO;AAAA,IAErB,MAAM,qBAAsC;AAAA,SACvC;AAAA,MACH,KAAK;AAAA,IACP;AAAA,IAEA,MAAM,UAAU,IAAI,iBAAiB,OAAO,MAAM;AAAA,IAElD,MAAM,YAAgC;AAAA,MACpC,MAAM;AAAA,MACN,SAAS,eAAe,SAAS,kBAAkB;AAAA,MACnD,QAAQ;AAAA,MACR,WAAW,CAAC,WAAW,aACrB,QAAQ,UAAU,WAAW,QAAQ;AAAA,MACvC,SAAS,MAAM,QAAQ,QAAQ;AAAA,IACjC;AAAA,IAEA,OAAO;AAAA;AAAA;",
19
+ "debugId": "96BF38EA5F3075A964756E2164756E21",
20
20
  "names": []
21
21
  }
@@ -1,119 +1,3 @@
1
- // src/postconditions/index.ts
2
- var exports_postconditions = {};
3
- __export(exports_postconditions, {
4
- Pc: () => Pc
5
- });
6
- module.exports = __toCommonJS(exports_postconditions);
7
1
 
8
- // src/postconditions/builder.ts
9
- class PartialPcWithPrincipal {
10
- address;
11
- constructor(address) {
12
- this.address = address;
13
- }
14
- willSendEq(amount) {
15
- return new PartialPcFtWithCode(this.address, amount, "eq");
16
- }
17
- willSendGte(amount) {
18
- return new PartialPcFtWithCode(this.address, amount, "gte");
19
- }
20
- willSendGt(amount) {
21
- return new PartialPcFtWithCode(this.address, amount, "gt");
22
- }
23
- willSendLte(amount) {
24
- return new PartialPcFtWithCode(this.address, amount, "lte");
25
- }
26
- willSendLt(amount) {
27
- return new PartialPcFtWithCode(this.address, amount, "lt");
28
- }
29
- willSendAsset() {
30
- return new PartialPcNftWithCode(this.address, "sent");
31
- }
32
- willNotSendAsset() {
33
- return new PartialPcNftWithCode(this.address, "not-sent");
34
- }
35
- }
36
-
37
- class PartialPcFtWithCode {
38
- address;
39
- amount;
40
- code;
41
- constructor(address, amount, code) {
42
- this.address = address;
43
- this.amount = amount;
44
- this.code = code;
45
- }
46
- ustx() {
47
- return {
48
- type: "stx-postcondition",
49
- address: this.address,
50
- condition: this.code,
51
- amount: intToBigInt(this.amount).toString()
52
- };
53
- }
54
- ft(contractId, tokenName) {
55
- const [address, name] = contractId.split(".");
56
- if (!address || !validateStacksAddress(address) || !name) {
57
- throw new Error(`Invalid contract id: ${contractId}`);
58
- }
59
- return {
60
- type: "ft-postcondition",
61
- address: this.address,
62
- condition: this.code,
63
- amount: intToBigInt(this.amount).toString(),
64
- asset: `${contractId}::${tokenName}`
65
- };
66
- }
67
- }
68
-
69
- class PartialPcNftWithCode {
70
- address;
71
- code;
72
- constructor(address, code) {
73
- this.address = address;
74
- this.code = code;
75
- }
76
- nft(assetOrContractId, tokenNameOrAssetId, assetId) {
77
- let contractAddress;
78
- let contractName;
79
- let tokenName;
80
- let id;
81
- if (assetId !== undefined) {
82
- [contractAddress, contractName] = parseContractId(assetOrContractId);
83
- tokenName = tokenNameOrAssetId;
84
- id = assetId;
85
- } else {
86
- const [principal, tName] = assetOrContractId.split("::");
87
- if (!principal || !tName)
88
- throw new Error(`Invalid asset name: ${assetOrContractId}`);
89
- [contractAddress, contractName] = parseContractId(principal);
90
- tokenName = tName;
91
- id = tokenNameOrAssetId;
92
- }
93
- if (!validateStacksAddress(contractAddress)) {
94
- throw new Error(`Invalid contract address: ${contractAddress}`);
95
- }
96
- return {
97
- type: "nft-postcondition",
98
- address: this.address,
99
- condition: this.code,
100
- asset: `${contractAddress}.${contractName}::${tokenName}`,
101
- assetId: id
102
- };
103
- }
104
- }
105
- var Pc = {
106
- principal(address) {
107
- const [addr, name] = address.split(".");
108
- if (!addr || !validateStacksAddress(addr) || typeof name === "string" && !name) {
109
- throw new Error(`Invalid principal: ${address}`);
110
- }
111
- return new PartialPcWithPrincipal(address);
112
- },
113
- origin() {
114
- return new PartialPcWithPrincipal("origin");
115
- }
116
- };
117
-
118
- //# debugId=4E76AF631CC87C2164756E2164756E21
2
+ //# debugId=DDDF1E5FDE06A0EC64756E2164756E21
119
3
  //# sourceMappingURL=index.cjs.map
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/postconditions/builder.ts"],
3
+ "sources": [],
4
4
  "sourcesContent": [
5
- "import { intToBigInt, type IntegerType } from \"../utils/encoding.ts\";\nimport { validateStacksAddress, parseContractId } from \"../utils/address.ts\";\nimport type { ClarityValue } from \"../clarity/types.ts\";\nimport type {\n StxPostCondition,\n FtPostCondition,\n NftPostCondition,\n FungibleComparator,\n NonFungibleComparator,\n} from \"./types.ts\";\n\nclass PartialPcWithPrincipal {\n constructor(private address: string) {}\n\n willSendEq(amount: IntegerType) {\n return new PartialPcFtWithCode(this.address, amount, \"eq\");\n }\n willSendGte(amount: IntegerType) {\n return new PartialPcFtWithCode(this.address, amount, \"gte\");\n }\n willSendGt(amount: IntegerType) {\n return new PartialPcFtWithCode(this.address, amount, \"gt\");\n }\n willSendLte(amount: IntegerType) {\n return new PartialPcFtWithCode(this.address, amount, \"lte\");\n }\n willSendLt(amount: IntegerType) {\n return new PartialPcFtWithCode(this.address, amount, \"lt\");\n }\n willSendAsset() {\n return new PartialPcNftWithCode(this.address, \"sent\");\n }\n willNotSendAsset() {\n return new PartialPcNftWithCode(this.address, \"not-sent\");\n }\n}\n\nclass PartialPcFtWithCode {\n constructor(\n private address: string,\n private amount: IntegerType,\n private code: FungibleComparator\n ) {}\n\n ustx(): StxPostCondition {\n return {\n type: \"stx-postcondition\",\n address: this.address,\n condition: this.code,\n amount: intToBigInt(this.amount).toString(),\n };\n }\n\n ft(contractId: string, tokenName: string): FtPostCondition {\n const [address, name] = contractId.split(\".\");\n if (!address || !validateStacksAddress(address) || !name) {\n throw new Error(`Invalid contract id: ${contractId}`);\n }\n return {\n type: \"ft-postcondition\",\n address: this.address,\n condition: this.code,\n amount: intToBigInt(this.amount).toString(),\n asset: `${contractId}::${tokenName}`,\n };\n }\n}\n\nclass PartialPcNftWithCode {\n constructor(\n private address: string,\n private code: NonFungibleComparator\n ) {}\n\n nft(assetOrContractId: string, tokenNameOrAssetId: string | ClarityValue, assetId?: ClarityValue): NftPostCondition {\n let contractAddress: string;\n let contractName: string;\n let tokenName: string;\n let id: ClarityValue;\n\n if (assetId !== undefined) {\n // 3 args: contractId, tokenName, assetId\n [contractAddress, contractName] = parseContractId(assetOrContractId);\n tokenName = tokenNameOrAssetId as string;\n id = assetId;\n } else {\n // 2 args: assetString (addr.contract::token), assetId\n const [principal, tName] = assetOrContractId.split(\"::\");\n if (!principal || !tName) throw new Error(`Invalid asset name: ${assetOrContractId}`);\n [contractAddress, contractName] = parseContractId(principal);\n tokenName = tName;\n id = tokenNameOrAssetId as ClarityValue;\n }\n\n if (!validateStacksAddress(contractAddress)) {\n throw new Error(`Invalid contract address: ${contractAddress}`);\n }\n\n return {\n type: \"nft-postcondition\",\n address: this.address,\n condition: this.code,\n asset: `${contractAddress}.${contractName}::${tokenName}`,\n assetId: id,\n };\n }\n}\n\nexport const Pc = {\n principal(address: string) {\n const [addr, name] = address.split(\".\");\n if (!addr || !validateStacksAddress(addr) || (typeof name === \"string\" && !name)) {\n throw new Error(`Invalid principal: ${address}`);\n }\n return new PartialPcWithPrincipal(address);\n },\n origin() {\n return new PartialPcWithPrincipal(\"origin\");\n },\n};\n"
6
5
  ],
7
- "mappings": "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",
8
- "debugId": "4E76AF631CC87C2164756E2164756E21",
6
+ "mappings": "",
7
+ "debugId": "DDDF1E5FDE06A0EC64756E2164756E21",
9
8
  "names": []
10
9
  }
@@ -1,125 +1,11 @@
1
1
  import {
2
- parseContractId,
3
- validateStacksAddress
4
- } from "../../shared/stacks-gjvbq6w7.js";
5
- import {
6
- intToBigInt
7
- } from "../../shared/stacks-nqytwfcc.js";
8
- import"../../shared/stacks-njvyj3ab.js";
9
-
10
- // src/postconditions/builder.ts
11
- class PartialPcWithPrincipal {
12
- address;
13
- constructor(address) {
14
- this.address = address;
15
- }
16
- willSendEq(amount) {
17
- return new PartialPcFtWithCode(this.address, amount, "eq");
18
- }
19
- willSendGte(amount) {
20
- return new PartialPcFtWithCode(this.address, amount, "gte");
21
- }
22
- willSendGt(amount) {
23
- return new PartialPcFtWithCode(this.address, amount, "gt");
24
- }
25
- willSendLte(amount) {
26
- return new PartialPcFtWithCode(this.address, amount, "lte");
27
- }
28
- willSendLt(amount) {
29
- return new PartialPcFtWithCode(this.address, amount, "lt");
30
- }
31
- willSendAsset() {
32
- return new PartialPcNftWithCode(this.address, "sent");
33
- }
34
- willNotSendAsset() {
35
- return new PartialPcNftWithCode(this.address, "not-sent");
36
- }
37
- }
38
-
39
- class PartialPcFtWithCode {
40
- address;
41
- amount;
42
- code;
43
- constructor(address, amount, code) {
44
- this.address = address;
45
- this.amount = amount;
46
- this.code = code;
47
- }
48
- ustx() {
49
- return {
50
- type: "stx-postcondition",
51
- address: this.address,
52
- condition: this.code,
53
- amount: intToBigInt(this.amount).toString()
54
- };
55
- }
56
- ft(contractId, tokenName) {
57
- const [address, name] = contractId.split(".");
58
- if (!address || !validateStacksAddress(address) || !name) {
59
- throw new Error(`Invalid contract id: ${contractId}`);
60
- }
61
- return {
62
- type: "ft-postcondition",
63
- address: this.address,
64
- condition: this.code,
65
- amount: intToBigInt(this.amount).toString(),
66
- asset: `${contractId}::${tokenName}`
67
- };
68
- }
69
- }
70
-
71
- class PartialPcNftWithCode {
72
- address;
73
- code;
74
- constructor(address, code) {
75
- this.address = address;
76
- this.code = code;
77
- }
78
- nft(assetOrContractId, tokenNameOrAssetId, assetId) {
79
- let contractAddress;
80
- let contractName;
81
- let tokenName;
82
- let id;
83
- if (assetId !== undefined) {
84
- [contractAddress, contractName] = parseContractId(assetOrContractId);
85
- tokenName = tokenNameOrAssetId;
86
- id = assetId;
87
- } else {
88
- const [principal, tName] = assetOrContractId.split("::");
89
- if (!principal || !tName)
90
- throw new Error(`Invalid asset name: ${assetOrContractId}`);
91
- [contractAddress, contractName] = parseContractId(principal);
92
- tokenName = tName;
93
- id = tokenNameOrAssetId;
94
- }
95
- if (!validateStacksAddress(contractAddress)) {
96
- throw new Error(`Invalid contract address: ${contractAddress}`);
97
- }
98
- return {
99
- type: "nft-postcondition",
100
- address: this.address,
101
- condition: this.code,
102
- asset: `${contractAddress}.${contractName}::${tokenName}`,
103
- assetId: id
104
- };
105
- }
106
- }
107
- var Pc = {
108
- principal(address) {
109
- const [addr, name] = address.split(".");
110
- if (!addr || !validateStacksAddress(addr) || typeof name === "string" && !name) {
111
- throw new Error(`Invalid principal: ${address}`);
112
- }
113
- return new PartialPcWithPrincipal(address);
114
- },
115
- origin() {
116
- return new PartialPcWithPrincipal("origin");
117
- }
118
- };
2
+ Pc
3
+ } from "../../shared/stacks-yfveb68e.js";
4
+ import"../../shared/stacks-gjvbq6w7.js";
5
+ import"../../shared/stacks-nqytwfcc.js";
119
6
  export {
120
7
  Pc
121
8
  };
122
- export { Pc };
123
9
 
124
- //# debugId=3BA550F555999C6364756E2164756E21
10
+ //# debugId=8DC03AD5E3AAB49564756E2164756E21
125
11
  //# sourceMappingURL=index.js.map
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/postconditions/builder.ts"],
3
+ "sources": [],
4
4
  "sourcesContent": [
5
- "import { intToBigInt, type IntegerType } from \"../utils/encoding.ts\";\nimport { validateStacksAddress, parseContractId } from \"../utils/address.ts\";\nimport type { ClarityValue } from \"../clarity/types.ts\";\nimport type {\n StxPostCondition,\n FtPostCondition,\n NftPostCondition,\n FungibleComparator,\n NonFungibleComparator,\n} from \"./types.ts\";\n\nclass PartialPcWithPrincipal {\n constructor(private address: string) {}\n\n willSendEq(amount: IntegerType) {\n return new PartialPcFtWithCode(this.address, amount, \"eq\");\n }\n willSendGte(amount: IntegerType) {\n return new PartialPcFtWithCode(this.address, amount, \"gte\");\n }\n willSendGt(amount: IntegerType) {\n return new PartialPcFtWithCode(this.address, amount, \"gt\");\n }\n willSendLte(amount: IntegerType) {\n return new PartialPcFtWithCode(this.address, amount, \"lte\");\n }\n willSendLt(amount: IntegerType) {\n return new PartialPcFtWithCode(this.address, amount, \"lt\");\n }\n willSendAsset() {\n return new PartialPcNftWithCode(this.address, \"sent\");\n }\n willNotSendAsset() {\n return new PartialPcNftWithCode(this.address, \"not-sent\");\n }\n}\n\nclass PartialPcFtWithCode {\n constructor(\n private address: string,\n private amount: IntegerType,\n private code: FungibleComparator\n ) {}\n\n ustx(): StxPostCondition {\n return {\n type: \"stx-postcondition\",\n address: this.address,\n condition: this.code,\n amount: intToBigInt(this.amount).toString(),\n };\n }\n\n ft(contractId: string, tokenName: string): FtPostCondition {\n const [address, name] = contractId.split(\".\");\n if (!address || !validateStacksAddress(address) || !name) {\n throw new Error(`Invalid contract id: ${contractId}`);\n }\n return {\n type: \"ft-postcondition\",\n address: this.address,\n condition: this.code,\n amount: intToBigInt(this.amount).toString(),\n asset: `${contractId}::${tokenName}`,\n };\n }\n}\n\nclass PartialPcNftWithCode {\n constructor(\n private address: string,\n private code: NonFungibleComparator\n ) {}\n\n nft(assetOrContractId: string, tokenNameOrAssetId: string | ClarityValue, assetId?: ClarityValue): NftPostCondition {\n let contractAddress: string;\n let contractName: string;\n let tokenName: string;\n let id: ClarityValue;\n\n if (assetId !== undefined) {\n // 3 args: contractId, tokenName, assetId\n [contractAddress, contractName] = parseContractId(assetOrContractId);\n tokenName = tokenNameOrAssetId as string;\n id = assetId;\n } else {\n // 2 args: assetString (addr.contract::token), assetId\n const [principal, tName] = assetOrContractId.split(\"::\");\n if (!principal || !tName) throw new Error(`Invalid asset name: ${assetOrContractId}`);\n [contractAddress, contractName] = parseContractId(principal);\n tokenName = tName;\n id = tokenNameOrAssetId as ClarityValue;\n }\n\n if (!validateStacksAddress(contractAddress)) {\n throw new Error(`Invalid contract address: ${contractAddress}`);\n }\n\n return {\n type: \"nft-postcondition\",\n address: this.address,\n condition: this.code,\n asset: `${contractAddress}.${contractName}::${tokenName}`,\n assetId: id,\n };\n }\n}\n\nexport const Pc = {\n principal(address: string) {\n const [addr, name] = address.split(\".\");\n if (!addr || !validateStacksAddress(addr) || (typeof name === \"string\" && !name)) {\n throw new Error(`Invalid principal: ${address}`);\n }\n return new PartialPcWithPrincipal(address);\n },\n origin() {\n return new PartialPcWithPrincipal(\"origin\");\n },\n};\n"
6
5
  ],
7
- "mappings": "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",
8
- "debugId": "3BA550F555999C6364756E2164756E21",
6
+ "mappings": "",
7
+ "debugId": "8DC03AD5E3AAB49564756E2164756E21",
9
8
  "names": []
10
9
  }
@@ -742,17 +742,17 @@ function getPoxContract(client) {
742
742
  }
743
743
  async function getPoxInfo(client) {
744
744
  const pox = getPoxContract(client);
745
- return await pox.read["get-pox-info"]({});
745
+ return await pox.read.getPoxInfo({});
746
746
  }
747
747
  async function getStackerInfo(client, address) {
748
748
  const pox = getPoxContract(client);
749
- return await pox.read["get-stacker-info"]({
749
+ return await pox.read.getStackerInfo({
750
750
  stacker: address
751
751
  });
752
752
  }
753
753
  async function getDelegationInfo(client, address) {
754
754
  const pox = getPoxContract(client);
755
- return await pox.read["get-delegation-info"]({
755
+ return await pox.read.getDelegationInfo({
756
756
  stacker: address
757
757
  });
758
758
  }
@@ -772,7 +772,7 @@ async function stackStx(client, params) {
772
772
  }
773
773
  const poxAddr = parseBtcAddress(params.btcAddress);
774
774
  const pox = getPoxContract(client);
775
- return pox.call["stack-stx"]({
775
+ return pox.call.stackStx({
776
776
  amountUstx: params.amount,
777
777
  poxAddr,
778
778
  startBurnHt: params.startBurnHeight,
@@ -792,7 +792,7 @@ async function delegateStx(client, params) {
792
792
  throw new Error("Wallet client required");
793
793
  const poxAddr = params.poxAddr ? parseBtcAddress(params.poxAddr) : null;
794
794
  const pox = getPoxContract(client);
795
- return pox.call["delegate-stx"]({
795
+ return pox.call.delegateStx({
796
796
  amountUstx: params.amount,
797
797
  delegateTo: params.delegateTo,
798
798
  untilBurnHt: params.untilBurnHeight ?? null,
@@ -803,7 +803,7 @@ async function revokeDelegateStx(client) {
803
803
  if (!client.account)
804
804
  throw new Error("Wallet client required");
805
805
  const pox = getPoxContract(client);
806
- return pox.call["revoke-delegate-stx"]({});
806
+ return pox.call.revokeDelegateStx({});
807
807
  }
808
808
  async function stackExtend(client, params) {
809
809
  if (!client.account)
@@ -813,7 +813,7 @@ async function stackExtend(client, params) {
813
813
  }
814
814
  const poxAddr = parseBtcAddress(params.btcAddress);
815
815
  const pox = getPoxContract(client);
816
- return pox.call["stack-extend"]({
816
+ return pox.call.stackExtend({
817
817
  extendCount: BigInt(params.extendCount),
818
818
  poxAddr,
819
819
  signerSig: params.signerSig,
@@ -826,7 +826,7 @@ async function stackIncrease(client, params) {
826
826
  if (!client.account)
827
827
  throw new Error("Wallet client required");
828
828
  const pox = getPoxContract(client);
829
- return pox.call["stack-increase"]({
829
+ return pox.call.stackIncrease({
830
830
  increaseBy: params.increaseBy,
831
831
  signerSig: params.signerSig,
832
832
  signerKey: params.signerKey,
@@ -856,5 +856,5 @@ function pox() {
856
856
  });
857
857
  }
858
858
 
859
- //# debugId=24ECD5C842E4DBEA64756E2164756E21
859
+ //# debugId=AE2D7E4FA0EE7A2964756E2164756E21
860
860
  //# sourceMappingURL=index.cjs.map