@babylonlabs-io/ts-sdk 0.67.0 → 0.68.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/dist/PeginManager-Bsv6caG3.js +1466 -0
  2. package/dist/PeginManager-Bsv6caG3.js.map +1 -0
  3. package/dist/PeginManager-C5NWzGT7.cjs +2 -0
  4. package/dist/PeginManager-C5NWzGT7.cjs.map +1 -0
  5. package/dist/{batchPoll-cIxrSLLJ.js → batchPoll-Bc_UKaTz.js} +372 -421
  6. package/dist/batchPoll-Bc_UKaTz.js.map +1 -0
  7. package/dist/batchPoll-C9cZ5usJ.cjs +2 -0
  8. package/dist/batchPoll-C9cZ5usJ.cjs.map +1 -0
  9. package/dist/{bitcoin-d9eaaZB_.js → bitcoin-Ch_jxnDa.js} +3 -3
  10. package/dist/{bitcoin-d9eaaZB_.js.map → bitcoin-Ch_jxnDa.js.map} +1 -1
  11. package/dist/{buildAndBroadcastRefund-C4LiPATK.js → buildAndBroadcastRefund-CpMDJ8up.js} +142 -150
  12. package/dist/buildAndBroadcastRefund-CpMDJ8up.js.map +1 -0
  13. package/dist/buildAndBroadcastRefund-DrXwxrW1.cjs +2 -0
  14. package/dist/buildAndBroadcastRefund-DrXwxrW1.cjs.map +1 -0
  15. package/dist/challengeAssert-BNQ8sToz.js +64 -0
  16. package/dist/challengeAssert-BNQ8sToz.js.map +1 -0
  17. package/dist/challengeAssert-BrpC3-cQ.cjs +2 -0
  18. package/dist/challengeAssert-BrpC3-cQ.cjs.map +1 -0
  19. package/dist/index.cjs +1 -1
  20. package/dist/index.js +246 -243
  21. package/dist/{mempoolApi-BxSINXIB.js → mempoolApi-71R_CNZa.js} +193 -117
  22. package/dist/mempoolApi-71R_CNZa.js.map +1 -0
  23. package/dist/mempoolApi-BJN9fGEd.cjs +2 -0
  24. package/dist/mempoolApi-BJN9fGEd.cjs.map +1 -0
  25. package/dist/{noPayout-BaZGRLD2.js → noPayout-CXn-geIS.js} +3 -3
  26. package/dist/{noPayout-BaZGRLD2.js.map → noPayout-CXn-geIS.js.map} +1 -1
  27. package/dist/{noPayout-CnQ1WLtr.cjs → noPayout-Ox27Td9x.cjs} +2 -2
  28. package/dist/{noPayout-CnQ1WLtr.cjs.map → noPayout-Ox27Td9x.cjs.map} +1 -1
  29. package/dist/{onChainBtcPubkey-DeF4cKoO.js → onChainBtcPubkey-BAHZyKQL.js} +2 -2
  30. package/dist/{onChainBtcPubkey-DeF4cKoO.js.map → onChainBtcPubkey-BAHZyKQL.js.map} +1 -1
  31. package/dist/{parseFundingOutpoints-pBRE11Hr.js → parseFundingOutpoints-CO-f6IHK.js} +2 -2
  32. package/dist/{parseFundingOutpoints-pBRE11Hr.js.map → parseFundingOutpoints-CO-f6IHK.js.map} +1 -1
  33. package/dist/{reservation-B4i_PQhY.js → reservation-CBAvoF3U.js} +2 -2
  34. package/dist/{reservation-B4i_PQhY.js.map → reservation-CBAvoF3U.js.map} +1 -1
  35. package/dist/{signPsbtsWithFallback-Bb66DfY5.js → signPsbtsWithFallback-Bv79gLFe.js} +122 -100
  36. package/dist/signPsbtsWithFallback-Bv79gLFe.js.map +1 -0
  37. package/dist/signPsbtsWithFallback-DJ4kE9UI.cjs +2 -0
  38. package/dist/signPsbtsWithFallback-DJ4kE9UI.cjs.map +1 -0
  39. package/dist/tbv/core/clients/index.cjs +1 -1
  40. package/dist/tbv/core/clients/index.js +3 -3
  41. package/dist/tbv/core/clients/vault-provider/auth/__tests__/bip322P2wpkhVectors.d.ts +32 -0
  42. package/dist/tbv/core/clients/vault-provider/auth/__tests__/bip322P2wpkhVectors.d.ts.map +1 -0
  43. package/dist/tbv/core/clients/vault-provider/auth/__tests__/bip322Verify.test.d.ts +9 -6
  44. package/dist/tbv/core/clients/vault-provider/auth/__tests__/bip322Verify.test.d.ts.map +1 -1
  45. package/dist/tbv/core/clients/vault-provider/auth/bip322Verify.d.ts +54 -20
  46. package/dist/tbv/core/clients/vault-provider/auth/bip322Verify.d.ts.map +1 -1
  47. package/dist/tbv/core/deposit-terms/__tests__/depositTerms.test.d.ts +2 -0
  48. package/dist/tbv/core/deposit-terms/__tests__/depositTerms.test.d.ts.map +1 -0
  49. package/dist/tbv/core/deposit-terms/depositTerms.d.ts +41 -4
  50. package/dist/tbv/core/deposit-terms/depositTerms.d.ts.map +1 -1
  51. package/dist/tbv/core/deposit-terms/prePeginApproval.d.ts +10 -5
  52. package/dist/tbv/core/deposit-terms/prePeginApproval.d.ts.map +1 -1
  53. package/dist/tbv/core/index.cjs +1 -1
  54. package/dist/tbv/core/index.js +244 -241
  55. package/dist/tbv/core/managers/PayoutManager.d.ts +8 -2
  56. package/dist/tbv/core/managers/PayoutManager.d.ts.map +1 -1
  57. package/dist/tbv/core/managers/PeginManager.d.ts +7 -0
  58. package/dist/tbv/core/managers/PeginManager.d.ts.map +1 -1
  59. package/dist/tbv/core/managers/index.cjs +1 -1
  60. package/dist/tbv/core/managers/index.js +2 -2
  61. package/dist/tbv/core/managers/pegin/__tests__/verifyPopWitness.test.d.ts +11 -0
  62. package/dist/tbv/core/managers/pegin/__tests__/verifyPopWitness.test.d.ts.map +1 -0
  63. package/dist/tbv/core/managers/pegin/expandPerVaultSecrets.d.ts.map +1 -1
  64. package/dist/tbv/core/managers/pegin/index.d.ts +1 -0
  65. package/dist/tbv/core/managers/pegin/index.d.ts.map +1 -1
  66. package/dist/tbv/core/managers/pegin/verifyPopWitness.d.ts +21 -0
  67. package/dist/tbv/core/managers/pegin/verifyPopWitness.d.ts.map +1 -0
  68. package/dist/tbv/core/primitives/challengers.d.ts +31 -5
  69. package/dist/tbv/core/primitives/challengers.d.ts.map +1 -1
  70. package/dist/tbv/core/primitives/index.cjs +1 -1
  71. package/dist/tbv/core/primitives/index.d.ts +2 -0
  72. package/dist/tbv/core/primitives/index.d.ts.map +1 -1
  73. package/dist/tbv/core/primitives/index.js +43 -41
  74. package/dist/tbv/core/primitives/psbt/__tests__/helpers.d.ts +5 -0
  75. package/dist/tbv/core/primitives/psbt/__tests__/helpers.d.ts.map +1 -1
  76. package/dist/tbv/core/primitives/psbt/__tests__/verifyKeyPathSchnorrSignature.test.d.ts +12 -0
  77. package/dist/tbv/core/primitives/psbt/__tests__/verifyKeyPathSchnorrSignature.test.d.ts.map +1 -0
  78. package/dist/tbv/core/primitives/psbt/payout.d.ts +19 -7
  79. package/dist/tbv/core/primitives/psbt/payout.d.ts.map +1 -1
  80. package/dist/tbv/core/primitives/psbt/verifyKeyPathSchnorrSignature.d.ts +65 -0
  81. package/dist/tbv/core/primitives/psbt/verifyKeyPathSchnorrSignature.d.ts.map +1 -0
  82. package/dist/tbv/core/primitives/psbt/verifyP2wpkhEcdsaSignature.d.ts +40 -0
  83. package/dist/tbv/core/primitives/psbt/verifyP2wpkhEcdsaSignature.d.ts.map +1 -0
  84. package/dist/tbv/core/primitives/psbt/verifyScriptPathSchnorrSignature.d.ts +2 -1
  85. package/dist/tbv/core/primitives/psbt/verifyScriptPathSchnorrSignature.d.ts.map +1 -1
  86. package/dist/tbv/core/primitives/utils/__tests__/taproot.test.d.ts +13 -0
  87. package/dist/tbv/core/primitives/utils/__tests__/taproot.test.d.ts.map +1 -0
  88. package/dist/tbv/core/primitives/utils/taproot.d.ts +29 -0
  89. package/dist/tbv/core/primitives/utils/taproot.d.ts.map +1 -0
  90. package/dist/tbv/core/services/deposit/runDepositorPresignFlow.d.ts +2 -2
  91. package/dist/tbv/core/services/deposit/runDepositorPresignFlow.d.ts.map +1 -1
  92. package/dist/tbv/core/services/deposit/signDepositorGraph.d.ts.map +1 -1
  93. package/dist/tbv/core/services/index.cjs +1 -1
  94. package/dist/tbv/core/services/index.js +2 -2
  95. package/dist/tbv/core/utils/index.js +2 -2
  96. package/dist/tbv/core/utils/witness/witnessStack.d.ts +24 -0
  97. package/dist/tbv/core/utils/witness/witnessStack.d.ts.map +1 -0
  98. package/dist/tbv/core/vault-secrets/index.js +1 -1
  99. package/dist/tbv/index.cjs +1 -1
  100. package/dist/tbv/index.js +244 -241
  101. package/dist/testing/MockBitcoinWallet.d.ts +9 -0
  102. package/dist/testing/MockBitcoinWallet.d.ts.map +1 -1
  103. package/dist/testing/__tests__/MockBitcoinWallet.test.d.ts +2 -0
  104. package/dist/testing/__tests__/MockBitcoinWallet.test.d.ts.map +1 -0
  105. package/dist/testing/index.cjs +1 -1
  106. package/dist/testing/index.cjs.map +1 -1
  107. package/dist/testing/index.js +136 -45
  108. package/dist/testing/index.js.map +1 -1
  109. package/dist/testing/signBip322P2wpkhWitness.d.ts +25 -0
  110. package/dist/testing/signBip322P2wpkhWitness.d.ts.map +1 -0
  111. package/dist/{toRefundInputs-BY_fcvrv.js → toRefundInputs-4UJfSVEz.js} +6 -6
  112. package/dist/{toRefundInputs-BY_fcvrv.js.map → toRefundInputs-4UJfSVEz.js.map} +1 -1
  113. package/dist/{toRefundInputs-DYL9C-aG.cjs → toRefundInputs-DgDhx_Ut.cjs} +2 -2
  114. package/dist/{toRefundInputs-DYL9C-aG.cjs.map → toRefundInputs-DgDhx_Ut.cjs.map} +1 -1
  115. package/dist/verifyKeyPathSchnorrSignature-C6Cmk0R1.js +372 -0
  116. package/dist/verifyKeyPathSchnorrSignature-C6Cmk0R1.js.map +1 -0
  117. package/dist/verifyKeyPathSchnorrSignature-Cr5T4Aym.cjs +2 -0
  118. package/dist/verifyKeyPathSchnorrSignature-Cr5T4Aym.cjs.map +1 -0
  119. package/dist/verifyScriptPathSchnorrSignature-Dy9gF5RF.js +931 -0
  120. package/dist/verifyScriptPathSchnorrSignature-Dy9gF5RF.js.map +1 -0
  121. package/dist/verifyScriptPathSchnorrSignature-la8XOAFm.cjs +2 -0
  122. package/dist/verifyScriptPathSchnorrSignature-la8XOAFm.cjs.map +1 -0
  123. package/package.json +1 -1
  124. package/dist/PeginManager-BBl4xkWz.js +0 -1359
  125. package/dist/PeginManager-BBl4xkWz.js.map +0 -1
  126. package/dist/PeginManager-p-ajwSxG.cjs +0 -2
  127. package/dist/PeginManager-p-ajwSxG.cjs.map +0 -1
  128. package/dist/batchPoll-6L5oToGr.cjs +0 -2
  129. package/dist/batchPoll-6L5oToGr.cjs.map +0 -1
  130. package/dist/batchPoll-cIxrSLLJ.js.map +0 -1
  131. package/dist/buildAndBroadcastRefund-C4LiPATK.js.map +0 -1
  132. package/dist/buildAndBroadcastRefund-Daw5ZUKR.cjs +0 -2
  133. package/dist/buildAndBroadcastRefund-Daw5ZUKR.cjs.map +0 -1
  134. package/dist/challengeAssert-BFRE2DM-.cjs +0 -2
  135. package/dist/challengeAssert-BFRE2DM-.cjs.map +0 -1
  136. package/dist/challengeAssert-C7PzyJ7g.js +0 -75
  137. package/dist/challengeAssert-C7PzyJ7g.js.map +0 -1
  138. package/dist/mempoolApi-BxSINXIB.js.map +0 -1
  139. package/dist/mempoolApi-CXfr-L6x.cjs +0 -2
  140. package/dist/mempoolApi-CXfr-L6x.cjs.map +0 -1
  141. package/dist/peginInput-Ci921gTl.cjs +0 -2
  142. package/dist/peginInput-Ci921gTl.cjs.map +0 -1
  143. package/dist/peginInput-HQPWZfly.js +0 -123
  144. package/dist/peginInput-HQPWZfly.js.map +0 -1
  145. package/dist/signPsbtsWithFallback-Bb66DfY5.js.map +0 -1
  146. package/dist/signPsbtsWithFallback-PTgWxsG3.cjs +0 -2
  147. package/dist/signPsbtsWithFallback-PTgWxsG3.cjs.map +0 -1
  148. package/dist/verifyScriptPathSchnorrSignature-DPAd_qke.cjs +0 -2
  149. package/dist/verifyScriptPathSchnorrSignature-DPAd_qke.cjs.map +0 -1
  150. package/dist/verifyScriptPathSchnorrSignature-i-koT139.js +0 -817
  151. package/dist/verifyScriptPathSchnorrSignature-i-koT139.js.map +0 -1
@@ -0,0 +1,32 @@
1
+ /**
2
+ * BIP-322 official P2WPKH "simple" test vectors, pinned from
3
+ * `bitcoin/bips` `bip-0322/basic-test-vectors.json` at commit
4
+ * d77863fb9e9be7829ad8bb51694b9ba80a786766 ("BIP-0322: update test
5
+ * vectors", 2026-05-06). The base64 `bip322_signatures` entries (after
6
+ * stripping the file's `smp` variant marker) decode to consensus
7
+ * witnesses `[DER sig ‖ 0x01, 33-byte compressed pubkey]`; the fields
8
+ * below are those decoded bytes as hex.
9
+ *
10
+ * Signer: private key L3VFeEujGtevx9w18HD1fhRbCH67Az2dpCymeRE1SoPK6XQtaN2k
11
+ * for address bc1q9vza2e8x573nczrlzms0wvx3gsqjx7vavgkx0l — public BIP
12
+ * test material, not real key material.
13
+ */
14
+ /** 33-byte compressed pubkey shared by every vector (hash160 = the address's witness program). */
15
+ export declare const BIP322_P2WPKH_PUBKEY_HEX = "02c7f12003196442943d8588e01aee840423cc54fc1521526a3b85c2b0cbd58872";
16
+ /** x-only form of {@link BIP322_P2WPKH_PUBKEY_HEX}, as a depositor key would be normalized. */
17
+ export declare const BIP322_P2WPKH_PUBKEY_XONLY_HEX = "c7f12003196442943d8588e01aee840423cc54fc1521526a3b85c2b0cbd58872";
18
+ /**
19
+ * Encoded signatures (DER ‖ 0x01 sighash byte) per message. Each message
20
+ * carries the file's two variants: a 71-byte and a 72-byte encoding.
21
+ */
22
+ export declare const BIP322_P2WPKH_SIGNATURES: ReadonlyArray<{
23
+ readonly message: string;
24
+ readonly encodedSignatureHexes: readonly [string, string];
25
+ }>;
26
+ /**
27
+ * The "Hello World" 71-byte-signature vector as a full consensus-encoded
28
+ * two-item witness (`0x02 ‖ 0x47 ‖ sig ‖ 0x21 ‖ pubkey`), for callers
29
+ * that consume the raw witness (e.g. `verifyPopWitness`).
30
+ */
31
+ export declare const BIP322_P2WPKH_HELLO_WORLD_WITNESS_HEX: string;
32
+ //# sourceMappingURL=bip322P2wpkhVectors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bip322P2wpkhVectors.d.ts","sourceRoot":"","sources":["../../../../../../../src/tbv/core/clients/vault-provider/auth/__tests__/bip322P2wpkhVectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,kGAAkG;AAClG,eAAO,MAAM,wBAAwB,uEACiC,CAAC;AAEvE,+FAA+F;AAC/F,eAAO,MAAM,8BAA8B,qEACyB,CAAC;AAErE;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,aAAa,CAAC;IACnD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,qBAAqB,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3D,CAeA,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qCAAqC,QAA6F,CAAC"}
@@ -1,17 +1,20 @@
1
1
  /**
2
- * Golden-vector test for BIP-322 simple verify.
2
+ * Golden-vector tests for BIP-322 simple verify.
3
3
  *
4
- * The signature + message + pubkey are emitted by the Rust reference
5
- * in `btc-vault/crates/btc-auth/src/server_identity.rs`. The signer
6
- * seed is 7 and the payload is produced by
4
+ * P2TR: the signature + message + pubkey are emitted by the Rust
5
+ * reference in `btc-vault/crates/btc-auth/src/server_identity.rs`.
6
+ * The signer seed is 7 and the payload is produced by
7
7
  * `build_server_identity_payload` with a seed-42 ephemeral pubkey
8
8
  * and expires_at = 1_700_000_000. These were generated end-to-end
9
9
  * by the Rust production path, not constructed ad-hoc — so if this
10
10
  * test passes, the TypeScript implementation byte-exactly matches
11
11
  * what a real VP would sign.
12
12
  *
13
- * Canonical hex lives in `./goldenVectors.ts` so that all
14
- * server-identity tests share one source of truth and can't drift.
13
+ * P2WPKH: the vectors are BIP-322's official ones, pinned in
14
+ * `./bip322P2wpkhVectors.ts`.
15
+ *
16
+ * Canonical hex lives in `./goldenVectors.ts` / `./bip322P2wpkhVectors.ts`
17
+ * so the suites share one source of truth and can't drift.
15
18
  */
16
19
  export {};
17
20
  //# sourceMappingURL=bip322Verify.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bip322Verify.test.d.ts","sourceRoot":"","sources":["../../../../../../../src/tbv/core/clients/vault-provider/auth/__tests__/bip322Verify.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
1
+ {"version":3,"file":"bip322Verify.test.d.ts","sourceRoot":"","sources":["../../../../../../../src/tbv/core/clients/vault-provider/auth/__tests__/bip322Verify.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG"}
@@ -1,10 +1,10 @@
1
1
  /**
2
- * BIP-322 "simple" signature verification for P2TR key-path.
2
+ * BIP-322 "simple" signature verification for P2TR key-path and P2WPKH.
3
3
  *
4
4
  * Mirrors the Rust reference in
5
- * `btc-vault/crates/btc-signer/src/message.rs::verify_bip322_message`
6
- * (which delegates to `rust-bitcoin::bip322::verify_simple` for a
7
- * P2TR key-path-only address with no merkle root).
5
+ * `btc-vault/crates/btc-signer/src/message.rs` (`verify_bip322_message`
6
+ * and the P2WPKH arm of `verify_pop_witness`, both of which delegate to
7
+ * the `bip322` crate 0.0.10's `verify_simple`).
8
8
  *
9
9
  * The algorithm:
10
10
  *
@@ -14,43 +14,77 @@
14
14
  *
15
15
  * 2. Build a virtual "to_spend" transaction with one input (prevout
16
16
  * all-zero txid + 0xFFFFFFFF vout, scriptSig = `OP_0 PUSH32 m_hash`,
17
- * sequence = 0) and one output (value 0, scriptPubKey = P2TR for
18
- * the signer's x-only pubkey).
17
+ * sequence = 0) and one output (value 0, scriptPubKey = the signer's
18
+ * address: P2TR key-path-only, or P2WPKH of the compressed pubkey).
19
19
  *
20
20
  * 3. Build a "to_sign" transaction that spends to_spend[0] and has a
21
21
  * single `OP_RETURN` output (value 0).
22
22
  *
23
- * 4. Compute the BIP-341 taproot sighash of to_sign input 0 with
24
- * SIGHASH_DEFAULT (0x00).
23
+ * 4. Compute the sighash of to_sign input 0: BIP-341 taproot for P2TR
24
+ * (SIGHASH_DEFAULT 0x00 unless the witness item carried a trailing
25
+ * SIGHASH_ALL 0x01 byte), BIP-143 with the standard P2WPKH
26
+ * scriptCode for P2WPKH (SIGHASH_ALL only).
25
27
  *
26
- * 5. Verify the 64-byte Schnorr signature against the **tweaked**
27
- * output key `Q = P + tap_tweak(P) * G`, where `tap_tweak(P) =
28
- * hash_TapTweak(serialize_x_only(P))` (no merkle root — key-path
29
- * only).
28
+ * 5. Verify the signature: Schnorr against the **tweaked** output key
29
+ * `Q = P + tap_tweak(P) * G` for P2TR (no merkle root — key-path
30
+ * only), ECDSA against the compressed pubkey for P2WPKH.
30
31
  *
31
32
  * `bitcoinjs-lib` handles (2)–(4); `tiny-secp256k1-asmjs` provides
32
- * the tweak and Schnorr verify. Pulling in a full BIP-322 library
33
- * would add a peer dep for what amounts to ~40 lines of glue.
33
+ * the tweak and the Schnorr/ECDSA verifies. Pulling in a full BIP-322
34
+ * library would add a peer dep for what amounts to ~40 lines of glue.
34
35
  *
35
36
  * @module tbv/core/clients/vault-provider/auth/bip322Verify
36
37
  */
38
+ /**
39
+ * vaultd's P2WPKH BIP-322 verifier accepts ONLY 71/72-byte encoded
40
+ * signatures — DER (70/71B) + sighash byte (`bip322` crate 0.0.10
41
+ * `verify.rs:141-153`). A shorter (short-DER) signature fails ingestion
42
+ * permanently, so this gate must be exactly as strict. Exported so
43
+ * `verifyPopWitness` can pre-screen with a cause-naming error.
44
+ */
45
+ export declare const P2WPKH_ENCODED_SIG_MIN = 71;
46
+ export declare const P2WPKH_ENCODED_SIG_MAX = 72;
37
47
  /**
38
48
  * Verify a BIP-322 "simple" P2TR key-path signature over an arbitrary
39
49
  * byte message.
40
50
  *
41
- * @internal Exposed only so the golden-vector test suite can pin the
42
- * verifier independently of `verifyServerIdentity`. Production callers
43
- * should use `verifyServerIdentity` from `./serverIdentity` instead.
51
+ * @internal Consumed by `verifyServerIdentity` (VP auth) and
52
+ * `verifyPopWitness` (PoP pre-registration check), and exposed so the
53
+ * golden-vector test suite can pin the verifier independently.
44
54
  *
45
55
  * @param messageBytes - The bytes that were signed (e.g. a CBOR-encoded
46
56
  * payload). Not pre-hashed; this function applies
47
57
  * the BIP-322 tagged hash internally.
48
58
  * @param xOnlyPubkey - 32-byte x-only pubkey of the signer (pre-tweak).
49
59
  * @param signature - 64-byte raw Schnorr signature (BIP-340), as
50
- * emitted by a key-path witness with
51
- * SIGHASH_DEFAULT.
60
+ * emitted by a key-path witness. The trailing
61
+ * sighash byte of a 65-byte witness item is not
62
+ * part of it — pass it as `hashType` instead.
63
+ * @param hashType - BIP-341 sighash type the signature commits to.
64
+ * `SIGHASH_DEFAULT` (0x00) for a 64-byte witness
65
+ * item, `SIGHASH_ALL` (0x01) for a 65-byte one.
52
66
  * @returns `true` if the signature verifies against the address
53
67
  * derived from `xOnlyPubkey`; `false` otherwise.
54
68
  */
55
- export declare function verifyBip322Simple(messageBytes: Uint8Array, xOnlyPubkey: Uint8Array, signature: Uint8Array): boolean;
69
+ export declare function verifyBip322Simple(messageBytes: Uint8Array, xOnlyPubkey: Uint8Array, signature: Uint8Array, hashType?: number): boolean;
70
+ /**
71
+ * Verify a BIP-322 "simple" P2WPKH signature over an arbitrary byte
72
+ * message, mirroring the verifier vaultd runs on a two-item PoP witness
73
+ * (`bip322` crate 0.0.10 `verify.rs:102-186 verify_full_p2wpkh`).
74
+ *
75
+ * @internal Consumed by `verifyPopWitness` for Native SegWit software
76
+ * wallets, and exposed so the BIP-322 official-vector test suite can pin
77
+ * the verifier independently.
78
+ *
79
+ * @param compressedPubkey - 33-byte SEC1 compressed pubkey of the signer
80
+ * (witness item 1). The address is derived from
81
+ * it; network affects only bech32 encoding, not
82
+ * script or sighash (`message.rs:125-127`).
83
+ * @param encodedSignature - Witness item 0: DER signature with trailing
84
+ * sighash byte, 71 or 72 bytes, SIGHASH_ALL only
85
+ * (`verify.rs:141-161`).
86
+ * @returns `true` if the signature verifies against the P2WPKH address of
87
+ * `compressedPubkey`; `false` otherwise.
88
+ */
89
+ export declare function verifyBip322P2wpkhSimple(messageBytes: Uint8Array, compressedPubkey: Uint8Array, encodedSignature: Uint8Array): boolean;
56
90
  //# sourceMappingURL=bip322Verify.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bip322Verify.d.ts","sourceRoot":"","sources":["../../../../../../src/tbv/core/clients/vault-provider/auth/bip322Verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAgDH;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,UAAU,EACxB,WAAW,EAAE,UAAU,EACvB,SAAS,EAAE,UAAU,GACpB,OAAO,CAwET"}
1
+ {"version":3,"file":"bip322Verify.d.ts","sourceRoot":"","sources":["../../../../../../src/tbv/core/clients/vault-provider/auth/bip322Verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAkBH;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAgGzC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,UAAU,EACxB,WAAW,EAAE,UAAU,EACvB,SAAS,EAAE,UAAU,EACrB,QAAQ,GAAE,MAAoC,GAC7C,OAAO,CA6CT;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,UAAU,EACxB,gBAAgB,EAAE,UAAU,EAC5B,gBAAgB,EAAE,UAAU,GAC3B,OAAO,CAoDT"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=depositTerms.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"depositTerms.test.d.ts","sourceRoot":"","sources":["../../../../../src/tbv/core/deposit-terms/__tests__/depositTerms.test.ts"],"names":[],"mappings":""}
@@ -99,19 +99,56 @@ export interface DepositTerms {
99
99
  * re-approves after every derive and before the next terms-bound signature.
100
100
  * The re-approval sites are `PeginManager.preparePegin`,
101
101
  * `runDepositorPresignFlow`, and `signAndBroadcast` (the Pre-PegIn broadcast,
102
- * which derives immediately before approving — see `ensurePrePeginTermsApproval`).
102
+ * which re-derives before approving unless `holdsApprovedDepositTerms`
103
+ * reports the byte-equal intent still live — see `ensurePrePeginTermsApproval`).
103
104
  */
104
105
  export interface DepositTermsApprover {
105
106
  approveDepositTerms(terms: DepositTerms): Promise<void>;
107
+ /**
108
+ * OPTIONAL fast-path probe: can the Pre-PegIn signature for exactly these
109
+ * terms proceed under the connection's held approval without a new
110
+ * ceremony? MUST report false once that Pre-PegIn was signed (one-shot),
111
+ * MUST answer from host state without device I/O, MUST return false on any
112
+ * doubt, and MUST never throw. A stale true fails closed at the next
113
+ * signature — this is a UX optimization, never an authorization.
114
+ */
115
+ holdsApprovedDepositTerms?(terms: DepositTerms): Promise<boolean>;
106
116
  }
107
- /** True when the wallet implements {@link DepositTermsApprover.approveDepositTerms}. */
117
+ /**
118
+ * Where Pre-PegIn change must pay. Approval (policy) wallets sign key-path
119
+ * under a wallet policy whose change branch the device alone can derive and
120
+ * mark internal — the receive address is NOT acceptable change
121
+ * (`process_in_outs.c:114-117` @ e400d8d8).
122
+ *
123
+ * Separate from {@link DepositTermsApprover} because only the Pre-PegIn build
124
+ * needs it: the presign/payout ceremonies approve terms without ever creating
125
+ * change, so they must not require a wallet to implement this.
126
+ *
127
+ * MUST be stable across a deposit flow: the app reads it to build the tx and
128
+ * `preparePegin` re-reads it to verify, so mid-flow rotation fails that gate.
129
+ */
130
+ export interface PrePeginChangeSource {
131
+ getChangeAddress(): Promise<string>;
132
+ }
133
+ /** Probes {@link DepositTermsApprover.approveDepositTerms}. */
108
134
  export declare function supportsDepositApproval(wallet: BitcoinWallet): wallet is BitcoinWallet & DepositTermsApprover;
109
135
  /**
110
- * Spreadable forward of `approveDepositTerms` for wallet-wrapper objects.
136
+ * The wallet's change address, for the one caller that needs it.
137
+ *
138
+ * Narrowing on `approveDepositTerms` alone cannot promise this method, so
139
+ * calling it off the narrowed value would die on `is not a function` in the
140
+ * middle of `preparePegin`, after the pubkey read. Ask here instead and fail
141
+ * with something a provider author can act on.
142
+ *
143
+ * @throws If the wallet cannot report a change address.
144
+ */
145
+ export declare function requireChangeAddress(wallet: BitcoinWallet): Promise<string>;
146
+ /**
147
+ * Spreadable forward of the approval capability for wallet-wrapper objects.
111
148
  * Object spread drops prototype methods, so every `{...wallet}` wrapper site
112
149
  * must re-attach the capability explicitly: `...forwardDepositApproval(wallet)`.
113
150
  */
114
- export declare function forwardDepositApproval(wallet: BitcoinWallet): Partial<DepositTermsApprover>;
151
+ export declare function forwardDepositApproval(wallet: BitcoinWallet): Partial<DepositTermsApprover & PrePeginChangeSource>;
115
152
  export interface BuildDepositTermsInputs {
116
153
  /** btc-vault tx-graph version the graph is built under. */
117
154
  vaultCoreVersion: number;
@@ -1 +1 @@
1
- {"version":3,"file":"depositTerms.d.ts","sourceRoot":"","sources":["../../../../src/tbv/core/deposit-terms/depositTerms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAKxE,MAAM,WAAW,sBAAsB;IACrC,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,6DAA6D;IAC7D,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,WAAW;IACX,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;;;;;;;OASG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,4CAA4C;IAC5C,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;;OAUG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,yCAAyC;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,cAAc,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,qBAAqB,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC;;;;;OAKG;IACH,6BAA6B,EAAE,SAAS,MAAM,EAAE,CAAC;IACjD,uDAAuD;IACvD,MAAM,EAAE,SAAS,sBAAsB,EAAE,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,oBAAoB;IACnC,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AAED,wFAAwF;AACxF,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,aAAa,GACpB,MAAM,IAAI,aAAa,GAAG,oBAAoB,CAKhD;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,oBAAoB,CAAC,CAI/B;AAED,MAAM,WAAW,uBAAuB;IACtC,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,6FAA6F;IAC7F,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,6BAA6B,EAAE,SAAS,MAAM,EAAE,CAAC;IACjD,qFAAqF;IACrF,0BAA0B,EAAE,MAAM,CAAC;IACnC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"depositTerms.d.ts","sourceRoot":"","sources":["../../../../src/tbv/core/deposit-terms/depositTerms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAKxE,MAAM,WAAW,sBAAsB;IACrC,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,6DAA6D;IAC7D,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,WAAW;IACX,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;;;;;;;OASG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,4CAA4C;IAC5C,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;;OAUG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,yCAAyC;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,cAAc,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,qBAAqB,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC;;;;;OAKG;IACH,6BAA6B,EAAE,SAAS,MAAM,EAAE,CAAC;IACjD,uDAAuD;IACvD,MAAM,EAAE,SAAS,sBAAsB,EAAE,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,oBAAoB;IACnC,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD;;;;;;;OAOG;IACH,yBAAyB,CAAC,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnE;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACrC;AAED,+DAA+D;AAC/D,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,aAAa,GACpB,MAAM,IAAI,aAAa,GAAG,oBAAoB,CAKhD;AAED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,MAAM,CAAC,CASjB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,oBAAoB,GAAG,oBAAoB,CAAC,CAqBtD;AAED,MAAM,WAAW,uBAAuB;IACtC,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,6FAA6F;IAC7F,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,6BAA6B,EAAE,SAAS,MAAM,EAAE,CAAC;IACjD,qFAAqF;IACrF,0BAA0B,EAAE,MAAM,CAAC;IACnC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB"}
@@ -2,12 +2,13 @@ import { DepositTerms } from './depositTerms';
2
2
  /**
3
3
  * Minimal structural wallet for the Pre-PegIn ceremony. Mirrors
4
4
  * `DeriveContextHashCapableWallet` so an app-side wrapper object qualifies
5
- * without implementing all of `BitcoinWallet`. Both methods are optional so
5
+ * without implementing all of `BitcoinWallet`. All methods are optional so
6
6
  * the capability probe below can run on any wallet.
7
7
  */
8
8
  export interface PrePeginApprovalWallet {
9
9
  deriveContextHash?(appName: string, context: string): Promise<string>;
10
10
  approveDepositTerms?(terms: DepositTerms): Promise<void>;
11
+ holdsApprovedDepositTerms?(terms: DepositTerms): Promise<boolean>;
11
12
  }
12
13
  export interface EnsurePrePeginTermsApprovalParams {
13
14
  wallet: PrePeginApprovalWallet;
@@ -25,10 +26,14 @@ export interface EnsurePrePeginTermsApprovalParams {
25
26
  * - Approval-capable wallets: require terms, assert they match this tx's txid,
26
27
  * derive the vault root over the tx's funding outpoints, then approve.
27
28
  *
28
- * Always derives first: the host cannot read device state, a one-shot cap means
29
- * every retry needs the full ceremony, and whether interleaved signing
30
- * nullifies a loaded intent is unresolved — so the broadcast path never
31
- * approves-only.
29
+ * Skip fast-path: when `holdsApprovedDepositTerms` reports the byte-equal
30
+ * intent still live, the ceremony is skipped — it survives everything the
31
+ * flow does in between (PoP/PegIn signing spend separate device state;
32
+ * app-babylon-vault `sign_psbt_validate.c` @ 73a57c50). A stale true fails
33
+ * closed at the signature; the retry then re-runs the full ceremony.
34
+ *
35
+ * Otherwise always derives first — the host cannot read device state, so
36
+ * this path never approves-only.
32
37
  *
33
38
  * @throws If approval-capable but no terms are provided, or the provided terms
34
39
  * are for a different transaction.
@@ -1 +1 @@
1
- {"version":3,"file":"prePeginApproval.d.ts","sourceRoot":"","sources":["../../../../src/tbv/core/deposit-terms/prePeginApproval.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,iBAAiB,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtE,mBAAmB,CAAC,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,iCAAiC;IAChD,MAAM,EAAE,sBAAsB,CAAC;IAC/B,8GAA8G;IAC9G,YAAY,EAAE,YAAY,GAAG,SAAS,CAAC;IACvC,sGAAsG;IACtG,mBAAmB,EAAE,MAAM,CAAC;IAC5B,4FAA4F;IAC5F,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,iCAAiC,GACxC,OAAO,CAAC,IAAI,CAAC,CAuEf"}
1
+ {"version":3,"file":"prePeginApproval.d.ts","sourceRoot":"","sources":["../../../../src/tbv/core/deposit-terms/prePeginApproval.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,iBAAiB,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtE,mBAAmB,CAAC,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,yBAAyB,CAAC,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,iCAAiC;IAChD,MAAM,EAAE,sBAAsB,CAAC;IAC/B,8GAA8G;IAC9G,YAAY,EAAE,YAAY,GAAG,SAAS,CAAC;IACvC,sGAAsG;IACtG,mBAAmB,EAAE,MAAM,CAAC;IAC5B,4FAA4F;IAC5F,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,iCAAiC,GACxC,OAAO,CAAC,IAAI,CAAC,CAwFf"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const R=require("../../challengeAssert-BFRE2DM-.cjs"),m=require("../../constants-DU5CGcqO.cjs"),u=require("@babylonlabs-io/babylon-tbv-rust-wasm"),P=require("../../verifyScriptPathSchnorrSignature-DPAd_qke.cjs"),A=require("../../peginInput-Ci921gTl.cjs"),S=require("../../noPayout-CnQ1WLtr.cjs"),r=require("../../bitcoin-m84N5a8o.cjs"),l=require("../../validation-CDbOaDj7.cjs"),O=require("../../signing-Bnsro0hE.cjs"),c=require("../../PeginManager-p-ajwSxG.cjs"),p=require("../../signPsbtsWithFallback-PTgWxsG3.cjs"),_=require("../../ProtocolParams.abi-CYZoV2EI.cjs"),b=require("../../BTCVaultRegistry.abi-z7d_eP22.cjs"),C=require("../../BTCVaultRegistryKeyEpochs.abi-_NERAdc5.cjs"),E=require("../../errors-CGcNP0rV.cjs"),d=require("../../parseFundingOutpoints-CIO9Ok1L.cjs"),s=require("../../waitForTransactionReceiptSmartAware-AgZ-3WV_.cjs"),a=require("../../fundPeginTransaction-BLD8FRL9.cjs"),g=require("../../reservation-CDbInVw0.cjs"),o=require("../../mempoolApi-CXfr-L6x.cjs"),i=require("../../batchPoll-6L5oToGr.cjs"),n=require("../../json-rpc-client-BiAmg_ho.cjs"),y=require("../../onChainBtcPubkey-C_a2L3kL.cjs"),t=require("../../toRefundInputs-DYL9C-aG.cjs"),e=require("../../buildAndBroadcastRefund-Daw5ZUKR.cjs"),T=require("../../peginState-eaQ4IO_R.cjs");exports.buildChallengeAssertPsbt=R.buildChallengeAssertPsbt;exports.computeNumLocalChallengers=R.computeNumLocalChallengers;exports.assertValidVaultCoreVersion=m.assertValidVaultCoreVersion;Object.defineProperty(exports,"computeMinClaimValue",{enumerable:!0,get:()=>u.computeMinClaimValue});Object.defineProperty(exports,"computeMinPeginFee",{enumerable:!0,get:()=>u.computeMinPeginFee});Object.defineProperty(exports,"deriveVaultId",{enumerable:!0,get:()=>u.deriveVaultId});Object.defineProperty(exports,"expandAuthAnchor",{enumerable:!0,get:()=>u.expandAuthAnchor});Object.defineProperty(exports,"expandHashlockSecret",{enumerable:!0,get:()=>u.expandHashlockSecret});Object.defineProperty(exports,"expandWotsSeed",{enumerable:!0,get:()=>u.expandWotsSeed});Object.defineProperty(exports,"peginP2aAnchorOutput",{enumerable:!0,get:()=>u.peginP2aAnchorOutput});Object.defineProperty(exports,"supportedTxGraphVersions",{enumerable:!0,get:()=>u.supportedTxGraphVersions});Object.defineProperty(exports,"validatePeginP2aAnchor",{enumerable:!0,get:()=>u.validatePeginP2aAnchor});exports.PsbtSubstitutionError=P.PsbtSubstitutionError;exports.assertPsbtUnsignedTxMatches=P.assertPsbtUnsignedTxMatches;exports.assertScriptPathSchnorrSignature=P.assertScriptPathSchnorrSignature;exports.buildPayoutPsbt=P.buildPayoutPsbt;exports.buildPeginTxFromFundedPrePegin=P.buildPeginTxFromFundedPrePegin;exports.buildPrePeginPsbt=P.buildPrePeginPsbt;exports.createPayoutScript=P.createPayoutScript;exports.extractPayoutSignature=P.extractPayoutSignature;exports.buildPeginInputPsbt=A.buildPeginInputPsbt;exports.extractPeginInputSignature=A.extractPeginInputSignature;exports.finalizePeginInputPsbt=A.finalizePeginInputPsbt;exports.buildNoPayoutPsbt=S.buildNoPayoutPsbt;exports.buildRefundPsbt=S.buildRefundPsbt;exports.canonicalizeBtcPubkey=r.canonicalizeBtcPubkey;exports.deriveBip86ScriptPubKeyHex=r.deriveBip86ScriptPubKeyHex;exports.deriveNativeSegwitAddress=r.deriveNativeSegwitAddress;exports.deriveTaprootAddress=r.deriveTaprootAddress;exports.ensureHexPrefix=r.ensureHexPrefix;exports.formatSatoshisToBtc=r.formatSatoshisToBtc;exports.getNetwork=r.getNetwork;exports.getSortedXOnlyPubkeys=r.getSortedXOnlyPubkeys;exports.hexToUint8Array=r.hexToUint8Array;exports.isAddressFromPublicKey=r.isAddressFromPublicKey;exports.isValidHex=r.isValidHex;exports.processPublicKeyToXOnly=r.processPublicKeyToXOnly;exports.stripHexPrefix=r.stripHexPrefix;exports.toXOnly=r.toXOnly;exports.uint8ArrayToHex=r.uint8ArrayToHex;exports.validateWalletPubkey=r.validateWalletPubkey;exports.BITCOIN_ADDRESS_RE=l.BITCOIN_ADDRESS_RE;exports.HEX_RE=l.HEX_RE;exports.KNOWN_SCRIPT_PREFIXES=l.KNOWN_SCRIPT_PREFIXES;exports.MAX_REASONABLE_FEE_SATS=l.MAX_REASONABLE_FEE_SATS;exports.TXID_RE=l.TXID_RE;exports.combineAbortSignals=l.combineAbortSignals;exports.createTaprootScriptPathSignOptions=O.createTaprootScriptPathSignOptions;exports.COMMISSION_BPS_HEADROOM=c.COMMISSION_BPS_HEADROOM;exports.MAX_ACCEPTABLE_COMMISSION_BPS_CAP=c.MAX_ACCEPTABLE_COMMISSION_BPS_CAP;exports.PeginManager=c.PeginManager;exports.buildDepositTerms=c.buildDepositTerms;exports.capMaxAcceptableCommissionBps=c.capMaxAcceptableCommissionBps;exports.computeWotsBlockPublicKeysHash=c.computeWotsBlockPublicKeysHash;exports.deriveWotsBlocksFromSeed=c.deriveWotsBlocksFromSeed;exports.ensurePrePeginTermsApproval=c.ensurePrePeginTermsApproval;exports.estimateSubmitPeginRequestBatchGas=c.estimateSubmitPeginRequestBatchGas;exports.PayoutManager=p.PayoutManager;exports.computeHashlock=p.computeHashlock;exports.forwardDepositApproval=p.forwardDepositApproval;exports.supportsDepositApproval=p.supportsDepositApproval;exports.validateSecretAgainstHashlock=p.validateSecretAgainstHashlock;exports.ApplicationRegistryABI=_.ApplicationRegistryABI;exports.ProtocolParamsABI=_.ProtocolParamsABI;exports.BTCVaultRegistryABI=b.BTCVaultRegistryABI;exports.BTCVaultRegistryKeyEpochsABI=C.BTCVaultRegistryKeyEpochsABI;exports.CONTRACT_ERRORS=E.CONTRACT_ERRORS;exports.extractErrorData=E.extractErrorData;exports.getContractErrorMessage=E.getContractErrorMessage;exports.handleContractError=E.handleContractError;exports.isKnownContractError=E.isKnownContractError;exports.VAULT_APP_NAME=d.VAULT_APP_NAME;exports.buildFundingOutpointsCommitment=d.buildFundingOutpointsCommitment;exports.buildVaultContext=d.buildVaultContext;exports.deriveVaultRoot=d.deriveVaultRoot;exports.forwardDeriveContextHash=d.forwardDeriveContextHash;exports.parseFundingOutpointsFromTx=d.parseFundingOutpointsFromTx;exports.BitcoinScriptType=s.BitcoinScriptType;exports.applyChangeOutputPolicy=s.applyChangeOutputPolicy;exports.calculateBtcTxHash=s.calculateBtcTxHash;exports.computeChangeOutputFeeSats=s.computeChangeOutputFeeSats;exports.computeMaxDeposit=s.computeMaxDeposit;exports.computePeginBaseFeeSats=s.computePeginBaseFeeSats;exports.getDustThreshold=s.getDustThreshold;exports.getPsbtInputFields=s.getPsbtInputFields;exports.getScriptType=s.getScriptType;exports.selectUtxosForPegin=s.selectUtxosForPegin;exports.shouldAddChangeOutput=s.shouldAddChangeOutput;exports.waitForTransactionReceiptSmartAware=s.waitForTransactionReceiptSmartAware;exports.BTC_DUST_SAT=a.BTC_DUST_SAT;exports.DUST_THRESHOLD=a.DUST_THRESHOLD;exports.LOW_RATE_ESTIMATION_ACCURACY_BUFFER=a.LOW_RATE_ESTIMATION_ACCURACY_BUFFER;exports.MAX_NON_LEGACY_OUTPUT_SIZE=a.MAX_NON_LEGACY_OUTPUT_SIZE;exports.MAX_REASONABLE_PEGIN_VBYTES=a.MAX_REASONABLE_PEGIN_VBYTES;exports.P2TR_INPUT_SIZE=a.P2TR_INPUT_SIZE;exports.PEGIN_AUTH_ANCHOR_OUTPUTS=a.PEGIN_AUTH_ANCHOR_OUTPUTS;exports.PEGIN_FIXED_OUTPUTS=a.PEGIN_FIXED_OUTPUTS;exports.SPLIT_TX_FEE_SAFETY_MULTIPLIER=a.SPLIT_TX_FEE_SAFETY_MULTIPLIER;exports.TX_BUFFER_SIZE_OVERHEAD=a.TX_BUFFER_SIZE_OVERHEAD;exports.WALLET_RELAY_FEE_RATE_THRESHOLD=a.WALLET_RELAY_FEE_RATE_THRESHOLD;exports.fundPeginTransaction=a.fundPeginTransaction;exports.parseUnfundedWasmTransaction=a.parseUnfundedWasmTransaction;exports.peginOutputCount=a.peginOutputCount;exports.rateBasedTxBufferFee=a.rateBasedTxBufferFee;exports.UtxoNotAvailableError=g.UtxoNotAvailableError;exports.assertUtxosAvailable=g.assertUtxosAvailable;exports.extractInputsFromTransaction=g.extractInputsFromTransaction;exports.findOverlappingPendingVaults=g.findOverlappingPendingVaults;exports.validateUtxosAvailable=g.validateUtxosAvailable;exports.MEMPOOL_API_URLS=o.MEMPOOL_API_URLS;exports.ViemVaultRegistryReader=o.ViemVaultRegistryReader;exports.getAddressTxs=o.getAddressTxs;exports.getAddressUtxos=o.getAddressUtxos;exports.getMempoolApiUrl=o.getMempoolApiUrl;exports.getNetworkFees=o.getNetworkFees;exports.getOutspend=o.getOutspend;exports.getTipHeight=o.getTipHeight;exports.getTxHex=o.getTxHex;exports.getTxInfo=o.getTxInfo;exports.getUtxoInfo=o.getUtxoInfo;exports.pushTx=o.pushTx;exports.validateOffchainParams=o.validateOffchainParams;exports.validatePegInConfiguration=o.validatePegInConfiguration;exports.validateTBVProtocolParams=o.validateTBVProtocolParams;exports.OnChainBtcVaultStatus=i.OnChainBtcVaultStatus;exports.ServerIdentityError=i.ServerIdentityError;exports.VaultProviderRpcClient=i.VaultProviderRpcClient;exports.ViemOperationKeyReader=i.ViemOperationKeyReader;exports.ViemProtocolParamsReader=i.ViemProtocolParamsReader;exports.ViemUniversalChallengerReader=i.ViemUniversalChallengerReader;exports.ViemVaultKeeperReader=i.ViemVaultKeeperReader;exports.VpResponseValidationError=i.VpResponseValidationError;exports.VpTokenRegistry=i.VpTokenRegistry;exports.batchPollByProvider=i.batchPollByProvider;exports.createAuthenticatedVpClient=i.createAuthenticatedVpClient;exports.primeVpTokenRegistry=i.primeVpTokenRegistry;exports.resolveProtocolAddresses=i.resolveProtocolAddresses;exports.validateRequestDepositorClaimerArtifactsResponse=i.validateRequestDepositorClaimerArtifactsResponse;exports.verifyServerIdentity=i.verifyServerIdentity;exports.vpTokenRegistry=i.vpTokenRegistry;exports.AUTH_REJECTED_RPC_CODE=n.AUTH_REJECTED_RPC_CODE;exports.DaemonStatus=n.DaemonStatus;exports.JSON_RPC_ERROR_CODES=n.JSON_RPC_ERROR_CODES;exports.JsonRpcClient=n.JsonRpcClient;exports.JsonRpcError=n.JsonRpcError;exports.POST_WOTS_STATUSES=n.POST_WOTS_STATUSES;exports.PRE_DEPOSITOR_SIGNATURES_STATES=n.PRE_DEPOSITOR_SIGNATURES_STATES;exports.RpcErrorCode=n.RpcErrorCode;exports.VP_BATCH_MAX_SIZE=n.VP_BATCH_MAX_SIZE;exports.VP_TERMINAL_FAILURE_STATUSES=n.VP_TERMINAL_FAILURE_STATUSES;exports.VP_TRANSIENT_STATUSES=n.VP_TRANSIENT_STATUSES;exports.isAuthRejectedError=n.isAuthRejectedError;exports.assertOnChainBtcPubkey=y.assertOnChainBtcPubkey;exports.DEPOSIT_TERMS_REJECTED_ERROR_NAME=t.DEPOSIT_TERMS_REJECTED_ERROR_NAME;exports.DepositTermsRejectedError=t.DepositTermsRejectedError;exports.PeginParamsAmbiguousError=t.PeginParamsAmbiguousError;exports.PeginParamsIncompleteSpaceError=t.PeginParamsIncompleteSpaceError;exports.PeginParamsNotFoundError=t.PeginParamsNotFoundError;exports.PeginSizingIntegrityError=t.PeginSizingIntegrityError;exports.UnanchoredPrePeginError=t.UnanchoredPrePeginError;exports.VaultRootMismatchError=t.VaultRootMismatchError;exports.buildPeginParamsCandidates=t.buildPeginParamsCandidates;exports.deriveHashlocksFromPrePegin=t.deriveHashlocksFromPrePegin;exports.describePeginParamsCandidate=t.describePeginParamsCandidate;exports.describeUnresolvedVersion=t.describeUnresolvedVersion;exports.isDepositTermsRejectedError=t.isDepositTermsRejectedError;exports.isWotsMismatchError=t.isWotsMismatchError;exports.rebuildDepositTermsCore=t.rebuildDepositTermsCore;exports.reconstructPeginParams=t.reconstructPeginParams;exports.toRefundInputs=t.toRefundInputs;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=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 u=require("../../verifyScriptPathSchnorrSignature-la8XOAFm.cjs"),_=require("../../constants-DU5CGcqO.cjs"),P=require("@babylonlabs-io/babylon-tbv-rust-wasm"),E=require("../../verifyKeyPathSchnorrSignature-Cr5T4Aym.cjs"),T=require("../../noPayout-Ox27Td9x.cjs"),m=require("../../challengeAssert-BrpC3-cQ.cjs"),r=require("../../bitcoin-m84N5a8o.cjs"),l=require("../../validation-CDbOaDj7.cjs"),O=require("../../signing-Bnsro0hE.cjs"),c=require("../../PeginManager-C5NWzGT7.cjs"),d=require("../../signPsbtsWithFallback-DJ4kE9UI.cjs"),R=require("../../ProtocolParams.abi-CYZoV2EI.cjs"),C=require("../../BTCVaultRegistry.abi-z7d_eP22.cjs"),b=require("../../BTCVaultRegistryKeyEpochs.abi-_NERAdc5.cjs"),g=require("../../errors-CGcNP0rV.cjs"),p=require("../../parseFundingOutpoints-CIO9Ok1L.cjs"),s=require("../../waitForTransactionReceiptSmartAware-AgZ-3WV_.cjs"),a=require("../../fundPeginTransaction-BLD8FRL9.cjs"),S=require("../../reservation-CDbInVw0.cjs"),o=require("../../mempoolApi-BJN9fGEd.cjs"),i=require("../../batchPoll-C9cZ5usJ.cjs"),n=require("../../json-rpc-client-BiAmg_ho.cjs"),y=require("../../onChainBtcPubkey-C_a2L3kL.cjs"),t=require("../../toRefundInputs-DgDhx_Ut.cjs"),e=require("../../buildAndBroadcastRefund-DrXwxrW1.cjs"),A=require("../../peginState-eaQ4IO_R.cjs");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.computeNumLocalChallengers=u.computeNumLocalChallengers;exports.createPayoutScript=u.createPayoutScript;exports.extractPayoutSignature=u.extractPayoutSignature;exports.assertValidVaultCoreVersion=_.assertValidVaultCoreVersion;Object.defineProperty(exports,"computeMinClaimValue",{enumerable:!0,get:()=>P.computeMinClaimValue});Object.defineProperty(exports,"computeMinPeginFee",{enumerable:!0,get:()=>P.computeMinPeginFee});Object.defineProperty(exports,"deriveVaultId",{enumerable:!0,get:()=>P.deriveVaultId});Object.defineProperty(exports,"expandAuthAnchor",{enumerable:!0,get:()=>P.expandAuthAnchor});Object.defineProperty(exports,"expandHashlockSecret",{enumerable:!0,get:()=>P.expandHashlockSecret});Object.defineProperty(exports,"expandWotsSeed",{enumerable:!0,get:()=>P.expandWotsSeed});Object.defineProperty(exports,"peginP2aAnchorOutput",{enumerable:!0,get:()=>P.peginP2aAnchorOutput});Object.defineProperty(exports,"supportedTxGraphVersions",{enumerable:!0,get:()=>P.supportedTxGraphVersions});Object.defineProperty(exports,"validatePeginP2aAnchor",{enumerable:!0,get:()=>P.validatePeginP2aAnchor});exports.assertKeyPathSchnorrSignature=E.assertKeyPathSchnorrSignature;exports.assertReturnedKeyPathSignatures=E.assertReturnedKeyPathSignatures;exports.buildPeginInputPsbt=E.buildPeginInputPsbt;exports.extractPeginInputSignature=E.extractPeginInputSignature;exports.finalizePeginInputPsbt=E.finalizePeginInputPsbt;exports.buildNoPayoutPsbt=T.buildNoPayoutPsbt;exports.buildRefundPsbt=T.buildRefundPsbt;exports.buildChallengeAssertPsbt=m.buildChallengeAssertPsbt;exports.canonicalizeBtcPubkey=r.canonicalizeBtcPubkey;exports.deriveBip86ScriptPubKeyHex=r.deriveBip86ScriptPubKeyHex;exports.deriveNativeSegwitAddress=r.deriveNativeSegwitAddress;exports.deriveTaprootAddress=r.deriveTaprootAddress;exports.ensureHexPrefix=r.ensureHexPrefix;exports.formatSatoshisToBtc=r.formatSatoshisToBtc;exports.getNetwork=r.getNetwork;exports.getSortedXOnlyPubkeys=r.getSortedXOnlyPubkeys;exports.hexToUint8Array=r.hexToUint8Array;exports.isAddressFromPublicKey=r.isAddressFromPublicKey;exports.isValidHex=r.isValidHex;exports.processPublicKeyToXOnly=r.processPublicKeyToXOnly;exports.stripHexPrefix=r.stripHexPrefix;exports.toXOnly=r.toXOnly;exports.uint8ArrayToHex=r.uint8ArrayToHex;exports.validateWalletPubkey=r.validateWalletPubkey;exports.BITCOIN_ADDRESS_RE=l.BITCOIN_ADDRESS_RE;exports.HEX_RE=l.HEX_RE;exports.KNOWN_SCRIPT_PREFIXES=l.KNOWN_SCRIPT_PREFIXES;exports.MAX_REASONABLE_FEE_SATS=l.MAX_REASONABLE_FEE_SATS;exports.TXID_RE=l.TXID_RE;exports.combineAbortSignals=l.combineAbortSignals;exports.createTaprootScriptPathSignOptions=O.createTaprootScriptPathSignOptions;exports.COMMISSION_BPS_HEADROOM=c.COMMISSION_BPS_HEADROOM;exports.MAX_ACCEPTABLE_COMMISSION_BPS_CAP=c.MAX_ACCEPTABLE_COMMISSION_BPS_CAP;exports.PeginManager=c.PeginManager;exports.buildDepositTerms=c.buildDepositTerms;exports.capMaxAcceptableCommissionBps=c.capMaxAcceptableCommissionBps;exports.computeWotsBlockPublicKeysHash=c.computeWotsBlockPublicKeysHash;exports.deriveWotsBlocksFromSeed=c.deriveWotsBlocksFromSeed;exports.ensurePrePeginTermsApproval=c.ensurePrePeginTermsApproval;exports.estimateSubmitPeginRequestBatchGas=c.estimateSubmitPeginRequestBatchGas;exports.PayoutManager=d.PayoutManager;exports.computeHashlock=d.computeHashlock;exports.forwardDepositApproval=d.forwardDepositApproval;exports.requireChangeAddress=d.requireChangeAddress;exports.supportsDepositApproval=d.supportsDepositApproval;exports.validateSecretAgainstHashlock=d.validateSecretAgainstHashlock;exports.ApplicationRegistryABI=R.ApplicationRegistryABI;exports.ProtocolParamsABI=R.ProtocolParamsABI;exports.BTCVaultRegistryABI=C.BTCVaultRegistryABI;exports.BTCVaultRegistryKeyEpochsABI=b.BTCVaultRegistryKeyEpochsABI;exports.CONTRACT_ERRORS=g.CONTRACT_ERRORS;exports.extractErrorData=g.extractErrorData;exports.getContractErrorMessage=g.getContractErrorMessage;exports.handleContractError=g.handleContractError;exports.isKnownContractError=g.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.BitcoinScriptType=s.BitcoinScriptType;exports.applyChangeOutputPolicy=s.applyChangeOutputPolicy;exports.calculateBtcTxHash=s.calculateBtcTxHash;exports.computeChangeOutputFeeSats=s.computeChangeOutputFeeSats;exports.computeMaxDeposit=s.computeMaxDeposit;exports.computePeginBaseFeeSats=s.computePeginBaseFeeSats;exports.getDustThreshold=s.getDustThreshold;exports.getPsbtInputFields=s.getPsbtInputFields;exports.getScriptType=s.getScriptType;exports.selectUtxosForPegin=s.selectUtxosForPegin;exports.shouldAddChangeOutput=s.shouldAddChangeOutput;exports.waitForTransactionReceiptSmartAware=s.waitForTransactionReceiptSmartAware;exports.BTC_DUST_SAT=a.BTC_DUST_SAT;exports.DUST_THRESHOLD=a.DUST_THRESHOLD;exports.LOW_RATE_ESTIMATION_ACCURACY_BUFFER=a.LOW_RATE_ESTIMATION_ACCURACY_BUFFER;exports.MAX_NON_LEGACY_OUTPUT_SIZE=a.MAX_NON_LEGACY_OUTPUT_SIZE;exports.MAX_REASONABLE_PEGIN_VBYTES=a.MAX_REASONABLE_PEGIN_VBYTES;exports.P2TR_INPUT_SIZE=a.P2TR_INPUT_SIZE;exports.PEGIN_AUTH_ANCHOR_OUTPUTS=a.PEGIN_AUTH_ANCHOR_OUTPUTS;exports.PEGIN_FIXED_OUTPUTS=a.PEGIN_FIXED_OUTPUTS;exports.SPLIT_TX_FEE_SAFETY_MULTIPLIER=a.SPLIT_TX_FEE_SAFETY_MULTIPLIER;exports.TX_BUFFER_SIZE_OVERHEAD=a.TX_BUFFER_SIZE_OVERHEAD;exports.WALLET_RELAY_FEE_RATE_THRESHOLD=a.WALLET_RELAY_FEE_RATE_THRESHOLD;exports.fundPeginTransaction=a.fundPeginTransaction;exports.parseUnfundedWasmTransaction=a.parseUnfundedWasmTransaction;exports.peginOutputCount=a.peginOutputCount;exports.rateBasedTxBufferFee=a.rateBasedTxBufferFee;exports.UtxoNotAvailableError=S.UtxoNotAvailableError;exports.assertUtxosAvailable=S.assertUtxosAvailable;exports.extractInputsFromTransaction=S.extractInputsFromTransaction;exports.findOverlappingPendingVaults=S.findOverlappingPendingVaults;exports.validateUtxosAvailable=S.validateUtxosAvailable;exports.MEMPOOL_API_URLS=o.MEMPOOL_API_URLS;exports.ViemVaultRegistryReader=o.ViemVaultRegistryReader;exports.getAddressTxs=o.getAddressTxs;exports.getAddressUtxos=o.getAddressUtxos;exports.getMempoolApiUrl=o.getMempoolApiUrl;exports.getNetworkFees=o.getNetworkFees;exports.getOutspend=o.getOutspend;exports.getTipHeight=o.getTipHeight;exports.getTxHex=o.getTxHex;exports.getTxInfo=o.getTxInfo;exports.getUtxoInfo=o.getUtxoInfo;exports.pushTx=o.pushTx;exports.validateOffchainParams=o.validateOffchainParams;exports.validatePegInConfiguration=o.validatePegInConfiguration;exports.validateTBVProtocolParams=o.validateTBVProtocolParams;exports.OnChainBtcVaultStatus=i.OnChainBtcVaultStatus;exports.ServerIdentityError=i.ServerIdentityError;exports.VaultProviderRpcClient=i.VaultProviderRpcClient;exports.ViemOperationKeyReader=i.ViemOperationKeyReader;exports.ViemProtocolParamsReader=i.ViemProtocolParamsReader;exports.ViemUniversalChallengerReader=i.ViemUniversalChallengerReader;exports.ViemVaultKeeperReader=i.ViemVaultKeeperReader;exports.VpResponseValidationError=i.VpResponseValidationError;exports.VpTokenRegistry=i.VpTokenRegistry;exports.batchPollByProvider=i.batchPollByProvider;exports.createAuthenticatedVpClient=i.createAuthenticatedVpClient;exports.primeVpTokenRegistry=i.primeVpTokenRegistry;exports.resolveProtocolAddresses=i.resolveProtocolAddresses;exports.validateRequestDepositorClaimerArtifactsResponse=i.validateRequestDepositorClaimerArtifactsResponse;exports.verifyServerIdentity=i.verifyServerIdentity;exports.vpTokenRegistry=i.vpTokenRegistry;exports.AUTH_REJECTED_RPC_CODE=n.AUTH_REJECTED_RPC_CODE;exports.DaemonStatus=n.DaemonStatus;exports.JSON_RPC_ERROR_CODES=n.JSON_RPC_ERROR_CODES;exports.JsonRpcClient=n.JsonRpcClient;exports.JsonRpcError=n.JsonRpcError;exports.POST_WOTS_STATUSES=n.POST_WOTS_STATUSES;exports.PRE_DEPOSITOR_SIGNATURES_STATES=n.PRE_DEPOSITOR_SIGNATURES_STATES;exports.RpcErrorCode=n.RpcErrorCode;exports.VP_BATCH_MAX_SIZE=n.VP_BATCH_MAX_SIZE;exports.VP_TERMINAL_FAILURE_STATUSES=n.VP_TERMINAL_FAILURE_STATUSES;exports.VP_TRANSIENT_STATUSES=n.VP_TRANSIENT_STATUSES;exports.isAuthRejectedError=n.isAuthRejectedError;exports.assertOnChainBtcPubkey=y.assertOnChainBtcPubkey;exports.DEPOSIT_TERMS_REJECTED_ERROR_NAME=t.DEPOSIT_TERMS_REJECTED_ERROR_NAME;exports.DepositTermsRejectedError=t.DepositTermsRejectedError;exports.PeginParamsAmbiguousError=t.PeginParamsAmbiguousError;exports.PeginParamsIncompleteSpaceError=t.PeginParamsIncompleteSpaceError;exports.PeginParamsNotFoundError=t.PeginParamsNotFoundError;exports.PeginSizingIntegrityError=t.PeginSizingIntegrityError;exports.UnanchoredPrePeginError=t.UnanchoredPrePeginError;exports.VaultRootMismatchError=t.VaultRootMismatchError;exports.buildPeginParamsCandidates=t.buildPeginParamsCandidates;exports.deriveHashlocksFromPrePegin=t.deriveHashlocksFromPrePegin;exports.describePeginParamsCandidate=t.describePeginParamsCandidate;exports.describeUnresolvedVersion=t.describeUnresolvedVersion;exports.isDepositTermsRejectedError=t.isDepositTermsRejectedError;exports.isWotsMismatchError=t.isWotsMismatchError;exports.rebuildDepositTermsCore=t.rebuildDepositTermsCore;exports.reconstructPeginParams=t.reconstructPeginParams;exports.toRefundInputs=t.toRefundInputs;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=A.ContractStatus;exports.PeginAction=A.PeginAction;exports.canPerformAction=A.canPerformAction;exports.getPeginProtocolState=A.getPeginProtocolState;exports.isActivationDeadlinePassedOnChain=A.isActivationDeadlinePassedOnChain;
2
2
  //# sourceMappingURL=index.cjs.map