@secondlayer/stacks 2.0.0 → 2.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.
- package/dist/shared/{stacks-0nfexv24.cjs → stacks-0jk7vd8r.cjs} +9 -8
- package/dist/shared/{stacks-0nfexv24.cjs.map → stacks-0jk7vd8r.cjs.map} +5 -5
- package/dist/shared/{stacks-wjem3xw9.js → stacks-0zysn74p.js} +11 -10
- package/dist/shared/{stacks-wjem3xw9.js.map → stacks-0zysn74p.js.map} +5 -5
- package/dist/shared/stacks-14pgpkrr.cjs.map +6 -6
- package/dist/shared/{stacks-s7z5q8be.js → stacks-2h8d2y27.js} +29 -28
- package/dist/shared/stacks-2h8d2y27.js.map +11 -0
- package/dist/shared/{stacks-96d6m1zy.js → stacks-3erxq8wh.js} +6 -6
- package/dist/shared/{stacks-96d6m1zy.js.map → stacks-3erxq8wh.js.map} +4 -4
- package/dist/shared/{stacks-ra02bpny.cjs → stacks-3y058qda.cjs} +29 -28
- package/dist/shared/stacks-3y058qda.cjs.map +11 -0
- package/dist/shared/{stacks-s10yb9gz.js → stacks-6xmk24yw.js} +2 -2
- package/dist/shared/{stacks-70p84bgg.js → stacks-7tn3zsbe.js} +3 -3
- package/dist/shared/stacks-7tn3zsbe.js.map +10 -0
- package/dist/shared/{stacks-y5262j0z.cjs → stacks-8e4k5qnm.cjs} +4 -4
- package/dist/shared/{stacks-y5262j0z.cjs.map → stacks-8e4k5qnm.cjs.map} +4 -4
- package/dist/shared/stacks-9z833ww5.js +409 -0
- package/dist/shared/stacks-9z833ww5.js.map +10 -0
- package/dist/shared/{stacks-5tprhns9.cjs → stacks-dpxnxhqb.cjs} +2 -5
- package/dist/shared/{stacks-5tprhns9.cjs.map → stacks-dpxnxhqb.cjs.map} +3 -3
- package/dist/shared/{stacks-4x2bcc2k.js → stacks-fy5h5qyx.js} +7 -7
- package/dist/shared/{stacks-4x2bcc2k.js.map → stacks-fy5h5qyx.js.map} +6 -6
- package/dist/shared/{stacks-zf7rbpzp.js → stacks-g7ffp8aj.js} +3 -3
- package/dist/shared/{stacks-zf7rbpzp.js.map → stacks-g7ffp8aj.js.map} +2 -2
- package/dist/shared/{stacks-1s5w4ncf.js → stacks-g7ys594x.js} +7 -7
- package/dist/shared/{stacks-1s5w4ncf.js.map → stacks-g7ys594x.js.map} +4 -4
- package/dist/shared/{stacks-09wa7ewe.js → stacks-kmnthgj7.js} +12 -12
- package/dist/shared/stacks-kmnthgj7.js.map +15 -0
- package/dist/shared/{stacks-je937aas.js → stacks-kmshch4q.js} +3 -3
- package/dist/shared/stacks-mnnhpex3.cjs +407 -0
- package/dist/shared/stacks-mnnhpex3.cjs.map +10 -0
- package/dist/shared/{stacks-y3dh7hv1.js → stacks-tjjnkt3r.js} +2 -5
- package/dist/shared/{stacks-y3dh7hv1.js.map → stacks-tjjnkt3r.js.map} +3 -3
- package/dist/shared/stacks-vdfag81a.cjs.map +2 -2
- package/dist/shared/stacks-wyxj879g.cjs.map +2 -2
- package/dist/shared/{stacks-rwfgts3s.js → stacks-xxn5ma6g.js} +2 -2
- package/dist/shared/{stacks-17sdtaxg.cjs → stacks-xxvz1x0f.cjs} +8 -8
- package/dist/shared/stacks-xxvz1x0f.cjs.map +15 -0
- package/dist/shared/{stacks-s30kkvm8.js → stacks-y2p4h5ks.js} +4 -4
- package/dist/shared/{stacks-znrb59ce.cjs → stacks-y3nbm8bw.cjs} +3 -3
- package/dist/shared/{stacks-znrb59ce.cjs.map → stacks-y3nbm8bw.cjs.map} +4 -4
- package/dist/src/accounts/index.cjs +3 -2
- package/dist/src/accounts/index.cjs.map +3 -3
- package/dist/src/accounts/index.js +5 -4
- package/dist/src/accounts/index.js.map +3 -3
- package/dist/src/actions/index.js +11 -11
- package/dist/src/bns/index.cjs +2 -4
- package/dist/src/bns/index.cjs.map +4 -4
- package/dist/src/bns/index.js +12 -14
- package/dist/src/bns/index.js.map +4 -4
- package/dist/src/clarity/index.js +5 -5
- package/dist/src/connect/index.cjs +17 -17
- package/dist/src/connect/index.cjs.map +7 -7
- package/dist/src/connect/index.js +17 -17
- package/dist/src/connect/index.js.map +7 -7
- package/dist/src/connect/walletconnect/index.cjs +16 -13
- package/dist/src/connect/walletconnect/index.cjs.map +9 -9
- package/dist/src/connect/walletconnect/index.js +16 -13
- package/dist/src/connect/walletconnect/index.js.map +9 -9
- package/dist/src/index.cjs +4 -4
- package/dist/src/index.cjs.map +8 -8
- package/dist/src/index.d.cts +0 -4
- package/dist/src/index.d.ts +0 -4
- package/dist/src/index.js +13 -13
- package/dist/src/index.js.map +8 -8
- package/dist/src/postconditions/index.js +3 -3
- package/dist/src/pox/index.cjs +3 -408
- package/dist/src/pox/index.cjs.map +4 -5
- package/dist/src/pox/index.js +16 -417
- package/dist/src/pox/index.js.map +4 -5
- 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/dist/src/stackingdao/index.cjs +7 -7
- package/dist/src/stackingdao/index.cjs.map +3 -3
- package/dist/src/stackingdao/index.js +16 -16
- package/dist/src/stackingdao/index.js.map +3 -3
- package/dist/src/subscriptions/index.js +1 -1
- package/dist/src/tools/btc/index.cjs.map +2 -2
- package/dist/src/tools/btc/index.js.map +2 -2
- package/dist/src/tools/index.cjs +42 -43
- package/dist/src/tools/index.cjs.map +23 -23
- package/dist/src/tools/index.js +42 -43
- package/dist/src/tools/index.js.map +23 -23
- package/dist/src/transactions/index.js +6 -6
- package/dist/src/utils/index.js +3 -3
- package/package.json +6 -1
- package/dist/shared/stacks-09wa7ewe.js.map +0 -15
- package/dist/shared/stacks-17sdtaxg.cjs.map +0 -15
- package/dist/shared/stacks-70p84bgg.js.map +0 -10
- package/dist/shared/stacks-ra02bpny.cjs.map +0 -11
- package/dist/shared/stacks-s7z5q8be.js.map +0 -11
- /package/dist/shared/{stacks-s10yb9gz.js.map → stacks-6xmk24yw.js.map} +0 -0
- /package/dist/shared/{stacks-je937aas.js.map → stacks-kmshch4q.js.map} +0 -0
- /package/dist/shared/{stacks-rwfgts3s.js.map → stacks-xxn5ma6g.js.map} +0 -0
- /package/dist/shared/{stacks-s30kkvm8.js.map → stacks-y2p4h5ks.js.map} +0 -0
|
@@ -4,20 +4,20 @@
|
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import type { Client } from \"../../clients/types.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(`/v2/accounts/${params.address}?proof=1`, {\n\t\tmethod: \"GET\",\n\t});\n\treturn {\n\t\tbalance: BigInt(data.balance),\n\t\tnonce: BigInt(data.nonce),\n\t\tbalanceProof: data.balance_proof ?? \"\",\n\t\tnonceProof: data.nonce_proof ?? \"\",\n\t};\n}\n",
|
|
6
6
|
"import type { Client } from \"../../clients/types.ts\";\n\nexport type GetBalanceParams = {\n\taddress: string;\n};\n\nexport async function getBalance(\n\tclient: Client,\n\tparams: GetBalanceParams,\n): Promise<bigint> {\n\tconst data = await client.request(`/v2/accounts/${params.address}`, {\n\t\tmethod: \"GET\",\n\t});\n\treturn BigInt(data.balance);\n}\n",
|
|
7
|
-
"import type { Client } from \"../../clients/types.ts\";\n\nexport type GetBlockParams = {\n\theight?: number;\n\thash?: string;\n};\n\nexport async function getBlock(\n\tclient: Client,\n\tparams?: GetBlockParams,\n): Promise<any> {\n\tif (params?.hash) {\n\t\treturn client.request(`/extended/v2/blocks/${params.hash}`, {\n\t\t\tmethod: \"GET\",\n\t\t});\n\t}\n\tif (params?.height !== undefined) {\n\t\treturn client.request(`/extended/v2/blocks/${params.height}`, {\n\t\t\tmethod: \"GET\",\n\t\t});\n\t}\n\t// Latest block\n\treturn client.request(\"/extended/v2/blocks?limit=1\", { method: \"GET\" });\n}\n",
|
|
7
|
+
"import type { Client } from \"../../clients/types.ts\";\n\nexport type GetBlockParams = {\n\theight?: number;\n\thash?: string;\n};\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(`/extended/v2/blocks/${params.hash}`, {\n\t\t\tmethod: \"GET\",\n\t\t});\n\t}\n\tif (params?.height !== undefined) {\n\t\treturn client.request(`/extended/v2/blocks/${params.height}`, {\n\t\t\tmethod: \"GET\",\n\t\t});\n\t}\n\t// Latest block\n\treturn client.request(\"/extended/v2/blocks?limit=1\", { method: \"GET\" });\n}\n",
|
|
8
8
|
"import type { Client } from \"../../clients/types.ts\";\n\nexport async function getBlockHeight(client: Client): Promise<number> {\n\tconst data = await client.request(\"/v2/info\", { method: \"GET\" });\n\treturn data.stacks_tip_height;\n}\n",
|
|
9
|
-
"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): 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 { 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",
|
|
10
10
|
"import type { ClarityValue } from \"../../clarity/types.ts\";\nimport type { Client } from \"../../clients/types.ts\";\nimport { readContract } from \"./readContract.ts\";\n\nexport type MulticallCall = {\n\tcontract: string;\n\tfunctionName: string;\n\targs?: ClarityValue[];\n\tsender?: string;\n};\n\nexport type MulticallParams<TAllowFailure extends boolean = true> = {\n\tcalls: readonly MulticallCall[];\n\tallowFailure?: TAllowFailure;\n};\n\nexport type MulticallSuccessResult = {\n\tstatus: \"success\";\n\tresult: ClarityValue;\n};\nexport type MulticallFailureResult = { status: \"failure\"; error: Error };\n\nexport type MulticallResult<T extends boolean> = T extends true\n\t? (MulticallSuccessResult | MulticallFailureResult)[]\n\t: ClarityValue[];\n\nexport async function multicall<TAllowFailure extends boolean = true>(\n\tclient: Client,\n\tparams: MulticallParams<TAllowFailure>,\n): Promise<MulticallResult<TAllowFailure>> {\n\tconst { calls, allowFailure = true } = params;\n\n\tif (allowFailure) {\n\t\tconst settled = await Promise.allSettled(\n\t\t\tcalls.map((call) => readContract(client, call)),\n\t\t);\n\t\treturn settled.map((r) =>\n\t\t\tr.status === \"fulfilled\"\n\t\t\t\t? { status: \"success\" as const, result: r.value }\n\t\t\t\t: {\n\t\t\t\t\t\tstatus: \"failure\" as const,\n\t\t\t\t\t\terror:\n\t\t\t\t\t\t\tr.reason instanceof Error\n\t\t\t\t\t\t\t\t? r.reason\n\t\t\t\t\t\t\t\t: new Error(String(r.reason)),\n\t\t\t\t\t},\n\t\t) as MulticallResult<TAllowFailure>;\n\t}\n\n\tconst results = await Promise.all(\n\t\tcalls.map((call) => readContract(client, call)),\n\t);\n\treturn results as MulticallResult<TAllowFailure>;\n}\n",
|
|
11
11
|
"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",
|
|
12
12
|
"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",
|
|
13
13
|
"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",
|
|
14
|
-
"import type { Client } from \"../../clients/types.ts\";\nimport type { PostCondition } from \"../../postconditions/types.ts\";\nimport { buildContractDeploy } from \"../../transactions/build.ts\";\nimport { signTransactionWithAccount } from \"../../transactions/signer.ts\";\nimport type { ClarityVersion } from \"../../transactions/types.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport { estimateFee } from \"../public/estimateFee.ts\";\nimport { getNonce } from \"../public/getNonce.ts\";\nimport { sendTransaction } from \"./sendTransaction.ts\";\nimport { isProviderAccount } from \"./utils.ts\";\n\nexport type DeployContractParams = {\n\tcontractName: string;\n\tcodeBody: string;\n\tclarityVersion?: ClarityVersion;\n\tfee?: IntegerType;\n\tnonce?: IntegerType;\n\tpostConditionMode?: \"allow\" | \"deny\";\n\tpostConditions?: PostCondition[];\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\t// Provider: delegate to wallet\n\tif (isProviderAccount(account)) {\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 nonce =\n\t\tparams.nonce ?? (await getNonce(client, { address: account.address }));\n\n\tconst unsigned = buildContractDeploy({\n\t\tcontractName: params.contractName,\n\t\tcodeBody: params.codeBody,\n\t\tclarityVersion: params.clarityVersion,\n\t\tfee: params.fee ?? 0n,\n\t\tnonce,\n\t\tpublicKey: account.publicKey,\n\t\tchain: client.chain,\n\t\tpostConditionMode: params.postConditionMode,\n\t\tpostConditions: params.postConditions,\n\t});\n\n\tif (params.fee === undefined) {\n\t\tconst estimates = await estimateFee(client, { transaction: unsigned });\n\t\tconst mid = estimates[1] ?? estimates[0];\n\t\tif (mid) {\n\t\t\t(unsigned.auth.spendingCondition as any).fee = BigInt(mid.fee);\n\t\t}\n\t}\n\n\tconst signed = await signTransactionWithAccount(unsigned, account);\n\tconst result = await sendTransaction(client, { transaction: signed });\n\treturn result.txid;\n}\n",
|
|
14
|
+
"import type { Client } from \"../../clients/types.ts\";\nimport type { PostCondition } from \"../../postconditions/types.ts\";\nimport { buildContractDeploy } from \"../../transactions/build.ts\";\nimport { signTransactionWithAccount } from \"../../transactions/signer.ts\";\nimport type { ClarityVersion } from \"../../transactions/types.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport { estimateFee } from \"../public/estimateFee.ts\";\nimport { getNonce } from \"../public/getNonce.ts\";\nimport { sendTransaction } from \"./sendTransaction.ts\";\nimport { isProviderAccount } from \"./utils.ts\";\n\nexport type DeployContractParams = {\n\tcontractName: string;\n\tcodeBody: string;\n\tclarityVersion?: ClarityVersion;\n\tfee?: IntegerType;\n\tnonce?: IntegerType;\n\tpostConditionMode?: \"allow\" | \"deny\";\n\tpostConditions?: PostCondition[];\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\t// Provider: delegate to wallet\n\tif (isProviderAccount(account)) {\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 nonce =\n\t\tparams.nonce ?? (await getNonce(client, { address: account.address }));\n\n\tconst unsigned = buildContractDeploy({\n\t\tcontractName: params.contractName,\n\t\tcodeBody: params.codeBody,\n\t\tclarityVersion: params.clarityVersion,\n\t\tfee: params.fee ?? 0n,\n\t\tnonce,\n\t\tpublicKey: account.publicKey,\n\t\tchain: client.chain,\n\t\tpostConditionMode: params.postConditionMode,\n\t\tpostConditions: params.postConditions,\n\t});\n\n\tif (params.fee === undefined) {\n\t\tconst estimates = await estimateFee(client, { transaction: unsigned });\n\t\tconst mid = estimates[1] ?? estimates[0];\n\t\tif (mid) {\n\t\t\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t\t\t(unsigned.auth.spendingCondition as any).fee = BigInt(mid.fee);\n\t\t}\n\t}\n\n\tconst signed = await signTransactionWithAccount(unsigned, account);\n\tconst result = await sendTransaction(client, { transaction: signed });\n\treturn result.txid;\n}\n",
|
|
15
15
|
"import { sha256 } from \"@noble/hashes/sha2.js\";\nimport { serializeCVBytes } from \"../../clarity/serialize.ts\";\nimport type { ClarityValue } from \"../../clarity/types.ts\";\nimport { Cl } from \"../../clarity/values.ts\";\nimport type { Client } from \"../../clients/types.ts\";\nimport { bytesToHex, concatBytes } 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\nconst SIP018_PREFIX = new Uint8Array([0x53, 0x49, 0x50, 0x30, 0x31, 0x38]); // \"SIP018\"\n\n/** Sign a structured message per SIP-018 */\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\t// Local/Custom: sign locally\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 serializedMsg = serializeCVBytes(cv);\n\n\tlet hash: Uint8Array;\n\n\tif (params.domain) {\n\t\tconst domainCV = Cl.tuple({\n\t\t\tname: Cl.stringAscii(params.domain.name),\n\t\t\tversion: Cl.stringAscii(params.domain.version),\n\t\t\t\"chain-id\": Cl.uint(params.domain.chainId),\n\t\t});\n\t\tconst serializedDomain = serializeCVBytes(domainCV);\n\t\thash = sha256(concatBytes(SIP018_PREFIX, serializedDomain, serializedMsg));\n\t} else {\n\t\thash = sha256(serializedMsg);\n\t}\n\n\tconst sigBytes = await account.sign(hash);\n\treturn bytesToHex(sigBytes);\n}\n",
|
|
16
|
-
"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}\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 as any)._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",
|
|
16
|
+
"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}\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\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t\t\tparams.signers ?? (params.transaction as any)._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",
|
|
17
17
|
"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 { estimateFee } from \"../public/estimateFee.ts\";\nimport { getNonce } from \"../public/getNonce.ts\";\nimport { isProviderAccount } from \"./utils.ts\";\n\nexport type SponsorTransactionParams = {\n\ttransaction: StacksTransaction;\n\tfee?: IntegerType;\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 nonce =\n\t\tparams.nonce != null\n\t\t\t? intToBigInt(params.nonce)\n\t\t\t: await getNonce(client, { address: account.address });\n\n\t// Resolve sponsor fee\n\tlet fee: bigint;\n\tif (params.fee != null) {\n\t\tfee = intToBigInt(params.fee);\n\t} else {\n\t\tconst estimates = await estimateFee(client, { transaction });\n\t\tconst mid = estimates[1] ?? estimates[0];\n\t\tfee = mid ? BigInt(mid.fee) : 0n;\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",
|
|
18
|
-
"import type { Client } from \"../../clients/types.ts\";\nimport type { PostCondition } from \"../../postconditions/types.ts\";\nimport { buildTokenTransfer } from \"../../transactions/build.ts\";\nimport { signTransactionWithAccount } from \"../../transactions/signer.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport { estimateFee } from \"../public/estimateFee.ts\";\nimport { getNonce } from \"../public/getNonce.ts\";\nimport { sendTransaction } from \"./sendTransaction.ts\";\nimport { isProviderAccount } from \"./utils.ts\";\n\nexport type TransferStxParams = {\n\tto: string;\n\tamount: IntegerType;\n\tmemo?: string;\n\tfee?: IntegerType;\n\tnonce?: IntegerType;\n\tpostConditionMode?: \"allow\" | \"deny\";\n\tpostConditions?: PostCondition[];\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\t// Provider: delegate to wallet\n\tif (isProviderAccount(account)) {\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 nonce =\n\t\tparams.nonce ?? (await getNonce(client, { address: account.address }));\n\n\tconst unsigned = buildTokenTransfer({\n\t\trecipient: params.to,\n\t\tamount: params.amount,\n\t\tmemo: params.memo,\n\t\tfee: params.fee ?? 0n,\n\t\tnonce,\n\t\tpublicKey: account.publicKey,\n\t\tchain: client.chain,\n\t\tpostConditionMode: params.postConditionMode,\n\t\tpostConditions: params.postConditions,\n\t});\n\n\tif (params.fee === undefined) {\n\t\tconst estimates = await estimateFee(client, { transaction: unsigned });\n\t\tconst mid = estimates[1] ?? estimates[0];\n\t\tif (mid) {\n\t\t\t(unsigned.auth.spendingCondition as any).fee = BigInt(mid.fee);\n\t\t}\n\t}\n\n\tconst signed = await signTransactionWithAccount(unsigned, account);\n\tconst result = await sendTransaction(client, { transaction: signed });\n\treturn result.txid;\n}\n"
|
|
18
|
+
"import type { Client } from \"../../clients/types.ts\";\nimport type { PostCondition } from \"../../postconditions/types.ts\";\nimport { buildTokenTransfer } from \"../../transactions/build.ts\";\nimport { signTransactionWithAccount } from \"../../transactions/signer.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport { estimateFee } from \"../public/estimateFee.ts\";\nimport { getNonce } from \"../public/getNonce.ts\";\nimport { sendTransaction } from \"./sendTransaction.ts\";\nimport { isProviderAccount } from \"./utils.ts\";\n\nexport type TransferStxParams = {\n\tto: string;\n\tamount: IntegerType;\n\tmemo?: string;\n\tfee?: IntegerType;\n\tnonce?: IntegerType;\n\tpostConditionMode?: \"allow\" | \"deny\";\n\tpostConditions?: PostCondition[];\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\t// Provider: delegate to wallet\n\tif (isProviderAccount(account)) {\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 nonce =\n\t\tparams.nonce ?? (await getNonce(client, { address: account.address }));\n\n\tconst unsigned = buildTokenTransfer({\n\t\trecipient: params.to,\n\t\tamount: params.amount,\n\t\tmemo: params.memo,\n\t\tfee: params.fee ?? 0n,\n\t\tnonce,\n\t\tpublicKey: account.publicKey,\n\t\tchain: client.chain,\n\t\tpostConditionMode: params.postConditionMode,\n\t\tpostConditions: params.postConditions,\n\t});\n\n\tif (params.fee === undefined) {\n\t\tconst estimates = await estimateFee(client, { transaction: unsigned });\n\t\tconst mid = estimates[1] ?? estimates[0];\n\t\tif (mid) {\n\t\t\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t\t\t(unsigned.auth.spendingCondition as any).fee = BigInt(mid.fee);\n\t\t}\n\t}\n\n\tconst signed = await signTransactionWithAccount(unsigned, account);\n\tconst result = await sendTransaction(client, { transaction: signed });\n\treturn result.txid;\n}\n"
|
|
19
19
|
],
|
|
20
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,eAAsB,cAAc,CACnC,QACA,QACuB;AAAA,EACvB,MAAM,OAAO,MAAM,OAAO,QAAQ,gBAAgB,OAAO,mBAAmB;AAAA,IAC3E,QAAQ;AAAA,EACT,CAAC;AAAA,EACD,OAAO;AAAA,IACN,SAAS,OAAO,KAAK,OAAO;AAAA,IAC5B,OAAO,OAAO,KAAK,KAAK;AAAA,IACxB,cAAc,KAAK,iBAAiB;AAAA,IACpC,YAAY,KAAK,eAAe;AAAA,EACjC;AAAA;;;ACnBD,eAAsB,UAAU,CAC/B,QACA,QACkB;AAAA,EAClB,MAAM,OAAO,MAAM,OAAO,QAAQ,gBAAgB,OAAO,WAAW;AAAA,IACnE,QAAQ;AAAA,EACT,CAAC;AAAA,EACD,OAAO,OAAO,KAAK,OAAO;AAAA;;;ACN3B,eAAsB,QAAQ,CAC7B,QACA,
|
|
20
|
+
"mappings": "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",
|
|
21
21
|
"debugId": "2EBBCEC91C51892B64756E2164756E21",
|
|
22
22
|
"names": []
|
|
23
23
|
}
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
stringUtf8CV,
|
|
13
13
|
tupleCV,
|
|
14
14
|
uintCV
|
|
15
|
-
} from "./stacks-
|
|
15
|
+
} from "./stacks-0zysn74p.js";
|
|
16
16
|
import {
|
|
17
17
|
MAX_I128,
|
|
18
18
|
MAX_U128,
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
} from "./stacks-v9jqcpd4.js";
|
|
21
21
|
import {
|
|
22
22
|
validateStacksAddress
|
|
23
|
-
} from "./stacks-
|
|
23
|
+
} from "./stacks-6xmk24yw.js";
|
|
24
24
|
|
|
25
25
|
// src/clarity/abi/types.ts
|
|
26
26
|
var CONTRACT_NAME_REGEX = /^[a-zA-Z][a-zA-Z0-9\-]{0,127}$/;
|
|
@@ -255,4 +255,4 @@ function clarityValueToJSInner(abiType, cv) {
|
|
|
255
255
|
export { CONTRACT_NAME_REGEX, isUint128, isInt128, isBool, isPrincipal, isStandardPrincipal, isContractPrincipal, isTraitReference, isString, isUint8Array, isArray, isOptional, isOkResponse, isErrResponse, isResponse, isAbiList, isAbiTuple, isAbiOptional, isAbiResponse, isAbiBuffer, isAbiStringAscii, isAbiStringUtf8, isAbiTraitReference, toCamelCase, jsToClarityValue, clarityValueToJS, clarityValueToJSUntyped };
|
|
256
256
|
|
|
257
257
|
//# debugId=295B2BA1DC85445964756E2164756E21
|
|
258
|
-
//# sourceMappingURL=stacks-
|
|
258
|
+
//# sourceMappingURL=stacks-g7ffp8aj.js.map
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
"sources": ["../src/clarity/abi/types.ts", "../src/clarity/abi/guards.ts", "../src/clarity/abi/utils.ts", "../src/clarity/bridge.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import { MAX_I128, MAX_U128, MIN_I128 } from \"../../utils/constants.ts\";\n\nexport { MAX_U128, MAX_I128, MIN_I128 };\n\nexport const CONTRACT_NAME_REGEX: RegExp = /^[a-zA-Z][a-zA-Z0-9\\-]{0,127}$/;\n\n// Primitive types\n\nexport type AbiUInt128 = \"uint128\";\nexport type AbiInt128 = \"int128\";\nexport type AbiBool = \"bool\";\nexport type AbiPrincipal = \"principal\";\nexport type AbiTraitReference = \"trait_reference\";\nexport type AbiNone = \"none\";\n\nexport type AbiStringAscii<L extends number = number> = {\n\t\"string-ascii\": { length: L };\n};\n\nexport type AbiStringUtf8<L extends number = number> = {\n\t\"string-utf8\": { length: L };\n};\n\nexport type AbiBuffer<L extends number = number> = {\n\tbuff: { length: L };\n};\n\nexport type AbiPrimitiveType =\n\t| AbiUInt128\n\t| AbiInt128\n\t| AbiBool\n\t| AbiPrincipal\n\t| AbiTraitReference\n\t| AbiNone\n\t| AbiStringAscii\n\t| AbiStringUtf8\n\t| AbiBuffer;\n\n// Composite types (interfaces for recursion)\n\nexport interface AbiListType {\n\tlist: { type: AbiType; length: number };\n}\n\nexport interface AbiTupleType {\n\ttuple: ReadonlyArray<{ name: string; type: AbiType }>;\n}\n\nexport interface AbiOptionalType {\n\toptional: AbiType;\n}\n\nexport interface AbiResponseType {\n\tresponse: { ok: AbiType; error: AbiType };\n}\n\n/** Discriminated union of all Clarity value types (primitives, buffers, lists, tuples, optionals, responses). */\nexport type AbiType =\n\t| AbiPrimitiveType\n\t| AbiListType\n\t| AbiTupleType\n\t| AbiOptionalType\n\t| AbiResponseType;\n\n// Generic versions for better type inference\n\nexport type AbiList<T extends AbiType = AbiType, L extends number = number> = {\n\tlist: { type: T; length: L };\n};\n\nexport type AbiTuple<T extends ReadonlyArray<{ name: string; type: AbiType }>> =\n\t{\n\t\ttuple: T;\n\t};\n\nexport type AbiOptional<T extends AbiType = AbiType> = {\n\toptional: T;\n};\n\nexport type AbiResponse<\n\tO extends AbiType = AbiType,\n\tE extends AbiType = AbiType,\n> = {\n\tresponse: { ok: O; error: E };\n};\n",
|
|
6
|
-
"import { validateStacksAddress } from \"../../utils/address.ts\";\nimport type { ResponseErr, ResponseOk } from \"./mappings.ts\";\nimport { CONTRACT_NAME_REGEX, MAX_I128, MAX_U128, MIN_I128 } from \"./types.ts\";\nimport type {\n\tAbiBuffer,\n\tAbiListType,\n\tAbiOptionalType,\n\tAbiResponseType,\n\tAbiStringAscii,\n\tAbiStringUtf8,\n\tAbiTraitReference,\n\tAbiTupleType,\n\tAbiType,\n} from \"./types.ts\";\n\n// Value guards\n\nexport function isUint128(value: unknown): value is bigint {\n\treturn typeof value === \"bigint\" && value >= 0n && value <= MAX_U128;\n}\n\nexport function isInt128(value: unknown): value is bigint {\n\treturn typeof value === \"bigint\" && value >= MIN_I128 && value <= MAX_I128;\n}\n\nexport function isBool(value: unknown): value is boolean {\n\treturn typeof value === \"boolean\";\n}\n\nexport function isPrincipal(value: unknown): value is string {\n\tif (typeof value !== \"string\") return false;\n\tconst parts = value.split(\".\");\n\tconst address = parts[0]!;\n\tconst contractName = parts[1];\n\tif (!validateStacksAddress(address)) return false;\n\tif (contractName !== undefined) {\n\t\treturn CONTRACT_NAME_REGEX.test(contractName);\n\t}\n\treturn true;\n}\n\nexport function isStandardPrincipal(value: unknown): value is string {\n\tif (typeof value !== \"string\") return false;\n\tif (value.includes(\".\")) return false;\n\treturn validateStacksAddress(value);\n}\n\nexport function isContractPrincipal(value: unknown): value is string {\n\tif (typeof value !== \"string\") return false;\n\tif (!value.includes(\".\")) return false;\n\tconst parts = value.split(\".\");\n\tconst address = parts[0]!;\n\tconst contractName = parts[1]!;\n\tif (!validateStacksAddress(address)) return false;\n\treturn CONTRACT_NAME_REGEX.test(contractName);\n}\n\nexport function isTraitReference(value: unknown): value is string {\n\treturn isContractPrincipal(value);\n}\n\nexport function isString(value: unknown): value is string {\n\treturn typeof value === \"string\";\n}\n\nexport function isUint8Array(value: unknown): value is Uint8Array {\n\treturn value instanceof Uint8Array;\n}\n\nexport function isArray<T>(\n\tvalue: unknown,\n\titemGuard: (item: unknown) => item is T,\n): value is T[] {\n\treturn Array.isArray(value) && value.every(itemGuard);\n}\n\nexport function isOptional<T>(\n\tvalue: unknown,\n\tguard: (val: unknown) => val is T,\n): value is T | null {\n\treturn value === null || guard(value);\n}\n\nexport function isOkResponse<T>(\n\tresponse: { ok: T } | { err: any },\n): response is ResponseOk<T> {\n\treturn \"ok\" in response && !(\"err\" in response);\n}\n\nexport function isErrResponse<E>(\n\tresponse: { ok: any } | { err: E },\n): response is ResponseErr<E> {\n\treturn \"err\" in response && !(\"ok\" in response);\n}\n\nexport function isResponse<T, E>(\n\tvalue: unknown,\n\tokGuard: (val: unknown) => val is T,\n\terrGuard: (val: unknown) => val is E,\n): value is ResponseOk<T> | ResponseErr<E> {\n\tif (typeof value !== \"object\" || value === null) return false;\n\tconst obj = value as Record<string, unknown>;\n\tif (\"ok\" in value && !(\"err\" in value)) return okGuard(obj.ok);\n\tif (\"err\" in value && !(\"ok\" in value)) return errGuard(obj.err);\n\treturn false;\n}\n\n// ABI type definition guards\n\nexport function isAbiList(type: AbiType): type is AbiListType {\n\treturn typeof type === \"object\" && type !== null && \"list\" in type;\n}\n\nexport function isAbiTuple(type: AbiType): type is AbiTupleType {\n\treturn typeof type === \"object\" && type !== null && \"tuple\" in type;\n}\n\nexport function isAbiOptional(type: AbiType): type is AbiOptionalType {\n\treturn typeof type === \"object\" && type !== null && \"optional\" in type;\n}\n\nexport function isAbiResponse(type: AbiType): type is AbiResponseType {\n\treturn typeof type === \"object\" && type !== null && \"response\" in type;\n}\n\nexport function isAbiBuffer(type: AbiType): type is AbiBuffer {\n\treturn typeof type === \"object\" && type !== null && \"buff\" in type;\n}\n\nexport function isAbiStringAscii(type: AbiType): type is AbiStringAscii {\n\treturn typeof type === \"object\" && type !== null && \"string-ascii\" in type;\n}\n\nexport function isAbiStringUtf8(type: AbiType): type is AbiStringUtf8 {\n\treturn typeof type === \"object\" && type !== null && \"string-utf8\" in type;\n}\n\nexport function isAbiTraitReference(type: AbiType): type is AbiTraitReference {\n\treturn type === \"trait_reference\";\n}\n",
|
|
6
|
+
"import { validateStacksAddress } from \"../../utils/address.ts\";\nimport type { ResponseErr, ResponseOk } from \"./mappings.ts\";\nimport { CONTRACT_NAME_REGEX, MAX_I128, MAX_U128, MIN_I128 } from \"./types.ts\";\nimport type {\n\tAbiBuffer,\n\tAbiListType,\n\tAbiOptionalType,\n\tAbiResponseType,\n\tAbiStringAscii,\n\tAbiStringUtf8,\n\tAbiTraitReference,\n\tAbiTupleType,\n\tAbiType,\n} from \"./types.ts\";\n\n// Value guards\n\nexport function isUint128(value: unknown): value is bigint {\n\treturn typeof value === \"bigint\" && value >= 0n && value <= MAX_U128;\n}\n\nexport function isInt128(value: unknown): value is bigint {\n\treturn typeof value === \"bigint\" && value >= MIN_I128 && value <= MAX_I128;\n}\n\nexport function isBool(value: unknown): value is boolean {\n\treturn typeof value === \"boolean\";\n}\n\nexport function isPrincipal(value: unknown): value is string {\n\tif (typeof value !== \"string\") return false;\n\tconst parts = value.split(\".\");\n\t// biome-ignore lint/style/noNonNullAssertion: value is non-null after preceding check or by construction; TS narrowing limitation\n\tconst address = parts[0]!;\n\tconst contractName = parts[1];\n\tif (!validateStacksAddress(address)) return false;\n\tif (contractName !== undefined) {\n\t\treturn CONTRACT_NAME_REGEX.test(contractName);\n\t}\n\treturn true;\n}\n\nexport function isStandardPrincipal(value: unknown): value is string {\n\tif (typeof value !== \"string\") return false;\n\tif (value.includes(\".\")) return false;\n\treturn validateStacksAddress(value);\n}\n\nexport function isContractPrincipal(value: unknown): value is string {\n\tif (typeof value !== \"string\") return false;\n\tif (!value.includes(\".\")) return false;\n\tconst parts = value.split(\".\");\n\t// biome-ignore lint/style/noNonNullAssertion: value is non-null after preceding check or by construction; TS narrowing limitation\n\tconst address = parts[0]!;\n\t// biome-ignore lint/style/noNonNullAssertion: value is non-null after preceding check or by construction; TS narrowing limitation\n\tconst contractName = parts[1]!;\n\tif (!validateStacksAddress(address)) return false;\n\treturn CONTRACT_NAME_REGEX.test(contractName);\n}\n\nexport function isTraitReference(value: unknown): value is string {\n\treturn isContractPrincipal(value);\n}\n\nexport function isString(value: unknown): value is string {\n\treturn typeof value === \"string\";\n}\n\nexport function isUint8Array(value: unknown): value is Uint8Array {\n\treturn value instanceof Uint8Array;\n}\n\nexport function isArray<T>(\n\tvalue: unknown,\n\titemGuard: (item: unknown) => item is T,\n): value is T[] {\n\treturn Array.isArray(value) && value.every(itemGuard);\n}\n\nexport function isOptional<T>(\n\tvalue: unknown,\n\tguard: (val: unknown) => val is T,\n): value is T | null {\n\treturn value === null || guard(value);\n}\n\nexport function isOkResponse<T>(\n\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\tresponse: { ok: T } | { err: any },\n): response is ResponseOk<T> {\n\treturn \"ok\" in response && !(\"err\" in response);\n}\n\nexport function isErrResponse<E>(\n\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\tresponse: { ok: any } | { err: E },\n): response is ResponseErr<E> {\n\treturn \"err\" in response && !(\"ok\" in response);\n}\n\nexport function isResponse<T, E>(\n\tvalue: unknown,\n\tokGuard: (val: unknown) => val is T,\n\terrGuard: (val: unknown) => val is E,\n): value is ResponseOk<T> | ResponseErr<E> {\n\tif (typeof value !== \"object\" || value === null) return false;\n\tconst obj = value as Record<string, unknown>;\n\tif (\"ok\" in value && !(\"err\" in value)) return okGuard(obj.ok);\n\tif (\"err\" in value && !(\"ok\" in value)) return errGuard(obj.err);\n\treturn false;\n}\n\n// ABI type definition guards\n\nexport function isAbiList(type: AbiType): type is AbiListType {\n\treturn typeof type === \"object\" && type !== null && \"list\" in type;\n}\n\nexport function isAbiTuple(type: AbiType): type is AbiTupleType {\n\treturn typeof type === \"object\" && type !== null && \"tuple\" in type;\n}\n\nexport function isAbiOptional(type: AbiType): type is AbiOptionalType {\n\treturn typeof type === \"object\" && type !== null && \"optional\" in type;\n}\n\nexport function isAbiResponse(type: AbiType): type is AbiResponseType {\n\treturn typeof type === \"object\" && type !== null && \"response\" in type;\n}\n\nexport function isAbiBuffer(type: AbiType): type is AbiBuffer {\n\treturn typeof type === \"object\" && type !== null && \"buff\" in type;\n}\n\nexport function isAbiStringAscii(type: AbiType): type is AbiStringAscii {\n\treturn typeof type === \"object\" && type !== null && \"string-ascii\" in type;\n}\n\nexport function isAbiStringUtf8(type: AbiType): type is AbiStringUtf8 {\n\treturn typeof type === \"object\" && type !== null && \"string-utf8\" in type;\n}\n\nexport function isAbiTraitReference(type: AbiType): type is AbiTraitReference {\n\treturn type === \"trait_reference\";\n}\n",
|
|
7
7
|
"type CamelCaseInner<S extends string> =\n\tS extends `${infer P1}-${infer P2}${infer P3}`\n\t\t? `${P1}${Capitalize<CamelCaseInner<`${P2}${P3}`>>}`\n\t\t: S;\n\nexport type ToCamelCase<S extends string> =\n\tCamelCaseInner<S> extends `${number}${string}`\n\t\t? `_${CamelCaseInner<S>}`\n\t\t: CamelCaseInner<S>;\n\nexport function toCamelCase(str: string): string {\n\treturn str\n\t\t.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase())\n\t\t.replace(/-([A-Z])/g, (_, letter) => letter)\n\t\t.replace(/-(\\d)/g, (_, digit) => digit)\n\t\t.replace(/-/g, \"\")\n\t\t.replace(/^\\d/, \"_$&\");\n}\n",
|
|
8
8
|
"import {\n\tisAbiBuffer,\n\tisAbiList,\n\tisAbiOptional,\n\tisAbiResponse,\n\tisAbiStringAscii,\n\tisAbiStringUtf8,\n\tisAbiTuple,\n} from \"./abi/guards.ts\";\nimport type { AbiToTS } from \"./abi/mappings.ts\";\nimport type { AbiType } from \"./abi/types.ts\";\nimport { toCamelCase } from \"./abi/utils.ts\";\nimport type { ClarityValue } from \"./types.ts\";\nimport {\n\tboolCV,\n\tbufferCV,\n\tintCV,\n\tlistCV,\n\tnoneCV,\n\tresponseErrorCV,\n\tresponseOkCV,\n\tsomeCV,\n\tstringAsciiCV,\n\tstringUtf8CV,\n\ttupleCV,\n\tuintCV,\n} from \"./values.ts\";\nimport { Cl } from \"./values.ts\";\n\n/**\n * Convert a JS value to a ClarityValue using ABI type information.\n */\nexport function jsToClarityValue(\n\tabiType: AbiType,\n\tvalue: unknown,\n): ClarityValue {\n\tif (abiType === \"uint128\") return uintCV(value as bigint | number);\n\tif (abiType === \"int128\") return intCV(value as bigint | number);\n\tif (abiType === \"bool\") return boolCV(value as boolean);\n\tif (abiType === \"principal\" || abiType === \"trait_reference\")\n\t\treturn Cl.principal(value as string);\n\n\tif (isAbiStringAscii(abiType)) return stringAsciiCV(value as string);\n\tif (isAbiStringUtf8(abiType)) return stringUtf8CV(value as string);\n\tif (isAbiBuffer(abiType)) return bufferCV(value as Uint8Array);\n\n\tif (isAbiList(abiType)) {\n\t\tconst arr = value as unknown[];\n\t\treturn listCV(arr.map((item) => jsToClarityValue(abiType.list.type, item)));\n\t}\n\n\tif (isAbiTuple(abiType)) {\n\t\tconst obj = value as Record<string, unknown>;\n\t\tconst data: Record<string, ClarityValue> = {};\n\t\tfor (const field of abiType.tuple) {\n\t\t\tconst camelKey = toCamelCase(field.name);\n\t\t\tconst hasOriginal = field.name in obj;\n\t\t\tconst hasCamel = camelKey in obj;\n\t\t\tconst fieldValue = hasOriginal\n\t\t\t\t? obj[field.name]\n\t\t\t\t: hasCamel\n\t\t\t\t\t? obj[camelKey]\n\t\t\t\t\t: undefined;\n\t\t\tif (fieldValue === undefined && !isAbiOptional(field.type)) {\n\t\t\t\tthrow new Error(`Missing tuple field: ${field.name}`);\n\t\t\t}\n\t\t\tdata[field.name] = jsToClarityValue(field.type, fieldValue);\n\t\t}\n\t\treturn tupleCV(data);\n\t}\n\n\tif (isAbiOptional(abiType)) {\n\t\tif (value === null || value === undefined) return noneCV();\n\t\treturn someCV(jsToClarityValue(abiType.optional, value));\n\t}\n\n\tif (isAbiResponse(abiType)) {\n\t\tconst obj = value as Record<string, unknown>;\n\t\tif (\"ok\" in obj && !(\"err\" in obj))\n\t\t\treturn responseOkCV(jsToClarityValue(abiType.response.ok, obj.ok));\n\t\tif (\"err\" in obj && !(\"ok\" in obj))\n\t\t\treturn responseErrorCV(jsToClarityValue(abiType.response.error, obj.err));\n\t\tthrow new Error(\"Response must have exactly 'ok' or 'err' property\");\n\t}\n\n\tthrow new Error(`Unknown ABI type: ${JSON.stringify(abiType)}`);\n}\n\n/**\n * Convert a ClarityValue back to a typed JS value using ABI type information.\n */\nexport function clarityValueToJS<T extends AbiType>(\n\tabiType: T,\n\tcv: ClarityValue,\n): AbiToTS<T> {\n\treturn clarityValueToJSInner(abiType, cv) as AbiToTS<T>;\n}\n\n/** Non-generic version for internal use — avoids deep type instantiation. */\nexport function clarityValueToJSUntyped(\n\tabiType: AbiType,\n\tcv: ClarityValue,\n): unknown {\n\treturn clarityValueToJSInner(abiType, cv);\n}\n\nfunction clarityValueToJSInner(abiType: AbiType, cv: ClarityValue): unknown {\n\tif (abiType === \"uint128\" || abiType === \"int128\") {\n\t\tif (cv.type !== \"int\" && cv.type !== \"uint\")\n\t\t\tthrow new Error(`Expected int/uint CV, got ${cv.type}`);\n\t\treturn cv.value;\n\t}\n\n\tif (abiType === \"bool\") {\n\t\tif (cv.type === \"true\") return true;\n\t\tif (cv.type === \"false\") return false;\n\t\tthrow new Error(`Expected bool CV, got ${cv.type}`);\n\t}\n\n\tif (abiType === \"principal\" || abiType === \"trait_reference\") {\n\t\tif (cv.type !== \"address\" && cv.type !== \"contract\")\n\t\t\tthrow new Error(`Expected principal CV, got ${cv.type}`);\n\t\treturn cv.value;\n\t}\n\n\tif (isAbiStringAscii(abiType) || isAbiStringUtf8(abiType)) {\n\t\tif (cv.type !== \"ascii\" && cv.type !== \"utf8\")\n\t\t\tthrow new Error(`Expected string CV, got ${cv.type}`);\n\t\treturn cv.value;\n\t}\n\n\tif (isAbiBuffer(abiType)) {\n\t\tif (cv.type !== \"buffer\")\n\t\t\tthrow new Error(`Expected buffer CV, got ${cv.type}`);\n\t\t// BufferCV stores hex string; convert back to Uint8Array\n\t\tconst hex = cv.value;\n\t\tconst bytes = new Uint8Array(hex.length / 2);\n\t\tfor (let i = 0; i < bytes.length; i++) {\n\t\t\tbytes[i] = Number.parseInt(hex.substring(i * 2, i * 2 + 2), 16);\n\t\t}\n\t\treturn bytes;\n\t}\n\n\tif (isAbiList(abiType)) {\n\t\tif (cv.type !== \"list\") throw new Error(`Expected list CV, got ${cv.type}`);\n\t\treturn cv.value.map((item) =>\n\t\t\tclarityValueToJSInner(abiType.list.type, item),\n\t\t);\n\t}\n\n\tif (isAbiTuple(abiType)) {\n\t\tif (cv.type !== \"tuple\")\n\t\t\tthrow new Error(`Expected tuple CV, got ${cv.type}`);\n\t\tconst result: Record<string, unknown> = {};\n\t\tfor (const field of abiType.tuple) {\n\t\t\tconst fieldCV = cv.value[field.name];\n\t\t\tif (!fieldCV) throw new Error(`Missing tuple field in CV: ${field.name}`);\n\t\t\tconst camelKey = toCamelCase(field.name);\n\t\t\tresult[camelKey] = clarityValueToJSInner(field.type, fieldCV);\n\t\t}\n\t\treturn result;\n\t}\n\n\tif (isAbiOptional(abiType)) {\n\t\tif (cv.type === \"none\") return null;\n\t\tif (cv.type === \"some\")\n\t\t\treturn clarityValueToJSInner(abiType.optional, cv.value);\n\t\tthrow new Error(`Expected optional CV, got ${cv.type}`);\n\t}\n\n\tif (isAbiResponse(abiType)) {\n\t\tif (cv.type === \"ok\")\n\t\t\treturn { ok: clarityValueToJSInner(abiType.response.ok, cv.value) };\n\t\tif (cv.type === \"err\")\n\t\t\treturn { err: clarityValueToJSInner(abiType.response.error, cv.value) };\n\t\tthrow new Error(`Expected response CV, got ${cv.type}`);\n\t}\n\n\tthrow new Error(`Unknown ABI type: ${JSON.stringify(abiType)}`);\n}\n"
|
|
9
9
|
],
|
|
10
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAIO,IAAM,sBAA8B;;;ACapC,SAAS,SAAS,CAAC,OAAiC;AAAA,EAC1D,OAAO,OAAO,UAAU,YAAY,SAAS,MAAM,SAAS;AAAA;AAGtD,SAAS,QAAQ,CAAC,OAAiC;AAAA,EACzD,OAAO,OAAO,UAAU,YAAY,SAAS,YAAY,SAAS;AAAA;AAG5D,SAAS,MAAM,CAAC,OAAkC;AAAA,EACxD,OAAO,OAAO,UAAU;AAAA;AAGlB,SAAS,WAAW,CAAC,OAAiC;AAAA,EAC5D,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO;AAAA,EACtC,MAAM,QAAQ,MAAM,MAAM,GAAG;AAAA,
|
|
10
|
+
"mappings": "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",
|
|
11
11
|
"debugId": "295B2BA1DC85445964756E2164756E21",
|
|
12
12
|
"names": []
|
|
13
13
|
}
|
|
@@ -7,18 +7,18 @@ import {
|
|
|
7
7
|
serializePayload,
|
|
8
8
|
serializeTransaction,
|
|
9
9
|
signTransactionWithAccount
|
|
10
|
-
} from "./stacks-
|
|
10
|
+
} from "./stacks-kmnthgj7.js";
|
|
11
11
|
import {
|
|
12
12
|
deserializeCVBytes,
|
|
13
13
|
serializeCVBytes
|
|
14
|
-
} from "./stacks-
|
|
14
|
+
} from "./stacks-0zysn74p.js";
|
|
15
15
|
import {
|
|
16
16
|
parseContractId
|
|
17
|
-
} from "./stacks-
|
|
17
|
+
} from "./stacks-6xmk24yw.js";
|
|
18
18
|
import {
|
|
19
19
|
bytesToHex,
|
|
20
20
|
with0x
|
|
21
|
-
} from "./stacks-
|
|
21
|
+
} from "./stacks-2h8d2y27.js";
|
|
22
22
|
|
|
23
23
|
// src/actions/public/estimateFee.ts
|
|
24
24
|
async function estimateFee(client, params) {
|
|
@@ -28,7 +28,7 @@ async function estimateFee(client, params) {
|
|
|
28
28
|
method: "POST",
|
|
29
29
|
body: {
|
|
30
30
|
estimated_len: Math.ceil(txHex.length / 2),
|
|
31
|
-
transaction_payload:
|
|
31
|
+
transaction_payload: `0x${payloadHex}`
|
|
32
32
|
}
|
|
33
33
|
});
|
|
34
34
|
return (data.estimations ?? []).map((e) => ({
|
|
@@ -164,5 +164,5 @@ async function callContract(client, params) {
|
|
|
164
164
|
|
|
165
165
|
export { estimateFee, getMapEntry, getNonce, readContract, TransactionError, BroadcastError, SerializationError, SigningError, sendTransaction, isProviderAccount, callContract };
|
|
166
166
|
|
|
167
|
-
//# debugId=
|
|
168
|
-
//# sourceMappingURL=stacks-
|
|
167
|
+
//# debugId=6767503BA3369D3064756E2164756E21
|
|
168
|
+
//# sourceMappingURL=stacks-g7ys594x.js.map
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/actions/public/estimateFee.ts", "../src/actions/public/getMapEntry.ts", "../src/actions/public/getNonce.ts", "../src/actions/public/readContract.ts", "../src/errors/transaction.ts", "../src/actions/wallet/sendTransaction.ts", "../src/actions/wallet/utils.ts", "../src/actions/wallet/callContract.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import type { Client } from \"../../clients/types.ts\";\nimport type { StacksTransaction } from \"../../transactions/types.ts\";\nimport {\n\tserializePayload,\n\tserializeTransaction,\n} from \"../../transactions/wire/serialize.ts\";\nimport { bytesToHex } from \"../../utils/encoding.ts\";\n\nexport type EstimateFeeParams = {\n\ttransaction: StacksTransaction;\n};\n\nexport type FeeEstimation = {\n\tfeeRate: number;\n\tfee: number;\n};\n\nexport async function estimateFee(\n\tclient: Client,\n\tparams: EstimateFeeParams,\n): Promise<FeeEstimation[]> {\n\tconst payloadHex = bytesToHex(serializePayload(params.transaction.payload));\n\tconst txHex = bytesToHex(serializeTransaction(params.transaction));\n\n\tconst data = await client.request(\"/v2/fees/transaction\", {\n\t\tmethod: \"POST\",\n\t\tbody: {\n\t\t\testimated_len: Math.ceil(txHex.length / 2),\n\t\t\ttransaction_payload:
|
|
5
|
+
"import type { Client } from \"../../clients/types.ts\";\nimport type { StacksTransaction } from \"../../transactions/types.ts\";\nimport {\n\tserializePayload,\n\tserializeTransaction,\n} from \"../../transactions/wire/serialize.ts\";\nimport { bytesToHex } from \"../../utils/encoding.ts\";\n\nexport type EstimateFeeParams = {\n\ttransaction: StacksTransaction;\n};\n\nexport type FeeEstimation = {\n\tfeeRate: number;\n\tfee: number;\n};\n\nexport async function estimateFee(\n\tclient: Client,\n\tparams: EstimateFeeParams,\n): Promise<FeeEstimation[]> {\n\tconst payloadHex = bytesToHex(serializePayload(params.transaction.payload));\n\tconst txHex = bytesToHex(serializeTransaction(params.transaction));\n\n\tconst data = await client.request(\"/v2/fees/transaction\", {\n\t\tmethod: \"POST\",\n\t\tbody: {\n\t\t\testimated_len: Math.ceil(txHex.length / 2),\n\t\t\ttransaction_payload: `0x${payloadHex}`,\n\t\t},\n\t});\n\n\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\treturn (data.estimations ?? []).map((e: any) => ({\n\t\tfeeRate: e.fee_rate,\n\t\tfee: e.fee,\n\t}));\n}\n",
|
|
6
6
|
"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 { parseContractId } from \"../../utils/address.ts\";\nimport { bytesToHex, with0x } from \"../../utils/encoding.ts\";\n\nexport type GetMapEntryParams = {\n\tcontract: string; // \"address.name\"\n\tmapName: string;\n\tkey: ClarityValue;\n};\n\nexport async function getMapEntry<T extends ClarityValue = ClarityValue>(\n\tclient: Client,\n\tparams: GetMapEntryParams,\n): Promise<T> {\n\tconst [address, name] = parseContractId(params.contract);\n\tconst serializedKey = with0x(bytesToHex(serializeCVBytes(params.key)));\n\n\tconst data = await client.request(\n\t\t`/v2/map_entry/${address}/${name}/${params.mapName}`,\n\t\t{\n\t\t\tmethod: \"POST\",\n\t\t\tbody: serializedKey,\n\t\t},\n\t);\n\n\treturn deserializeCVBytes<T>(data.data);\n}\n",
|
|
7
7
|
"import type { Client } from \"../../clients/types.ts\";\n\nexport type GetNonceParams = {\n\taddress: string;\n};\n\nexport type GetNonceResult = {\n\tnonce: bigint;\n\tpossibleNextNonce: bigint;\n};\n\nexport async function getNonce(\n\tclient: Client,\n\tparams: GetNonceParams,\n): Promise<bigint> {\n\tconst data = await client.request(`/v2/accounts/${params.address}`, {\n\t\tmethod: \"GET\",\n\t});\n\treturn BigInt(data.nonce);\n}\n",
|
|
8
8
|
"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 { parseContractId } from \"../../utils/address.ts\";\nimport { bytesToHex, with0x } from \"../../utils/encoding.ts\";\n\nexport type ReadContractParams = {\n\tcontract: string; // \"address.name\"\n\tfunctionName: string;\n\targs?: ClarityValue[];\n\tsender?: string;\n};\n\nexport async function readContract<T extends ClarityValue = ClarityValue>(\n\tclient: Client,\n\tparams: ReadContractParams,\n): Promise<T> {\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\tconst data = await client.request(\n\t\t`/v2/contracts/call-read/${address}/${name}/${params.functionName}`,\n\t\t{\n\t\t\tmethod: \"POST\",\n\t\t\tbody: {\n\t\t\t\tsender,\n\t\t\t\targuments: serializedArgs,\n\t\t\t},\n\t\t},\n\t);\n\n\tif (data.okay) {\n\t\treturn deserializeCVBytes<T>(data.result);\n\t}\n\tthrow new Error(data.cause ?? \"Read-only call failed\");\n}\n",
|
|
9
9
|
"import { BaseError } from \"./base.ts\";\n\nexport class TransactionError extends BaseError {\n\toverride name = \"TransactionError\";\n}\n\nexport class BroadcastError extends BaseError {\n\toverride name = \"BroadcastError\";\n\ttxid?: string;\n\treason?: string;\n\n\tconstructor(\n\t\tmessage: string,\n\t\toptions?: { cause?: Error; txid?: string; reason?: string },\n\t) {\n\t\tsuper(message, options);\n\t\tthis.txid = options?.txid;\n\t\tthis.reason = options?.reason;\n\t}\n}\n\nexport class SerializationError extends BaseError {\n\toverride name = \"SerializationError\";\n}\n\nexport class SigningError extends BaseError {\n\toverride name = \"SigningError\";\n}\n",
|
|
10
10
|
"import type { Client } from \"../../clients/types.ts\";\nimport { BroadcastError } from \"../../errors/transaction.ts\";\nimport { getTransactionId } from \"../../transactions/signer.ts\";\nimport type { StacksTransaction } from \"../../transactions/types.ts\";\nimport { serializeTransaction } from \"../../transactions/wire/serialize.ts\";\nimport { bytesToHex } from \"../../utils/encoding.ts\";\n\nexport type SendTransactionParams = {\n\ttransaction: StacksTransaction;\n\tattachment?: Uint8Array | string;\n};\n\nexport type SendTransactionResult = {\n\ttxid: string;\n};\n\n/** Broadcast a signed transaction to the network */\nexport async function sendTransaction(\n\tclient: Client,\n\tparams: SendTransactionParams,\n): Promise<SendTransactionResult> {\n\tconst hex = bytesToHex(serializeTransaction(params.transaction));\n\n\tconst body: Record<string, string> = { tx: hex };\n\tif (params.attachment) {\n\t\tbody.attachment =\n\t\t\ttypeof params.attachment === \"string\"\n\t\t\t\t? params.attachment\n\t\t\t\t: bytesToHex(params.attachment);\n\t}\n\n\tconst data = await client.request(\"/v2/transactions\", {\n\t\tmethod: \"POST\",\n\t\tbody,\n\t});\n\n\tif (data.error) {\n\t\tthrow new BroadcastError(data.reason ?? data.error, {\n\t\t\treason: data.reason,\n\t\t});\n\t}\n\n\tconst txid =\n\t\ttypeof data === \"string\"\n\t\t\t? data.replace(/\"/g, \"\")\n\t\t\t: (data.txid ?? getTransactionId(params.transaction));\n\n\treturn { txid };\n}\n",
|
|
11
11
|
"import type { ProviderAccount } from \"../../accounts/types.ts\";\nimport type { Account } from \"../../clients/types.ts\";\n\nexport function isProviderAccount(\n\taccount: Account,\n): account is ProviderAccount {\n\treturn account.type === \"provider\";\n}\n",
|
|
12
|
-
"import type { ClarityValue } from \"../../clarity/types.ts\";\nimport type { Client } from \"../../clients/types.ts\";\nimport type { PostCondition } from \"../../postconditions/types.ts\";\nimport { buildContractCall } from \"../../transactions/build.ts\";\nimport { signTransactionWithAccount } from \"../../transactions/signer.ts\";\nimport { parseContractId } from \"../../utils/address.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport { estimateFee } from \"../public/estimateFee.ts\";\nimport { getNonce } from \"../public/getNonce.ts\";\nimport { sendTransaction } from \"./sendTransaction.ts\";\nimport { isProviderAccount } from \"./utils.ts\";\n\nexport type CallContractParams = {\n\tcontract: string; // \"address.name\"\n\tfunctionName: string;\n\tfunctionArgs?: ClarityValue[];\n\tfee?: IntegerType;\n\tnonce?: IntegerType;\n\tpostConditionMode?: \"allow\" | \"deny\";\n\tpostConditions?: PostCondition[];\n};\n\n/** Build, sign, and broadcast a contract call */\nexport async function callContract(\n\tclient: Client,\n\tparams: CallContractParams,\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 result = await account.provider.request(\"stx_callContract\", {\n\t\t\tcontract: params.contract,\n\t\t\tfunctionName: params.functionName,\n\t\t\tfunctionArgs: params.functionArgs ?? [],\n\t\t});\n\t\treturn result.txid;\n\t}\n\n\t// Local/Custom: build → sign → broadcast\n\tconst [contractAddress, contractName] = parseContractId(params.contract);\n\n\tconst nonce =\n\t\tparams.nonce ?? (await getNonce(client, { address: account.address }));\n\n\tconst unsigned = buildContractCall({\n\t\tcontractAddress,\n\t\tcontractName,\n\t\tfunctionName: params.functionName,\n\t\tfunctionArgs: params.functionArgs ?? [],\n\t\tfee: params.fee ?? 0n,\n\t\tnonce,\n\t\tpublicKey: account.publicKey,\n\t\tchain: client.chain,\n\t\tpostConditionMode: params.postConditionMode,\n\t\tpostConditions: params.postConditions,\n\t});\n\n\tif (params.fee === undefined) {\n\t\tconst estimates = await estimateFee(client, { transaction: unsigned });\n\t\tconst mid = estimates[1] ?? estimates[0];\n\t\tif (mid) {\n\t\t\t(unsigned.auth.spendingCondition as any).fee = BigInt(mid.fee);\n\t\t}\n\t}\n\n\tconst signed = await signTransactionWithAccount(unsigned, account);\n\tconst result = await sendTransaction(client, { transaction: signed });\n\treturn result.txid;\n}\n"
|
|
12
|
+
"import type { ClarityValue } from \"../../clarity/types.ts\";\nimport type { Client } from \"../../clients/types.ts\";\nimport type { PostCondition } from \"../../postconditions/types.ts\";\nimport { buildContractCall } from \"../../transactions/build.ts\";\nimport { signTransactionWithAccount } from \"../../transactions/signer.ts\";\nimport { parseContractId } from \"../../utils/address.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport { estimateFee } from \"../public/estimateFee.ts\";\nimport { getNonce } from \"../public/getNonce.ts\";\nimport { sendTransaction } from \"./sendTransaction.ts\";\nimport { isProviderAccount } from \"./utils.ts\";\n\nexport type CallContractParams = {\n\tcontract: string; // \"address.name\"\n\tfunctionName: string;\n\tfunctionArgs?: ClarityValue[];\n\tfee?: IntegerType;\n\tnonce?: IntegerType;\n\tpostConditionMode?: \"allow\" | \"deny\";\n\tpostConditions?: PostCondition[];\n};\n\n/** Build, sign, and broadcast a contract call */\nexport async function callContract(\n\tclient: Client,\n\tparams: CallContractParams,\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 result = await account.provider.request(\"stx_callContract\", {\n\t\t\tcontract: params.contract,\n\t\t\tfunctionName: params.functionName,\n\t\t\tfunctionArgs: params.functionArgs ?? [],\n\t\t});\n\t\treturn result.txid;\n\t}\n\n\t// Local/Custom: build → sign → broadcast\n\tconst [contractAddress, contractName] = parseContractId(params.contract);\n\n\tconst nonce =\n\t\tparams.nonce ?? (await getNonce(client, { address: account.address }));\n\n\tconst unsigned = buildContractCall({\n\t\tcontractAddress,\n\t\tcontractName,\n\t\tfunctionName: params.functionName,\n\t\tfunctionArgs: params.functionArgs ?? [],\n\t\tfee: params.fee ?? 0n,\n\t\tnonce,\n\t\tpublicKey: account.publicKey,\n\t\tchain: client.chain,\n\t\tpostConditionMode: params.postConditionMode,\n\t\tpostConditions: params.postConditions,\n\t});\n\n\tif (params.fee === undefined) {\n\t\tconst estimates = await estimateFee(client, { transaction: unsigned });\n\t\tconst mid = estimates[1] ?? estimates[0];\n\t\tif (mid) {\n\t\t\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t\t\t(unsigned.auth.spendingCondition as any).fee = BigInt(mid.fee);\n\t\t}\n\t}\n\n\tconst signed = await signTransactionWithAccount(unsigned, account);\n\tconst result = await sendTransaction(client, { transaction: signed });\n\treturn result.txid;\n}\n"
|
|
13
13
|
],
|
|
14
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAiBA,eAAsB,WAAW,CAChC,QACA,QAC2B;AAAA,EAC3B,MAAM,aAAa,WAAW,iBAAiB,OAAO,YAAY,OAAO,CAAC;AAAA,EAC1E,MAAM,QAAQ,WAAW,qBAAqB,OAAO,WAAW,CAAC;AAAA,EAEjE,MAAM,OAAO,MAAM,OAAO,QAAQ,wBAAwB;AAAA,IACzD,QAAQ;AAAA,IACR,MAAM;AAAA,MACL,eAAe,KAAK,KAAK,MAAM,SAAS,CAAC;AAAA,MACzC,qBAAqB,
|
|
15
|
-
"debugId": "
|
|
14
|
+
"mappings": "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",
|
|
15
|
+
"debugId": "6767503BA3369D3064756E2164756E21",
|
|
16
16
|
"names": []
|
|
17
17
|
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Cl,
|
|
3
3
|
serializeCVBytes
|
|
4
|
-
} from "./stacks-
|
|
4
|
+
} from "./stacks-0zysn74p.js";
|
|
5
5
|
import {
|
|
6
6
|
hash160,
|
|
7
7
|
hashP2PKH,
|
|
8
8
|
txidFromBytes
|
|
9
|
-
} from "./stacks-
|
|
9
|
+
} from "./stacks-xxn5ma6g.js";
|
|
10
10
|
import {
|
|
11
11
|
parseContractId
|
|
12
|
-
} from "./stacks-
|
|
12
|
+
} from "./stacks-6xmk24yw.js";
|
|
13
13
|
import {
|
|
14
14
|
asciiToBytes,
|
|
15
15
|
bytesToHex,
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
writeUInt16BE,
|
|
25
25
|
writeUInt32BE,
|
|
26
26
|
writeUInt8
|
|
27
|
-
} from "./stacks-
|
|
27
|
+
} from "./stacks-2h8d2y27.js";
|
|
28
28
|
|
|
29
29
|
// src/transactions/types.ts
|
|
30
30
|
var AuthType = {
|
|
@@ -155,12 +155,11 @@ function serializeSpendingCondition(condition) {
|
|
|
155
155
|
}
|
|
156
156
|
function serializeAuthField(field) {
|
|
157
157
|
if (field.type === "publicKey") {
|
|
158
|
-
const
|
|
159
|
-
return concatBytes(writeUInt8(
|
|
160
|
-
} else {
|
|
161
|
-
const typeId = field.pubKeyEncoding === 0 ? 2 : 3;
|
|
162
|
-
return concatBytes(writeUInt8(typeId), hexToBytes(field.data));
|
|
158
|
+
const typeId2 = field.pubKeyEncoding === 0 ? 0 : 1;
|
|
159
|
+
return concatBytes(writeUInt8(typeId2), hexToBytes(field.data));
|
|
163
160
|
}
|
|
161
|
+
const typeId = field.pubKeyEncoding === 0 ? 2 : 3;
|
|
162
|
+
return concatBytes(writeUInt8(typeId), hexToBytes(field.data));
|
|
164
163
|
}
|
|
165
164
|
function serializeAuthorization(auth) {
|
|
166
165
|
const parts = [writeUInt8(auth.authType)];
|
|
@@ -295,7 +294,8 @@ import { sha256 } from "@noble/hashes/sha2.js";
|
|
|
295
294
|
import { etc, getPublicKey as nobleGetPublicKey, sign } from "@noble/secp256k1";
|
|
296
295
|
etc.hmacSha256Sync = (key, ...msgs) => {
|
|
297
296
|
const h = hmac.create(sha256, key);
|
|
298
|
-
|
|
297
|
+
for (const msg of msgs)
|
|
298
|
+
h.update(msg);
|
|
299
299
|
return h.digest();
|
|
300
300
|
};
|
|
301
301
|
var EMPTY_SIG = bytesToHex(new Uint8Array(RECOVERABLE_ECDSA_SIG_LENGTH_BYTES));
|
|
@@ -895,5 +895,5 @@ async function signSponsorWithAccount(tx, account) {
|
|
|
895
895
|
|
|
896
896
|
export { AuthType, PayloadType, ClarityVersion, AnchorMode, PostConditionModeWire, AddressHashMode, PubKeyEncoding, FungibleConditionCode, NonFungibleConditionCode, PostConditionPrincipalId, AssetType, AuthFieldType, RECOVERABLE_ECDSA_SIG_LENGTH_BYTES, MEMO_MAX_LENGTH_BYTES, MAX_STRING_LENGTH_BYTES, COINBASE_BYTES_LENGTH, VRF_PROOF_BYTES_LENGTH, MICROBLOCK_HEADER_BYTES_LENGTH, TenureChangeCause, serializePayload, serializeTransaction, serializeTransactionHex, createSingleSigSpendingCondition, createStandardAuth, createSponsoredAuth, sigHashPreSign, sigHashPostSign, nextSignature, isNonSequential, makeMultiSigAddress, createMultiSigSpendingCondition, replayMultiSigSigHash, signMultiSig, signMultiSigWithAccount, finalizeMultiSig, combineMultiSigSignatures, buildTokenTransfer, buildContractCall, buildContractDeploy, signBegin, signTransaction, signTransactionWithAccount, getTransactionId, getOriginSigHash, signSponsor, signSponsorWithAccount };
|
|
897
897
|
|
|
898
|
-
//# debugId=
|
|
899
|
-
//# sourceMappingURL=stacks-
|
|
898
|
+
//# debugId=90F95ABF4BF001A364756E2164756E21
|
|
899
|
+
//# sourceMappingURL=stacks-kmnthgj7.js.map
|