@secondlayer/stacks 4.3.2 → 5.0.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 (165) hide show
  1. package/README.md +27 -11
  2. package/dist/shared/{stacks-bfan7ex7.js → stacks-4d7c3x27.js} +5 -5
  3. package/dist/shared/{stacks-bfan7ex7.js.map → stacks-4d7c3x27.js.map} +3 -3
  4. package/dist/shared/{stacks-709tra19.js → stacks-4hs8r4q2.js} +16 -2
  5. package/dist/shared/stacks-4hs8r4q2.js.map +10 -0
  6. package/dist/shared/{stacks-w23294am.js → stacks-51ybf135.js} +3 -3
  7. package/dist/shared/{stacks-0jk7vd8r.cjs → stacks-69nq48jp.js} +120 -17
  8. package/dist/shared/stacks-69nq48jp.js.map +15 -0
  9. package/dist/shared/{stacks-8pfdscq6.js → stacks-6gavarmy.js} +37 -9
  10. package/dist/shared/stacks-6gavarmy.js.map +12 -0
  11. package/dist/shared/{stacks-gxq2pbky.js → stacks-71k0vmct.js} +65 -8
  12. package/dist/shared/stacks-71k0vmct.js.map +13 -0
  13. package/dist/shared/{stacks-7wkf2rph.js → stacks-7bqkf3b0.js} +86 -71
  14. package/dist/shared/{stacks-7wkf2rph.js.map → stacks-7bqkf3b0.js.map} +9 -10
  15. package/dist/shared/{stacks-zcpvzbr0.js → stacks-8brgfvqx.js} +3 -3
  16. package/dist/shared/{stacks-4vzmhw3q.cjs → stacks-8vzxax5e.cjs} +13 -3
  17. package/dist/shared/stacks-8vzxax5e.cjs.map +10 -0
  18. package/dist/shared/{stacks-hnqt5rz4.js → stacks-9c1yam8b.js} +3 -3
  19. package/dist/shared/{stacks-bnbdqznq.cjs → stacks-bdgh9n83.cjs} +11 -10
  20. package/dist/shared/{stacks-bnbdqznq.cjs.map → stacks-bdgh9n83.cjs.map} +3 -3
  21. package/dist/shared/{stacks-fb75yew8.js → stacks-db3kwavg.cjs} +346 -138
  22. package/dist/shared/stacks-db3kwavg.cjs.map +23 -0
  23. package/dist/shared/{stacks-jpt52csy.js → stacks-e3nwm1dz.js} +14 -17
  24. package/dist/shared/stacks-e3nwm1dz.js.map +10 -0
  25. package/dist/shared/{stacks-ta1gar0b.cjs → stacks-ee53k9j2.cjs} +62 -6
  26. package/dist/shared/stacks-ee53k9j2.cjs.map +13 -0
  27. package/dist/shared/{stacks-27fmgajb.js → stacks-ga026yxz.js} +9 -9
  28. package/dist/shared/{stacks-27fmgajb.js.map → stacks-ga026yxz.js.map} +3 -3
  29. package/dist/shared/{stacks-nyaw1z2a.cjs → stacks-ggdz96r1.cjs} +4 -4
  30. package/dist/shared/{stacks-nyaw1z2a.cjs.map → stacks-ggdz96r1.cjs.map} +3 -3
  31. package/dist/shared/{stacks-08y0y0t7.js → stacks-gjz26k6b.js} +2 -2
  32. package/dist/shared/{stacks-x5386y2y.cjs → stacks-gza2n1zs.cjs} +5 -5
  33. package/dist/shared/{stacks-x5386y2y.cjs.map → stacks-gza2n1zs.cjs.map} +3 -3
  34. package/dist/shared/{stacks-ztzygy90.js → stacks-mftyrc60.js} +2 -2
  35. package/dist/shared/stacks-n4d8j8q3.js +801 -0
  36. package/dist/shared/stacks-n4d8j8q3.js.map +23 -0
  37. package/dist/shared/{stacks-ycbq8pf7.cjs → stacks-p337hp6m.cjs} +74 -59
  38. package/dist/shared/{stacks-ycbq8pf7.cjs.map → stacks-p337hp6m.cjs.map} +9 -10
  39. package/dist/shared/{stacks-ttdk2g2f.js → stacks-s5vej5z6.cjs} +92 -41
  40. package/dist/shared/stacks-s5vej5z6.cjs.map +15 -0
  41. package/dist/shared/stacks-sdqkapct.cjs +67 -0
  42. package/dist/shared/stacks-sdqkapct.cjs.map +12 -0
  43. package/dist/shared/{stacks-1arrcd11.js → stacks-v2rfr46a.js} +2 -2
  44. package/dist/shared/{stacks-9mqveyjv.cjs → stacks-w9t61fra.cjs} +7 -10
  45. package/dist/shared/stacks-w9t61fra.cjs.map +10 -0
  46. package/dist/shared/{stacks-tjjnkt3r.js → stacks-wxfd6r4b.js} +2 -2
  47. package/dist/shared/{stacks-4z72akdf.js → stacks-x0qqwrev.js} +3 -3
  48. package/dist/shared/{stacks-gck1sq7h.cjs → stacks-xjkn3en1.cjs} +16 -2
  49. package/dist/shared/stacks-xjkn3en1.cjs.map +10 -0
  50. package/dist/shared/stacks-xnrywjf1.cjs +131 -0
  51. package/dist/shared/stacks-xnrywjf1.cjs.map +11 -0
  52. package/dist/shared/stacks-yajyej2y.js +139 -0
  53. package/dist/shared/stacks-yajyej2y.js.map +11 -0
  54. package/dist/shared/{stacks-913a2rx7.js → stacks-yvb7rvwk.js} +13 -3
  55. package/dist/shared/stacks-yvb7rvwk.js.map +10 -0
  56. package/dist/shared/{stacks-0cdm20eh.js → stacks-z90xdr1x.js} +7 -11
  57. package/dist/shared/{stacks-0cdm20eh.js.map → stacks-z90xdr1x.js.map} +3 -3
  58. package/dist/src/accounts/index.js +2 -3
  59. package/dist/src/accounts/index.js.map +2 -2
  60. package/dist/src/actions/index.cjs +2 -1
  61. package/dist/src/actions/index.cjs.map +1 -1
  62. package/dist/src/actions/index.d.cts +108 -20
  63. package/dist/src/actions/index.d.ts +108 -20
  64. package/dist/src/actions/index.js +17 -15
  65. package/dist/src/actions/index.js.map +1 -1
  66. package/dist/src/bitcoin/index.d.cts +27 -0
  67. package/dist/src/bitcoin/index.d.ts +27 -0
  68. package/dist/src/bitcoin/index.js +10 -11
  69. package/dist/src/bitcoin/index.js.map +2 -2
  70. package/dist/src/bns/index.d.cts +27 -0
  71. package/dist/src/bns/index.d.ts +27 -0
  72. package/dist/src/bns/index.js +13 -13
  73. package/dist/src/bns/index.js.map +1 -1
  74. package/dist/src/clarity/index.js +7 -6
  75. package/dist/src/clarity/index.js.map +1 -1
  76. package/dist/src/connect/index.cjs +44 -30
  77. package/dist/src/connect/index.cjs.map +7 -7
  78. package/dist/src/connect/index.d.cts +16 -1
  79. package/dist/src/connect/index.d.ts +16 -1
  80. package/dist/src/connect/index.js +44 -30
  81. package/dist/src/connect/index.js.map +7 -7
  82. package/dist/src/connect/walletconnect/index.cjs +49 -413
  83. package/dist/src/connect/walletconnect/index.cjs.map +4 -4
  84. package/dist/src/connect/walletconnect/index.js +47 -411
  85. package/dist/src/connect/walletconnect/index.js.map +4 -4
  86. package/dist/src/filters/index.js +2 -2
  87. package/dist/src/index.cjs +49 -124
  88. package/dist/src/index.cjs.map +6 -8
  89. package/dist/src/index.d.cts +163 -54
  90. package/dist/src/index.d.ts +163 -54
  91. package/dist/src/index.js +79 -147
  92. package/dist/src/index.js.map +6 -8
  93. package/dist/src/postconditions/index.js +6 -5
  94. package/dist/src/postconditions/index.js.map +1 -1
  95. package/dist/src/pox/index.cjs +7 -83
  96. package/dist/src/pox/index.cjs.map +3 -3
  97. package/dist/src/pox/index.d.cts +32 -1
  98. package/dist/src/pox/index.d.ts +32 -1
  99. package/dist/src/pox/index.js +22 -102
  100. package/dist/src/pox/index.js.map +3 -3
  101. package/dist/src/pox5/index.cjs +4 -112
  102. package/dist/src/pox5/index.cjs.map +3 -4
  103. package/dist/src/pox5/index.d.cts +27 -0
  104. package/dist/src/pox5/index.d.ts +27 -0
  105. package/dist/src/pox5/index.js +20 -131
  106. package/dist/src/pox5/index.js.map +3 -4
  107. package/dist/src/sbtc/index.cjs +2 -27
  108. package/dist/src/sbtc/index.cjs.map +3 -3
  109. package/dist/src/sbtc/index.d.cts +30 -2
  110. package/dist/src/sbtc/index.d.ts +30 -2
  111. package/dist/src/sbtc/index.js +15 -45
  112. package/dist/src/sbtc/index.js.map +3 -3
  113. package/dist/src/stackingdao/index.d.cts +27 -0
  114. package/dist/src/stackingdao/index.d.ts +27 -0
  115. package/dist/src/stackingdao/index.js +11 -11
  116. package/dist/src/stackingdao/index.js.map +1 -1
  117. package/dist/src/subscriptions/index.d.cts +27 -0
  118. package/dist/src/subscriptions/index.d.ts +27 -0
  119. package/dist/src/subscriptions/index.js +2 -2
  120. package/dist/src/tools/btc/index.cjs.map +2 -2
  121. package/dist/src/tools/btc/index.js.map +2 -2
  122. package/dist/src/tools/index.cjs +629 -392
  123. package/dist/src/tools/index.cjs.map +30 -28
  124. package/dist/src/tools/index.d.cts +44 -0
  125. package/dist/src/tools/index.d.ts +44 -0
  126. package/dist/src/tools/index.js +628 -391
  127. package/dist/src/tools/index.js.map +30 -28
  128. package/dist/src/transactions/index.js +6 -5
  129. package/dist/src/transactions/index.js.map +1 -1
  130. package/dist/src/utils/index.d.cts +2 -5
  131. package/dist/src/utils/index.d.ts +2 -5
  132. package/dist/src/utils/index.js +2 -2
  133. package/package.json +18 -7
  134. package/dist/shared/stacks-0eatsx6d.cjs +0 -25
  135. package/dist/shared/stacks-0eatsx6d.cjs.map +0 -10
  136. package/dist/shared/stacks-0jk7vd8r.cjs.map +0 -14
  137. package/dist/shared/stacks-4vzmhw3q.cjs.map +0 -10
  138. package/dist/shared/stacks-5nmz5ad9.js +0 -409
  139. package/dist/shared/stacks-5nmz5ad9.js.map +0 -10
  140. package/dist/shared/stacks-709tra19.js.map +0 -10
  141. package/dist/shared/stacks-8pfdscq6.js.map +0 -12
  142. package/dist/shared/stacks-913a2rx7.js.map +0 -10
  143. package/dist/shared/stacks-9mqveyjv.cjs.map +0 -10
  144. package/dist/shared/stacks-e4xn4m7j.js +0 -27
  145. package/dist/shared/stacks-e4xn4m7j.js.map +0 -10
  146. package/dist/shared/stacks-fb75yew8.js.map +0 -21
  147. package/dist/shared/stacks-gck1sq7h.cjs.map +0 -10
  148. package/dist/shared/stacks-gxq2pbky.js.map +0 -13
  149. package/dist/shared/stacks-jpt52csy.js.map +0 -10
  150. package/dist/shared/stacks-mnnhpex3.cjs +0 -407
  151. package/dist/shared/stacks-mnnhpex3.cjs.map +0 -10
  152. package/dist/shared/stacks-ta1gar0b.cjs.map +0 -13
  153. package/dist/shared/stacks-tdsp5gsb.cjs +0 -527
  154. package/dist/shared/stacks-tdsp5gsb.cjs.map +0 -21
  155. package/dist/shared/stacks-ttdk2g2f.js.map +0 -14
  156. package/dist/shared/stacks-wdp5yr8n.cjs +0 -39
  157. package/dist/shared/stacks-wdp5yr8n.cjs.map +0 -12
  158. /package/dist/shared/{stacks-w23294am.js.map → stacks-51ybf135.js.map} +0 -0
  159. /package/dist/shared/{stacks-zcpvzbr0.js.map → stacks-8brgfvqx.js.map} +0 -0
  160. /package/dist/shared/{stacks-hnqt5rz4.js.map → stacks-9c1yam8b.js.map} +0 -0
  161. /package/dist/shared/{stacks-08y0y0t7.js.map → stacks-gjz26k6b.js.map} +0 -0
  162. /package/dist/shared/{stacks-ztzygy90.js.map → stacks-mftyrc60.js.map} +0 -0
  163. /package/dist/shared/{stacks-1arrcd11.js.map → stacks-v2rfr46a.js.map} +0 -0
  164. /package/dist/shared/{stacks-tjjnkt3r.js.map → stacks-wxfd6r4b.js.map} +0 -0
  165. /package/dist/shared/{stacks-4z72akdf.js.map → stacks-x0qqwrev.js.map} +0 -0
@@ -37,6 +37,15 @@ type NonceManager = {
37
37
  client: Client
38
38
  address: string
39
39
  }): void | Promise<void>
40
+ /**
41
+ * Give back a nonce from {@link NonceManager.consume} whose transaction
42
+ * was never accepted by the node. No-op unless it is the latest issued.
43
+ */
44
+ release(params: {
45
+ client: Client
46
+ address: string
47
+ nonce: bigint
48
+ }): void | Promise<void>
40
49
  /** Next nonce that {@link NonceManager.consume} would return without consuming it, or `undefined` if untracked. */
41
50
  peek(params: {
42
51
  client: Client
@@ -92,14 +101,32 @@ type RequestOptions = {
92
101
  method?: "GET" | "POST" | "PUT" | "DELETE"
93
102
  body?: unknown
94
103
  headers?: Record<string, string>
104
+ /**
105
+ * Cancel the request from the caller's side. An aborted signal rejects
106
+ * with the signal's reason immediately and never retries; it is combined
107
+ * with the transport's own per-attempt timeout.
108
+ */
109
+ signal?: AbortSignal
110
+ /**
111
+ * Override the transport's retry budget for this one request. Broadcasts
112
+ * pass `0`: re-sending a transaction the node may already hold trades a
113
+ * transient failure for a confusing nonce conflict.
114
+ */
115
+ retryCount?: number
95
116
  };
96
117
  /** Shared configuration for all transport types. */
97
118
  type TransportConfig = {
98
119
  url?: string
120
+ /**
121
+ * Per-attempt deadline in ms covering headers AND body. A stalled body
122
+ * rejects with `TimeoutError` instead of hanging. Default 30_000.
123
+ */
99
124
  timeout?: number
100
125
  retryCount?: number
101
126
  retryDelay?: number
102
127
  fetchOptions?: RequestInit
128
+ /** Sent as `x-api-key`. Held in the request closure and stripped from
129
+ * `Transport.config` so it never prints with the client. */
103
130
  apiKey?: string
104
131
  };
105
132
  /** A resolved transport instance with a bound request function. */
@@ -654,8 +681,12 @@ declare const POX_ADDRESS_VERSION: {
654
681
  readonly p2tr: 0x06
655
682
  };
656
683
  /**
657
- * Parse a Bitcoin address string into a PoX address tuple.
684
+ * Parse a Bitcoin address string into a frozen-pox `PoxAddress` tuple
685
+ * (`buff 1` version, `buff 32` zero-padded hashbytes).
658
686
  * Supports P2PKH, P2SH, P2WPKH, P2WSH, P2TR (mainnet and testnet).
687
+ *
688
+ * Decoding lives in `pox5/btcAddress.ts`, which verifies the base58check
689
+ * checksum on legacy addresses; this wrapper only pads to the pox-4 shape.
659
690
  */
660
691
  declare function parseBtcAddress(address: string): PoxAddress;
661
692
  /** Validate lock period is within allowed range (1-12). */
@@ -37,6 +37,15 @@ type NonceManager = {
37
37
  client: Client
38
38
  address: string
39
39
  }): void | Promise<void>
40
+ /**
41
+ * Give back a nonce from {@link NonceManager.consume} whose transaction
42
+ * was never accepted by the node. No-op unless it is the latest issued.
43
+ */
44
+ release(params: {
45
+ client: Client
46
+ address: string
47
+ nonce: bigint
48
+ }): void | Promise<void>
40
49
  /** Next nonce that {@link NonceManager.consume} would return without consuming it, or `undefined` if untracked. */
41
50
  peek(params: {
42
51
  client: Client
@@ -92,14 +101,32 @@ type RequestOptions = {
92
101
  method?: "GET" | "POST" | "PUT" | "DELETE"
93
102
  body?: unknown
94
103
  headers?: Record<string, string>
104
+ /**
105
+ * Cancel the request from the caller's side. An aborted signal rejects
106
+ * with the signal's reason immediately and never retries; it is combined
107
+ * with the transport's own per-attempt timeout.
108
+ */
109
+ signal?: AbortSignal
110
+ /**
111
+ * Override the transport's retry budget for this one request. Broadcasts
112
+ * pass `0`: re-sending a transaction the node may already hold trades a
113
+ * transient failure for a confusing nonce conflict.
114
+ */
115
+ retryCount?: number
95
116
  };
96
117
  /** Shared configuration for all transport types. */
97
118
  type TransportConfig = {
98
119
  url?: string
120
+ /**
121
+ * Per-attempt deadline in ms covering headers AND body. A stalled body
122
+ * rejects with `TimeoutError` instead of hanging. Default 30_000.
123
+ */
99
124
  timeout?: number
100
125
  retryCount?: number
101
126
  retryDelay?: number
102
127
  fetchOptions?: RequestInit
128
+ /** Sent as `x-api-key`. Held in the request closure and stripped from
129
+ * `Transport.config` so it never prints with the client. */
103
130
  apiKey?: string
104
131
  };
105
132
  /** A resolved transport instance with a bound request function. */
@@ -654,8 +681,12 @@ declare const POX_ADDRESS_VERSION: {
654
681
  readonly p2tr: 0x06
655
682
  };
656
683
  /**
657
- * Parse a Bitcoin address string into a PoX address tuple.
684
+ * Parse a Bitcoin address string into a frozen-pox `PoxAddress` tuple
685
+ * (`buff 1` version, `buff 32` zero-padded hashbytes).
658
686
  * Supports P2PKH, P2SH, P2WPKH, P2WSH, P2TR (mainnet and testnet).
687
+ *
688
+ * Decoding lives in `pox5/btcAddress.ts`, which verifies the base58check
689
+ * checksum on legacy addresses; this wrapper only pads to the pox-4 shape.
659
690
  */
660
691
  declare function parseBtcAddress(address: string): PoxAddress;
661
692
  /** Validate lock period is within allowed range (1-12). */
@@ -2,30 +2,26 @@ import {
2
2
  MAX_LOCK_PERIOD,
3
3
  MIN_LOCK_PERIOD,
4
4
  POX_ADDRESS_VERSION,
5
- POX_CONTRACTS
6
- } from "../../shared/stacks-e4xn4m7j.js";
7
- import {
8
- bech32,
9
- bech32m
10
- } from "../../shared/stacks-5nmz5ad9.js";
5
+ POX_CONTRACTS,
6
+ parseBtcAddress
7
+ } from "../../shared/stacks-yajyej2y.js";
8
+ import"../../shared/stacks-z90xdr1x.js";
11
9
  import {
12
10
  getContract,
13
11
  resolveNetworkContract
14
- } from "../../shared/stacks-jpt52csy.js";
15
- import"../../shared/stacks-fb75yew8.js";
16
- import"../../shared/stacks-27fmgajb.js";
17
- import"../../shared/stacks-709tra19.js";
18
- import"../../shared/stacks-4z72akdf.js";
12
+ } from "../../shared/stacks-e3nwm1dz.js";
13
+ import"../../shared/stacks-n4d8j8q3.js";
14
+ import"../../shared/stacks-ga026yxz.js";
15
+ import"../../shared/stacks-x0qqwrev.js";
19
16
  import {
20
17
  Pc
21
- } from "../../shared/stacks-zcpvzbr0.js";
22
- import"../../shared/stacks-hnqt5rz4.js";
23
- import"../../shared/stacks-w23294am.js";
24
- import"../../shared/stacks-ttdk2g2f.js";
25
- import"../../shared/stacks-bfan7ex7.js";
26
- import {
27
- hexToBytes
28
- } from "../../shared/stacks-qs5fzts5.js";
18
+ } from "../../shared/stacks-8brgfvqx.js";
19
+ import"../../shared/stacks-9c1yam8b.js";
20
+ import"../../shared/stacks-51ybf135.js";
21
+ import"../../shared/stacks-69nq48jp.js";
22
+ import"../../shared/stacks-4hs8r4q2.js";
23
+ import"../../shared/stacks-4d7c3x27.js";
24
+ import"../../shared/stacks-qs5fzts5.js";
29
25
 
30
26
  // src/pox/abi.ts
31
27
  var POX_ABI = {
@@ -273,84 +269,8 @@ var POX_ABI = {
273
269
  };
274
270
 
275
271
  // src/pox/utils.ts
276
- var BASE58_ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
277
- function base58Decode(str) {
278
- let num = 0n;
279
- for (const char of str) {
280
- const idx = BASE58_ALPHABET.indexOf(char);
281
- if (idx === -1)
282
- throw new Error(`Invalid base58 character: ${char}`);
283
- num = num * 58n + BigInt(idx);
284
- }
285
- const hex = num.toString(16).padStart(2, "0");
286
- const padded = hex.length % 2 ? `0${hex}` : hex;
287
- const rawBytes = hexToBytes(padded);
288
- let leadingZeros = 0;
289
- for (const char of str) {
290
- if (char === "1")
291
- leadingZeros++;
292
- else
293
- break;
294
- }
295
- const result = new Uint8Array(leadingZeros + rawBytes.length);
296
- result.set(rawBytes, leadingZeros);
297
- return result;
298
- }
299
- function parseBtcAddress(address) {
300
- if (address.startsWith("bc1") || address.startsWith("tb1") || address.startsWith("bcrt1")) {
301
- return parseSegwitAddress(address);
302
- }
303
- return parseLegacyAddress(address);
304
- }
305
- function parseSegwitAddress(address) {
306
- let decoded;
307
- try {
308
- decoded = bech32.decode(address);
309
- } catch {
310
- decoded = bech32m.decode(address);
311
- }
312
- const witnessVersion = decoded.words[0];
313
- const data = bech32.fromWords(decoded.words.slice(1));
314
- const hashbytes = new Uint8Array(data);
315
- let version;
316
- if (witnessVersion === 0) {
317
- if (hashbytes.length === 20) {
318
- version = POX_ADDRESS_VERSION.p2wpkh;
319
- } else if (hashbytes.length === 32) {
320
- version = POX_ADDRESS_VERSION.p2wsh;
321
- } else {
322
- throw new Error(`Invalid witness v0 program length: ${hashbytes.length}`);
323
- }
324
- } else if (witnessVersion === 1) {
325
- if (hashbytes.length !== 32) {
326
- throw new Error(`Invalid witness v1 program length: ${hashbytes.length}`);
327
- }
328
- version = POX_ADDRESS_VERSION.p2tr;
329
- } else {
330
- throw new Error(`Unsupported witness version: ${witnessVersion}`);
331
- }
332
- const padded = new Uint8Array(32);
333
- padded.set(hashbytes);
334
- return {
335
- version: new Uint8Array([version]),
336
- hashbytes: padded
337
- };
338
- }
339
- function parseLegacyAddress(address) {
340
- const decoded = base58Decode(address);
341
- if (decoded.length !== 25) {
342
- throw new Error(`Invalid legacy address length: ${decoded.length}`);
343
- }
344
- const versionByte = decoded[0];
345
- const hashbytes = decoded.slice(1, 21);
346
- let version;
347
- if (versionByte === 0 || versionByte === 111) {
348
- version = POX_ADDRESS_VERSION.p2pkh;
349
- } else if (versionByte === 5 || versionByte === 196) {
350
- version = POX_ADDRESS_VERSION.p2sh;
351
- } else {
352
- throw new Error(`Unknown legacy address version byte: 0x${versionByte.toString(16)}`);
353
- }
272
+ function parseBtcAddress2(address) {
273
+ const { version, hashbytes } = parseBtcAddress(address);
354
274
  const padded = new Uint8Array(32);
355
275
  padded.set(hashbytes);
356
276
  return {
@@ -408,7 +328,7 @@ async function stackStx(client, params) {
408
328
  if (params.amount < info.minAmountUstx) {
409
329
  throw new Error(`Amount below minimum: ${info.minAmountUstx}`);
410
330
  }
411
- const poxAddr = parseBtcAddress(params.btcAddress);
331
+ const poxAddr = parseBtcAddress2(params.btcAddress);
412
332
  const pox = getPoxContract(client);
413
333
  return pox.call.stackStx({
414
334
  amountUstx: params.amount,
@@ -428,7 +348,7 @@ async function stackStx(client, params) {
428
348
  async function delegateStx(client, params) {
429
349
  if (!client.account)
430
350
  throw new Error("Wallet client required");
431
- const poxAddr = params.poxAddr ? parseBtcAddress(params.poxAddr) : null;
351
+ const poxAddr = params.poxAddr ? parseBtcAddress2(params.poxAddr) : null;
432
352
  const pox = getPoxContract(client);
433
353
  return pox.call.delegateStx({
434
354
  amountUstx: params.amount,
@@ -449,7 +369,7 @@ async function stackExtend(client, params) {
449
369
  if (!validateLockPeriod(params.extendCount)) {
450
370
  throw new Error("Extend count must be 1-12 cycles");
451
371
  }
452
- const poxAddr = parseBtcAddress(params.btcAddress);
372
+ const poxAddr = parseBtcAddress2(params.btcAddress);
453
373
  const pox = getPoxContract(client);
454
374
  return pox.call.stackExtend({
455
375
  extendCount: BigInt(params.extendCount),
@@ -497,7 +417,7 @@ export {
497
417
  validateLockPeriod,
498
418
  rewardCycleToBurnHeight,
499
419
  pox,
500
- parseBtcAddress,
420
+ parseBtcAddress2 as parseBtcAddress,
501
421
  burnHeightToRewardCycle,
502
422
  POX_CONTRACTS,
503
423
  POX_ADDRESS_VERSION,
@@ -506,5 +426,5 @@ export {
506
426
  MAX_LOCK_PERIOD
507
427
  };
508
428
 
509
- //# debugId=6E990558E44793CE64756E2164756E21
429
+ //# debugId=BAB56A4B32E85C8964756E2164756E21
510
430
  //# sourceMappingURL=index.js.map
@@ -3,11 +3,11 @@
3
3
  "sources": ["../src/pox/abi.ts", "../src/pox/utils.ts", "../src/pox/actions.ts", "../src/pox/index.ts"],
4
4
  "sourcesContent": [
5
5
  "import type { AbiContract } from \"../clarity/abi/contract.ts\";\n\n// NOTE: ABI fragments are written out at each use site rather than shared via a\n// module-local const. bunup's dts emitter cannot express a reference to a\n// non-exported const — it drops the `type` property entirely (and collapses it\n// to `{}` if the const is exported), so the SHIPPED types were malformed while\n// the source type-checked clean. Verbose here beats broken for consumers.\n\nexport const POX_ABI = {\n\tfunctions: [\n\t\t// Read-only\n\t\t{\n\t\t\tname: \"get-pox-info\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [],\n\t\t\toutputs: {\n\t\t\t\tresponse: {\n\t\t\t\t\tok: {\n\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t{ name: \"reward-cycle-id\", type: \"uint128\" },\n\t\t\t\t\t\t\t{ name: \"min-amount-ustx\", type: \"uint128\" },\n\t\t\t\t\t\t\t{ name: \"prepare-cycle-length\", type: \"uint128\" },\n\t\t\t\t\t\t\t{ name: \"first-burnchain-block-height\", type: \"uint128\" },\n\t\t\t\t\t\t\t{ name: \"reward-cycle-length\", type: \"uint128\" },\n\t\t\t\t\t\t\t{ name: \"total-liquid-supply-ustx\", type: \"uint128\" },\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\terror: \"none\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"get-stacker-info\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [{ name: \"stacker\", type: \"principal\" }],\n\t\t\toutputs: {\n\t\t\t\toptional: {\n\t\t\t\t\ttuple: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"pox-addr\",\n\t\t\t\t\t\t\ttype: {\n\t\t\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t\t\t{ name: \"version\", type: { buff: { length: 1 } } },\n\t\t\t\t\t\t\t\t\t{ name: \"hashbytes\", type: { buff: { length: 32 } } },\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{ name: \"lock-period\", type: \"uint128\" },\n\t\t\t\t\t\t{ name: \"first-reward-cycle\", type: \"uint128\" },\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"reward-set-indexes\",\n\t\t\t\t\t\t\ttype: { list: { type: \"uint128\", length: 12 } },\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{ name: \"delegated-to\", type: { optional: \"principal\" } },\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"get-delegation-info\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [{ name: \"stacker\", type: \"principal\" }],\n\t\t\toutputs: {\n\t\t\t\toptional: {\n\t\t\t\t\ttuple: [\n\t\t\t\t\t\t{ name: \"amount-ustx\", type: \"uint128\" },\n\t\t\t\t\t\t{ name: \"delegated-to\", type: \"principal\" },\n\t\t\t\t\t\t{ name: \"until-burn-ht\", type: { optional: \"uint128\" } },\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"pox-addr\",\n\t\t\t\t\t\t\ttype: {\n\t\t\t\t\t\t\t\toptional: {\n\t\t\t\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t\t\t\t{ name: \"version\", type: { buff: { length: 1 } } },\n\t\t\t\t\t\t\t\t\t\t{ name: \"hashbytes\", type: { buff: { length: 32 } } },\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"can-stack-stx\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [\n\t\t\t\t{\n\t\t\t\t\tname: \"pox-addr\",\n\t\t\t\t\ttype: {\n\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t{ name: \"version\", type: { buff: { length: 1 } } },\n\t\t\t\t\t\t\t{ name: \"hashbytes\", type: { buff: { length: 32 } } },\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{ name: \"amount-ustx\", type: \"uint128\" },\n\t\t\t\t{ name: \"first-reward-cycle\", type: \"uint128\" },\n\t\t\t\t{ name: \"num-cycles\", type: \"uint128\" },\n\t\t\t],\n\t\t\toutputs: { response: { ok: \"bool\", error: \"int128\" } },\n\t\t},\n\n\t\t// Public\n\t\t{\n\t\t\tname: \"stack-stx\",\n\t\t\taccess: \"public\",\n\t\t\targs: [\n\t\t\t\t{ name: \"amount-ustx\", type: \"uint128\" },\n\t\t\t\t{\n\t\t\t\t\tname: \"pox-addr\",\n\t\t\t\t\ttype: {\n\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t{ name: \"version\", type: { buff: { length: 1 } } },\n\t\t\t\t\t\t\t{ name: \"hashbytes\", type: { buff: { length: 32 } } },\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{ name: \"start-burn-ht\", type: \"uint128\" },\n\t\t\t\t{ name: \"lock-period\", type: \"uint128\" },\n\t\t\t\t{\n\t\t\t\t\tname: \"signer-sig\",\n\t\t\t\t\ttype: { optional: { buff: { length: 65 } } },\n\t\t\t\t},\n\t\t\t\t{ name: \"signer-key\", type: { buff: { length: 33 } } },\n\t\t\t\t{ name: \"max-amount\", type: \"uint128\" },\n\t\t\t\t{ name: \"auth-id\", type: \"uint128\" },\n\t\t\t],\n\t\t\toutputs: {\n\t\t\t\tresponse: {\n\t\t\t\t\tok: {\n\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t{ name: \"stacker\", type: \"principal\" },\n\t\t\t\t\t\t\t{ name: \"lock-amount\", type: \"uint128\" },\n\t\t\t\t\t\t\t{ name: \"signer-key\", type: { buff: { length: 33 } } },\n\t\t\t\t\t\t\t{ name: \"unlock-burn-height\", type: \"uint128\" },\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\terror: \"int128\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"delegate-stx\",\n\t\t\taccess: \"public\",\n\t\t\targs: [\n\t\t\t\t{ name: \"amount-ustx\", type: \"uint128\" },\n\t\t\t\t{ name: \"delegate-to\", type: \"principal\" },\n\t\t\t\t{ name: \"until-burn-ht\", type: { optional: \"uint128\" } },\n\t\t\t\t{\n\t\t\t\t\tname: \"pox-addr\",\n\t\t\t\t\ttype: {\n\t\t\t\t\t\toptional: {\n\t\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t\t{ name: \"version\", type: { buff: { length: 1 } } },\n\t\t\t\t\t\t\t\t{ name: \"hashbytes\", type: { buff: { length: 32 } } },\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\toutputs: { response: { ok: \"bool\", error: \"int128\" } },\n\t\t},\n\t\t{\n\t\t\tname: \"revoke-delegate-stx\",\n\t\t\taccess: \"public\",\n\t\t\targs: [],\n\t\t\toutputs: {\n\t\t\t\tresponse: {\n\t\t\t\t\tok: {\n\t\t\t\t\t\toptional: {\n\t\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t\t{ name: \"amount-ustx\", type: \"uint128\" },\n\t\t\t\t\t\t\t\t{ name: \"delegated-to\", type: \"principal\" },\n\t\t\t\t\t\t\t\t{ name: \"until-burn-ht\", type: { optional: \"uint128\" } },\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: \"pox-addr\",\n\t\t\t\t\t\t\t\t\ttype: {\n\t\t\t\t\t\t\t\t\t\toptional: {\n\t\t\t\t\t\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t\t\t\t\t\t{ name: \"version\", type: { buff: { length: 1 } } },\n\t\t\t\t\t\t\t\t\t\t\t\t{ name: \"hashbytes\", type: { buff: { length: 32 } } },\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\terror: \"int128\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"stack-extend\",\n\t\t\taccess: \"public\",\n\t\t\targs: [\n\t\t\t\t{ name: \"extend-count\", type: \"uint128\" },\n\t\t\t\t{\n\t\t\t\t\tname: \"pox-addr\",\n\t\t\t\t\ttype: {\n\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t{ name: \"version\", type: { buff: { length: 1 } } },\n\t\t\t\t\t\t\t{ name: \"hashbytes\", type: { buff: { length: 32 } } },\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: \"signer-sig\",\n\t\t\t\t\ttype: { optional: { buff: { length: 65 } } },\n\t\t\t\t},\n\t\t\t\t{ name: \"signer-key\", type: { buff: { length: 33 } } },\n\t\t\t\t{ name: \"max-amount\", type: \"uint128\" },\n\t\t\t\t{ name: \"auth-id\", type: \"uint128\" },\n\t\t\t],\n\t\t\toutputs: {\n\t\t\t\tresponse: {\n\t\t\t\t\tok: {\n\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t{ name: \"stacker\", type: \"principal\" },\n\t\t\t\t\t\t\t{ name: \"unlock-burn-height\", type: \"uint128\" },\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\terror: \"int128\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"stack-increase\",\n\t\t\taccess: \"public\",\n\t\t\targs: [\n\t\t\t\t{ name: \"increase-by\", type: \"uint128\" },\n\t\t\t\t{\n\t\t\t\t\tname: \"signer-sig\",\n\t\t\t\t\ttype: { optional: { buff: { length: 65 } } },\n\t\t\t\t},\n\t\t\t\t{ name: \"signer-key\", type: { buff: { length: 33 } } },\n\t\t\t\t{ name: \"max-amount\", type: \"uint128\" },\n\t\t\t\t{ name: \"auth-id\", type: \"uint128\" },\n\t\t\t],\n\t\t\toutputs: {\n\t\t\t\tresponse: {\n\t\t\t\t\tok: {\n\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t{ name: \"stacker\", type: \"principal\" },\n\t\t\t\t\t\t\t{ name: \"total-locked\", type: \"uint128\" },\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\terror: \"int128\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t],\n} as const satisfies AbiContract;\n",
6
- "import { bech32, bech32m } from \"@scure/base\";\n\nimport { hexToBytes } from \"../utils/encoding.ts\";\nimport {\n\tMAX_LOCK_PERIOD,\n\tMIN_LOCK_PERIOD,\n\tPOX_ADDRESS_VERSION,\n} from \"./constants.ts\";\nimport type { PoxAddress } from \"./types.ts\";\n\n/**\n * Base58 alphabet (Bitcoin standard).\n * Used for decoding legacy P2PKH and P2SH addresses.\n */\nconst BASE58_ALPHABET =\n\t\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\";\n\nfunction base58Decode(str: string): Uint8Array {\n\tlet num = 0n;\n\tfor (const char of str) {\n\t\tconst idx = BASE58_ALPHABET.indexOf(char);\n\t\tif (idx === -1) throw new Error(`Invalid base58 character: ${char}`);\n\t\tnum = num * 58n + BigInt(idx);\n\t}\n\n\t// Convert bigint to bytes\n\tconst hex = num.toString(16).padStart(2, \"0\");\n\tconst padded = hex.length % 2 ? `0${hex}` : hex;\n\tconst rawBytes = hexToBytes(padded);\n\n\t// Count leading zeros\n\tlet leadingZeros = 0;\n\tfor (const char of str) {\n\t\tif (char === \"1\") leadingZeros++;\n\t\telse break;\n\t}\n\n\tconst result = new Uint8Array(leadingZeros + rawBytes.length);\n\tresult.set(rawBytes, leadingZeros);\n\treturn result;\n}\n\n/**\n * Parse a Bitcoin address string into a PoX address tuple.\n * Supports P2PKH, P2SH, P2WPKH, P2WSH, P2TR (mainnet and testnet).\n */\nexport function parseBtcAddress(address: string): PoxAddress {\n\t// Bech32/Bech32m (segwit / taproot)\n\tif (\n\t\taddress.startsWith(\"bc1\") ||\n\t\taddress.startsWith(\"tb1\") ||\n\t\taddress.startsWith(\"bcrt1\")\n\t) {\n\t\treturn parseSegwitAddress(address);\n\t}\n\n\t// Legacy base58check (P2PKH / P2SH)\n\treturn parseLegacyAddress(address);\n}\n\nfunction parseSegwitAddress(address: string): PoxAddress {\n\t// Try bech32 first (v0), then bech32m (v1+)\n\tlet decoded: { prefix: string; words: number[] };\n\ttry {\n\t\tdecoded = bech32.decode(address as `${string}1${string}`);\n\t} catch {\n\t\tdecoded = bech32m.decode(address as `${string}1${string}`);\n\t}\n\n\t// biome-ignore lint/style/noNonNullAssertion: value is non-null after preceding check or by construction; TS narrowing limitation\n\tconst witnessVersion = decoded.words[0]!;\n\tconst data = bech32.fromWords(decoded.words.slice(1));\n\tconst hashbytes = new Uint8Array(data);\n\n\tlet version: number;\n\tif (witnessVersion === 0) {\n\t\tif (hashbytes.length === 20) {\n\t\t\tversion = POX_ADDRESS_VERSION.p2wpkh;\n\t\t} else if (hashbytes.length === 32) {\n\t\t\tversion = POX_ADDRESS_VERSION.p2wsh;\n\t\t} else {\n\t\t\tthrow new Error(`Invalid witness v0 program length: ${hashbytes.length}`);\n\t\t}\n\t} else if (witnessVersion === 1) {\n\t\tif (hashbytes.length !== 32) {\n\t\t\tthrow new Error(`Invalid witness v1 program length: ${hashbytes.length}`);\n\t\t}\n\t\tversion = POX_ADDRESS_VERSION.p2tr;\n\t} else {\n\t\tthrow new Error(`Unsupported witness version: ${witnessVersion}`);\n\t}\n\n\t// Pad to 32 bytes (PoX requires buff 32 for hashbytes)\n\tconst padded = new Uint8Array(32);\n\tpadded.set(hashbytes);\n\n\treturn {\n\t\tversion: new Uint8Array([version]),\n\t\thashbytes: padded,\n\t};\n}\n\nfunction parseLegacyAddress(address: string): PoxAddress {\n\tconst decoded = base58Decode(address);\n\n\t// base58check: 1 byte version + 20 byte hash + 4 byte checksum = 25 bytes\n\tif (decoded.length !== 25) {\n\t\tthrow new Error(`Invalid legacy address length: ${decoded.length}`);\n\t}\n\n\t// biome-ignore lint/style/noNonNullAssertion: value is non-null after preceding check or by construction; TS narrowing limitation\n\tconst versionByte = decoded[0]!;\n\tconst hashbytes = decoded.slice(1, 21);\n\n\tlet version: number;\n\t// Mainnet P2PKH: 0x00, Testnet P2PKH: 0x6f\n\tif (versionByte === 0x00 || versionByte === 0x6f) {\n\t\tversion = POX_ADDRESS_VERSION.p2pkh;\n\t}\n\t// Mainnet P2SH: 0x05, Testnet P2SH: 0xc4\n\telse if (versionByte === 0x05 || versionByte === 0xc4) {\n\t\tversion = POX_ADDRESS_VERSION.p2sh;\n\t} else {\n\t\tthrow new Error(\n\t\t\t`Unknown legacy address version byte: 0x${versionByte.toString(16)}`,\n\t\t);\n\t}\n\n\t// Pad to 32 bytes\n\tconst padded = new Uint8Array(32);\n\tpadded.set(hashbytes);\n\n\treturn {\n\t\tversion: new Uint8Array([version]),\n\t\thashbytes: padded,\n\t};\n}\n\n/** Validate lock period is within allowed range (1-12). */\nexport function validateLockPeriod(periods: number): boolean {\n\treturn (\n\t\tNumber.isInteger(periods) &&\n\t\tperiods >= MIN_LOCK_PERIOD &&\n\t\tperiods <= MAX_LOCK_PERIOD\n\t);\n}\n\n/** Calculate the reward cycle for a given burn height. */\nexport function burnHeightToRewardCycle(\n\tburnHeight: bigint,\n\tfirstBurnchainBlockHeight: bigint,\n\trewardCycleLength: bigint,\n): bigint {\n\treturn (burnHeight - firstBurnchainBlockHeight) / rewardCycleLength;\n}\n\n/** Calculate the burn height at which a reward cycle starts. */\nexport function rewardCycleToBurnHeight(\n\tcycle: bigint,\n\tfirstBurnchainBlockHeight: bigint,\n\trewardCycleLength: bigint,\n): bigint {\n\treturn firstBurnchainBlockHeight + cycle * rewardCycleLength;\n}\n",
6
+ "import { parseBtcAddress as parseBtcAddressRepr } from \"../pox5/btcAddress.ts\";\nimport { MAX_LOCK_PERIOD, MIN_LOCK_PERIOD } from \"./constants.ts\";\nimport type { PoxAddress } from \"./types.ts\";\n\n/**\n * Parse a Bitcoin address string into a frozen-pox `PoxAddress` tuple\n * (`buff 1` version, `buff 32` zero-padded hashbytes).\n * Supports P2PKH, P2SH, P2WPKH, P2WSH, P2TR (mainnet and testnet).\n *\n * Decoding lives in `pox5/btcAddress.ts`, which verifies the base58check\n * checksum on legacy addresses; this wrapper only pads to the pox-4 shape.\n */\nexport function parseBtcAddress(address: string): PoxAddress {\n\tconst { version, hashbytes } = parseBtcAddressRepr(address);\n\tconst padded = new Uint8Array(32);\n\tpadded.set(hashbytes);\n\treturn {\n\t\tversion: new Uint8Array([version]),\n\t\thashbytes: padded,\n\t};\n}\n\n/** Validate lock period is within allowed range (1-12). */\nexport function validateLockPeriod(periods: number): boolean {\n\treturn (\n\t\tNumber.isInteger(periods) &&\n\t\tperiods >= MIN_LOCK_PERIOD &&\n\t\tperiods <= MAX_LOCK_PERIOD\n\t);\n}\n\n/** Calculate the reward cycle for a given burn height. */\nexport function burnHeightToRewardCycle(\n\tburnHeight: bigint,\n\tfirstBurnchainBlockHeight: bigint,\n\trewardCycleLength: bigint,\n): bigint {\n\treturn (burnHeight - firstBurnchainBlockHeight) / rewardCycleLength;\n}\n\n/** Calculate the burn height at which a reward cycle starts. */\nexport function rewardCycleToBurnHeight(\n\tcycle: bigint,\n\tfirstBurnchainBlockHeight: bigint,\n\trewardCycleLength: bigint,\n): bigint {\n\treturn firstBurnchainBlockHeight + cycle * rewardCycleLength;\n}\n",
7
7
  "import { getContract, resolveNetworkContract } from \"../actions/getContract.ts\";\nimport type { Client } from \"../clients/types.ts\";\nimport { Pc } from \"../postconditions/index.ts\";\nimport { POX_ABI } from \"./abi.ts\";\nimport { POX_CONTRACTS } from \"./constants.ts\";\nimport type {\n\tDelegateStxParams,\n\tDelegationInfo,\n\tPoxInfo,\n\tStackExtendParams,\n\tStackIncreaseParams,\n\tStackStxParams,\n\tStackerInfo,\n} from \"./types.ts\";\nimport { parseBtcAddress, validateLockPeriod } from \"./utils.ts\";\n\nfunction getPoxContract(client: Client) {\n\tconst contract = resolveNetworkContract(client, POX_CONTRACTS);\n\treturn getContract({\n\t\tclient,\n\t\taddress: contract.address,\n\t\tname: contract.name,\n\t\tabi: POX_ABI,\n\t});\n}\n\n/** Query current PoX network info (cycle, minimum, lengths). */\nexport async function getPoxInfo(client: Client): Promise<PoxInfo> {\n\tconst pox = getPoxContract(client);\n\treturn (await pox.read.getPoxInfo({})) as PoxInfo;\n}\n\n/** Get stacker info for an address. Returns null if not stacking. */\nexport async function getStackerInfo(\n\tclient: Client,\n\taddress: string,\n): Promise<StackerInfo | null> {\n\tconst pox = getPoxContract(client);\n\treturn (await pox.read.getStackerInfo({\n\t\tstacker: address,\n\t})) as StackerInfo | null;\n}\n\n/** Get delegation info for an address. Returns null if not delegating. */\nexport async function getDelegationInfo(\n\tclient: Client,\n\taddress: string,\n): Promise<DelegationInfo | null> {\n\tconst pox = getPoxContract(client);\n\treturn (await pox.read.getDelegationInfo({\n\t\tstacker: address,\n\t})) as DelegationInfo | null;\n}\n\n/** Check if an amount meets the minimum stacking threshold. */\nexport async function canStack(\n\tclient: Client,\n\tamount: bigint,\n): Promise<boolean> {\n\tconst info = await getPoxInfo(client);\n\treturn amount >= info.minAmountUstx;\n}\n\n/** Lock STX for stacking (solo). Requires wallet client. */\nexport async function stackStx(\n\tclient: Client,\n\tparams: StackStxParams,\n): Promise<string> {\n\tif (!client.account) throw new Error(\"Wallet client required\");\n\n\tif (!validateLockPeriod(params.lockPeriod)) {\n\t\tthrow new Error(\"Lock period must be 1-12 cycles\");\n\t}\n\n\tconst info = await getPoxInfo(client);\n\tif (params.amount < info.minAmountUstx) {\n\t\tthrow new Error(`Amount below minimum: ${info.minAmountUstx}`);\n\t}\n\n\tconst poxAddr = parseBtcAddress(params.btcAddress);\n\tconst pox = getPoxContract(client);\n\n\treturn pox.call.stackStx(\n\t\t{\n\t\t\tamountUstx: params.amount,\n\t\t\tpoxAddr,\n\t\t\tstartBurnHt: params.startBurnHeight,\n\t\t\tlockPeriod: BigInt(params.lockPeriod),\n\t\t\tsignerSig: params.signerSig,\n\t\t\tsignerKey: params.signerKey,\n\t\t\tmaxAmount: params.maxAmount,\n\t\t\tauthId: params.authId,\n\t\t},\n\t\t{\n\t\t\tpostConditions: [\n\t\t\t\tPc.principal(client.account.address).willSendEq(params.amount).ustx(),\n\t\t\t],\n\t\t},\n\t);\n}\n\n/** Delegate STX to a pool operator. Requires wallet client. */\nexport async function delegateStx(\n\tclient: Client,\n\tparams: DelegateStxParams,\n): Promise<string> {\n\tif (!client.account) throw new Error(\"Wallet client required\");\n\n\tconst poxAddr = params.poxAddr ? parseBtcAddress(params.poxAddr) : null;\n\tconst pox = getPoxContract(client);\n\n\treturn pox.call.delegateStx({\n\t\tamountUstx: params.amount,\n\t\tdelegateTo: params.delegateTo,\n\t\tuntilBurnHt: params.untilBurnHeight ?? null,\n\t\tpoxAddr,\n\t});\n}\n\n/** Revoke an active delegation. Requires wallet client. */\nexport async function revokeDelegateStx(client: Client): Promise<string> {\n\tif (!client.account) throw new Error(\"Wallet client required\");\n\tconst pox = getPoxContract(client);\n\treturn pox.call.revokeDelegateStx({});\n}\n\n/** Extend an active stacking lock. Requires wallet client. */\nexport async function stackExtend(\n\tclient: Client,\n\tparams: StackExtendParams,\n): Promise<string> {\n\tif (!client.account) throw new Error(\"Wallet client required\");\n\n\tif (!validateLockPeriod(params.extendCount)) {\n\t\tthrow new Error(\"Extend count must be 1-12 cycles\");\n\t}\n\n\tconst poxAddr = parseBtcAddress(params.btcAddress);\n\tconst pox = getPoxContract(client);\n\n\treturn pox.call.stackExtend({\n\t\textendCount: BigInt(params.extendCount),\n\t\tpoxAddr,\n\t\tsignerSig: params.signerSig,\n\t\tsignerKey: params.signerKey,\n\t\tmaxAmount: params.maxAmount,\n\t\tauthId: params.authId,\n\t});\n}\n\n/** Increase the amount of locked STX. Requires wallet client. */\nexport async function stackIncrease(\n\tclient: Client,\n\tparams: StackIncreaseParams,\n): Promise<string> {\n\tif (!client.account) throw new Error(\"Wallet client required\");\n\n\tconst pox = getPoxContract(client);\n\n\treturn pox.call.stackIncrease(\n\t\t{\n\t\t\tincreaseBy: params.increaseBy,\n\t\t\tsignerSig: params.signerSig,\n\t\t\tsignerKey: params.signerKey,\n\t\t\tmaxAmount: params.maxAmount,\n\t\t\tauthId: params.authId,\n\t\t},\n\t\t{\n\t\t\tpostConditions: [\n\t\t\t\tPc.principal(client.account.address)\n\t\t\t\t\t.willSendEq(params.increaseBy)\n\t\t\t\t\t.ustx(),\n\t\t\t],\n\t\t},\n\t);\n}\n",
8
8
  "import type { Client } from \"../clients/types.ts\";\nimport {\n\tcanStack,\n\tdelegateStx,\n\tgetDelegationInfo,\n\tgetPoxInfo,\n\tgetStackerInfo,\n\trevokeDelegateStx,\n\tstackExtend,\n\tstackIncrease,\n\tstackStx,\n} from \"./actions.ts\";\nimport type {\n\tDelegateStxParams,\n\tDelegationInfo,\n\tPoxInfo,\n\tStackExtendParams,\n\tStackIncreaseParams,\n\tStackStxParams,\n\tStackerInfo,\n} from \"./types.ts\";\n\nexport type {\n\tStackStxParams,\n\tDelegateStxParams,\n\tStackExtendParams,\n\tStackIncreaseParams,\n\tPoxInfo,\n\tStackerInfo,\n\tDelegationInfo,\n};\nexport type { PoxAddress } from \"./types.ts\";\n/** The pox-4 ABI — `as const`, so a `contract_call` subgraph source that\n * references it gets typed `event.input`. */\nexport { POX_ABI } from \"./abi.ts\";\n\n/** Actions provided by the PoX extension. */\nexport type PoxActions = {\n\tpox: {\n\t\tgetPoxInfo: () => Promise<PoxInfo>;\n\t\tgetStackerInfo: (address: string) => Promise<StackerInfo | null>;\n\t\tgetDelegationInfo: (address: string) => Promise<DelegationInfo | null>;\n\t\tcanStack: (amount: bigint) => Promise<boolean>;\n\t\tstackStx: (params: StackStxParams) => Promise<string>;\n\t\tdelegateStx: (params: DelegateStxParams) => Promise<string>;\n\t\trevokeDelegateStx: () => Promise<string>;\n\t\tstackExtend: (params: StackExtendParams) => Promise<string>;\n\t\tstackIncrease: (params: StackIncreaseParams) => Promise<string>;\n\t};\n};\n\nexport {\n\tPOX_CONTRACTS,\n\tPOX_ADDRESS_VERSION,\n\tMIN_LOCK_PERIOD,\n\tMAX_LOCK_PERIOD,\n} from \"./constants.ts\";\nexport {\n\tparseBtcAddress,\n\tvalidateLockPeriod,\n\tburnHeightToRewardCycle,\n\trewardCycleToBurnHeight,\n} from \"./utils.ts\";\n\n/**\n * PoX stacking extension for Stacks client.\n * Handles STX stacking for Bitcoin rewards (solo + pool delegation).\n *\n * @example\n * import { createWalletClient, http, mainnet } from \"stacks\";\n * import { pox } from \"stacks/pox\";\n *\n * const client = createWalletClient({ ... }).extend(pox());\n *\n * // Delegate to pool\n * await client.pox.delegateStx({\n * amount: 100_000n * 1_000_000n,\n * delegateTo: \"SP2...\",\n * });\n *\n * // Solo stack\n * await client.pox.stackStx({\n * amount: 100_000n * 1_000_000n,\n * btcAddress: \"bc1q...\",\n * lockPeriod: 12,\n * startBurnHeight: 860000n,\n * signerSig: signature,\n * signerKey: publicKey,\n * maxAmount: 100_000_000_000n,\n * authId: 1n,\n * });\n */\nexport function pox(): (client: Client) => PoxActions {\n\treturn (client: Client) => ({\n\t\tpox: {\n\t\t\t/** Query current PoX network info (cycle, minimum, lengths). */\n\t\t\tgetPoxInfo: () => getPoxInfo(client),\n\n\t\t\t/** Get stacker info for an address. Returns null if not stacking. */\n\t\t\tgetStackerInfo: (address: string) => getStackerInfo(client, address),\n\n\t\t\t/** Get delegation info for an address. Returns null if not delegating. */\n\t\t\tgetDelegationInfo: (address: string) =>\n\t\t\t\tgetDelegationInfo(client, address),\n\n\t\t\t/** Check if an amount meets the minimum stacking threshold. */\n\t\t\tcanStack: (amount: bigint) => canStack(client, amount),\n\n\t\t\t/** Lock STX for stacking (solo). */\n\t\t\tstackStx: (params: StackStxParams) => stackStx(client, params),\n\n\t\t\t/** Delegate STX to a pool operator. */\n\t\t\tdelegateStx: (params: DelegateStxParams) => delegateStx(client, params),\n\n\t\t\t/** Revoke an active delegation. */\n\t\t\trevokeDelegateStx: () => revokeDelegateStx(client),\n\n\t\t\t/** Extend an active stacking lock by additional cycles. */\n\t\t\tstackExtend: (params: StackExtendParams) => stackExtend(client, params),\n\n\t\t\t/** Increase the amount of locked STX. */\n\t\t\tstackIncrease: (params: StackIncreaseParams) =>\n\t\t\t\tstackIncrease(client, params),\n\t\t},\n\t});\n}\n"
9
9
  ],
10
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQO,IAAM,UAAU;AAAA,EACtB,WAAW;AAAA,IAEV;AAAA,MACC,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM,CAAC;AAAA,MACP,SAAS;AAAA,QACR,UAAU;AAAA,UACT,IAAI;AAAA,YACH,OAAO;AAAA,cACN,EAAE,MAAM,mBAAmB,MAAM,UAAU;AAAA,cAC3C,EAAE,MAAM,mBAAmB,MAAM,UAAU;AAAA,cAC3C,EAAE,MAAM,wBAAwB,MAAM,UAAU;AAAA,cAChD,EAAE,MAAM,gCAAgC,MAAM,UAAU;AAAA,cACxD,EAAE,MAAM,uBAAuB,MAAM,UAAU;AAAA,cAC/C,EAAE,MAAM,4BAA4B,MAAM,UAAU;AAAA,YACrD;AAAA,UACD;AAAA,UACA,OAAO;AAAA,QACR;AAAA,MACD;AAAA,IACD;AAAA,IACA;AAAA,MACC,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM,CAAC,EAAE,MAAM,WAAW,MAAM,YAAY,CAAC;AAAA,MAC7C,SAAS;AAAA,QACR,UAAU;AAAA,UACT,OAAO;AAAA,YACN;AAAA,cACC,MAAM;AAAA,cACN,MAAM;AAAA,gBACL,OAAO;AAAA,kBACN,EAAE,MAAM,WAAW,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;AAAA,kBACjD,EAAE,MAAM,aAAa,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE;AAAA,gBACrD;AAAA,cACD;AAAA,YACD;AAAA,YACA,EAAE,MAAM,eAAe,MAAM,UAAU;AAAA,YACvC,EAAE,MAAM,sBAAsB,MAAM,UAAU;AAAA,YAC9C;AAAA,cACC,MAAM;AAAA,cACN,MAAM,EAAE,MAAM,EAAE,MAAM,WAAW,QAAQ,GAAG,EAAE;AAAA,YAC/C;AAAA,YACA,EAAE,MAAM,gBAAgB,MAAM,EAAE,UAAU,YAAY,EAAE;AAAA,UACzD;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IACA;AAAA,MACC,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM,CAAC,EAAE,MAAM,WAAW,MAAM,YAAY,CAAC;AAAA,MAC7C,SAAS;AAAA,QACR,UAAU;AAAA,UACT,OAAO;AAAA,YACN,EAAE,MAAM,eAAe,MAAM,UAAU;AAAA,YACvC,EAAE,MAAM,gBAAgB,MAAM,YAAY;AAAA,YAC1C,EAAE,MAAM,iBAAiB,MAAM,EAAE,UAAU,UAAU,EAAE;AAAA,YACvD;AAAA,cACC,MAAM;AAAA,cACN,MAAM;AAAA,gBACL,UAAU;AAAA,kBACT,OAAO;AAAA,oBACN,EAAE,MAAM,WAAW,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;AAAA,oBACjD,EAAE,MAAM,aAAa,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE;AAAA,kBACrD;AAAA,gBACD;AAAA,cACD;AAAA,YACD;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IACA;AAAA,MACC,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,QACL;AAAA,UACC,MAAM;AAAA,UACN,MAAM;AAAA,YACL,OAAO;AAAA,cACN,EAAE,MAAM,WAAW,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;AAAA,cACjD,EAAE,MAAM,aAAa,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE;AAAA,YACrD;AAAA,UACD;AAAA,QACD;AAAA,QACA,EAAE,MAAM,eAAe,MAAM,UAAU;AAAA,QACvC,EAAE,MAAM,sBAAsB,MAAM,UAAU;AAAA,QAC9C,EAAE,MAAM,cAAc,MAAM,UAAU;AAAA,MACvC;AAAA,MACA,SAAS,EAAE,UAAU,EAAE,IAAI,QAAQ,OAAO,SAAS,EAAE;AAAA,IACtD;AAAA,IAGA;AAAA,MACC,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,QACL,EAAE,MAAM,eAAe,MAAM,UAAU;AAAA,QACvC;AAAA,UACC,MAAM;AAAA,UACN,MAAM;AAAA,YACL,OAAO;AAAA,cACN,EAAE,MAAM,WAAW,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;AAAA,cACjD,EAAE,MAAM,aAAa,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE;AAAA,YACrD;AAAA,UACD;AAAA,QACD;AAAA,QACA,EAAE,MAAM,iBAAiB,MAAM,UAAU;AAAA,QACzC,EAAE,MAAM,eAAe,MAAM,UAAU;AAAA,QACvC;AAAA,UACC,MAAM;AAAA,UACN,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE;AAAA,QAC5C;AAAA,QACA,EAAE,MAAM,cAAc,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE;AAAA,QACrD,EAAE,MAAM,cAAc,MAAM,UAAU;AAAA,QACtC,EAAE,MAAM,WAAW,MAAM,UAAU;AAAA,MACpC;AAAA,MACA,SAAS;AAAA,QACR,UAAU;AAAA,UACT,IAAI;AAAA,YACH,OAAO;AAAA,cACN,EAAE,MAAM,WAAW,MAAM,YAAY;AAAA,cACrC,EAAE,MAAM,eAAe,MAAM,UAAU;AAAA,cACvC,EAAE,MAAM,cAAc,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE;AAAA,cACrD,EAAE,MAAM,sBAAsB,MAAM,UAAU;AAAA,YAC/C;AAAA,UACD;AAAA,UACA,OAAO;AAAA,QACR;AAAA,MACD;AAAA,IACD;AAAA,IACA;AAAA,MACC,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,QACL,EAAE,MAAM,eAAe,MAAM,UAAU;AAAA,QACvC,EAAE,MAAM,eAAe,MAAM,YAAY;AAAA,QACzC,EAAE,MAAM,iBAAiB,MAAM,EAAE,UAAU,UAAU,EAAE;AAAA,QACvD;AAAA,UACC,MAAM;AAAA,UACN,MAAM;AAAA,YACL,UAAU;AAAA,cACT,OAAO;AAAA,gBACN,EAAE,MAAM,WAAW,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;AAAA,gBACjD,EAAE,MAAM,aAAa,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE;AAAA,cACrD;AAAA,YACD;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,MACA,SAAS,EAAE,UAAU,EAAE,IAAI,QAAQ,OAAO,SAAS,EAAE;AAAA,IACtD;AAAA,IACA;AAAA,MACC,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM,CAAC;AAAA,MACP,SAAS;AAAA,QACR,UAAU;AAAA,UACT,IAAI;AAAA,YACH,UAAU;AAAA,cACT,OAAO;AAAA,gBACN,EAAE,MAAM,eAAe,MAAM,UAAU;AAAA,gBACvC,EAAE,MAAM,gBAAgB,MAAM,YAAY;AAAA,gBAC1C,EAAE,MAAM,iBAAiB,MAAM,EAAE,UAAU,UAAU,EAAE;AAAA,gBACvD;AAAA,kBACC,MAAM;AAAA,kBACN,MAAM;AAAA,oBACL,UAAU;AAAA,sBACT,OAAO;AAAA,wBACN,EAAE,MAAM,WAAW,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;AAAA,wBACjD,EAAE,MAAM,aAAa,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE;AAAA,sBACrD;AAAA,oBACD;AAAA,kBACD;AAAA,gBACD;AAAA,cACD;AAAA,YACD;AAAA,UACD;AAAA,UACA,OAAO;AAAA,QACR;AAAA,MACD;AAAA,IACD;AAAA,IACA;AAAA,MACC,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,QACL,EAAE,MAAM,gBAAgB,MAAM,UAAU;AAAA,QACxC;AAAA,UACC,MAAM;AAAA,UACN,MAAM;AAAA,YACL,OAAO;AAAA,cACN,EAAE,MAAM,WAAW,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;AAAA,cACjD,EAAE,MAAM,aAAa,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE;AAAA,YACrD;AAAA,UACD;AAAA,QACD;AAAA,QACA;AAAA,UACC,MAAM;AAAA,UACN,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE;AAAA,QAC5C;AAAA,QACA,EAAE,MAAM,cAAc,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE;AAAA,QACrD,EAAE,MAAM,cAAc,MAAM,UAAU;AAAA,QACtC,EAAE,MAAM,WAAW,MAAM,UAAU;AAAA,MACpC;AAAA,MACA,SAAS;AAAA,QACR,UAAU;AAAA,UACT,IAAI;AAAA,YACH,OAAO;AAAA,cACN,EAAE,MAAM,WAAW,MAAM,YAAY;AAAA,cACrC,EAAE,MAAM,sBAAsB,MAAM,UAAU;AAAA,YAC/C;AAAA,UACD;AAAA,UACA,OAAO;AAAA,QACR;AAAA,MACD;AAAA,IACD;AAAA,IACA;AAAA,MACC,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,QACL,EAAE,MAAM,eAAe,MAAM,UAAU;AAAA,QACvC;AAAA,UACC,MAAM;AAAA,UACN,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE;AAAA,QAC5C;AAAA,QACA,EAAE,MAAM,cAAc,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE;AAAA,QACrD,EAAE,MAAM,cAAc,MAAM,UAAU;AAAA,QACtC,EAAE,MAAM,WAAW,MAAM,UAAU;AAAA,MACpC;AAAA,MACA,SAAS;AAAA,QACR,UAAU;AAAA,UACT,IAAI;AAAA,YACH,OAAO;AAAA,cACN,EAAE,MAAM,WAAW,MAAM,YAAY;AAAA,cACrC,EAAE,MAAM,gBAAgB,MAAM,UAAU;AAAA,YACzC;AAAA,UACD;AAAA,UACA,OAAO;AAAA,QACR;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD;;;AC/OA,IAAM,kBACL;AAED,SAAS,YAAY,CAAC,KAAyB;AAAA,EAC9C,IAAI,MAAM;AAAA,EACV,WAAW,QAAQ,KAAK;AAAA,IACvB,MAAM,MAAM,gBAAgB,QAAQ,IAAI;AAAA,IACxC,IAAI,QAAQ;AAAA,MAAI,MAAM,IAAI,MAAM,6BAA6B,MAAM;AAAA,IACnE,MAAM,MAAM,MAAM,OAAO,GAAG;AAAA,EAC7B;AAAA,EAGA,MAAM,MAAM,IAAI,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AAAA,EAC5C,MAAM,SAAS,IAAI,SAAS,IAAI,IAAI,QAAQ;AAAA,EAC5C,MAAM,WAAW,WAAW,MAAM;AAAA,EAGlC,IAAI,eAAe;AAAA,EACnB,WAAW,QAAQ,KAAK;AAAA,IACvB,IAAI,SAAS;AAAA,MAAK;AAAA,IACb;AAAA;AAAA,EACN;AAAA,EAEA,MAAM,SAAS,IAAI,WAAW,eAAe,SAAS,MAAM;AAAA,EAC5D,OAAO,IAAI,UAAU,YAAY;AAAA,EACjC,OAAO;AAAA;AAOD,SAAS,eAAe,CAAC,SAA6B;AAAA,EAE5D,IACC,QAAQ,WAAW,KAAK,KACxB,QAAQ,WAAW,KAAK,KACxB,QAAQ,WAAW,OAAO,GACzB;AAAA,IACD,OAAO,mBAAmB,OAAO;AAAA,EAClC;AAAA,EAGA,OAAO,mBAAmB,OAAO;AAAA;AAGlC,SAAS,kBAAkB,CAAC,SAA6B;AAAA,EAExD,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,UAAU,OAAO,OAAO,OAAgC;AAAA,IACvD,MAAM;AAAA,IACP,UAAU,QAAQ,OAAO,OAAgC;AAAA;AAAA,EAI1D,MAAM,iBAAiB,QAAQ,MAAM;AAAA,EACrC,MAAM,OAAO,OAAO,UAAU,QAAQ,MAAM,MAAM,CAAC,CAAC;AAAA,EACpD,MAAM,YAAY,IAAI,WAAW,IAAI;AAAA,EAErC,IAAI;AAAA,EACJ,IAAI,mBAAmB,GAAG;AAAA,IACzB,IAAI,UAAU,WAAW,IAAI;AAAA,MAC5B,UAAU,oBAAoB;AAAA,IAC/B,EAAO,SAAI,UAAU,WAAW,IAAI;AAAA,MACnC,UAAU,oBAAoB;AAAA,IAC/B,EAAO;AAAA,MACN,MAAM,IAAI,MAAM,sCAAsC,UAAU,QAAQ;AAAA;AAAA,EAE1E,EAAO,SAAI,mBAAmB,GAAG;AAAA,IAChC,IAAI,UAAU,WAAW,IAAI;AAAA,MAC5B,MAAM,IAAI,MAAM,sCAAsC,UAAU,QAAQ;AAAA,IACzE;AAAA,IACA,UAAU,oBAAoB;AAAA,EAC/B,EAAO;AAAA,IACN,MAAM,IAAI,MAAM,gCAAgC,gBAAgB;AAAA;AAAA,EAIjE,MAAM,SAAS,IAAI,WAAW,EAAE;AAAA,EAChC,OAAO,IAAI,SAAS;AAAA,EAEpB,OAAO;AAAA,IACN,SAAS,IAAI,WAAW,CAAC,OAAO,CAAC;AAAA,IACjC,WAAW;AAAA,EACZ;AAAA;AAGD,SAAS,kBAAkB,CAAC,SAA6B;AAAA,EACxD,MAAM,UAAU,aAAa,OAAO;AAAA,EAGpC,IAAI,QAAQ,WAAW,IAAI;AAAA,IAC1B,MAAM,IAAI,MAAM,kCAAkC,QAAQ,QAAQ;AAAA,EACnE;AAAA,EAGA,MAAM,cAAc,QAAQ;AAAA,EAC5B,MAAM,YAAY,QAAQ,MAAM,GAAG,EAAE;AAAA,EAErC,IAAI;AAAA,EAEJ,IAAI,gBAAgB,KAAQ,gBAAgB,KAAM;AAAA,IACjD,UAAU,oBAAoB;AAAA,EAC/B,EAEK,SAAI,gBAAgB,KAAQ,gBAAgB,KAAM;AAAA,IACtD,UAAU,oBAAoB;AAAA,EAC/B,EAAO;AAAA,IACN,MAAM,IAAI,MACT,0CAA0C,YAAY,SAAS,EAAE,GAClE;AAAA;AAAA,EAID,MAAM,SAAS,IAAI,WAAW,EAAE;AAAA,EAChC,OAAO,IAAI,SAAS;AAAA,EAEpB,OAAO;AAAA,IACN,SAAS,IAAI,WAAW,CAAC,OAAO,CAAC;AAAA,IACjC,WAAW;AAAA,EACZ;AAAA;AAIM,SAAS,kBAAkB,CAAC,SAA0B;AAAA,EAC5D,OACC,OAAO,UAAU,OAAO,KACxB,WAAW,mBACX,WAAW;AAAA;AAKN,SAAS,uBAAuB,CACtC,YACA,2BACA,mBACS;AAAA,EACT,QAAQ,aAAa,6BAA6B;AAAA;AAI5C,SAAS,uBAAuB,CACtC,OACA,2BACA,mBACS;AAAA,EACT,OAAO,4BAA4B,QAAQ;AAAA;;;AClJ5C,SAAS,cAAc,CAAC,QAAgB;AAAA,EACvC,MAAM,WAAW,uBAAuB,QAAQ,aAAa;AAAA,EAC7D,OAAO,YAAY;AAAA,IAClB;AAAA,IACA,SAAS,SAAS;AAAA,IAClB,MAAM,SAAS;AAAA,IACf,KAAK;AAAA,EACN,CAAC;AAAA;AAIF,eAAsB,UAAU,CAAC,QAAkC;AAAA,EAClE,MAAM,MAAM,eAAe,MAAM;AAAA,EACjC,OAAQ,MAAM,IAAI,KAAK,WAAW,CAAC,CAAC;AAAA;AAIrC,eAAsB,cAAc,CACnC,QACA,SAC8B;AAAA,EAC9B,MAAM,MAAM,eAAe,MAAM;AAAA,EACjC,OAAQ,MAAM,IAAI,KAAK,eAAe;AAAA,IACrC,SAAS;AAAA,EACV,CAAC;AAAA;AAIF,eAAsB,iBAAiB,CACtC,QACA,SACiC;AAAA,EACjC,MAAM,MAAM,eAAe,MAAM;AAAA,EACjC,OAAQ,MAAM,IAAI,KAAK,kBAAkB;AAAA,IACxC,SAAS;AAAA,EACV,CAAC;AAAA;AAIF,eAAsB,QAAQ,CAC7B,QACA,QACmB;AAAA,EACnB,MAAM,OAAO,MAAM,WAAW,MAAM;AAAA,EACpC,OAAO,UAAU,KAAK;AAAA;AAIvB,eAAsB,QAAQ,CAC7B,QACA,QACkB;AAAA,EAClB,IAAI,CAAC,OAAO;AAAA,IAAS,MAAM,IAAI,MAAM,wBAAwB;AAAA,EAE7D,IAAI,CAAC,mBAAmB,OAAO,UAAU,GAAG;AAAA,IAC3C,MAAM,IAAI,MAAM,iCAAiC;AAAA,EAClD;AAAA,EAEA,MAAM,OAAO,MAAM,WAAW,MAAM;AAAA,EACpC,IAAI,OAAO,SAAS,KAAK,eAAe;AAAA,IACvC,MAAM,IAAI,MAAM,yBAAyB,KAAK,eAAe;AAAA,EAC9D;AAAA,EAEA,MAAM,UAAU,gBAAgB,OAAO,UAAU;AAAA,EACjD,MAAM,MAAM,eAAe,MAAM;AAAA,EAEjC,OAAO,IAAI,KAAK,SACf;AAAA,IACC,YAAY,OAAO;AAAA,IACnB;AAAA,IACA,aAAa,OAAO;AAAA,IACpB,YAAY,OAAO,OAAO,UAAU;AAAA,IACpC,WAAW,OAAO;AAAA,IAClB,WAAW,OAAO;AAAA,IAClB,WAAW,OAAO;AAAA,IAClB,QAAQ,OAAO;AAAA,EAChB,GACA;AAAA,IACC,gBAAgB;AAAA,MACf,GAAG,UAAU,OAAO,QAAQ,OAAO,EAAE,WAAW,OAAO,MAAM,EAAE,KAAK;AAAA,IACrE;AAAA,EACD,CACD;AAAA;AAID,eAAsB,WAAW,CAChC,QACA,QACkB;AAAA,EAClB,IAAI,CAAC,OAAO;AAAA,IAAS,MAAM,IAAI,MAAM,wBAAwB;AAAA,EAE7D,MAAM,UAAU,OAAO,UAAU,gBAAgB,OAAO,OAAO,IAAI;AAAA,EACnE,MAAM,MAAM,eAAe,MAAM;AAAA,EAEjC,OAAO,IAAI,KAAK,YAAY;AAAA,IAC3B,YAAY,OAAO;AAAA,IACnB,YAAY,OAAO;AAAA,IACnB,aAAa,OAAO,mBAAmB;AAAA,IACvC;AAAA,EACD,CAAC;AAAA;AAIF,eAAsB,iBAAiB,CAAC,QAAiC;AAAA,EACxE,IAAI,CAAC,OAAO;AAAA,IAAS,MAAM,IAAI,MAAM,wBAAwB;AAAA,EAC7D,MAAM,MAAM,eAAe,MAAM;AAAA,EACjC,OAAO,IAAI,KAAK,kBAAkB,CAAC,CAAC;AAAA;AAIrC,eAAsB,WAAW,CAChC,QACA,QACkB;AAAA,EAClB,IAAI,CAAC,OAAO;AAAA,IAAS,MAAM,IAAI,MAAM,wBAAwB;AAAA,EAE7D,IAAI,CAAC,mBAAmB,OAAO,WAAW,GAAG;AAAA,IAC5C,MAAM,IAAI,MAAM,kCAAkC;AAAA,EACnD;AAAA,EAEA,MAAM,UAAU,gBAAgB,OAAO,UAAU;AAAA,EACjD,MAAM,MAAM,eAAe,MAAM;AAAA,EAEjC,OAAO,IAAI,KAAK,YAAY;AAAA,IAC3B,aAAa,OAAO,OAAO,WAAW;AAAA,IACtC;AAAA,IACA,WAAW,OAAO;AAAA,IAClB,WAAW,OAAO;AAAA,IAClB,WAAW,OAAO;AAAA,IAClB,QAAQ,OAAO;AAAA,EAChB,CAAC;AAAA;AAIF,eAAsB,aAAa,CAClC,QACA,QACkB;AAAA,EAClB,IAAI,CAAC,OAAO;AAAA,IAAS,MAAM,IAAI,MAAM,wBAAwB;AAAA,EAE7D,MAAM,MAAM,eAAe,MAAM;AAAA,EAEjC,OAAO,IAAI,KAAK,cACf;AAAA,IACC,YAAY,OAAO;AAAA,IACnB,WAAW,OAAO;AAAA,IAClB,WAAW,OAAO;AAAA,IAClB,WAAW,OAAO;AAAA,IAClB,QAAQ,OAAO;AAAA,EAChB,GACA;AAAA,IACC,gBAAgB;AAAA,MACf,GAAG,UAAU,OAAO,QAAQ,OAAO,EACjC,WAAW,OAAO,UAAU,EAC5B,KAAK;AAAA,IACR;AAAA,EACD,CACD;AAAA;;;AClFM,SAAS,GAAG,GAAmC;AAAA,EACrD,OAAO,CAAC,YAAoB;AAAA,IAC3B,KAAK;AAAA,MAEJ,YAAY,MAAM,WAAW,MAAM;AAAA,MAGnC,gBAAgB,CAAC,YAAoB,eAAe,QAAQ,OAAO;AAAA,MAGnE,mBAAmB,CAAC,YACnB,kBAAkB,QAAQ,OAAO;AAAA,MAGlC,UAAU,CAAC,WAAmB,SAAS,QAAQ,MAAM;AAAA,MAGrD,UAAU,CAAC,WAA2B,SAAS,QAAQ,MAAM;AAAA,MAG7D,aAAa,CAAC,WAA8B,YAAY,QAAQ,MAAM;AAAA,MAGtE,mBAAmB,MAAM,kBAAkB,MAAM;AAAA,MAGjD,aAAa,CAAC,WAA8B,YAAY,QAAQ,MAAM;AAAA,MAGtE,eAAe,CAAC,WACf,cAAc,QAAQ,MAAM;AAAA,IAC9B;AAAA,EACD;AAAA;",
11
- "debugId": "6E990558E44793CE64756E2164756E21",
10
+ "mappings": "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",
11
+ "debugId": "BAB56A4B32E85C8964756E2164756E21",
12
12
  "names": []
13
13
  }
@@ -1604,6 +1604,7 @@ async function eligiblePauseRewards(client, params) {
1604
1604
  }
1605
1605
  // src/pox5/script.ts
1606
1606
  var import_sha2 = require("@noble/hashes/sha2.js");
1607
+ var import_base = require("@scure/base");
1607
1608
  function serializeCScriptNum(n) {
1608
1609
  const big = typeof n === "bigint" ? n : BigInt(n);
1609
1610
  if (big < 0n)
@@ -1669,9 +1670,9 @@ function buildLockupOutputScript(opts) {
1669
1670
  }
1670
1671
  function buildLockupAddress(opts, network = "mainnet") {
1671
1672
  const hash = import_sha2.sha256(buildLockupScript(opts));
1672
- return bech32.encode(BITCOIN_NETWORK_PARAMS[network].hrp, [
1673
+ return import_base.bech32.encode(BITCOIN_NETWORK_PARAMS[network].hrp, [
1673
1674
  0,
1674
- ...bech32.toWords(hash)
1675
+ ...import_base.bech32.toWords(hash)
1675
1676
  ]);
1676
1677
  }
1677
1678
  function buildDefaultStakerUnlockBytes(publicKey) {
@@ -2046,115 +2047,6 @@ function pox5() {
2046
2047
  }
2047
2048
  });
2048
2049
  }
2049
- // src/pox5/btcAddress.ts
2050
- function base58CheckEncode(version, payload) {
2051
- const data = concatBytes(Uint8Array.of(version), payload);
2052
- const checksum = doubleSha256(data).slice(0, 4);
2053
- return base58.encode(concatBytes(data, checksum));
2054
- }
2055
- function expectedHashLen(version) {
2056
- if (!Number.isInteger(version) || version < 0 || version > 6) {
2057
- throw new Error(`Unknown PoX address version: 0x${version.toString(16)}`);
2058
- }
2059
- return version <= 4 ? 20 : 32;
2060
- }
2061
- function canonicalizeBtcAddress(repr) {
2062
- const expected = expectedHashLen(repr.version);
2063
- const { hashbytes } = repr;
2064
- if (hashbytes.length === expected)
2065
- return { version: repr.version, hashbytes };
2066
- if (expected === 20 && hashbytes.length === 32 && hashbytes.slice(20).every((b) => b === 0)) {
2067
- return { version: repr.version, hashbytes: hashbytes.slice(0, 20) };
2068
- }
2069
- throw new Error(`Invalid hashbytes length for PoX version 0x${repr.version.toString(16)}: ${hashbytes.length}`);
2070
- }
2071
- function parseBtcAddress(address) {
2072
- if (address.startsWith("bc1") || address.startsWith("tb1") || address.startsWith("bcrt1")) {
2073
- return parseSegwitAddress(address);
2074
- }
2075
- return parseLegacyAddress(address);
2076
- }
2077
- function parseSegwitAddress(address) {
2078
- let decoded;
2079
- try {
2080
- decoded = bech32.decode(address);
2081
- } catch {
2082
- decoded = bech32m.decode(address);
2083
- }
2084
- const witnessVersion = decoded.words[0];
2085
- if (witnessVersion === undefined) {
2086
- throw new Error("Invalid segwit address: missing witness version");
2087
- }
2088
- const data = bech32.fromWords(decoded.words.slice(1));
2089
- const hashbytes = new Uint8Array(data);
2090
- let version;
2091
- if (witnessVersion === 0) {
2092
- if (hashbytes.length === 20) {
2093
- version = POX_ADDRESS_VERSION.p2wpkh;
2094
- } else if (hashbytes.length === 32) {
2095
- version = POX_ADDRESS_VERSION.p2wsh;
2096
- } else {
2097
- throw new Error(`Invalid witness v0 program length: ${hashbytes.length}`);
2098
- }
2099
- } else if (witnessVersion === 1) {
2100
- if (hashbytes.length !== 32) {
2101
- throw new Error(`Invalid witness v1 program length: ${hashbytes.length}`);
2102
- }
2103
- version = POX_ADDRESS_VERSION.p2tr;
2104
- } else {
2105
- throw new Error(`Unsupported witness version: ${witnessVersion}`);
2106
- }
2107
- return { version, hashbytes };
2108
- }
2109
- function parseLegacyAddress(address) {
2110
- const decoded = base58.decode(address);
2111
- if (decoded.length !== 25) {
2112
- throw new Error(`Invalid legacy address length: ${decoded.length}`);
2113
- }
2114
- const versionByte = decoded[0];
2115
- if (versionByte === undefined) {
2116
- throw new Error("Invalid legacy address: missing version byte");
2117
- }
2118
- const payload = decoded.slice(0, 21);
2119
- const checksum = decoded.slice(21);
2120
- const expected = doubleSha256(payload).slice(0, 4);
2121
- if (checksum.length !== 4 || expected.some((b, i) => b !== checksum[i])) {
2122
- throw new Error("Invalid legacy address checksum");
2123
- }
2124
- const hashbytes = decoded.slice(1, 21);
2125
- let version;
2126
- if (versionByte === 0 || versionByte === 111) {
2127
- version = POX_ADDRESS_VERSION.p2pkh;
2128
- } else if (versionByte === 5 || versionByte === 196) {
2129
- version = POX_ADDRESS_VERSION.p2sh;
2130
- } else {
2131
- throw new Error(`Unknown legacy address version byte: 0x${versionByte.toString(16)}`);
2132
- }
2133
- return { version, hashbytes };
2134
- }
2135
- function stringifyBtcAddress(repr, network) {
2136
- const { version, hashbytes } = canonicalizeBtcAddress(repr);
2137
- const params = BITCOIN_NETWORK_PARAMS[network];
2138
- switch (version) {
2139
- case POX_ADDRESS_VERSION.p2pkh:
2140
- return base58CheckEncode(params.p2pkh, hashbytes);
2141
- case POX_ADDRESS_VERSION.p2sh:
2142
- case POX_ADDRESS_VERSION.p2sh_p2wpkh:
2143
- case POX_ADDRESS_VERSION.p2sh_p2wsh:
2144
- return base58CheckEncode(params.p2sh, hashbytes);
2145
- case POX_ADDRESS_VERSION.p2wpkh:
2146
- case POX_ADDRESS_VERSION.p2wsh:
2147
- return bech32.encode(params.hrp, [0, ...bech32.toWords(hashbytes)]);
2148
- case POX_ADDRESS_VERSION.p2tr:
2149
- return bech32m.encode(params.hrp, [1, ...bech32m.toWords(hashbytes)]);
2150
- default:
2151
- throw new Error(`Unknown PoX address version: 0x${version.toString(16)}`);
2152
- }
2153
- }
2154
- var BtcAddress = {
2155
- parse: parseBtcAddress,
2156
- stringify: stringifyBtcAddress
2157
- };
2158
2050
  // src/pox5/signerCalldata.ts
2159
2051
  function buildSignerCalldata(opts) {
2160
2052
  const repr = canonicalizeBtcAddress(typeof opts.poxAddress === "string" ? parseBtcAddress(opts.poxAddress) : opts.poxAddress);
@@ -2204,5 +2096,5 @@ function parseSignerCalldata(calldata) {
2204
2096
  };
2205
2097
  }
2206
2098
 
2207
- //# debugId=6BC5684EF8502A3A64756E2164756E21
2099
+ //# debugId=90830B6EA47D48EC64756E2164756E21
2208
2100
  //# sourceMappingURL=index.cjs.map