@secondlayer/stacks 0.0.4 → 0.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-vdfs3e5v.js → stacks-1ddg6mbv.js} +2 -2
- package/dist/shared/{stacks-bnvfmt7y.cjs → stacks-2gdt3aqj.cjs} +15 -2
- package/dist/shared/{stacks-8m9byk2j.js.map → stacks-2gdt3aqj.cjs.map} +1 -1
- package/dist/shared/stacks-709tra19.js.map +2 -2
- package/dist/shared/stacks-9g0jhab3.cjs.map +2 -2
- package/dist/shared/stacks-b008c3w8.cjs.map +2 -2
- package/dist/shared/stacks-gck1sq7h.cjs.map +2 -2
- package/dist/shared/stacks-gjvbq6w7.js.map +2 -2
- package/dist/shared/{stacks-74k8cxgb.cjs → stacks-hfem9dck.cjs} +46 -2
- package/dist/shared/stacks-hfem9dck.cjs.map +13 -0
- package/dist/shared/stacks-j2cy7qtt.js.map +2 -2
- package/dist/shared/stacks-k58k970n.js.map +2 -2
- package/dist/shared/{stacks-zm0b3tgy.js → stacks-m2dc5xwg.js} +7 -7
- package/dist/shared/{stacks-zm0b3tgy.js.map → stacks-m2dc5xwg.js.map} +1 -1
- package/dist/shared/{stacks-n2g56wgg.js → stacks-md6e5ta0.js} +13 -13
- package/dist/shared/{stacks-n2g56wgg.js.map → stacks-md6e5ta0.js.map} +1 -1
- package/dist/shared/stacks-njvyj3ab.js +23 -0
- package/dist/shared/{stacks-bnvfmt7y.cjs.map → stacks-njvyj3ab.js.map} +1 -1
- package/dist/shared/{stacks-dxhntr76.js → stacks-ph4a6322.js} +54 -11
- package/dist/shared/stacks-ph4a6322.js.map +10 -0
- package/dist/shared/{stacks-f7wdrzs3.js → stacks-pz73cn97.js} +17 -17
- package/dist/shared/{stacks-f7wdrzs3.js.map → stacks-pz73cn97.js.map} +1 -1
- package/dist/shared/stacks-qvg7c24g.cjs.map +2 -2
- package/dist/shared/{stacks-4py5pm0r.cjs → stacks-v3zy6zds.cjs} +42 -2
- package/dist/shared/stacks-v3zy6zds.cjs.map +10 -0
- package/dist/shared/stacks-v9jqcpd4.js.map +2 -2
- package/dist/shared/{stacks-yfgsm6ap.js → stacks-xtz0n62y.js} +58 -3
- package/dist/shared/stacks-xtz0n62y.js.map +13 -0
- package/dist/shared/stacks-ya3x01yd.cjs.map +2 -2
- package/dist/src/accounts/index.js +1 -1
- package/dist/src/actions/index.d.cts +43 -2
- package/dist/src/actions/index.d.ts +43 -2
- package/dist/src/actions/index.js +7 -7
- package/dist/src/bns/index.js +10 -10
- package/dist/src/bns/index.js.map +1 -1
- package/dist/src/chains/index.js +1 -1
- package/dist/src/clarity/index.cjs +326 -1
- package/dist/src/clarity/index.cjs.map +5 -3
- package/dist/src/clarity/index.d.cts +24 -5
- package/dist/src/clarity/index.d.ts +24 -5
- package/dist/src/clarity/index.js +264 -13
- package/dist/src/clarity/index.js.map +5 -3
- package/dist/src/connect/index.cjs.map +2 -2
- package/dist/src/connect/index.d.cts +7 -1
- package/dist/src/connect/index.d.ts +7 -1
- package/dist/src/connect/index.js.map +2 -2
- package/dist/src/connect/walletconnect/index.cjs +4 -4
- package/dist/src/connect/walletconnect/index.cjs.map +7 -7
- package/dist/src/connect/walletconnect/index.d.cts +5 -5
- package/dist/src/connect/walletconnect/index.d.ts +5 -5
- package/dist/src/connect/walletconnect/index.js +4 -4
- package/dist/src/connect/walletconnect/index.js.map +7 -7
- package/dist/src/index.cjs +1 -1
- package/dist/src/index.cjs.map +2 -2
- package/dist/src/index.d.cts +44 -3
- package/dist/src/index.d.ts +44 -3
- package/dist/src/index.js +12 -11
- package/dist/src/index.js.map +3 -3
- package/dist/src/postconditions/index.cjs +117 -1
- package/dist/src/postconditions/index.cjs.map +4 -3
- package/dist/src/postconditions/index.js +119 -6
- package/dist/src/postconditions/index.js.map +4 -3
- package/dist/src/pox/index.js +9 -9
- package/dist/src/pox/index.js.map +1 -1
- package/dist/src/stackingdao/index.cjs.map +2 -2
- package/dist/src/stackingdao/index.d.cts +18 -7
- package/dist/src/stackingdao/index.d.ts +18 -7
- package/dist/src/stackingdao/index.js +9 -9
- package/dist/src/stackingdao/index.js.map +3 -3
- package/dist/src/subscriptions/index.js +1 -1
- package/dist/src/transactions/index.cjs +5 -1
- package/dist/src/transactions/index.cjs.map +1 -1
- package/dist/src/transactions/index.d.cts +40 -2
- package/dist/src/transactions/index.d.ts +40 -2
- package/dist/src/transactions/index.js +18 -10
- package/dist/src/transactions/index.js.map +1 -1
- package/dist/src/utils/index.d.cts +4 -4
- package/dist/src/utils/index.d.ts +4 -4
- package/dist/src/utils/index.js +1 -1
- package/package.json +1 -1
- package/dist/shared/stacks-2ar4prfz.cjs +0 -328
- package/dist/shared/stacks-2ar4prfz.cjs.map +0 -11
- package/dist/shared/stacks-4py5pm0r.cjs.map +0 -10
- package/dist/shared/stacks-74k8cxgb.cjs.map +0 -13
- package/dist/shared/stacks-8m9byk2j.js +0 -7
- package/dist/shared/stacks-dr5en54r.cjs +0 -119
- package/dist/shared/stacks-dr5en54r.cjs.map +0 -10
- package/dist/shared/stacks-dxhntr76.js.map +0 -10
- package/dist/shared/stacks-f3tk2k5s.js +0 -27
- package/dist/shared/stacks-f3tk2k5s.js.map +0 -9
- package/dist/shared/stacks-g9mcjcqg.cjs +0 -3
- package/dist/shared/stacks-g9mcjcqg.cjs.map +0 -9
- package/dist/shared/stacks-tjxmrssa.js +0 -282
- package/dist/shared/stacks-tjxmrssa.js.map +0 -11
- package/dist/shared/stacks-yfgsm6ap.js.map +0 -13
- package/dist/shared/stacks-yfveb68e.js +0 -121
- package/dist/shared/stacks-yfveb68e.js.map +0 -10
- /package/dist/shared/{stacks-vdfs3e5v.js.map → stacks-1ddg6mbv.js.map} +0 -0
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
callContract,
|
|
3
3
|
getMapEntry,
|
|
4
4
|
readContract
|
|
5
|
-
} from "./stacks-
|
|
5
|
+
} from "./stacks-m2dc5xwg.js";
|
|
6
6
|
import {
|
|
7
7
|
clarityValueToJSUntyped,
|
|
8
8
|
jsToClarityValue,
|
|
@@ -131,4 +131,4 @@ class ContractResponseError extends Error {
|
|
|
131
131
|
export { getContract, ContractResponseError };
|
|
132
132
|
|
|
133
133
|
//# debugId=C71C39F2B8094B6864756E2164756E21
|
|
134
|
-
//# sourceMappingURL=stacks-
|
|
134
|
+
//# sourceMappingURL=stacks-1ddg6mbv.js.map
|
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
var import_node_module = require("node:module");
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
2
4
|
var __defProp = Object.defineProperty;
|
|
3
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
6
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __toESM = (mod, isNodeMode, target) => {
|
|
9
|
+
target = mod != null ? __create(__getProtoOf(mod)) : {};
|
|
10
|
+
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
|
|
11
|
+
for (let key of __getOwnPropNames(mod))
|
|
12
|
+
if (!__hasOwnProp.call(to, key))
|
|
13
|
+
__defProp(to, key, {
|
|
14
|
+
get: () => mod[key],
|
|
15
|
+
enumerable: true
|
|
16
|
+
});
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
6
19
|
var __moduleCache = /* @__PURE__ */ new WeakMap;
|
|
7
20
|
var __toCommonJS = (from) => {
|
|
8
21
|
var entry = __moduleCache.get(from), desc;
|
|
@@ -27,5 +40,5 @@ var __export = (target, all) => {
|
|
|
27
40
|
});
|
|
28
41
|
};
|
|
29
42
|
|
|
30
|
-
//# debugId=
|
|
31
|
-
//# sourceMappingURL=stacks-
|
|
43
|
+
//# debugId=F7091C0D7381DD9264756E2164756E21
|
|
44
|
+
//# sourceMappingURL=stacks-2gdt3aqj.cjs.map
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/errors/base.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"export class BaseError extends Error {\n override name = \"StacksError\";\n shortMessage: string;\n details?: string;\n\n constructor(shortMessage: string, options?: { cause?: Error; details?: string }) {\n const message = [\n shortMessage,\n options?.details ? `\\n${options.details}` : \"\",\n ].join(\"\");\n\n super(message, { cause: options?.cause });\n this.shortMessage = shortMessage;\n this.details = options?.details;\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n shortMessage: this.shortMessage,\n details: this.details,\n cause: this.cause instanceof Error ? this.cause.message : undefined,\n };\n }\n}\n"
|
|
5
|
+
"export class BaseError extends Error {\n override name = \"StacksError\";\n shortMessage: string;\n details?: string;\n\n constructor(shortMessage: string, options?: { cause?: Error; details?: string }) {\n const message = [\n shortMessage,\n options?.details ? `\\n${options.details}` : \"\",\n ].join(\"\");\n\n super(message, { cause: options?.cause });\n this.shortMessage = shortMessage;\n this.details = options?.details;\n }\n\n toJSON(): { name: string; message: string; shortMessage: string; details: string | undefined; cause: string | undefined } {\n return {\n name: this.name,\n message: this.message,\n shortMessage: this.shortMessage,\n details: this.details,\n cause: this.cause instanceof Error ? this.cause.message : undefined,\n };\n }\n}\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": ";AAAO,MAAM,kBAAkB,MAAM;AAAA,EAC1B,OAAO;AAAA,EAChB;AAAA,EACA;AAAA,EAEA,WAAW,CAAC,cAAsB,SAA+C;AAAA,IAC/E,MAAM,UAAU;AAAA,MACd;AAAA,MACA,SAAS,UAAU;AAAA,EAAK,QAAQ,YAAY;AAAA,IAC9C,EAAE,KAAK,EAAE;AAAA,IAET,MAAM,SAAS,EAAE,OAAO,SAAS,MAAM,CAAC;AAAA,IACxC,KAAK,eAAe;AAAA,IACpB,KAAK,UAAU,SAAS;AAAA;AAAA,EAG1B,MAAM,
|
|
7
|
+
"mappings": ";AAAO,MAAM,kBAAkB,MAAM;AAAA,EAC1B,OAAO;AAAA,EAChB;AAAA,EACA;AAAA,EAEA,WAAW,CAAC,cAAsB,SAA+C;AAAA,IAC/E,MAAM,UAAU;AAAA,MACd;AAAA,MACA,SAAS,UAAU;AAAA,EAAK,QAAQ,YAAY;AAAA,IAC9C,EAAE,KAAK,EAAE;AAAA,IAET,MAAM,SAAS,EAAE,OAAO,SAAS,MAAM,CAAC;AAAA,IACxC,KAAK,eAAe;AAAA,IACpB,KAAK,UAAU,SAAS;AAAA;AAAA,EAG1B,MAAM,GAAoH;AAAA,IACxH,OAAO;AAAA,MACL,MAAM,KAAK;AAAA,MACX,SAAS,KAAK;AAAA,MACd,cAAc,KAAK;AAAA,MACnB,SAAS,KAAK;AAAA,MACd,OAAO,KAAK,iBAAiB,QAAQ,KAAK,MAAM,UAAU;AAAA,IAC5D;AAAA;AAEJ;",
|
|
8
8
|
"debugId": "1A3CE4B478FC032D64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/utils/address.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import { c32address, c32addressDecode } from \"./c32.ts\";\n\nexport { c32address, c32addressDecode };\n\nexport function validateStacksAddress(address: string): boolean {\n try {\n c32addressDecode(address);\n return true;\n } catch {\n return false;\n }\n}\n\n/** Alias for validateStacksAddress — matches future.md naming. */\nexport const isValidAddress = validateStacksAddress;\n\nexport function parseContractId(contractId: string): [string, string] {\n const [address, name] = contractId.split(\".\");\n if (!address || !name)\n throw new Error(`Invalid contract identifier: ${contractId}`);\n return [address, name];\n}\n\nexport function isClarityName(name: string): boolean {\n const regex = /^[a-zA-Z]([a-zA-Z0-9]|[-_!?+<>=/*])*$|^[-+=/*]$|^[<>]=?$/;\n return regex.test(name) && name.length < 128;\n}\n\n/**\n * Compare two Stacks addresses for equality (case-insensitive, version-aware).\n * Throws if either address is invalid.\n */\nexport function isAddressEqual(a: string, b: string): boolean {\n const [versionA, hashA] = c32addressDecode(a);\n const [versionB, hashB] = c32addressDecode(b);\n return versionA === versionB && hashA.toLowerCase() === hashB.toLowerCase();\n}\n\n/** Extract the version byte from a Stacks address (22, 20, 26, or 21). */\nexport function addressToVersion(address: string): number {\n return c32addressDecode(address)[0];\n}\n\n/**\n * Build a contract address from deployer + contract name.\n * Validates both parts; returns `deployer.contractName`.\n */\nexport function getContractAddress(deployer: string, contractName: string): string {\n if (!validateStacksAddress(deployer)) {\n throw new Error(`Invalid deployer address: ${deployer}`);\n }\n if (!isClarityName(contractName)) {\n throw new Error(`Invalid contract name: ${contractName}`);\n }\n return `${deployer}.${contractName}`;\n}\n"
|
|
5
|
+
"import { c32address, c32addressDecode } from \"./c32.ts\";\n\nexport { c32address, c32addressDecode };\n\nexport function validateStacksAddress(address: string): boolean {\n try {\n c32addressDecode(address);\n return true;\n } catch {\n return false;\n }\n}\n\n/** Alias for validateStacksAddress — matches future.md naming. */\nexport const isValidAddress: (address: string) => boolean = validateStacksAddress;\n\nexport function parseContractId(contractId: string): [string, string] {\n const [address, name] = contractId.split(\".\");\n if (!address || !name)\n throw new Error(`Invalid contract identifier: ${contractId}`);\n return [address, name];\n}\n\nexport function isClarityName(name: string): boolean {\n const regex = /^[a-zA-Z]([a-zA-Z0-9]|[-_!?+<>=/*])*$|^[-+=/*]$|^[<>]=?$/;\n return regex.test(name) && name.length < 128;\n}\n\n/**\n * Compare two Stacks addresses for equality (case-insensitive, version-aware).\n * Throws if either address is invalid.\n */\nexport function isAddressEqual(a: string, b: string): boolean {\n const [versionA, hashA] = c32addressDecode(a);\n const [versionB, hashB] = c32addressDecode(b);\n return versionA === versionB && hashA.toLowerCase() === hashB.toLowerCase();\n}\n\n/** Extract the version byte from a Stacks address (22, 20, 26, or 21). */\nexport function addressToVersion(address: string): number {\n return c32addressDecode(address)[0];\n}\n\n/**\n * Build a contract address from deployer + contract name.\n * Validates both parts; returns `deployer.contractName`.\n */\nexport function getContractAddress(deployer: string, contractName: string): string {\n if (!validateStacksAddress(deployer)) {\n throw new Error(`Invalid deployer address: ${deployer}`);\n }\n if (!isClarityName(contractName)) {\n throw new Error(`Invalid contract name: ${contractName}`);\n }\n return `${deployer}.${contractName}`;\n}\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": ";AAIO,SAAS,qBAAqB,CAAC,SAA0B;AAAA,EAC9D,IAAI;AAAA,IACF,iBAAiB,OAAO;AAAA,IACxB,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA;AAAA;AAKJ,IAAM,
|
|
7
|
+
"mappings": ";AAIO,SAAS,qBAAqB,CAAC,SAA0B;AAAA,EAC9D,IAAI;AAAA,IACF,iBAAiB,OAAO;AAAA,IACxB,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA;AAAA;AAKJ,IAAM,iBAA+C;AAErD,SAAS,eAAe,CAAC,YAAsC;AAAA,EACpE,OAAO,SAAS,QAAQ,WAAW,MAAM,GAAG;AAAA,EAC5C,IAAI,CAAC,WAAW,CAAC;AAAA,IACf,MAAM,IAAI,MAAM,gCAAgC,YAAY;AAAA,EAC9D,OAAO,CAAC,SAAS,IAAI;AAAA;AAGhB,SAAS,aAAa,CAAC,MAAuB;AAAA,EACnD,MAAM,QAAQ;AAAA,EACd,OAAO,MAAM,KAAK,IAAI,KAAK,KAAK,SAAS;AAAA;AAOpC,SAAS,cAAc,CAAC,GAAW,GAAoB;AAAA,EAC5D,OAAO,UAAU,SAAS,iBAAiB,CAAC;AAAA,EAC5C,OAAO,UAAU,SAAS,iBAAiB,CAAC;AAAA,EAC5C,OAAO,aAAa,YAAY,MAAM,YAAY,MAAM,MAAM,YAAY;AAAA;AAIrE,SAAS,gBAAgB,CAAC,SAAyB;AAAA,EACxD,OAAO,iBAAiB,OAAO,EAAE;AAAA;AAO5B,SAAS,kBAAkB,CAAC,UAAkB,cAA8B;AAAA,EACjF,IAAI,CAAC,sBAAsB,QAAQ,GAAG;AAAA,IACpC,MAAM,IAAI,MAAM,6BAA6B,UAAU;AAAA,EACzD;AAAA,EACA,IAAI,CAAC,cAAc,YAAY,GAAG;AAAA,IAChC,MAAM,IAAI,MAAM,0BAA0B,cAAc;AAAA,EAC1D;AAAA,EACA,OAAO,GAAG,YAAY;AAAA;",
|
|
8
8
|
"debugId": "82C1C5C89C391C3664756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
"sources": ["../src/clarity/deserialize.ts", "../src/clarity/values.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import {\n hexToBytes,\n bytesToHex,\n bytesToAscii,\n bytesToUtf8,\n bytesToTwosBigInt,\n without0x,\n} from \"../utils/encoding.ts\";\nimport { c32address } from \"../utils/c32.ts\";\nimport {\n clarityTypeFromByte,\n type ClarityValue,\n} from \"./types.ts\";\nimport {\n intCV,\n uintCV,\n trueCV,\n falseCV,\n bufferCV,\n noneCV,\n someCV,\n responseOkCV,\n responseErrorCV,\n standardPrincipalCV,\n contractPrincipalCV,\n listCV,\n tupleCV,\n stringAsciiCV,\n stringUtf8CV,\n} from \"./values.ts\";\n\nclass BytesReader {\n private data: Uint8Array;\n private offset = 0;\n\n constructor(data: Uint8Array) {\n this.data = data;\n }\n\n readUInt8(): number {\n const value = this.data[this.offset]!;\n this.offset += 1;\n return value;\n }\n\n readUInt32BE(): number {\n const value =\n ((this.data[this.offset]! << 24) |\n (this.data[this.offset + 1]! << 16) |\n (this.data[this.offset + 2]! << 8) |\n this.data[this.offset + 3]!) >>>\n 0;\n this.offset += 4;\n return value;\n }\n\n readBytes(length: number): Uint8Array {\n const slice = this.data.slice(this.offset, this.offset + length);\n this.offset += length;\n return slice;\n }\n}\n\nfunction readAddress(reader: BytesReader): string {\n const version = reader.readUInt8();\n const hash160 = bytesToHex(reader.readBytes(20));\n return c32address(version, hash160);\n}\n\nfunction readLPString(reader: BytesReader, prefixBytes = 1): string {\n let length = 0;\n for (let i = 0; i < prefixBytes; i++) {\n length = (length << 8) | reader.readUInt8();\n }\n return bytesToUtf8(reader.readBytes(length));\n}\n\nfunction readCV(reader: BytesReader): ClarityValue {\n const typeByte = reader.readUInt8();\n const type = clarityTypeFromByte(typeByte);\n\n switch (type) {\n case \"int\":\n return intCV(bytesToTwosBigInt(reader.readBytes(16)));\n\n case \"uint\":\n return uintCV(reader.readBytes(16));\n\n case \"true\":\n return trueCV();\n\n case \"false\":\n return falseCV();\n\n case \"buffer\": {\n const len = reader.readUInt32BE();\n return bufferCV(reader.readBytes(len));\n }\n\n case \"none\":\n return noneCV();\n\n case \"some\":\n return someCV(readCV(reader));\n\n case \"ok\":\n return responseOkCV(readCV(reader));\n\n case \"err\":\n return responseErrorCV(readCV(reader));\n\n case \"address\":\n return standardPrincipalCV(readAddress(reader));\n\n case \"contract\": {\n const addr = readAddress(reader);\n const name = readLPString(reader);\n return contractPrincipalCV(addr, name);\n }\n\n case \"list\": {\n const len = reader.readUInt32BE();\n const items: ClarityValue[] = [];\n for (let i = 0; i < len; i++) {\n items.push(readCV(reader));\n }\n return listCV(items);\n }\n\n case \"tuple\": {\n const len = reader.readUInt32BE();\n const data: Record<string, ClarityValue> = {};\n for (let i = 0; i < len; i++) {\n const key = readLPString(reader);\n data[key] = readCV(reader);\n }\n return tupleCV(data);\n }\n\n case \"ascii\": {\n const len = reader.readUInt32BE();\n return stringAsciiCV(bytesToAscii(reader.readBytes(len)));\n }\n\n case \"utf8\": {\n const len = reader.readUInt32BE();\n return stringUtf8CV(bytesToUtf8(reader.readBytes(len)));\n }\n\n default:\n throw new Error(`Cannot deserialize unknown clarity type: ${type}`);\n }\n}\n\nexport function deserializeCVBytes<T extends ClarityValue = ClarityValue>(\n input: Uint8Array | string\n): T {\n const bytes =\n typeof input === \"string\" ? hexToBytes(without0x(input)) : input;\n return readCV(new BytesReader(bytes)) as T;\n}\n\nexport function deserializeCV<T extends ClarityValue = ClarityValue>(\n input: Uint8Array | string\n): T {\n return deserializeCVBytes(input);\n}\n",
|
|
6
|
-
"import { c32address, c32addressDecode } from \"../utils/c32.ts\";\nimport {\n bytesToHex,\n hexToBytes,\n asciiToBytes,\n utf8ToBytes,\n intToBigInt,\n bytesToTwosBigInt,\n type IntegerType,\n} from \"../utils/encoding.ts\";\nimport { isClarityName } from \"../utils/address.ts\";\nimport type {\n IntCV,\n UIntCV,\n BooleanCV,\n TrueCV,\n FalseCV,\n BufferCV,\n NoneCV,\n SomeCV,\n OptionalCV,\n ResponseOkCV,\n ResponseErrorCV,\n StandardPrincipalCV,\n ContractPrincipalCV,\n ListCV,\n TupleCV,\n TupleData,\n StringAsciiCV,\n StringUtf8CV,\n ClarityValue,\n} from \"./types.ts\";\nimport { serializeCVBytes } from \"./serialize.ts\";\nimport { deserializeCVBytes } from \"./deserialize.ts\";\n\nconst MAX_U128 = BigInt(\"0xffffffffffffffffffffffffffffffff\");\nconst MIN_I128 = BigInt(\"-170141183460469231731687303715884105728\");\nconst MAX_I128 = BigInt(\"0x7fffffffffffffffffffffffffffffff\");\n\n// Primitives\n\nexport function intCV(value: IntegerType): IntCV {\n if (typeof value === \"string\" && value.toLowerCase().startsWith(\"0x\")) {\n value = bytesToTwosBigInt(hexToBytes(value));\n }\n if (value instanceof Uint8Array) value = bytesToTwosBigInt(value);\n const n = intToBigInt(value);\n if (n > MAX_I128) throw new RangeError(`Int exceeds max i128: ${MAX_I128}`);\n if (n < MIN_I128) throw new RangeError(`Int below min i128: ${MIN_I128}`);\n return { type: \"int\", value: n };\n}\n\nexport function uintCV(value: IntegerType): UIntCV {\n const n = intToBigInt(value);\n if (n < 0n) throw new RangeError(\"Cannot construct unsigned int from negative value\");\n if (n > MAX_U128) throw new RangeError(`UInt exceeds max u128: ${MAX_U128}`);\n return { type: \"uint\", value: n };\n}\n\nexport const trueCV = (): TrueCV => ({ type: \"true\" });\nexport const falseCV = (): FalseCV => ({ type: \"false\" });\nexport const boolCV = (v: boolean): BooleanCV => (v ? trueCV() : falseCV());\n\nexport function bufferCV(buffer: Uint8Array): BufferCV {\n if (buffer.byteLength > 1_048_576) {\n throw new Error(\"Buffer exceeds max size of 1MB\");\n }\n return { type: \"buffer\", value: bytesToHex(buffer) };\n}\n\nexport function standardPrincipalCV(address: string): StandardPrincipalCV {\n // Validate by decoding\n const [version, hash160] = c32addressDecode(address);\n const normalized = c32address(version, hash160);\n return { type: \"address\", value: normalized };\n}\n\nexport function contractPrincipalCV(\n address: string,\n contractName: string\n): ContractPrincipalCV {\n const [version, hash160] = c32addressDecode(address);\n const normalized = c32address(version, hash160);\n if (utf8ToBytes(contractName).byteLength >= 128) {\n throw new Error(\"Contract name must be less than 128 bytes\");\n }\n return { type: \"contract\", value: `${normalized}.${contractName}` };\n}\n\nexport function noneCV(): NoneCV {\n return { type: \"none\" };\n}\n\nexport function someCV(value: ClarityValue): SomeCV {\n return { type: \"some\", value };\n}\n\nexport function responseOkCV(value: ClarityValue): ResponseOkCV {\n return { type: \"ok\", value };\n}\n\nexport function responseErrorCV(value: ClarityValue): ResponseErrorCV {\n return { type: \"err\", value };\n}\n\nexport function listCV(values: ClarityValue[]): ListCV {\n return { type: \"list\", value: values };\n}\n\nexport function tupleCV(data: TupleData): TupleCV {\n for (const key in data) {\n if (!isClarityName(key)) {\n throw new Error(`\"${key}\" is not a valid Clarity name`);\n }\n }\n return { type: \"tuple\", value: data };\n}\n\nexport function stringAsciiCV(value: string): StringAsciiCV {\n return { type: \"ascii\", value };\n}\n\nexport function stringUtf8CV(value: string): StringUtf8CV {\n return { type: \"utf8\", value };\n}\n\n// Cl namespace — clean API\n\nexport const Cl = {\n int: intCV,\n uint: uintCV,\n bool: boolCV,\n principal(address: string): StandardPrincipalCV | ContractPrincipalCV {\n const [addr, name] = address.split(\".\");\n if (!addr) throw new Error(\"Invalid principal address\");\n return name ? contractPrincipalCV(addr, name) : standardPrincipalCV(addr);\n },\n address(address: string) {\n return Cl.principal(address);\n },\n contractPrincipal: contractPrincipalCV,\n standardPrincipal: standardPrincipalCV,\n buffer: bufferCV,\n bufferFromHex: (hex: string) => bufferCV(hexToBytes(hex)),\n bufferFromAscii: (ascii: string) => bufferCV(asciiToBytes(ascii)),\n bufferFromUtf8: (utf8: string) => bufferCV(utf8ToBytes(utf8)),\n none: noneCV,\n some: someCV,\n ok: responseOkCV,\n error: responseErrorCV,\n list: listCV,\n tuple: tupleCV,\n stringAscii: stringAsciiCV,\n stringUtf8: stringUtf8CV,\n serialize(value: ClarityValue): string {\n return bytesToHex(serializeCVBytes(value));\n },\n deserialize: deserializeCVBytes,\n} as const;\n"
|
|
6
|
+
"import { c32address, c32addressDecode } from \"../utils/c32.ts\";\nimport {\n bytesToHex,\n hexToBytes,\n asciiToBytes,\n utf8ToBytes,\n intToBigInt,\n bytesToTwosBigInt,\n type IntegerType,\n} from \"../utils/encoding.ts\";\nimport { isClarityName } from \"../utils/address.ts\";\nimport type {\n IntCV,\n UIntCV,\n BooleanCV,\n TrueCV,\n FalseCV,\n BufferCV,\n NoneCV,\n SomeCV,\n OptionalCV,\n ResponseOkCV,\n ResponseErrorCV,\n StandardPrincipalCV,\n ContractPrincipalCV,\n ListCV,\n TupleCV,\n TupleData,\n StringAsciiCV,\n StringUtf8CV,\n ClarityValue,\n} from \"./types.ts\";\nimport { serializeCVBytes } from \"./serialize.ts\";\nimport { deserializeCVBytes } from \"./deserialize.ts\";\n\nconst MAX_U128 = BigInt(\"0xffffffffffffffffffffffffffffffff\");\nconst MIN_I128 = BigInt(\"-170141183460469231731687303715884105728\");\nconst MAX_I128 = BigInt(\"0x7fffffffffffffffffffffffffffffff\");\n\n// Primitives\n\nexport function intCV(value: IntegerType): IntCV {\n if (typeof value === \"string\" && value.toLowerCase().startsWith(\"0x\")) {\n value = bytesToTwosBigInt(hexToBytes(value));\n }\n if (value instanceof Uint8Array) value = bytesToTwosBigInt(value);\n const n = intToBigInt(value);\n if (n > MAX_I128) throw new RangeError(`Int exceeds max i128: ${MAX_I128}`);\n if (n < MIN_I128) throw new RangeError(`Int below min i128: ${MIN_I128}`);\n return { type: \"int\", value: n };\n}\n\nexport function uintCV(value: IntegerType): UIntCV {\n const n = intToBigInt(value);\n if (n < 0n) throw new RangeError(\"Cannot construct unsigned int from negative value\");\n if (n > MAX_U128) throw new RangeError(`UInt exceeds max u128: ${MAX_U128}`);\n return { type: \"uint\", value: n };\n}\n\nexport const trueCV = (): TrueCV => ({ type: \"true\" });\nexport const falseCV = (): FalseCV => ({ type: \"false\" });\nexport const boolCV = (v: boolean): BooleanCV => (v ? trueCV() : falseCV());\n\nexport function bufferCV(buffer: Uint8Array): BufferCV {\n if (buffer.byteLength > 1_048_576) {\n throw new Error(\"Buffer exceeds max size of 1MB\");\n }\n return { type: \"buffer\", value: bytesToHex(buffer) };\n}\n\nexport function standardPrincipalCV(address: string): StandardPrincipalCV {\n // Validate by decoding\n const [version, hash160] = c32addressDecode(address);\n const normalized = c32address(version, hash160);\n return { type: \"address\", value: normalized };\n}\n\nexport function contractPrincipalCV(\n address: string,\n contractName: string\n): ContractPrincipalCV {\n const [version, hash160] = c32addressDecode(address);\n const normalized = c32address(version, hash160);\n if (utf8ToBytes(contractName).byteLength >= 128) {\n throw new Error(\"Contract name must be less than 128 bytes\");\n }\n return { type: \"contract\", value: `${normalized}.${contractName}` };\n}\n\nexport function noneCV(): NoneCV {\n return { type: \"none\" };\n}\n\nexport function someCV(value: ClarityValue): SomeCV {\n return { type: \"some\", value };\n}\n\nexport function responseOkCV(value: ClarityValue): ResponseOkCV {\n return { type: \"ok\", value };\n}\n\nexport function responseErrorCV(value: ClarityValue): ResponseErrorCV {\n return { type: \"err\", value };\n}\n\nexport function listCV(values: ClarityValue[]): ListCV {\n return { type: \"list\", value: values };\n}\n\nexport function tupleCV(data: TupleData): TupleCV {\n for (const key in data) {\n if (!isClarityName(key)) {\n throw new Error(`\"${key}\" is not a valid Clarity name`);\n }\n }\n return { type: \"tuple\", value: data };\n}\n\nexport function stringAsciiCV(value: string): StringAsciiCV {\n return { type: \"ascii\", value };\n}\n\nexport function stringUtf8CV(value: string): StringUtf8CV {\n return { type: \"utf8\", value };\n}\n\n// Cl namespace — clean API\n\nexport const Cl: {\n readonly int: (value: IntegerType) => IntCV;\n readonly uint: (value: IntegerType) => UIntCV;\n readonly bool: (v: boolean) => BooleanCV;\n principal(address: string): StandardPrincipalCV | ContractPrincipalCV;\n address(address: string): StandardPrincipalCV | ContractPrincipalCV;\n readonly contractPrincipal: (address: string, contractName: string) => ContractPrincipalCV;\n readonly standardPrincipal: (address: string) => StandardPrincipalCV;\n readonly buffer: (buffer: Uint8Array) => BufferCV;\n readonly bufferFromHex: (hex: string) => BufferCV;\n readonly bufferFromAscii: (ascii: string) => BufferCV;\n readonly bufferFromUtf8: (utf8: string) => BufferCV;\n readonly none: () => NoneCV;\n readonly some: (value: ClarityValue) => SomeCV;\n readonly ok: (value: ClarityValue) => ResponseOkCV;\n readonly error: (value: ClarityValue) => ResponseErrorCV;\n readonly list: (values: ClarityValue[]) => ListCV;\n readonly tuple: (data: TupleData) => TupleCV;\n readonly stringAscii: (value: string) => StringAsciiCV;\n readonly stringUtf8: (value: string) => StringUtf8CV;\n serialize(value: ClarityValue): string;\n readonly deserialize: (bytes: Uint8Array) => ClarityValue;\n} = {\n int: intCV,\n uint: uintCV,\n bool: boolCV,\n principal(address: string): StandardPrincipalCV | ContractPrincipalCV {\n const [addr, name] = address.split(\".\");\n if (!addr) throw new Error(\"Invalid principal address\");\n return name ? contractPrincipalCV(addr, name) : standardPrincipalCV(addr);\n },\n address(address: string): StandardPrincipalCV | ContractPrincipalCV {\n return Cl.principal(address);\n },\n contractPrincipal: contractPrincipalCV,\n standardPrincipal: standardPrincipalCV,\n buffer: bufferCV,\n bufferFromHex: (hex: string): BufferCV => bufferCV(hexToBytes(hex)),\n bufferFromAscii: (ascii: string): BufferCV => bufferCV(asciiToBytes(ascii)),\n bufferFromUtf8: (utf8: string): BufferCV => bufferCV(utf8ToBytes(utf8)),\n none: noneCV,\n some: someCV,\n ok: responseOkCV,\n error: responseErrorCV,\n list: listCV,\n tuple: tupleCV,\n stringAscii: stringAsciiCV,\n stringUtf8: stringUtf8CV,\n serialize(value: ClarityValue): string {\n return bytesToHex(serializeCVBytes(value));\n },\n deserialize: deserializeCVBytes,\n} as const;\n"
|
|
7
7
|
],
|
|
8
|
-
"mappings": "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
|
|
8
|
+
"mappings": "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",
|
|
9
9
|
"debugId": "9E0A409BD71E7ABA64756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/errors/base.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"export class BaseError extends Error {\n override name = \"StacksError\";\n shortMessage: string;\n details?: string;\n\n constructor(shortMessage: string, options?: { cause?: Error; details?: string }) {\n const message = [\n shortMessage,\n options?.details ? `\\n${options.details}` : \"\",\n ].join(\"\");\n\n super(message, { cause: options?.cause });\n this.shortMessage = shortMessage;\n this.details = options?.details;\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n shortMessage: this.shortMessage,\n details: this.details,\n cause: this.cause instanceof Error ? this.cause.message : undefined,\n };\n }\n}\n"
|
|
5
|
+
"export class BaseError extends Error {\n override name = \"StacksError\";\n shortMessage: string;\n details?: string;\n\n constructor(shortMessage: string, options?: { cause?: Error; details?: string }) {\n const message = [\n shortMessage,\n options?.details ? `\\n${options.details}` : \"\",\n ].join(\"\");\n\n super(message, { cause: options?.cause });\n this.shortMessage = shortMessage;\n this.details = options?.details;\n }\n\n toJSON(): { name: string; message: string; shortMessage: string; details: string | undefined; cause: string | undefined } {\n return {\n name: this.name,\n message: this.message,\n shortMessage: this.shortMessage,\n details: this.details,\n cause: this.cause instanceof Error ? this.cause.message : undefined,\n };\n }\n}\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": ";AAAO,MAAM,kBAAkB,MAAM;AAAA,EAC1B,OAAO;AAAA,EAChB;AAAA,EACA;AAAA,EAEA,WAAW,CAAC,cAAsB,SAA+C;AAAA,IAC/E,MAAM,UAAU;AAAA,MACd;AAAA,MACA,SAAS,UAAU;AAAA,EAAK,QAAQ,YAAY;AAAA,IAC9C,EAAE,KAAK,EAAE;AAAA,IAET,MAAM,SAAS,EAAE,OAAO,SAAS,MAAM,CAAC;AAAA,IACxC,KAAK,eAAe;AAAA,IACpB,KAAK,UAAU,SAAS;AAAA;AAAA,EAG1B,MAAM,
|
|
7
|
+
"mappings": ";AAAO,MAAM,kBAAkB,MAAM;AAAA,EAC1B,OAAO;AAAA,EAChB;AAAA,EACA;AAAA,EAEA,WAAW,CAAC,cAAsB,SAA+C;AAAA,IAC/E,MAAM,UAAU;AAAA,MACd;AAAA,MACA,SAAS,UAAU;AAAA,EAAK,QAAQ,YAAY;AAAA,IAC9C,EAAE,KAAK,EAAE;AAAA,IAET,MAAM,SAAS,EAAE,OAAO,SAAS,MAAM,CAAC;AAAA,IACxC,KAAK,eAAe;AAAA,IACpB,KAAK,UAAU,SAAS;AAAA;AAAA,EAG1B,MAAM,GAAoH;AAAA,IACxH,OAAO;AAAA,MACL,MAAM,KAAK;AAAA,MACX,SAAS,KAAK;AAAA,MACd,cAAc,KAAK;AAAA,MACnB,SAAS,KAAK;AAAA,MACd,OAAO,KAAK,iBAAiB,QAAQ,KAAK,MAAM,UAAU;AAAA,IAC5D;AAAA;AAEJ;",
|
|
8
8
|
"debugId": "DEA222C2A831257D64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/utils/address.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import { c32address, c32addressDecode } from \"./c32.ts\";\n\nexport { c32address, c32addressDecode };\n\nexport function validateStacksAddress(address: string): boolean {\n try {\n c32addressDecode(address);\n return true;\n } catch {\n return false;\n }\n}\n\n/** Alias for validateStacksAddress — matches future.md naming. */\nexport const isValidAddress = validateStacksAddress;\n\nexport function parseContractId(contractId: string): [string, string] {\n const [address, name] = contractId.split(\".\");\n if (!address || !name)\n throw new Error(`Invalid contract identifier: ${contractId}`);\n return [address, name];\n}\n\nexport function isClarityName(name: string): boolean {\n const regex = /^[a-zA-Z]([a-zA-Z0-9]|[-_!?+<>=/*])*$|^[-+=/*]$|^[<>]=?$/;\n return regex.test(name) && name.length < 128;\n}\n\n/**\n * Compare two Stacks addresses for equality (case-insensitive, version-aware).\n * Throws if either address is invalid.\n */\nexport function isAddressEqual(a: string, b: string): boolean {\n const [versionA, hashA] = c32addressDecode(a);\n const [versionB, hashB] = c32addressDecode(b);\n return versionA === versionB && hashA.toLowerCase() === hashB.toLowerCase();\n}\n\n/** Extract the version byte from a Stacks address (22, 20, 26, or 21). */\nexport function addressToVersion(address: string): number {\n return c32addressDecode(address)[0];\n}\n\n/**\n * Build a contract address from deployer + contract name.\n * Validates both parts; returns `deployer.contractName`.\n */\nexport function getContractAddress(deployer: string, contractName: string): string {\n if (!validateStacksAddress(deployer)) {\n throw new Error(`Invalid deployer address: ${deployer}`);\n }\n if (!isClarityName(contractName)) {\n throw new Error(`Invalid contract name: ${contractName}`);\n }\n return `${deployer}.${contractName}`;\n}\n"
|
|
5
|
+
"import { c32address, c32addressDecode } from \"./c32.ts\";\n\nexport { c32address, c32addressDecode };\n\nexport function validateStacksAddress(address: string): boolean {\n try {\n c32addressDecode(address);\n return true;\n } catch {\n return false;\n }\n}\n\n/** Alias for validateStacksAddress — matches future.md naming. */\nexport const isValidAddress: (address: string) => boolean = validateStacksAddress;\n\nexport function parseContractId(contractId: string): [string, string] {\n const [address, name] = contractId.split(\".\");\n if (!address || !name)\n throw new Error(`Invalid contract identifier: ${contractId}`);\n return [address, name];\n}\n\nexport function isClarityName(name: string): boolean {\n const regex = /^[a-zA-Z]([a-zA-Z0-9]|[-_!?+<>=/*])*$|^[-+=/*]$|^[<>]=?$/;\n return regex.test(name) && name.length < 128;\n}\n\n/**\n * Compare two Stacks addresses for equality (case-insensitive, version-aware).\n * Throws if either address is invalid.\n */\nexport function isAddressEqual(a: string, b: string): boolean {\n const [versionA, hashA] = c32addressDecode(a);\n const [versionB, hashB] = c32addressDecode(b);\n return versionA === versionB && hashA.toLowerCase() === hashB.toLowerCase();\n}\n\n/** Extract the version byte from a Stacks address (22, 20, 26, or 21). */\nexport function addressToVersion(address: string): number {\n return c32addressDecode(address)[0];\n}\n\n/**\n * Build a contract address from deployer + contract name.\n * Validates both parts; returns `deployer.contractName`.\n */\nexport function getContractAddress(deployer: string, contractName: string): string {\n if (!validateStacksAddress(deployer)) {\n throw new Error(`Invalid deployer address: ${deployer}`);\n }\n if (!isClarityName(contractName)) {\n throw new Error(`Invalid contract name: ${contractName}`);\n }\n return `${deployer}.${contractName}`;\n}\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": ";;;;;AAIO,SAAS,qBAAqB,CAAC,SAA0B;AAAA,EAC9D,IAAI;AAAA,IACF,iBAAiB,OAAO;AAAA,IACxB,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA;AAAA;AAKJ,IAAM,
|
|
7
|
+
"mappings": ";;;;;AAIO,SAAS,qBAAqB,CAAC,SAA0B;AAAA,EAC9D,IAAI;AAAA,IACF,iBAAiB,OAAO;AAAA,IACxB,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA;AAAA;AAKJ,IAAM,iBAA+C;AAErD,SAAS,eAAe,CAAC,YAAsC;AAAA,EACpE,OAAO,SAAS,QAAQ,WAAW,MAAM,GAAG;AAAA,EAC5C,IAAI,CAAC,WAAW,CAAC;AAAA,IACf,MAAM,IAAI,MAAM,gCAAgC,YAAY;AAAA,EAC9D,OAAO,CAAC,SAAS,IAAI;AAAA;AAGhB,SAAS,aAAa,CAAC,MAAuB;AAAA,EACnD,MAAM,QAAQ;AAAA,EACd,OAAO,MAAM,KAAK,IAAI,KAAK,KAAK,SAAS;AAAA;AAOpC,SAAS,cAAc,CAAC,GAAW,GAAoB;AAAA,EAC5D,OAAO,UAAU,SAAS,iBAAiB,CAAC;AAAA,EAC5C,OAAO,UAAU,SAAS,iBAAiB,CAAC;AAAA,EAC5C,OAAO,aAAa,YAAY,MAAM,YAAY,MAAM,MAAM,YAAY;AAAA;AAIrE,SAAS,gBAAgB,CAAC,SAAyB;AAAA,EACxD,OAAO,iBAAiB,OAAO,EAAE;AAAA;AAO5B,SAAS,kBAAkB,CAAC,UAAkB,cAA8B;AAAA,EACjF,IAAI,CAAC,sBAAsB,QAAQ,GAAG;AAAA,IACpC,MAAM,IAAI,MAAM,6BAA6B,UAAU;AAAA,EACzD;AAAA,EACA,IAAI,CAAC,cAAc,YAAY,GAAG;AAAA,IAChC,MAAM,IAAI,MAAM,0BAA0B,cAAc;AAAA,EAC1D;AAAA,EACA,OAAO,GAAG,YAAY;AAAA;",
|
|
8
8
|
"debugId": "899D2CA267B89FE364756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
|
@@ -78,6 +78,13 @@ var AuthFieldType = {
|
|
|
78
78
|
var RECOVERABLE_ECDSA_SIG_LENGTH_BYTES = 65;
|
|
79
79
|
var MEMO_MAX_LENGTH_BYTES = 34;
|
|
80
80
|
var MAX_STRING_LENGTH_BYTES = 128;
|
|
81
|
+
var COINBASE_BYTES_LENGTH = 32;
|
|
82
|
+
var VRF_PROOF_BYTES_LENGTH = 80;
|
|
83
|
+
var MICROBLOCK_HEADER_BYTES_LENGTH = 132;
|
|
84
|
+
var TenureChangeCause = {
|
|
85
|
+
BlockFound: 0,
|
|
86
|
+
Extended: 1
|
|
87
|
+
};
|
|
81
88
|
|
|
82
89
|
// src/transactions/authorization.ts
|
|
83
90
|
import_secp256k1.etc.hmacSha256Sync = (key, ...msgs) => {
|
|
@@ -282,6 +289,43 @@ function serializePayload(payload) {
|
|
|
282
289
|
parts.push(serializeLPString(payload.contractName));
|
|
283
290
|
parts.push(serializeLPStringLong(payload.codeBody));
|
|
284
291
|
break;
|
|
292
|
+
case PayloadType.Coinbase:
|
|
293
|
+
parts.push(hexToBytes(payload.coinbaseBuffer));
|
|
294
|
+
break;
|
|
295
|
+
case PayloadType.CoinbaseToAltRecipient: {
|
|
296
|
+
const cbAlt = payload;
|
|
297
|
+
parts.push(hexToBytes(cbAlt.coinbaseBuffer));
|
|
298
|
+
parts.push(serializeCVBytes(cbAlt.recipient));
|
|
299
|
+
break;
|
|
300
|
+
}
|
|
301
|
+
case PayloadType.PoisonMicroblock: {
|
|
302
|
+
const pm = payload;
|
|
303
|
+
parts.push(hexToBytes(pm.header1));
|
|
304
|
+
parts.push(hexToBytes(pm.header2));
|
|
305
|
+
break;
|
|
306
|
+
}
|
|
307
|
+
case PayloadType.TenureChange: {
|
|
308
|
+
const tc = payload;
|
|
309
|
+
parts.push(hexToBytes(tc.tenureConsensusHash));
|
|
310
|
+
parts.push(hexToBytes(tc.prevTenureConsensusHash));
|
|
311
|
+
parts.push(hexToBytes(tc.burnViewConsensusHash));
|
|
312
|
+
parts.push(hexToBytes(tc.previousTenureEnd));
|
|
313
|
+
parts.push(writeUInt32BE(tc.previousTenureBlocks));
|
|
314
|
+
parts.push(writeUInt8(tc.cause));
|
|
315
|
+
parts.push(hexToBytes(tc.pubkeyHash));
|
|
316
|
+
break;
|
|
317
|
+
}
|
|
318
|
+
case PayloadType.NakamotoCoinbase: {
|
|
319
|
+
const nc = payload;
|
|
320
|
+
parts.push(hexToBytes(nc.coinbaseBuffer));
|
|
321
|
+
if (nc.recipient) {
|
|
322
|
+
parts.push(serializeCVBytes({ type: "some", value: nc.recipient }));
|
|
323
|
+
} else {
|
|
324
|
+
parts.push(serializeCVBytes({ type: "none" }));
|
|
325
|
+
}
|
|
326
|
+
parts.push(hexToBytes(nc.vrfProof));
|
|
327
|
+
break;
|
|
328
|
+
}
|
|
285
329
|
}
|
|
286
330
|
return concatBytes(...parts);
|
|
287
331
|
}
|
|
@@ -563,5 +607,5 @@ function combineMultiSigSignatures(baseTx, signedTxs) {
|
|
|
563
607
|
};
|
|
564
608
|
}
|
|
565
609
|
|
|
566
|
-
//# debugId=
|
|
567
|
-
//# sourceMappingURL=stacks-
|
|
610
|
+
//# debugId=5A8F9D28AE3FE53E64756E2164756E21
|
|
611
|
+
//# sourceMappingURL=stacks-hfem9dck.cjs.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/transactions/multisig.ts", "../src/transactions/authorization.ts", "../src/transactions/types.ts", "../src/transactions/wire/serialize.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import {\n getPublicKey as nobleGetPublicKey,\n sign as nobleSign,\n} from \"@noble/secp256k1\";\nimport { c32address } from \"../utils/c32.ts\";\nimport { bytesToHex, hexToBytes, intToHex, concatBytes } from \"../utils/encoding.ts\";\nimport { hash160 } from \"../utils/hash.ts\";\nimport {\n sigHashPreSign,\n sigHashPostSign,\n intoInitialSighashAuth,\n nextSignature,\n} from \"./authorization.ts\";\nimport { txidFromBytes } from \"../utils/hash.ts\";\nimport { serializeTransaction } from \"./wire/serialize.ts\";\nimport {\n AuthType,\n AddressHashMode,\n PubKeyEncoding,\n type MultiSigSpendingCondition,\n type MultiSigHashMode,\n type TransactionAuthField,\n type StacksTransaction,\n} from \"./types.ts\";\nimport type { StacksChain } from \"../chains/types.ts\";\nimport type { LocalAccount, CustomAccount } from \"../accounts/types.ts\";\n\n// OP codes for redeem script\nconst OP_CHECKMULTISIG = 0xae;\n\n/** Check if hash mode is non-sequential (SIP-027) */\nexport function isNonSequential(hashMode: number): boolean {\n return (hashMode & 0x04) !== 0;\n}\n\n/** Build a Bitcoin-style redeem script for m-of-n multi-sig */\nfunction makeRedeemScript(publicKeys: string[], signaturesRequired: number): Uint8Array {\n const parts: Uint8Array[] = [];\n parts.push(new Uint8Array([0x50 + signaturesRequired])); // OP_n\n for (const pk of publicKeys) {\n const pkBytes = hexToBytes(pk);\n parts.push(new Uint8Array([pkBytes.length])); // length prefix (0x21 for compressed)\n parts.push(pkBytes);\n }\n parts.push(new Uint8Array([0x50 + publicKeys.length])); // OP_m\n parts.push(new Uint8Array([OP_CHECKMULTISIG]));\n return concatBytes(...parts);\n}\n\n/** Derive a multi-sig address from public keys */\nexport function makeMultiSigAddress(\n publicKeys: string[],\n signaturesRequired: number,\n chain?: StacksChain\n): string {\n if (signaturesRequired < 1 || signaturesRequired > publicKeys.length) {\n throw new Error(`signaturesRequired must be between 1 and ${publicKeys.length}`);\n }\n const redeemScript = makeRedeemScript(publicKeys, signaturesRequired);\n const signer = hash160(redeemScript);\n const version = chain?.addressVersion?.multiSig ?? 20; // mainnet default\n return c32address(version, bytesToHex(signer));\n}\n\n/** Create an empty multi-sig spending condition */\nexport function createMultiSigSpendingCondition(\n publicKeys: string[],\n signaturesRequired: number,\n nonce: bigint,\n fee: bigint,\n hashMode: MultiSigHashMode = AddressHashMode.P2SH\n): MultiSigSpendingCondition {\n const redeemScript = makeRedeemScript(publicKeys, signaturesRequired);\n const signer = bytesToHex(hash160(redeemScript));\n\n return {\n hashMode,\n signer,\n nonce,\n fee,\n fields: [],\n signaturesRequired,\n };\n}\n\n/** Compute the initial sighash for a transaction (same as signBegin) */\nfunction initialSigHash(tx: StacksTransaction): string {\n const cleared: StacksTransaction = {\n ...tx,\n auth: intoInitialSighashAuth(tx.auth),\n };\n return txidFromBytes(serializeTransaction(cleared));\n}\n\n/** Compute the presign-sighash used by all non-sequential signers */\nfunction nonSequentialPreSignHash(tx: StacksTransaction): string {\n const condition = tx.auth.spendingCondition as MultiSigSpendingCondition;\n const initHash = initialSigHash(tx);\n return sigHashPreSign(initHash, AuthType.Standard, condition.fee, condition.nonce);\n}\n\n/** Replay sighash through existing auth fields of a multi-sig tx */\nexport function replayMultiSigSigHash(tx: StacksTransaction): string {\n const condition = tx.auth.spendingCondition as MultiSigSpendingCondition;\n\n // Non-sequential: all signers sign the same presign-sighash, no field chaining\n if (isNonSequential(condition.hashMode)) {\n const preSign = nonSequentialPreSignHash(tx);\n // Chain through all fields to get the final sighash\n let curSigHash = preSign;\n for (const field of condition.fields) {\n curSigHash = sigHashPostSign(curSigHash, field.pubKeyEncoding, field.data);\n }\n return curSigHash;\n }\n\n // Sequential: chain through all fields\n let curSigHash = initialSigHash(tx);\n for (const field of condition.fields) {\n const preSign = sigHashPreSign(curSigHash, AuthType.Standard, condition.fee, condition.nonce);\n curSigHash = sigHashPostSign(preSign, field.pubKeyEncoding, field.data);\n }\n return curSigHash;\n}\n\n/** Sign one position of a multi-sig transaction with a private key */\nexport function signMultiSig(\n tx: StacksTransaction,\n privateKey: string,\n publicKeys: string[]\n): StacksTransaction {\n const keyBytes = hexToBytes(privateKey).slice(0, 32);\n const signerPubKey = bytesToHex(nobleGetPublicKey(keyBytes, true));\n\n const signerIndex = publicKeys.findIndex((pk) => pk === signerPubKey);\n if (signerIndex === -1) {\n throw new Error(\"Private key does not correspond to any signer in the multi-sig\");\n }\n\n const condition = { ...(tx.auth.spendingCondition as MultiSigSpendingCondition) };\n\n // Non-sequential: all signers sign the same presign-sighash independently\n if (isNonSequential(condition.hashMode)) {\n return signNonSequential(tx, condition, privateKey);\n }\n\n // Sequential: existing P2SH behavior\n return signSequential(tx, condition, privateKey, publicKeys, signerIndex);\n}\n\n/** Non-sequential signing: compute presign-sighash from initial tx, sign, append */\nfunction signNonSequential(\n tx: StacksTransaction,\n condition: MultiSigSpendingCondition,\n privateKey: string\n): StacksTransaction {\n const fields = [...condition.fields];\n const preSignHash = nonSequentialPreSignHash(tx);\n\n // Sign the presign-sighash directly\n const keyBytes = hexToBytes(privateKey).slice(0, 32);\n const sig = nobleSign(preSignHash, keyBytes, { lowS: true });\n const recoveryIdHex = intToHex(sig.recovery, 1);\n const nextSig = recoveryIdHex + sig.toCompactHex();\n\n fields.push({\n type: \"signature\",\n pubKeyEncoding: PubKeyEncoding.Compressed,\n data: nextSig,\n });\n\n const newCondition: MultiSigSpendingCondition = { ...condition, fields };\n const sigCount = fields.filter((f) => f.type === \"signature\").length;\n\n // Auto-finalize: non-sequential needs no pubkey gap-filling\n if (sigCount >= condition.signaturesRequired) {\n return {\n ...tx,\n auth: { ...tx.auth, spendingCondition: newCondition },\n };\n }\n\n return {\n ...tx,\n auth: { ...tx.auth, spendingCondition: newCondition },\n };\n}\n\n/** Sequential signing: existing P2SH behavior */\nfunction signSequential(\n tx: StacksTransaction,\n condition: MultiSigSpendingCondition,\n privateKey: string,\n publicKeys: string[],\n signerIndex: number\n): StacksTransaction {\n const fields = [...condition.fields];\n\n // Replay sighash through existing fields\n let curSigHash = initialSigHash(tx);\n for (const field of fields) {\n const preSign = sigHashPreSign(curSigHash, AuthType.Standard, condition.fee, condition.nonce);\n curSigHash = sigHashPostSign(preSign, field.pubKeyEncoding, field.data);\n }\n\n // Fill intervening positions with pubkey fields\n for (let i = fields.length; i < signerIndex; i++) {\n const pubKeyField: TransactionAuthField = {\n type: \"publicKey\",\n pubKeyEncoding: PubKeyEncoding.Compressed,\n data: publicKeys[i]!,\n };\n fields.push(pubKeyField);\n const preSign = sigHashPreSign(curSigHash, AuthType.Standard, condition.fee, condition.nonce);\n curSigHash = sigHashPostSign(preSign, pubKeyField.pubKeyEncoding, pubKeyField.data);\n }\n\n // Sign at signerIndex\n const { nextSig, nextSigHash } = nextSignature(\n curSigHash,\n AuthType.Standard,\n condition.fee,\n condition.nonce,\n privateKey\n );\n\n fields.push({\n type: \"signature\",\n pubKeyEncoding: PubKeyEncoding.Compressed,\n data: nextSig,\n });\n curSigHash = nextSigHash;\n\n const newCondition: MultiSigSpendingCondition = { ...condition, fields };\n\n // Count signatures so far\n const sigCount = fields.filter((f) => f.type === \"signature\").length;\n let finalCondition = newCondition;\n\n // Auto-finalize if enough signatures collected\n if (sigCount >= condition.signaturesRequired) {\n finalCondition = finalizeMultiSigCondition(newCondition, publicKeys, curSigHash);\n }\n\n return {\n ...tx,\n auth: {\n ...tx.auth,\n spendingCondition: finalCondition,\n },\n };\n}\n\n/** Sign one position of a multi-sig transaction with an account */\nexport async function signMultiSigWithAccount(\n tx: StacksTransaction,\n account: LocalAccount | CustomAccount,\n publicKeys: string[]\n): Promise<StacksTransaction> {\n const signerPubKey = account.publicKey;\n\n const signerIndex = publicKeys.findIndex((pk) => pk === signerPubKey);\n if (signerIndex === -1) {\n throw new Error(\"Account does not correspond to any signer in the multi-sig\");\n }\n\n const condition = { ...(tx.auth.spendingCondition as MultiSigSpendingCondition) };\n\n // Non-sequential: all signers sign the same presign-sighash independently\n if (isNonSequential(condition.hashMode)) {\n return signNonSequentialWithAccount(tx, condition, account);\n }\n\n // Sequential: existing behavior\n return signSequentialWithAccount(tx, condition, account, publicKeys, signerIndex);\n}\n\n/** Non-sequential signing with account */\nasync function signNonSequentialWithAccount(\n tx: StacksTransaction,\n condition: MultiSigSpendingCondition,\n account: LocalAccount | CustomAccount\n): Promise<StacksTransaction> {\n const fields = [...condition.fields];\n const preSignHash = nonSequentialPreSignHash(tx);\n\n const sigBytes = await account.sign(hexToBytes(preSignHash));\n const nextSig = bytesToHex(sigBytes);\n\n fields.push({\n type: \"signature\",\n pubKeyEncoding: PubKeyEncoding.Compressed,\n data: nextSig,\n });\n\n const newCondition: MultiSigSpendingCondition = { ...condition, fields };\n\n return {\n ...tx,\n auth: { ...tx.auth, spendingCondition: newCondition },\n };\n}\n\n/** Sequential signing with account */\nasync function signSequentialWithAccount(\n tx: StacksTransaction,\n condition: MultiSigSpendingCondition,\n account: LocalAccount | CustomAccount,\n publicKeys: string[],\n signerIndex: number\n): Promise<StacksTransaction> {\n const fields = [...condition.fields];\n\n // Replay sighash through existing fields\n let curSigHash = initialSigHash(tx);\n for (const field of fields) {\n const preSign = sigHashPreSign(curSigHash, AuthType.Standard, condition.fee, condition.nonce);\n curSigHash = sigHashPostSign(preSign, field.pubKeyEncoding, field.data);\n }\n\n // Fill intervening positions with pubkey fields\n for (let i = fields.length; i < signerIndex; i++) {\n const pubKeyField: TransactionAuthField = {\n type: \"publicKey\",\n pubKeyEncoding: PubKeyEncoding.Compressed,\n data: publicKeys[i]!,\n };\n fields.push(pubKeyField);\n const preSign = sigHashPreSign(curSigHash, AuthType.Standard, condition.fee, condition.nonce);\n curSigHash = sigHashPostSign(preSign, pubKeyField.pubKeyEncoding, pubKeyField.data);\n }\n\n // Sign at signerIndex\n const preSign = sigHashPreSign(curSigHash, AuthType.Standard, condition.fee, condition.nonce);\n const sigBytes = await account.sign(hexToBytes(preSign));\n const nextSig = bytesToHex(sigBytes);\n const nextSigHash = sigHashPostSign(preSign, PubKeyEncoding.Compressed, nextSig);\n\n fields.push({\n type: \"signature\",\n pubKeyEncoding: PubKeyEncoding.Compressed,\n data: nextSig,\n });\n curSigHash = nextSigHash;\n\n const newCondition: MultiSigSpendingCondition = { ...condition, fields };\n\n // Count signatures so far\n const sigCount = fields.filter((f) => f.type === \"signature\").length;\n let finalCondition = newCondition;\n\n // Auto-finalize if enough signatures collected\n if (sigCount >= condition.signaturesRequired) {\n finalCondition = finalizeMultiSigCondition(newCondition, publicKeys, curSigHash);\n }\n\n return {\n ...tx,\n auth: {\n ...tx.auth,\n spendingCondition: finalCondition,\n },\n };\n}\n\n/** Fill remaining slots with pubkey fields after all signatures are collected */\nexport function finalizeMultiSig(\n tx: StacksTransaction,\n publicKeys: string[]\n): StacksTransaction {\n const condition = tx.auth.spendingCondition as MultiSigSpendingCondition;\n\n // Non-sequential: no pubkey gap-filling needed\n if (isNonSequential(condition.hashMode)) {\n return tx;\n }\n\n const curSigHash = replayMultiSigSigHash(tx);\n const finalCondition = finalizeMultiSigCondition(condition, publicKeys, curSigHash);\n\n return {\n ...tx,\n auth: {\n ...tx.auth,\n spendingCondition: finalCondition,\n },\n };\n}\n\n/** Internal: finalize remaining pubkey slots (sequential only) */\nfunction finalizeMultiSigCondition(\n condition: MultiSigSpendingCondition,\n publicKeys: string[],\n curSigHash: string\n): MultiSigSpendingCondition {\n const fields = [...condition.fields];\n let sigHash = curSigHash;\n\n // Fill remaining positions\n for (let i = fields.length; i < publicKeys.length; i++) {\n const pubKeyField: TransactionAuthField = {\n type: \"publicKey\",\n pubKeyEncoding: PubKeyEncoding.Compressed,\n data: publicKeys[i]!,\n };\n fields.push(pubKeyField);\n const preSign = sigHashPreSign(sigHash, AuthType.Standard, condition.fee, condition.nonce);\n sigHash = sigHashPostSign(preSign, pubKeyField.pubKeyEncoding, pubKeyField.data);\n }\n\n return { ...condition, fields };\n}\n\n/** Combine independently-signed non-sequential multi-sig transactions */\nexport function combineMultiSigSignatures(\n baseTx: StacksTransaction,\n signedTxs: StacksTransaction[]\n): StacksTransaction {\n const condition = baseTx.auth.spendingCondition as MultiSigSpendingCondition;\n\n if (!isNonSequential(condition.hashMode)) {\n throw new Error(\"combineMultiSigSignatures only works with non-sequential hash modes (SIP-027)\");\n }\n\n // Collect all signature fields from each signed tx\n const seenSigs = new Set<string>();\n const signatures: TransactionAuthField[] = [];\n\n for (const stx of signedTxs) {\n const stxCondition = stx.auth.spendingCondition as MultiSigSpendingCondition;\n for (const field of stxCondition.fields) {\n if (field.type === \"signature\" && !seenSigs.has(field.data)) {\n seenSigs.add(field.data);\n signatures.push(field);\n }\n }\n }\n\n if (signatures.length === 0) {\n throw new Error(\"No signatures found in the provided transactions\");\n }\n\n const newCondition: MultiSigSpendingCondition = {\n ...condition,\n fields: signatures,\n };\n\n return {\n ...baseTx,\n auth: { ...baseTx.auth, spendingCondition: newCondition },\n };\n}\n",
|
|
6
|
+
"import {\n getPublicKey as nobleGetPublicKey,\n sign,\n etc,\n} from \"@noble/secp256k1\";\nimport { hmac } from \"@noble/hashes/hmac.js\";\nimport { sha256 } from \"@noble/hashes/sha2.js\";\nimport {\n bytesToHex,\n hexToBytes,\n intToBytes,\n intToHex,\n concatBytes,\n} from \"../utils/encoding.ts\";\nimport { hashP2PKH, txidFromBytes } from \"../utils/hash.ts\";\nimport {\n AuthType,\n AddressHashMode,\n PubKeyEncoding,\n RECOVERABLE_ECDSA_SIG_LENGTH_BYTES,\n type SingleSigSpendingCondition,\n type SpendingCondition,\n type Authorization,\n type StandardAuthorization,\n type SponsoredAuthorization,\n} from \"./types.ts\";\n\n// Ensure sync signing is available\netc.hmacSha256Sync = (key: Uint8Array, ...msgs: Uint8Array[]) => {\n const h = hmac.create(sha256, key);\n msgs.forEach((msg) => h.update(msg));\n return h.digest();\n};\n\nconst EMPTY_SIG = bytesToHex(new Uint8Array(RECOVERABLE_ECDSA_SIG_LENGTH_BYTES));\n\nexport function createSingleSigSpendingCondition(\n publicKey: string,\n nonce: bigint,\n fee: bigint\n): SingleSigSpendingCondition {\n const pubKeyBytes = hexToBytes(publicKey);\n const signer = hashP2PKH(pubKeyBytes);\n const isCompressed = pubKeyBytes.length === 33;\n\n return {\n hashMode: AddressHashMode.P2PKH,\n signer,\n nonce,\n fee,\n keyEncoding: isCompressed ? PubKeyEncoding.Compressed : PubKeyEncoding.Uncompressed,\n signature: EMPTY_SIG,\n };\n}\n\nexport function createStandardAuth(\n spendingCondition: SpendingCondition\n): StandardAuthorization {\n return { authType: AuthType.Standard, spendingCondition };\n}\n\nexport function createSponsoredAuth(\n spendingCondition: SpendingCondition,\n sponsorSpendingCondition?: SpendingCondition\n): SponsoredAuthorization {\n return {\n authType: AuthType.Sponsored,\n spendingCondition,\n sponsorSpendingCondition: sponsorSpendingCondition ?? createSingleSigSpendingCondition(\n \"0\".repeat(66),\n 0n,\n 0n\n ),\n };\n}\n\nfunction clearCondition(condition: SpendingCondition): SpendingCondition {\n if (\"signature\" in condition) {\n return {\n ...condition,\n nonce: 0n,\n fee: 0n,\n signature: EMPTY_SIG,\n };\n }\n return {\n ...condition,\n nonce: 0n,\n fee: 0n,\n fields: [],\n };\n}\n\nexport function intoInitialSighashAuth(auth: Authorization): Authorization {\n if (auth.authType === AuthType.Standard) {\n return createStandardAuth(clearCondition(auth.spendingCondition));\n }\n return createSponsoredAuth(\n clearCondition(auth.spendingCondition),\n clearCondition(createSingleSigSpendingCondition(\"0\".repeat(66), 0n, 0n))\n );\n}\n\n/** Compute pre-sign sighash = sha512/256(prevSigHash + authType + fee + nonce) */\nexport function sigHashPreSign(\n curSigHash: string,\n authType: number,\n fee: bigint,\n nonce: bigint\n): string {\n const data = concatBytes(\n hexToBytes(curSigHash),\n new Uint8Array([authType]),\n intToBytes(fee, 8),\n intToBytes(nonce, 8)\n );\n return txidFromBytes(data);\n}\n\n/** Compute post-sign sighash = sha512/256(preSigHash + pubKeyEncoding + signature) */\nexport function sigHashPostSign(\n curSigHash: string,\n pubKeyEncoding: number,\n signature: string\n): string {\n const data = concatBytes(\n hexToBytes(curSigHash),\n new Uint8Array([pubKeyEncoding]),\n hexToBytes(signature)\n );\n return txidFromBytes(data);\n}\n\n/** Sign with private key and return VRS signature (recoveryId + r + s) */\nfunction signWithKey(privateKey: string, messageHash: string): string {\n const keyBytes = hexToBytes(privateKey).slice(0, 32);\n const sig = sign(messageHash, keyBytes, { lowS: true });\n const recoveryIdHex = intToHex(sig.recovery, 1);\n return recoveryIdHex + sig.toCompactHex();\n}\n\nexport function nextSignature(\n curSigHash: string,\n authType: number,\n fee: bigint,\n nonce: bigint,\n privateKey: string\n): { nextSig: string; nextSigHash: string } {\n const sigHashPre = sigHashPreSign(curSigHash, authType, fee, nonce);\n\n const keyBytes = hexToBytes(privateKey).slice(0, 32);\n const pubKey = nobleGetPublicKey(keyBytes, true);\n const isCompressed = pubKey.length === 33;\n const pubKeyEncoding = isCompressed\n ? PubKeyEncoding.Compressed\n : PubKeyEncoding.Uncompressed;\n\n const nextSig = signWithKey(privateKey, sigHashPre);\n const nextSigHash = sigHashPostSign(sigHashPre, pubKeyEncoding, nextSig);\n\n return { nextSig, nextSigHash };\n}\n",
|
|
7
|
+
"import type { ClarityValue } from \"../clarity/types.ts\";\n\n// Auth types\nexport const AuthType = {\n Standard: 0x04,\n Sponsored: 0x05,\n} as const;\nexport type AuthType = (typeof AuthType)[keyof typeof AuthType];\n\n// Payload types\nexport const PayloadType = {\n TokenTransfer: 0x00,\n SmartContract: 0x01,\n ContractCall: 0x02,\n PoisonMicroblock: 0x03,\n Coinbase: 0x04,\n CoinbaseToAltRecipient: 0x05,\n VersionedSmartContract: 0x06,\n TenureChange: 0x07,\n NakamotoCoinbase: 0x08,\n} as const;\nexport type PayloadType = (typeof PayloadType)[keyof typeof PayloadType];\n\n// Clarity version\nexport const ClarityVersion = {\n Clarity1: 1,\n Clarity2: 2,\n Clarity3: 3,\n} as const;\nexport type ClarityVersion = (typeof ClarityVersion)[keyof typeof ClarityVersion];\n\n// Anchor mode (deprecated post-Nakamoto, but needed for wire format)\nexport const AnchorMode = {\n OnChainOnly: 0x01,\n OffChainOnly: 0x02,\n Any: 0x03,\n} as const;\nexport type AnchorMode = (typeof AnchorMode)[keyof typeof AnchorMode];\n\n// Post condition mode\nexport const PostConditionModeWire = {\n Allow: 0x01,\n Deny: 0x02,\n} as const;\nexport type PostConditionModeWire =\n (typeof PostConditionModeWire)[keyof typeof PostConditionModeWire];\n\n// Address hash modes\nexport const AddressHashMode = {\n P2PKH: 0x00,\n P2SH: 0x01,\n P2WPKH: 0x02,\n P2WSH: 0x03,\n P2SH_NonSequential: 0x05, // SIP-027\n P2WSH_P2SH_NonSequential: 0x07, // SIP-027\n} as const;\nexport type AddressHashMode = (typeof AddressHashMode)[keyof typeof AddressHashMode];\n\n// Pub key encoding\nexport const PubKeyEncoding = {\n Compressed: 0x00,\n Uncompressed: 0x01,\n} as const;\nexport type PubKeyEncoding = (typeof PubKeyEncoding)[keyof typeof PubKeyEncoding];\n\n// Fungible condition codes (wire format)\nexport const FungibleConditionCode = {\n Equal: 0x01,\n Greater: 0x02,\n GreaterEqual: 0x03,\n Less: 0x04,\n LessEqual: 0x05,\n} as const;\n\n// Non-fungible condition codes (wire format)\nexport const NonFungibleConditionCode = {\n Sends: 0x10,\n DoesNotSend: 0x11,\n} as const;\n\n// Post condition principal types\nexport const PostConditionPrincipalId = {\n Origin: 0x01,\n Standard: 0x02,\n Contract: 0x03,\n} as const;\n\n// Post condition asset types\nexport const AssetType = {\n STX: 0x00,\n Fungible: 0x01,\n NonFungible: 0x02,\n} as const;\n\n// Auth field types\nexport const AuthFieldType = {\n PublicKeyCompressed: 0x00,\n PublicKeyUncompressed: 0x01,\n SignatureCompressed: 0x02,\n SignatureUncompressed: 0x03,\n} as const;\n\nexport const RECOVERABLE_ECDSA_SIG_LENGTH_BYTES = 65;\nexport const MEMO_MAX_LENGTH_BYTES = 34;\nexport const MAX_STRING_LENGTH_BYTES = 128;\nexport const COINBASE_BYTES_LENGTH = 32;\nexport const VRF_PROOF_BYTES_LENGTH = 80;\nexport const MICROBLOCK_HEADER_BYTES_LENGTH = 132; // 1 + 2 + 32 + 32 + 65\n\n// Tenure change cause\nexport const TenureChangeCause = {\n BlockFound: 0x00,\n Extended: 0x01,\n} as const;\nexport type TenureChangeCause = (typeof TenureChangeCause)[keyof typeof TenureChangeCause];\n\n// Token transfer payload\nexport type TokenTransferPayload = {\n payloadType: typeof PayloadType.TokenTransfer;\n recipient: ClarityValue; // PrincipalCV\n amount: bigint;\n memo: string;\n};\n\n// Contract call payload\nexport type ContractCallPayload = {\n payloadType: typeof PayloadType.ContractCall;\n contractAddress: string;\n contractName: string;\n functionName: string;\n functionArgs: ClarityValue[];\n};\n\n// Smart contract deploy payload\nexport type SmartContractPayload = {\n payloadType: typeof PayloadType.SmartContract | typeof PayloadType.VersionedSmartContract;\n clarityVersion?: ClarityVersion;\n contractName: string;\n codeBody: string;\n};\n\n// Coinbase payload (appears in every pre-Nakamoto block)\nexport type CoinbasePayload = {\n payloadType: typeof PayloadType.Coinbase;\n coinbaseBuffer: string; // 32 bytes hex\n};\n\n// Coinbase to alt recipient payload\nexport type CoinbaseToAltRecipientPayload = {\n payloadType: typeof PayloadType.CoinbaseToAltRecipient;\n coinbaseBuffer: string; // 32 bytes hex\n recipient: ClarityValue; // PrincipalCV\n};\n\n// Poison microblock payload\nexport type PoisonMicroblockPayload = {\n payloadType: typeof PayloadType.PoisonMicroblock;\n header1: string; // 132 bytes hex (raw microblock header)\n header2: string; // 132 bytes hex (raw microblock header)\n};\n\n// Tenure change payload (Nakamoto)\nexport type TenureChangePayload = {\n payloadType: typeof PayloadType.TenureChange;\n tenureConsensusHash: string; // 20 bytes hex\n prevTenureConsensusHash: string; // 20 bytes hex\n burnViewConsensusHash: string; // 20 bytes hex\n previousTenureEnd: string; // 32 bytes hex\n previousTenureBlocks: number; // u32\n cause: TenureChangeCause;\n pubkeyHash: string; // 20 bytes hex\n};\n\n// Nakamoto coinbase payload\nexport type NakamotoCoinbasePayload = {\n payloadType: typeof PayloadType.NakamotoCoinbase;\n coinbaseBuffer: string; // 32 bytes hex\n recipient: ClarityValue | null; // Optional PrincipalCV\n vrfProof: string; // 80 bytes hex\n};\n\nexport type TransactionPayload =\n | TokenTransferPayload\n | ContractCallPayload\n | SmartContractPayload\n | CoinbasePayload\n | CoinbaseToAltRecipientPayload\n | PoisonMicroblockPayload\n | TenureChangePayload\n | NakamotoCoinbasePayload;\n\n// Spending condition\nexport type SingleSigSpendingCondition = {\n hashMode: typeof AddressHashMode.P2PKH | typeof AddressHashMode.P2WPKH;\n signer: string; // hash160 hex\n nonce: bigint;\n fee: bigint;\n keyEncoding: PubKeyEncoding;\n signature: string; // 65-byte recoverable sig hex\n};\n\nexport type TransactionAuthField = {\n pubKeyEncoding: PubKeyEncoding;\n type: \"publicKey\" | \"signature\";\n data: string; // hex\n};\n\nexport type MultiSigHashMode =\n | typeof AddressHashMode.P2SH\n | typeof AddressHashMode.P2WSH\n | typeof AddressHashMode.P2SH_NonSequential\n | typeof AddressHashMode.P2WSH_P2SH_NonSequential;\n\nexport type MultiSigSpendingCondition = {\n hashMode: MultiSigHashMode;\n signer: string;\n nonce: bigint;\n fee: bigint;\n fields: TransactionAuthField[];\n signaturesRequired: number;\n};\n\nexport type SpendingCondition = SingleSigSpendingCondition | MultiSigSpendingCondition;\n\nexport type StandardAuthorization = {\n authType: typeof AuthType.Standard;\n spendingCondition: SpendingCondition;\n};\n\nexport type SponsoredAuthorization = {\n authType: typeof AuthType.Sponsored;\n spendingCondition: SpendingCondition;\n sponsorSpendingCondition: SpendingCondition;\n};\n\nexport type Authorization = StandardAuthorization | SponsoredAuthorization;\n\n// Full transaction\nexport type StacksTransaction = {\n version: number;\n chainId: number;\n auth: Authorization;\n anchorMode: AnchorMode;\n postConditionMode: PostConditionModeWire;\n postConditions: PostConditionWire[];\n payload: TransactionPayload;\n};\n\n// Wire post condition types\nexport type PostConditionWire = StxPostConditionWire | FtPostConditionWire | NftPostConditionWire;\n\nexport type StxPostConditionWire = {\n type: \"stx\";\n principal: PostConditionPrincipalWire;\n conditionCode: number;\n amount: bigint;\n};\n\nexport type FtPostConditionWire = {\n type: \"ft\";\n principal: PostConditionPrincipalWire;\n asset: AssetInfoWire;\n conditionCode: number;\n amount: bigint;\n};\n\nexport type NftPostConditionWire = {\n type: \"nft\";\n principal: PostConditionPrincipalWire;\n asset: AssetInfoWire;\n conditionCode: number;\n assetId: ClarityValue;\n};\n\nexport type PostConditionPrincipalWire =\n | { type: \"origin\" }\n | { type: \"standard\"; address: string }\n | { type: \"contract\"; address: string; contractName: string };\n\nexport type AssetInfoWire = {\n address: string;\n contractName: string;\n assetName: string;\n};\n",
|
|
8
|
+
"import {\n bytesToHex,\n hexToBytes,\n concatBytes,\n intToBytes,\n intToHex,\n utf8ToBytes,\n asciiToBytes,\n writeUInt32BE,\n writeUInt16BE,\n writeUInt8,\n} from \"../../utils/encoding.ts\";\nimport { c32addressDecode } from \"../../utils/c32.ts\";\nimport { serializeCVBytes } from \"../../clarity/serialize.ts\";\nimport {\n AuthType,\n PayloadType,\n PostConditionPrincipalId,\n AssetType,\n RECOVERABLE_ECDSA_SIG_LENGTH_BYTES,\n MEMO_MAX_LENGTH_BYTES,\n type StacksTransaction,\n type Authorization,\n type SpendingCondition,\n type SingleSigSpendingCondition,\n type MultiSigSpendingCondition,\n type TransactionPayload,\n type PostConditionWire,\n type PostConditionPrincipalWire,\n type AssetInfoWire,\n type TransactionAuthField,\n type AuthFieldType,\n type CoinbasePayload,\n type CoinbaseToAltRecipientPayload,\n type PoisonMicroblockPayload,\n type TenureChangePayload as TenureChangePayloadType,\n type NakamotoCoinbasePayload,\n} from \"../types.ts\";\n\n// Address serialization: version (1 byte) + hash160 (20 bytes)\nfunction serializeAddress(c32Address: string): Uint8Array {\n const [version, hash160] = c32addressDecode(c32Address);\n return concatBytes(new Uint8Array([version]), hexToBytes(hash160));\n}\n\n// LP string: length prefix (n bytes) + content bytes\nfunction serializeLPString(str: string, prefixBytes = 1): Uint8Array {\n const content = utf8ToBytes(str);\n const prefix = hexToBytes(intToHex(content.byteLength, prefixBytes));\n return concatBytes(prefix, content);\n}\n\n// LP string for code body (4-byte prefix)\nfunction serializeLPStringLong(str: string): Uint8Array {\n return serializeLPString(str, 4);\n}\n\n// Memo: padded to MEMO_MAX_LENGTH_BYTES\nfunction serializeMemo(memo: string): Uint8Array {\n const content = asciiToBytes(memo);\n const padded = new Uint8Array(MEMO_MAX_LENGTH_BYTES);\n padded.set(content.slice(0, MEMO_MAX_LENGTH_BYTES));\n return concatBytes(writeUInt8(content.length), padded);\n}\n\nfunction serializeSpendingCondition(condition: SpendingCondition): Uint8Array {\n const parts: Uint8Array[] = [\n writeUInt8(condition.hashMode),\n hexToBytes(condition.signer), // 20 bytes\n intToBytes(condition.nonce, 8),\n intToBytes(condition.fee, 8),\n ];\n\n if (\"signature\" in condition) {\n // Single sig\n const sc = condition as SingleSigSpendingCondition;\n parts.push(writeUInt8(sc.keyEncoding));\n parts.push(hexToBytes(sc.signature)); // 65 bytes\n } else {\n // Multi sig\n const mc = condition as MultiSigSpendingCondition;\n // Fields as LP list\n parts.push(writeUInt32BE(mc.fields.length));\n for (const field of mc.fields) {\n parts.push(serializeAuthField(field));\n }\n parts.push(writeUInt16BE(mc.signaturesRequired));\n }\n\n return concatBytes(...parts);\n}\n\nfunction serializeAuthField(field: TransactionAuthField): Uint8Array {\n if (field.type === \"publicKey\") {\n const typeId = field.pubKeyEncoding === 0x00 ? 0x00 : 0x01;\n return concatBytes(writeUInt8(typeId), hexToBytes(field.data));\n } else {\n const typeId = field.pubKeyEncoding === 0x00 ? 0x02 : 0x03;\n return concatBytes(writeUInt8(typeId), hexToBytes(field.data));\n }\n}\n\nfunction serializeAuthorization(auth: Authorization): Uint8Array {\n const parts: Uint8Array[] = [writeUInt8(auth.authType)];\n parts.push(serializeSpendingCondition(auth.spendingCondition));\n if (auth.authType === AuthType.Sponsored) {\n parts.push(serializeSpendingCondition(auth.sponsorSpendingCondition));\n }\n return concatBytes(...parts);\n}\n\nfunction serializePrincipal(principal: PostConditionPrincipalWire): Uint8Array {\n switch (principal.type) {\n case \"origin\":\n return writeUInt8(PostConditionPrincipalId.Origin);\n case \"standard\":\n return concatBytes(\n writeUInt8(PostConditionPrincipalId.Standard),\n serializeAddress(principal.address)\n );\n case \"contract\":\n return concatBytes(\n writeUInt8(PostConditionPrincipalId.Contract),\n serializeAddress(principal.address),\n serializeLPString(principal.contractName)\n );\n }\n}\n\nfunction serializeAssetInfo(asset: AssetInfoWire): Uint8Array {\n return concatBytes(\n serializeAddress(asset.address),\n serializeLPString(asset.contractName),\n serializeLPString(asset.assetName)\n );\n}\n\nfunction serializePostCondition(pc: PostConditionWire): Uint8Array {\n const parts: Uint8Array[] = [serializePrincipal(pc.principal)];\n\n switch (pc.type) {\n case \"stx\":\n parts.push(writeUInt8(AssetType.STX));\n parts.push(writeUInt8(pc.conditionCode));\n parts.push(intToBytes(pc.amount, 8));\n break;\n case \"ft\":\n parts.push(writeUInt8(AssetType.Fungible));\n parts.push(serializeAssetInfo(pc.asset));\n parts.push(writeUInt8(pc.conditionCode));\n parts.push(intToBytes(pc.amount, 8));\n break;\n case \"nft\":\n parts.push(writeUInt8(AssetType.NonFungible));\n parts.push(serializeAssetInfo(pc.asset));\n parts.push(serializeCVBytes(pc.assetId));\n parts.push(writeUInt8(pc.conditionCode));\n break;\n }\n\n return concatBytes(...parts);\n}\n\nfunction serializePostConditions(pcs: PostConditionWire[]): Uint8Array {\n const parts: Uint8Array[] = [writeUInt32BE(pcs.length)];\n for (const pc of pcs) {\n parts.push(serializePostCondition(pc));\n }\n return concatBytes(...parts);\n}\n\nexport function serializePayload(payload: TransactionPayload): Uint8Array {\n const parts: Uint8Array[] = [writeUInt8(payload.payloadType)];\n\n switch (payload.payloadType) {\n case PayloadType.TokenTransfer:\n parts.push(serializeCVBytes(payload.recipient));\n parts.push(intToBytes(payload.amount, 8));\n parts.push(serializeMemo(payload.memo));\n break;\n\n case PayloadType.ContractCall:\n parts.push(serializeAddress(payload.contractAddress));\n parts.push(serializeLPString(payload.contractName));\n parts.push(serializeLPString(payload.functionName));\n parts.push(writeUInt32BE(payload.functionArgs.length));\n for (const arg of payload.functionArgs) {\n parts.push(serializeCVBytes(arg));\n }\n break;\n\n case PayloadType.SmartContract:\n parts.push(serializeLPString(payload.contractName));\n parts.push(serializeLPStringLong(payload.codeBody));\n break;\n\n case PayloadType.VersionedSmartContract:\n parts.push(writeUInt8(payload.clarityVersion ?? 2));\n parts.push(serializeLPString(payload.contractName));\n parts.push(serializeLPStringLong(payload.codeBody));\n break;\n\n case PayloadType.Coinbase:\n parts.push(hexToBytes((payload as CoinbasePayload).coinbaseBuffer));\n break;\n\n case PayloadType.CoinbaseToAltRecipient: {\n const cbAlt = payload as CoinbaseToAltRecipientPayload;\n parts.push(hexToBytes(cbAlt.coinbaseBuffer));\n parts.push(serializeCVBytes(cbAlt.recipient));\n break;\n }\n\n case PayloadType.PoisonMicroblock: {\n const pm = payload as PoisonMicroblockPayload;\n parts.push(hexToBytes(pm.header1));\n parts.push(hexToBytes(pm.header2));\n break;\n }\n\n case PayloadType.TenureChange: {\n const tc = payload as TenureChangePayloadType;\n parts.push(hexToBytes(tc.tenureConsensusHash));\n parts.push(hexToBytes(tc.prevTenureConsensusHash));\n parts.push(hexToBytes(tc.burnViewConsensusHash));\n parts.push(hexToBytes(tc.previousTenureEnd));\n parts.push(writeUInt32BE(tc.previousTenureBlocks));\n parts.push(writeUInt8(tc.cause));\n parts.push(hexToBytes(tc.pubkeyHash));\n break;\n }\n\n case PayloadType.NakamotoCoinbase: {\n const nc = payload as NakamotoCoinbasePayload;\n parts.push(hexToBytes(nc.coinbaseBuffer));\n if (nc.recipient) {\n parts.push(serializeCVBytes({ type: \"some\", value: nc.recipient }));\n } else {\n parts.push(serializeCVBytes({ type: \"none\" }));\n }\n parts.push(hexToBytes(nc.vrfProof));\n break;\n }\n }\n\n return concatBytes(...parts);\n}\n\nexport function serializeTransaction(tx: StacksTransaction): Uint8Array {\n return concatBytes(\n writeUInt8(tx.version),\n writeUInt32BE(tx.chainId),\n serializeAuthorization(tx.auth),\n writeUInt8(tx.anchorMode),\n writeUInt8(tx.postConditionMode),\n serializePostConditions(tx.postConditions),\n serializePayload(tx.payload)\n );\n}\n\nexport function serializeTransactionHex(tx: StacksTransaction): string {\n return bytesToHex(serializeTransaction(tx));\n}\n"
|
|
9
|
+
],
|
|
10
|
+
"mappings": "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",
|
|
11
|
+
"debugId": "5A8F9D28AE3FE53E64756E2164756E21",
|
|
12
|
+
"names": []
|
|
13
|
+
}
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
"sources": ["../src/clarity/deserialize.ts", "../src/clarity/values.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import {\n hexToBytes,\n bytesToHex,\n bytesToAscii,\n bytesToUtf8,\n bytesToTwosBigInt,\n without0x,\n} from \"../utils/encoding.ts\";\nimport { c32address } from \"../utils/c32.ts\";\nimport {\n clarityTypeFromByte,\n type ClarityValue,\n} from \"./types.ts\";\nimport {\n intCV,\n uintCV,\n trueCV,\n falseCV,\n bufferCV,\n noneCV,\n someCV,\n responseOkCV,\n responseErrorCV,\n standardPrincipalCV,\n contractPrincipalCV,\n listCV,\n tupleCV,\n stringAsciiCV,\n stringUtf8CV,\n} from \"./values.ts\";\n\nclass BytesReader {\n private data: Uint8Array;\n private offset = 0;\n\n constructor(data: Uint8Array) {\n this.data = data;\n }\n\n readUInt8(): number {\n const value = this.data[this.offset]!;\n this.offset += 1;\n return value;\n }\n\n readUInt32BE(): number {\n const value =\n ((this.data[this.offset]! << 24) |\n (this.data[this.offset + 1]! << 16) |\n (this.data[this.offset + 2]! << 8) |\n this.data[this.offset + 3]!) >>>\n 0;\n this.offset += 4;\n return value;\n }\n\n readBytes(length: number): Uint8Array {\n const slice = this.data.slice(this.offset, this.offset + length);\n this.offset += length;\n return slice;\n }\n}\n\nfunction readAddress(reader: BytesReader): string {\n const version = reader.readUInt8();\n const hash160 = bytesToHex(reader.readBytes(20));\n return c32address(version, hash160);\n}\n\nfunction readLPString(reader: BytesReader, prefixBytes = 1): string {\n let length = 0;\n for (let i = 0; i < prefixBytes; i++) {\n length = (length << 8) | reader.readUInt8();\n }\n return bytesToUtf8(reader.readBytes(length));\n}\n\nfunction readCV(reader: BytesReader): ClarityValue {\n const typeByte = reader.readUInt8();\n const type = clarityTypeFromByte(typeByte);\n\n switch (type) {\n case \"int\":\n return intCV(bytesToTwosBigInt(reader.readBytes(16)));\n\n case \"uint\":\n return uintCV(reader.readBytes(16));\n\n case \"true\":\n return trueCV();\n\n case \"false\":\n return falseCV();\n\n case \"buffer\": {\n const len = reader.readUInt32BE();\n return bufferCV(reader.readBytes(len));\n }\n\n case \"none\":\n return noneCV();\n\n case \"some\":\n return someCV(readCV(reader));\n\n case \"ok\":\n return responseOkCV(readCV(reader));\n\n case \"err\":\n return responseErrorCV(readCV(reader));\n\n case \"address\":\n return standardPrincipalCV(readAddress(reader));\n\n case \"contract\": {\n const addr = readAddress(reader);\n const name = readLPString(reader);\n return contractPrincipalCV(addr, name);\n }\n\n case \"list\": {\n const len = reader.readUInt32BE();\n const items: ClarityValue[] = [];\n for (let i = 0; i < len; i++) {\n items.push(readCV(reader));\n }\n return listCV(items);\n }\n\n case \"tuple\": {\n const len = reader.readUInt32BE();\n const data: Record<string, ClarityValue> = {};\n for (let i = 0; i < len; i++) {\n const key = readLPString(reader);\n data[key] = readCV(reader);\n }\n return tupleCV(data);\n }\n\n case \"ascii\": {\n const len = reader.readUInt32BE();\n return stringAsciiCV(bytesToAscii(reader.readBytes(len)));\n }\n\n case \"utf8\": {\n const len = reader.readUInt32BE();\n return stringUtf8CV(bytesToUtf8(reader.readBytes(len)));\n }\n\n default:\n throw new Error(`Cannot deserialize unknown clarity type: ${type}`);\n }\n}\n\nexport function deserializeCVBytes<T extends ClarityValue = ClarityValue>(\n input: Uint8Array | string\n): T {\n const bytes =\n typeof input === \"string\" ? hexToBytes(without0x(input)) : input;\n return readCV(new BytesReader(bytes)) as T;\n}\n\nexport function deserializeCV<T extends ClarityValue = ClarityValue>(\n input: Uint8Array | string\n): T {\n return deserializeCVBytes(input);\n}\n",
|
|
6
|
-
"import { c32address, c32addressDecode } from \"../utils/c32.ts\";\nimport {\n bytesToHex,\n hexToBytes,\n asciiToBytes,\n utf8ToBytes,\n intToBigInt,\n bytesToTwosBigInt,\n type IntegerType,\n} from \"../utils/encoding.ts\";\nimport { isClarityName } from \"../utils/address.ts\";\nimport type {\n IntCV,\n UIntCV,\n BooleanCV,\n TrueCV,\n FalseCV,\n BufferCV,\n NoneCV,\n SomeCV,\n OptionalCV,\n ResponseOkCV,\n ResponseErrorCV,\n StandardPrincipalCV,\n ContractPrincipalCV,\n ListCV,\n TupleCV,\n TupleData,\n StringAsciiCV,\n StringUtf8CV,\n ClarityValue,\n} from \"./types.ts\";\nimport { serializeCVBytes } from \"./serialize.ts\";\nimport { deserializeCVBytes } from \"./deserialize.ts\";\n\nconst MAX_U128 = BigInt(\"0xffffffffffffffffffffffffffffffff\");\nconst MIN_I128 = BigInt(\"-170141183460469231731687303715884105728\");\nconst MAX_I128 = BigInt(\"0x7fffffffffffffffffffffffffffffff\");\n\n// Primitives\n\nexport function intCV(value: IntegerType): IntCV {\n if (typeof value === \"string\" && value.toLowerCase().startsWith(\"0x\")) {\n value = bytesToTwosBigInt(hexToBytes(value));\n }\n if (value instanceof Uint8Array) value = bytesToTwosBigInt(value);\n const n = intToBigInt(value);\n if (n > MAX_I128) throw new RangeError(`Int exceeds max i128: ${MAX_I128}`);\n if (n < MIN_I128) throw new RangeError(`Int below min i128: ${MIN_I128}`);\n return { type: \"int\", value: n };\n}\n\nexport function uintCV(value: IntegerType): UIntCV {\n const n = intToBigInt(value);\n if (n < 0n) throw new RangeError(\"Cannot construct unsigned int from negative value\");\n if (n > MAX_U128) throw new RangeError(`UInt exceeds max u128: ${MAX_U128}`);\n return { type: \"uint\", value: n };\n}\n\nexport const trueCV = (): TrueCV => ({ type: \"true\" });\nexport const falseCV = (): FalseCV => ({ type: \"false\" });\nexport const boolCV = (v: boolean): BooleanCV => (v ? trueCV() : falseCV());\n\nexport function bufferCV(buffer: Uint8Array): BufferCV {\n if (buffer.byteLength > 1_048_576) {\n throw new Error(\"Buffer exceeds max size of 1MB\");\n }\n return { type: \"buffer\", value: bytesToHex(buffer) };\n}\n\nexport function standardPrincipalCV(address: string): StandardPrincipalCV {\n // Validate by decoding\n const [version, hash160] = c32addressDecode(address);\n const normalized = c32address(version, hash160);\n return { type: \"address\", value: normalized };\n}\n\nexport function contractPrincipalCV(\n address: string,\n contractName: string\n): ContractPrincipalCV {\n const [version, hash160] = c32addressDecode(address);\n const normalized = c32address(version, hash160);\n if (utf8ToBytes(contractName).byteLength >= 128) {\n throw new Error(\"Contract name must be less than 128 bytes\");\n }\n return { type: \"contract\", value: `${normalized}.${contractName}` };\n}\n\nexport function noneCV(): NoneCV {\n return { type: \"none\" };\n}\n\nexport function someCV(value: ClarityValue): SomeCV {\n return { type: \"some\", value };\n}\n\nexport function responseOkCV(value: ClarityValue): ResponseOkCV {\n return { type: \"ok\", value };\n}\n\nexport function responseErrorCV(value: ClarityValue): ResponseErrorCV {\n return { type: \"err\", value };\n}\n\nexport function listCV(values: ClarityValue[]): ListCV {\n return { type: \"list\", value: values };\n}\n\nexport function tupleCV(data: TupleData): TupleCV {\n for (const key in data) {\n if (!isClarityName(key)) {\n throw new Error(`\"${key}\" is not a valid Clarity name`);\n }\n }\n return { type: \"tuple\", value: data };\n}\n\nexport function stringAsciiCV(value: string): StringAsciiCV {\n return { type: \"ascii\", value };\n}\n\nexport function stringUtf8CV(value: string): StringUtf8CV {\n return { type: \"utf8\", value };\n}\n\n// Cl namespace — clean API\n\nexport const Cl = {\n int: intCV,\n uint: uintCV,\n bool: boolCV,\n principal(address: string): StandardPrincipalCV | ContractPrincipalCV {\n const [addr, name] = address.split(\".\");\n if (!addr) throw new Error(\"Invalid principal address\");\n return name ? contractPrincipalCV(addr, name) : standardPrincipalCV(addr);\n },\n address(address: string) {\n return Cl.principal(address);\n },\n contractPrincipal: contractPrincipalCV,\n standardPrincipal: standardPrincipalCV,\n buffer: bufferCV,\n bufferFromHex: (hex: string) => bufferCV(hexToBytes(hex)),\n bufferFromAscii: (ascii: string) => bufferCV(asciiToBytes(ascii)),\n bufferFromUtf8: (utf8: string) => bufferCV(utf8ToBytes(utf8)),\n none: noneCV,\n some: someCV,\n ok: responseOkCV,\n error: responseErrorCV,\n list: listCV,\n tuple: tupleCV,\n stringAscii: stringAsciiCV,\n stringUtf8: stringUtf8CV,\n serialize(value: ClarityValue): string {\n return bytesToHex(serializeCVBytes(value));\n },\n deserialize: deserializeCVBytes,\n} as const;\n"
|
|
6
|
+
"import { c32address, c32addressDecode } from \"../utils/c32.ts\";\nimport {\n bytesToHex,\n hexToBytes,\n asciiToBytes,\n utf8ToBytes,\n intToBigInt,\n bytesToTwosBigInt,\n type IntegerType,\n} from \"../utils/encoding.ts\";\nimport { isClarityName } from \"../utils/address.ts\";\nimport type {\n IntCV,\n UIntCV,\n BooleanCV,\n TrueCV,\n FalseCV,\n BufferCV,\n NoneCV,\n SomeCV,\n OptionalCV,\n ResponseOkCV,\n ResponseErrorCV,\n StandardPrincipalCV,\n ContractPrincipalCV,\n ListCV,\n TupleCV,\n TupleData,\n StringAsciiCV,\n StringUtf8CV,\n ClarityValue,\n} from \"./types.ts\";\nimport { serializeCVBytes } from \"./serialize.ts\";\nimport { deserializeCVBytes } from \"./deserialize.ts\";\n\nconst MAX_U128 = BigInt(\"0xffffffffffffffffffffffffffffffff\");\nconst MIN_I128 = BigInt(\"-170141183460469231731687303715884105728\");\nconst MAX_I128 = BigInt(\"0x7fffffffffffffffffffffffffffffff\");\n\n// Primitives\n\nexport function intCV(value: IntegerType): IntCV {\n if (typeof value === \"string\" && value.toLowerCase().startsWith(\"0x\")) {\n value = bytesToTwosBigInt(hexToBytes(value));\n }\n if (value instanceof Uint8Array) value = bytesToTwosBigInt(value);\n const n = intToBigInt(value);\n if (n > MAX_I128) throw new RangeError(`Int exceeds max i128: ${MAX_I128}`);\n if (n < MIN_I128) throw new RangeError(`Int below min i128: ${MIN_I128}`);\n return { type: \"int\", value: n };\n}\n\nexport function uintCV(value: IntegerType): UIntCV {\n const n = intToBigInt(value);\n if (n < 0n) throw new RangeError(\"Cannot construct unsigned int from negative value\");\n if (n > MAX_U128) throw new RangeError(`UInt exceeds max u128: ${MAX_U128}`);\n return { type: \"uint\", value: n };\n}\n\nexport const trueCV = (): TrueCV => ({ type: \"true\" });\nexport const falseCV = (): FalseCV => ({ type: \"false\" });\nexport const boolCV = (v: boolean): BooleanCV => (v ? trueCV() : falseCV());\n\nexport function bufferCV(buffer: Uint8Array): BufferCV {\n if (buffer.byteLength > 1_048_576) {\n throw new Error(\"Buffer exceeds max size of 1MB\");\n }\n return { type: \"buffer\", value: bytesToHex(buffer) };\n}\n\nexport function standardPrincipalCV(address: string): StandardPrincipalCV {\n // Validate by decoding\n const [version, hash160] = c32addressDecode(address);\n const normalized = c32address(version, hash160);\n return { type: \"address\", value: normalized };\n}\n\nexport function contractPrincipalCV(\n address: string,\n contractName: string\n): ContractPrincipalCV {\n const [version, hash160] = c32addressDecode(address);\n const normalized = c32address(version, hash160);\n if (utf8ToBytes(contractName).byteLength >= 128) {\n throw new Error(\"Contract name must be less than 128 bytes\");\n }\n return { type: \"contract\", value: `${normalized}.${contractName}` };\n}\n\nexport function noneCV(): NoneCV {\n return { type: \"none\" };\n}\n\nexport function someCV(value: ClarityValue): SomeCV {\n return { type: \"some\", value };\n}\n\nexport function responseOkCV(value: ClarityValue): ResponseOkCV {\n return { type: \"ok\", value };\n}\n\nexport function responseErrorCV(value: ClarityValue): ResponseErrorCV {\n return { type: \"err\", value };\n}\n\nexport function listCV(values: ClarityValue[]): ListCV {\n return { type: \"list\", value: values };\n}\n\nexport function tupleCV(data: TupleData): TupleCV {\n for (const key in data) {\n if (!isClarityName(key)) {\n throw new Error(`\"${key}\" is not a valid Clarity name`);\n }\n }\n return { type: \"tuple\", value: data };\n}\n\nexport function stringAsciiCV(value: string): StringAsciiCV {\n return { type: \"ascii\", value };\n}\n\nexport function stringUtf8CV(value: string): StringUtf8CV {\n return { type: \"utf8\", value };\n}\n\n// Cl namespace — clean API\n\nexport const Cl: {\n readonly int: (value: IntegerType) => IntCV;\n readonly uint: (value: IntegerType) => UIntCV;\n readonly bool: (v: boolean) => BooleanCV;\n principal(address: string): StandardPrincipalCV | ContractPrincipalCV;\n address(address: string): StandardPrincipalCV | ContractPrincipalCV;\n readonly contractPrincipal: (address: string, contractName: string) => ContractPrincipalCV;\n readonly standardPrincipal: (address: string) => StandardPrincipalCV;\n readonly buffer: (buffer: Uint8Array) => BufferCV;\n readonly bufferFromHex: (hex: string) => BufferCV;\n readonly bufferFromAscii: (ascii: string) => BufferCV;\n readonly bufferFromUtf8: (utf8: string) => BufferCV;\n readonly none: () => NoneCV;\n readonly some: (value: ClarityValue) => SomeCV;\n readonly ok: (value: ClarityValue) => ResponseOkCV;\n readonly error: (value: ClarityValue) => ResponseErrorCV;\n readonly list: (values: ClarityValue[]) => ListCV;\n readonly tuple: (data: TupleData) => TupleCV;\n readonly stringAscii: (value: string) => StringAsciiCV;\n readonly stringUtf8: (value: string) => StringUtf8CV;\n serialize(value: ClarityValue): string;\n readonly deserialize: (bytes: Uint8Array) => ClarityValue;\n} = {\n int: intCV,\n uint: uintCV,\n bool: boolCV,\n principal(address: string): StandardPrincipalCV | ContractPrincipalCV {\n const [addr, name] = address.split(\".\");\n if (!addr) throw new Error(\"Invalid principal address\");\n return name ? contractPrincipalCV(addr, name) : standardPrincipalCV(addr);\n },\n address(address: string): StandardPrincipalCV | ContractPrincipalCV {\n return Cl.principal(address);\n },\n contractPrincipal: contractPrincipalCV,\n standardPrincipal: standardPrincipalCV,\n buffer: bufferCV,\n bufferFromHex: (hex: string): BufferCV => bufferCV(hexToBytes(hex)),\n bufferFromAscii: (ascii: string): BufferCV => bufferCV(asciiToBytes(ascii)),\n bufferFromUtf8: (utf8: string): BufferCV => bufferCV(utf8ToBytes(utf8)),\n none: noneCV,\n some: someCV,\n ok: responseOkCV,\n error: responseErrorCV,\n list: listCV,\n tuple: tupleCV,\n stringAscii: stringAsciiCV,\n stringUtf8: stringUtf8CV,\n serialize(value: ClarityValue): string {\n return bytesToHex(serializeCVBytes(value));\n },\n deserialize: deserializeCVBytes,\n} as const;\n"
|
|
7
7
|
],
|
|
8
|
-
"mappings": "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
|
|
8
|
+
"mappings": "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",
|
|
9
9
|
"debugId": "DB2BCD6778DE48E964756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/clarity/abi/standards.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import type { AbiContract } from \"./contract.ts\";\n\nexport const SIP010_ABI = {\n functions: [\n {\n name: \"transfer\",\n access: \"public\",\n args: [\n { name: \"amount\", type: \"uint128\" },\n { name: \"sender\", type: \"principal\" },\n { name: \"recipient\", type: \"principal\" },\n { name: \"memo\", type: { optional: { buff: { length: 34 } } } },\n ],\n outputs: { response: { ok: \"bool\", error: \"uint128\" } },\n },\n {\n name: \"get-balance\",\n access: \"read-only\",\n args: [{ name: \"account\", type: \"principal\" }],\n outputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n },\n {\n name: \"get-total-supply\",\n access: \"read-only\",\n args: [],\n outputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n },\n {\n name: \"get-name\",\n access: \"read-only\",\n args: [],\n outputs: {\n response: {\n ok: { \"string-ascii\": { length: 32 } },\n error: \"uint128\",\n },\n },\n },\n {\n name: \"get-symbol\",\n access: \"read-only\",\n args: [],\n outputs: {\n response: {\n ok: { \"string-ascii\": { length: 10 } },\n error: \"uint128\",\n },\n },\n },\n {\n name: \"get-decimals\",\n access: \"read-only\",\n args: [],\n outputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n },\n {\n name: \"get-token-uri\",\n access: \"read-only\",\n args: [],\n outputs: {\n response: {\n ok: { optional: { \"string-utf8\": { length: 256 } } },\n error: \"uint128\",\n },\n },\n },\n ],\n fungible_tokens: [{ name: \"token\" }],\n} as const satisfies AbiContract;\n\nexport const SIP009_ABI = {\n functions: [\n {\n name: \"transfer\",\n access: \"public\",\n args: [\n { name: \"id\", type: \"uint128\" },\n { name: \"sender\", type: \"principal\" },\n { name: \"recipient\", type: \"principal\" },\n ],\n outputs: { response: { ok: \"bool\", error: \"uint128\" } },\n },\n {\n name: \"get-owner\",\n access: \"read-only\",\n args: [{ name: \"id\", type: \"uint128\" }],\n outputs: { response: { ok: { optional: \"principal\" }, error: \"uint128\" } },\n },\n {\n name: \"get-last-token-id\",\n access: \"read-only\",\n args: [],\n outputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n },\n {\n name: \"get-token-uri\",\n access: \"read-only\",\n args: [{ name: \"id\", type: \"uint128\" }],\n outputs: {\n response: {\n ok: { optional: { \"string-utf8\": { length: 256 } } },\n error: \"uint128\",\n },\n },\n },\n ],\n non_fungible_tokens: [{ name: \"nft\", type: \"uint128\" }],\n} as const satisfies AbiContract;\n\nexport const SIP013_ABI = {\n functions: [\n {\n name: \"transfer\",\n access: \"public\",\n args: [\n { name: \"token-id\", type: \"uint128\" },\n { name: \"amount\", type: \"uint128\" },\n { name: \"sender\", type: \"principal\" },\n { name: \"recipient\", type: \"principal\" },\n ],\n outputs: { response: { ok: \"bool\", error: \"uint128\" } },\n },\n {\n name: \"transfer-memo\",\n access: \"public\",\n args: [\n { name: \"token-id\", type: \"uint128\" },\n { name: \"amount\", type: \"uint128\" },\n { name: \"sender\", type: \"principal\" },\n { name: \"recipient\", type: \"principal\" },\n { name: \"memo\", type: { buff: { length: 34 } } },\n ],\n outputs: { response: { ok: \"bool\", error: \"uint128\" } },\n },\n {\n name: \"transfer-many\",\n access: \"public\",\n args: [\n {\n name: \"transfers\",\n type: {\n list: {\n type: {\n tuple: [\n { name: \"token-id\", type: \"uint128\" },\n { name: \"amount\", type: \"uint128\" },\n { name: \"sender\", type: \"principal\" },\n { name: \"recipient\", type: \"principal\" },\n ],\n },\n length: 200,\n },\n },\n },\n ],\n outputs: { response: { ok: \"bool\", error: \"uint128\" } },\n },\n {\n name: \"transfer-many-memo\",\n access: \"public\",\n args: [\n {\n name: \"transfers\",\n type: {\n list: {\n type: {\n tuple: [\n { name: \"token-id\", type: \"uint128\" },\n { name: \"amount\", type: \"uint128\" },\n { name: \"sender\", type: \"principal\" },\n { name: \"recipient\", type: \"principal\" },\n { name: \"memo\", type: { buff: { length: 34 } } },\n ],\n },\n length: 200,\n },\n },\n },\n ],\n outputs: { response: { ok: \"bool\", error: \"uint128\" } },\n },\n {\n name: \"get-balance\",\n access: \"read-only\",\n args: [\n { name: \"token-id\", type: \"uint128\" },\n { name: \"account\", type: \"principal\" },\n ],\n outputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n },\n {\n name: \"get-overall-balance\",\n access: \"read-only\",\n args: [{ name: \"account\", type: \"principal\" }],\n outputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n },\n {\n name: \"get-total-supply\",\n access: \"read-only\",\n args: [{ name: \"token-id\", type: \"uint128\" }],\n outputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n },\n {\n name: \"get-overall-supply\",\n access: \"read-only\",\n args: [],\n outputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n },\n {\n name: \"get-decimals\",\n access: \"read-only\",\n args: [{ name: \"token-id\", type: \"uint128\" }],\n outputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n },\n {\n name: \"get-token-uri\",\n access: \"read-only\",\n args: [{ name: \"token-id\", type: \"uint128\" }],\n outputs: {\n response: {\n ok: { optional: { \"string-utf8\": { length: 256 } } },\n error: \"uint128\",\n },\n },\n },\n ],\n fungible_tokens: [],\n non_fungible_tokens: [],\n} as const satisfies AbiContract;\n\n// Camel-case aliases for better DX\nexport const sip010Abi = SIP010_ABI;\nexport const sip009Abi = SIP009_ABI;\nexport const sip013Abi = SIP013_ABI;\n"
|
|
5
|
+
"import type { AbiContract } from \"./contract.ts\";\n\nexport const SIP010_ABI = {\n functions: [\n {\n name: \"transfer\",\n access: \"public\",\n args: [\n { name: \"amount\", type: \"uint128\" },\n { name: \"sender\", type: \"principal\" },\n { name: \"recipient\", type: \"principal\" },\n { name: \"memo\", type: { optional: { buff: { length: 34 } } } },\n ],\n outputs: { response: { ok: \"bool\", error: \"uint128\" } },\n },\n {\n name: \"get-balance\",\n access: \"read-only\",\n args: [{ name: \"account\", type: \"principal\" }],\n outputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n },\n {\n name: \"get-total-supply\",\n access: \"read-only\",\n args: [],\n outputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n },\n {\n name: \"get-name\",\n access: \"read-only\",\n args: [],\n outputs: {\n response: {\n ok: { \"string-ascii\": { length: 32 } },\n error: \"uint128\",\n },\n },\n },\n {\n name: \"get-symbol\",\n access: \"read-only\",\n args: [],\n outputs: {\n response: {\n ok: { \"string-ascii\": { length: 10 } },\n error: \"uint128\",\n },\n },\n },\n {\n name: \"get-decimals\",\n access: \"read-only\",\n args: [],\n outputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n },\n {\n name: \"get-token-uri\",\n access: \"read-only\",\n args: [],\n outputs: {\n response: {\n ok: { optional: { \"string-utf8\": { length: 256 } } },\n error: \"uint128\",\n },\n },\n },\n ],\n fungible_tokens: [{ name: \"token\" }],\n} as const satisfies AbiContract;\n\nexport const SIP009_ABI = {\n functions: [\n {\n name: \"transfer\",\n access: \"public\",\n args: [\n { name: \"id\", type: \"uint128\" },\n { name: \"sender\", type: \"principal\" },\n { name: \"recipient\", type: \"principal\" },\n ],\n outputs: { response: { ok: \"bool\", error: \"uint128\" } },\n },\n {\n name: \"get-owner\",\n access: \"read-only\",\n args: [{ name: \"id\", type: \"uint128\" }],\n outputs: { response: { ok: { optional: \"principal\" }, error: \"uint128\" } },\n },\n {\n name: \"get-last-token-id\",\n access: \"read-only\",\n args: [],\n outputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n },\n {\n name: \"get-token-uri\",\n access: \"read-only\",\n args: [{ name: \"id\", type: \"uint128\" }],\n outputs: {\n response: {\n ok: { optional: { \"string-utf8\": { length: 256 } } },\n error: \"uint128\",\n },\n },\n },\n ],\n non_fungible_tokens: [{ name: \"nft\", type: \"uint128\" }],\n} as const satisfies AbiContract;\n\nexport const SIP013_ABI = {\n functions: [\n {\n name: \"transfer\",\n access: \"public\",\n args: [\n { name: \"token-id\", type: \"uint128\" },\n { name: \"amount\", type: \"uint128\" },\n { name: \"sender\", type: \"principal\" },\n { name: \"recipient\", type: \"principal\" },\n ],\n outputs: { response: { ok: \"bool\", error: \"uint128\" } },\n },\n {\n name: \"transfer-memo\",\n access: \"public\",\n args: [\n { name: \"token-id\", type: \"uint128\" },\n { name: \"amount\", type: \"uint128\" },\n { name: \"sender\", type: \"principal\" },\n { name: \"recipient\", type: \"principal\" },\n { name: \"memo\", type: { buff: { length: 34 } } },\n ],\n outputs: { response: { ok: \"bool\", error: \"uint128\" } },\n },\n {\n name: \"transfer-many\",\n access: \"public\",\n args: [\n {\n name: \"transfers\",\n type: {\n list: {\n type: {\n tuple: [\n { name: \"token-id\", type: \"uint128\" },\n { name: \"amount\", type: \"uint128\" },\n { name: \"sender\", type: \"principal\" },\n { name: \"recipient\", type: \"principal\" },\n ],\n },\n length: 200,\n },\n },\n },\n ],\n outputs: { response: { ok: \"bool\", error: \"uint128\" } },\n },\n {\n name: \"transfer-many-memo\",\n access: \"public\",\n args: [\n {\n name: \"transfers\",\n type: {\n list: {\n type: {\n tuple: [\n { name: \"token-id\", type: \"uint128\" },\n { name: \"amount\", type: \"uint128\" },\n { name: \"sender\", type: \"principal\" },\n { name: \"recipient\", type: \"principal\" },\n { name: \"memo\", type: { buff: { length: 34 } } },\n ],\n },\n length: 200,\n },\n },\n },\n ],\n outputs: { response: { ok: \"bool\", error: \"uint128\" } },\n },\n {\n name: \"get-balance\",\n access: \"read-only\",\n args: [\n { name: \"token-id\", type: \"uint128\" },\n { name: \"account\", type: \"principal\" },\n ],\n outputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n },\n {\n name: \"get-overall-balance\",\n access: \"read-only\",\n args: [{ name: \"account\", type: \"principal\" }],\n outputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n },\n {\n name: \"get-total-supply\",\n access: \"read-only\",\n args: [{ name: \"token-id\", type: \"uint128\" }],\n outputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n },\n {\n name: \"get-overall-supply\",\n access: \"read-only\",\n args: [],\n outputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n },\n {\n name: \"get-decimals\",\n access: \"read-only\",\n args: [{ name: \"token-id\", type: \"uint128\" }],\n outputs: { response: { ok: \"uint128\", error: \"uint128\" } },\n },\n {\n name: \"get-token-uri\",\n access: \"read-only\",\n args: [{ name: \"token-id\", type: \"uint128\" }],\n outputs: {\n response: {\n ok: { optional: { \"string-utf8\": { length: 256 } } },\n error: \"uint128\",\n },\n },\n },\n ],\n fungible_tokens: [],\n non_fungible_tokens: [],\n} as const satisfies AbiContract;\n\n// Camel-case aliases for better DX\nexport const sip010Abi: AbiContract = SIP010_ABI;\nexport const sip009Abi: AbiContract = SIP009_ABI;\nexport const sip013Abi: AbiContract = SIP013_ABI;\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "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
|
|
7
|
+
"mappings": "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",
|
|
8
8
|
"debugId": "02D7F66F296B4CA864756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
|
@@ -5,11 +5,7 @@ import {
|
|
|
5
5
|
buildContractCall,
|
|
6
6
|
getTransactionId,
|
|
7
7
|
signTransactionWithAccount
|
|
8
|
-
} from "./stacks-
|
|
9
|
-
import {
|
|
10
|
-
serializePayload,
|
|
11
|
-
serializeTransaction
|
|
12
|
-
} from "./stacks-yfgsm6ap.js";
|
|
8
|
+
} from "./stacks-pz73cn97.js";
|
|
13
9
|
import {
|
|
14
10
|
deserializeCVBytes
|
|
15
11
|
} from "./stacks-j2cy7qtt.js";
|
|
@@ -23,6 +19,10 @@ import {
|
|
|
23
19
|
bytesToHex,
|
|
24
20
|
with0x
|
|
25
21
|
} from "./stacks-nqytwfcc.js";
|
|
22
|
+
import {
|
|
23
|
+
serializePayload,
|
|
24
|
+
serializeTransaction
|
|
25
|
+
} from "./stacks-xtz0n62y.js";
|
|
26
26
|
|
|
27
27
|
// src/actions/public/getNonce.ts
|
|
28
28
|
async function getNonce(client, params) {
|
|
@@ -156,5 +156,5 @@ async function callContract(client, params) {
|
|
|
156
156
|
|
|
157
157
|
export { getNonce, readContract, getMapEntry, estimateFee, sendTransaction, isProviderAccount, callContract };
|
|
158
158
|
|
|
159
|
-
//# debugId=
|
|
160
|
-
//# sourceMappingURL=stacks-
|
|
159
|
+
//# debugId=BDF3EE3CE5CBCB7864756E2164756E21
|
|
160
|
+
//# sourceMappingURL=stacks-m2dc5xwg.js.map
|