@babylonlabs-io/ts-sdk 0.61.0 → 0.62.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/dist/PeginManager-BLBB_vMl.cjs +2 -0
  2. package/dist/PeginManager-BLBB_vMl.cjs.map +1 -0
  3. package/dist/{PeginManager-C2vPVud-.js → PeginManager-Dj6_tWRA.js} +78 -67
  4. package/dist/PeginManager-Dj6_tWRA.js.map +1 -0
  5. package/dist/{buildAndBroadcastRefund-CoPc7UHA.js → buildAndBroadcastRefund-CH2awK6h.js} +552 -447
  6. package/dist/buildAndBroadcastRefund-CH2awK6h.js.map +1 -0
  7. package/dist/buildAndBroadcastRefund-CYzhA_B8.cjs +2 -0
  8. package/dist/buildAndBroadcastRefund-CYzhA_B8.cjs.map +1 -0
  9. package/dist/errors-D2zp7Vzk.cjs +2 -0
  10. package/dist/errors-D2zp7Vzk.cjs.map +1 -0
  11. package/dist/errors-lMX8Q6zb.js +137 -0
  12. package/dist/errors-lMX8Q6zb.js.map +1 -0
  13. package/dist/index.cjs +1 -1
  14. package/dist/index.js +204 -193
  15. package/dist/{noPayout-qUEtRKc_.cjs → noPayout-CbxQqBw1.cjs} +2 -2
  16. package/dist/{noPayout-qUEtRKc_.cjs.map → noPayout-CbxQqBw1.cjs.map} +1 -1
  17. package/dist/{noPayout-DuE-UyhQ.js → noPayout-oaUVsEjk.js} +2 -2
  18. package/dist/{noPayout-DuE-UyhQ.js.map → noPayout-oaUVsEjk.js.map} +1 -1
  19. package/dist/parseFundingOutpoints-CIO9Ok1L.cjs +2 -0
  20. package/dist/parseFundingOutpoints-CIO9Ok1L.cjs.map +1 -0
  21. package/dist/parseFundingOutpoints-pBRE11Hr.js +92 -0
  22. package/dist/parseFundingOutpoints-pBRE11Hr.js.map +1 -0
  23. package/dist/{signPsbtsWithFallback-eY1YgV13.js → signPsbtsWithFallback-DC4rUCsy.js} +5 -5
  24. package/dist/{signPsbtsWithFallback-eY1YgV13.js.map → signPsbtsWithFallback-DC4rUCsy.js.map} +1 -1
  25. package/dist/{signPsbtsWithFallback-Xs4jZw5z.cjs → signPsbtsWithFallback-DbOmw8Ou.cjs} +2 -2
  26. package/dist/{signPsbtsWithFallback-Xs4jZw5z.cjs.map → signPsbtsWithFallback-DbOmw8Ou.cjs.map} +1 -1
  27. package/dist/tbv/core/deposit-terms/__tests__/rebuildDepositTermsCore.test.d.ts +16 -0
  28. package/dist/tbv/core/deposit-terms/__tests__/rebuildDepositTermsCore.test.d.ts.map +1 -0
  29. package/dist/tbv/core/deposit-terms/commissionCeiling.d.ts +33 -0
  30. package/dist/tbv/core/deposit-terms/commissionCeiling.d.ts.map +1 -0
  31. package/dist/tbv/core/deposit-terms/index.d.ts +2 -0
  32. package/dist/tbv/core/deposit-terms/index.d.ts.map +1 -1
  33. package/dist/tbv/core/deposit-terms/rebuildDepositTermsCore.d.ts +36 -0
  34. package/dist/tbv/core/deposit-terms/rebuildDepositTermsCore.d.ts.map +1 -0
  35. package/dist/tbv/core/index.cjs +1 -1
  36. package/dist/tbv/core/index.js +200 -189
  37. package/dist/tbv/core/managers/PeginManager.d.ts +8 -0
  38. package/dist/tbv/core/managers/PeginManager.d.ts.map +1 -1
  39. package/dist/tbv/core/managers/__tests__/PeginManager.rebuildDepositTerms.test.d.ts +12 -0
  40. package/dist/tbv/core/managers/__tests__/PeginManager.rebuildDepositTerms.test.d.ts.map +1 -0
  41. package/dist/tbv/core/managers/index.cjs +1 -1
  42. package/dist/tbv/core/managers/index.js +2 -2
  43. package/dist/tbv/core/primitives/index.cjs +1 -1
  44. package/dist/tbv/core/primitives/index.js +2 -2
  45. package/dist/tbv/core/primitives/psbt/assertWasmPeginSizing.d.ts +3 -0
  46. package/dist/tbv/core/primitives/psbt/assertWasmPeginSizing.d.ts.map +1 -1
  47. package/dist/tbv/core/services/deposit/__tests__/peginRegistrationDepth.test.d.ts +2 -0
  48. package/dist/tbv/core/services/deposit/__tests__/peginRegistrationDepth.test.d.ts.map +1 -0
  49. package/dist/tbv/core/services/deposit/index.d.ts +1 -0
  50. package/dist/tbv/core/services/deposit/index.d.ts.map +1 -1
  51. package/dist/tbv/core/services/deposit/peginRegistrationDepth.d.ts +87 -0
  52. package/dist/tbv/core/services/deposit/peginRegistrationDepth.d.ts.map +1 -0
  53. package/dist/tbv/core/services/index.cjs +1 -1
  54. package/dist/tbv/core/services/index.js +48 -42
  55. package/dist/tbv/core/utils/eth/waitForTransactionReceiptSmartAware.d.ts +11 -0
  56. package/dist/tbv/core/utils/eth/waitForTransactionReceiptSmartAware.d.ts.map +1 -1
  57. package/dist/tbv/core/vault-secrets/deriveVaultRoot.d.ts +4 -0
  58. package/dist/tbv/core/vault-secrets/deriveVaultRoot.d.ts.map +1 -1
  59. package/dist/tbv/core/vault-secrets/index.cjs +1 -1
  60. package/dist/tbv/core/vault-secrets/index.d.ts +1 -1
  61. package/dist/tbv/core/vault-secrets/index.d.ts.map +1 -1
  62. package/dist/tbv/core/vault-secrets/index.js +9 -8
  63. package/dist/tbv/index.cjs +1 -1
  64. package/dist/tbv/index.js +200 -189
  65. package/dist/{verifyScriptPathSchnorrSignature-CYjK4IP_.cjs → verifyScriptPathSchnorrSignature-B8zK1ctE.cjs} +2 -2
  66. package/dist/verifyScriptPathSchnorrSignature-B8zK1ctE.cjs.map +1 -0
  67. package/dist/{verifyScriptPathSchnorrSignature-Bav08_7R.js → verifyScriptPathSchnorrSignature-XsICweGG.js} +2 -1
  68. package/dist/verifyScriptPathSchnorrSignature-XsICweGG.js.map +1 -0
  69. package/dist/waitForTransactionReceiptSmartAware-AgZ-3WV_.cjs.map +1 -1
  70. package/dist/waitForTransactionReceiptSmartAware-lobLm0q0.js.map +1 -1
  71. package/package.json +1 -1
  72. package/dist/PeginManager-C2vPVud-.js.map +0 -1
  73. package/dist/PeginManager-Cu5Dh6L-.cjs +0 -2
  74. package/dist/PeginManager-Cu5Dh6L-.cjs.map +0 -1
  75. package/dist/buildAndBroadcastRefund-BqYlx6rb.cjs +0 -2
  76. package/dist/buildAndBroadcastRefund-BqYlx6rb.cjs.map +0 -1
  77. package/dist/buildAndBroadcastRefund-CoPc7UHA.js.map +0 -1
  78. package/dist/errors-2aF9oRwM.cjs +0 -2
  79. package/dist/errors-2aF9oRwM.cjs.map +0 -1
  80. package/dist/errors-kXGQXKxZ.js +0 -28
  81. package/dist/errors-kXGQXKxZ.js.map +0 -1
  82. package/dist/parseFundingOutpoints-DUuOAUjA.cjs +0 -2
  83. package/dist/parseFundingOutpoints-DUuOAUjA.cjs.map +0 -1
  84. package/dist/parseFundingOutpoints-deCXK7ft.js +0 -86
  85. package/dist/parseFundingOutpoints-deCXK7ft.js.map +0 -1
  86. package/dist/verifyScriptPathSchnorrSignature-Bav08_7R.js.map +0 -1
  87. package/dist/verifyScriptPathSchnorrSignature-CYjK4IP_.cjs.map +0 -1
@@ -0,0 +1,137 @@
1
+ var w = Object.defineProperty;
2
+ var E = (e, r, s) => r in e ? w(e, r, { enumerable: !0, configurable: !0, writable: !0, value: s }) : e[r] = s;
3
+ var f = (e, r, s) => E(e, typeof r != "symbol" ? r + "" : r, s);
4
+ import { computeMinClaimValue as k, computeMinPeginFee as C, peginP2aAnchorOutput as T, getPrePeginHtlcConnectorInfo as y } from "@babylonlabs-io/babylon-tbv-rust-wasm";
5
+ import { Transaction as A } from "bitcoinjs-lib";
6
+ import { a as M } from "./signPsbtsWithFallback-DC4rUCsy.js";
7
+ import { h as B } from "./verifyScriptPathSchnorrSignature-XsICweGG.js";
8
+ import { s as n } from "./bitcoin-d9eaaZB_.js";
9
+ import { c as v } from "./fundPeginTransaction-B2wyjqp0.js";
10
+ import { f as F } from "./waitForTransactionReceiptSmartAware-lobLm0q0.js";
11
+ import { b as V } from "./PeginManager-Dj6_tWRA.js";
12
+ const P = "DepositTermsRejectedError";
13
+ class $ extends Error {
14
+ constructor(s, i = "device-envelope") {
15
+ super(s);
16
+ f(this, "reason");
17
+ this.name = P, this.reason = i;
18
+ }
19
+ }
20
+ function W(e) {
21
+ if (e instanceof $) return !0;
22
+ if (typeof e != "object" || e === null) return !1;
23
+ const r = e;
24
+ return r.name === P && r.reason === "device-envelope";
25
+ }
26
+ async function j(e) {
27
+ const r = e.siblings.length;
28
+ if (r === 0)
29
+ throw new Error(
30
+ "rebuildDepositTermsCore: at least one sibling is required"
31
+ );
32
+ for (const [o, d] of e.siblings.entries())
33
+ if (d.amount <= 0n)
34
+ throw new Error(
35
+ `rebuildDepositTermsCore: sibling[${o}] has non-positive on-chain pegin amount ${d.amount}; the chain-read vault record is invalid. Resume refused.`
36
+ );
37
+ if (e.prepeginMaxFee <= 0n)
38
+ throw new Error(
39
+ `rebuildDepositTermsCore: prepeginMaxFee must be > 0, got ${e.prepeginMaxFee}`
40
+ );
41
+ const s = n(e.prepeginTxid).toLowerCase(), i = n(
42
+ F(e.fundedPrePeginTxHex)
43
+ ).toLowerCase();
44
+ if (i !== s)
45
+ throw new Error(
46
+ `Funded Pre-PegIn tx hashes to ${i}, expected ${s} (on-chain prepeginTxid). Resume refused.`
47
+ );
48
+ const l = M(
49
+ n(e.fundedPrePeginTxHex)
50
+ );
51
+ if (l === void 0)
52
+ throw new Error(
53
+ "Funded Pre-PegIn carries no single, unambiguous auth-anchor OP_RETURN commitment — it either predates auth anchoring or is malformed. The intent resume path requires the anchor to prove sibling completeness. Resume refused."
54
+ );
55
+ if (l.vout !== r)
56
+ throw new Error(
57
+ `Auth-anchor OP_RETURN at vout ${l.vout} does not match the discovered sibling count ${r}; the discovered sibling set does not cover this transaction's HTLC outputs (a lagging index can cause this — retry later). Resume refused.`
58
+ );
59
+ const g = e.vaultKeeperBtcPubkeys.length, h = e.universalChallengerBtcPubkeys.length, a = await k(
60
+ e.vaultCoreVersion,
61
+ g,
62
+ h,
63
+ e.councilQuorum,
64
+ e.councilSize,
65
+ e.protocolFeeRate
66
+ ), t = await C(
67
+ e.vaultCoreVersion,
68
+ g,
69
+ h,
70
+ e.minPeginFeeRate
71
+ ), u = await T(e.vaultCoreVersion), c = (u == null ? void 0 : u.value) ?? 0n;
72
+ if (a <= 0n)
73
+ throw new Error(
74
+ `WASM returned non-positive depositorClaimValue ${a}; expected > 0. Resume refused.`
75
+ );
76
+ if (t <= 0n)
77
+ throw new Error(
78
+ `WASM returned non-positive peginMaxFee ${t}; expected > 0. Resume refused.`
79
+ );
80
+ if (c < 0n)
81
+ throw new Error(
82
+ `WASM returned negative P2A anchor value ${c}. Resume refused.`
83
+ );
84
+ const m = t + c, p = e.minPeginFeeRate * v;
85
+ if (m <= 0n || m > p)
86
+ throw new Error(
87
+ `WASM implied PegIn reserve ${m} sat is outside (0, ${p}] (minPeginFeeRate=${e.minPeginFeeRate} × ${v} vbytes). Resume refused.`
88
+ );
89
+ const b = e.siblings.map(
90
+ (o) => o.amount + a + t + c
91
+ ), x = await Promise.all(
92
+ e.siblings.map(async (o) => (await y({
93
+ txGraphVersion: e.vaultCoreVersion,
94
+ depositorPubkey: e.depositorBtcPubkey,
95
+ vaultProviderPubkey: e.vaultProviderBtcPubkey,
96
+ vaultKeeperPubkeys: [...e.vaultKeeperBtcPubkeys],
97
+ universalChallengerPubkeys: [...e.universalChallengerBtcPubkeys],
98
+ hashlock: n(o.hashlock),
99
+ timelockRefund: e.timelockRefund,
100
+ network: e.network
101
+ })).scriptPubKey)
102
+ ), R = A.fromHex(
103
+ n(e.fundedPrePeginTxHex)
104
+ ).outs.map((o) => ({ value: o.value, script: o.script }));
105
+ return B(
106
+ R,
107
+ b,
108
+ x
109
+ ), V({
110
+ vaultCoreVersion: e.vaultCoreVersion,
111
+ protocolFeeRate: e.protocolFeeRate,
112
+ timelockPegin: e.timelockPegin,
113
+ timelockAssert: e.timelockAssert,
114
+ timelockRefund: e.timelockRefund,
115
+ prepeginTxid: e.prepeginTxid,
116
+ prepeginMaxFee: e.prepeginMaxFee,
117
+ vaultProviderBtcPubkey: e.vaultProviderBtcPubkey,
118
+ vaultKeeperBtcPubkeys: e.vaultKeeperBtcPubkeys,
119
+ universalChallengerBtcPubkeys: e.universalChallengerBtcPubkeys,
120
+ maxAcceptableCommissionBps: e.maxAcceptableCommissionBps,
121
+ peginAmounts: e.siblings.map((o) => o.amount),
122
+ depositorClaimValue: a,
123
+ peginMaxFee: t
124
+ });
125
+ }
126
+ function U(e) {
127
+ const r = (e instanceof Error ? e.message : typeof e == "string" ? e : "").toLowerCase();
128
+ return r.includes("wots") && r.includes("hash") && r.includes("does not match");
129
+ }
130
+ export {
131
+ P as D,
132
+ $ as a,
133
+ W as b,
134
+ U as i,
135
+ j as r
136
+ };
137
+ //# sourceMappingURL=errors-lMX8Q6zb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors-lMX8Q6zb.js","sources":["../src/tbv/core/deposit-terms/depositTermsErrors.ts","../src/tbv/core/deposit-terms/rebuildDepositTermsCore.ts","../src/tbv/core/wots/errors.ts"],"sourcesContent":["/**\n * Typed rejection contract for deposit-terms approval. Providers cannot import\n * this class (no dependency edge between the packages), so the cross-package\n * contract is the error SHAPE on {@link DepositTermsApprover}. Consumers land\n * with the first provider (#2109) and its app error mapping (#2110).\n *\n * @module deposit-terms/depositTermsErrors\n */\n\n/** The `name` value providers must set on envelope rejections (the wire contract). */\nexport const DEPOSIT_TERMS_REJECTED_ERROR_NAME = \"DepositTermsRejectedError\";\n\n/** Why the terms were rejected before approval. */\nexport type DepositTermsRejectionReason = \"device-envelope\";\n\n/** SDK-owned typed rejection thrown when deposit terms fail pre-approval validation. */\nexport class DepositTermsRejectedError extends Error {\n readonly reason: DepositTermsRejectionReason;\n\n constructor(\n message: string,\n reason: DepositTermsRejectionReason = \"device-envelope\",\n ) {\n super(message);\n this.name = DEPOSIT_TERMS_REJECTED_ERROR_NAME;\n this.reason = reason;\n }\n}\n\n/**\n * Guard for app-side error mapping. Matches `instanceof` OR the documented\n * `name` — providers and foreign realms throw structurally-conforming plain\n * errors that `instanceof` cannot see.\n */\nexport function isDepositTermsRejectedError(\n err: unknown,\n): err is DepositTermsRejectedError {\n if (err instanceof DepositTermsRejectedError) return true;\n if (typeof err !== \"object\" || err === null) return false;\n const shaped = err as { name?: unknown; reason?: unknown };\n // The documented provider shape REQUIRES the reason; a name-only match is\n // a contract violation and propagates unnormalized.\n return (\n shaped.name === DEPOSIT_TERMS_REJECTED_ERROR_NAME &&\n shaped.reason === \"device-envelope\"\n );\n}\n","/**\n * Pure core of the resume-broadcast DepositTerms rebuild (#2220 Part 2).\n *\n * Takes plain chain-derived data (the app orchestrator does the chain reads +\n * sibling discovery) and: (1) asserts sibling completeness against the funded\n * tx's auth-anchor OP_RETURN, (2) recomputes the amount-independent sizing\n * (depositorClaimValue, peginMaxFee, anchor) via WASM, (3) byte-matches each\n * HTLC output's value + scriptPubKey against the funded tx (Gate 1), then (4)\n * projects into DepositTerms. No chain access, no browser state — unit-testable.\n *\n * btc-vault is the protocol source of truth (`compute_min_htlc_value`,\n * `derive_challengers_for`).\n */\n\nimport {\n computeMinClaimValue,\n computeMinPeginFee,\n getPrePeginHtlcConnectorInfo,\n peginP2aAnchorOutput,\n} from \"@babylonlabs-io/babylon-tbv-rust-wasm\";\nimport { Transaction } from \"bitcoinjs-lib\";\n\nimport { findAuthAnchorOpReturn } from \"../managers/pegin/assertAuthAnchorOpReturn\";\nimport { assertEncodedHtlcOutputsMatch } from \"../primitives/psbt/assertWasmPeginSizing\";\nimport { stripHexPrefix } from \"../primitives/utils/bitcoin\";\nimport { MAX_REASONABLE_PEGIN_VBYTES } from \"../utils/fee/constants\";\nimport { calculateBtcTxHash } from \"../utils/transaction/btcTxHash\";\n\nimport { buildDepositTerms } from \"./buildDepositTerms\";\nimport type { DepositTerms } from \"./depositTerms\";\n\n/** One HTLC in the shared Pre-PegIn tx, ordered by (and contiguous in) htlcVout. */\nexport interface RebuildSibling {\n /** 32-byte hex hashlock (0x prefix optional), per-vault (feeds the HTLC scriptPubKey). */\n hashlock: string;\n /** btc-vault `pegin_amount` for this sibling (satoshis). */\n amount: bigint;\n}\n\nexport interface RebuildDepositTermsCoreInput {\n /** Stamped tx-graph version (NOT chain-active). */\n vaultCoreVersion: number;\n /** Sibling HTLCs ordered by htlcVout; index === htlcVout (asserted by the app). */\n siblings: readonly RebuildSibling[];\n /** Funded Pre-PegIn tx hex. Gate 0 (hash vs prepeginTxid) is SELF-verified below — callers need not pre-verify. */\n fundedPrePeginTxHex: string;\n\n // Stamped-version participant data (already resolved + sorted by the app).\n depositorBtcPubkey: string;\n vaultProviderBtcPubkey: string;\n vaultKeeperBtcPubkeys: readonly string[];\n universalChallengerBtcPubkeys: readonly string[];\n\n // Version-locked scalars.\n protocolFeeRate: bigint;\n minPeginFeeRate: bigint;\n councilQuorum: number;\n councilSize: number;\n timelockPegin: number;\n timelockAssert: number;\n timelockRefund: number;\n\n // Pass-through into DepositTerms.\n prepeginTxid: string;\n /** Funded-tx fee (Σin − Σout), computed by the app; the device's `prepegin_max_fee` bound. */\n prepeginMaxFee: bigint;\n maxAcceptableCommissionBps: number;\n\n /** WASM network descriptor for scriptPubKey derivation. */\n network: Parameters<typeof getPrePeginHtlcConnectorInfo>[0][\"network\"];\n}\n\nexport async function rebuildDepositTermsCore(\n input: RebuildDepositTermsCoreInput,\n): Promise<DepositTerms> {\n const siblingCount = input.siblings.length;\n if (siblingCount === 0) {\n throw new Error(\n \"rebuildDepositTermsCore: at least one sibling is required\",\n );\n }\n for (const [i, sibling] of input.siblings.entries()) {\n if (sibling.amount <= 0n) {\n throw new Error(\n `rebuildDepositTermsCore: sibling[${i}] has non-positive on-chain pegin ` +\n `amount ${sibling.amount}; the chain-read vault record is invalid. Resume refused.`,\n );\n }\n }\n if (input.prepeginMaxFee <= 0n) {\n throw new Error(\n `rebuildDepositTermsCore: prepeginMaxFee must be > 0, got ${input.prepeginMaxFee}`,\n );\n }\n\n // Gate 0, self-verified: everything below trusts these bytes, and a\n // substituted tx replicating the HTLC outputs would pass Gate 1 with a\n // different fee/txid.\n const expectedTxid = stripHexPrefix(input.prepeginTxid).toLowerCase();\n const actualTxid = stripHexPrefix(\n calculateBtcTxHash(input.fundedPrePeginTxHex),\n ).toLowerCase();\n if (actualTxid !== expectedTxid) {\n throw new Error(\n `Funded Pre-PegIn tx hashes to ${actualTxid}, expected ${expectedTxid} ` +\n `(on-chain prepeginTxid). Resume refused.`,\n );\n }\n\n // Completeness anchor: the single auth-anchor OP_RETURN sits at vout === HTLC\n // count — the only guard against an indexer-lagged partial sibling set.\n const found = findAuthAnchorOpReturn(\n stripHexPrefix(input.fundedPrePeginTxHex),\n );\n if (found === undefined) {\n throw new Error(\n `Funded Pre-PegIn carries no single, unambiguous auth-anchor OP_RETURN ` +\n `commitment — it either predates auth anchoring or is malformed. The ` +\n `intent resume path requires the anchor to prove sibling completeness. ` +\n `Resume refused.`,\n );\n }\n if (found.vout !== siblingCount) {\n throw new Error(\n `Auth-anchor OP_RETURN at vout ${found.vout} does not match the ` +\n `discovered sibling count ${siblingCount}; the discovered sibling set ` +\n `does not cover this transaction's HTLC outputs (a lagging index can ` +\n `cause this — retry later). Resume refused.`,\n );\n }\n\n // Amount-independent sizing. Depositor-as-claimer: numLocalChallengers ===\n // numVks (VP excluded) — btc-vault graph.rs derive_challengers_for.\n const numVks = input.vaultKeeperBtcPubkeys.length;\n const numUcs = input.universalChallengerBtcPubkeys.length;\n const depositorClaimValue = await computeMinClaimValue(\n input.vaultCoreVersion,\n numVks,\n numUcs,\n input.councilQuorum,\n input.councilSize,\n input.protocolFeeRate,\n );\n const peginMaxFee = await computeMinPeginFee(\n input.vaultCoreVersion,\n numVks,\n numUcs,\n input.minPeginFeeRate,\n );\n const anchor = await peginP2aAnchorOutput(input.vaultCoreVersion);\n const anchorValue = anchor?.value ?? 0n;\n\n // Independent bounds on the WASM outputs (mirrors assertWasmPeginSizing):\n // Gate 1 only proves the DCV+fee+anchor SUM — these constrain the\n // decomposition the device is shown.\n if (depositorClaimValue <= 0n) {\n throw new Error(\n `WASM returned non-positive depositorClaimValue ${depositorClaimValue}; ` +\n `expected > 0. Resume refused.`,\n );\n }\n if (peginMaxFee <= 0n) {\n throw new Error(\n `WASM returned non-positive peginMaxFee ${peginMaxFee}; expected > 0. ` +\n `Resume refused.`,\n );\n }\n // Explicit anchor check: the sum bound alone would let a negative anchor\n // offset an inflated peginMaxFee (kept local, not inherited from the facade).\n if (anchorValue < 0n) {\n throw new Error(\n `WASM returned negative P2A anchor value ${anchorValue}. Resume refused.`,\n );\n }\n const impliedReserve = peginMaxFee + anchorValue;\n const maxImpliedReserve = input.minPeginFeeRate * MAX_REASONABLE_PEGIN_VBYTES;\n if (impliedReserve <= 0n || impliedReserve > maxImpliedReserve) {\n throw new Error(\n `WASM implied PegIn reserve ${impliedReserve} sat is outside ` +\n `(0, ${maxImpliedReserve}] (minPeginFeeRate=${input.minPeginFeeRate} × ` +\n `${MAX_REASONABLE_PEGIN_VBYTES} vbytes). Resume refused.`,\n );\n }\n\n // Gate 1: per sibling, value = amount + DCV + peginMaxFee + anchor (btc-vault\n // compute_min_htlc_value) + scriptPubKey from the on-chain hashlock,\n // byte-matched against outputs 0..N-1.\n const expectedHtlcValues = input.siblings.map(\n (s) => s.amount + depositorClaimValue + peginMaxFee + anchorValue,\n );\n const expectedHtlcScriptPubKeys = await Promise.all(\n input.siblings.map(async (s) => {\n const connector = await getPrePeginHtlcConnectorInfo({\n txGraphVersion: input.vaultCoreVersion,\n depositorPubkey: input.depositorBtcPubkey,\n vaultProviderPubkey: input.vaultProviderBtcPubkey,\n vaultKeeperPubkeys: [...input.vaultKeeperBtcPubkeys],\n universalChallengerPubkeys: [...input.universalChallengerBtcPubkeys],\n hashlock: stripHexPrefix(s.hashlock),\n timelockRefund: input.timelockRefund,\n network: input.network,\n });\n return connector.scriptPubKey;\n }),\n );\n const fundedOutputs = Transaction.fromHex(\n stripHexPrefix(input.fundedPrePeginTxHex),\n ).outs.map((o) => ({ value: o.value, script: o.script }));\n assertEncodedHtlcOutputsMatch(\n fundedOutputs,\n expectedHtlcValues,\n expectedHtlcScriptPubKeys,\n );\n\n return buildDepositTerms({\n vaultCoreVersion: input.vaultCoreVersion,\n protocolFeeRate: input.protocolFeeRate,\n timelockPegin: input.timelockPegin,\n timelockAssert: input.timelockAssert,\n timelockRefund: input.timelockRefund,\n prepeginTxid: input.prepeginTxid,\n prepeginMaxFee: input.prepeginMaxFee,\n vaultProviderBtcPubkey: input.vaultProviderBtcPubkey,\n vaultKeeperBtcPubkeys: input.vaultKeeperBtcPubkeys,\n universalChallengerBtcPubkeys: input.universalChallengerBtcPubkeys,\n maxAcceptableCommissionBps: input.maxAcceptableCommissionBps,\n peginAmounts: input.siblings.map((s) => s.amount),\n depositorClaimValue,\n peginMaxFee,\n });\n}\n","/**\n * Check whether an error from the vault provider indicates that the\n * submitted WOTS public key hash does not match the on-chain\n * commitment. This signals that the wrong wallet is connected (its\n * `deriveContextHash` produces a different vault root and therefore\n * different WOTS keys).\n */\nexport function isWotsMismatchError(error: unknown): boolean {\n const msg = (\n error instanceof Error\n ? error.message\n : typeof error === \"string\"\n ? error\n : \"\"\n ).toLowerCase();\n\n return (\n msg.includes(\"wots\") &&\n msg.includes(\"hash\") &&\n msg.includes(\"does not match\")\n );\n}\n"],"names":["DEPOSIT_TERMS_REJECTED_ERROR_NAME","DepositTermsRejectedError","message","reason","__publicField","isDepositTermsRejectedError","err","shaped","rebuildDepositTermsCore","input","siblingCount","i","sibling","expectedTxid","stripHexPrefix","actualTxid","calculateBtcTxHash","found","findAuthAnchorOpReturn","numVks","numUcs","depositorClaimValue","computeMinClaimValue","peginMaxFee","computeMinPeginFee","anchor","peginP2aAnchorOutput","anchorValue","impliedReserve","maxImpliedReserve","MAX_REASONABLE_PEGIN_VBYTES","expectedHtlcValues","s","expectedHtlcScriptPubKeys","getPrePeginHtlcConnectorInfo","fundedOutputs","Transaction","assertEncodedHtlcOutputsMatch","buildDepositTerms","isWotsMismatchError","error","msg"],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("./challengeAssert-BFRE2DM-.cjs"),m=require("./constants-DU5CGcqO.cjs"),n=require("@babylonlabs-io/babylon-tbv-rust-wasm"),u=require("./verifyScriptPathSchnorrSignature-CYjK4IP_.cjs"),R=require("./peginInput-Ci921gTl.cjs"),g=require("./noPayout-qUEtRKc_.cjs"),t=require("./bitcoin-m84N5a8o.cjs"),c=require("./validation-CDbOaDj7.cjs"),O=require("./signing-Bnsro0hE.cjs"),l=require("./PeginManager-Cu5Dh6L-.cjs"),d=require("./signPsbtsWithFallback-Xs4jZw5z.cjs"),_=require("./ProtocolParams.abi-C8U7BHCS.cjs"),y=require("./BTCVaultRegistry.abi-3VLWva2x.cjs"),b=require("./BTCVaultRegistryKeyEpochs.abi-_NERAdc5.cjs"),P=require("./errors-CGcNP0rV.cjs"),p=require("./parseFundingOutpoints-DUuOAUjA.cjs"),C=require("./shared/index.cjs"),o=require("./waitForTransactionReceiptSmartAware-AgZ-3WV_.cjs"),i=require("./fundPeginTransaction-BLD8FRL9.cjs"),E=require("./reservation-CDbInVw0.cjs"),a=require("./mempoolApi-BxhMqJ4f.cjs"),r=require("./batchPoll-CbbCcNZP.cjs"),s=require("./json-rpc-client-BiAmg_ho.cjs"),V=require("./onChainBtcPubkey-C_a2L3kL.cjs"),A=require("./errors-2aF9oRwM.cjs"),e=require("./buildAndBroadcastRefund-BqYlx6rb.cjs"),T=require("./peginState-eaQ4IO_R.cjs");exports.buildChallengeAssertPsbt=S.buildChallengeAssertPsbt;exports.computeNumLocalChallengers=S.computeNumLocalChallengers;exports.assertValidVaultCoreVersion=m.assertValidVaultCoreVersion;Object.defineProperty(exports,"computeMinClaimValue",{enumerable:!0,get:()=>n.computeMinClaimValue});Object.defineProperty(exports,"computeMinPeginFee",{enumerable:!0,get:()=>n.computeMinPeginFee});Object.defineProperty(exports,"deriveVaultId",{enumerable:!0,get:()=>n.deriveVaultId});Object.defineProperty(exports,"expandAuthAnchor",{enumerable:!0,get:()=>n.expandAuthAnchor});Object.defineProperty(exports,"expandHashlockSecret",{enumerable:!0,get:()=>n.expandHashlockSecret});Object.defineProperty(exports,"expandWotsSeed",{enumerable:!0,get:()=>n.expandWotsSeed});Object.defineProperty(exports,"peginP2aAnchorOutput",{enumerable:!0,get:()=>n.peginP2aAnchorOutput});Object.defineProperty(exports,"supportedTxGraphVersions",{enumerable:!0,get:()=>n.supportedTxGraphVersions});Object.defineProperty(exports,"validatePeginP2aAnchor",{enumerable:!0,get:()=>n.validatePeginP2aAnchor});exports.PsbtSubstitutionError=u.PsbtSubstitutionError;exports.assertPsbtUnsignedTxMatches=u.assertPsbtUnsignedTxMatches;exports.assertScriptPathSchnorrSignature=u.assertScriptPathSchnorrSignature;exports.buildPayoutPsbt=u.buildPayoutPsbt;exports.buildPeginTxFromFundedPrePegin=u.buildPeginTxFromFundedPrePegin;exports.buildPrePeginPsbt=u.buildPrePeginPsbt;exports.createPayoutScript=u.createPayoutScript;exports.extractPayoutSignature=u.extractPayoutSignature;exports.buildPeginInputPsbt=R.buildPeginInputPsbt;exports.extractPeginInputSignature=R.extractPeginInputSignature;exports.finalizePeginInputPsbt=R.finalizePeginInputPsbt;exports.buildNoPayoutPsbt=g.buildNoPayoutPsbt;exports.buildRefundPsbt=g.buildRefundPsbt;exports.canonicalizeBtcPubkey=t.canonicalizeBtcPubkey;exports.deriveBip86ScriptPubKeyHex=t.deriveBip86ScriptPubKeyHex;exports.deriveNativeSegwitAddress=t.deriveNativeSegwitAddress;exports.deriveTaprootAddress=t.deriveTaprootAddress;exports.ensureHexPrefix=t.ensureHexPrefix;exports.formatSatoshisToBtc=t.formatSatoshisToBtc;exports.getNetwork=t.getNetwork;exports.getSortedXOnlyPubkeys=t.getSortedXOnlyPubkeys;exports.hexToUint8Array=t.hexToUint8Array;exports.isAddressFromPublicKey=t.isAddressFromPublicKey;exports.isValidHex=t.isValidHex;exports.processPublicKeyToXOnly=t.processPublicKeyToXOnly;exports.stripHexPrefix=t.stripHexPrefix;exports.toXOnly=t.toXOnly;exports.uint8ArrayToHex=t.uint8ArrayToHex;exports.validateWalletPubkey=t.validateWalletPubkey;exports.BITCOIN_ADDRESS_RE=c.BITCOIN_ADDRESS_RE;exports.HEX_RE=c.HEX_RE;exports.KNOWN_SCRIPT_PREFIXES=c.KNOWN_SCRIPT_PREFIXES;exports.MAX_REASONABLE_FEE_SATS=c.MAX_REASONABLE_FEE_SATS;exports.TXID_RE=c.TXID_RE;exports.combineAbortSignals=c.combineAbortSignals;exports.createTaprootScriptPathSignOptions=O.createTaprootScriptPathSignOptions;exports.PeginManager=l.PeginManager;exports.buildDepositTerms=l.buildDepositTerms;exports.computeWotsBlockPublicKeysHash=l.computeWotsBlockPublicKeysHash;exports.deriveWotsBlocksFromSeed=l.deriveWotsBlocksFromSeed;exports.ensurePrePeginTermsApproval=l.ensurePrePeginTermsApproval;exports.estimateSubmitPeginRequestBatchGas=l.estimateSubmitPeginRequestBatchGas;exports.PayoutManager=d.PayoutManager;exports.computeHashlock=d.computeHashlock;exports.forwardDepositApproval=d.forwardDepositApproval;exports.supportsDepositApproval=d.supportsDepositApproval;exports.validateSecretAgainstHashlock=d.validateSecretAgainstHashlock;exports.ApplicationRegistryABI=_.ApplicationRegistryABI;exports.ProtocolParamsABI=_.ProtocolParamsABI;exports.BTCVaultRegistryABI=y.BTCVaultRegistryABI;exports.BTCVaultRegistryKeyEpochsABI=b.BTCVaultRegistryKeyEpochsABI;exports.CONTRACT_ERRORS=P.CONTRACT_ERRORS;exports.extractErrorData=P.extractErrorData;exports.getContractErrorMessage=P.getContractErrorMessage;exports.handleContractError=P.handleContractError;exports.isKnownContractError=P.isKnownContractError;exports.VAULT_APP_NAME=p.VAULT_APP_NAME;exports.buildFundingOutpointsCommitment=p.buildFundingOutpointsCommitment;exports.buildVaultContext=p.buildVaultContext;exports.deriveVaultRoot=p.deriveVaultRoot;exports.parseFundingOutpointsFromTx=p.parseFundingOutpointsFromTx;exports.BitcoinNetworks=C.BitcoinNetworks;exports.BitcoinScriptType=o.BitcoinScriptType;exports.applyChangeOutputPolicy=o.applyChangeOutputPolicy;exports.calculateBtcTxHash=o.calculateBtcTxHash;exports.computeChangeOutputFeeSats=o.computeChangeOutputFeeSats;exports.computeMaxDeposit=o.computeMaxDeposit;exports.computePeginBaseFeeSats=o.computePeginBaseFeeSats;exports.getDustThreshold=o.getDustThreshold;exports.getPsbtInputFields=o.getPsbtInputFields;exports.getScriptType=o.getScriptType;exports.selectUtxosForPegin=o.selectUtxosForPegin;exports.shouldAddChangeOutput=o.shouldAddChangeOutput;exports.waitForTransactionReceiptSmartAware=o.waitForTransactionReceiptSmartAware;exports.BTC_DUST_SAT=i.BTC_DUST_SAT;exports.DUST_THRESHOLD=i.DUST_THRESHOLD;exports.LOW_RATE_ESTIMATION_ACCURACY_BUFFER=i.LOW_RATE_ESTIMATION_ACCURACY_BUFFER;exports.MAX_NON_LEGACY_OUTPUT_SIZE=i.MAX_NON_LEGACY_OUTPUT_SIZE;exports.MAX_REASONABLE_PEGIN_VBYTES=i.MAX_REASONABLE_PEGIN_VBYTES;exports.P2TR_INPUT_SIZE=i.P2TR_INPUT_SIZE;exports.PEGIN_AUTH_ANCHOR_OUTPUTS=i.PEGIN_AUTH_ANCHOR_OUTPUTS;exports.PEGIN_FIXED_OUTPUTS=i.PEGIN_FIXED_OUTPUTS;exports.SPLIT_TX_FEE_SAFETY_MULTIPLIER=i.SPLIT_TX_FEE_SAFETY_MULTIPLIER;exports.TX_BUFFER_SIZE_OVERHEAD=i.TX_BUFFER_SIZE_OVERHEAD;exports.WALLET_RELAY_FEE_RATE_THRESHOLD=i.WALLET_RELAY_FEE_RATE_THRESHOLD;exports.fundPeginTransaction=i.fundPeginTransaction;exports.parseUnfundedWasmTransaction=i.parseUnfundedWasmTransaction;exports.peginOutputCount=i.peginOutputCount;exports.rateBasedTxBufferFee=i.rateBasedTxBufferFee;exports.UtxoNotAvailableError=E.UtxoNotAvailableError;exports.assertUtxosAvailable=E.assertUtxosAvailable;exports.extractInputsFromTransaction=E.extractInputsFromTransaction;exports.findOverlappingPendingVaults=E.findOverlappingPendingVaults;exports.validateUtxosAvailable=E.validateUtxosAvailable;exports.MEMPOOL_API_URLS=a.MEMPOOL_API_URLS;exports.ViemVaultRegistryReader=a.ViemVaultRegistryReader;exports.getAddressTxs=a.getAddressTxs;exports.getAddressUtxos=a.getAddressUtxos;exports.getMempoolApiUrl=a.getMempoolApiUrl;exports.getNetworkFees=a.getNetworkFees;exports.getOutspend=a.getOutspend;exports.getTipHeight=a.getTipHeight;exports.getTxHex=a.getTxHex;exports.getTxInfo=a.getTxInfo;exports.getUtxoInfo=a.getUtxoInfo;exports.pushTx=a.pushTx;exports.validateOffchainParams=a.validateOffchainParams;exports.validatePegInConfiguration=a.validatePegInConfiguration;exports.validateTBVProtocolParams=a.validateTBVProtocolParams;exports.OnChainBtcVaultStatus=r.OnChainBtcVaultStatus;exports.ServerIdentityError=r.ServerIdentityError;exports.VaultProviderRpcClient=r.VaultProviderRpcClient;exports.ViemOperationKeyReader=r.ViemOperationKeyReader;exports.ViemProtocolParamsReader=r.ViemProtocolParamsReader;exports.ViemUniversalChallengerReader=r.ViemUniversalChallengerReader;exports.ViemVaultKeeperReader=r.ViemVaultKeeperReader;exports.VpResponseValidationError=r.VpResponseValidationError;exports.VpTokenRegistry=r.VpTokenRegistry;exports.batchPollByProvider=r.batchPollByProvider;exports.createAuthenticatedVpClient=r.createAuthenticatedVpClient;exports.primeVpTokenRegistry=r.primeVpTokenRegistry;exports.resolveProtocolAddresses=r.resolveProtocolAddresses;exports.validateRequestDepositorClaimerArtifactsResponse=r.validateRequestDepositorClaimerArtifactsResponse;exports.verifyServerIdentity=r.verifyServerIdentity;exports.vpTokenRegistry=r.vpTokenRegistry;exports.AUTH_REJECTED_RPC_CODE=s.AUTH_REJECTED_RPC_CODE;exports.DaemonStatus=s.DaemonStatus;exports.JSON_RPC_ERROR_CODES=s.JSON_RPC_ERROR_CODES;exports.JsonRpcClient=s.JsonRpcClient;exports.JsonRpcError=s.JsonRpcError;exports.POST_WOTS_STATUSES=s.POST_WOTS_STATUSES;exports.PRE_DEPOSITOR_SIGNATURES_STATES=s.PRE_DEPOSITOR_SIGNATURES_STATES;exports.RpcErrorCode=s.RpcErrorCode;exports.VP_BATCH_MAX_SIZE=s.VP_BATCH_MAX_SIZE;exports.VP_TERMINAL_FAILURE_STATUSES=s.VP_TERMINAL_FAILURE_STATUSES;exports.VP_TRANSIENT_STATUSES=s.VP_TRANSIENT_STATUSES;exports.isAuthRejectedError=s.isAuthRejectedError;exports.assertOnChainBtcPubkey=V.assertOnChainBtcPubkey;exports.DEPOSIT_TERMS_REJECTED_ERROR_NAME=A.DEPOSIT_TERMS_REJECTED_ERROR_NAME;exports.DepositTermsRejectedError=A.DepositTermsRejectedError;exports.isDepositTermsRejectedError=A.isDepositTermsRejectedError;exports.isWotsMismatchError=A.isWotsMismatchError;exports.BIP68NotMatureError=e.BIP68NotMatureError;exports.ClaimerPegoutStatusValue=e.ClaimerPegoutStatusValue;exports.ParticipantKeyDriftError=e.ParticipantKeyDriftError;exports.REFUND_MAX_FEE_FRACTION_DENOMINATOR=e.REFUND_MAX_FEE_FRACTION_DENOMINATOR;exports.REFUND_MAX_FEE_FRACTION_NUMERATOR=e.REFUND_MAX_FEE_FRACTION_NUMERATOR;exports.REFUND_MAX_FEE_RATE_SATS_VB=e.REFUND_MAX_FEE_RATE_SATS_VB;exports.REFUND_VSIZE=e.REFUND_VSIZE;exports.RegisteredVaultVersionMismatchError=e.RegisteredVaultVersionMismatchError;exports.activateVault=e.activateVault;exports.activateVaultAndRedeem=e.activateVaultAndRedeem;exports.assertVaultProviderHintAccepted=e.assertVaultProviderHintAccepted;exports.buildAndBroadcastRefund=e.buildAndBroadcastRefund;exports.estimateRefundFeeSats=e.estimateRefundFeeSats;exports.isDepositAmountValid=e.isDepositAmountValid;exports.isHintAccepted=e.isHintAccepted;exports.isParticipantKeyDriftError=e.isParticipantKeyDriftError;exports.isPegoutTerminalStatus=e.isPegoutTerminalStatus;exports.isRecognizedPegoutStatus=e.isRecognizedPegoutStatus;exports.isRegisteredVaultVersionMismatchError=e.isRegisteredVaultVersionMismatchError;exports.matchKeyHint=e.matchKeyHint;exports.matchKeySetHint=e.matchKeySetHint;exports.resolveCurrentParticipantKeys=e.resolveCurrentParticipantKeys;exports.resolveParticipantKeysAtEpochs=e.resolveParticipantKeysAtEpochs;exports.runDepositorPresignFlow=e.runDepositorPresignFlow;exports.signDepositorGraph=e.signDepositorGraph;exports.submitWotsPublicKey=e.submitWotsPublicKey;exports.validateDepositAmount=e.validateDepositAmount;exports.validateMultiVaultDepositInputs=e.validateMultiVaultDepositInputs;exports.validateOnChainParticipantKeys=e.validateOnChainParticipantKeys;exports.validateProviderSelection=e.validateProviderSelection;exports.validateRemainingCapacity=e.validateRemainingCapacity;exports.validateVaultAmounts=e.validateVaultAmounts;exports.validateVaultProviderPubkey=e.validateVaultProviderPubkey;exports.verifyRegisteredParticipantKeys=e.verifyRegisteredParticipantKeys;exports.verifyRegisteredVaultVersions=e.verifyRegisteredVaultVersions;exports.waitForPeginStatus=e.waitForPeginStatus;exports.ContractStatus=T.ContractStatus;exports.PeginAction=T.PeginAction;exports.canPerformAction=T.canPerformAction;exports.getPeginProtocolState=T.getPeginProtocolState;exports.isActivationDeadlinePassedOnChain=T.isActivationDeadlinePassedOnChain;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const R=require("./challengeAssert-BFRE2DM-.cjs"),m=require("./constants-DU5CGcqO.cjs"),n=require("@babylonlabs-io/babylon-tbv-rust-wasm"),l=require("./verifyScriptPathSchnorrSignature-B8zK1ctE.cjs"),A=require("./peginInput-Ci921gTl.cjs"),S=require("./noPayout-CbxQqBw1.cjs"),t=require("./bitcoin-m84N5a8o.cjs"),c=require("./validation-CDbOaDj7.cjs"),O=require("./signing-Bnsro0hE.cjs"),u=require("./PeginManager-BLBB_vMl.cjs"),d=require("./signPsbtsWithFallback-DbOmw8Ou.cjs"),_=require("./ProtocolParams.abi-C8U7BHCS.cjs"),C=require("./BTCVaultRegistry.abi-3VLWva2x.cjs"),b=require("./BTCVaultRegistryKeyEpochs.abi-_NERAdc5.cjs"),p=require("./errors-CGcNP0rV.cjs"),P=require("./parseFundingOutpoints-CIO9Ok1L.cjs"),y=require("./shared/index.cjs"),o=require("./waitForTransactionReceiptSmartAware-AgZ-3WV_.cjs"),i=require("./fundPeginTransaction-BLD8FRL9.cjs"),E=require("./reservation-CDbInVw0.cjs"),a=require("./mempoolApi-BxhMqJ4f.cjs"),r=require("./batchPoll-CbbCcNZP.cjs"),s=require("./json-rpc-client-BiAmg_ho.cjs"),I=require("./onChainBtcPubkey-C_a2L3kL.cjs"),T=require("./errors-D2zp7Vzk.cjs"),e=require("./buildAndBroadcastRefund-CYzhA_B8.cjs"),g=require("./peginState-eaQ4IO_R.cjs");exports.buildChallengeAssertPsbt=R.buildChallengeAssertPsbt;exports.computeNumLocalChallengers=R.computeNumLocalChallengers;exports.assertValidVaultCoreVersion=m.assertValidVaultCoreVersion;Object.defineProperty(exports,"computeMinClaimValue",{enumerable:!0,get:()=>n.computeMinClaimValue});Object.defineProperty(exports,"computeMinPeginFee",{enumerable:!0,get:()=>n.computeMinPeginFee});Object.defineProperty(exports,"deriveVaultId",{enumerable:!0,get:()=>n.deriveVaultId});Object.defineProperty(exports,"expandAuthAnchor",{enumerable:!0,get:()=>n.expandAuthAnchor});Object.defineProperty(exports,"expandHashlockSecret",{enumerable:!0,get:()=>n.expandHashlockSecret});Object.defineProperty(exports,"expandWotsSeed",{enumerable:!0,get:()=>n.expandWotsSeed});Object.defineProperty(exports,"peginP2aAnchorOutput",{enumerable:!0,get:()=>n.peginP2aAnchorOutput});Object.defineProperty(exports,"supportedTxGraphVersions",{enumerable:!0,get:()=>n.supportedTxGraphVersions});Object.defineProperty(exports,"validatePeginP2aAnchor",{enumerable:!0,get:()=>n.validatePeginP2aAnchor});exports.PsbtSubstitutionError=l.PsbtSubstitutionError;exports.assertPsbtUnsignedTxMatches=l.assertPsbtUnsignedTxMatches;exports.assertScriptPathSchnorrSignature=l.assertScriptPathSchnorrSignature;exports.buildPayoutPsbt=l.buildPayoutPsbt;exports.buildPeginTxFromFundedPrePegin=l.buildPeginTxFromFundedPrePegin;exports.buildPrePeginPsbt=l.buildPrePeginPsbt;exports.createPayoutScript=l.createPayoutScript;exports.extractPayoutSignature=l.extractPayoutSignature;exports.buildPeginInputPsbt=A.buildPeginInputPsbt;exports.extractPeginInputSignature=A.extractPeginInputSignature;exports.finalizePeginInputPsbt=A.finalizePeginInputPsbt;exports.buildNoPayoutPsbt=S.buildNoPayoutPsbt;exports.buildRefundPsbt=S.buildRefundPsbt;exports.canonicalizeBtcPubkey=t.canonicalizeBtcPubkey;exports.deriveBip86ScriptPubKeyHex=t.deriveBip86ScriptPubKeyHex;exports.deriveNativeSegwitAddress=t.deriveNativeSegwitAddress;exports.deriveTaprootAddress=t.deriveTaprootAddress;exports.ensureHexPrefix=t.ensureHexPrefix;exports.formatSatoshisToBtc=t.formatSatoshisToBtc;exports.getNetwork=t.getNetwork;exports.getSortedXOnlyPubkeys=t.getSortedXOnlyPubkeys;exports.hexToUint8Array=t.hexToUint8Array;exports.isAddressFromPublicKey=t.isAddressFromPublicKey;exports.isValidHex=t.isValidHex;exports.processPublicKeyToXOnly=t.processPublicKeyToXOnly;exports.stripHexPrefix=t.stripHexPrefix;exports.toXOnly=t.toXOnly;exports.uint8ArrayToHex=t.uint8ArrayToHex;exports.validateWalletPubkey=t.validateWalletPubkey;exports.BITCOIN_ADDRESS_RE=c.BITCOIN_ADDRESS_RE;exports.HEX_RE=c.HEX_RE;exports.KNOWN_SCRIPT_PREFIXES=c.KNOWN_SCRIPT_PREFIXES;exports.MAX_REASONABLE_FEE_SATS=c.MAX_REASONABLE_FEE_SATS;exports.TXID_RE=c.TXID_RE;exports.combineAbortSignals=c.combineAbortSignals;exports.createTaprootScriptPathSignOptions=O.createTaprootScriptPathSignOptions;exports.COMMISSION_BPS_HEADROOM=u.COMMISSION_BPS_HEADROOM;exports.MAX_ACCEPTABLE_COMMISSION_BPS_CAP=u.MAX_ACCEPTABLE_COMMISSION_BPS_CAP;exports.PeginManager=u.PeginManager;exports.buildDepositTerms=u.buildDepositTerms;exports.capMaxAcceptableCommissionBps=u.capMaxAcceptableCommissionBps;exports.computeWotsBlockPublicKeysHash=u.computeWotsBlockPublicKeysHash;exports.deriveWotsBlocksFromSeed=u.deriveWotsBlocksFromSeed;exports.ensurePrePeginTermsApproval=u.ensurePrePeginTermsApproval;exports.estimateSubmitPeginRequestBatchGas=u.estimateSubmitPeginRequestBatchGas;exports.PayoutManager=d.PayoutManager;exports.computeHashlock=d.computeHashlock;exports.forwardDepositApproval=d.forwardDepositApproval;exports.supportsDepositApproval=d.supportsDepositApproval;exports.validateSecretAgainstHashlock=d.validateSecretAgainstHashlock;exports.ApplicationRegistryABI=_.ApplicationRegistryABI;exports.ProtocolParamsABI=_.ProtocolParamsABI;exports.BTCVaultRegistryABI=C.BTCVaultRegistryABI;exports.BTCVaultRegistryKeyEpochsABI=b.BTCVaultRegistryKeyEpochsABI;exports.CONTRACT_ERRORS=p.CONTRACT_ERRORS;exports.extractErrorData=p.extractErrorData;exports.getContractErrorMessage=p.getContractErrorMessage;exports.handleContractError=p.handleContractError;exports.isKnownContractError=p.isKnownContractError;exports.VAULT_APP_NAME=P.VAULT_APP_NAME;exports.buildFundingOutpointsCommitment=P.buildFundingOutpointsCommitment;exports.buildVaultContext=P.buildVaultContext;exports.deriveVaultRoot=P.deriveVaultRoot;exports.forwardDeriveContextHash=P.forwardDeriveContextHash;exports.parseFundingOutpointsFromTx=P.parseFundingOutpointsFromTx;exports.BitcoinNetworks=y.BitcoinNetworks;exports.BitcoinScriptType=o.BitcoinScriptType;exports.applyChangeOutputPolicy=o.applyChangeOutputPolicy;exports.calculateBtcTxHash=o.calculateBtcTxHash;exports.computeChangeOutputFeeSats=o.computeChangeOutputFeeSats;exports.computeMaxDeposit=o.computeMaxDeposit;exports.computePeginBaseFeeSats=o.computePeginBaseFeeSats;exports.getDustThreshold=o.getDustThreshold;exports.getPsbtInputFields=o.getPsbtInputFields;exports.getScriptType=o.getScriptType;exports.selectUtxosForPegin=o.selectUtxosForPegin;exports.shouldAddChangeOutput=o.shouldAddChangeOutput;exports.waitForTransactionReceiptSmartAware=o.waitForTransactionReceiptSmartAware;exports.BTC_DUST_SAT=i.BTC_DUST_SAT;exports.DUST_THRESHOLD=i.DUST_THRESHOLD;exports.LOW_RATE_ESTIMATION_ACCURACY_BUFFER=i.LOW_RATE_ESTIMATION_ACCURACY_BUFFER;exports.MAX_NON_LEGACY_OUTPUT_SIZE=i.MAX_NON_LEGACY_OUTPUT_SIZE;exports.MAX_REASONABLE_PEGIN_VBYTES=i.MAX_REASONABLE_PEGIN_VBYTES;exports.P2TR_INPUT_SIZE=i.P2TR_INPUT_SIZE;exports.PEGIN_AUTH_ANCHOR_OUTPUTS=i.PEGIN_AUTH_ANCHOR_OUTPUTS;exports.PEGIN_FIXED_OUTPUTS=i.PEGIN_FIXED_OUTPUTS;exports.SPLIT_TX_FEE_SAFETY_MULTIPLIER=i.SPLIT_TX_FEE_SAFETY_MULTIPLIER;exports.TX_BUFFER_SIZE_OVERHEAD=i.TX_BUFFER_SIZE_OVERHEAD;exports.WALLET_RELAY_FEE_RATE_THRESHOLD=i.WALLET_RELAY_FEE_RATE_THRESHOLD;exports.fundPeginTransaction=i.fundPeginTransaction;exports.parseUnfundedWasmTransaction=i.parseUnfundedWasmTransaction;exports.peginOutputCount=i.peginOutputCount;exports.rateBasedTxBufferFee=i.rateBasedTxBufferFee;exports.UtxoNotAvailableError=E.UtxoNotAvailableError;exports.assertUtxosAvailable=E.assertUtxosAvailable;exports.extractInputsFromTransaction=E.extractInputsFromTransaction;exports.findOverlappingPendingVaults=E.findOverlappingPendingVaults;exports.validateUtxosAvailable=E.validateUtxosAvailable;exports.MEMPOOL_API_URLS=a.MEMPOOL_API_URLS;exports.ViemVaultRegistryReader=a.ViemVaultRegistryReader;exports.getAddressTxs=a.getAddressTxs;exports.getAddressUtxos=a.getAddressUtxos;exports.getMempoolApiUrl=a.getMempoolApiUrl;exports.getNetworkFees=a.getNetworkFees;exports.getOutspend=a.getOutspend;exports.getTipHeight=a.getTipHeight;exports.getTxHex=a.getTxHex;exports.getTxInfo=a.getTxInfo;exports.getUtxoInfo=a.getUtxoInfo;exports.pushTx=a.pushTx;exports.validateOffchainParams=a.validateOffchainParams;exports.validatePegInConfiguration=a.validatePegInConfiguration;exports.validateTBVProtocolParams=a.validateTBVProtocolParams;exports.OnChainBtcVaultStatus=r.OnChainBtcVaultStatus;exports.ServerIdentityError=r.ServerIdentityError;exports.VaultProviderRpcClient=r.VaultProviderRpcClient;exports.ViemOperationKeyReader=r.ViemOperationKeyReader;exports.ViemProtocolParamsReader=r.ViemProtocolParamsReader;exports.ViemUniversalChallengerReader=r.ViemUniversalChallengerReader;exports.ViemVaultKeeperReader=r.ViemVaultKeeperReader;exports.VpResponseValidationError=r.VpResponseValidationError;exports.VpTokenRegistry=r.VpTokenRegistry;exports.batchPollByProvider=r.batchPollByProvider;exports.createAuthenticatedVpClient=r.createAuthenticatedVpClient;exports.primeVpTokenRegistry=r.primeVpTokenRegistry;exports.resolveProtocolAddresses=r.resolveProtocolAddresses;exports.validateRequestDepositorClaimerArtifactsResponse=r.validateRequestDepositorClaimerArtifactsResponse;exports.verifyServerIdentity=r.verifyServerIdentity;exports.vpTokenRegistry=r.vpTokenRegistry;exports.AUTH_REJECTED_RPC_CODE=s.AUTH_REJECTED_RPC_CODE;exports.DaemonStatus=s.DaemonStatus;exports.JSON_RPC_ERROR_CODES=s.JSON_RPC_ERROR_CODES;exports.JsonRpcClient=s.JsonRpcClient;exports.JsonRpcError=s.JsonRpcError;exports.POST_WOTS_STATUSES=s.POST_WOTS_STATUSES;exports.PRE_DEPOSITOR_SIGNATURES_STATES=s.PRE_DEPOSITOR_SIGNATURES_STATES;exports.RpcErrorCode=s.RpcErrorCode;exports.VP_BATCH_MAX_SIZE=s.VP_BATCH_MAX_SIZE;exports.VP_TERMINAL_FAILURE_STATUSES=s.VP_TERMINAL_FAILURE_STATUSES;exports.VP_TRANSIENT_STATUSES=s.VP_TRANSIENT_STATUSES;exports.isAuthRejectedError=s.isAuthRejectedError;exports.assertOnChainBtcPubkey=I.assertOnChainBtcPubkey;exports.DEPOSIT_TERMS_REJECTED_ERROR_NAME=T.DEPOSIT_TERMS_REJECTED_ERROR_NAME;exports.DepositTermsRejectedError=T.DepositTermsRejectedError;exports.isDepositTermsRejectedError=T.isDepositTermsRejectedError;exports.isWotsMismatchError=T.isWotsMismatchError;exports.rebuildDepositTermsCore=T.rebuildDepositTermsCore;exports.BIP68NotMatureError=e.BIP68NotMatureError;exports.ClaimerPegoutStatusValue=e.ClaimerPegoutStatusValue;exports.PEGIN_ETH_CONFIRMATIONS=e.PEGIN_ETH_CONFIRMATIONS;exports.ParticipantKeyDriftError=e.ParticipantKeyDriftError;exports.PeginRegistrationMissingError=e.PeginRegistrationMissingError;exports.PeginRegistrationNotFinalError=e.PeginRegistrationNotFinalError;exports.REFUND_MAX_FEE_FRACTION_DENOMINATOR=e.REFUND_MAX_FEE_FRACTION_DENOMINATOR;exports.REFUND_MAX_FEE_FRACTION_NUMERATOR=e.REFUND_MAX_FEE_FRACTION_NUMERATOR;exports.REFUND_MAX_FEE_RATE_SATS_VB=e.REFUND_MAX_FEE_RATE_SATS_VB;exports.REFUND_VSIZE=e.REFUND_VSIZE;exports.RegisteredVaultVersionMismatchError=e.RegisteredVaultVersionMismatchError;exports.activateVault=e.activateVault;exports.activateVaultAndRedeem=e.activateVaultAndRedeem;exports.assertVaultProviderHintAccepted=e.assertVaultProviderHintAccepted;exports.buildAndBroadcastRefund=e.buildAndBroadcastRefund;exports.estimateRefundFeeSats=e.estimateRefundFeeSats;exports.isDepositAmountValid=e.isDepositAmountValid;exports.isHintAccepted=e.isHintAccepted;exports.isParticipantKeyDriftError=e.isParticipantKeyDriftError;exports.isPeginRegistrationMissingError=e.isPeginRegistrationMissingError;exports.isPeginRegistrationNotFinalError=e.isPeginRegistrationNotFinalError;exports.isPegoutTerminalStatus=e.isPegoutTerminalStatus;exports.isRecognizedPegoutStatus=e.isRecognizedPegoutStatus;exports.isRegisteredVaultVersionMismatchError=e.isRegisteredVaultVersionMismatchError;exports.matchKeyHint=e.matchKeyHint;exports.matchKeySetHint=e.matchKeySetHint;exports.resolveCurrentParticipantKeys=e.resolveCurrentParticipantKeys;exports.resolveParticipantKeysAtEpochs=e.resolveParticipantKeysAtEpochs;exports.runDepositorPresignFlow=e.runDepositorPresignFlow;exports.signDepositorGraph=e.signDepositorGraph;exports.submitWotsPublicKey=e.submitWotsPublicKey;exports.validateDepositAmount=e.validateDepositAmount;exports.validateMultiVaultDepositInputs=e.validateMultiVaultDepositInputs;exports.validateOnChainParticipantKeys=e.validateOnChainParticipantKeys;exports.validateProviderSelection=e.validateProviderSelection;exports.validateRemainingCapacity=e.validateRemainingCapacity;exports.validateVaultAmounts=e.validateVaultAmounts;exports.validateVaultProviderPubkey=e.validateVaultProviderPubkey;exports.verifyRegisteredParticipantKeys=e.verifyRegisteredParticipantKeys;exports.verifyRegisteredVaultVersions=e.verifyRegisteredVaultVersions;exports.waitForPeginRegistrationDepth=e.waitForPeginRegistrationDepth;exports.waitForPeginStatus=e.waitForPeginStatus;exports.ContractStatus=g.ContractStatus;exports.PeginAction=g.PeginAction;exports.canPerformAction=g.canPerformAction;exports.getPeginProtocolState=g.getPeginProtocolState;exports.isActivationDeadlinePassedOnChain=g.isActivationDeadlinePassedOnChain;
2
2
  //# sourceMappingURL=index.cjs.map