@secondlayer/stacks 4.3.2 → 5.0.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/README.md +27 -11
- package/dist/shared/{stacks-gxq2pbky.js → stacks-2as26bcg.js} +10 -7
- package/dist/shared/stacks-2as26bcg.js.map +13 -0
- package/dist/shared/{stacks-bfan7ex7.js → stacks-4d7c3x27.js} +5 -5
- package/dist/shared/{stacks-bfan7ex7.js.map → stacks-4d7c3x27.js.map} +3 -3
- package/dist/shared/{stacks-709tra19.js → stacks-4hs8r4q2.js} +16 -2
- package/dist/shared/stacks-4hs8r4q2.js.map +10 -0
- package/dist/shared/{stacks-w23294am.js → stacks-51ybf135.js} +3 -3
- package/dist/shared/{stacks-0jk7vd8r.cjs → stacks-69nq48jp.js} +120 -17
- package/dist/shared/stacks-69nq48jp.js.map +15 -0
- package/dist/shared/{stacks-8pfdscq6.js → stacks-6gavarmy.js} +37 -9
- package/dist/shared/stacks-6gavarmy.js.map +12 -0
- package/dist/shared/{stacks-7wkf2rph.js → stacks-7bqkf3b0.js} +86 -71
- package/dist/shared/{stacks-7wkf2rph.js.map → stacks-7bqkf3b0.js.map} +9 -10
- package/dist/shared/{stacks-zcpvzbr0.js → stacks-8brgfvqx.js} +3 -3
- package/dist/shared/{stacks-4vzmhw3q.cjs → stacks-8vzxax5e.cjs} +13 -3
- package/dist/shared/stacks-8vzxax5e.cjs.map +10 -0
- package/dist/shared/{stacks-hnqt5rz4.js → stacks-9c1yam8b.js} +3 -3
- package/dist/shared/{stacks-bnbdqznq.cjs → stacks-bdgh9n83.cjs} +11 -10
- package/dist/shared/{stacks-bnbdqznq.cjs.map → stacks-bdgh9n83.cjs.map} +3 -3
- package/dist/shared/{stacks-fb75yew8.js → stacks-db3kwavg.cjs} +346 -138
- package/dist/shared/stacks-db3kwavg.cjs.map +23 -0
- package/dist/shared/{stacks-jpt52csy.js → stacks-e3nwm1dz.js} +14 -17
- package/dist/shared/stacks-e3nwm1dz.js.map +10 -0
- package/dist/shared/{stacks-27fmgajb.js → stacks-ga026yxz.js} +9 -9
- package/dist/shared/{stacks-27fmgajb.js.map → stacks-ga026yxz.js.map} +3 -3
- package/dist/shared/{stacks-nyaw1z2a.cjs → stacks-ggdz96r1.cjs} +4 -4
- package/dist/shared/{stacks-nyaw1z2a.cjs.map → stacks-ggdz96r1.cjs.map} +3 -3
- package/dist/shared/{stacks-08y0y0t7.js → stacks-gjz26k6b.js} +2 -2
- package/dist/shared/{stacks-x5386y2y.cjs → stacks-gza2n1zs.cjs} +5 -5
- package/dist/shared/{stacks-x5386y2y.cjs.map → stacks-gza2n1zs.cjs.map} +3 -3
- package/dist/shared/{stacks-ta1gar0b.cjs → stacks-kqn4y8kq.cjs} +7 -5
- package/dist/shared/{stacks-ta1gar0b.cjs.map → stacks-kqn4y8kq.cjs.map} +3 -3
- package/dist/shared/{stacks-ztzygy90.js → stacks-mftyrc60.js} +2 -2
- package/dist/shared/stacks-n4d8j8q3.js +801 -0
- package/dist/shared/stacks-n4d8j8q3.js.map +23 -0
- package/dist/shared/{stacks-ycbq8pf7.cjs → stacks-p337hp6m.cjs} +74 -59
- package/dist/shared/{stacks-ycbq8pf7.cjs.map → stacks-p337hp6m.cjs.map} +9 -10
- package/dist/shared/{stacks-ttdk2g2f.js → stacks-s5vej5z6.cjs} +92 -41
- package/dist/shared/stacks-s5vej5z6.cjs.map +15 -0
- package/dist/shared/stacks-sdqkapct.cjs +67 -0
- package/dist/shared/stacks-sdqkapct.cjs.map +12 -0
- package/dist/shared/{stacks-1arrcd11.js → stacks-v2rfr46a.js} +2 -2
- package/dist/shared/{stacks-9mqveyjv.cjs → stacks-w9t61fra.cjs} +7 -10
- package/dist/shared/stacks-w9t61fra.cjs.map +10 -0
- package/dist/shared/{stacks-tjjnkt3r.js → stacks-wxfd6r4b.js} +2 -2
- package/dist/shared/{stacks-4z72akdf.js → stacks-x0qqwrev.js} +3 -3
- package/dist/shared/{stacks-gck1sq7h.cjs → stacks-xjkn3en1.cjs} +16 -2
- package/dist/shared/stacks-xjkn3en1.cjs.map +10 -0
- package/dist/shared/stacks-xnrywjf1.cjs +131 -0
- package/dist/shared/stacks-xnrywjf1.cjs.map +11 -0
- package/dist/shared/stacks-yajyej2y.js +139 -0
- package/dist/shared/stacks-yajyej2y.js.map +11 -0
- package/dist/shared/{stacks-913a2rx7.js → stacks-yvb7rvwk.js} +13 -3
- package/dist/shared/stacks-yvb7rvwk.js.map +10 -0
- package/dist/shared/{stacks-0cdm20eh.js → stacks-z90xdr1x.js} +7 -11
- package/dist/shared/{stacks-0cdm20eh.js.map → stacks-z90xdr1x.js.map} +3 -3
- package/dist/src/accounts/index.js +2 -3
- package/dist/src/accounts/index.js.map +2 -2
- package/dist/src/actions/index.cjs +2 -1
- package/dist/src/actions/index.cjs.map +1 -1
- package/dist/src/actions/index.d.cts +108 -20
- package/dist/src/actions/index.d.ts +108 -20
- package/dist/src/actions/index.js +17 -15
- package/dist/src/actions/index.js.map +1 -1
- package/dist/src/bitcoin/index.d.cts +27 -0
- package/dist/src/bitcoin/index.d.ts +27 -0
- package/dist/src/bitcoin/index.js +10 -11
- package/dist/src/bitcoin/index.js.map +2 -2
- package/dist/src/bns/index.d.cts +27 -0
- package/dist/src/bns/index.d.ts +27 -0
- package/dist/src/bns/index.js +13 -13
- package/dist/src/bns/index.js.map +1 -1
- package/dist/src/clarity/index.js +7 -6
- package/dist/src/clarity/index.js.map +1 -1
- package/dist/src/connect/index.cjs +44 -30
- package/dist/src/connect/index.cjs.map +7 -7
- package/dist/src/connect/index.d.cts +16 -1
- package/dist/src/connect/index.d.ts +16 -1
- package/dist/src/connect/index.js +44 -30
- package/dist/src/connect/index.js.map +7 -7
- package/dist/src/connect/walletconnect/index.cjs +49 -413
- package/dist/src/connect/walletconnect/index.cjs.map +4 -4
- package/dist/src/connect/walletconnect/index.js +47 -411
- package/dist/src/connect/walletconnect/index.js.map +4 -4
- package/dist/src/filters/index.js +2 -2
- package/dist/src/index.cjs +49 -124
- package/dist/src/index.cjs.map +6 -8
- package/dist/src/index.d.cts +163 -54
- package/dist/src/index.d.ts +163 -54
- package/dist/src/index.js +79 -147
- package/dist/src/index.js.map +6 -8
- package/dist/src/postconditions/index.js +6 -5
- package/dist/src/postconditions/index.js.map +1 -1
- package/dist/src/pox/index.cjs +7 -83
- package/dist/src/pox/index.cjs.map +3 -3
- package/dist/src/pox/index.d.cts +32 -1
- package/dist/src/pox/index.d.ts +32 -1
- package/dist/src/pox/index.js +22 -102
- package/dist/src/pox/index.js.map +3 -3
- package/dist/src/pox5/index.cjs +4 -112
- package/dist/src/pox5/index.cjs.map +3 -4
- package/dist/src/pox5/index.d.cts +27 -0
- package/dist/src/pox5/index.d.ts +27 -0
- package/dist/src/pox5/index.js +20 -131
- package/dist/src/pox5/index.js.map +3 -4
- package/dist/src/sbtc/index.cjs +2 -27
- package/dist/src/sbtc/index.cjs.map +3 -3
- package/dist/src/sbtc/index.d.cts +30 -2
- package/dist/src/sbtc/index.d.ts +30 -2
- package/dist/src/sbtc/index.js +15 -45
- package/dist/src/sbtc/index.js.map +3 -3
- package/dist/src/stackingdao/index.d.cts +27 -0
- package/dist/src/stackingdao/index.d.ts +27 -0
- package/dist/src/stackingdao/index.js +11 -11
- package/dist/src/stackingdao/index.js.map +1 -1
- package/dist/src/subscriptions/index.d.cts +27 -0
- package/dist/src/subscriptions/index.d.ts +27 -0
- package/dist/src/subscriptions/index.js +2 -2
- package/dist/src/tools/btc/index.cjs.map +2 -2
- package/dist/src/tools/btc/index.js.map +2 -2
- package/dist/src/tools/index.cjs +629 -392
- package/dist/src/tools/index.cjs.map +30 -28
- package/dist/src/tools/index.d.cts +44 -0
- package/dist/src/tools/index.d.ts +44 -0
- package/dist/src/tools/index.js +628 -391
- package/dist/src/tools/index.js.map +30 -28
- package/dist/src/transactions/index.js +6 -5
- package/dist/src/transactions/index.js.map +1 -1
- package/dist/src/utils/index.d.cts +2 -5
- package/dist/src/utils/index.d.ts +2 -5
- package/dist/src/utils/index.js +2 -2
- package/package.json +18 -7
- package/dist/shared/stacks-0eatsx6d.cjs +0 -25
- package/dist/shared/stacks-0eatsx6d.cjs.map +0 -10
- package/dist/shared/stacks-0jk7vd8r.cjs.map +0 -14
- package/dist/shared/stacks-4vzmhw3q.cjs.map +0 -10
- package/dist/shared/stacks-5nmz5ad9.js +0 -409
- package/dist/shared/stacks-5nmz5ad9.js.map +0 -10
- package/dist/shared/stacks-709tra19.js.map +0 -10
- package/dist/shared/stacks-8pfdscq6.js.map +0 -12
- package/dist/shared/stacks-913a2rx7.js.map +0 -10
- package/dist/shared/stacks-9mqveyjv.cjs.map +0 -10
- package/dist/shared/stacks-e4xn4m7j.js +0 -27
- package/dist/shared/stacks-e4xn4m7j.js.map +0 -10
- package/dist/shared/stacks-fb75yew8.js.map +0 -21
- package/dist/shared/stacks-gck1sq7h.cjs.map +0 -10
- package/dist/shared/stacks-gxq2pbky.js.map +0 -13
- package/dist/shared/stacks-jpt52csy.js.map +0 -10
- package/dist/shared/stacks-mnnhpex3.cjs +0 -407
- package/dist/shared/stacks-mnnhpex3.cjs.map +0 -10
- package/dist/shared/stacks-tdsp5gsb.cjs +0 -527
- package/dist/shared/stacks-tdsp5gsb.cjs.map +0 -21
- package/dist/shared/stacks-ttdk2g2f.js.map +0 -14
- package/dist/shared/stacks-wdp5yr8n.cjs +0 -39
- package/dist/shared/stacks-wdp5yr8n.cjs.map +0 -12
- /package/dist/shared/{stacks-w23294am.js.map → stacks-51ybf135.js.map} +0 -0
- /package/dist/shared/{stacks-zcpvzbr0.js.map → stacks-8brgfvqx.js.map} +0 -0
- /package/dist/shared/{stacks-hnqt5rz4.js.map → stacks-9c1yam8b.js.map} +0 -0
- /package/dist/shared/{stacks-08y0y0t7.js.map → stacks-gjz26k6b.js.map} +0 -0
- /package/dist/shared/{stacks-ztzygy90.js.map → stacks-mftyrc60.js.map} +0 -0
- /package/dist/shared/{stacks-1arrcd11.js.map → stacks-v2rfr46a.js.map} +0 -0
- /package/dist/shared/{stacks-tjjnkt3r.js.map → stacks-wxfd6r4b.js.map} +0 -0
- /package/dist/shared/{stacks-4z72akdf.js.map → stacks-x0qqwrev.js.map} +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
fromHex,
|
|
3
3
|
parsePostConditionAmount
|
|
4
|
-
} from "./stacks-
|
|
4
|
+
} from "./stacks-51ybf135.js";
|
|
5
5
|
import {
|
|
6
6
|
parseContractId,
|
|
7
7
|
validateStacksAddress
|
|
8
|
-
} from "./stacks-
|
|
8
|
+
} from "./stacks-4d7c3x27.js";
|
|
9
9
|
|
|
10
10
|
// src/postconditions/builder.ts
|
|
11
11
|
class PartialPcWithPrincipal {
|
|
@@ -152,4 +152,4 @@ var Pc = {
|
|
|
152
152
|
export { Pc };
|
|
153
153
|
|
|
154
154
|
//# debugId=756F35EB0617730A64756E2164756E21
|
|
155
|
-
//# sourceMappingURL=stacks-
|
|
155
|
+
//# sourceMappingURL=stacks-8brgfvqx.js.map
|
|
@@ -11,8 +11,18 @@ function formatUnits(value, decimals) {
|
|
|
11
11
|
const result = `${integer}.${fraction}`;
|
|
12
12
|
return negative ? `-${result}` : result;
|
|
13
13
|
}
|
|
14
|
+
var DECIMAL_STRING = /^-?\d+(\.\d+)?$/;
|
|
14
15
|
function parseUnits(value, decimals) {
|
|
15
|
-
|
|
16
|
+
if (typeof value === "number" && !Number.isFinite(value)) {
|
|
17
|
+
throw new RangeError(`Cannot parse ${value} as a decimal amount`);
|
|
18
|
+
}
|
|
19
|
+
let str = typeof value === "number" ? value.toFixed(decimals) : value.trim();
|
|
20
|
+
if (!DECIMAL_STRING.test(str)) {
|
|
21
|
+
throw new RangeError(`Cannot parse "${value}" as a decimal amount: expected digits with an optional fraction, like "1.5"`);
|
|
22
|
+
}
|
|
23
|
+
if (typeof value === "number" && Number(str) !== value) {
|
|
24
|
+
throw new RangeError(`Cannot parse ${value} with ${decimals} decimals: pass the amount as a string to keep every digit`);
|
|
25
|
+
}
|
|
16
26
|
const negative = str.startsWith("-");
|
|
17
27
|
if (negative)
|
|
18
28
|
str = str.slice(1);
|
|
@@ -31,5 +41,5 @@ function parseStx(stx) {
|
|
|
31
41
|
return parseUnits(stx, 6);
|
|
32
42
|
}
|
|
33
43
|
|
|
34
|
-
//# debugId=
|
|
35
|
-
//# sourceMappingURL=stacks-
|
|
44
|
+
//# debugId=051ADFBB0CC9BDC664756E2164756E21
|
|
45
|
+
//# sourceMappingURL=stacks-8vzxax5e.cjs.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/utils/units.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/**\n * Format a bigint value with decimal places.\n * @example formatUnits(1000000n, 6) → \"1.0\"\n * @example formatUnits(1500000n, 6) → \"1.5\"\n */\nexport function formatUnits(\n\tvalue: bigint | number | string,\n\tdecimals: number,\n): string {\n\tlet v = BigInt(value);\n\n\tconst negative = v < 0n;\n\tif (negative) v = -v;\n\n\tconst divisor = 10n ** BigInt(decimals);\n\tconst integer = (v / divisor).toString();\n\tlet fraction = (v % divisor).toString().padStart(decimals, \"0\");\n\n\t// Trim trailing zeros, but keep at least one decimal\n\tfraction = fraction.replace(/0+$/, \"\") || \"0\";\n\n\tconst result = `${integer}.${fraction}`;\n\treturn negative ? `-${result}` : result;\n}\n\n/**\n * Parse a decimal string into a bigint with the given number of decimals.\n * @example parseUnits(\"1.5\", 6) → 1500000n\n * @example parseUnits(\"1\", 6) → 1000000n\n */\nconst DECIMAL_STRING = /^-?\\d+(\\.\\d+)?$/;\n\nexport function parseUnits(value: string | number, decimals: number): bigint {\n\tif (typeof value === \"number\" && !Number.isFinite(value)) {\n\t\tthrow new RangeError(`Cannot parse ${value} as a decimal amount`);\n\t}\n\t// Numbers small or large enough to print in exponent form (1e-7, 1e21)\n\t// go through toFixed so the digits survive. A number the fixed form\n\t// cannot hold exactly (too many decimals, or too small for one unit) is\n\t// refused rather than rounded, so amounts never shrink silently.\n\tlet str = typeof value === \"number\" ? value.toFixed(decimals) : value.trim();\n\tif (!DECIMAL_STRING.test(str)) {\n\t\tthrow new RangeError(\n\t\t\t`Cannot parse \"${value}\" as a decimal amount: expected digits with an optional fraction, like \"1.5\"`,\n\t\t);\n\t}\n\tif (typeof value === \"number\" && Number(str) !== value) {\n\t\tthrow new RangeError(\n\t\t\t`Cannot parse ${value} with ${decimals} decimals: pass the amount as a string to keep every digit`,\n\t\t);\n\t}\n\n\tconst negative = str.startsWith(\"-\");\n\tif (negative) str = str.slice(1);\n\n\tconst [integer = \"\", fraction = \"\"] = str.split(\".\");\n\n\tif (fraction.length > decimals) {\n\t\tthrow new Error(\n\t\t\t`Too many decimal places: \"${value}\" has ${fraction.length} decimals, max is ${decimals}`,\n\t\t);\n\t}\n\n\tconst padded = fraction.padEnd(decimals, \"0\");\n\tconst result = BigInt(integer + padded);\n\treturn negative ? -result : result;\n}\n\n/**\n * Format microSTX to STX string (6 decimals).\n * @example formatStx(1000000n) → \"1.0\"\n */\nexport function formatStx(microStx: bigint | number | string): string {\n\treturn formatUnits(microStx, 6);\n}\n\n/**\n * Parse STX string to microSTX bigint (6 decimals).\n * @example parseStx(\"1.5\") → 1500000n\n */\nexport function parseStx(stx: string | number): bigint {\n\treturn parseUnits(stx, 6);\n}\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";AAKO,SAAS,WAAW,CAC1B,OACA,UACS;AAAA,EACT,IAAI,IAAI,OAAO,KAAK;AAAA,EAEpB,MAAM,WAAW,IAAI;AAAA,EACrB,IAAI;AAAA,IAAU,IAAI,CAAC;AAAA,EAEnB,MAAM,UAAU,OAAO,OAAO,QAAQ;AAAA,EACtC,MAAM,WAAW,IAAI,SAAS,SAAS;AAAA,EACvC,IAAI,YAAY,IAAI,SAAS,SAAS,EAAE,SAAS,UAAU,GAAG;AAAA,EAG9D,WAAW,SAAS,QAAQ,OAAO,EAAE,KAAK;AAAA,EAE1C,MAAM,SAAS,GAAG,WAAW;AAAA,EAC7B,OAAO,WAAW,IAAI,WAAW;AAAA;AAQlC,IAAM,iBAAiB;AAEhB,SAAS,UAAU,CAAC,OAAwB,UAA0B;AAAA,EAC5E,IAAI,OAAO,UAAU,YAAY,CAAC,OAAO,SAAS,KAAK,GAAG;AAAA,IACzD,MAAM,IAAI,WAAW,gBAAgB,2BAA2B;AAAA,EACjE;AAAA,EAKA,IAAI,MAAM,OAAO,UAAU,WAAW,MAAM,QAAQ,QAAQ,IAAI,MAAM,KAAK;AAAA,EAC3E,IAAI,CAAC,eAAe,KAAK,GAAG,GAAG;AAAA,IAC9B,MAAM,IAAI,WACT,iBAAiB,mFAClB;AAAA,EACD;AAAA,EACA,IAAI,OAAO,UAAU,YAAY,OAAO,GAAG,MAAM,OAAO;AAAA,IACvD,MAAM,IAAI,WACT,gBAAgB,cAAc,oEAC/B;AAAA,EACD;AAAA,EAEA,MAAM,WAAW,IAAI,WAAW,GAAG;AAAA,EACnC,IAAI;AAAA,IAAU,MAAM,IAAI,MAAM,CAAC;AAAA,EAE/B,OAAO,UAAU,IAAI,WAAW,MAAM,IAAI,MAAM,GAAG;AAAA,EAEnD,IAAI,SAAS,SAAS,UAAU;AAAA,IAC/B,MAAM,IAAI,MACT,6BAA6B,cAAc,SAAS,2BAA2B,UAChF;AAAA,EACD;AAAA,EAEA,MAAM,SAAS,SAAS,OAAO,UAAU,GAAG;AAAA,EAC5C,MAAM,SAAS,OAAO,UAAU,MAAM;AAAA,EACtC,OAAO,WAAW,CAAC,SAAS;AAAA;AAOtB,SAAS,SAAS,CAAC,UAA4C;AAAA,EACrE,OAAO,YAAY,UAAU,CAAC;AAAA;AAOxB,SAAS,QAAQ,CAAC,KAA8B;AAAA,EACtD,OAAO,WAAW,KAAK,CAAC;AAAA;",
|
|
8
|
+
"debugId": "051ADFBB0CC9BDC664756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -10,10 +10,10 @@ import {
|
|
|
10
10
|
convertPostCondition,
|
|
11
11
|
fromHex,
|
|
12
12
|
serializeTransaction
|
|
13
|
-
} from "./stacks-
|
|
13
|
+
} from "./stacks-51ybf135.js";
|
|
14
14
|
import {
|
|
15
15
|
Cl
|
|
16
|
-
} from "./stacks-
|
|
16
|
+
} from "./stacks-69nq48jp.js";
|
|
17
17
|
import {
|
|
18
18
|
bytesToHex,
|
|
19
19
|
c32address,
|
|
@@ -600,4 +600,4 @@ async function signSponsorWithAccount(tx, account) {
|
|
|
600
600
|
export { createSingleSigSpendingCondition, createStandardAuth, createSponsoredAuth, sigHashPreSign, sigHashPostSign, nextSignature, isNonSequential, makeMultiSigAddress, createMultiSigSpendingCondition, replayMultiSigSigHash, signMultiSig, signMultiSigWithAccount, finalizeMultiSig, combineMultiSigSignatures, buildTokenTransfer, buildContractCall, buildContractDeploy, signBegin, signTransaction, signTransactionWithAccount, getTransactionId, getOriginSigHash, signSponsor, signSponsorWithAccount };
|
|
601
601
|
|
|
602
602
|
//# debugId=45532CA41238B4F664756E2164756E21
|
|
603
|
-
//# sourceMappingURL=stacks-
|
|
603
|
+
//# sourceMappingURL=stacks-9c1yam8b.js.map
|
|
@@ -146,16 +146,17 @@ function blockHash(header, { display = false } = {}) {
|
|
|
146
146
|
|
|
147
147
|
// src/bitcoin/address.ts
|
|
148
148
|
var import_secp256k1 = require("@noble/curves/secp256k1.js");
|
|
149
|
+
var import_base = require("@scure/base");
|
|
149
150
|
var BITCOIN_NETWORK_PARAMS = {
|
|
150
151
|
mainnet: { p2pkh: 0, p2sh: 5, hrp: "bc" },
|
|
151
152
|
testnet: { p2pkh: 111, p2sh: 196, hrp: "tb" },
|
|
152
153
|
regtest: { p2pkh: 111, p2sh: 196, hrp: "bcrt" }
|
|
153
154
|
};
|
|
154
155
|
var NETWORK_PARAMS = BITCOIN_NETWORK_PARAMS;
|
|
155
|
-
function
|
|
156
|
+
function base58CheckEncode(version, payload) {
|
|
156
157
|
const data = concatBytes(Uint8Array.of(version), payload);
|
|
157
158
|
const checksum = doubleSha256(data).slice(0, 4);
|
|
158
|
-
return base58.encode(concatBytes(data, checksum));
|
|
159
|
+
return import_base.base58.encode(concatBytes(data, checksum));
|
|
159
160
|
}
|
|
160
161
|
function formatBitcoinAddress(parsed, network = "mainnet") {
|
|
161
162
|
const params = NETWORK_PARAMS[network];
|
|
@@ -164,14 +165,14 @@ function formatBitcoinAddress(parsed, network = "mainnet") {
|
|
|
164
165
|
return;
|
|
165
166
|
switch (parsed.type) {
|
|
166
167
|
case "p2pkh":
|
|
167
|
-
return
|
|
168
|
+
return base58CheckEncode(params.p2pkh, hash);
|
|
168
169
|
case "p2sh":
|
|
169
|
-
return
|
|
170
|
+
return base58CheckEncode(params.p2sh, hash);
|
|
170
171
|
case "p2wpkh":
|
|
171
172
|
case "p2wsh":
|
|
172
|
-
return bech32.encode(params.hrp, [0, ...bech32.toWords(hash)]);
|
|
173
|
+
return import_base.bech32.encode(params.hrp, [0, ...import_base.bech32.toWords(hash)]);
|
|
173
174
|
case "p2tr":
|
|
174
|
-
return bech32m.encode(params.hrp, [1, ...bech32m.toWords(hash)]);
|
|
175
|
+
return import_base.bech32m.encode(params.hrp, [1, ...import_base.bech32m.toWords(hash)]);
|
|
175
176
|
default:
|
|
176
177
|
return;
|
|
177
178
|
}
|
|
@@ -195,7 +196,7 @@ function publicKeyToP2wpkhAddress(publicKey, network = "mainnet") {
|
|
|
195
196
|
if (pubkey.length !== 33)
|
|
196
197
|
throw new Error(`Expected 33-byte compressed pubkey, got ${pubkey.length}`);
|
|
197
198
|
const params = NETWORK_PARAMS[network];
|
|
198
|
-
return bech32.encode(params.hrp, [0, ...bech32.toWords(hash160(pubkey))]);
|
|
199
|
+
return import_base.bech32.encode(params.hrp, [0, ...import_base.bech32.toWords(hash160(pubkey))]);
|
|
199
200
|
}
|
|
200
201
|
function publicKeyToP2trAddress(publicKey, network = "mainnet") {
|
|
201
202
|
const pubkey = toPubkeyBytes(publicKey);
|
|
@@ -204,8 +205,8 @@ function publicKeyToP2trAddress(publicKey, network = "mainnet") {
|
|
|
204
205
|
throw new Error(`Expected 33-byte compressed or 32-byte x-only pubkey, got ${pubkey.length}`);
|
|
205
206
|
const params = NETWORK_PARAMS[network];
|
|
206
207
|
const outputKey = taprootTweakPubkey(xonly);
|
|
207
|
-
return bech32m.encode(params.hrp, [1, ...bech32m.toWords(outputKey)]);
|
|
208
|
+
return import_base.bech32m.encode(params.hrp, [1, ...import_base.bech32m.toWords(outputKey)]);
|
|
208
209
|
}
|
|
209
210
|
|
|
210
|
-
//# debugId=
|
|
211
|
-
//# sourceMappingURL=stacks-
|
|
211
|
+
//# debugId=1DF872A8095B935464756E2164756E21
|
|
212
|
+
//# sourceMappingURL=stacks-bdgh9n83.cjs.map
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
"sources": ["../src/bitcoin/serialize.ts", "../src/bitcoin/address.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import { concatBytes } from \"../utils/encoding.ts\";\nimport { sha256 } from \"../utils/hash.ts\";\n\n/**\n * Bitcoin double-SHA256: `sha256(sha256(bytes))`. This is the hash Bitcoin uses\n * for txids, block headers, and merkle nodes — NOT the same as the Stacks\n * `txidFromBytes` (which uses sha512_256), so it lives here, not in `utils/hash`.\n */\nexport function doubleSha256(bytes: Uint8Array): Uint8Array {\n\treturn sha256(sha256(bytes));\n}\n\n/**\n * Reverse a byte array. Bitcoin hashes are computed and stored in *internal*\n * (little-endian) order but *displayed* big-endian, so the two differ by a\n * reversal. The SIP-044 built-ins consume internal order; only reverse for\n * display / when matching an explorer value.\n */\nexport function reverseBytes(bytes: Uint8Array): Uint8Array {\n\tconst out = new Uint8Array(bytes.length);\n\tfor (let i = 0; i < bytes.length; i++) {\n\t\tout[i] = bytes[bytes.length - 1 - i] as number;\n\t}\n\treturn out;\n}\n\n/**\n * A little-endian, varint-aware byte reader for Bitcoin serialization. The\n * shared `utils/BytesReader` is big-endian only; Bitcoin tx fields are\n * little-endian with compact-size (varint) length prefixes.\n */\nexport class BtcReader {\n\tprivate readonly data: Uint8Array;\n\tprivate readonly view: DataView;\n\tpublic offset = 0;\n\n\tconstructor(data: Uint8Array) {\n\t\tthis.data = data;\n\t\tthis.view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n\t}\n\n\tget length(): number {\n\t\treturn this.data.length;\n\t}\n\n\treadUInt8(): number {\n\t\tconst v = this.view.getUint8(this.offset);\n\t\tthis.offset += 1;\n\t\treturn v;\n\t}\n\n\t/** Read the next byte without advancing. */\n\tpeekUInt8(): number {\n\t\treturn this.view.getUint8(this.offset);\n\t}\n\n\treadUInt32LE(): number {\n\t\tconst v = this.view.getUint32(this.offset, true);\n\t\tthis.offset += 4;\n\t\treturn v;\n\t}\n\n\treadUInt64LE(): bigint {\n\t\tconst v = this.view.getBigUint64(this.offset, true);\n\t\tthis.offset += 8;\n\t\treturn v;\n\t}\n\n\treadBytes(n: number): Uint8Array {\n\t\tif (this.offset + n > this.data.length) {\n\t\t\tthrow new Error(\n\t\t\t\t`Bitcoin tx underflow: need ${n} bytes at offset ${this.offset}, have ${this.data.length}`,\n\t\t\t);\n\t\t}\n\t\tconst slice = this.data.slice(this.offset, this.offset + n);\n\t\tthis.offset += n;\n\t\treturn slice;\n\t}\n\n\t/** Read a Bitcoin compact-size unsigned integer (varint). */\n\treadVarInt(): number {\n\t\tconst first = this.readUInt8();\n\t\tif (first < 0xfd) return first;\n\t\tif (first === 0xfd) {\n\t\t\tconst v = this.view.getUint16(this.offset, true);\n\t\t\tthis.offset += 2;\n\t\t\treturn v;\n\t\t}\n\t\tif (first === 0xfe) {\n\t\t\treturn this.readUInt32LE();\n\t\t}\n\t\tconst big = this.readUInt64LE();\n\t\tif (big > BigInt(Number.MAX_SAFE_INTEGER)) {\n\t\t\tthrow new Error(\"Bitcoin varint exceeds safe integer range\");\n\t\t}\n\t\treturn Number(big);\n\t}\n}\n\nexport interface BitcoinTxInput {\n\t/** Previous output txid, in serialized (internal) byte order. */\n\tprevTxid: Uint8Array;\n\tvout: number;\n\tscriptSig: Uint8Array;\n\tsequence: number;\n}\n\nexport interface BitcoinTxOutput {\n\t/** Output value in satoshis. */\n\tvalue: bigint;\n\tscriptPubKey: Uint8Array;\n}\n\nexport interface ParsedBitcoinTx {\n\tversion: number;\n\thasWitness: boolean;\n\tinputs: BitcoinTxInput[];\n\toutputs: BitcoinTxOutput[];\n\tlocktime: number;\n\t/**\n\t * The legacy txid as the raw double-SHA256 in *internal* byte order — ready\n\t * to pass as the leaf to `verify-merkle-proof`. Witness data is excluded\n\t * (the txid is computed over the legacy serialization), so this is stable for\n\t * both legacy and SegWit txs. Use `reverseBytes` for the displayed form.\n\t */\n\ttxidInternal: Uint8Array;\n}\n\ninterface ScanResult {\n\tversion: number;\n\thasWitness: boolean;\n\tinputs: BitcoinTxInput[];\n\toutputs: BitcoinTxOutput[];\n\tlocktime: number;\n\t/** The legacy (witness-stripped) serialization — what the txid is hashed over. */\n\tlegacy: Uint8Array;\n}\n\n/**\n * Single-pass scan of a raw Bitcoin tx. Captures the inputs/outputs slice and\n * reassembles the legacy serialization so both `parseBitcoinTx` and\n * `stripWitness` share one parser (and one set of foot-guns).\n */\nfunction scanTx(rawTx: Uint8Array): ScanResult {\n\tconst r = new BtcReader(rawTx);\n\tconst version = r.readUInt32LE();\n\n\t// SegWit marker (0x00) + flag (0x01) sit immediately after the version. A\n\t// legacy tx can never have a zero input count, so 0x00 here is unambiguous.\n\tlet hasWitness = false;\n\tif (r.peekUInt8() === 0x00) {\n\t\tr.readUInt8(); // marker\n\t\tconst flag = r.readUInt8();\n\t\tif (flag !== 0x01) {\n\t\t\tthrow new Error(`Unexpected SegWit flag 0x${flag.toString(16)}`);\n\t\t}\n\t\thasWitness = true;\n\t}\n\n\tconst bodyStart = r.offset;\n\tconst inputCount = r.readVarInt();\n\tconst inputs: BitcoinTxInput[] = [];\n\tfor (let i = 0; i < inputCount; i++) {\n\t\tconst prevTxid = r.readBytes(32);\n\t\tconst vout = r.readUInt32LE();\n\t\tconst scriptSig = r.readBytes(r.readVarInt());\n\t\tconst sequence = r.readUInt32LE();\n\t\tinputs.push({ prevTxid, vout, scriptSig, sequence });\n\t}\n\n\tconst outputCount = r.readVarInt();\n\tconst outputs: BitcoinTxOutput[] = [];\n\tfor (let i = 0; i < outputCount; i++) {\n\t\tconst value = r.readUInt64LE();\n\t\tconst scriptPubKey = r.readBytes(r.readVarInt());\n\t\toutputs.push({ value, scriptPubKey });\n\t}\n\tconst bodyEnd = r.offset;\n\n\tif (hasWitness) {\n\t\tfor (let i = 0; i < inputCount; i++) {\n\t\t\tconst itemCount = r.readVarInt();\n\t\t\tfor (let j = 0; j < itemCount; j++) {\n\t\t\t\tr.readBytes(r.readVarInt());\n\t\t\t}\n\t\t}\n\t}\n\n\tconst locktime = r.readUInt32LE();\n\n\tconst legacy = concatBytes(\n\t\trawTx.slice(0, 4),\n\t\trawTx.slice(bodyStart, bodyEnd),\n\t\trawTx.slice(r.offset - 4, r.offset),\n\t);\n\n\treturn { version, hasWitness, inputs, outputs, locktime, legacy };\n}\n\n/** Parse a serialized Bitcoin tx (legacy or SegWit) into its fields + txid. */\nexport function parseBitcoinTx(rawTx: Uint8Array): ParsedBitcoinTx {\n\tconst s = scanTx(rawTx);\n\treturn {\n\t\tversion: s.version,\n\t\thasWitness: s.hasWitness,\n\t\tinputs: s.inputs,\n\t\toutputs: s.outputs,\n\t\tlocktime: s.locktime,\n\t\ttxidInternal: doubleSha256(s.legacy),\n\t};\n}\n\n/**\n * Return the legacy (witness-stripped) serialization of a tx. For a legacy tx\n * this is the input unchanged; for a SegWit tx the marker, flag, and witness\n * stack are removed. This is the byte string the txid is hashed over.\n */\nexport function stripWitness(rawTx: Uint8Array): Uint8Array {\n\treturn scanTx(rawTx).legacy;\n}\n\n/**\n * Compute a tx's id from its raw serialization. Internal byte order by default\n * (the merkle leaf / built-in input); pass `{ display: true }` for the\n * explorer-style big-endian form.\n */\nexport function bitcoinTxid(\n\trawTx: Uint8Array,\n\t{ display = false }: { display?: boolean } = {},\n): Uint8Array {\n\tconst txid = doubleSha256(scanTx(rawTx).legacy);\n\treturn display ? reverseBytes(txid) : txid;\n}\n\nexport interface BlockHeader {\n\tversion: number;\n\t/** Previous block hash, internal byte order. */\n\tprevBlock: Uint8Array;\n\t/** Merkle root, internal byte order — pairs with `verify-merkle-proof`. */\n\tmerkleRoot: Uint8Array;\n\ttimestamp: number;\n\tbits: number;\n\tnonce: number;\n}\n\n/** Parse an 80-byte Bitcoin block header into its fields (hashes internal order). */\nexport function parseBlockHeader(header: Uint8Array): BlockHeader {\n\tif (header.length !== 80) {\n\t\tthrow new Error(\n\t\t\t`Bitcoin block header must be 80 bytes, got ${header.length}`,\n\t\t);\n\t}\n\tconst r = new BtcReader(header);\n\tconst version = r.readUInt32LE();\n\tconst prevBlock = r.readBytes(32);\n\tconst merkleRoot = r.readBytes(32);\n\tconst timestamp = r.readUInt32LE();\n\tconst bits = r.readUInt32LE();\n\tconst nonce = r.readUInt32LE();\n\treturn { version, prevBlock, merkleRoot, timestamp, bits, nonce };\n}\n\n/**\n * Hash an 80-byte block header (double-SHA256). Internal byte order by default;\n * `{ display: true }` for the explorer-style block hash.\n */\nexport function blockHash(\n\theader: Uint8Array,\n\t{ display = false }: { display?: boolean } = {},\n): Uint8Array {\n\tconst hash = doubleSha256(header);\n\treturn display ? reverseBytes(hash) : hash;\n}\n",
|
|
6
|
-
"import { schnorr, secp256k1 } from \"@noble/curves/secp256k1.js\";\nimport { base58, bech32, bech32m } from \"@scure/base\";\nimport { concatBytes, hexToBytes } from \"../utils/encoding.ts\";\nimport { hash160 } from \"../utils/hash.ts\";\nimport type { ParsedOutputScript } from \"./codec.ts\";\nimport type { BitcoinNetwork } from \"./constants.ts\";\nimport { doubleSha256 } from \"./serialize.ts\";\n\n/** Address-encoding parameters (base58 version bytes + bech32 hrp) per network. */\nexport const BITCOIN_NETWORK_PARAMS = {\n\tmainnet: { p2pkh: 0x00, p2sh: 0x05, hrp: \"bc\" },\n\ttestnet: { p2pkh: 0x6f, p2sh: 0xc4, hrp: \"tb\" },\n\tregtest: { p2pkh: 0x6f, p2sh: 0xc4, hrp: \"bcrt\" },\n} as const;\n\nconst NETWORK_PARAMS = BITCOIN_NETWORK_PARAMS;\n\n/** Base58Check-encode a versioned 20-byte payload (legacy P2PKH / P2SH). */\
|
|
6
|
+
"import { schnorr, secp256k1 } from \"@noble/curves/secp256k1.js\";\nimport { base58, bech32, bech32m } from \"@scure/base\";\nimport { concatBytes, hexToBytes } from \"../utils/encoding.ts\";\nimport { hash160 } from \"../utils/hash.ts\";\nimport type { ParsedOutputScript } from \"./codec.ts\";\nimport type { BitcoinNetwork } from \"./constants.ts\";\nimport { doubleSha256 } from \"./serialize.ts\";\n\n/** Address-encoding parameters (base58 version bytes + bech32 hrp) per network. */\nexport const BITCOIN_NETWORK_PARAMS = {\n\tmainnet: { p2pkh: 0x00, p2sh: 0x05, hrp: \"bc\" },\n\ttestnet: { p2pkh: 0x6f, p2sh: 0xc4, hrp: \"tb\" },\n\tregtest: { p2pkh: 0x6f, p2sh: 0xc4, hrp: \"bcrt\" },\n} as const;\n\nconst NETWORK_PARAMS = BITCOIN_NETWORK_PARAMS;\n\n/** Base58Check-encode a versioned 20-byte payload (legacy P2PKH / P2SH).\n * The one encoder for the package; pox5 and sbtc address code import it. */\nexport function base58CheckEncode(\n\tversion: number,\n\tpayload: Uint8Array,\n): string {\n\tconst data = concatBytes(Uint8Array.of(version), payload);\n\tconst checksum = doubleSha256(data).slice(0, 4);\n\treturn base58.encode(concatBytes(data, checksum));\n}\n\n/**\n * Render a parsed output script as a Bitcoin address for the given network.\n * Returns `undefined` for scripts without a standard address (OP_RETURN, P2PK,\n * unknown). Address encoding is network-dependent, which is why this is separate\n * from the pure `parseOutputScript` decoder.\n */\nexport function formatBitcoinAddress(\n\tparsed: ParsedOutputScript,\n\tnetwork: BitcoinNetwork = \"mainnet\",\n): string | undefined {\n\tconst params = NETWORK_PARAMS[network];\n\tconst hash = parsed.hash;\n\tif (!hash) return undefined;\n\tswitch (parsed.type) {\n\t\tcase \"p2pkh\":\n\t\t\treturn base58CheckEncode(params.p2pkh, hash);\n\t\tcase \"p2sh\":\n\t\t\treturn base58CheckEncode(params.p2sh, hash);\n\t\tcase \"p2wpkh\":\n\t\tcase \"p2wsh\":\n\t\t\treturn bech32.encode(params.hrp, [0, ...bech32.toWords(hash)]);\n\t\tcase \"p2tr\":\n\t\t\treturn bech32m.encode(params.hrp, [1, ...bech32m.toWords(hash)]);\n\t\tdefault:\n\t\t\treturn undefined;\n\t}\n}\n\nfunction toPubkeyBytes(publicKey: Uint8Array | string): Uint8Array {\n\treturn typeof publicKey === \"string\" ? hexToBytes(publicKey) : publicKey;\n}\n\n/**\n * BIP341 key-path tweak: lift the x-only internal key to a point, add\n * `tapTweakHash(P)·G` (no script tree), and return the x-only output key.\n */\nexport function taprootTweakPubkey(xonly: Uint8Array): Uint8Array {\n\tif (xonly.length !== 32)\n\t\tthrow new Error(`Expected 32-byte x-only pubkey, got ${xonly.length}`);\n\tconst tweak = schnorr.utils.taggedHash(\"TapTweak\", xonly);\n\tconst t = BigInt(\n\t\t`0x${Array.from(tweak, (b) => b.toString(16).padStart(2, \"0\")).join(\"\")}`,\n\t);\n\tif (t >= secp256k1.Point.Fn.ORDER)\n\t\tthrow new Error(\"Invalid tap tweak (exceeds curve order)\");\n\tconst internal = secp256k1.Point.fromBytes(\n\t\tconcatBytes(Uint8Array.of(0x02), xonly),\n\t);\n\tconst output = internal.add(secp256k1.Point.BASE.multiply(t));\n\treturn output.toBytes(true).slice(1);\n}\n\n/**\n * Derive the native-segwit (P2WPKH, bech32 v0) address for a compressed\n * public key.\n */\nexport function publicKeyToP2wpkhAddress(\n\tpublicKey: Uint8Array | string,\n\tnetwork: BitcoinNetwork = \"mainnet\",\n): string {\n\tconst pubkey = toPubkeyBytes(publicKey);\n\tif (pubkey.length !== 33)\n\t\tthrow new Error(`Expected 33-byte compressed pubkey, got ${pubkey.length}`);\n\tconst params = NETWORK_PARAMS[network];\n\treturn bech32.encode(params.hrp, [0, ...bech32.toWords(hash160(pubkey))]);\n}\n\n/**\n * Derive the taproot (P2TR, bech32m v1) address for a public key — BIP341\n * key-path spend, no script tree. Accepts a 33-byte compressed key (the\n * parity byte is dropped) or a 32-byte x-only key.\n */\nexport function publicKeyToP2trAddress(\n\tpublicKey: Uint8Array | string,\n\tnetwork: BitcoinNetwork = \"mainnet\",\n): string {\n\tconst pubkey = toPubkeyBytes(publicKey);\n\tconst xonly =\n\t\tpubkey.length === 33\n\t\t\t? pubkey.slice(1)\n\t\t\t: pubkey.length === 32\n\t\t\t\t? pubkey\n\t\t\t\t: undefined;\n\tif (!xonly)\n\t\tthrow new Error(\n\t\t\t`Expected 33-byte compressed or 32-byte x-only pubkey, got ${pubkey.length}`,\n\t\t);\n\tconst params = NETWORK_PARAMS[network];\n\tconst outputKey = taprootTweakPubkey(xonly);\n\treturn bech32m.encode(params.hrp, [1, ...bech32m.toWords(outputKey)]);\n}\n"
|
|
7
7
|
],
|
|
8
|
-
"mappings": ";AAQO,SAAS,YAAY,CAAC,OAA+B;AAAA,EAC3D,OAAO,mBAAO,mBAAO,KAAK,CAAC;AAAA;AASrB,SAAS,YAAY,CAAC,OAA+B;AAAA,EAC3D,MAAM,MAAM,IAAI,WAAW,MAAM,MAAM;AAAA,EACvC,SAAS,IAAI,EAAG,IAAI,MAAM,QAAQ,KAAK;AAAA,IACtC,IAAI,KAAK,MAAM,MAAM,SAAS,IAAI;AAAA,EACnC;AAAA,EACA,OAAO;AAAA;AAAA;AAQD,MAAM,UAAU;AAAA,EACL;AAAA,EACA;AAAA,EACV,SAAS;AAAA,EAEhB,WAAW,CAAC,MAAkB;AAAA,IAC7B,KAAK,OAAO;AAAA,IACZ,KAAK,OAAO,IAAI,SAAS,KAAK,QAAQ,KAAK,YAAY,KAAK,UAAU;AAAA;AAAA,MAGnE,MAAM,GAAW;AAAA,IACpB,OAAO,KAAK,KAAK;AAAA;AAAA,EAGlB,SAAS,GAAW;AAAA,IACnB,MAAM,IAAI,KAAK,KAAK,SAAS,KAAK,MAAM;AAAA,IACxC,KAAK,UAAU;AAAA,IACf,OAAO;AAAA;AAAA,EAIR,SAAS,GAAW;AAAA,IACnB,OAAO,KAAK,KAAK,SAAS,KAAK,MAAM;AAAA;AAAA,EAGtC,YAAY,GAAW;AAAA,IACtB,MAAM,IAAI,KAAK,KAAK,UAAU,KAAK,QAAQ,IAAI;AAAA,IAC/C,KAAK,UAAU;AAAA,IACf,OAAO;AAAA;AAAA,EAGR,YAAY,GAAW;AAAA,IACtB,MAAM,IAAI,KAAK,KAAK,aAAa,KAAK,QAAQ,IAAI;AAAA,IAClD,KAAK,UAAU;AAAA,IACf,OAAO;AAAA;AAAA,EAGR,SAAS,CAAC,GAAuB;AAAA,IAChC,IAAI,KAAK,SAAS,IAAI,KAAK,KAAK,QAAQ;AAAA,MACvC,MAAM,IAAI,MACT,8BAA8B,qBAAqB,KAAK,gBAAgB,KAAK,KAAK,QACnF;AAAA,IACD;AAAA,IACA,MAAM,QAAQ,KAAK,KAAK,MAAM,KAAK,QAAQ,KAAK,SAAS,CAAC;AAAA,IAC1D,KAAK,UAAU;AAAA,IACf,OAAO;AAAA;AAAA,EAIR,UAAU,GAAW;AAAA,IACpB,MAAM,QAAQ,KAAK,UAAU;AAAA,IAC7B,IAAI,QAAQ;AAAA,MAAM,OAAO;AAAA,IACzB,IAAI,UAAU,KAAM;AAAA,MACnB,MAAM,IAAI,KAAK,KAAK,UAAU,KAAK,QAAQ,IAAI;AAAA,MAC/C,KAAK,UAAU;AAAA,MACf,OAAO;AAAA,IACR;AAAA,IACA,IAAI,UAAU,KAAM;AAAA,MACnB,OAAO,KAAK,aAAa;AAAA,IAC1B;AAAA,IACA,MAAM,MAAM,KAAK,aAAa;AAAA,IAC9B,IAAI,MAAM,OAAO,OAAO,gBAAgB,GAAG;AAAA,MAC1C,MAAM,IAAI,MAAM,2CAA2C;AAAA,IAC5D;AAAA,IACA,OAAO,OAAO,GAAG;AAAA;AAEnB;AA8CA,SAAS,MAAM,CAAC,OAA+B;AAAA,EAC9C,MAAM,IAAI,IAAI,UAAU,KAAK;AAAA,EAC7B,MAAM,UAAU,EAAE,aAAa;AAAA,EAI/B,IAAI,aAAa;AAAA,EACjB,IAAI,EAAE,UAAU,MAAM,GAAM;AAAA,IAC3B,EAAE,UAAU;AAAA,IACZ,MAAM,OAAO,EAAE,UAAU;AAAA,IACzB,IAAI,SAAS,GAAM;AAAA,MAClB,MAAM,IAAI,MAAM,4BAA4B,KAAK,SAAS,EAAE,GAAG;AAAA,IAChE;AAAA,IACA,aAAa;AAAA,EACd;AAAA,EAEA,MAAM,YAAY,EAAE;AAAA,EACpB,MAAM,aAAa,EAAE,WAAW;AAAA,EAChC,MAAM,SAA2B,CAAC;AAAA,EAClC,SAAS,IAAI,EAAG,IAAI,YAAY,KAAK;AAAA,IACpC,MAAM,WAAW,EAAE,UAAU,EAAE;AAAA,IAC/B,MAAM,OAAO,EAAE,aAAa;AAAA,IAC5B,MAAM,YAAY,EAAE,UAAU,EAAE,WAAW,CAAC;AAAA,IAC5C,MAAM,WAAW,EAAE,aAAa;AAAA,IAChC,OAAO,KAAK,EAAE,UAAU,MAAM,WAAW,SAAS,CAAC;AAAA,EACpD;AAAA,EAEA,MAAM,cAAc,EAAE,WAAW;AAAA,EACjC,MAAM,UAA6B,CAAC;AAAA,EACpC,SAAS,IAAI,EAAG,IAAI,aAAa,KAAK;AAAA,IACrC,MAAM,QAAQ,EAAE,aAAa;AAAA,IAC7B,MAAM,eAAe,EAAE,UAAU,EAAE,WAAW,CAAC;AAAA,IAC/C,QAAQ,KAAK,EAAE,OAAO,aAAa,CAAC;AAAA,EACrC;AAAA,EACA,MAAM,UAAU,EAAE;AAAA,EAElB,IAAI,YAAY;AAAA,IACf,SAAS,IAAI,EAAG,IAAI,YAAY,KAAK;AAAA,MACpC,MAAM,YAAY,EAAE,WAAW;AAAA,MAC/B,SAAS,IAAI,EAAG,IAAI,WAAW,KAAK;AAAA,QACnC,EAAE,UAAU,EAAE,WAAW,CAAC;AAAA,MAC3B;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAM,WAAW,EAAE,aAAa;AAAA,EAEhC,MAAM,SAAS,YACd,MAAM,MAAM,GAAG,CAAC,GAChB,MAAM,MAAM,WAAW,OAAO,GAC9B,MAAM,MAAM,EAAE,SAAS,GAAG,EAAE,MAAM,CACnC;AAAA,EAEA,OAAO,EAAE,SAAS,YAAY,QAAQ,SAAS,UAAU,OAAO;AAAA;AAI1D,SAAS,cAAc,CAAC,OAAoC;AAAA,EAClE,MAAM,IAAI,OAAO,KAAK;AAAA,EACtB,OAAO;AAAA,IACN,SAAS,EAAE;AAAA,IACX,YAAY,EAAE;AAAA,IACd,QAAQ,EAAE;AAAA,IACV,SAAS,EAAE;AAAA,IACX,UAAU,EAAE;AAAA,IACZ,cAAc,aAAa,EAAE,MAAM;AAAA,EACpC;AAAA;AAQM,SAAS,YAAY,CAAC,OAA+B;AAAA,EAC3D,OAAO,OAAO,KAAK,EAAE;AAAA;AAQf,SAAS,WAAW,CAC1B,SACE,UAAU,UAAiC,CAAC,GACjC;AAAA,EACb,MAAM,OAAO,aAAa,OAAO,KAAK,EAAE,MAAM;AAAA,EAC9C,OAAO,UAAU,aAAa,IAAI,IAAI;AAAA;AAehC,SAAS,gBAAgB,CAAC,QAAiC;AAAA,EACjE,IAAI,OAAO,WAAW,IAAI;AAAA,IACzB,MAAM,IAAI,MACT,8CAA8C,OAAO,QACtD;AAAA,EACD;AAAA,EACA,MAAM,IAAI,IAAI,UAAU,MAAM;AAAA,EAC9B,MAAM,UAAU,EAAE,aAAa;AAAA,EAC/B,MAAM,YAAY,EAAE,UAAU,EAAE;AAAA,EAChC,MAAM,aAAa,EAAE,UAAU,EAAE;AAAA,EACjC,MAAM,YAAY,EAAE,aAAa;AAAA,EACjC,MAAM,OAAO,EAAE,aAAa;AAAA,EAC5B,MAAM,QAAQ,EAAE,aAAa;AAAA,EAC7B,OAAO,EAAE,SAAS,WAAW,YAAY,WAAW,MAAM,MAAM;AAAA;AAO1D,SAAS,SAAS,CACxB,UACE,UAAU,UAAiC,CAAC,GACjC;AAAA,EACb,MAAM,OAAO,aAAa,MAAM;AAAA,EAChC,OAAO,UAAU,aAAa,IAAI,IAAI;AAAA;;;AC/QJ,IAAnC;
|
|
9
|
-
"debugId": "
|
|
8
|
+
"mappings": "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",
|
|
9
|
+
"debugId": "1DF872A8095B935464756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|