@secondlayer/stacks 2.9.1 → 2.11.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 (117) hide show
  1. package/dist/shared/{stacks-wyxj879g.cjs → stacks-18jv9aen.js} +83 -4
  2. package/dist/shared/stacks-18jv9aen.js.map +13 -0
  3. package/dist/shared/{stacks-0zysn74p.js → stacks-2mm20wqf.js} +3 -3
  4. package/dist/shared/{stacks-1qmx9kt8.js → stacks-3kmj5yre.js} +4 -4
  5. package/dist/shared/{stacks-ttbq8emk.js → stacks-502j0efj.js} +3 -3
  6. package/dist/shared/{stacks-nqae5amn.cjs → stacks-5nskdw7w.cjs} +19 -2
  7. package/dist/shared/stacks-5nskdw7w.cjs.map +10 -0
  8. package/dist/shared/{stacks-8mj5jw77.js → stacks-63xbc6cj.js} +63 -7
  9. package/dist/shared/stacks-63xbc6cj.js.map +10 -0
  10. package/dist/shared/{stacks-g7ffp8aj.js → stacks-6xt8py97.cjs} +59 -30
  11. package/dist/shared/stacks-6xt8py97.cjs.map +13 -0
  12. package/dist/shared/{stacks-53bjdb6p.js → stacks-7nvbv61d.js} +8 -8
  13. package/dist/shared/stacks-azp00pve.js +70 -0
  14. package/dist/shared/stacks-azp00pve.js.map +11 -0
  15. package/dist/shared/{stacks-vk8fwz0t.cjs → stacks-b9904rc2.cjs} +3 -2
  16. package/dist/shared/{stacks-vk8fwz0t.cjs.map → stacks-b9904rc2.cjs.map} +2 -2
  17. package/dist/shared/{stacks-3y058qda.cjs → stacks-fhzwsn5d.cjs} +16 -2
  18. package/dist/shared/{stacks-3y058qda.cjs.map → stacks-fhzwsn5d.cjs.map} +5 -4
  19. package/dist/shared/{stacks-wqgepfab.js → stacks-g11v9a35.js} +22 -5
  20. package/dist/shared/stacks-g11v9a35.js.map +10 -0
  21. package/dist/shared/{stacks-6xmk24yw.js → stacks-gfm3r397.cjs} +20 -7
  22. package/dist/shared/stacks-gfm3r397.cjs.map +11 -0
  23. package/dist/shared/{stacks-43cxvnr7.js → stacks-jbmcwky5.js} +3 -3
  24. package/dist/shared/{stacks-q1mjkt15.js → stacks-msmgyerb.js} +4 -4
  25. package/dist/shared/{stacks-2h8d2y27.js → stacks-qs5fzts5.js} +17 -3
  26. package/dist/shared/{stacks-2h8d2y27.js.map → stacks-qs5fzts5.js.map} +5 -4
  27. package/dist/shared/{stacks-vdfag81a.cjs → stacks-shn9zw99.cjs} +49 -3
  28. package/dist/shared/stacks-shn9zw99.cjs.map +10 -0
  29. package/dist/shared/{stacks-4trgpb5a.js → stacks-ssndnbbd.js} +48 -13
  30. package/dist/shared/stacks-ssndnbbd.js.map +15 -0
  31. package/dist/shared/{stacks-z1j5d6fd.js → stacks-v150hffx.js} +6 -6
  32. package/dist/shared/{stacks-ertyhttt.cjs → stacks-wamwv8q8.cjs} +41 -4
  33. package/dist/shared/stacks-wamwv8q8.cjs.map +15 -0
  34. package/dist/shared/{stacks-a36n7sjz.js → stacks-x94a1d6s.js} +3 -3
  35. package/dist/src/accounts/index.js +3 -5
  36. package/dist/src/accounts/index.js.map +2 -2
  37. package/dist/src/actions/index.d.cts +91 -10
  38. package/dist/src/actions/index.d.ts +91 -10
  39. package/dist/src/actions/index.js +13 -15
  40. package/dist/src/actions/index.js.map +1 -1
  41. package/dist/src/bitcoin/index.cjs +25 -19
  42. package/dist/src/bitcoin/index.cjs.map +3 -3
  43. package/dist/src/bitcoin/index.js +32 -29
  44. package/dist/src/bitcoin/index.js.map +3 -3
  45. package/dist/src/bns/index.cjs +4 -16
  46. package/dist/src/bns/index.cjs.map +3 -3
  47. package/dist/src/bns/index.js +17 -30
  48. package/dist/src/bns/index.js.map +3 -3
  49. package/dist/src/clarity/index.d.cts +50 -1
  50. package/dist/src/clarity/index.d.ts +50 -1
  51. package/dist/src/clarity/index.js +8 -7
  52. package/dist/src/clarity/index.js.map +1 -1
  53. package/dist/src/index.d.cts +32 -2
  54. package/dist/src/index.d.ts +32 -2
  55. package/dist/src/index.js +12 -15
  56. package/dist/src/index.js.map +2 -2
  57. package/dist/src/postconditions/index.d.cts +14 -2
  58. package/dist/src/postconditions/index.d.ts +14 -2
  59. package/dist/src/postconditions/index.js +3 -3
  60. package/dist/src/pox/index.cjs +2 -6
  61. package/dist/src/pox/index.cjs.map +3 -3
  62. package/dist/src/pox/index.js +14 -19
  63. package/dist/src/pox/index.js.map +3 -3
  64. package/dist/src/sbtc/index.cjs +2 -6
  65. package/dist/src/sbtc/index.cjs.map +3 -3
  66. package/dist/src/sbtc/index.js +13 -18
  67. package/dist/src/sbtc/index.js.map +3 -3
  68. package/dist/src/stackingdao/index.js +11 -13
  69. package/dist/src/stackingdao/index.js.map +2 -2
  70. package/dist/src/tools/index.cjs +199 -57
  71. package/dist/src/tools/index.cjs.map +13 -13
  72. package/dist/src/tools/index.js +199 -57
  73. package/dist/src/tools/index.js.map +13 -13
  74. package/dist/src/transactions/index.cjs +2 -1
  75. package/dist/src/transactions/index.cjs.map +1 -1
  76. package/dist/src/transactions/index.d.cts +35 -3
  77. package/dist/src/transactions/index.d.ts +35 -3
  78. package/dist/src/transactions/index.js +8 -7
  79. package/dist/src/transactions/index.js.map +1 -1
  80. package/dist/src/utils/index.cjs +2 -1
  81. package/dist/src/utils/index.cjs.map +2 -2
  82. package/dist/src/utils/index.d.cts +5 -1
  83. package/dist/src/utils/index.d.ts +5 -1
  84. package/dist/src/utils/index.js +12 -14
  85. package/dist/src/utils/index.js.map +2 -2
  86. package/dist/src/x402/index.d.cts +19 -1
  87. package/dist/src/x402/index.d.ts +19 -1
  88. package/dist/src/x402/index.js +9 -10
  89. package/dist/src/x402/index.js.map +2 -2
  90. package/package.json +4 -2
  91. package/dist/shared/stacks-4trgpb5a.js.map +0 -15
  92. package/dist/shared/stacks-6xmk24yw.js.map +0 -10
  93. package/dist/shared/stacks-8mj5jw77.js.map +0 -10
  94. package/dist/shared/stacks-9g0jhab3.cjs +0 -40
  95. package/dist/shared/stacks-9g0jhab3.cjs.map +0 -10
  96. package/dist/shared/stacks-ertyhttt.cjs.map +0 -15
  97. package/dist/shared/stacks-fcaefc5b.cjs +0 -16
  98. package/dist/shared/stacks-fcaefc5b.cjs.map +0 -10
  99. package/dist/shared/stacks-g7ffp8aj.js.map +0 -13
  100. package/dist/shared/stacks-nqae5amn.cjs.map +0 -10
  101. package/dist/shared/stacks-v9jqcpd4.js +0 -18
  102. package/dist/shared/stacks-v9jqcpd4.js.map +0 -10
  103. package/dist/shared/stacks-vdfag81a.cjs.map +0 -10
  104. package/dist/shared/stacks-wqgepfab.js.map +0 -10
  105. package/dist/shared/stacks-wyxj879g.cjs.map +0 -13
  106. package/dist/shared/stacks-xxn5ma6g.js +0 -22
  107. package/dist/shared/stacks-xxn5ma6g.js.map +0 -10
  108. package/dist/shared/stacks-ya3x01yd.cjs +0 -16
  109. package/dist/shared/stacks-ya3x01yd.cjs.map +0 -10
  110. /package/dist/shared/{stacks-0zysn74p.js.map → stacks-2mm20wqf.js.map} +0 -0
  111. /package/dist/shared/{stacks-1qmx9kt8.js.map → stacks-3kmj5yre.js.map} +0 -0
  112. /package/dist/shared/{stacks-ttbq8emk.js.map → stacks-502j0efj.js.map} +0 -0
  113. /package/dist/shared/{stacks-53bjdb6p.js.map → stacks-7nvbv61d.js.map} +0 -0
  114. /package/dist/shared/{stacks-43cxvnr7.js.map → stacks-jbmcwky5.js.map} +0 -0
  115. /package/dist/shared/{stacks-q1mjkt15.js.map → stacks-msmgyerb.js.map} +0 -0
  116. /package/dist/shared/{stacks-z1j5d6fd.js.map → stacks-v150hffx.js.map} +0 -0
  117. /package/dist/shared/{stacks-a36n7sjz.js.map → stacks-x94a1d6s.js.map} +0 -0
@@ -3,22 +3,21 @@ import {
3
3
  bech32m
4
4
  } from "../../shared/stacks-5nmz5ad9.js";
5
5
  import {
6
- getContract
7
- } from "../../shared/stacks-8mj5jw77.js";
8
- import"../../shared/stacks-z1j5d6fd.js";
9
- import"../../shared/stacks-q1mjkt15.js";
10
- import"../../shared/stacks-ttbq8emk.js";
6
+ getContract,
7
+ resolveNetworkContract
8
+ } from "../../shared/stacks-63xbc6cj.js";
9
+ import"../../shared/stacks-v150hffx.js";
10
+ import"../../shared/stacks-msmgyerb.js";
11
+ import"../../shared/stacks-502j0efj.js";
11
12
  import"../../shared/stacks-709tra19.js";
12
- import"../../shared/stacks-g7ffp8aj.js";
13
- import"../../shared/stacks-4trgpb5a.js";
14
- import"../../shared/stacks-0zysn74p.js";
15
- import"../../shared/stacks-v9jqcpd4.js";
16
- import"../../shared/stacks-xxn5ma6g.js";
17
- import"../../shared/stacks-6xmk24yw.js";
13
+ import"../../shared/stacks-18jv9aen.js";
14
+ import"../../shared/stacks-ssndnbbd.js";
15
+ import"../../shared/stacks-2mm20wqf.js";
16
+ import"../../shared/stacks-azp00pve.js";
18
17
  import {
19
18
  bytesToHex,
20
19
  hexToBytes
21
- } from "../../shared/stacks-2h8d2y27.js";
20
+ } from "../../shared/stacks-qs5fzts5.js";
22
21
  import"../../shared/stacks-cfazrteq.js";
23
22
 
24
23
  // src/sbtc/abi.ts
@@ -115,11 +114,7 @@ function sbtcContractId(network, contract) {
115
114
 
116
115
  // src/sbtc/actions.ts
117
116
  function getTokenContract(client) {
118
- if (!client.chain) {
119
- throw new Error("Client must have a chain configured");
120
- }
121
- const network = client.chain.network;
122
- const contract = network === "mainnet" ? SBTC_CONTRACTS.mainnet : SBTC_CONTRACTS.testnet;
117
+ const contract = resolveNetworkContract(client, SBTC_CONTRACTS);
123
118
  return getContract({
124
119
  client,
125
120
  address: contract.address,
@@ -285,5 +280,5 @@ export {
285
280
  SBTC_ASSET_IDENTIFIER_MAINNET
286
281
  };
287
282
 
288
- //# debugId=8D459A9282F0798264756E2164756E21
283
+ //# debugId=3BB7C491F3B78E4F64756E2164756E21
289
284
  //# sourceMappingURL=index.js.map
@@ -4,11 +4,11 @@
4
4
  "sourcesContent": [
5
5
  "import type { AbiContract } from \"../clarity/abi/contract.ts\";\n\n/**\n * Minimal read-only ABI for `sbtc-token`.\n *\n * Only covers the SIP-010 fungible-token getters needed for supply / balance\n * queries. Public mutating functions are intentionally omitted; the data plane\n * doesn't sign sBTC token transfers itself, and the dataset captures\n * mutation effects through SIP-005 token events on the indexer side.\n */\nexport const SBTC_TOKEN_ABI = {\n\tfunctions: [\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: { ok: { \"string-ascii\": { length: 32 } }, error: \"none\" },\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: { ok: { \"string-ascii\": { length: 10 } }, error: \"none\" },\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: \"none\" } },\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: \"none\" } },\n\t\t},\n\t\t{\n\t\t\tname: \"get-balance\",\n\t\t\taccess: \"read-only\",\n\t\t\targs: [{ name: \"owner\", type: \"principal\" }],\n\t\t\toutputs: { response: { ok: \"uint128\", error: \"none\" } },\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: \"none\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t],\n} as const satisfies AbiContract;\n",
6
6
  "/**\n * sBTC mainnet contract identifiers.\n *\n * The protocol uses three contracts:\n * - `sbtc-token` — SIP-010 fungible token with mint/burn/transfer SIP-005 events.\n * - `sbtc-deposit` — entry point for deposit completion calls (no print events).\n * - `sbtc-registry` — emits all protocol-state print events (deposits, withdrawals,\n * signer-set rotations, governance).\n *\n * Verified against the deployed mainnet contracts via Hiro's\n * `/v2/contracts/source/...` endpoint.\n */\nexport const SBTC_CONTRACTS = {\n\tmainnet: {\n\t\taddress: \"SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4\",\n\t\ttoken: \"sbtc-token\",\n\t\tdeposit: \"sbtc-deposit\",\n\t\tregistry: \"sbtc-registry\",\n\t},\n\ttestnet: {\n\t\taddress: \"SN3R84XZYA63QS28932XQF3G1J8R9PC3W76P9CSQS\",\n\t\ttoken: \"sbtc-token\",\n\t\tdeposit: \"sbtc-deposit\",\n\t\tregistry: \"sbtc-registry\",\n\t},\n} as const;\n\nexport type SbtcNetwork = keyof typeof SBTC_CONTRACTS;\n\n/** Asset identifier for `sbtc-token` (mainnet). */\nexport const SBTC_ASSET_IDENTIFIER_MAINNET: string = `${SBTC_CONTRACTS.mainnet.address}.${SBTC_CONTRACTS.mainnet.token}::sbtc-token`;\n\n/** Asset identifier for `sbtc-token` (testnet). */\nexport const SBTC_ASSET_IDENTIFIER_TESTNET: string = `${SBTC_CONTRACTS.testnet.address}.${SBTC_CONTRACTS.testnet.token}::sbtc-token`;\n\n/** All print-event topic strings emitted by `sbtc-registry`. */\nexport const SBTC_EVENT_TOPICS = [\n\t\"completed-deposit\",\n\t\"withdrawal-create\",\n\t\"withdrawal-accept\",\n\t\"withdrawal-reject\",\n\t\"key-rotation\",\n\t\"update-protocol-contract\",\n] as const;\n\nexport type SbtcEventTopic = (typeof SBTC_EVENT_TOPICS)[number];\n\n/** Bitcoin address version bytes used in BTC recipient tuples. Same byte map as PoX. */\nexport const SBTC_BTC_ADDRESS_VERSION = {\n\tp2pkh: 0x00,\n\tp2sh: 0x01,\n\tp2sh_p2wpkh: 0x02,\n\tp2sh_p2wsh: 0x03,\n\tp2wpkh: 0x04,\n\tp2wsh: 0x05,\n\tp2tr: 0x06,\n} as const;\n\n/** Number of decimal places in the sBTC fungible token (matches BTC). */\nexport const SBTC_DECIMALS = 8;\n\n/** Smallest unit of sBTC, denominated in satoshis. */\nexport const SBTC_UNIT_NAME = \"satoshis\" as const;\n\n/**\n * Resolve the qualified contract identifier for a given protocol contract.\n *\n * @example\n * sbtcContractId(\"mainnet\", \"registry\")\n * // => \"SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.sbtc-registry\"\n */\nexport function sbtcContractId(\n\tnetwork: SbtcNetwork,\n\tcontract: \"token\" | \"deposit\" | \"registry\",\n): string {\n\tconst cfg = SBTC_CONTRACTS[network];\n\treturn `${cfg.address}.${cfg[contract]}`;\n}\n",
7
- "import { getContract } from \"../actions/getContract.ts\";\nimport type { Client } from \"../clients/types.ts\";\nimport { SBTC_TOKEN_ABI } from \"./abi.ts\";\nimport { SBTC_CONTRACTS } from \"./constants.ts\";\n\nfunction getTokenContract(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\" ? SBTC_CONTRACTS.mainnet : SBTC_CONTRACTS.testnet;\n\treturn getContract({\n\t\tclient,\n\t\taddress: contract.address,\n\t\tname: contract.token,\n\t\tabi: SBTC_TOKEN_ABI,\n\t});\n}\n\n/** Total sBTC supply, in satoshis. */\nexport async function getTotalSupply(client: Client): Promise<bigint> {\n\tconst token = getTokenContract(client);\n\treturn (await token.read.getTotalSupply({})) as bigint;\n}\n\n/** sBTC balance of a Stacks principal, in satoshis. */\nexport async function getBalance(\n\tclient: Client,\n\towner: string,\n): Promise<bigint> {\n\tconst token = getTokenContract(client);\n\treturn (await token.read.getBalance({ owner })) as bigint;\n}\n\n/** Token name (`sBTC` for the canonical mainnet token). */\nexport async function getName(client: Client): Promise<string> {\n\tconst token = getTokenContract(client);\n\treturn (await token.read.getName({})) as string;\n}\n\n/** Token symbol. */\nexport async function getSymbol(client: Client): Promise<string> {\n\tconst token = getTokenContract(client);\n\treturn (await token.read.getSymbol({})) as string;\n}\n\n/** Number of decimals reported by `sbtc-token` (8 — matches BTC). */\nexport async function getDecimals(client: Client): Promise<bigint> {\n\tconst token = getTokenContract(client);\n\treturn (await token.read.getDecimals({})) as bigint;\n}\n\n/** Optional metadata URI returned by the token contract. */\nexport async function getTokenUri(client: Client): Promise<string | null> {\n\tconst token = getTokenContract(client);\n\treturn (await token.read.getTokenUri({})) as string | null;\n}\n",
7
+ "import { getContract, resolveNetworkContract } from \"../actions/getContract.ts\";\nimport type { Client } from \"../clients/types.ts\";\nimport { SBTC_TOKEN_ABI } from \"./abi.ts\";\nimport { SBTC_CONTRACTS } from \"./constants.ts\";\n\nfunction getTokenContract(client: Client) {\n\tconst contract = resolveNetworkContract(client, SBTC_CONTRACTS);\n\treturn getContract({\n\t\tclient,\n\t\taddress: contract.address,\n\t\tname: contract.token,\n\t\tabi: SBTC_TOKEN_ABI,\n\t});\n}\n\n/** Total sBTC supply, in satoshis. */\nexport async function getTotalSupply(client: Client): Promise<bigint> {\n\tconst token = getTokenContract(client);\n\treturn (await token.read.getTotalSupply({})) as bigint;\n}\n\n/** sBTC balance of a Stacks principal, in satoshis. */\nexport async function getBalance(\n\tclient: Client,\n\towner: string,\n): Promise<bigint> {\n\tconst token = getTokenContract(client);\n\treturn (await token.read.getBalance({ owner })) as bigint;\n}\n\n/** Token name (`sBTC` for the canonical mainnet token). */\nexport async function getName(client: Client): Promise<string> {\n\tconst token = getTokenContract(client);\n\treturn (await token.read.getName({})) as string;\n}\n\n/** Token symbol. */\nexport async function getSymbol(client: Client): Promise<string> {\n\tconst token = getTokenContract(client);\n\treturn (await token.read.getSymbol({})) as string;\n}\n\n/** Number of decimals reported by `sbtc-token` (8 — matches BTC). */\nexport async function getDecimals(client: Client): Promise<bigint> {\n\tconst token = getTokenContract(client);\n\treturn (await token.read.getDecimals({})) as bigint;\n}\n\n/** Optional metadata URI returned by the token contract. */\nexport async function getTokenUri(client: Client): Promise<string | null> {\n\tconst token = getTokenContract(client);\n\treturn (await token.read.getTokenUri({})) as string | null;\n}\n",
8
8
  "import { bech32, bech32m } from \"@scure/base\";\n\nimport { bytesToHex, hexToBytes } from \"../utils/encoding.ts\";\nimport { SBTC_BTC_ADDRESS_VERSION } from \"./constants.ts\";\nimport type { SbtcBtcRecipient } from \"./types.ts\";\n\nconst BASE58_ALPHABET =\n\t\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\";\n\nfunction base58Encode(bytes: Uint8Array): string {\n\tlet num = 0n;\n\tfor (const byte of bytes) num = num * 256n + BigInt(byte);\n\n\tlet str = \"\";\n\twhile (num > 0n) {\n\t\tconst r = num % 58n;\n\t\tstr = BASE58_ALPHABET[Number(r)] + str;\n\t\tnum /= 58n;\n\t}\n\tfor (const byte of bytes) {\n\t\tif (byte === 0) str = `1${str}`;\n\t\telse break;\n\t}\n\treturn str;\n}\n\nfunction sha256(bytes: Uint8Array): Uint8Array {\n\tconst hasher = new Bun.CryptoHasher(\"sha256\");\n\thasher.update(bytes);\n\treturn hasher.digest() as Uint8Array;\n}\n\nfunction doubleSha256(bytes: Uint8Array): Uint8Array {\n\treturn sha256(sha256(bytes));\n}\n\nfunction base58CheckEncode(version: number, hashbytes: Uint8Array): string {\n\tconst payload = new Uint8Array(1 + hashbytes.length);\n\tpayload[0] = version;\n\tpayload.set(hashbytes, 1);\n\tconst checksum = doubleSha256(payload).slice(0, 4);\n\tconst full = new Uint8Array(payload.length + 4);\n\tfull.set(payload, 0);\n\tfull.set(checksum, payload.length);\n\treturn base58Encode(full);\n}\n\n/**\n * Format a `(buff 1) + (buff 32)` BTC recipient tuple into a canonical\n * mainnet Bitcoin address string.\n *\n * Used to decode the `recipient` field of `withdrawal-create` events\n * into a human-readable address. Mirrors the reverse direction of the\n * `parseBtcAddress` helper in `pox/utils.ts`.\n */\nexport function formatBtcAddress(recipient: SbtcBtcRecipient): string {\n\tconst { version, hashbytes } = recipient;\n\tswitch (version) {\n\t\tcase SBTC_BTC_ADDRESS_VERSION.p2pkh:\n\t\t\treturn base58CheckEncode(0x00, hashbytes);\n\t\tcase SBTC_BTC_ADDRESS_VERSION.p2sh:\n\t\tcase SBTC_BTC_ADDRESS_VERSION.p2sh_p2wpkh:\n\t\tcase SBTC_BTC_ADDRESS_VERSION.p2sh_p2wsh:\n\t\t\treturn base58CheckEncode(0x05, hashbytes);\n\t\tcase SBTC_BTC_ADDRESS_VERSION.p2wpkh:\n\t\tcase SBTC_BTC_ADDRESS_VERSION.p2wsh: {\n\t\t\tconst words = bech32.toWords(hashbytes);\n\t\t\treturn bech32.encode(\"bc\", [0, ...words]);\n\t\t}\n\t\tcase SBTC_BTC_ADDRESS_VERSION.p2tr: {\n\t\t\tconst words = bech32m.toWords(hashbytes);\n\t\t\treturn bech32m.encode(\"bc\", [1, ...words]);\n\t\t}\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown BTC address version: ${version}`);\n\t}\n}\n\n/**\n * Validate that a buffer is a 32-byte Bitcoin transaction id.\n * Throws if the buffer is the wrong length.\n */\nexport function validateBitcoinTxid(buf: Uint8Array): void {\n\tif (buf.length !== 32) {\n\t\tthrow new Error(`Bitcoin txid must be 32 bytes, got ${buf.length}`);\n\t}\n}\n\n/**\n * Hex-encode a Bitcoin txid for storage / display. Throws if the input is\n * not 32 bytes.\n */\nexport function bitcoinTxidToHex(buf: Uint8Array): string {\n\tvalidateBitcoinTxid(buf);\n\treturn bytesToHex(buf);\n}\n\n/**\n * Parse a hex string back into a 32-byte txid. Mirrors `bitcoinTxidToHex`.\n */\nexport function bitcoinTxidFromHex(hex: string): Uint8Array {\n\tconst buf = hexToBytes(hex);\n\tvalidateBitcoinTxid(buf);\n\treturn buf;\n}\n\n/**\n * Convert satoshis (BigInt) to a decimal-string sBTC amount.\n *\n * sBTC has 8 decimals (matching BTC). 100_000_000 sats = 1 sBTC.\n */\nexport function satsToSbtc(sats: bigint): string {\n\tconst sign = sats < 0n ? \"-\" : \"\";\n\tconst abs = sats < 0n ? -sats : sats;\n\tconst whole = abs / 100_000_000n;\n\tconst frac = abs % 100_000_000n;\n\tif (frac === 0n) return `${sign}${whole}`;\n\tconst fracStr = frac.toString().padStart(8, \"0\").replace(/0+$/, \"\");\n\treturn `${sign}${whole}.${fracStr}`;\n}\n\n/**\n * Parse a decimal-string sBTC amount into satoshis. Inverse of\n * {@link satsToSbtc}.\n */\nexport function sbtcToSats(amount: string): bigint {\n\tconst trimmed = amount.trim();\n\tif (!/^-?\\d+(?:\\.\\d+)?$/.test(trimmed)) {\n\t\tthrow new Error(`Invalid sBTC amount: ${amount}`);\n\t}\n\tconst negative = trimmed.startsWith(\"-\");\n\tconst body = negative ? trimmed.slice(1) : trimmed;\n\tconst dotIndex = body.indexOf(\".\");\n\tconst whole = dotIndex < 0 ? body : body.slice(0, dotIndex);\n\tconst frac = dotIndex < 0 ? \"\" : body.slice(dotIndex + 1);\n\tif (frac.length > 8) {\n\t\tthrow new Error(`sBTC amount has more than 8 decimal places: ${amount}`);\n\t}\n\tconst padded = frac.padEnd(8, \"0\");\n\tconst sats = BigInt(whole) * 100_000_000n + BigInt(padded);\n\treturn negative ? -sats : sats;\n}\n",
9
9
  "import type { Client } from \"../clients/types.ts\";\nimport {\n\tgetBalance,\n\tgetDecimals,\n\tgetName,\n\tgetSymbol,\n\tgetTokenUri,\n\tgetTotalSupply,\n} from \"./actions.ts\";\n\nexport type {\n\tCompletedDepositEvent,\n\tKeyRotationEvent,\n\tSbtcBtcRecipient,\n\tSbtcEventByTopic,\n\tSbtcRegistryEvent,\n\tSbtcTokenBurnEvent,\n\tSbtcTokenEvent,\n\tSbtcTokenMintEvent,\n\tSbtcTokenTransferEvent,\n\tUpdateProtocolContractEvent,\n\tWithdrawalAcceptEvent,\n\tWithdrawalCreateEvent,\n\tWithdrawalRejectEvent,\n} from \"./types.ts\";\n\nexport {\n\tSBTC_ASSET_IDENTIFIER_MAINNET,\n\tSBTC_ASSET_IDENTIFIER_TESTNET,\n\tSBTC_BTC_ADDRESS_VERSION,\n\tSBTC_CONTRACTS,\n\tSBTC_DECIMALS,\n\tSBTC_EVENT_TOPICS,\n\tSBTC_UNIT_NAME,\n\tsbtcContractId,\n} from \"./constants.ts\";\nexport type { SbtcEventTopic, SbtcNetwork } from \"./constants.ts\";\nexport {\n\tbitcoinTxidFromHex,\n\tbitcoinTxidToHex,\n\tformatBtcAddress,\n\tsatsToSbtc,\n\tsbtcToSats,\n\tvalidateBitcoinTxid,\n} from \"./utils.ts\";\nexport { SBTC_TOKEN_ABI } from \"./abi.ts\";\n\n/** Actions provided by the sBTC extension. */\nexport type SbtcActions = {\n\tsbtc: {\n\t\tgetTotalSupply: () => Promise<bigint>;\n\t\tgetBalance: (owner: string) => Promise<bigint>;\n\t\tgetName: () => Promise<string>;\n\t\tgetSymbol: () => Promise<string>;\n\t\tgetDecimals: () => Promise<bigint>;\n\t\tgetTokenUri: () => Promise<string | null>;\n\t};\n};\n\n/**\n * sBTC extension for the Stacks client.\n *\n * @example\n * import { createWalletClient, http, mainnet } from \"stacks\";\n * import { sbtc } from \"stacks/sbtc\";\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: http(),\n * }).extend(sbtc());\n *\n * const supply = await client.sbtc.getTotalSupply();\n * const balance = await client.sbtc.getBalance(\"SP1...\");\n */\nexport function sbtc(): (client: Client) => SbtcActions {\n\treturn (client: Client) => ({\n\t\tsbtc: {\n\t\t\tgetTotalSupply: () => getTotalSupply(client),\n\t\t\tgetBalance: (owner: string) => getBalance(client, owner),\n\t\t\tgetName: () => getName(client),\n\t\t\tgetSymbol: () => getSymbol(client),\n\t\t\tgetDecimals: () => getDecimals(client),\n\t\t\tgetTokenUri: () => getTokenUri(client),\n\t\t},\n\t});\n}\n"
10
10
  ],
11
- "mappings": "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",
12
- "debugId": "8D459A9282F0798264756E2164756E21",
11
+ "mappings": "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",
12
+ "debugId": "3BB7C491F3B78E4F64756E2164756E21",
13
13
  "names": []
14
14
  }
@@ -3,22 +3,20 @@ import {
3
3
  } from "../../shared/stacks-kg1npstf.js";
4
4
  import {
5
5
  getContract
6
- } from "../../shared/stacks-8mj5jw77.js";
7
- import"../../shared/stacks-z1j5d6fd.js";
8
- import"../../shared/stacks-q1mjkt15.js";
9
- import"../../shared/stacks-ttbq8emk.js";
6
+ } from "../../shared/stacks-63xbc6cj.js";
7
+ import"../../shared/stacks-v150hffx.js";
8
+ import"../../shared/stacks-msmgyerb.js";
9
+ import"../../shared/stacks-502j0efj.js";
10
10
  import"../../shared/stacks-709tra19.js";
11
- import"../../shared/stacks-g7ffp8aj.js";
11
+ import"../../shared/stacks-18jv9aen.js";
12
12
  import"../../shared/stacks-z53fwfcm.js";
13
13
  import {
14
14
  Pc
15
- } from "../../shared/stacks-a36n7sjz.js";
16
- import"../../shared/stacks-4trgpb5a.js";
17
- import"../../shared/stacks-0zysn74p.js";
18
- import"../../shared/stacks-v9jqcpd4.js";
19
- import"../../shared/stacks-xxn5ma6g.js";
20
- import"../../shared/stacks-6xmk24yw.js";
21
- import"../../shared/stacks-2h8d2y27.js";
15
+ } from "../../shared/stacks-x94a1d6s.js";
16
+ import"../../shared/stacks-ssndnbbd.js";
17
+ import"../../shared/stacks-2mm20wqf.js";
18
+ import"../../shared/stacks-azp00pve.js";
19
+ import"../../shared/stacks-qs5fzts5.js";
22
20
  import"../../shared/stacks-cfazrteq.js";
23
21
 
24
22
  // src/stackingdao/abi.ts
@@ -340,5 +338,5 @@ export {
340
338
  STACKINGDAO_CONTRACTS
341
339
  };
342
340
 
343
- //# debugId=9C02BA63EC0F722164756E2164756E21
341
+ //# debugId=E241BAB0EAD8275364756E2164756E21
344
342
  //# sourceMappingURL=index.js.map
@@ -7,7 +7,7 @@
7
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: client.account?.address\n\t\t\t\t? [\n\t\t\t\t\t\tPc.principal(client.account.address)\n\t\t\t\t\t\t\t.willSendEq(params.amount)\n\t\t\t\t\t\t\t.ustx(),\n\t\t\t\t\t]\n\t\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: client.account?.address\n\t\t\t\t? [\n\t\t\t\t\t\tPc.principal(client.account.address)\n\t\t\t\t\t\t\t.willSendEq(params.ststxAmount)\n\t\t\t\t\t\t\t.ft(`${ststx.address}.${ststx.name}`, \"ststx\"),\n\t\t\t\t\t]\n\t\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: client.account?.address\n\t\t\t\t? [\n\t\t\t\t\t\tPc.principal(client.account.address)\n\t\t\t\t\t\t\t.willSendEq(params.ststxAmount)\n\t\t\t\t\t\t\t.ft(`${ststx.address}.${ststx.name}`, \"ststx\"),\n\t\t\t\t\t]\n\t\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
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": "9C02BA63EC0F722164756E2164756E21",
10
+ "mappings": "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",
11
+ "debugId": "E241BAB0EAD8275364756E2164756E21",
12
12
  "names": []
13
13
  }
@@ -452,6 +452,11 @@ var NonFungibleConditionCode = {
452
452
  Sends: 16,
453
453
  DoesNotSend: 17
454
454
  };
455
+ var PoxConditionCode = {
456
+ WillNotPerform: 48,
457
+ MayPerform: 49,
458
+ WillPerform: 50
459
+ };
455
460
  var PostConditionPrincipalId = {
456
461
  Origin: 1,
457
462
  Standard: 2,
@@ -460,7 +465,9 @@ var PostConditionPrincipalId = {
460
465
  var AssetType = {
461
466
  STX: 0,
462
467
  Fungible: 1,
463
- NonFungible: 2
468
+ NonFungible: 2,
469
+ Staking: 3,
470
+ Pox: 4
464
471
  };
465
472
  var RECOVERABLE_ECDSA_SIG_LENGTH_BYTES = 65;
466
473
  var MEMO_MAX_LENGTH_BYTES = 34;
@@ -557,6 +564,17 @@ function serializePostCondition(pc) {
557
564
  parts.push(serializeCVBytes(pc.assetId));
558
565
  parts.push(writeUInt8(pc.conditionCode));
559
566
  break;
567
+ case "staking":
568
+ parts.push(writeUInt8(AssetType.Staking));
569
+ parts.push(serializePrincipal(pc.principal));
570
+ parts.push(writeUInt8(pc.conditionCode));
571
+ parts.push(intToBytes(pc.amount, 8));
572
+ break;
573
+ case "pox":
574
+ parts.push(writeUInt8(AssetType.Pox));
575
+ parts.push(serializePrincipal(pc.principal));
576
+ parts.push(writeUInt8(pc.conditionCode));
577
+ break;
560
578
  }
561
579
  return concatBytes(...parts);
562
580
  }
@@ -730,7 +748,37 @@ class BytesReader {
730
748
  }
731
749
  }
732
750
 
751
+ // src/utils/constants.ts
752
+ var MAX_U128 = (1n << 128n) - 1n;
753
+ var MAX_I128 = (1n << 127n) - 1n;
754
+ var MIN_I128 = -(1n << 127n);
755
+ var AddressVersion = {
756
+ MainnetSingleSig: 22,
757
+ MainnetMultiSig: 20,
758
+ TestnetSingleSig: 26,
759
+ TestnetMultiSig: 21
760
+ };
761
+
762
+ // src/utils/hash.ts
763
+ var import_legacy = require("@noble/hashes/legacy.js");
764
+ var import_sha22 = require("@noble/hashes/sha2.js");
765
+ var import_sha23 = require("@noble/hashes/sha2.js");
766
+ function hash160(input) {
767
+ return import_legacy.ripemd160(import_sha22.sha256(input));
768
+ }
769
+ function txidFromBytes(data) {
770
+ return bytesToHex(import_sha23.sha512_256(data));
771
+ }
772
+ function hashP2PKH(input) {
773
+ return bytesToHex(hash160(input));
774
+ }
775
+
733
776
  // src/utils/address.ts
777
+ function publicKeyToAddress(publicKey, network = "mainnet") {
778
+ const bytes = typeof publicKey === "string" ? hexToBytes(without0x(publicKey)) : publicKey;
779
+ const version = network === "mainnet" ? AddressVersion.MainnetSingleSig : AddressVersion.TestnetSingleSig;
780
+ return c32address(version, bytesToHex(hash160(bytes)));
781
+ }
734
782
  function parseContractId(contractId) {
735
783
  const [address, name] = contractId.split(".");
736
784
  if (!address || !name)
@@ -743,9 +791,9 @@ function isClarityName(name) {
743
791
  }
744
792
 
745
793
  // src/clarity/values.ts
746
- var MAX_U128 = BigInt("0xffffffffffffffffffffffffffffffff");
747
- var MIN_I128 = BigInt("-170141183460469231731687303715884105728");
748
- var MAX_I128 = BigInt("0x7fffffffffffffffffffffffffffffff");
794
+ var MAX_U1282 = BigInt("0xffffffffffffffffffffffffffffffff");
795
+ var MIN_I1282 = BigInt("-170141183460469231731687303715884105728");
796
+ var MAX_I1282 = BigInt("0x7fffffffffffffffffffffffffffffff");
749
797
  function intCV(value) {
750
798
  let v = value;
751
799
  if (typeof v === "string" && v.toLowerCase().startsWith("0x")) {
@@ -754,18 +802,18 @@ function intCV(value) {
754
802
  if (v instanceof Uint8Array)
755
803
  v = bytesToTwosBigInt(v);
756
804
  const n = intToBigInt(v);
757
- if (n > MAX_I128)
758
- throw new RangeError(`Int exceeds max i128: ${MAX_I128}`);
759
- if (n < MIN_I128)
760
- throw new RangeError(`Int below min i128: ${MIN_I128}`);
805
+ if (n > MAX_I1282)
806
+ throw new RangeError(`Int exceeds max i128: ${MAX_I1282}`);
807
+ if (n < MIN_I1282)
808
+ throw new RangeError(`Int below min i128: ${MIN_I1282}`);
761
809
  return { type: "int", value: n };
762
810
  }
763
811
  function uintCV(value) {
764
812
  const n = intToBigInt(value);
765
813
  if (n < 0n)
766
814
  throw new RangeError("Cannot construct unsigned int from negative value");
767
- if (n > MAX_U128)
768
- throw new RangeError(`UInt exceeds max u128: ${MAX_U128}`);
815
+ if (n > MAX_U1282)
816
+ throw new RangeError(`UInt exceeds max u128: ${MAX_U1282}`);
769
817
  return { type: "uint", value: n };
770
818
  }
771
819
  var trueCV = () => ({ type: "true" });
@@ -778,13 +826,13 @@ function bufferCV(buffer) {
778
826
  return { type: "buffer", value: bytesToHex(buffer) };
779
827
  }
780
828
  function standardPrincipalCV(address) {
781
- const [version, hash160] = c32addressDecode(address);
782
- const normalized = c32address(version, hash160);
829
+ const [version, hash1602] = c32addressDecode(address);
830
+ const normalized = c32address(version, hash1602);
783
831
  return { type: "address", value: normalized };
784
832
  }
785
833
  function contractPrincipalCV(address, contractName) {
786
- const [version, hash160] = c32addressDecode(address);
787
- const normalized = c32address(version, hash160);
834
+ const [version, hash1602] = c32addressDecode(address);
835
+ const normalized = c32address(version, hash1602);
788
836
  if (utf8ToBytes(contractName).byteLength >= 128) {
789
837
  throw new Error("Contract name must be less than 128 bytes");
790
838
  }
@@ -855,8 +903,8 @@ var Cl = {
855
903
  // src/clarity/deserialize.ts
856
904
  function readAddress(reader) {
857
905
  const version = reader.readUInt8();
858
- const hash160 = bytesToHex(reader.readBytes(20));
859
- return c32address(version, hash160);
906
+ const hash1602 = bytesToHex(reader.readBytes(20));
907
+ return c32address(version, hash1602);
860
908
  }
861
909
  function readLPString(reader, prefixBytes = 1) {
862
910
  let length = 0;
@@ -953,11 +1001,6 @@ function toCamelCase(str) {
953
1001
  return str.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase()).replace(/-([A-Z])/g, (_, letter) => letter).replace(/-(\d)/g, (_, digit) => digit).replace(/-/g, "").replace(/^\d/, "_$&");
954
1002
  }
955
1003
 
956
- // src/utils/constants.ts
957
- var MAX_U1282 = (1n << 128n) - 1n;
958
- var MAX_I1282 = (1n << 127n) - 1n;
959
- var MIN_I1282 = -(1n << 127n);
960
-
961
1004
  // src/clarity/abi/guards.ts
962
1005
  function isAbiList(type) {
963
1006
  return typeof type === "object" && type !== null && "list" in type;
@@ -982,7 +1025,64 @@ function isAbiStringUtf8(type) {
982
1025
  }
983
1026
 
984
1027
  // src/clarity/bridge.ts
1028
+ var CV_TYPE_TAGS = new Set([
1029
+ "int",
1030
+ "uint",
1031
+ "true",
1032
+ "false",
1033
+ "address",
1034
+ "contract",
1035
+ "ascii",
1036
+ "utf8",
1037
+ "buffer",
1038
+ "list",
1039
+ "tuple",
1040
+ "none",
1041
+ "some",
1042
+ "ok",
1043
+ "err"
1044
+ ]);
1045
+ function isClarityValue(value) {
1046
+ if (typeof value !== "object" || value === null)
1047
+ return false;
1048
+ const type = value.type;
1049
+ if (typeof type !== "string" || !CV_TYPE_TAGS.has(type))
1050
+ return false;
1051
+ if (type === "true" || type === "false" || type === "none")
1052
+ return true;
1053
+ return "value" in value;
1054
+ }
1055
+ var HEX_PAIRS_REGEX = /^(?:[0-9a-fA-F]{2})+$/;
1056
+ function coerceBuffer(value) {
1057
+ if (value instanceof Uint8Array)
1058
+ return bufferCV(value);
1059
+ if (typeof value === "object" && value !== null && "type" in value) {
1060
+ const tagged = value;
1061
+ if (tagged.type === "buffer" && isClarityValue(value))
1062
+ return value;
1063
+ if (typeof tagged.value === "string") {
1064
+ if (tagged.type === "ascii")
1065
+ return Cl.bufferFromAscii(tagged.value);
1066
+ if (tagged.type === "utf8")
1067
+ return Cl.bufferFromUtf8(tagged.value);
1068
+ if (tagged.type === "hex")
1069
+ return Cl.bufferFromHex(tagged.value);
1070
+ }
1071
+ throw new Error(`Unsupported buffer input: ${JSON.stringify(value)}`);
1072
+ }
1073
+ if (typeof value === "string") {
1074
+ const hex = value.startsWith("0x") ? value.slice(2) : value;
1075
+ if (HEX_PAIRS_REGEX.test(hex))
1076
+ return Cl.bufferFromHex(hex);
1077
+ return Cl.bufferFromUtf8(value);
1078
+ }
1079
+ throw new Error("buffer arg expects Uint8Array, hex string, { type, value }, or BufferCV");
1080
+ }
985
1081
  function jsToClarityValue(abiType, value) {
1082
+ if (isAbiBuffer(abiType))
1083
+ return coerceBuffer(value);
1084
+ if (isClarityValue(value))
1085
+ return value;
986
1086
  if (abiType === "uint128")
987
1087
  return uintCV(value);
988
1088
  if (abiType === "int128")
@@ -995,8 +1095,6 @@ function jsToClarityValue(abiType, value) {
995
1095
  return stringAsciiCV(value);
996
1096
  if (isAbiStringUtf8(abiType))
997
1097
  return stringUtf8CV(value);
998
- if (isAbiBuffer(abiType))
999
- return bufferCV(value);
1000
1098
  if (isAbiList(abiType)) {
1001
1099
  const arr = value;
1002
1100
  return listCV(arr.map((item) => jsToClarityValue(abiType.list.type, item)));
@@ -1102,37 +1200,10 @@ function clarityValueToJSInner(abiType, cv) {
1102
1200
  throw new Error(`Unknown ABI type: ${JSON.stringify(abiType)}`);
1103
1201
  }
1104
1202
 
1105
- // src/actions/public/getMapEntry.ts
1106
- async function getMapEntry(client, params) {
1107
- const [address, name] = parseContractId(params.contract);
1108
- const serializedKey = with0x(bytesToHex(serializeCVBytes(params.key)));
1109
- const data = await client.request(`/v2/map_entry/${address}/${name}/${params.mapName}`, {
1110
- method: "POST",
1111
- body: serializedKey
1112
- });
1113
- return deserializeCVBytes(data.data);
1114
- }
1115
-
1116
1203
  // src/transactions/authorization.ts
1117
1204
  var import_hmac = require("@noble/hashes/hmac.js");
1118
1205
  var import_sha24 = require("@noble/hashes/sha2.js");
1119
1206
  var import_secp256k1 = require("@noble/secp256k1");
1120
-
1121
- // src/utils/hash.ts
1122
- var import_legacy = require("@noble/hashes/legacy.js");
1123
- var import_sha22 = require("@noble/hashes/sha2.js");
1124
- var import_sha23 = require("@noble/hashes/sha2.js");
1125
- function hash160(input) {
1126
- return import_legacy.ripemd160(import_sha22.sha256(input));
1127
- }
1128
- function txidFromBytes(data) {
1129
- return bytesToHex(import_sha23.sha512_256(data));
1130
- }
1131
- function hashP2PKH(input) {
1132
- return bytesToHex(hash160(input));
1133
- }
1134
-
1135
- // src/transactions/authorization.ts
1136
1207
  import_secp256k1.etc.hmacSha256Sync = (key, ...msgs) => {
1137
1208
  const h = import_hmac.hmac.create(import_sha24.sha256, key);
1138
1209
  for (const msg of msgs)
@@ -1284,8 +1355,26 @@ function convertPostCondition(pc) {
1284
1355
  assetId: pc.assetId
1285
1356
  };
1286
1357
  }
1358
+ case "staking-postcondition":
1359
+ return {
1360
+ type: "staking",
1361
+ principal: resolvePrincipal(pc.address),
1362
+ conditionCode: FUNGIBLE_CODE_MAP[pc.condition],
1363
+ amount: intToBigInt(pc.amount)
1364
+ };
1365
+ case "pox-postcondition":
1366
+ return {
1367
+ type: "pox",
1368
+ principal: resolvePrincipal(pc.address),
1369
+ conditionCode: POX_CODE_MAP[pc.condition]
1370
+ };
1287
1371
  }
1288
1372
  }
1373
+ var POX_CODE_MAP = {
1374
+ "will-not-perform": PoxConditionCode.WillNotPerform,
1375
+ "may-perform": PoxConditionCode.MayPerform,
1376
+ "will-perform": PoxConditionCode.WillPerform
1377
+ };
1289
1378
  function resolveSpendingCondition(opts, nonce, fee) {
1290
1379
  if (opts.publicKeys) {
1291
1380
  return createMultiSigSpendingCondition(opts.publicKeys, opts.signaturesRequired, nonce, fee, opts.hashMode);
@@ -1326,6 +1415,17 @@ function buildContractCall(options) {
1326
1415
  return tx;
1327
1416
  }
1328
1417
 
1418
+ // src/actions/public/getMapEntry.ts
1419
+ async function getMapEntry(client, params) {
1420
+ const [address, name] = parseContractId(params.contract);
1421
+ const serializedKey = with0x(bytesToHex(serializeCVBytes(params.key)));
1422
+ const data = await client.request(`/v2/map_entry/${address}/${name}/${params.mapName}`, {
1423
+ method: "POST",
1424
+ body: serializedKey
1425
+ });
1426
+ return deserializeCVBytes(data.data);
1427
+ }
1428
+
1329
1429
  // src/transactions/signer.ts
1330
1430
  function txid(tx) {
1331
1431
  return txidFromBytes(serializeTransaction(tx));
@@ -1564,6 +1664,46 @@ function getContract(params) {
1564
1664
  };
1565
1665
  }
1566
1666
  });
1667
+ const buildCall = new Proxy({}, {
1668
+ get(_target, prop) {
1669
+ const fnName = camelToKebab.get(prop) ?? prop;
1670
+ const fn = fnByName.get(fnName);
1671
+ if (!fn || fn.access !== "public")
1672
+ return;
1673
+ return async (args, options) => {
1674
+ const publicKey = options?.publicKey ?? client.account?.publicKey;
1675
+ if (!publicKey) {
1676
+ throw new Error("buildCall requires a publicKey (pass options.publicKey or configure a client account)");
1677
+ }
1678
+ const functionArgs = buildFunctionArgs(fn, args);
1679
+ const network = client.chain?.network ?? "mainnet";
1680
+ const nonce = options?.nonce ?? await resolveNonce(client, publicKeyToAddress(publicKey, network));
1681
+ const unsigned = buildContractCall({
1682
+ contractAddress: address,
1683
+ contractName,
1684
+ functionName: fn.name,
1685
+ functionArgs,
1686
+ fee: options?.fee ?? 0n,
1687
+ nonce,
1688
+ publicKey,
1689
+ chain: client.chain,
1690
+ postConditionMode: options?.postConditionMode,
1691
+ postConditions: options?.postConditions,
1692
+ sponsored: options?.sponsored
1693
+ });
1694
+ if (options?.fee === undefined) {
1695
+ const estimates = await estimateFee(client, {
1696
+ transaction: unsigned
1697
+ });
1698
+ const mid = estimates[1] ?? estimates[0];
1699
+ if (mid) {
1700
+ unsigned.auth.spendingCondition.fee = BigInt(mid.fee);
1701
+ }
1702
+ }
1703
+ return unsigned;
1704
+ };
1705
+ }
1706
+ });
1567
1707
  const maps = new Proxy({}, {
1568
1708
  get(_target, prop) {
1569
1709
  const mapName = camelToKebab.get(prop) ?? prop;
@@ -1586,7 +1726,13 @@ function getContract(params) {
1586
1726
  };
1587
1727
  }
1588
1728
  });
1589
- return { read, call, maps };
1729
+ return { read, call, buildCall, maps };
1730
+ }
1731
+ function resolveNetworkContract(client, contracts) {
1732
+ if (!client.chain) {
1733
+ throw new Error("Client must have a chain configured");
1734
+ }
1735
+ return contracts[client.chain.network];
1590
1736
  }
1591
1737
  function buildFunctionArgs(fn, args) {
1592
1738
  return fn.args.map((arg) => {
@@ -2108,11 +2254,7 @@ function validateFQN(fqn) {
2108
2254
 
2109
2255
  // src/bns/actions.ts
2110
2256
  function getBnsContract(client) {
2111
- if (!client.chain) {
2112
- throw new Error("Client must have a chain configured");
2113
- }
2114
- const network = client.chain.network;
2115
- const contract = network === "mainnet" ? BNS_CONTRACTS.mainnet : BNS_CONTRACTS.testnet;
2257
+ const contract = resolveNetworkContract(client, BNS_CONTRACTS);
2116
2258
  return getContract({
2117
2259
  client,
2118
2260
  address: contract.address,
@@ -2754,5 +2896,5 @@ var getNftHoldings = import_ai.tool({
2754
2896
  execute: ({ principal, limit }) => nftHoldings(getDefaultPublicClient(), principal, limit)
2755
2897
  });
2756
2898
 
2757
- //# debugId=9C39002977E0890664756E2164756E21
2899
+ //# debugId=47021AD178AA414364756E2164756E21
2758
2900
  //# sourceMappingURL=index.cjs.map