@secondlayer/stacks 6.0.0 → 6.1.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 (153) hide show
  1. package/dist/shared/{stacks-qt8ehebn.js → stacks-esm-0rdxcta7.js} +2 -2
  2. package/dist/shared/{stacks-qt8ehebn.js.map → stacks-esm-0rdxcta7.js.map} +1 -1
  3. package/dist/shared/{stacks-4hs8r4q2.js → stacks-esm-1jae0a3r.js} +2 -2
  4. package/dist/shared/{stacks-xjkn3en1.cjs.map → stacks-esm-1jae0a3r.js.map} +1 -1
  5. package/dist/shared/{stacks-4d7c3x27.js → stacks-esm-2mc7ebrm.js} +3 -3
  6. package/dist/shared/{stacks-4d7c3x27.js.map → stacks-esm-2mc7ebrm.js.map} +1 -1
  7. package/dist/shared/{stacks-8brgfvqx.js → stacks-esm-3g33bqsm.js} +4 -4
  8. package/dist/shared/{stacks-8brgfvqx.js.map → stacks-esm-3g33bqsm.js.map} +1 -1
  9. package/dist/shared/{stacks-gjz26k6b.js → stacks-esm-3pv5avgr.js} +59 -15
  10. package/dist/shared/stacks-esm-3pv5avgr.js.map +12 -0
  11. package/dist/shared/{stacks-qex691bh.js → stacks-esm-743jfh10.js} +6 -6
  12. package/dist/shared/{stacks-qex691bh.js.map → stacks-esm-743jfh10.js.map} +1 -1
  13. package/dist/shared/{stacks-wxfd6r4b.js → stacks-esm-7fpqgtyx.js} +3 -3
  14. package/dist/shared/{stacks-wxfd6r4b.js.map → stacks-esm-7fpqgtyx.js.map} +1 -1
  15. package/dist/shared/{stacks-71k0vmct.js → stacks-esm-9rnx0zxr.js} +5 -5
  16. package/dist/shared/{stacks-71k0vmct.js.map → stacks-esm-9rnx0zxr.js.map} +1 -1
  17. package/dist/shared/{stacks-fd4rx56e.js → stacks-esm-aw2mj3sj.js} +7 -7
  18. package/dist/shared/{stacks-fd4rx56e.js.map → stacks-esm-aw2mj3sj.js.map} +1 -1
  19. package/dist/shared/{stacks-qs5fzts5.js → stacks-esm-cvhazvhd.js} +2 -2
  20. package/dist/shared/{stacks-qs5fzts5.js.map → stacks-esm-cvhazvhd.js.map} +1 -1
  21. package/dist/shared/{stacks-69nq48jp.js → stacks-esm-fcfdn2zx.js} +5 -5
  22. package/dist/shared/{stacks-69nq48jp.js.map → stacks-esm-fcfdn2zx.js.map} +1 -1
  23. package/dist/shared/{stacks-x0qqwrev.js → stacks-esm-hr7fpxtj.js} +4 -4
  24. package/dist/shared/{stacks-x0qqwrev.js.map → stacks-esm-hr7fpxtj.js.map} +1 -1
  25. package/dist/shared/{stacks-mbt36bzt.js → stacks-esm-kds4n82p.js} +11 -11
  26. package/dist/shared/{stacks-mbt36bzt.js.map → stacks-esm-kds4n82p.js.map} +1 -1
  27. package/dist/shared/{stacks-kg1npstf.js → stacks-esm-n53kvwmt.js} +2 -2
  28. package/dist/shared/{stacks-kg1npstf.js.map → stacks-esm-n53kvwmt.js.map} +1 -1
  29. package/dist/shared/{stacks-v2rfr46a.js → stacks-esm-pxhfqfff.js} +4 -4
  30. package/dist/shared/{stacks-v2rfr46a.js.map → stacks-esm-pxhfqfff.js.map} +1 -1
  31. package/dist/shared/{stacks-yajyej2y.js → stacks-esm-q19a17fd.js} +3 -3
  32. package/dist/shared/{stacks-yajyej2y.js.map → stacks-esm-q19a17fd.js.map} +1 -1
  33. package/dist/shared/{stacks-v03zef3g.js → stacks-esm-qk0p9fr6.js} +9 -9
  34. package/dist/shared/{stacks-v03zef3g.js.map → stacks-esm-qk0p9fr6.js.map} +1 -1
  35. package/dist/shared/{stacks-qcae5852.js → stacks-esm-qkj67g80.js} +2 -2
  36. package/dist/shared/{stacks-qcae5852.js.map → stacks-esm-qkj67g80.js.map} +1 -1
  37. package/dist/shared/{stacks-mftyrc60.js → stacks-esm-r6dejrgr.js} +4 -4
  38. package/dist/shared/{stacks-mftyrc60.js.map → stacks-esm-r6dejrgr.js.map} +1 -1
  39. package/dist/shared/{stacks-9c1yam8b.js → stacks-esm-r9q4wnyw.js} +5 -5
  40. package/dist/shared/{stacks-9c1yam8b.js.map → stacks-esm-r9q4wnyw.js.map} +1 -1
  41. package/dist/shared/{stacks-51ybf135.js → stacks-esm-skmcf5n2.js} +5 -5
  42. package/dist/shared/{stacks-51ybf135.js.map → stacks-esm-skmcf5n2.js.map} +1 -1
  43. package/dist/shared/{stacks-yvb7rvwk.js → stacks-esm-v45990hx.js} +2 -2
  44. package/dist/shared/{stacks-8vzxax5e.cjs.map → stacks-esm-v45990hx.js.map} +1 -1
  45. package/dist/shared/{stacks-z90xdr1x.js → stacks-esm-wv67m4g6.js} +3 -3
  46. package/dist/shared/{stacks-z90xdr1x.js.map → stacks-esm-wv67m4g6.js.map} +1 -1
  47. package/dist/shared/{stacks-1m3m1agc.js → stacks-esm-x1r01353.js} +5 -5
  48. package/dist/shared/{stacks-1m3m1agc.js.map → stacks-esm-x1r01353.js.map} +1 -1
  49. package/dist/src/accounts/index.cjs +558 -4
  50. package/dist/src/accounts/index.cjs.map +10 -4
  51. package/dist/src/accounts/index.js +3 -3
  52. package/dist/src/actions/index.cjs +3815 -1
  53. package/dist/src/actions/index.cjs.map +65 -3
  54. package/dist/src/actions/index.js +14 -14
  55. package/dist/src/bitcoin/index.cjs +2477 -1
  56. package/dist/src/bitcoin/index.cjs.map +31 -3
  57. package/dist/src/bitcoin/index.js +11 -11
  58. package/dist/src/bns/index.cjs +4439 -17
  59. package/dist/src/bns/index.cjs.map +50 -3
  60. package/dist/src/bns/index.js +14 -14
  61. package/dist/src/chains/index.cjs +135 -1
  62. package/dist/src/chains/index.cjs.map +5 -3
  63. package/dist/src/chains/index.js +1 -1
  64. package/dist/src/clarity/index.cjs +2019 -1
  65. package/dist/src/clarity/index.cjs.map +24 -3
  66. package/dist/src/clarity/index.js +8 -8
  67. package/dist/src/filters/index.cjs +725 -1
  68. package/dist/src/filters/index.cjs.map +11 -3
  69. package/dist/src/filters/index.d.cts +76 -13
  70. package/dist/src/filters/index.d.ts +76 -13
  71. package/dist/src/filters/index.js +8 -4
  72. package/dist/src/filters/index.js.map +1 -1
  73. package/dist/src/index.cjs +3935 -62
  74. package/dist/src/index.cjs.map +69 -4
  75. package/dist/src/index.d.cts +62 -11
  76. package/dist/src/index.d.ts +62 -11
  77. package/dist/src/index.js +16 -16
  78. package/dist/src/postconditions/index.cjs +1726 -1
  79. package/dist/src/postconditions/index.cjs.map +20 -3
  80. package/dist/src/postconditions/index.js +6 -6
  81. package/dist/src/pox/index.cjs +3855 -1
  82. package/dist/src/pox/index.cjs.map +48 -3
  83. package/dist/src/pox/index.js +13 -13
  84. package/dist/src/pox5/index.cjs +4054 -29
  85. package/dist/src/pox5/index.cjs.map +54 -3
  86. package/dist/src/pox5/index.js +15 -15
  87. package/dist/src/sbtc/index.cjs +3705 -4
  88. package/dist/src/sbtc/index.cjs.map +47 -3
  89. package/dist/src/sbtc/index.js +12 -12
  90. package/dist/src/stackingdao/index.cjs +3751 -8
  91. package/dist/src/stackingdao/index.cjs.map +45 -3
  92. package/dist/src/stackingdao/index.js +12 -12
  93. package/dist/src/subscriptions/index.cjs +153 -1
  94. package/dist/src/subscriptions/index.cjs.map +6 -3
  95. package/dist/src/subscriptions/index.js +2 -2
  96. package/dist/src/transactions/index.cjs +2139 -1
  97. package/dist/src/transactions/index.cjs.map +23 -3
  98. package/dist/src/transactions/index.js +6 -6
  99. package/dist/src/utils/index.cjs +435 -3
  100. package/dist/src/utils/index.cjs.map +9 -3
  101. package/dist/src/utils/index.js +3 -3
  102. package/package.json +1 -1
  103. package/dist/shared/stacks-02actsrx.cjs +0 -17
  104. package/dist/shared/stacks-02actsrx.cjs.map +0 -10
  105. package/dist/shared/stacks-03vfm21t.cjs +0 -222
  106. package/dist/shared/stacks-03vfm21t.cjs.map +0 -12
  107. package/dist/shared/stacks-24h5k94q.cjs +0 -74
  108. package/dist/shared/stacks-24h5k94q.cjs.map +0 -11
  109. package/dist/shared/stacks-37kz5t9f.cjs +0 -764
  110. package/dist/shared/stacks-37kz5t9f.cjs.map +0 -23
  111. package/dist/shared/stacks-3mt2q2na.cjs +0 -65
  112. package/dist/shared/stacks-3mt2q2na.cjs.map +0 -9
  113. package/dist/shared/stacks-4hs8r4q2.js.map +0 -10
  114. package/dist/shared/stacks-8vzxax5e.cjs +0 -45
  115. package/dist/shared/stacks-agk106zs.cjs +0 -267
  116. package/dist/shared/stacks-agk106zs.cjs.map +0 -12
  117. package/dist/shared/stacks-bdgh9n83.cjs +0 -212
  118. package/dist/shared/stacks-bdgh9n83.cjs.map +0 -11
  119. package/dist/shared/stacks-dpxnxhqb.cjs +0 -51
  120. package/dist/shared/stacks-dpxnxhqb.cjs.map +0 -11
  121. package/dist/shared/stacks-ee53k9j2.cjs +0 -651
  122. package/dist/shared/stacks-ee53k9j2.cjs.map +0 -13
  123. package/dist/shared/stacks-enpj9krt.cjs +0 -38
  124. package/dist/shared/stacks-enpj9krt.cjs.map +0 -10
  125. package/dist/shared/stacks-f35mnrmg.cjs +0 -164
  126. package/dist/shared/stacks-f35mnrmg.cjs.map +0 -10
  127. package/dist/shared/stacks-fhzwsn5d.cjs +0 -261
  128. package/dist/shared/stacks-fhzwsn5d.cjs.map +0 -12
  129. package/dist/shared/stacks-gjz26k6b.js.map +0 -12
  130. package/dist/shared/stacks-gza2n1zs.cjs +0 -73
  131. package/dist/shared/stacks-gza2n1zs.cjs.map +0 -11
  132. package/dist/shared/stacks-kem68d80.cjs +0 -156
  133. package/dist/shared/stacks-kem68d80.cjs.map +0 -10
  134. package/dist/shared/stacks-n98w7g57.cjs +0 -234
  135. package/dist/shared/stacks-n98w7g57.cjs.map +0 -10
  136. package/dist/shared/stacks-p337hp6m.cjs +0 -336
  137. package/dist/shared/stacks-p337hp6m.cjs.map +0 -25
  138. package/dist/shared/stacks-q34k4vnc.cjs +0 -286
  139. package/dist/shared/stacks-q34k4vnc.cjs.map +0 -12
  140. package/dist/shared/stacks-rryme9bv.cjs +0 -569
  141. package/dist/shared/stacks-rryme9bv.cjs.map +0 -13
  142. package/dist/shared/stacks-s5vej5z6.cjs +0 -410
  143. package/dist/shared/stacks-s5vej5z6.cjs.map +0 -15
  144. package/dist/shared/stacks-sdqkapct.cjs +0 -67
  145. package/dist/shared/stacks-sdqkapct.cjs.map +0 -12
  146. package/dist/shared/stacks-vea7nde7.cjs +0 -731
  147. package/dist/shared/stacks-vea7nde7.cjs.map +0 -13
  148. package/dist/shared/stacks-wk8yp13j.cjs +0 -33
  149. package/dist/shared/stacks-wk8yp13j.cjs.map +0 -11
  150. package/dist/shared/stacks-xjkn3en1.cjs +0 -42
  151. package/dist/shared/stacks-xnrywjf1.cjs +0 -131
  152. package/dist/shared/stacks-xnrywjf1.cjs.map +0 -11
  153. package/dist/shared/stacks-yvb7rvwk.js.map +0 -10
@@ -1,10 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/clarity/abi/standards.ts"],
4
- "sourcesContent": [
5
- "import type { AbiContract } from \"./contract.ts\";\n\nexport const SIP010_ABI = {\n\tfunctions: [\n\t\t{\n\t\t\tname: \"transfer\",\n\t\t\taccess: \"public\",\n\t\t\targs: [\n\t\t\t\t{ name: \"amount\", type: \"uint128\" },\n\t\t\t\t{ name: \"sender\", type: \"principal\" },\n\t\t\t\t{ name: \"recipient\", type: \"principal\" },\n\t\t\t\t{ name: \"memo\", type: { optional: { buff: { length: 34 } } } },\n\t\t\t],\n\t\t\toutputs: { response: { ok: \"bool\", error: \"uint128\" } },\n\t\t},\n\t\t{\n\t\t\tname: \"get-balance\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [{ name: \"account\", type: \"principal\" }],\n\t\t\toutputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n\t\t},\n\t\t{\n\t\t\tname: \"get-total-supply\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [],\n\t\t\toutputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n\t\t},\n\t\t{\n\t\t\tname: \"get-name\",\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: { \"string-ascii\": { length: 32 } },\n\t\t\t\t\terror: \"uint128\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"get-symbol\",\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: { \"string-ascii\": { length: 10 } },\n\t\t\t\t\terror: \"uint128\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"get-decimals\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [],\n\t\t\toutputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n\t\t},\n\t\t{\n\t\t\tname: \"get-token-uri\",\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: { optional: { \"string-utf8\": { length: 256 } } },\n\t\t\t\t\terror: \"uint128\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t],\n\tfungible_tokens: [{ name: \"token\" }],\n} as const satisfies AbiContract;\n\nexport const SIP009_ABI = {\n\tfunctions: [\n\t\t{\n\t\t\tname: \"transfer\",\n\t\t\taccess: \"public\",\n\t\t\targs: [\n\t\t\t\t{ name: \"id\", type: \"uint128\" },\n\t\t\t\t{ name: \"sender\", type: \"principal\" },\n\t\t\t\t{ name: \"recipient\", type: \"principal\" },\n\t\t\t],\n\t\t\toutputs: { response: { ok: \"bool\", error: \"uint128\" } },\n\t\t},\n\t\t{\n\t\t\tname: \"get-owner\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [{ name: \"id\", type: \"uint128\" }],\n\t\t\toutputs: {\n\t\t\t\tresponse: { ok: { optional: \"principal\" }, error: \"uint128\" },\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"get-last-token-id\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [],\n\t\t\toutputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n\t\t},\n\t\t{\n\t\t\tname: \"get-token-uri\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [{ name: \"id\", type: \"uint128\" }],\n\t\t\toutputs: {\n\t\t\t\tresponse: {\n\t\t\t\t\tok: { optional: { \"string-utf8\": { length: 256 } } },\n\t\t\t\t\terror: \"uint128\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t],\n\tnon_fungible_tokens: [{ name: \"nft\", type: \"uint128\" }],\n} as const satisfies AbiContract;\n\nexport const SIP013_ABI = {\n\tfunctions: [\n\t\t{\n\t\t\tname: \"transfer\",\n\t\t\taccess: \"public\",\n\t\t\targs: [\n\t\t\t\t{ name: \"token-id\", type: \"uint128\" },\n\t\t\t\t{ name: \"amount\", type: \"uint128\" },\n\t\t\t\t{ name: \"sender\", type: \"principal\" },\n\t\t\t\t{ name: \"recipient\", type: \"principal\" },\n\t\t\t],\n\t\t\toutputs: { response: { ok: \"bool\", error: \"uint128\" } },\n\t\t},\n\t\t{\n\t\t\tname: \"transfer-memo\",\n\t\t\taccess: \"public\",\n\t\t\targs: [\n\t\t\t\t{ name: \"token-id\", type: \"uint128\" },\n\t\t\t\t{ name: \"amount\", type: \"uint128\" },\n\t\t\t\t{ name: \"sender\", type: \"principal\" },\n\t\t\t\t{ name: \"recipient\", type: \"principal\" },\n\t\t\t\t{ name: \"memo\", type: { buff: { length: 34 } } },\n\t\t\t],\n\t\t\toutputs: { response: { ok: \"bool\", error: \"uint128\" } },\n\t\t},\n\t\t{\n\t\t\tname: \"transfer-many\",\n\t\t\taccess: \"public\",\n\t\t\targs: [\n\t\t\t\t{\n\t\t\t\t\tname: \"transfers\",\n\t\t\t\t\ttype: {\n\t\t\t\t\t\tlist: {\n\t\t\t\t\t\t\ttype: {\n\t\t\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t\t\t{ name: \"token-id\", type: \"uint128\" },\n\t\t\t\t\t\t\t\t\t{ name: \"amount\", type: \"uint128\" },\n\t\t\t\t\t\t\t\t\t{ name: \"sender\", type: \"principal\" },\n\t\t\t\t\t\t\t\t\t{ name: \"recipient\", type: \"principal\" },\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tlength: 200,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\toutputs: { response: { ok: \"bool\", error: \"uint128\" } },\n\t\t},\n\t\t{\n\t\t\tname: \"transfer-many-memo\",\n\t\t\taccess: \"public\",\n\t\t\targs: [\n\t\t\t\t{\n\t\t\t\t\tname: \"transfers\",\n\t\t\t\t\ttype: {\n\t\t\t\t\t\tlist: {\n\t\t\t\t\t\t\ttype: {\n\t\t\t\t\t\t\t\ttuple: [\n\t\t\t\t\t\t\t\t\t{ name: \"token-id\", type: \"uint128\" },\n\t\t\t\t\t\t\t\t\t{ name: \"amount\", type: \"uint128\" },\n\t\t\t\t\t\t\t\t\t{ name: \"sender\", type: \"principal\" },\n\t\t\t\t\t\t\t\t\t{ name: \"recipient\", type: \"principal\" },\n\t\t\t\t\t\t\t\t\t{ name: \"memo\", type: { buff: { length: 34 } } },\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tlength: 200,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\toutputs: { response: { ok: \"bool\", error: \"uint128\" } },\n\t\t},\n\t\t{\n\t\t\tname: \"get-balance\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [\n\t\t\t\t{ name: \"token-id\", type: \"uint128\" },\n\t\t\t\t{ name: \"account\", type: \"principal\" },\n\t\t\t],\n\t\t\toutputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n\t\t},\n\t\t{\n\t\t\tname: \"get-overall-balance\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [{ name: \"account\", type: \"principal\" }],\n\t\t\toutputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n\t\t},\n\t\t{\n\t\t\tname: \"get-total-supply\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [{ name: \"token-id\", type: \"uint128\" }],\n\t\t\toutputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n\t\t},\n\t\t{\n\t\t\tname: \"get-overall-supply\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [],\n\t\t\toutputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n\t\t},\n\t\t{\n\t\t\tname: \"get-decimals\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [{ name: \"token-id\", type: \"uint128\" }],\n\t\t\toutputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n\t\t},\n\t\t{\n\t\t\tname: \"get-token-uri\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [{ name: \"token-id\", type: \"uint128\" }],\n\t\t\toutputs: {\n\t\t\t\tresponse: {\n\t\t\t\t\tok: { optional: { \"string-utf8\": { length: 256 } } },\n\t\t\t\t\terror: \"uint128\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t],\n\tfungible_tokens: [],\n\tnon_fungible_tokens: [],\n} as const satisfies AbiContract;\n\n// Camel-case aliases for better DX\nexport const sip010Abi: AbiContract = SIP010_ABI;\nexport const sip009Abi: AbiContract = SIP009_ABI;\nexport const sip013Abi: AbiContract = SIP013_ABI;\n"
6
- ],
7
- "mappings": "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",
8
- "debugId": "21D00B8151C3F22B64756E2164756E21",
9
- "names": []
10
- }
@@ -1,336 +0,0 @@
1
- // src/actions/public/getAccountHistory.ts
2
- async function getAccountHistory(client, params) {
3
- const limit = Math.min(params.limit ?? 20, 50);
4
- return client.request(`/extended/v2/addresses/${encodeURIComponent(params.address)}/transactions?limit=${limit}`, { method: "GET" });
5
- }
6
-
7
- // src/actions/public/getAccountInfo.ts
8
- async function getAccountInfo(client, params) {
9
- const data = await client.request(`/v2/accounts/${encodeURIComponent(params.address)}?proof=1`, { method: "GET" });
10
- const balance = data?.balance;
11
- const nonce = data?.nonce;
12
- if (typeof balance !== "string" && typeof balance !== "number" || typeof nonce !== "string" && typeof nonce !== "number") {
13
- throw new MalformedResponseError(`getAccountInfo: /v2/accounts/${params.address} response is missing "balance" or "nonce"`);
14
- }
15
- return {
16
- balance: BigInt(balance),
17
- nonce: BigInt(nonce),
18
- balanceProof: data.balance_proof ?? "",
19
- nonceProof: data.nonce_proof ?? ""
20
- };
21
- }
22
-
23
- // src/actions/public/getBlock.ts
24
- async function getBlock(client, params) {
25
- if (params?.hash) {
26
- return client.request(`/extended/v2/blocks/${encodeURIComponent(params.hash)}`, { method: "GET" });
27
- }
28
- if (params?.height !== undefined) {
29
- return client.request(`/extended/v2/blocks/${encodeURIComponent(String(params.height))}`, { method: "GET" });
30
- }
31
- const data = await client.request("/extended/v2/blocks?limit=1", {
32
- method: "GET"
33
- });
34
- const results = data?.results;
35
- return Array.isArray(results) ? results[0] ?? null : data;
36
- }
37
-
38
- // src/actions/public/getContractAbi.ts
39
- async function getContractAbi(client, params) {
40
- const [address, name] = parseContractId(params.contract);
41
- return client.request(`/v2/contracts/interface/${address}/${name}`, {
42
- method: "GET"
43
- });
44
- }
45
-
46
- // src/actions/public/getContractSource.ts
47
- async function getContractSource(client, params) {
48
- const [address, name] = parseContractId(params.contract);
49
- try {
50
- const data = await client.request(`/v2/contracts/source/${address}/${name}`, { method: "GET" });
51
- return data?.source ? data : null;
52
- } catch (error) {
53
- if (error instanceof HttpRequestError && error.status === 404)
54
- return null;
55
- throw error;
56
- }
57
- }
58
-
59
- // src/actions/public/getMempoolStats.ts
60
- async function getMempoolStats(client) {
61
- return client.request("/extended/v1/tx/mempool/stats", { method: "GET" });
62
- }
63
-
64
- // src/actions/public/getNftHoldings.ts
65
- async function getNftHoldings(client, params) {
66
- const limit = Math.min(params.limit ?? 20, 50);
67
- return client.request(`/extended/v1/tokens/nft/holdings?principal=${encodeURIComponent(params.address)}&limit=${limit}`, { method: "GET" });
68
- }
69
-
70
- // src/actions/public/getRawBlock.ts
71
- async function getRawBlock(client, params) {
72
- try {
73
- const data = await client.request(`/v2/blocks/${params.height}`, {
74
- method: "GET"
75
- });
76
- return data?.hash ? data : null;
77
- } catch (error) {
78
- if (error instanceof HttpRequestError && error.status === 404)
79
- return null;
80
- throw error;
81
- }
82
- }
83
-
84
- // src/errors/simulation.ts
85
- class SimulationError extends BaseError {
86
- name = "SimulationError";
87
- writesDetected;
88
- constructor(message, options) {
89
- super(message, { details: options.details });
90
- this.writesDetected = options.writesDetected;
91
- }
92
- }
93
-
94
- // src/actions/public/simulateCall.ts
95
- async function simulateCall(client, params) {
96
- const [address, name] = parseContractId(params.contract);
97
- const sender = params.sender ?? address;
98
- const serializedArgs = (params.args ?? []).map((arg) => with0x(bytesToHex(serializeCVBytes(arg))));
99
- let path = `/v2/contracts/call-read/${address}/${name}/${params.functionName}`;
100
- if (params.tip) {
101
- path += `?tip=${params.tip}`;
102
- }
103
- const data = await client.request(path, {
104
- method: "POST",
105
- body: {
106
- sender,
107
- arguments: serializedArgs
108
- }
109
- });
110
- if (data.okay) {
111
- return { success: true, result: deserializeCVBytes(data.result) };
112
- }
113
- const cause = data.cause ?? "Simulation failed";
114
- const writesDetected = cause.includes("NotReadOnly") || cause.includes("CostBalanceExceeded");
115
- return {
116
- success: false,
117
- error: new SimulationError(writesDetected ? "Function mutates state and cannot be simulated" : "Simulation failed", { writesDetected, details: cause })
118
- };
119
- }
120
-
121
- // src/actions/public/simulateTransaction.ts
122
- function isMultiSig(hashMode) {
123
- return hashMode === AddressHashMode.P2SH || hashMode === AddressHashMode.P2WSH || hashMode === AddressHashMode.P2SH_NonSequential || hashMode === AddressHashMode.P2WSH_P2SH_NonSequential;
124
- }
125
- function extractSender(tx, client) {
126
- const { hashMode, signer } = tx.auth.spendingCondition;
127
- const chain = client.chain;
128
- const version = isMultiSig(hashMode) ? chain?.addressVersion.multiSig ?? 20 : chain?.addressVersion.singleSig ?? 22;
129
- return c32address(version, signer);
130
- }
131
- async function simulateTransaction(client, params) {
132
- const { transaction, tip } = params;
133
- const { payload } = transaction;
134
- if (payload.payloadType === PayloadType.ContractCall) {
135
- const sender = params.sender ?? extractSender(transaction, client);
136
- const contract = `${payload.contractAddress}.${payload.contractName}`;
137
- const [execution, fees2] = await Promise.all([
138
- simulateCall(client, {
139
- contract,
140
- functionName: payload.functionName,
141
- args: payload.functionArgs,
142
- sender,
143
- tip
144
- }),
145
- estimateFee(client, { transaction })
146
- ]);
147
- return { type: "contract-call", execution, fees: fees2 };
148
- }
149
- const fees = await estimateFee(client, { transaction });
150
- if (payload.payloadType === PayloadType.SmartContract || payload.payloadType === PayloadType.VersionedSmartContract) {
151
- return { type: "contract-deploy", fees };
152
- }
153
- return { type: "token-transfer", fees };
154
- }
155
-
156
- // src/actions/wallet/deployContract.ts
157
- async function deployContract(client, params) {
158
- const account = client.account;
159
- if (!account)
160
- throw new Error("Account required");
161
- if (!isClarityName(params.contractName))
162
- throw new Error(`Invalid contract name: ${params.contractName}`);
163
- if (isProviderAccount(account)) {
164
- assertNoFeeTierForProvider(params.fee);
165
- const result = await account.provider.request("stx_deployContract", {
166
- contractName: params.contractName,
167
- codeBody: params.codeBody,
168
- clarityVersion: params.clarityVersion
169
- });
170
- return result.txid;
171
- }
172
- const managed = params.nonce === undefined && client.nonceManager !== undefined;
173
- const nonce = params.nonce ?? await resolveNonce(client, account.address);
174
- try {
175
- const needsFeeResolution = params.fee === undefined || isFeeTier(params.fee);
176
- const unsigned = buildContractDeploy({
177
- contractName: params.contractName,
178
- codeBody: params.codeBody,
179
- clarityVersion: params.clarityVersion,
180
- fee: needsFeeResolution ? 0n : params.fee,
181
- nonce,
182
- publicKey: account.publicKey,
183
- chain: client.chain,
184
- postConditionMode: params.postConditionMode,
185
- postConditions: params.postConditions
186
- });
187
- if (needsFeeResolution) {
188
- const { fee } = await resolveFee(client, unsigned, params.fee);
189
- setUnsignedFee(unsigned, fee);
190
- }
191
- const signed = await signTransactionWithAccount(unsigned, account);
192
- return await broadcastWithNonceReset(client, {
193
- transaction: signed,
194
- address: account.address
195
- });
196
- } catch (error) {
197
- if (managed)
198
- await releaseNonce(client, account.address, nonce);
199
- throw error;
200
- }
201
- }
202
-
203
- // src/actions/wallet/signMessage.ts
204
- var import_sha2 = require("@noble/hashes/sha2.js");
205
- async function signMessage(client, params) {
206
- const account = client.account;
207
- if (!account)
208
- throw new Error("Account required");
209
- if (isProviderAccount(account)) {
210
- const method = params.domain ? "stx_signStructuredMessage" : "stx_signMessage";
211
- const result = await account.provider.request(method, {
212
- message: params.message,
213
- domain: params.domain
214
- });
215
- return result.signature;
216
- }
217
- const cv = typeof params.message === "string" ? Cl.stringAscii(params.message) : params.message;
218
- const hash = params.domain ? structuredDataHash({
219
- message: cv,
220
- domain: Cl.tuple({
221
- name: Cl.stringAscii(params.domain.name),
222
- version: Cl.stringAscii(params.domain.version),
223
- "chain-id": Cl.uint(params.domain.chainId)
224
- })
225
- }) : import_sha2.sha256(serializeCVBytes(cv));
226
- const sigBytes = await account.sign(hash);
227
- return bytesToHex(sigBytes);
228
- }
229
-
230
- // src/actions/wallet/signTransaction.ts
231
- async function signTransactionAction(client, params) {
232
- const account = client.account;
233
- if (!account)
234
- throw new Error("Account required");
235
- if (isProviderAccount(account)) {
236
- const hex = serializeTransactionHex(params.transaction);
237
- const result = await account.provider.request("stx_signTransaction", {
238
- transaction: hex
239
- });
240
- return deserializeTransaction(result.transaction, {
241
- _multisig: params.transaction._multisig
242
- });
243
- }
244
- const condition = params.transaction.auth.spendingCondition;
245
- if ("fields" in condition) {
246
- const publicKeys = params.signers ?? params.transaction._multisig?.publicKeys;
247
- if (!publicKeys)
248
- throw new Error("Multi-sig signing requires signers (publicKeys)");
249
- return signMultiSigWithAccount(params.transaction, account, publicKeys);
250
- }
251
- return signTransactionWithAccount(params.transaction, account);
252
- }
253
-
254
- // src/actions/wallet/sponsorTransaction.ts
255
- async function sponsorTransaction(client, params) {
256
- const { transaction } = params;
257
- if (transaction.auth.authType !== AuthType.Sponsored) {
258
- throw new Error("Transaction must have sponsored authorization");
259
- }
260
- const account = client.account;
261
- if (!account)
262
- throw new Error("Account required");
263
- if (isProviderAccount(account)) {
264
- throw new Error("Provider accounts cannot sponsor transactions");
265
- }
266
- const managed = params.nonce == null && client.nonceManager !== undefined;
267
- const nonce = params.nonce != null ? intToBigInt(params.nonce) : await resolveNonce(client, account.address);
268
- let fee;
269
- try {
270
- ({ fee } = await resolveFee(client, transaction, params.fee));
271
- } catch (error) {
272
- if (managed)
273
- await releaseNonce(client, account.address, nonce);
274
- throw error;
275
- }
276
- const sponsorCondition = createSingleSigSpendingCondition(account.publicKey, nonce, fee);
277
- const auth = transaction.auth;
278
- const sponsored = {
279
- ...transaction,
280
- auth: {
281
- ...auth,
282
- sponsorSpendingCondition: sponsorCondition
283
- }
284
- };
285
- return signSponsorWithAccount(sponsored, account);
286
- }
287
-
288
- // src/actions/wallet/transferStx.ts
289
- async function transferStx(client, params) {
290
- const account = client.account;
291
- if (!account)
292
- throw new Error("Account required");
293
- if (!validateStacksAddress(params.to))
294
- throw new Error(`Invalid recipient address: ${params.to}`);
295
- if (isProviderAccount(account)) {
296
- assertNoFeeTierForProvider(params.fee);
297
- const result = await account.provider.request("stx_transferStx", {
298
- recipient: params.to,
299
- amount: String(params.amount),
300
- memo: params.memo
301
- });
302
- return result.txid;
303
- }
304
- const managed = params.nonce === undefined && client.nonceManager !== undefined;
305
- const nonce = params.nonce ?? await resolveNonce(client, account.address);
306
- try {
307
- const needsFeeResolution = params.fee === undefined || isFeeTier(params.fee);
308
- const unsigned = buildTokenTransfer({
309
- recipient: params.to,
310
- amount: params.amount,
311
- memo: params.memo,
312
- fee: needsFeeResolution ? 0n : params.fee,
313
- nonce,
314
- publicKey: account.publicKey,
315
- chain: client.chain,
316
- postConditionMode: params.postConditionMode,
317
- postConditions: params.postConditions
318
- });
319
- if (needsFeeResolution) {
320
- const { fee } = await resolveFee(client, unsigned, params.fee);
321
- setUnsignedFee(unsigned, fee);
322
- }
323
- const signed = await signTransactionWithAccount(unsigned, account);
324
- return await broadcastWithNonceReset(client, {
325
- transaction: signed,
326
- address: account.address
327
- });
328
- } catch (error) {
329
- if (managed)
330
- await releaseNonce(client, account.address, nonce);
331
- throw error;
332
- }
333
- }
334
-
335
- //# debugId=0F79B8D3B23FC22F64756E2164756E21
336
- //# sourceMappingURL=stacks-p337hp6m.cjs.map
@@ -1,25 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/actions/public/getAccountHistory.ts", "../src/actions/public/getAccountInfo.ts", "../src/actions/public/getBlock.ts", "../src/actions/public/getContractAbi.ts", "../src/actions/public/getContractSource.ts", "../src/actions/public/getMempoolStats.ts", "../src/actions/public/getNftHoldings.ts", "../src/actions/public/getRawBlock.ts", "../src/errors/simulation.ts", "../src/actions/public/simulateCall.ts", "../src/actions/public/simulateTransaction.ts", "../src/actions/wallet/deployContract.ts", "../src/actions/wallet/signMessage.ts", "../src/actions/wallet/signTransaction.ts", "../src/actions/wallet/sponsorTransaction.ts", "../src/actions/wallet/transferStx.ts"],
4
- "sourcesContent": [
5
- "import type { Client } from \"../../clients/types.ts\";\n\nexport type GetAccountHistoryParams = {\n\taddress: string;\n\t/** Capped at 50. Default 20. */\n\tlimit?: number;\n};\n\nexport type AccountHistoryResponse = {\n\tresults: unknown[];\n\ttotal: number;\n};\n\n/** Paginated transaction history for a principal (Hiro extended API). */\nexport async function getAccountHistory(\n\tclient: Client,\n\tparams: GetAccountHistoryParams,\n): Promise<AccountHistoryResponse> {\n\tconst limit = Math.min(params.limit ?? 20, 50);\n\treturn client.request(\n\t\t`/extended/v2/addresses/${encodeURIComponent(params.address)}/transactions?limit=${limit}`,\n\t\t{ method: \"GET\" },\n\t);\n}\n",
6
- "import type { Client } from \"../../clients/types.ts\";\nimport { MalformedResponseError } from \"../../errors/response.ts\";\n\nexport type GetAccountInfoParams = {\n\taddress: string;\n};\n\nexport type AccountInfo = {\n\tbalance: bigint;\n\tnonce: bigint;\n\tbalanceProof: string;\n\tnonceProof: string;\n};\n\nexport async function getAccountInfo(\n\tclient: Client,\n\tparams: GetAccountInfoParams,\n): Promise<AccountInfo> {\n\tconst data = await client.request(\n\t\t`/v2/accounts/${encodeURIComponent(params.address)}?proof=1`,\n\t\t{ method: \"GET\" },\n\t);\n\tconst balance = (data as { balance?: unknown })?.balance;\n\tconst nonce = (data as { nonce?: unknown })?.nonce;\n\tif (\n\t\t(typeof balance !== \"string\" && typeof balance !== \"number\") ||\n\t\t(typeof nonce !== \"string\" && typeof nonce !== \"number\")\n\t) {\n\t\tthrow new MalformedResponseError(\n\t\t\t`getAccountInfo: /v2/accounts/${params.address} response is missing \"balance\" or \"nonce\"`,\n\t\t);\n\t}\n\treturn {\n\t\tbalance: BigInt(balance),\n\t\tnonce: BigInt(nonce),\n\t\tbalanceProof: data.balance_proof ?? \"\",\n\t\tnonceProof: data.nonce_proof ?? \"\",\n\t};\n}\n",
7
- "import type { Client } from \"../../clients/types.ts\";\n\nexport type GetBlockParams = {\n\theight?: number;\n\thash?: string;\n};\n\n/**\n * Fetch one block by hash or height, or the chain tip when both are omitted.\n * Every path resolves to a single block object: the tip read unwraps the\n * list envelope the extended API returns for `?limit=1`.\n */\nexport async function getBlock(\n\tclient: Client,\n\tparams?: GetBlockParams,\n\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n): Promise<any> {\n\tif (params?.hash) {\n\t\treturn client.request(\n\t\t\t`/extended/v2/blocks/${encodeURIComponent(params.hash)}`,\n\t\t\t{ method: \"GET\" },\n\t\t);\n\t}\n\tif (params?.height !== undefined) {\n\t\treturn client.request(\n\t\t\t`/extended/v2/blocks/${encodeURIComponent(String(params.height))}`,\n\t\t\t{ method: \"GET\" },\n\t\t);\n\t}\n\tconst data = await client.request(\"/extended/v2/blocks?limit=1\", {\n\t\tmethod: \"GET\",\n\t});\n\tconst results = (data as { results?: unknown[] } | null)?.results;\n\treturn Array.isArray(results) ? (results[0] ?? null) : data;\n}\n",
8
- "import type { Client } from \"../../clients/types.ts\";\nimport { parseContractId } from \"../../utils/address.ts\";\n\nexport type GetContractAbiParams = {\n\tcontract: string; // \"address.name\"\n};\n\nexport async function getContractAbi(\n\tclient: Client,\n\tparams: GetContractAbiParams,\n\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n): Promise<any> {\n\tconst [address, name] = parseContractId(params.contract);\n\treturn client.request(`/v2/contracts/interface/${address}/${name}`, {\n\t\tmethod: \"GET\",\n\t});\n}\n",
9
- "import type { Client } from \"../../clients/types.ts\";\nimport { HttpRequestError } from \"../../errors/http.ts\";\nimport { parseContractId } from \"../../utils/address.ts\";\n\nexport type GetContractSourceParams = {\n\tcontract: string; // \"address.name\"\n};\n\nexport type ContractSourceResponse = {\n\tsource: string;\n\tpublish_height: number;\n\tmarf_proof?: string;\n};\n\n/**\n * Fetch a deployed contract's Clarity source. Node-RPC only (`/v2/contracts/source`)\n * — not available through Hiro's extended API or a tenant proxy, so `client`\n * must be configured against a direct node transport. Returns `null` when the\n * node has no source for the contract.\n */\nexport async function getContractSource(\n\tclient: Client,\n\tparams: GetContractSourceParams,\n): Promise<ContractSourceResponse | null> {\n\tconst [address, name] = parseContractId(params.contract);\n\ttry {\n\t\tconst data = (await client.request(\n\t\t\t`/v2/contracts/source/${address}/${name}`,\n\t\t\t{ method: \"GET\" },\n\t\t)) as Partial<ContractSourceResponse> | undefined;\n\t\treturn data?.source ? (data as ContractSourceResponse) : null;\n\t} catch (error) {\n\t\tif (error instanceof HttpRequestError && error.status === 404) return null;\n\t\tthrow error;\n\t}\n}\n",
10
- "import type { Client } from \"../../clients/types.ts\";\n\n/**\n * Current mempool statistics: pending count, fee distribution, age buckets\n * (Hiro extended API).\n */\nexport async function getMempoolStats(\n\tclient: Client,\n\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n): Promise<any> {\n\treturn client.request(\"/extended/v1/tx/mempool/stats\", { method: \"GET\" });\n}\n",
11
- "import type { Client } from \"../../clients/types.ts\";\n\nexport type GetNftHoldingsParams = {\n\taddress: string;\n\t/** Capped at 50. Default 20. */\n\tlimit?: number;\n};\n\nexport type NftHoldingsResponse = {\n\tresults: unknown[];\n\ttotal: number;\n};\n\n/** NFT holdings for a principal across all collections (Hiro extended API). */\nexport async function getNftHoldings(\n\tclient: Client,\n\tparams: GetNftHoldingsParams,\n): Promise<NftHoldingsResponse> {\n\tconst limit = Math.min(params.limit ?? 20, 50);\n\treturn client.request(\n\t\t`/extended/v1/tokens/nft/holdings?principal=${encodeURIComponent(params.address)}&limit=${limit}`,\n\t\t{ method: \"GET\" },\n\t);\n}\n",
12
- "import type { Client } from \"../../clients/types.ts\";\nimport { HttpRequestError } from \"../../errors/http.ts\";\n\nexport type GetRawBlockParams = {\n\theight: number;\n};\n\n/**\n * Raw node RPC block shape (`/v2/blocks/{height}`) — distinct from\n * {@link getBlock}'s Hiro extended-API shape. Carries consensus/identity\n * fields (`index_block_hash`, `miner_txid`, ...) that the indexed API doesn't\n * expose, for trust-minimized use cases (e.g. block-header proofs) that can't\n * rely on a third-party indexer.\n */\nexport type RawBlockResponse = {\n\thash: string;\n\theight: number;\n\tparent_block_hash: string;\n\tburn_block_height: number;\n\tburn_block_hash: string;\n\tburn_block_time: number;\n\tindex_block_hash: string;\n\tparent_index_block_hash: string;\n\tminer_txid: string;\n\ttxs: string[];\n};\n\n/**\n * Fetch a block by height directly from a stacks-node (not Hiro's extended\n * API — see {@link getBlock} for that). Returns `null` when the node has no\n * block at that height.\n */\nexport async function getRawBlock(\n\tclient: Client,\n\tparams: GetRawBlockParams,\n): Promise<RawBlockResponse | null> {\n\ttry {\n\t\tconst data = (await client.request(`/v2/blocks/${params.height}`, {\n\t\t\tmethod: \"GET\",\n\t\t})) as Partial<RawBlockResponse> | undefined;\n\t\treturn data?.hash ? (data as RawBlockResponse) : null;\n\t} catch (error) {\n\t\tif (error instanceof HttpRequestError && error.status === 404) return null;\n\t\tthrow error;\n\t}\n}\n",
13
- "import { BaseError } from \"./base.ts\";\n\nexport class SimulationError extends BaseError {\n\toverride name = \"SimulationError\";\n\twritesDetected: boolean;\n\n\tconstructor(\n\t\tmessage: string,\n\t\toptions: { writesDetected: boolean; details?: string },\n\t) {\n\t\tsuper(message, { details: options.details });\n\t\tthis.writesDetected = options.writesDetected;\n\t}\n}\n",
14
- "import { deserializeCVBytes } from \"../../clarity/deserialize.ts\";\nimport { serializeCVBytes } from \"../../clarity/serialize.ts\";\nimport type { ClarityValue } from \"../../clarity/types.ts\";\nimport type { Client } from \"../../clients/types.ts\";\nimport { SimulationError } from \"../../errors/simulation.ts\";\nimport { parseContractId } from \"../../utils/address.ts\";\nimport { bytesToHex, with0x } from \"../../utils/encoding.ts\";\n\nexport type SimulateCallParams = {\n\tcontract: string;\n\tfunctionName: string;\n\targs?: ClarityValue[];\n\tsender?: string;\n\ttip?: string;\n};\n\nexport type SimulateCallSuccess = { success: true; result: ClarityValue };\nexport type SimulateCallFailure = { success: false; error: SimulationError };\nexport type SimulateCallResult = SimulateCallSuccess | SimulateCallFailure;\n\nexport async function simulateCall(\n\tclient: Client,\n\tparams: SimulateCallParams,\n): Promise<SimulateCallResult> {\n\tconst [address, name] = parseContractId(params.contract);\n\tconst sender = params.sender ?? address;\n\n\tconst serializedArgs = (params.args ?? []).map((arg) =>\n\t\twith0x(bytesToHex(serializeCVBytes(arg))),\n\t);\n\n\tlet path = `/v2/contracts/call-read/${address}/${name}/${params.functionName}`;\n\tif (params.tip) {\n\t\tpath += `?tip=${params.tip}`;\n\t}\n\n\tconst data = await client.request(path, {\n\t\tmethod: \"POST\",\n\t\tbody: {\n\t\t\tsender,\n\t\t\targuments: serializedArgs,\n\t\t},\n\t});\n\n\tif (data.okay) {\n\t\treturn { success: true, result: deserializeCVBytes(data.result) };\n\t}\n\n\tconst cause: string = data.cause ?? \"Simulation failed\";\n\tconst writesDetected =\n\t\tcause.includes(\"NotReadOnly\") || cause.includes(\"CostBalanceExceeded\");\n\n\treturn {\n\t\tsuccess: false,\n\t\terror: new SimulationError(\n\t\t\twritesDetected\n\t\t\t\t? \"Function mutates state and cannot be simulated\"\n\t\t\t\t: \"Simulation failed\",\n\t\t\t{ writesDetected, details: cause },\n\t\t),\n\t};\n}\n",
15
- "import type { Client } from \"../../clients/types.ts\";\nimport type { StacksTransaction } from \"../../transactions/types.ts\";\nimport { AddressHashMode, PayloadType } from \"../../transactions/types.ts\";\nimport { c32address } from \"../../utils/address.ts\";\nimport { type FeeEstimation, estimateFee } from \"./estimateFee.ts\";\nimport { type SimulateCallResult, simulateCall } from \"./simulateCall.ts\";\n\nexport type SimulateTransactionParams = {\n\ttransaction: StacksTransaction;\n\tsender?: string;\n\ttip?: string;\n};\n\nexport type SimulateContractCallResult = {\n\ttype: \"contract-call\";\n\texecution: SimulateCallResult;\n\tfees: FeeEstimation[];\n};\n\nexport type SimulateTransferResult = {\n\ttype: \"token-transfer\";\n\tfees: FeeEstimation[];\n};\n\nexport type SimulateDeployResult = {\n\ttype: \"contract-deploy\";\n\tfees: FeeEstimation[];\n};\n\nexport type SimulateTransactionResult =\n\t| SimulateContractCallResult\n\t| SimulateTransferResult\n\t| SimulateDeployResult;\n\nfunction isMultiSig(hashMode: number): boolean {\n\treturn (\n\t\thashMode === AddressHashMode.P2SH ||\n\t\thashMode === AddressHashMode.P2WSH ||\n\t\thashMode === AddressHashMode.P2SH_NonSequential ||\n\t\thashMode === AddressHashMode.P2WSH_P2SH_NonSequential\n\t);\n}\n\nfunction extractSender(tx: StacksTransaction, client: Client): string {\n\tconst { hashMode, signer } = tx.auth.spendingCondition;\n\tconst chain = client.chain;\n\tconst version = isMultiSig(hashMode)\n\t\t? (chain?.addressVersion.multiSig ?? 20)\n\t\t: (chain?.addressVersion.singleSig ?? 22);\n\treturn c32address(version, signer);\n}\n\nexport async function simulateTransaction(\n\tclient: Client,\n\tparams: SimulateTransactionParams,\n): Promise<SimulateTransactionResult> {\n\tconst { transaction, tip } = params;\n\tconst { payload } = transaction;\n\n\tif (payload.payloadType === PayloadType.ContractCall) {\n\t\tconst sender = params.sender ?? extractSender(transaction, client);\n\t\tconst contract = `${payload.contractAddress}.${payload.contractName}`;\n\n\t\tconst [execution, fees] = await Promise.all([\n\t\t\tsimulateCall(client, {\n\t\t\t\tcontract,\n\t\t\t\tfunctionName: payload.functionName,\n\t\t\t\targs: payload.functionArgs,\n\t\t\t\tsender,\n\t\t\t\ttip,\n\t\t\t}),\n\t\t\testimateFee(client, { transaction }),\n\t\t]);\n\n\t\treturn { type: \"contract-call\", execution, fees };\n\t}\n\n\tconst fees = await estimateFee(client, { transaction });\n\n\tif (\n\t\tpayload.payloadType === PayloadType.SmartContract ||\n\t\tpayload.payloadType === PayloadType.VersionedSmartContract\n\t) {\n\t\treturn { type: \"contract-deploy\", fees };\n\t}\n\n\treturn { type: \"token-transfer\", fees };\n}\n",
16
- "import type { Client } from \"../../clients/types.ts\";\nimport type {\n\tPostConditionInput,\n\tPostConditionMode,\n} from \"../../postconditions/types.ts\";\nimport { buildContractDeploy } from \"../../transactions/build.ts\";\nimport { signTransactionWithAccount } from \"../../transactions/signer.ts\";\nimport type { ClarityVersion } from \"../../transactions/types.ts\";\nimport { isClarityName } from \"../../utils/address.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport {\n\tbroadcastWithNonceReset,\n\treleaseNonce,\n\tresolveNonce,\n} from \"./nonceManager.ts\";\nimport {\n\ttype FeeParam,\n\tassertNoFeeTierForProvider,\n\tisFeeTier,\n\tisProviderAccount,\n\tresolveFee,\n\tsetUnsignedFee,\n} from \"./utils.ts\";\n\nexport type DeployContractParams = {\n\tcontractName: string;\n\tcodeBody: string;\n\tclarityVersion?: ClarityVersion;\n\tfee?: FeeParam;\n\tnonce?: IntegerType;\n\tpostConditionMode?: PostConditionMode;\n\tpostConditions?: PostConditionInput[];\n};\n\n/** Build, sign, and broadcast a contract deploy */\nexport async function deployContract(\n\tclient: Client,\n\tparams: DeployContractParams,\n): Promise<string> {\n\tconst account = client.account;\n\tif (!account) throw new Error(\"Account required\");\n\n\tif (!isClarityName(params.contractName))\n\t\tthrow new Error(`Invalid contract name: ${params.contractName}`);\n\n\t// Provider: delegate to wallet\n\tif (isProviderAccount(account)) {\n\t\tassertNoFeeTierForProvider(params.fee);\n\t\tconst result = await account.provider.request(\"stx_deployContract\", {\n\t\t\tcontractName: params.contractName,\n\t\t\tcodeBody: params.codeBody,\n\t\t\tclarityVersion: params.clarityVersion,\n\t\t});\n\t\treturn result.txid;\n\t}\n\n\t// Local/Custom: build → sign → broadcast\n\tconst managed =\n\t\tparams.nonce === undefined && client.nonceManager !== undefined;\n\tconst nonce = params.nonce ?? (await resolveNonce(client, account.address));\n\n\ttry {\n\t\tconst needsFeeResolution =\n\t\t\tparams.fee === undefined || isFeeTier(params.fee);\n\n\t\tconst unsigned = buildContractDeploy({\n\t\t\tcontractName: params.contractName,\n\t\t\tcodeBody: params.codeBody,\n\t\t\tclarityVersion: params.clarityVersion,\n\t\t\tfee: needsFeeResolution ? 0n : (params.fee as IntegerType),\n\t\t\tnonce,\n\t\t\tpublicKey: account.publicKey,\n\t\t\tchain: client.chain,\n\t\t\tpostConditionMode: params.postConditionMode,\n\t\t\tpostConditions: params.postConditions,\n\t\t});\n\n\t\tif (needsFeeResolution) {\n\t\t\tconst { fee } = await resolveFee(client, unsigned, params.fee);\n\t\t\tsetUnsignedFee(unsigned, fee);\n\t\t}\n\n\t\tconst signed = await signTransactionWithAccount(unsigned, account);\n\t\treturn await broadcastWithNonceReset(client, {\n\t\t\ttransaction: signed,\n\t\t\taddress: account.address,\n\t\t});\n\t} catch (error) {\n\t\t// Anything that fails between reserving the nonce and a 2xx broadcast\n\t\t// (fee estimate, signing, FeeTooLow, transport) never reached the\n\t\t// mempool: hand the nonce back so the next send does not skip it.\n\t\tif (managed) await releaseNonce(client, account.address, nonce as bigint);\n\t\tthrow error;\n\t}\n}\n",
17
- "import { sha256 } from \"@noble/hashes/sha2.js\";\nimport { serializeCVBytes } from \"../../clarity/serialize.ts\";\nimport { structuredDataHash } from \"../../clarity/structuredData.ts\";\nimport type { ClarityValue } from \"../../clarity/types.ts\";\nimport { Cl } from \"../../clarity/values.ts\";\nimport type { Client } from \"../../clients/types.ts\";\nimport { bytesToHex } from \"../../utils/encoding.ts\";\nimport { isProviderAccount } from \"./utils.ts\";\n\nexport type SignMessageParams = {\n\tmessage: string | ClarityValue;\n\tdomain?: {\n\t\tname: string;\n\t\tversion: string;\n\t\tchainId: number;\n\t};\n};\n\n/** Sign a message. With `domain`, hashes per SIP-018; without, hashes the serialized CV. */\nexport async function signMessage(\n\tclient: Client,\n\tparams: SignMessageParams,\n): Promise<string> {\n\tconst account = client.account;\n\tif (!account) throw new Error(\"Account required\");\n\n\t// Provider: delegate to wallet\n\tif (isProviderAccount(account)) {\n\t\tconst method = params.domain\n\t\t\t? \"stx_signStructuredMessage\"\n\t\t\t: \"stx_signMessage\";\n\t\tconst result = await account.provider.request(method, {\n\t\t\tmessage: params.message,\n\t\t\tdomain: params.domain,\n\t\t});\n\t\treturn result.signature;\n\t}\n\n\tconst cv =\n\t\ttypeof params.message === \"string\"\n\t\t\t? Cl.stringAscii(params.message)\n\t\t\t: params.message;\n\n\tconst hash = params.domain\n\t\t? structuredDataHash({\n\t\t\t\tmessage: cv,\n\t\t\t\tdomain: Cl.tuple({\n\t\t\t\t\tname: Cl.stringAscii(params.domain.name),\n\t\t\t\t\tversion: Cl.stringAscii(params.domain.version),\n\t\t\t\t\t\"chain-id\": Cl.uint(params.domain.chainId),\n\t\t\t\t}),\n\t\t\t})\n\t\t: sha256(serializeCVBytes(cv));\n\n\tconst sigBytes = await account.sign(hash);\n\treturn bytesToHex(sigBytes);\n}\n",
18
- "import type { Client } from \"../../clients/types.ts\";\nimport { signMultiSigWithAccount } from \"../../transactions/multisig.ts\";\nimport { signTransactionWithAccount } from \"../../transactions/signer.ts\";\nimport type { StacksTransaction } from \"../../transactions/types.ts\";\nimport { deserializeTransaction } from \"../../transactions/wire/deserialize.ts\";\nimport { serializeTransactionHex } from \"../../transactions/wire/serialize.ts\";\nimport { isProviderAccount } from \"./utils.ts\";\n\nexport type SignTransactionParams = {\n\ttransaction: StacksTransaction;\n\t/** Public keys for multi-sig signing (auto-detected from _multisig metadata if omitted) */\n\tsigners?: string[];\n};\n\n/** Sign a transaction using the client's account */\nexport async function signTransactionAction(\n\tclient: Client,\n\tparams: SignTransactionParams,\n): Promise<StacksTransaction> {\n\tconst account = client.account;\n\tif (!account) throw new Error(\"Account required\");\n\n\t// Provider: send hex to wallet, get signed hex back\n\tif (isProviderAccount(account)) {\n\t\tconst hex = serializeTransactionHex(params.transaction);\n\t\tconst result = await account.provider.request(\"stx_signTransaction\", {\n\t\t\ttransaction: hex,\n\t\t});\n\t\treturn deserializeTransaction(result.transaction, {\n\t\t\t_multisig: params.transaction._multisig,\n\t\t});\n\t}\n\n\t// Multi-sig: auto-detect from fields or _multisig metadata\n\tconst condition = params.transaction.auth.spendingCondition;\n\tif (\"fields\" in condition) {\n\t\tconst publicKeys =\n\t\t\tparams.signers ?? params.transaction._multisig?.publicKeys;\n\t\tif (!publicKeys)\n\t\t\tthrow new Error(\"Multi-sig signing requires signers (publicKeys)\");\n\t\treturn signMultiSigWithAccount(params.transaction, account, publicKeys);\n\t}\n\n\t// Local/Custom: sign with account\n\treturn signTransactionWithAccount(params.transaction, account);\n}\n",
19
- "import type { Client } from \"../../clients/types.ts\";\nimport { createSingleSigSpendingCondition } from \"../../transactions/authorization.ts\";\nimport { signSponsorWithAccount } from \"../../transactions/signer.ts\";\nimport {\n\tAuthType,\n\ttype SponsoredAuthorization,\n\ttype StacksTransaction,\n} from \"../../transactions/types.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport { intToBigInt } from \"../../utils/encoding.ts\";\nimport { releaseNonce, resolveNonce } from \"./nonceManager.ts\";\nimport { type FeeParam, isProviderAccount, resolveFee } from \"./utils.ts\";\n\nexport type SponsorTransactionParams = {\n\ttransaction: StacksTransaction;\n\tfee?: FeeParam;\n\tnonce?: IntegerType;\n};\n\n/** Sponsor a transaction: set sponsor spending condition, sign as sponsor */\nexport async function sponsorTransaction(\n\tclient: Client,\n\tparams: SponsorTransactionParams,\n): Promise<StacksTransaction> {\n\tconst { transaction } = params;\n\n\tif (transaction.auth.authType !== AuthType.Sponsored) {\n\t\tthrow new Error(\"Transaction must have sponsored authorization\");\n\t}\n\n\tconst account = client.account;\n\tif (!account) throw new Error(\"Account required\");\n\tif (isProviderAccount(account)) {\n\t\tthrow new Error(\"Provider accounts cannot sponsor transactions\");\n\t}\n\n\t// Resolve sponsor nonce\n\tconst managed = params.nonce == null && client.nonceManager !== undefined;\n\tconst nonce =\n\t\tparams.nonce != null\n\t\t\t? intToBigInt(params.nonce)\n\t\t\t: await resolveNonce(client, account.address);\n\n\t// Resolve sponsor fee. `NoEstimateAvailable` falls back to the minimum\n\t// relay fee instead of 0 (a 0-fee tx would be rejected at broadcast);\n\t// any other estimator failure surfaces and hands the nonce back.\n\tlet fee: bigint;\n\ttry {\n\t\t({ fee } = await resolveFee(client, transaction, params.fee));\n\t} catch (error) {\n\t\tif (managed) await releaseNonce(client, account.address, nonce);\n\t\tthrow error;\n\t}\n\n\t// Create sponsor spending condition\n\tconst sponsorCondition = createSingleSigSpendingCondition(\n\t\taccount.publicKey,\n\t\tnonce,\n\t\tfee,\n\t);\n\n\t// Set sponsor spending condition on the tx\n\tconst auth = transaction.auth as SponsoredAuthorization;\n\tconst sponsored: StacksTransaction = {\n\t\t...transaction,\n\t\tauth: {\n\t\t\t...auth,\n\t\t\tsponsorSpendingCondition: sponsorCondition,\n\t\t},\n\t};\n\n\t// Sign as sponsor\n\treturn signSponsorWithAccount(sponsored, account);\n}\n",
20
- "import type { Client } from \"../../clients/types.ts\";\nimport type {\n\tPostConditionInput,\n\tPostConditionMode,\n} from \"../../postconditions/types.ts\";\nimport { buildTokenTransfer } from \"../../transactions/build.ts\";\nimport { signTransactionWithAccount } from \"../../transactions/signer.ts\";\nimport { validateStacksAddress } from \"../../utils/address.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport {\n\tbroadcastWithNonceReset,\n\treleaseNonce,\n\tresolveNonce,\n} from \"./nonceManager.ts\";\nimport {\n\ttype FeeParam,\n\tassertNoFeeTierForProvider,\n\tisFeeTier,\n\tisProviderAccount,\n\tresolveFee,\n\tsetUnsignedFee,\n} from \"./utils.ts\";\n\nexport type TransferStxParams = {\n\tto: string;\n\tamount: IntegerType;\n\tmemo?: string;\n\tfee?: FeeParam;\n\tnonce?: IntegerType;\n\tpostConditionMode?: PostConditionMode;\n\tpostConditions?: PostConditionInput[];\n};\n\n/** Build, sign, and broadcast an STX transfer */\nexport async function transferStx(\n\tclient: Client,\n\tparams: TransferStxParams,\n): Promise<string> {\n\tconst account = client.account;\n\tif (!account) throw new Error(\"Account required\");\n\n\tif (!validateStacksAddress(params.to))\n\t\tthrow new Error(`Invalid recipient address: ${params.to}`);\n\n\t// Provider: delegate to wallet\n\tif (isProviderAccount(account)) {\n\t\tassertNoFeeTierForProvider(params.fee);\n\t\tconst result = await account.provider.request(\"stx_transferStx\", {\n\t\t\trecipient: params.to,\n\t\t\tamount: String(params.amount),\n\t\t\tmemo: params.memo,\n\t\t});\n\t\treturn result.txid;\n\t}\n\n\t// Local/Custom: build → sign → broadcast\n\tconst managed =\n\t\tparams.nonce === undefined && client.nonceManager !== undefined;\n\tconst nonce = params.nonce ?? (await resolveNonce(client, account.address));\n\n\ttry {\n\t\tconst needsFeeResolution =\n\t\t\tparams.fee === undefined || isFeeTier(params.fee);\n\n\t\tconst unsigned = buildTokenTransfer({\n\t\t\trecipient: params.to,\n\t\t\tamount: params.amount,\n\t\t\tmemo: params.memo,\n\t\t\tfee: needsFeeResolution ? 0n : (params.fee as IntegerType),\n\t\t\tnonce,\n\t\t\tpublicKey: account.publicKey,\n\t\t\tchain: client.chain,\n\t\t\tpostConditionMode: params.postConditionMode,\n\t\t\tpostConditions: params.postConditions,\n\t\t});\n\n\t\tif (needsFeeResolution) {\n\t\t\tconst { fee } = await resolveFee(client, unsigned, params.fee);\n\t\t\tsetUnsignedFee(unsigned, fee);\n\t\t}\n\n\t\tconst signed = await signTransactionWithAccount(unsigned, account);\n\t\treturn await broadcastWithNonceReset(client, {\n\t\t\ttransaction: signed,\n\t\t\taddress: account.address,\n\t\t});\n\t} catch (error) {\n\t\t// Anything that fails between reserving the nonce and a 2xx broadcast\n\t\t// (fee estimate, signing, FeeTooLow, transport) never reached the\n\t\t// mempool: hand the nonce back so the next send does not skip it.\n\t\tif (managed) await releaseNonce(client, account.address, nonce as bigint);\n\t\tthrow error;\n\t}\n}\n"
21
- ],
22
- "mappings": "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",
23
- "debugId": "0F79B8D3B23FC22F64756E2164756E21",
24
- "names": []
25
- }