@secondlayer/stacks 0.2.1 → 0.3.0

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 (171) hide show
  1. package/dist/shared/stacks-02actsrx.cjs.map +2 -2
  2. package/dist/shared/{stacks-vyb9rx8q.js → stacks-09wa7ewe.js} +125 -115
  3. package/dist/shared/stacks-09wa7ewe.js.map +15 -0
  4. package/dist/shared/{stacks-ky14tdf6.cjs → stacks-0nfexv24.cjs} +20 -8
  5. package/dist/shared/stacks-0nfexv24.cjs.map +14 -0
  6. package/dist/shared/{stacks-an5k8n4t.cjs → stacks-14pgpkrr.cjs} +82 -73
  7. package/dist/shared/stacks-14pgpkrr.cjs.map +23 -0
  8. package/dist/shared/{stacks-vbke9mqw.cjs → stacks-17sdtaxg.cjs} +120 -106
  9. package/dist/shared/stacks-17sdtaxg.cjs.map +15 -0
  10. package/dist/shared/{stacks-wrb1es85.js → stacks-1s5w4ncf.js} +46 -34
  11. package/dist/shared/stacks-1s5w4ncf.js.map +17 -0
  12. package/dist/shared/stacks-24h5k94q.cjs.map +3 -3
  13. package/dist/shared/{stacks-evnzth1q.cjs → stacks-4vzmhw3q.cjs} +3 -3
  14. package/dist/shared/stacks-4vzmhw3q.cjs.map +10 -0
  15. package/dist/shared/{stacks-vd9jcp0b.js → stacks-4x2bcc2k.js} +89 -80
  16. package/dist/shared/stacks-4x2bcc2k.js.map +23 -0
  17. package/dist/shared/stacks-5tprhns9.cjs.map +3 -3
  18. package/dist/shared/stacks-709tra19.js.map +2 -2
  19. package/dist/shared/{stacks-qcx67vqa.js → stacks-70p84bgg.js} +3 -3
  20. package/dist/shared/stacks-70p84bgg.js.map +10 -0
  21. package/dist/shared/{stacks-k2p5tv6x.js → stacks-913a2rx7.js} +3 -3
  22. package/dist/shared/stacks-913a2rx7.js.map +10 -0
  23. package/dist/shared/{stacks-qyt8m5v0.js → stacks-96d6m1zy.js} +16 -7
  24. package/dist/shared/stacks-96d6m1zy.js.map +11 -0
  25. package/dist/shared/stacks-9g0jhab3.cjs.map +2 -2
  26. package/dist/shared/stacks-dr5en54r.cjs.map +2 -2
  27. package/dist/shared/stacks-fcaefc5b.cjs.map +2 -2
  28. package/dist/shared/stacks-gck1sq7h.cjs.map +2 -2
  29. package/dist/shared/{stacks-yfveb68e.js → stacks-je937aas.js} +3 -3
  30. package/dist/shared/stacks-je937aas.js.map +10 -0
  31. package/dist/shared/{stacks-k58k970n.js → stacks-kg1npstf.js} +5 -3
  32. package/dist/shared/stacks-kg1npstf.js.map +10 -0
  33. package/dist/shared/{stacks-qvg7c24g.cjs → stacks-n98w7g57.cjs} +5 -3
  34. package/dist/shared/stacks-n98w7g57.cjs.map +10 -0
  35. package/dist/shared/{stacks-9mdk86wp.js → stacks-nqae5amn.cjs} +77 -159
  36. package/dist/shared/stacks-nqae5amn.cjs.map +10 -0
  37. package/dist/shared/stacks-qcae5852.js.map +2 -2
  38. package/dist/shared/stacks-qt8ehebn.js.map +3 -3
  39. package/dist/shared/{stacks-r1t6g3c3.cjs → stacks-ra02bpny.cjs} +8 -3
  40. package/dist/shared/stacks-ra02bpny.cjs.map +11 -0
  41. package/dist/shared/{stacks-bycy6t9k.js → stacks-rwfgts3s.js} +2 -2
  42. package/dist/shared/{stacks-bycy6t9k.js.map → stacks-rwfgts3s.js.map} +2 -2
  43. package/dist/shared/{stacks-gjvbq6w7.js → stacks-s10yb9gz.js} +2 -2
  44. package/dist/shared/stacks-s10yb9gz.js.map +10 -0
  45. package/dist/shared/{stacks-v3zy6zds.cjs → stacks-s30kkvm8.js} +104 -117
  46. package/dist/shared/stacks-s30kkvm8.js.map +10 -0
  47. package/dist/shared/{stacks-nqytwfcc.js → stacks-s7z5q8be.js} +8 -3
  48. package/dist/shared/stacks-s7z5q8be.js.map +11 -0
  49. package/dist/shared/stacks-v9jqcpd4.js.map +2 -2
  50. package/dist/shared/stacks-vdfag81a.cjs.map +2 -2
  51. package/dist/shared/{stacks-fedzr2ka.js → stacks-wjem3xw9.js} +23 -11
  52. package/dist/shared/stacks-wjem3xw9.js.map +14 -0
  53. package/dist/shared/{stacks-k08tgzyp.cjs → stacks-wyxj879g.cjs} +3 -3
  54. package/dist/shared/stacks-wyxj879g.cjs.map +13 -0
  55. package/dist/shared/stacks-y3dh7hv1.js.map +3 -3
  56. package/dist/shared/{stacks-2ar4prfz.cjs → stacks-y5262j0z.cjs} +14 -5
  57. package/dist/shared/stacks-y5262j0z.cjs.map +11 -0
  58. package/dist/shared/stacks-ya3x01yd.cjs.map +2 -2
  59. package/dist/shared/{stacks-9avax1yf.js → stacks-zf7rbpzp.js} +5 -5
  60. package/dist/shared/stacks-zf7rbpzp.js.map +13 -0
  61. package/dist/shared/{stacks-61rvzkz1.cjs → stacks-znrb59ce.cjs} +41 -29
  62. package/dist/shared/stacks-znrb59ce.cjs.map +17 -0
  63. package/dist/src/accounts/index.cjs +2 -2
  64. package/dist/src/accounts/index.cjs.map +5 -5
  65. package/dist/src/accounts/index.js +4 -8
  66. package/dist/src/accounts/index.js.map +5 -5
  67. package/dist/src/actions/index.d.cts +36 -29
  68. package/dist/src/actions/index.d.ts +36 -29
  69. package/dist/src/actions/index.js +10 -10
  70. package/dist/src/bns/index.cjs +55 -43
  71. package/dist/src/bns/index.cjs.map +9 -9
  72. package/dist/src/bns/index.d.cts +29 -29
  73. package/dist/src/bns/index.d.ts +29 -29
  74. package/dist/src/bns/index.js +66 -54
  75. package/dist/src/bns/index.js.map +9 -9
  76. package/dist/src/clarity/index.js +6 -6
  77. package/dist/src/connect/index.cjs +114 -112
  78. package/dist/src/connect/index.cjs.map +13 -13
  79. package/dist/src/connect/index.js +114 -112
  80. package/dist/src/connect/index.js.map +13 -13
  81. package/dist/src/connect/walletconnect/index.cjs +3 -3
  82. package/dist/src/connect/walletconnect/index.cjs.map +10 -10
  83. package/dist/src/connect/walletconnect/index.js +3 -3
  84. package/dist/src/connect/walletconnect/index.js.map +10 -10
  85. package/dist/src/index.cjs +108 -2
  86. package/dist/src/index.cjs.map +19 -15
  87. package/dist/src/index.d.cts +298 -112
  88. package/dist/src/index.d.ts +298 -112
  89. package/dist/src/index.js +125 -12
  90. package/dist/src/index.js.map +19 -15
  91. package/dist/src/postconditions/index.js +3 -3
  92. package/dist/src/pox/index.cjs.map +6 -6
  93. package/dist/src/pox/index.d.cts +29 -29
  94. package/dist/src/pox/index.d.ts +29 -29
  95. package/dist/src/pox/index.js +9 -9
  96. package/dist/src/pox/index.js.map +6 -6
  97. package/dist/src/stackingdao/index.cjs +31 -6
  98. package/dist/src/stackingdao/index.cjs.map +6 -6
  99. package/dist/src/stackingdao/index.d.cts +29 -29
  100. package/dist/src/stackingdao/index.d.ts +29 -29
  101. package/dist/src/stackingdao/index.js +41 -16
  102. package/dist/src/stackingdao/index.js.map +6 -6
  103. package/dist/src/subscriptions/index.d.cts +29 -29
  104. package/dist/src/subscriptions/index.d.ts +29 -29
  105. package/dist/src/tools/btc/index.cjs +130 -0
  106. package/dist/src/tools/btc/index.cjs.map +10 -0
  107. package/dist/src/tools/btc/index.d.cts +8 -0
  108. package/dist/src/tools/btc/index.d.ts +8 -0
  109. package/dist/src/tools/btc/index.js +89 -0
  110. package/dist/src/tools/btc/index.js.map +10 -0
  111. package/dist/src/tools/index.cjs +2470 -0
  112. package/dist/src/tools/index.cjs.map +61 -0
  113. package/dist/src/tools/index.d.cts +144 -0
  114. package/dist/src/tools/index.d.ts +144 -0
  115. package/dist/src/tools/index.js +2435 -0
  116. package/dist/src/tools/index.js.map +61 -0
  117. package/dist/src/transactions/index.d.cts +7 -0
  118. package/dist/src/transactions/index.d.ts +7 -0
  119. package/dist/src/transactions/index.js +6 -6
  120. package/dist/src/triggers/index.cjs +66 -0
  121. package/dist/src/triggers/index.cjs.map +10 -0
  122. package/dist/src/triggers/index.d.cts +116 -0
  123. package/dist/src/triggers/index.d.ts +116 -0
  124. package/dist/src/triggers/index.js +25 -0
  125. package/dist/src/triggers/index.js.map +10 -0
  126. package/dist/src/tx/index.cjs +65 -0
  127. package/dist/src/tx/index.cjs.map +10 -0
  128. package/dist/src/tx/index.d.cts +42 -0
  129. package/dist/src/tx/index.d.ts +42 -0
  130. package/dist/src/tx/index.js +22 -0
  131. package/dist/src/tx/index.js.map +10 -0
  132. package/dist/src/ui/index.cjs +431 -0
  133. package/dist/src/ui/index.cjs.map +27 -0
  134. package/dist/src/ui/index.d.cts +107 -0
  135. package/dist/src/ui/index.d.ts +107 -0
  136. package/dist/src/ui/index.js +391 -0
  137. package/dist/src/ui/index.js.map +27 -0
  138. package/dist/src/ui/schemas.cjs +134 -0
  139. package/dist/src/ui/schemas.cjs.map +18 -0
  140. package/dist/src/ui/schemas.d.cts +83 -0
  141. package/dist/src/ui/schemas.d.ts +83 -0
  142. package/dist/src/ui/schemas.js +91 -0
  143. package/dist/src/ui/schemas.js.map +18 -0
  144. package/dist/src/utils/index.cjs +3 -3
  145. package/dist/src/utils/index.cjs.map +4 -4
  146. package/dist/src/utils/index.js +7 -7
  147. package/dist/src/utils/index.js.map +4 -4
  148. package/package.json +157 -105
  149. package/dist/shared/stacks-2ar4prfz.cjs.map +0 -11
  150. package/dist/shared/stacks-61rvzkz1.cjs.map +0 -17
  151. package/dist/shared/stacks-9avax1yf.js.map +0 -13
  152. package/dist/shared/stacks-9mdk86wp.js.map +0 -10
  153. package/dist/shared/stacks-an5k8n4t.cjs.map +0 -23
  154. package/dist/shared/stacks-evnzth1q.cjs.map +0 -10
  155. package/dist/shared/stacks-fedzr2ka.js.map +0 -13
  156. package/dist/shared/stacks-gjvbq6w7.js.map +0 -10
  157. package/dist/shared/stacks-k08tgzyp.cjs.map +0 -13
  158. package/dist/shared/stacks-k2p5tv6x.js.map +0 -10
  159. package/dist/shared/stacks-k58k970n.js.map +0 -10
  160. package/dist/shared/stacks-ky14tdf6.cjs.map +0 -13
  161. package/dist/shared/stacks-nqytwfcc.js.map +0 -11
  162. package/dist/shared/stacks-qcx67vqa.js.map +0 -10
  163. package/dist/shared/stacks-qvg7c24g.cjs.map +0 -10
  164. package/dist/shared/stacks-qyt8m5v0.js.map +0 -11
  165. package/dist/shared/stacks-r1t6g3c3.cjs.map +0 -11
  166. package/dist/shared/stacks-v3zy6zds.cjs.map +0 -10
  167. package/dist/shared/stacks-vbke9mqw.cjs.map +0 -15
  168. package/dist/shared/stacks-vd9jcp0b.js.map +0 -23
  169. package/dist/shared/stacks-vyb9rx8q.js.map +0 -15
  170. package/dist/shared/stacks-wrb1es85.js.map +0 -17
  171. package/dist/shared/stacks-yfveb68e.js.map +0 -10
@@ -2,14 +2,14 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/pox/abi.ts", "../src/pox/constants.ts", "../../../node_modules/@scure/base/index.js", "../src/pox/utils.ts", "../src/pox/actions.ts", "../src/pox/index.ts"],
4
4
  "sourcesContent": [
5
- "import type { AbiContract } from \"../clarity/abi/contract.ts\";\n\nconst poxAddressTuple = {\n tuple: [\n { name: \"version\", type: { buff: { length: 1 } } },\n { name: \"hashbytes\", type: { buff: { length: 32 } } },\n ],\n} as const;\n\nexport const POX_ABI = {\n functions: [\n // Read-only\n {\n name: \"get-pox-info\",\n access: \"read-only\",\n args: [],\n outputs: {\n response: {\n ok: {\n tuple: [\n { name: \"reward-cycle-id\", type: \"uint128\" },\n { name: \"min-amount-ustx\", type: \"uint128\" },\n { name: \"prepare-cycle-length\", type: \"uint128\" },\n { name: \"first-burnchain-block-height\", type: \"uint128\" },\n { name: \"reward-cycle-length\", type: \"uint128\" },\n { name: \"total-liquid-supply-ustx\", type: \"uint128\" },\n ],\n },\n error: \"none\",\n },\n },\n },\n {\n name: \"get-stacker-info\",\n access: \"read-only\",\n args: [{ name: \"stacker\", type: \"principal\" }],\n outputs: {\n optional: {\n tuple: [\n { name: \"pox-addr\", type: poxAddressTuple },\n { name: \"lock-period\", type: \"uint128\" },\n { name: \"first-reward-cycle\", type: \"uint128\" },\n {\n name: \"reward-set-indexes\",\n type: { list: { type: \"uint128\", length: 12 } },\n },\n { name: \"delegated-to\", type: { optional: \"principal\" } },\n ],\n },\n },\n },\n {\n name: \"get-delegation-info\",\n access: \"read-only\",\n args: [{ name: \"stacker\", type: \"principal\" }],\n outputs: {\n optional: {\n tuple: [\n { name: \"amount-ustx\", type: \"uint128\" },\n { name: \"delegated-to\", type: \"principal\" },\n { name: \"until-burn-ht\", type: { optional: \"uint128\" } },\n { name: \"pox-addr\", type: { optional: poxAddressTuple } },\n ],\n },\n },\n },\n {\n name: \"can-stack-stx\",\n access: \"read-only\",\n args: [\n { name: \"pox-addr\", type: poxAddressTuple },\n { name: \"amount-ustx\", type: \"uint128\" },\n { name: \"first-reward-cycle\", type: \"uint128\" },\n { name: \"num-cycles\", type: \"uint128\" },\n ],\n outputs: { response: { ok: \"bool\", error: \"int128\" } },\n },\n\n // Public\n {\n name: \"stack-stx\",\n access: \"public\",\n args: [\n { name: \"amount-ustx\", type: \"uint128\" },\n { name: \"pox-addr\", type: poxAddressTuple },\n { name: \"start-burn-ht\", type: \"uint128\" },\n { name: \"lock-period\", type: \"uint128\" },\n {\n name: \"signer-sig\",\n type: { optional: { buff: { length: 65 } } },\n },\n { name: \"signer-key\", type: { buff: { length: 33 } } },\n { name: \"max-amount\", type: \"uint128\" },\n { name: \"auth-id\", type: \"uint128\" },\n ],\n outputs: {\n response: {\n ok: {\n tuple: [\n { name: \"stacker\", type: \"principal\" },\n { name: \"lock-amount\", type: \"uint128\" },\n { name: \"signer-key\", type: { buff: { length: 33 } } },\n { name: \"unlock-burn-height\", type: \"uint128\" },\n ],\n },\n error: \"int128\",\n },\n },\n },\n {\n name: \"delegate-stx\",\n access: \"public\",\n args: [\n { name: \"amount-ustx\", type: \"uint128\" },\n { name: \"delegate-to\", type: \"principal\" },\n { name: \"until-burn-ht\", type: { optional: \"uint128\" } },\n { name: \"pox-addr\", type: { optional: poxAddressTuple } },\n ],\n outputs: { response: { ok: \"bool\", error: \"int128\" } },\n },\n {\n name: \"revoke-delegate-stx\",\n access: \"public\",\n args: [],\n outputs: {\n response: {\n ok: {\n optional: {\n tuple: [\n { name: \"amount-ustx\", type: \"uint128\" },\n { name: \"delegated-to\", type: \"principal\" },\n { name: \"until-burn-ht\", type: { optional: \"uint128\" } },\n { name: \"pox-addr\", type: { optional: poxAddressTuple } },\n ],\n },\n },\n error: \"int128\",\n },\n },\n },\n {\n name: \"stack-extend\",\n access: \"public\",\n args: [\n { name: \"extend-count\", type: \"uint128\" },\n { name: \"pox-addr\", type: poxAddressTuple },\n {\n name: \"signer-sig\",\n type: { optional: { buff: { length: 65 } } },\n },\n { name: \"signer-key\", type: { buff: { length: 33 } } },\n { name: \"max-amount\", type: \"uint128\" },\n { name: \"auth-id\", type: \"uint128\" },\n ],\n outputs: {\n response: {\n ok: {\n tuple: [\n { name: \"stacker\", type: \"principal\" },\n { name: \"unlock-burn-height\", type: \"uint128\" },\n ],\n },\n error: \"int128\",\n },\n },\n },\n {\n name: \"stack-increase\",\n access: \"public\",\n args: [\n { name: \"increase-by\", type: \"uint128\" },\n {\n name: \"signer-sig\",\n type: { optional: { buff: { length: 65 } } },\n },\n { name: \"signer-key\", type: { buff: { length: 33 } } },\n { name: \"max-amount\", type: \"uint128\" },\n { name: \"auth-id\", type: \"uint128\" },\n ],\n outputs: {\n response: {\n ok: {\n tuple: [\n { name: \"stacker\", type: \"principal\" },\n { name: \"total-locked\", type: \"uint128\" },\n ],\n },\n error: \"int128\",\n },\n },\n },\n ],\n} as const satisfies AbiContract;\n",
6
- "export const POX_CONTRACTS = {\n mainnet: {\n address: \"SP000000000000000000002Q6VF78\",\n name: \"pox-4\",\n },\n testnet: {\n address: \"ST000000000000000000002AMW42H\",\n name: \"pox-4\",\n },\n} as const;\n\nexport const MIN_LOCK_PERIOD = 1;\nexport const MAX_LOCK_PERIOD = 12;\n\n/** PoX address version bytes (maps to Bitcoin address types) */\nexport const POX_ADDRESS_VERSION = {\n /** P2PKH - legacy addresses starting with \"1\" */\n p2pkh: 0x00,\n /** P2SH - script hash addresses starting with \"3\" */\n p2sh: 0x01,\n /** P2SH-P2WPKH - nested segwit */\n p2sh_p2wpkh: 0x02,\n /** P2SH-P2WSH - nested segwit script */\n p2sh_p2wsh: 0x03,\n /** P2WPKH - native segwit \"bc1q\" (20-byte hash) */\n p2wpkh: 0x04,\n /** P2WSH - native segwit \"bc1q\" (32-byte hash) */\n p2wsh: 0x05,\n /** P2TR - taproot \"bc1p\" (32-byte key) */\n p2tr: 0x06,\n} as const;\n",
5
+ "import type { AbiContract } from \"../clarity/abi/contract.ts\";\n\nconst poxAddressTuple = {\n\ttuple: [\n\t\t{ name: \"version\", type: { buff: { length: 1 } } },\n\t\t{ name: \"hashbytes\", type: { buff: { length: 32 } } },\n\t],\n} as const;\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{ name: \"pox-addr\", type: poxAddressTuple },\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{ name: \"pox-addr\", type: { optional: poxAddressTuple } },\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{ name: \"pox-addr\", type: poxAddressTuple },\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{ name: \"pox-addr\", type: poxAddressTuple },\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{ name: \"pox-addr\", type: { optional: poxAddressTuple } },\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{ name: \"pox-addr\", type: { optional: poxAddressTuple } },\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{ name: \"pox-addr\", type: poxAddressTuple },\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
+ "export const POX_CONTRACTS = {\n\tmainnet: {\n\t\taddress: \"SP000000000000000000002Q6VF78\",\n\t\tname: \"pox-4\",\n\t},\n\ttestnet: {\n\t\taddress: \"ST000000000000000000002AMW42H\",\n\t\tname: \"pox-4\",\n\t},\n} as const;\n\nexport const MIN_LOCK_PERIOD = 1;\nexport const MAX_LOCK_PERIOD = 12;\n\n/** PoX address version bytes (maps to Bitcoin address types) */\nexport const POX_ADDRESS_VERSION = {\n\t/** P2PKH - legacy addresses starting with \"1\" */\n\tp2pkh: 0x00,\n\t/** P2SH - script hash addresses starting with \"3\" */\n\tp2sh: 0x01,\n\t/** P2SH-P2WPKH - nested segwit */\n\tp2sh_p2wpkh: 0x02,\n\t/** P2SH-P2WSH - nested segwit script */\n\tp2sh_p2wsh: 0x03,\n\t/** P2WPKH - native segwit \"bc1q\" (20-byte hash) */\n\tp2wpkh: 0x04,\n\t/** P2WSH - native segwit \"bc1q\" (32-byte hash) */\n\tp2wsh: 0x05,\n\t/** P2TR - taproot \"bc1p\" (32-byte key) */\n\tp2tr: 0x06,\n} as const;\n",
7
7
  "/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nfunction isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n/** Asserts something is Uint8Array. */\nfunction abytes(b) {\n if (!isBytes(b))\n throw new Error('Uint8Array expected');\n}\nfunction isArrayOf(isString, arr) {\n if (!Array.isArray(arr))\n return false;\n if (arr.length === 0)\n return true;\n if (isString) {\n return arr.every((item) => typeof item === 'string');\n }\n else {\n return arr.every((item) => Number.isSafeInteger(item));\n }\n}\nfunction afn(input) {\n if (typeof input !== 'function')\n throw new Error('function expected');\n return true;\n}\nfunction astr(label, input) {\n if (typeof input !== 'string')\n throw new Error(`${label}: string expected`);\n return true;\n}\nfunction anumber(n) {\n if (!Number.isSafeInteger(n))\n throw new Error(`invalid integer: ${n}`);\n}\nfunction aArr(input) {\n if (!Array.isArray(input))\n throw new Error('array expected');\n}\nfunction astrArr(label, input) {\n if (!isArrayOf(true, input))\n throw new Error(`${label}: array of strings expected`);\n}\nfunction anumArr(label, input) {\n if (!isArrayOf(false, input))\n throw new Error(`${label}: array of numbers expected`);\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction chain(...args) {\n const id = (a) => a;\n // Wrap call in closure so JIT can inline calls\n const wrap = (a, b) => (c) => a(b(c));\n // Construct chain of args[-1].encode(args[-2].encode([...]))\n const encode = args.map((x) => x.encode).reduceRight(wrap, id);\n // Construct chain of args[0].decode(args[1].decode(...))\n const decode = args.map((x) => x.decode).reduce(wrap, id);\n return { encode, decode };\n}\n/**\n * Encodes integer radix representation to array of strings using alphabet and back.\n * Could also be array of strings.\n * @__NO_SIDE_EFFECTS__\n */\nfunction alphabet(letters) {\n // mapping 1 to \"b\"\n const lettersA = typeof letters === 'string' ? letters.split('') : letters;\n const len = lettersA.length;\n astrArr('alphabet', lettersA);\n // mapping \"b\" to 1\n const indexes = new Map(lettersA.map((l, i) => [l, i]));\n return {\n encode: (digits) => {\n aArr(digits);\n return digits.map((i) => {\n if (!Number.isSafeInteger(i) || i < 0 || i >= len)\n throw new Error(`alphabet.encode: digit index outside alphabet \"${i}\". Allowed: ${letters}`);\n return lettersA[i];\n });\n },\n decode: (input) => {\n aArr(input);\n return input.map((letter) => {\n astr('alphabet.decode', letter);\n const i = indexes.get(letter);\n if (i === undefined)\n throw new Error(`Unknown letter: \"${letter}\". Allowed: ${letters}`);\n return i;\n });\n },\n };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction join(separator = '') {\n astr('join', separator);\n return {\n encode: (from) => {\n astrArr('join.decode', from);\n return from.join(separator);\n },\n decode: (to) => {\n astr('join.decode', to);\n return to.split(separator);\n },\n };\n}\n/**\n * Pad strings array so it has integer number of bits\n * @__NO_SIDE_EFFECTS__\n */\nfunction padding(bits, chr = '=') {\n anumber(bits);\n astr('padding', chr);\n return {\n encode(data) {\n astrArr('padding.encode', data);\n while ((data.length * bits) % 8)\n data.push(chr);\n return data;\n },\n decode(input) {\n astrArr('padding.decode', input);\n let end = input.length;\n if ((end * bits) % 8)\n throw new Error('padding: invalid, string should have whole number of bytes');\n for (; end > 0 && input[end - 1] === chr; end--) {\n const last = end - 1;\n const byte = last * bits;\n if (byte % 8 === 0)\n throw new Error('padding: invalid, string has too much padding');\n }\n return input.slice(0, end);\n },\n };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction normalize(fn) {\n afn(fn);\n return { encode: (from) => from, decode: (to) => fn(to) };\n}\n/**\n * Slow: O(n^2) time complexity\n */\nfunction convertRadix(data, from, to) {\n // base 1 is impossible\n if (from < 2)\n throw new Error(`convertRadix: invalid from=${from}, base cannot be less than 2`);\n if (to < 2)\n throw new Error(`convertRadix: invalid to=${to}, base cannot be less than 2`);\n aArr(data);\n if (!data.length)\n return [];\n let pos = 0;\n const res = [];\n const digits = Array.from(data, (d) => {\n anumber(d);\n if (d < 0 || d >= from)\n throw new Error(`invalid integer: ${d}`);\n return d;\n });\n const dlen = digits.length;\n while (true) {\n let carry = 0;\n let done = true;\n for (let i = pos; i < dlen; i++) {\n const digit = digits[i];\n const fromCarry = from * carry;\n const digitBase = fromCarry + digit;\n if (!Number.isSafeInteger(digitBase) ||\n fromCarry / from !== carry ||\n digitBase - digit !== fromCarry) {\n throw new Error('convertRadix: carry overflow');\n }\n const div = digitBase / to;\n carry = digitBase % to;\n const rounded = Math.floor(div);\n digits[i] = rounded;\n if (!Number.isSafeInteger(rounded) || rounded * to + carry !== digitBase)\n throw new Error('convertRadix: carry overflow');\n if (!done)\n continue;\n else if (!rounded)\n pos = i;\n else\n done = false;\n }\n res.push(carry);\n if (done)\n break;\n }\n for (let i = 0; i < data.length - 1 && data[i] === 0; i++)\n res.push(0);\n return res.reverse();\n}\nconst gcd = (a, b) => (b === 0 ? a : gcd(b, a % b));\nconst radix2carry = /* @__NO_SIDE_EFFECTS__ */ (from, to) => from + (to - gcd(from, to));\nconst powers = /* @__PURE__ */ (() => {\n let res = [];\n for (let i = 0; i < 40; i++)\n res.push(2 ** i);\n return res;\n})();\n/**\n * Implemented with numbers, because BigInt is 5x slower\n */\nfunction convertRadix2(data, from, to, padding) {\n aArr(data);\n if (from <= 0 || from > 32)\n throw new Error(`convertRadix2: wrong from=${from}`);\n if (to <= 0 || to > 32)\n throw new Error(`convertRadix2: wrong to=${to}`);\n if (radix2carry(from, to) > 32) {\n throw new Error(`convertRadix2: carry overflow from=${from} to=${to} carryBits=${radix2carry(from, to)}`);\n }\n let carry = 0;\n let pos = 0; // bitwise position in current element\n const max = powers[from];\n const mask = powers[to] - 1;\n const res = [];\n for (const n of data) {\n anumber(n);\n if (n >= max)\n throw new Error(`convertRadix2: invalid data word=${n} from=${from}`);\n carry = (carry << from) | n;\n if (pos + from > 32)\n throw new Error(`convertRadix2: carry overflow pos=${pos} from=${from}`);\n pos += from;\n for (; pos >= to; pos -= to)\n res.push(((carry >> (pos - to)) & mask) >>> 0);\n const pow = powers[pos];\n if (pow === undefined)\n throw new Error('invalid carry');\n carry &= pow - 1; // clean carry, otherwise it will cause overflow\n }\n carry = (carry << (to - pos)) & mask;\n if (!padding && pos >= from)\n throw new Error('Excess padding');\n if (!padding && carry > 0)\n throw new Error(`Non-zero padding: ${carry}`);\n if (padding && pos > 0)\n res.push(carry >>> 0);\n return res;\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction radix(num) {\n anumber(num);\n const _256 = 2 ** 8;\n return {\n encode: (bytes) => {\n if (!isBytes(bytes))\n throw new Error('radix.encode input should be Uint8Array');\n return convertRadix(Array.from(bytes), _256, num);\n },\n decode: (digits) => {\n anumArr('radix.decode', digits);\n return Uint8Array.from(convertRadix(digits, num, _256));\n },\n };\n}\n/**\n * If both bases are power of same number (like `2**8 <-> 2**64`),\n * there is a linear algorithm. For now we have implementation for power-of-two bases only.\n * @__NO_SIDE_EFFECTS__\n */\nfunction radix2(bits, revPadding = false) {\n anumber(bits);\n if (bits <= 0 || bits > 32)\n throw new Error('radix2: bits should be in (0..32]');\n if (radix2carry(8, bits) > 32 || radix2carry(bits, 8) > 32)\n throw new Error('radix2: carry overflow');\n return {\n encode: (bytes) => {\n if (!isBytes(bytes))\n throw new Error('radix2.encode input should be Uint8Array');\n return convertRadix2(Array.from(bytes), 8, bits, !revPadding);\n },\n decode: (digits) => {\n anumArr('radix2.decode', digits);\n return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding));\n },\n };\n}\nfunction unsafeWrapper(fn) {\n afn(fn);\n return function (...args) {\n try {\n return fn.apply(null, args);\n }\n catch (e) { }\n };\n}\nfunction checksum(len, fn) {\n anumber(len);\n afn(fn);\n return {\n encode(data) {\n if (!isBytes(data))\n throw new Error('checksum.encode: input should be Uint8Array');\n const sum = fn(data).slice(0, len);\n const res = new Uint8Array(data.length + len);\n res.set(data);\n res.set(sum, data.length);\n return res;\n },\n decode(data) {\n if (!isBytes(data))\n throw new Error('checksum.decode: input should be Uint8Array');\n const payload = data.slice(0, -len);\n const oldChecksum = data.slice(-len);\n const newChecksum = fn(payload).slice(0, len);\n for (let i = 0; i < len; i++)\n if (newChecksum[i] !== oldChecksum[i])\n throw new Error('Invalid checksum');\n return payload;\n },\n };\n}\n// prettier-ignore\nexport const utils = {\n alphabet, chain, checksum, convertRadix, convertRadix2, radix, radix2, join, padding,\n};\n// RFC 4648 aka RFC 3548\n// ---------------------\n/**\n * base16 encoding from RFC 4648.\n * @example\n * ```js\n * base16.encode(Uint8Array.from([0x12, 0xab]));\n * // => '12AB'\n * ```\n */\nexport const base16 = chain(radix2(4), alphabet('0123456789ABCDEF'), join(''));\n/**\n * base32 encoding from RFC 4648. Has padding.\n * Use `base32nopad` for unpadded version.\n * Also check out `base32hex`, `base32hexnopad`, `base32crockford`.\n * @example\n * ```js\n * base32.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'CKVQ===='\n * base32.decode('CKVQ====');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base32 = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), padding(5), join(''));\n/**\n * base32 encoding from RFC 4648. No padding.\n * Use `base32` for padded version.\n * Also check out `base32hex`, `base32hexnopad`, `base32crockford`.\n * @example\n * ```js\n * base32nopad.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'CKVQ'\n * base32nopad.decode('CKVQ');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base32nopad = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), join(''));\n/**\n * base32 encoding from RFC 4648. Padded. Compared to ordinary `base32`, slightly different alphabet.\n * Use `base32hexnopad` for unpadded version.\n * @example\n * ```js\n * base32hex.encode(Uint8Array.from([0x12, 0xab]));\n * // => '2ALG===='\n * base32hex.decode('2ALG====');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base32hex = chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), padding(5), join(''));\n/**\n * base32 encoding from RFC 4648. No padding. Compared to ordinary `base32`, slightly different alphabet.\n * Use `base32hex` for padded version.\n * @example\n * ```js\n * base32hexnopad.encode(Uint8Array.from([0x12, 0xab]));\n * // => '2ALG'\n * base32hexnopad.decode('2ALG');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base32hexnopad = chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), join(''));\n/**\n * base32 encoding from RFC 4648. Doug Crockford's version.\n * https://www.crockford.com/base32.html\n * @example\n * ```js\n * base32crockford.encode(Uint8Array.from([0x12, 0xab]));\n * // => '2ANG'\n * base32crockford.decode('2ANG');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base32crockford = chain(radix2(5), alphabet('0123456789ABCDEFGHJKMNPQRSTVWXYZ'), join(''), normalize((s) => s.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1')));\n// Built-in base64 conversion https://caniuse.com/mdn-javascript_builtins_uint8array_frombase64\n// prettier-ignore\nconst hasBase64Builtin = /* @__PURE__ */ (() => typeof Uint8Array.from([]).toBase64 === 'function' &&\n typeof Uint8Array.fromBase64 === 'function')();\nconst decodeBase64Builtin = (s, isUrl) => {\n astr('base64', s);\n const re = isUrl ? /^[A-Za-z0-9=_-]+$/ : /^[A-Za-z0-9=+/]+$/;\n const alphabet = isUrl ? 'base64url' : 'base64';\n if (s.length > 0 && !re.test(s))\n throw new Error('invalid base64');\n return Uint8Array.fromBase64(s, { alphabet, lastChunkHandling: 'strict' });\n};\n/**\n * base64 from RFC 4648. Padded.\n * Use `base64nopad` for unpadded version.\n * Also check out `base64url`, `base64urlnopad`.\n * Falls back to built-in function, when available.\n * @example\n * ```js\n * base64.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'Eqs='\n * base64.decode('Eqs=');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\n// prettier-ignore\nexport const base64 = hasBase64Builtin ? {\n encode(b) { abytes(b); return b.toBase64(); },\n decode(s) { return decodeBase64Builtin(s, false); },\n} : chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), padding(6), join(''));\n/**\n * base64 from RFC 4648. No padding.\n * Use `base64` for padded version.\n * @example\n * ```js\n * base64nopad.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'Eqs'\n * base64nopad.decode('Eqs');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base64nopad = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), join(''));\n/**\n * base64 from RFC 4648, using URL-safe alphabet. Padded.\n * Use `base64urlnopad` for unpadded version.\n * Falls back to built-in function, when available.\n * @example\n * ```js\n * base64url.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'Eqs='\n * base64url.decode('Eqs=');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\n// prettier-ignore\nexport const base64url = hasBase64Builtin ? {\n encode(b) { abytes(b); return b.toBase64({ alphabet: 'base64url' }); },\n decode(s) { return decodeBase64Builtin(s, true); },\n} : chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), padding(6), join(''));\n/**\n * base64 from RFC 4648, using URL-safe alphabet. No padding.\n * Use `base64url` for padded version.\n * @example\n * ```js\n * base64urlnopad.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'Eqs'\n * base64urlnopad.decode('Eqs');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base64urlnopad = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), join(''));\n// base58 code\n// -----------\nconst genBase58 = /* @__NO_SIDE_EFFECTS__ */ (abc) => chain(radix(58), alphabet(abc), join(''));\n/**\n * base58: base64 without ambigous characters +, /, 0, O, I, l.\n * Quadratic (O(n^2)) - so, can't be used on large inputs.\n * @example\n * ```js\n * base58.decode('01abcdef');\n * // => '3UhJW'\n * ```\n */\nexport const base58 = genBase58('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz');\n/**\n * base58: flickr version. Check out `base58`.\n */\nexport const base58flickr = genBase58('123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ');\n/**\n * base58: XRP version. Check out `base58`.\n */\nexport const base58xrp = genBase58('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz');\n// Data len (index) -> encoded block len\nconst XMR_BLOCK_LEN = [0, 2, 3, 5, 6, 7, 9, 10, 11];\n/**\n * base58: XMR version. Check out `base58`.\n * Done in 8-byte blocks (which equals 11 chars in decoding). Last (non-full) block padded with '1' to size in XMR_BLOCK_LEN.\n * Block encoding significantly reduces quadratic complexity of base58.\n */\nexport const base58xmr = {\n encode(data) {\n let res = '';\n for (let i = 0; i < data.length; i += 8) {\n const block = data.subarray(i, i + 8);\n res += base58.encode(block).padStart(XMR_BLOCK_LEN[block.length], '1');\n }\n return res;\n },\n decode(str) {\n let res = [];\n for (let i = 0; i < str.length; i += 11) {\n const slice = str.slice(i, i + 11);\n const blockLen = XMR_BLOCK_LEN.indexOf(slice.length);\n const block = base58.decode(slice);\n for (let j = 0; j < block.length - blockLen; j++) {\n if (block[j] !== 0)\n throw new Error('base58xmr: wrong padding');\n }\n res = res.concat(Array.from(block.slice(block.length - blockLen)));\n }\n return Uint8Array.from(res);\n },\n};\n/**\n * Method, which creates base58check encoder.\n * Requires function, calculating sha256.\n */\nexport const createBase58check = (sha256) => chain(checksum(4, (data) => sha256(sha256(data))), base58);\n/**\n * Use `createBase58check` instead.\n * @deprecated\n */\nexport const base58check = createBase58check;\nconst BECH_ALPHABET = chain(alphabet('qpzry9x8gf2tvdw0s3jn54khce6mua7l'), join(''));\nconst POLYMOD_GENERATORS = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];\nfunction bech32Polymod(pre) {\n const b = pre >> 25;\n let chk = (pre & 0x1ffffff) << 5;\n for (let i = 0; i < POLYMOD_GENERATORS.length; i++) {\n if (((b >> i) & 1) === 1)\n chk ^= POLYMOD_GENERATORS[i];\n }\n return chk;\n}\nfunction bechChecksum(prefix, words, encodingConst = 1) {\n const len = prefix.length;\n let chk = 1;\n for (let i = 0; i < len; i++) {\n const c = prefix.charCodeAt(i);\n if (c < 33 || c > 126)\n throw new Error(`Invalid prefix (${prefix})`);\n chk = bech32Polymod(chk) ^ (c >> 5);\n }\n chk = bech32Polymod(chk);\n for (let i = 0; i < len; i++)\n chk = bech32Polymod(chk) ^ (prefix.charCodeAt(i) & 0x1f);\n for (let v of words)\n chk = bech32Polymod(chk) ^ v;\n for (let i = 0; i < 6; i++)\n chk = bech32Polymod(chk);\n chk ^= encodingConst;\n return BECH_ALPHABET.encode(convertRadix2([chk % powers[30]], 30, 5, false));\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction genBech32(encoding) {\n const ENCODING_CONST = encoding === 'bech32' ? 1 : 0x2bc830a3;\n const _words = radix2(5);\n const fromWords = _words.decode;\n const toWords = _words.encode;\n const fromWordsUnsafe = unsafeWrapper(fromWords);\n function encode(prefix, words, limit = 90) {\n astr('bech32.encode prefix', prefix);\n if (isBytes(words))\n words = Array.from(words);\n anumArr('bech32.encode', words);\n const plen = prefix.length;\n if (plen === 0)\n throw new TypeError(`Invalid prefix length ${plen}`);\n const actualLength = plen + 7 + words.length;\n if (limit !== false && actualLength > limit)\n throw new TypeError(`Length ${actualLength} exceeds limit ${limit}`);\n const lowered = prefix.toLowerCase();\n const sum = bechChecksum(lowered, words, ENCODING_CONST);\n return `${lowered}1${BECH_ALPHABET.encode(words)}${sum}`;\n }\n function decode(str, limit = 90) {\n astr('bech32.decode input', str);\n const slen = str.length;\n if (slen < 8 || (limit !== false && slen > limit))\n throw new TypeError(`invalid string length: ${slen} (${str}). Expected (8..${limit})`);\n // don't allow mixed case\n const lowered = str.toLowerCase();\n if (str !== lowered && str !== str.toUpperCase())\n throw new Error(`String must be lowercase or uppercase`);\n const sepIndex = lowered.lastIndexOf('1');\n if (sepIndex === 0 || sepIndex === -1)\n throw new Error(`Letter \"1\" must be present between prefix and data only`);\n const prefix = lowered.slice(0, sepIndex);\n const data = lowered.slice(sepIndex + 1);\n if (data.length < 6)\n throw new Error('Data must be at least 6 characters long');\n const words = BECH_ALPHABET.decode(data).slice(0, -6);\n const sum = bechChecksum(prefix, words, ENCODING_CONST);\n if (!data.endsWith(sum))\n throw new Error(`Invalid checksum in ${str}: expected \"${sum}\"`);\n return { prefix, words };\n }\n const decodeUnsafe = unsafeWrapper(decode);\n function decodeToBytes(str) {\n const { prefix, words } = decode(str, false);\n return { prefix, words, bytes: fromWords(words) };\n }\n function encodeFromBytes(prefix, bytes) {\n return encode(prefix, toWords(bytes));\n }\n return {\n encode,\n decode,\n encodeFromBytes,\n decodeToBytes,\n decodeUnsafe,\n fromWords,\n fromWordsUnsafe,\n toWords,\n };\n}\n/**\n * bech32 from BIP 173. Operates on words.\n * For high-level, check out scure-btc-signer:\n * https://github.com/paulmillr/scure-btc-signer.\n */\nexport const bech32 = genBech32('bech32');\n/**\n * bech32m from BIP 350. Operates on words.\n * It was to mitigate `bech32` weaknesses.\n * For high-level, check out scure-btc-signer:\n * https://github.com/paulmillr/scure-btc-signer.\n */\nexport const bech32m = genBech32('bech32m');\n/**\n * UTF-8-to-byte decoder. Uses built-in TextDecoder / TextEncoder.\n * @example\n * ```js\n * const b = utf8.decode(\"hey\"); // => new Uint8Array([ 104, 101, 121 ])\n * const str = utf8.encode(b); // \"hey\"\n * ```\n */\nexport const utf8 = {\n encode: (data) => new TextDecoder().decode(data),\n decode: (str) => new TextEncoder().encode(str),\n};\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\n// prettier-ignore\nconst hasHexBuiltin = /* @__PURE__ */ (() => typeof Uint8Array.from([]).toHex === 'function' &&\n typeof Uint8Array.fromHex === 'function')();\n// prettier-ignore\nconst hexBuiltin = {\n encode(data) { abytes(data); return data.toHex(); },\n decode(s) { astr('hex', s); return Uint8Array.fromHex(s); },\n};\n/**\n * hex string decoder. Uses built-in function, when available.\n * @example\n * ```js\n * const b = hex.decode(\"0102ff\"); // => new Uint8Array([ 1, 2, 255 ])\n * const str = hex.encode(b); // \"0102ff\"\n * ```\n */\nexport const hex = hasHexBuiltin\n ? hexBuiltin\n : chain(radix2(4), alphabet('0123456789abcdef'), join(''), normalize((s) => {\n if (typeof s !== 'string' || s.length % 2 !== 0)\n throw new TypeError(`hex.decode: expected string, got ${typeof s} with length ${s.length}`);\n return s.toLowerCase();\n }));\n// prettier-ignore\nconst CODERS = {\n utf8, hex, base16, base32, base64, base64url, base58, base58xmr\n};\nconst coderTypeError = 'Invalid encoding type. Available types: utf8, hex, base16, base32, base64, base64url, base58, base58xmr';\n/** @deprecated */\nexport const bytesToString = (type, bytes) => {\n if (typeof type !== 'string' || !CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (!isBytes(bytes))\n throw new TypeError('bytesToString() expects Uint8Array');\n return CODERS[type].encode(bytes);\n};\n/** @deprecated */\nexport const str = bytesToString; // as in python, but for bytes only\n/** @deprecated */\nexport const stringToBytes = (type, str) => {\n if (!CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (typeof str !== 'string')\n throw new TypeError('stringToBytes() expects string');\n return CODERS[type].decode(str);\n};\n/** @deprecated */\nexport const bytes = stringToBytes;\n//# sourceMappingURL=index.js.map",
8
- "import { bech32, bech32m } from \"@scure/base\";\n\nimport { hexToBytes } from \"../utils/encoding.ts\";\nimport type { PoxAddress } from \"./types.ts\";\nimport { MIN_LOCK_PERIOD, MAX_LOCK_PERIOD, POX_ADDRESS_VERSION } from \"./constants.ts\";\n\n/**\n * Base58 alphabet (Bitcoin standard).\n * Used for decoding legacy P2PKH and P2SH addresses.\n */\nconst BASE58_ALPHABET =\n \"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\";\n\nfunction base58Decode(str: string): Uint8Array {\n let num = 0n;\n for (const char of str) {\n const idx = BASE58_ALPHABET.indexOf(char);\n if (idx === -1) throw new Error(`Invalid base58 character: ${char}`);\n num = num * 58n + BigInt(idx);\n }\n\n // Convert bigint to bytes\n const hex = num.toString(16).padStart(2, \"0\");\n const padded = hex.length % 2 ? \"0\" + hex : hex;\n const rawBytes = hexToBytes(padded);\n\n // Count leading zeros\n let leadingZeros = 0;\n for (const char of str) {\n if (char === \"1\") leadingZeros++;\n else break;\n }\n\n const result = new Uint8Array(leadingZeros + rawBytes.length);\n result.set(rawBytes, leadingZeros);\n return 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 // Bech32/Bech32m (segwit / taproot)\n if (\n address.startsWith(\"bc1\") ||\n address.startsWith(\"tb1\") ||\n address.startsWith(\"bcrt1\")\n ) {\n return parseSegwitAddress(address);\n }\n\n // Legacy base58check (P2PKH / P2SH)\n return parseLegacyAddress(address);\n}\n\nfunction parseSegwitAddress(address: string): PoxAddress {\n // Try bech32 first (v0), then bech32m (v1+)\n let decoded: { prefix: string; words: number[] };\n try {\n decoded = bech32.decode(address as `${string}1${string}`);\n } catch {\n decoded = bech32m.decode(address as `${string}1${string}`);\n }\n\n const witnessVersion = decoded.words[0]!;\n const data = bech32.fromWords(decoded.words.slice(1));\n const hashbytes = new Uint8Array(data);\n\n let version: number;\n if (witnessVersion === 0) {\n if (hashbytes.length === 20) {\n version = POX_ADDRESS_VERSION.p2wpkh;\n } else if (hashbytes.length === 32) {\n version = POX_ADDRESS_VERSION.p2wsh;\n } else {\n throw new Error(`Invalid witness v0 program length: ${hashbytes.length}`);\n }\n } else if (witnessVersion === 1) {\n if (hashbytes.length !== 32) {\n throw new Error(`Invalid witness v1 program length: ${hashbytes.length}`);\n }\n version = POX_ADDRESS_VERSION.p2tr;\n } else {\n throw new Error(`Unsupported witness version: ${witnessVersion}`);\n }\n\n // Pad to 32 bytes (PoX requires buff 32 for hashbytes)\n const padded = new Uint8Array(32);\n padded.set(hashbytes);\n\n return {\n version: new Uint8Array([version]),\n hashbytes: padded,\n };\n}\n\nfunction parseLegacyAddress(address: string): PoxAddress {\n const decoded = base58Decode(address);\n\n // base58check: 1 byte version + 20 byte hash + 4 byte checksum = 25 bytes\n if (decoded.length !== 25) {\n throw new Error(`Invalid legacy address length: ${decoded.length}`);\n }\n\n const versionByte = decoded[0]!;\n const hashbytes = decoded.slice(1, 21);\n\n let version: number;\n // Mainnet P2PKH: 0x00, Testnet P2PKH: 0x6f\n if (versionByte === 0x00 || versionByte === 0x6f) {\n version = POX_ADDRESS_VERSION.p2pkh;\n }\n // Mainnet P2SH: 0x05, Testnet P2SH: 0xc4\n else if (versionByte === 0x05 || versionByte === 0xc4) {\n version = POX_ADDRESS_VERSION.p2sh;\n } else {\n throw new Error(`Unknown legacy address version byte: 0x${versionByte.toString(16)}`);\n }\n\n // Pad to 32 bytes\n const padded = new Uint8Array(32);\n padded.set(hashbytes);\n\n return {\n version: new Uint8Array([version]),\n hashbytes: padded,\n };\n}\n\n/** Validate lock period is within allowed range (1-12). */\nexport function validateLockPeriod(periods: number): boolean {\n return (\n Number.isInteger(periods) &&\n periods >= MIN_LOCK_PERIOD &&\n periods <= MAX_LOCK_PERIOD\n );\n}\n\n/** Calculate the reward cycle for a given burn height. */\nexport function burnHeightToRewardCycle(\n burnHeight: bigint,\n firstBurnchainBlockHeight: bigint,\n rewardCycleLength: bigint\n): bigint {\n return (burnHeight - firstBurnchainBlockHeight) / rewardCycleLength;\n}\n\n/** Calculate the burn height at which a reward cycle starts. */\nexport function rewardCycleToBurnHeight(\n cycle: bigint,\n firstBurnchainBlockHeight: bigint,\n rewardCycleLength: bigint\n): bigint {\n return firstBurnchainBlockHeight + cycle * rewardCycleLength;\n}\n",
9
- "import type { Client } from \"../clients/types.ts\";\nimport { getContract } from \"../actions/getContract.ts\";\nimport { POX_ABI } from \"./abi.ts\";\nimport { POX_CONTRACTS } from \"./constants.ts\";\nimport { parseBtcAddress, validateLockPeriod } from \"./utils.ts\";\nimport { Pc } from \"../postconditions/index.ts\";\nimport type {\n StackStxParams,\n DelegateStxParams,\n StackExtendParams,\n StackIncreaseParams,\n PoxInfo,\n StackerInfo,\n DelegationInfo,\n} from \"./types.ts\";\n\nfunction getPoxContract(client: Client) {\n if (!client.chain) {\n throw new Error(\"Client must have a chain configured\");\n }\n const network = client.chain.network;\n const contract =\n network === \"mainnet\" ? POX_CONTRACTS.mainnet : POX_CONTRACTS.testnet;\n\n return getContract({\n client,\n address: contract.address,\n name: contract.name,\n abi: POX_ABI,\n });\n}\n\n/** Query current PoX network info (cycle, minimum, lengths). */\nexport async function getPoxInfo(client: Client): Promise<PoxInfo> {\n const pox = getPoxContract(client);\n return (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 client: Client,\n address: string\n): Promise<StackerInfo | null> {\n const pox = getPoxContract(client);\n return (await pox.read.getStackerInfo({\n stacker: address,\n })) as StackerInfo | null;\n}\n\n/** Get delegation info for an address. Returns null if not delegating. */\nexport async function getDelegationInfo(\n client: Client,\n address: string\n): Promise<DelegationInfo | null> {\n const pox = getPoxContract(client);\n return (await pox.read.getDelegationInfo({\n stacker: address,\n })) as DelegationInfo | null;\n}\n\n/** Check if an amount meets the minimum stacking threshold. */\nexport async function canStack(\n client: Client,\n amount: bigint\n): Promise<boolean> {\n const info = await getPoxInfo(client);\n return amount >= info.minAmountUstx;\n}\n\n/** Lock STX for stacking (solo). Requires wallet client. */\nexport async function stackStx(\n client: Client,\n params: StackStxParams\n): Promise<string> {\n if (!client.account) throw new Error(\"Wallet client required\");\n\n if (!validateLockPeriod(params.lockPeriod)) {\n throw new Error(\"Lock period must be 1-12 cycles\");\n }\n\n const info = await getPoxInfo(client);\n if (params.amount < info.minAmountUstx) {\n throw new Error(`Amount below minimum: ${info.minAmountUstx}`);\n }\n\n const poxAddr = parseBtcAddress(params.btcAddress);\n const pox = getPoxContract(client);\n\n return pox.call.stackStx(\n {\n amountUstx: params.amount,\n poxAddr,\n startBurnHt: params.startBurnHeight,\n lockPeriod: BigInt(params.lockPeriod),\n signerSig: params.signerSig,\n signerKey: params.signerKey,\n maxAmount: params.maxAmount,\n authId: params.authId,\n },\n {\n postConditions: [\n Pc.principal(client.account.address).willSendEq(params.amount).ustx(),\n ],\n }\n );\n}\n\n/** Delegate STX to a pool operator. Requires wallet client. */\nexport async function delegateStx(\n client: Client,\n params: DelegateStxParams\n): Promise<string> {\n if (!client.account) throw new Error(\"Wallet client required\");\n\n const poxAddr = params.poxAddr ? parseBtcAddress(params.poxAddr) : null;\n const pox = getPoxContract(client);\n\n return pox.call.delegateStx({\n amountUstx: params.amount,\n delegateTo: params.delegateTo,\n untilBurnHt: params.untilBurnHeight ?? null,\n poxAddr,\n });\n}\n\n/** Revoke an active delegation. Requires wallet client. */\nexport async function revokeDelegateStx(client: Client): Promise<string> {\n if (!client.account) throw new Error(\"Wallet client required\");\n const pox = getPoxContract(client);\n return pox.call.revokeDelegateStx({});\n}\n\n/** Extend an active stacking lock. Requires wallet client. */\nexport async function stackExtend(\n client: Client,\n params: StackExtendParams\n): Promise<string> {\n if (!client.account) throw new Error(\"Wallet client required\");\n\n if (!validateLockPeriod(params.extendCount)) {\n throw new Error(\"Extend count must be 1-12 cycles\");\n }\n\n const poxAddr = parseBtcAddress(params.btcAddress);\n const pox = getPoxContract(client);\n\n return pox.call.stackExtend({\n extendCount: BigInt(params.extendCount),\n poxAddr,\n signerSig: params.signerSig,\n signerKey: params.signerKey,\n maxAmount: params.maxAmount,\n authId: params.authId,\n });\n}\n\n/** Increase the amount of locked STX. Requires wallet client. */\nexport async function stackIncrease(\n client: Client,\n params: StackIncreaseParams\n): Promise<string> {\n if (!client.account) throw new Error(\"Wallet client required\");\n\n const pox = getPoxContract(client);\n\n return pox.call.stackIncrease(\n {\n increaseBy: params.increaseBy,\n signerSig: params.signerSig,\n signerKey: params.signerKey,\n maxAmount: params.maxAmount,\n authId: params.authId,\n },\n {\n postConditions: [\n Pc.principal(client.account.address)\n .willSendEq(params.increaseBy)\n .ustx(),\n ],\n }\n );\n}\n",
10
- "import type { Client } from \"../clients/types.ts\";\nimport {\n getPoxInfo,\n getStackerInfo,\n getDelegationInfo,\n canStack,\n stackStx,\n delegateStx,\n revokeDelegateStx,\n stackExtend,\n stackIncrease,\n} from \"./actions.ts\";\nimport type {\n StackStxParams,\n DelegateStxParams,\n StackExtendParams,\n StackIncreaseParams,\n PoxInfo,\n StackerInfo,\n DelegationInfo,\n} from \"./types.ts\";\n\nexport type {\n StackStxParams,\n DelegateStxParams,\n StackExtendParams,\n StackIncreaseParams,\n PoxInfo,\n StackerInfo,\n DelegationInfo,\n};\nexport type { PoxAddress } from \"./types.ts\";\n\n/** Actions provided by the PoX extension. */\nexport type PoxActions = {\n pox: {\n getPoxInfo: () => Promise<PoxInfo>;\n getStackerInfo: (address: string) => Promise<StackerInfo | null>;\n getDelegationInfo: (address: string) => Promise<DelegationInfo | null>;\n canStack: (amount: bigint) => Promise<boolean>;\n stackStx: (params: StackStxParams) => Promise<string>;\n delegateStx: (params: DelegateStxParams) => Promise<string>;\n revokeDelegateStx: () => Promise<string>;\n stackExtend: (params: StackExtendParams) => Promise<string>;\n stackIncrease: (params: StackIncreaseParams) => Promise<string>;\n };\n};\n\nexport { POX_CONTRACTS, POX_ADDRESS_VERSION, MIN_LOCK_PERIOD, MAX_LOCK_PERIOD } from \"./constants.ts\";\nexport {\n parseBtcAddress,\n validateLockPeriod,\n burnHeightToRewardCycle,\n rewardCycleToBurnHeight,\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 return (client: Client) => ({\n pox: {\n /** Query current PoX network info (cycle, minimum, lengths). */\n getPoxInfo: () => getPoxInfo(client),\n\n /** Get stacker info for an address. Returns null if not stacking. */\n getStackerInfo: (address: string) => getStackerInfo(client, address),\n\n /** Get delegation info for an address. Returns null if not delegating. */\n getDelegationInfo: (address: string) => getDelegationInfo(client, address),\n\n /** Check if an amount meets the minimum stacking threshold. */\n canStack: (amount: bigint) => canStack(client, amount),\n\n /** Lock STX for stacking (solo). */\n stackStx: (params: StackStxParams) => stackStx(client, params),\n\n /** Delegate STX to a pool operator. */\n delegateStx: (params: DelegateStxParams) => delegateStx(client, params),\n\n /** Revoke an active delegation. */\n revokeDelegateStx: () => revokeDelegateStx(client),\n\n /** Extend an active stacking lock by additional cycles. */\n stackExtend: (params: StackExtendParams) => stackExtend(client, params),\n\n /** Increase the amount of locked STX. */\n stackIncrease: (params: StackIncreaseParams) =>\n stackIncrease(client, params),\n },\n });\n}\n"
8
+ "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\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\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",
9
+ "import { getContract } 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\tif (!client.chain) {\n\t\tthrow new Error(\"Client must have a chain configured\");\n\t}\n\tconst network = client.chain.network;\n\tconst contract =\n\t\tnetwork === \"mainnet\" ? POX_CONTRACTS.mainnet : POX_CONTRACTS.testnet;\n\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",
10
+ "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\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"
11
11
  ],
12
- "mappings": "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",
12
+ "mappings": "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",
13
13
  "debugId": "6563BD93168F869364756E2164756E21",
14
14
  "names": []
15
15
  }
@@ -155,27 +155,52 @@ function assertMainnet(client) {
155
155
  function getCoreContract(client) {
156
156
  assertMainnet(client);
157
157
  const c = STACKINGDAO_CONTRACTS.core;
158
- return getContract({ client, address: c.address, name: c.name, abi: STACKING_DAO_CORE_ABI });
158
+ return getContract({
159
+ client,
160
+ address: c.address,
161
+ name: c.name,
162
+ abi: STACKING_DAO_CORE_ABI
163
+ });
159
164
  }
160
165
  function getStstxToken(client) {
161
166
  assertMainnet(client);
162
167
  const c = STACKINGDAO_CONTRACTS.ststxToken;
163
- return getContract({ client, address: c.address, name: c.name, abi: SIP010_ABI });
168
+ return getContract({
169
+ client,
170
+ address: c.address,
171
+ name: c.name,
172
+ abi: SIP010_ABI
173
+ });
164
174
  }
165
175
  function getDataCoreV1(client) {
166
176
  assertMainnet(client);
167
177
  const c = STACKINGDAO_CONTRACTS.dataCoreV1;
168
- return getContract({ client, address: c.address, name: c.name, abi: DATA_CORE_V1_ABI });
178
+ return getContract({
179
+ client,
180
+ address: c.address,
181
+ name: c.name,
182
+ abi: DATA_CORE_V1_ABI
183
+ });
169
184
  }
170
185
  function getDataCoreV3(client) {
171
186
  assertMainnet(client);
172
187
  const c = STACKINGDAO_CONTRACTS.dataCore;
173
- return getContract({ client, address: c.address, name: c.name, abi: DATA_CORE_V3_ABI });
188
+ return getContract({
189
+ client,
190
+ address: c.address,
191
+ name: c.name,
192
+ abi: DATA_CORE_V3_ABI
193
+ });
174
194
  }
175
195
  function getReserveContract(client) {
176
196
  assertMainnet(client);
177
197
  const c = STACKINGDAO_CONTRACTS.reserve;
178
- return getContract({ client, address: c.address, name: c.name, abi: RESERVE_V1_ABI });
198
+ return getContract({
199
+ client,
200
+ address: c.address,
201
+ name: c.name,
202
+ abi: RESERVE_V1_ABI
203
+ });
179
204
  }
180
205
  var traits = {
181
206
  reserve: TRAIT_CONTRACTS.reserve,
@@ -296,5 +321,5 @@ function stackingDao() {
296
321
  });
297
322
  }
298
323
 
299
- //# debugId=27E1F5E2C9B5A83A64756E2164756E21
324
+ //# debugId=801C95F14037427064756E2164756E21
300
325
  //# sourceMappingURL=index.cjs.map
@@ -2,12 +2,12 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/stackingdao/abi.ts", "../src/stackingdao/constants.ts", "../src/stackingdao/actions.ts", "../src/stackingdao/index.ts"],
4
4
  "sourcesContent": [
5
- "import type { AbiContract } from \"../clarity/abi/contract.ts\";\n\nconst withdrawTuple = {\n tuple: [\n { name: \"stx-fee-amount\", type: \"uint128\" },\n { name: \"stx-user-amount\", type: \"uint128\" },\n ],\n} as const;\n\nexport const STACKING_DAO_CORE_ABI = {\n functions: [\n // Public — deposit STX, receive stSTX\n {\n name: \"deposit\",\n access: \"public\",\n args: [\n { name: \"reserve\", type: \"trait_reference\" },\n { name: \"commission-contract\", type: \"trait_reference\" },\n { name: \"staking-contract\", type: \"trait_reference\" },\n { name: \"direct-helpers\", type: \"trait_reference\" },\n { name: \"stx-amount\", type: \"uint128\" },\n { name: \"referrer\", type: { optional: \"principal\" } },\n { name: \"pool\", type: { optional: \"principal\" } },\n ],\n outputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n },\n // Public — initiate withdrawal (burn stSTX, get NFT receipt)\n {\n name: \"init-withdraw\",\n access: \"public\",\n args: [\n { name: \"reserve\", type: \"trait_reference\" },\n { name: \"direct-helpers\", type: \"trait_reference\" },\n { name: \"ststx-amount\", type: \"uint128\" },\n ],\n outputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n },\n // Public — finalize withdrawal (burn NFT, receive STX)\n {\n name: \"withdraw\",\n access: \"public\",\n args: [\n { name: \"reserve\", type: \"trait_reference\" },\n { name: \"commission-contract\", type: \"trait_reference\" },\n { name: \"staking-contract\", type: \"trait_reference\" },\n { name: \"nft-id\", type: \"uint128\" },\n ],\n outputs: { response: { ok: withdrawTuple, error: \"uint128\" } },\n },\n // Public — withdraw idle STX (instant, no NFT)\n {\n name: \"withdraw-idle\",\n access: \"public\",\n args: [\n { name: \"reserve\", type: \"trait_reference\" },\n { name: \"direct-helpers\", type: \"trait_reference\" },\n { name: \"commission-contract\", type: \"trait_reference\" },\n { name: \"staking-contract\", type: \"trait_reference\" },\n { name: \"ststx-amount\", type: \"uint128\" },\n ],\n outputs: { response: { ok: withdrawTuple, error: \"uint128\" } },\n },\n // Read-only — fees (direct values, no response wrapper)\n {\n name: \"get-stack-fee\",\n access: \"read-only\",\n args: [],\n outputs: \"uint128\",\n },\n {\n name: \"get-unstack-fee\",\n access: \"read-only\",\n args: [],\n outputs: \"uint128\",\n },\n {\n name: \"get-withdraw-idle-fee\",\n access: \"read-only\",\n args: [],\n outputs: \"uint128\",\n },\n // Read-only — shutdown state (direct bool, no response wrapper)\n {\n name: \"get-shutdown-deposits\",\n access: \"read-only\",\n args: [],\n outputs: \"bool\",\n },\n ],\n} as const satisfies AbiContract;\n\nexport const DATA_CORE_V1_ABI = {\n functions: [\n {\n name: \"get-withdrawals-by-nft\",\n access: \"read-only\",\n args: [{ name: \"nft-id\", type: \"uint128\" }],\n outputs: {\n tuple: [\n { name: \"ststx-amount\", type: \"uint128\" },\n { name: \"stx-amount\", type: \"uint128\" },\n { name: \"unlock-burn-height\", type: \"uint128\" },\n ],\n },\n },\n ],\n} as const satisfies AbiContract;\n\nexport const DATA_CORE_V3_ABI = {\n functions: [\n {\n name: \"get-stx-per-ststx-helper\",\n access: \"read-only\",\n args: [{ name: \"stx-amount\", type: \"uint128\" }],\n outputs: \"uint128\",\n },\n ],\n} as const satisfies AbiContract;\n\nexport const RESERVE_V1_ABI = {\n functions: [\n {\n name: \"get-total-stx\",\n access: \"read-only\",\n args: [],\n outputs: { response: { ok: \"uint128\", error: \"none\" } },\n },\n ],\n} as const satisfies AbiContract;\n",
6
- "const DEPLOYER: string = \"SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG\";\n\nexport const STACKINGDAO_CONTRACTS: {\n readonly core: { readonly address: string; readonly name: string };\n readonly ststxToken: { readonly address: string; readonly name: string };\n readonly withdrawNft: { readonly address: string; readonly name: string };\n readonly reserve: { readonly address: string; readonly name: string };\n readonly dataCore: { readonly address: string; readonly name: string };\n readonly dataCoreV1: { readonly address: string; readonly name: string };\n} = {\n core: { address: DEPLOYER, name: \"stacking-dao-core-v6\" },\n ststxToken: { address: DEPLOYER, name: \"ststx-token\" },\n withdrawNft: { address: DEPLOYER, name: \"ststx-withdraw-nft-v2\" },\n reserve: { address: DEPLOYER, name: \"reserve-v1\" },\n dataCore: { address: DEPLOYER, name: \"data-core-v3\" },\n dataCoreV1: { address: DEPLOYER, name: \"data-core-v1\" },\n} as const;\n\n/** Trait contracts auto-passed to core functions — users never need these. */\nexport const TRAIT_CONTRACTS: {\n readonly reserve: string;\n readonly commission: string;\n readonly directHelpers: string;\n readonly staking: string;\n} = {\n reserve: `${DEPLOYER}.reserve-v1`,\n commission: `${DEPLOYER}.commission-v2`,\n directHelpers: `${DEPLOYER}.direct-helpers-v4`,\n staking: `${DEPLOYER}.staking-v0`,\n} as const;\n",
7
- "import type { Client } from \"../clients/types.ts\";\nimport { getContract } from \"../actions/getContract.ts\";\nimport { SIP010_ABI } from \"../clarity/abi/standards.ts\";\nimport {\n STACKING_DAO_CORE_ABI,\n DATA_CORE_V1_ABI,\n DATA_CORE_V3_ABI,\n RESERVE_V1_ABI,\n} from \"./abi.ts\";\nimport { STACKINGDAO_CONTRACTS, TRAIT_CONTRACTS } from \"./constants.ts\";\nimport { Pc } from \"../postconditions/index.ts\";\nimport type {\n DepositParams,\n InitWithdrawParams,\n WithdrawParams,\n WithdrawIdleParams,\n ExchangeRateInfo,\n WithdrawalInfo,\n FeeInfo,\n} from \"./types.ts\";\n\nfunction assertMainnet(client: Client) {\n if (!client.chain) {\n throw new Error(\"Client must have a chain configured\");\n }\n if (client.chain.network !== \"mainnet\") {\n throw new Error(\"StackingDAO is only available on mainnet\");\n }\n}\n\nfunction getCoreContract(client: Client) {\n assertMainnet(client);\n const c = STACKINGDAO_CONTRACTS.core;\n return getContract({ client, address: c.address, name: c.name, abi: STACKING_DAO_CORE_ABI });\n}\n\nfunction getStstxToken(client: Client) {\n assertMainnet(client);\n const c = STACKINGDAO_CONTRACTS.ststxToken;\n return getContract({ client, address: c.address, name: c.name, abi: SIP010_ABI });\n}\n\nfunction getDataCoreV1(client: Client) {\n assertMainnet(client);\n const c = STACKINGDAO_CONTRACTS.dataCoreV1;\n return getContract({ client, address: c.address, name: c.name, abi: DATA_CORE_V1_ABI });\n}\n\nfunction getDataCoreV3(client: Client) {\n assertMainnet(client);\n const c = STACKINGDAO_CONTRACTS.dataCore;\n return getContract({ client, address: c.address, name: c.name, abi: DATA_CORE_V3_ABI });\n}\n\nfunction getReserveContract(client: Client) {\n assertMainnet(client);\n const c = STACKINGDAO_CONTRACTS.reserve;\n return getContract({ client, address: c.address, name: c.name, abi: RESERVE_V1_ABI });\n}\n\nconst traits = {\n reserve: TRAIT_CONTRACTS.reserve,\n commissionContract: TRAIT_CONTRACTS.commission,\n stakingContract: TRAIT_CONTRACTS.staking,\n directHelpers: TRAIT_CONTRACTS.directHelpers,\n};\n\n// ── User Actions ──\n\nexport async function deposit(client: Client, params: DepositParams): Promise<string> {\n const core = getCoreContract(client);\n return core.call.deposit(\n {\n ...traits,\n stxAmount: params.amount,\n referrer: params.referrer ?? null,\n pool: params.pool ?? null,\n },\n {\n postConditions: [\n Pc.principal(client.account!.address).willSendEq(params.amount).ustx(),\n ],\n },\n );\n}\n\nexport async function initWithdraw(client: Client, params: InitWithdrawParams): Promise<string> {\n const core = getCoreContract(client);\n const ststx = STACKINGDAO_CONTRACTS.ststxToken;\n return core.call.initWithdraw(\n {\n reserve: traits.reserve,\n directHelpers: traits.directHelpers,\n ststxAmount: params.ststxAmount,\n },\n {\n postConditions: [\n Pc.principal(client.account!.address)\n .willSendEq(params.ststxAmount)\n .ft(`${ststx.address}.${ststx.name}`, \"ststx\"),\n ],\n },\n );\n}\n\nexport async function withdraw(client: Client, params: WithdrawParams): Promise<string> {\n const core = getCoreContract(client);\n return core.call.withdraw({\n reserve: traits.reserve,\n commissionContract: traits.commissionContract,\n stakingContract: traits.stakingContract,\n nftId: params.nftId,\n });\n}\n\nexport async function withdrawIdle(client: Client, params: WithdrawIdleParams): Promise<string> {\n const core = getCoreContract(client);\n const ststx = STACKINGDAO_CONTRACTS.ststxToken;\n return core.call.withdrawIdle(\n {\n reserve: traits.reserve,\n directHelpers: traits.directHelpers,\n commissionContract: traits.commissionContract,\n stakingContract: traits.stakingContract,\n ststxAmount: params.ststxAmount,\n },\n {\n postConditions: [\n Pc.principal(client.account!.address)\n .willSendEq(params.ststxAmount)\n .ft(`${ststx.address}.${ststx.name}`, \"ststx\"),\n ],\n },\n );\n}\n\n// ── Read-only Queries ──\n\nexport async function getStSTXBalance(client: Client, address: string): Promise<bigint> {\n const token = getStstxToken(client);\n return (await token.read.getBalance({ account: address })) as bigint;\n}\n\nexport async function getExchangeRate(client: Client): Promise<ExchangeRateInfo> {\n const reserve = getReserveContract(client);\n const dataV3 = getDataCoreV3(client);\n\n const [totalStx, ststxSupply] = await Promise.all([\n reserve.read.getTotalStx({}) as Promise<bigint>,\n getTotalSupply(client),\n ]);\n\n const stxPerStstx = (await dataV3.read.getStxPerStstxHelper({\n stxAmount: totalStx,\n })) as bigint;\n\n return { stxPerStstx, ststxSupply, totalStx };\n}\n\nexport async function getTotalSupply(client: Client): Promise<bigint> {\n const token = getStstxToken(client);\n return (await token.read.getTotalSupply({})) as bigint;\n}\n\nexport async function getWithdrawalInfo(\n client: Client,\n nftId: bigint,\n): Promise<WithdrawalInfo> {\n const dataV1 = getDataCoreV1(client);\n return (await dataV1.read.getWithdrawalsByNft({\n nftId,\n })) as WithdrawalInfo;\n}\n\nexport async function getFees(client: Client): Promise<FeeInfo> {\n const core = getCoreContract(client);\n const [stackFee, unstackFee, withdrawIdleFee] = await Promise.all([\n core.read.getStackFee({}) as Promise<bigint>,\n core.read.getUnstackFee({}) as Promise<bigint>,\n core.read.getWithdrawIdleFee({}) as Promise<bigint>,\n ]);\n return { stackFee, unstackFee, withdrawIdleFee };\n}\n\nexport async function getReserveBalance(client: Client): Promise<bigint> {\n const reserve = getReserveContract(client);\n return (await reserve.read.getTotalStx({})) as bigint;\n}\n\nexport async function getShutdownDeposits(client: Client): Promise<boolean> {\n const core = getCoreContract(client);\n return (await core.read.getShutdownDeposits({})) as boolean;\n}\n",
8
- "import type { Client } from \"../clients/types.ts\";\nimport {\n deposit,\n initWithdraw,\n withdraw,\n withdrawIdle,\n getStSTXBalance,\n getExchangeRate,\n getTotalSupply,\n getWithdrawalInfo,\n getFees,\n getReserveBalance,\n getShutdownDeposits,\n} from \"./actions.ts\";\nimport type {\n DepositParams,\n InitWithdrawParams,\n WithdrawParams,\n WithdrawIdleParams,\n ExchangeRateInfo,\n WithdrawalInfo,\n FeeInfo,\n} from \"./types.ts\";\n\nexport type {\n DepositParams,\n InitWithdrawParams,\n WithdrawParams,\n WithdrawIdleParams,\n ExchangeRateInfo,\n WithdrawalInfo,\n FeeInfo,\n};\n/** Actions provided by the StackingDAO extension. */\nexport type StackingDaoActions = {\n stackingDao: {\n deposit: (params: DepositParams) => Promise<string>;\n initWithdraw: (params: InitWithdrawParams) => Promise<string>;\n withdraw: (params: WithdrawParams) => Promise<string>;\n withdrawIdle: (params: WithdrawIdleParams) => Promise<string>;\n getStSTXBalance: (address: string) => Promise<bigint>;\n getExchangeRate: () => Promise<ExchangeRateInfo>;\n getTotalSupply: () => Promise<bigint>;\n getWithdrawalInfo: (nftId: bigint) => Promise<WithdrawalInfo>;\n getFees: () => Promise<FeeInfo>;\n getReserveBalance: () => Promise<bigint>;\n getShutdownDeposits: () => Promise<boolean>;\n };\n};\n\nexport { STACKINGDAO_CONTRACTS, TRAIT_CONTRACTS } from \"./constants.ts\";\n\n/**\n * StackingDAO liquid staking extension.\n * Deposit STX → receive stSTX. Auto-compounding stacking rewards.\n *\n * @example\n * import { createWalletClient, http, mainnet } from \"stacks\";\n * import { stackingDao } from \"stacks/stackingdao\";\n *\n * const client = createWalletClient({ ... }).extend(stackingDao());\n *\n * // Deposit STX for stSTX\n * await client.stackingDao.deposit({ amount: 100_000_000_000n });\n *\n * // Check exchange rate\n * const rate = await client.stackingDao.getExchangeRate();\n */\nexport function stackingDao(): (client: Client) => StackingDaoActions {\n return (client: Client) => ({\n stackingDao: {\n /** Deposit STX, receive stSTX. */\n deposit: (params: DepositParams) => deposit(client, params),\n\n /** Initiate withdrawal — burns stSTX, mints NFT receipt. */\n initWithdraw: (params: InitWithdrawParams) => initWithdraw(client, params),\n\n /** Finalize withdrawal — burns NFT, receive STX. */\n withdraw: (params: WithdrawParams) => withdraw(client, params),\n\n /** Withdraw idle STX instantly (burns stSTX). */\n withdrawIdle: (params: WithdrawIdleParams) => withdrawIdle(client, params),\n\n /** Get stSTX balance for an address. */\n getStSTXBalance: (address: string) => getStSTXBalance(client, address),\n\n /** Get current STX/stSTX exchange rate info. */\n getExchangeRate: () => getExchangeRate(client),\n\n /** Get total stSTX supply. */\n getTotalSupply: () => getTotalSupply(client),\n\n /** Get withdrawal NFT info by ID. Returns tuple with amounts and unlock height. */\n getWithdrawalInfo: (nftId: bigint) => getWithdrawalInfo(client, nftId),\n\n /** Get current fee rates. */\n getFees: () => getFees(client),\n\n /** Get total STX in reserve. */\n getReserveBalance: () => getReserveBalance(client),\n\n /** Check if deposits are shut down. */\n getShutdownDeposits: () => getShutdownDeposits(client),\n },\n });\n}\n"
5
+ "import type { AbiContract } from \"../clarity/abi/contract.ts\";\n\nconst withdrawTuple = {\n\ttuple: [\n\t\t{ name: \"stx-fee-amount\", type: \"uint128\" },\n\t\t{ name: \"stx-user-amount\", type: \"uint128\" },\n\t],\n} as const;\n\nexport const STACKING_DAO_CORE_ABI = {\n\tfunctions: [\n\t\t// Public — deposit STX, receive stSTX\n\t\t{\n\t\t\tname: \"deposit\",\n\t\t\taccess: \"public\",\n\t\t\targs: [\n\t\t\t\t{ name: \"reserve\", type: \"trait_reference\" },\n\t\t\t\t{ name: \"commission-contract\", type: \"trait_reference\" },\n\t\t\t\t{ name: \"staking-contract\", type: \"trait_reference\" },\n\t\t\t\t{ name: \"direct-helpers\", type: \"trait_reference\" },\n\t\t\t\t{ name: \"stx-amount\", type: \"uint128\" },\n\t\t\t\t{ name: \"referrer\", type: { optional: \"principal\" } },\n\t\t\t\t{ name: \"pool\", type: { optional: \"principal\" } },\n\t\t\t],\n\t\t\toutputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n\t\t},\n\t\t// Public — initiate withdrawal (burn stSTX, get NFT receipt)\n\t\t{\n\t\t\tname: \"init-withdraw\",\n\t\t\taccess: \"public\",\n\t\t\targs: [\n\t\t\t\t{ name: \"reserve\", type: \"trait_reference\" },\n\t\t\t\t{ name: \"direct-helpers\", type: \"trait_reference\" },\n\t\t\t\t{ name: \"ststx-amount\", type: \"uint128\" },\n\t\t\t],\n\t\t\toutputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n\t\t},\n\t\t// Public — finalize withdrawal (burn NFT, receive STX)\n\t\t{\n\t\t\tname: \"withdraw\",\n\t\t\taccess: \"public\",\n\t\t\targs: [\n\t\t\t\t{ name: \"reserve\", type: \"trait_reference\" },\n\t\t\t\t{ name: \"commission-contract\", type: \"trait_reference\" },\n\t\t\t\t{ name: \"staking-contract\", type: \"trait_reference\" },\n\t\t\t\t{ name: \"nft-id\", type: \"uint128\" },\n\t\t\t],\n\t\t\toutputs: { response: { ok: withdrawTuple, error: \"uint128\" } },\n\t\t},\n\t\t// Public — withdraw idle STX (instant, no NFT)\n\t\t{\n\t\t\tname: \"withdraw-idle\",\n\t\t\taccess: \"public\",\n\t\t\targs: [\n\t\t\t\t{ name: \"reserve\", type: \"trait_reference\" },\n\t\t\t\t{ name: \"direct-helpers\", type: \"trait_reference\" },\n\t\t\t\t{ name: \"commission-contract\", type: \"trait_reference\" },\n\t\t\t\t{ name: \"staking-contract\", type: \"trait_reference\" },\n\t\t\t\t{ name: \"ststx-amount\", type: \"uint128\" },\n\t\t\t],\n\t\t\toutputs: { response: { ok: withdrawTuple, error: \"uint128\" } },\n\t\t},\n\t\t// Read-only — fees (direct values, no response wrapper)\n\t\t{\n\t\t\tname: \"get-stack-fee\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [],\n\t\t\toutputs: \"uint128\",\n\t\t},\n\t\t{\n\t\t\tname: \"get-unstack-fee\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [],\n\t\t\toutputs: \"uint128\",\n\t\t},\n\t\t{\n\t\t\tname: \"get-withdraw-idle-fee\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [],\n\t\t\toutputs: \"uint128\",\n\t\t},\n\t\t// Read-only — shutdown state (direct bool, no response wrapper)\n\t\t{\n\t\t\tname: \"get-shutdown-deposits\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [],\n\t\t\toutputs: \"bool\",\n\t\t},\n\t],\n} as const satisfies AbiContract;\n\nexport const DATA_CORE_V1_ABI = {\n\tfunctions: [\n\t\t{\n\t\t\tname: \"get-withdrawals-by-nft\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [{ name: \"nft-id\", type: \"uint128\" }],\n\t\t\toutputs: {\n\t\t\t\ttuple: [\n\t\t\t\t\t{ name: \"ststx-amount\", type: \"uint128\" },\n\t\t\t\t\t{ name: \"stx-amount\", type: \"uint128\" },\n\t\t\t\t\t{ name: \"unlock-burn-height\", type: \"uint128\" },\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t],\n} as const satisfies AbiContract;\n\nexport const DATA_CORE_V3_ABI = {\n\tfunctions: [\n\t\t{\n\t\t\tname: \"get-stx-per-ststx-helper\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [{ name: \"stx-amount\", type: \"uint128\" }],\n\t\t\toutputs: \"uint128\",\n\t\t},\n\t],\n} as const satisfies AbiContract;\n\nexport const RESERVE_V1_ABI = {\n\tfunctions: [\n\t\t{\n\t\t\tname: \"get-total-stx\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [],\n\t\t\toutputs: { response: { ok: \"uint128\", error: \"none\" } },\n\t\t},\n\t],\n} as const satisfies AbiContract;\n",
6
+ "const DEPLOYER: string = \"SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG\";\n\nexport const STACKINGDAO_CONTRACTS: {\n\treadonly core: { readonly address: string; readonly name: string };\n\treadonly ststxToken: { readonly address: string; readonly name: string };\n\treadonly withdrawNft: { readonly address: string; readonly name: string };\n\treadonly reserve: { readonly address: string; readonly name: string };\n\treadonly dataCore: { readonly address: string; readonly name: string };\n\treadonly dataCoreV1: { readonly address: string; readonly name: string };\n} = {\n\tcore: { address: DEPLOYER, name: \"stacking-dao-core-v6\" },\n\tststxToken: { address: DEPLOYER, name: \"ststx-token\" },\n\twithdrawNft: { address: DEPLOYER, name: \"ststx-withdraw-nft-v2\" },\n\treserve: { address: DEPLOYER, name: \"reserve-v1\" },\n\tdataCore: { address: DEPLOYER, name: \"data-core-v3\" },\n\tdataCoreV1: { address: DEPLOYER, name: \"data-core-v1\" },\n} as const;\n\n/** Trait contracts auto-passed to core functions — users never need these. */\nexport const TRAIT_CONTRACTS: {\n\treadonly reserve: string;\n\treadonly commission: string;\n\treadonly directHelpers: string;\n\treadonly staking: string;\n} = {\n\treserve: `${DEPLOYER}.reserve-v1`,\n\tcommission: `${DEPLOYER}.commission-v2`,\n\tdirectHelpers: `${DEPLOYER}.direct-helpers-v4`,\n\tstaking: `${DEPLOYER}.staking-v0`,\n} as const;\n",
7
+ "import { getContract } from \"../actions/getContract.ts\";\nimport { SIP010_ABI } from \"../clarity/abi/standards.ts\";\nimport type { Client } from \"../clients/types.ts\";\nimport { Pc } from \"../postconditions/index.ts\";\nimport {\n\tDATA_CORE_V1_ABI,\n\tDATA_CORE_V3_ABI,\n\tRESERVE_V1_ABI,\n\tSTACKING_DAO_CORE_ABI,\n} from \"./abi.ts\";\nimport { STACKINGDAO_CONTRACTS, TRAIT_CONTRACTS } from \"./constants.ts\";\nimport type {\n\tDepositParams,\n\tExchangeRateInfo,\n\tFeeInfo,\n\tInitWithdrawParams,\n\tWithdrawIdleParams,\n\tWithdrawParams,\n\tWithdrawalInfo,\n} from \"./types.ts\";\n\nfunction assertMainnet(client: Client) {\n\tif (!client.chain) {\n\t\tthrow new Error(\"Client must have a chain configured\");\n\t}\n\tif (client.chain.network !== \"mainnet\") {\n\t\tthrow new Error(\"StackingDAO is only available on mainnet\");\n\t}\n}\n\nfunction getCoreContract(client: Client) {\n\tassertMainnet(client);\n\tconst c = STACKINGDAO_CONTRACTS.core;\n\treturn getContract({\n\t\tclient,\n\t\taddress: c.address,\n\t\tname: c.name,\n\t\tabi: STACKING_DAO_CORE_ABI,\n\t});\n}\n\nfunction getStstxToken(client: Client) {\n\tassertMainnet(client);\n\tconst c = STACKINGDAO_CONTRACTS.ststxToken;\n\treturn getContract({\n\t\tclient,\n\t\taddress: c.address,\n\t\tname: c.name,\n\t\tabi: SIP010_ABI,\n\t});\n}\n\nfunction getDataCoreV1(client: Client) {\n\tassertMainnet(client);\n\tconst c = STACKINGDAO_CONTRACTS.dataCoreV1;\n\treturn getContract({\n\t\tclient,\n\t\taddress: c.address,\n\t\tname: c.name,\n\t\tabi: DATA_CORE_V1_ABI,\n\t});\n}\n\nfunction getDataCoreV3(client: Client) {\n\tassertMainnet(client);\n\tconst c = STACKINGDAO_CONTRACTS.dataCore;\n\treturn getContract({\n\t\tclient,\n\t\taddress: c.address,\n\t\tname: c.name,\n\t\tabi: DATA_CORE_V3_ABI,\n\t});\n}\n\nfunction getReserveContract(client: Client) {\n\tassertMainnet(client);\n\tconst c = STACKINGDAO_CONTRACTS.reserve;\n\treturn getContract({\n\t\tclient,\n\t\taddress: c.address,\n\t\tname: c.name,\n\t\tabi: RESERVE_V1_ABI,\n\t});\n}\n\nconst traits = {\n\treserve: TRAIT_CONTRACTS.reserve,\n\tcommissionContract: TRAIT_CONTRACTS.commission,\n\tstakingContract: TRAIT_CONTRACTS.staking,\n\tdirectHelpers: TRAIT_CONTRACTS.directHelpers,\n};\n\n// ── User Actions ──\n\nexport async function deposit(\n\tclient: Client,\n\tparams: DepositParams,\n): Promise<string> {\n\tconst core = getCoreContract(client);\n\treturn core.call.deposit(\n\t\t{\n\t\t\t...traits,\n\t\t\tstxAmount: params.amount,\n\t\t\treferrer: params.referrer ?? null,\n\t\t\tpool: params.pool ?? null,\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\nexport async function initWithdraw(\n\tclient: Client,\n\tparams: InitWithdrawParams,\n): Promise<string> {\n\tconst core = getCoreContract(client);\n\tconst ststx = STACKINGDAO_CONTRACTS.ststxToken;\n\treturn core.call.initWithdraw(\n\t\t{\n\t\t\treserve: traits.reserve,\n\t\t\tdirectHelpers: traits.directHelpers,\n\t\t\tststxAmount: params.ststxAmount,\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.ststxAmount)\n\t\t\t\t\t.ft(`${ststx.address}.${ststx.name}`, \"ststx\"),\n\t\t\t],\n\t\t},\n\t);\n}\n\nexport async function withdraw(\n\tclient: Client,\n\tparams: WithdrawParams,\n): Promise<string> {\n\tconst core = getCoreContract(client);\n\treturn core.call.withdraw({\n\t\treserve: traits.reserve,\n\t\tcommissionContract: traits.commissionContract,\n\t\tstakingContract: traits.stakingContract,\n\t\tnftId: params.nftId,\n\t});\n}\n\nexport async function withdrawIdle(\n\tclient: Client,\n\tparams: WithdrawIdleParams,\n): Promise<string> {\n\tconst core = getCoreContract(client);\n\tconst ststx = STACKINGDAO_CONTRACTS.ststxToken;\n\treturn core.call.withdrawIdle(\n\t\t{\n\t\t\treserve: traits.reserve,\n\t\t\tdirectHelpers: traits.directHelpers,\n\t\t\tcommissionContract: traits.commissionContract,\n\t\t\tstakingContract: traits.stakingContract,\n\t\t\tststxAmount: params.ststxAmount,\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.ststxAmount)\n\t\t\t\t\t.ft(`${ststx.address}.${ststx.name}`, \"ststx\"),\n\t\t\t],\n\t\t},\n\t);\n}\n\n// ── Read-only Queries ──\n\nexport async function getStSTXBalance(\n\tclient: Client,\n\taddress: string,\n): Promise<bigint> {\n\tconst token = getStstxToken(client);\n\treturn (await token.read.getBalance({ account: address })) as bigint;\n}\n\nexport async function getExchangeRate(\n\tclient: Client,\n): Promise<ExchangeRateInfo> {\n\tconst reserve = getReserveContract(client);\n\tconst dataV3 = getDataCoreV3(client);\n\n\tconst [totalStx, ststxSupply] = await Promise.all([\n\t\treserve.read.getTotalStx({}) as Promise<bigint>,\n\t\tgetTotalSupply(client),\n\t]);\n\n\tconst stxPerStstx = (await dataV3.read.getStxPerStstxHelper({\n\t\tstxAmount: totalStx,\n\t})) as bigint;\n\n\treturn { stxPerStstx, ststxSupply, totalStx };\n}\n\nexport async function getTotalSupply(client: Client): Promise<bigint> {\n\tconst token = getStstxToken(client);\n\treturn (await token.read.getTotalSupply({})) as bigint;\n}\n\nexport async function getWithdrawalInfo(\n\tclient: Client,\n\tnftId: bigint,\n): Promise<WithdrawalInfo> {\n\tconst dataV1 = getDataCoreV1(client);\n\treturn (await dataV1.read.getWithdrawalsByNft({\n\t\tnftId,\n\t})) as WithdrawalInfo;\n}\n\nexport async function getFees(client: Client): Promise<FeeInfo> {\n\tconst core = getCoreContract(client);\n\tconst [stackFee, unstackFee, withdrawIdleFee] = await Promise.all([\n\t\tcore.read.getStackFee({}) as Promise<bigint>,\n\t\tcore.read.getUnstackFee({}) as Promise<bigint>,\n\t\tcore.read.getWithdrawIdleFee({}) as Promise<bigint>,\n\t]);\n\treturn { stackFee, unstackFee, withdrawIdleFee };\n}\n\nexport async function getReserveBalance(client: Client): Promise<bigint> {\n\tconst reserve = getReserveContract(client);\n\treturn (await reserve.read.getTotalStx({})) as bigint;\n}\n\nexport async function getShutdownDeposits(client: Client): Promise<boolean> {\n\tconst core = getCoreContract(client);\n\treturn (await core.read.getShutdownDeposits({})) as boolean;\n}\n",
8
+ "import type { Client } from \"../clients/types.ts\";\nimport {\n\tdeposit,\n\tgetExchangeRate,\n\tgetFees,\n\tgetReserveBalance,\n\tgetShutdownDeposits,\n\tgetStSTXBalance,\n\tgetTotalSupply,\n\tgetWithdrawalInfo,\n\tinitWithdraw,\n\twithdraw,\n\twithdrawIdle,\n} from \"./actions.ts\";\nimport type {\n\tDepositParams,\n\tExchangeRateInfo,\n\tFeeInfo,\n\tInitWithdrawParams,\n\tWithdrawIdleParams,\n\tWithdrawParams,\n\tWithdrawalInfo,\n} from \"./types.ts\";\n\nexport type {\n\tDepositParams,\n\tInitWithdrawParams,\n\tWithdrawParams,\n\tWithdrawIdleParams,\n\tExchangeRateInfo,\n\tWithdrawalInfo,\n\tFeeInfo,\n};\n/** Actions provided by the StackingDAO extension. */\nexport type StackingDaoActions = {\n\tstackingDao: {\n\t\tdeposit: (params: DepositParams) => Promise<string>;\n\t\tinitWithdraw: (params: InitWithdrawParams) => Promise<string>;\n\t\twithdraw: (params: WithdrawParams) => Promise<string>;\n\t\twithdrawIdle: (params: WithdrawIdleParams) => Promise<string>;\n\t\tgetStSTXBalance: (address: string) => Promise<bigint>;\n\t\tgetExchangeRate: () => Promise<ExchangeRateInfo>;\n\t\tgetTotalSupply: () => Promise<bigint>;\n\t\tgetWithdrawalInfo: (nftId: bigint) => Promise<WithdrawalInfo>;\n\t\tgetFees: () => Promise<FeeInfo>;\n\t\tgetReserveBalance: () => Promise<bigint>;\n\t\tgetShutdownDeposits: () => Promise<boolean>;\n\t};\n};\n\nexport { STACKINGDAO_CONTRACTS, TRAIT_CONTRACTS } from \"./constants.ts\";\n\n/**\n * StackingDAO liquid staking extension.\n * Deposit STX → receive stSTX. Auto-compounding stacking rewards.\n *\n * @example\n * import { createWalletClient, http, mainnet } from \"stacks\";\n * import { stackingDao } from \"stacks/stackingdao\";\n *\n * const client = createWalletClient({ ... }).extend(stackingDao());\n *\n * // Deposit STX for stSTX\n * await client.stackingDao.deposit({ amount: 100_000_000_000n });\n *\n * // Check exchange rate\n * const rate = await client.stackingDao.getExchangeRate();\n */\nexport function stackingDao(): (client: Client) => StackingDaoActions {\n\treturn (client: Client) => ({\n\t\tstackingDao: {\n\t\t\t/** Deposit STX, receive stSTX. */\n\t\t\tdeposit: (params: DepositParams) => deposit(client, params),\n\n\t\t\t/** Initiate withdrawal — burns stSTX, mints NFT receipt. */\n\t\t\tinitWithdraw: (params: InitWithdrawParams) =>\n\t\t\t\tinitWithdraw(client, params),\n\n\t\t\t/** Finalize withdrawal — burns NFT, receive STX. */\n\t\t\twithdraw: (params: WithdrawParams) => withdraw(client, params),\n\n\t\t\t/** Withdraw idle STX instantly (burns stSTX). */\n\t\t\twithdrawIdle: (params: WithdrawIdleParams) =>\n\t\t\t\twithdrawIdle(client, params),\n\n\t\t\t/** Get stSTX balance for an address. */\n\t\t\tgetStSTXBalance: (address: string) => getStSTXBalance(client, address),\n\n\t\t\t/** Get current STX/stSTX exchange rate info. */\n\t\t\tgetExchangeRate: () => getExchangeRate(client),\n\n\t\t\t/** Get total stSTX supply. */\n\t\t\tgetTotalSupply: () => getTotalSupply(client),\n\n\t\t\t/** Get withdrawal NFT info by ID. Returns tuple with amounts and unlock height. */\n\t\t\tgetWithdrawalInfo: (nftId: bigint) => getWithdrawalInfo(client, nftId),\n\n\t\t\t/** Get current fee rates. */\n\t\t\tgetFees: () => getFees(client),\n\n\t\t\t/** Get total STX in reserve. */\n\t\t\tgetReserveBalance: () => getReserveBalance(client),\n\n\t\t\t/** Check if deposits are shut down. */\n\t\t\tgetShutdownDeposits: () => getShutdownDeposits(client),\n\t\t},\n\t});\n}\n"
9
9
  ],
10
- "mappings": "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",
11
- "debugId": "27E1F5E2C9B5A83A64756E2164756E21",
10
+ "mappings": "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",
11
+ "debugId": "801C95F14037427064756E2164756E21",
12
12
  "names": []
13
13
  }
@@ -1,3 +1,32 @@
1
+ /** Account derived from a local private key (mnemonic or raw key). */
2
+ type LocalAccount = {
3
+ type: "local"
4
+ address: string
5
+ /** Compressed public key (hex) */
6
+ publicKey: string
7
+ /** Raw ECDSA sign over a hash */
8
+ sign(hash: Uint8Array): Uint8Array
9
+ /** Sign a structured message (SIP-018) */
10
+ signMessage(message: string | Uint8Array): string
11
+ };
12
+ /** Account with a user-provided signing function (sync or async). */
13
+ type CustomAccount = {
14
+ type: "custom"
15
+ address: string
16
+ publicKey: string
17
+ sign(hash: Uint8Array): Promise<Uint8Array> | Uint8Array
18
+ };
19
+ /** Browser wallet provider interface (e.g. Leather, Xverse). */
20
+ type StacksProvider = {
21
+ request(method: string, params?: any): Promise<any>
22
+ };
23
+ /** Account backed by a browser wallet {@link StacksProvider}. */
24
+ type ProviderAccount = {
25
+ type: "provider"
26
+ address: string
27
+ publicKey: string
28
+ provider: StacksProvider
29
+ };
1
30
  /** Full chain descriptor used by clients and transports for network-aware operations. */
2
31
  type StacksChain = {
3
32
  /** Chain ID (e.g. 0x00000001 for mainnet) */
@@ -64,35 +93,6 @@ type Transport = {
64
93
  config: TransportConfig
65
94
  destroy?: () => void
66
95
  };
67
- /** Account derived from a local private key (mnemonic or raw key). */
68
- type LocalAccount = {
69
- type: "local"
70
- address: string
71
- /** Compressed public key (hex) */
72
- publicKey: string
73
- /** Raw ECDSA sign over a hash */
74
- sign(hash: Uint8Array): Uint8Array
75
- /** Sign a structured message (SIP-018) */
76
- signMessage(message: string | Uint8Array): string
77
- };
78
- /** Account with a user-provided signing function (sync or async). */
79
- type CustomAccount = {
80
- type: "custom"
81
- address: string
82
- publicKey: string
83
- sign(hash: Uint8Array): Promise<Uint8Array> | Uint8Array
84
- };
85
- /** Browser wallet provider interface (e.g. Leather, Xverse). */
86
- type StacksProvider = {
87
- request(method: string, params?: any): Promise<any>
88
- };
89
- /** Account backed by a browser wallet {@link StacksProvider}. */
90
- type ProviderAccount = {
91
- type: "provider"
92
- address: string
93
- publicKey: string
94
- provider: StacksProvider
95
- };
96
96
  /** Union of all supported account types (local key, custom signer, or browser provider). */
97
97
  type Account = LocalAccount | CustomAccount | ProviderAccount;
98
98
  /**