@secondlayer/stacks 2.0.1 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/shared/stacks-9z833ww5.js +409 -0
- package/dist/shared/stacks-9z833ww5.js.map +10 -0
- package/dist/shared/stacks-mnnhpex3.cjs +407 -0
- package/dist/shared/stacks-mnnhpex3.cjs.map +10 -0
- package/dist/src/pox/index.cjs +3 -408
- package/dist/src/pox/index.cjs.map +3 -4
- package/dist/src/pox/index.js +7 -408
- package/dist/src/pox/index.js.map +3 -4
- package/dist/src/sbtc/index.cjs +270 -0
- package/dist/src/sbtc/index.cjs.map +14 -0
- package/dist/src/sbtc/index.d.cts +399 -0
- package/dist/src/sbtc/index.d.ts +399 -0
- package/dist/src/sbtc/index.js +286 -0
- package/dist/src/sbtc/index.js.map +14 -0
- package/package.json +6 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/sbtc/abi.ts", "../src/sbtc/constants.ts", "../src/sbtc/actions.ts", "../src/sbtc/utils.ts", "../src/sbtc/index.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
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
|
+
"/**\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",
|
|
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
|
+
"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
|
+
],
|
|
11
|
+
"mappings": "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",
|
|
12
|
+
"debugId": "ABC665DEBE54FC7C64756E2164756E21",
|
|
13
|
+
"names": []
|
|
14
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@secondlayer/stacks",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "A viem-style SDK for the Stacks blockchain",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/src/index.cjs",
|
|
@@ -62,6 +62,11 @@
|
|
|
62
62
|
"import": "./dist/src/pox/index.js",
|
|
63
63
|
"require": "./dist/src/pox/index.cjs"
|
|
64
64
|
},
|
|
65
|
+
"./sbtc": {
|
|
66
|
+
"types": "./dist/src/sbtc/index.d.ts",
|
|
67
|
+
"import": "./dist/src/sbtc/index.js",
|
|
68
|
+
"require": "./dist/src/sbtc/index.cjs"
|
|
69
|
+
},
|
|
65
70
|
"./stackingdao": {
|
|
66
71
|
"types": "./dist/src/stackingdao/index.d.ts",
|
|
67
72
|
"import": "./dist/src/stackingdao/index.js",
|