@babylonlabs-io/ts-sdk 0.29.0 → 0.31.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 (55) hide show
  1. package/dist/{PeginManager-DcjXiKYC.cjs → PeginManager-DmVq6ffv.cjs} +2 -2
  2. package/dist/{PeginManager-DcjXiKYC.cjs.map → PeginManager-DmVq6ffv.cjs.map} +1 -1
  3. package/dist/{PeginManager-Dj6oDaH5.js → PeginManager-c44Uvd1N.js} +3 -3
  4. package/dist/{PeginManager-Dj6oDaH5.js.map → PeginManager-c44Uvd1N.js.map} +1 -1
  5. package/dist/{buildAndBroadcastRefund-xWS8frc6.js → buildAndBroadcastRefund-BRQaCQrJ.js} +417 -304
  6. package/dist/buildAndBroadcastRefund-BRQaCQrJ.js.map +1 -0
  7. package/dist/buildAndBroadcastRefund-CLLaz8D3.cjs +2 -0
  8. package/dist/buildAndBroadcastRefund-CLLaz8D3.cjs.map +1 -0
  9. package/dist/challengeAssert-mYikGC34.js +269 -0
  10. package/dist/challengeAssert-mYikGC34.js.map +1 -0
  11. package/dist/challengeAssert-yYFflBOx.cjs +2 -0
  12. package/dist/challengeAssert-yYFflBOx.cjs.map +1 -0
  13. package/dist/index.cjs +1 -1
  14. package/dist/index.js +146 -143
  15. package/dist/noPayout-B8JiTaYt.js +333 -0
  16. package/dist/noPayout-B8JiTaYt.js.map +1 -0
  17. package/dist/noPayout-CwgYkZYs.cjs +2 -0
  18. package/dist/noPayout-CwgYkZYs.cjs.map +1 -0
  19. package/dist/tbv/core/index.cjs +1 -1
  20. package/dist/tbv/core/index.js +143 -140
  21. package/dist/tbv/core/managers/PayoutManager.d.ts.map +1 -1
  22. package/dist/tbv/core/primitives/index.cjs +1 -1
  23. package/dist/tbv/core/primitives/index.d.ts +1 -1
  24. package/dist/tbv/core/primitives/index.d.ts.map +1 -1
  25. package/dist/tbv/core/primitives/index.js +26 -25
  26. package/dist/tbv/core/primitives/psbt/noPayout.d.ts +18 -1
  27. package/dist/tbv/core/primitives/psbt/noPayout.d.ts.map +1 -1
  28. package/dist/tbv/core/primitives/psbt/payout.d.ts +15 -0
  29. package/dist/tbv/core/primitives/psbt/payout.d.ts.map +1 -1
  30. package/dist/tbv/core/services/deposit/index.d.ts +1 -1
  31. package/dist/tbv/core/services/deposit/index.d.ts.map +1 -1
  32. package/dist/tbv/core/services/deposit/signAndSubmitPayouts.d.ts +21 -0
  33. package/dist/tbv/core/services/deposit/signAndSubmitPayouts.d.ts.map +1 -1
  34. package/dist/tbv/core/services/deposit/signDepositorGraph.d.ts +50 -4
  35. package/dist/tbv/core/services/deposit/signDepositorGraph.d.ts.map +1 -1
  36. package/dist/tbv/core/services/index.cjs +1 -1
  37. package/dist/tbv/core/services/index.js +21 -19
  38. package/dist/tbv/core/services/refund/buildAndBroadcastRefund.d.ts +8 -0
  39. package/dist/tbv/core/services/refund/buildAndBroadcastRefund.d.ts.map +1 -1
  40. package/dist/tbv/core/services/refund/index.d.ts +1 -1
  41. package/dist/tbv/core/services/refund/index.d.ts.map +1 -1
  42. package/dist/tbv/index.cjs +1 -1
  43. package/dist/tbv/index.js +143 -140
  44. package/package.json +1 -1
  45. package/dist/buildAndBroadcastRefund-DkEpTFkv.cjs +0 -2
  46. package/dist/buildAndBroadcastRefund-DkEpTFkv.cjs.map +0 -1
  47. package/dist/buildAndBroadcastRefund-xWS8frc6.js.map +0 -1
  48. package/dist/challengeAssert-BM8m9gPM.cjs +0 -2
  49. package/dist/challengeAssert-BM8m9gPM.cjs.map +0 -1
  50. package/dist/challengeAssert-j2Vwqo0-.js +0 -304
  51. package/dist/challengeAssert-j2Vwqo0-.js.map +0 -1
  52. package/dist/payout-B_fvQU3q.js +0 -261
  53. package/dist/payout-B_fvQU3q.js.map +0 -1
  54. package/dist/payout-DP6KMFP1.cjs +0 -2
  55. package/dist/payout-DP6KMFP1.cjs.map +0 -1
@@ -1,28 +1,30 @@
1
- import { B as s, C as e, a as i, m as o, h as u, i as l, l as r, k as n, p as d, b as c, s as P, v as g, g as m, d as p, c as v, j as S, e as A, f as V, w as b } from "../../../buildAndBroadcastRefund-xWS8frc6.js";
2
- import { C, P as h, a as k, g as y } from "../../../signing-BZigafm0.js";
1
+ import { B as s, C as e, R as i, a as o, m as u, h as l, n, i as r, l as d, k as c, p as P, b as g, s as m, v as p, g as v, d as S, c as A, j as V, e as f, f as R, w as b } from "../../../buildAndBroadcastRefund-BRQaCQrJ.js";
2
+ import { C as D, P as h, a as k, g as y } from "../../../signing-BZigafm0.js";
3
3
  export {
4
4
  s as BIP68NotMatureError,
5
5
  e as ClaimerPegoutStatusValue,
6
- C as ContractStatus,
6
+ D as ContractStatus,
7
7
  h as PeginAction,
8
- i as activateVault,
9
- o as buildAndBroadcastRefund,
8
+ i as REFUND_VSIZE,
9
+ o as activateVault,
10
+ u as buildAndBroadcastRefund,
10
11
  k as canPerformAction,
11
- u as computeHashlock,
12
+ l as computeHashlock,
13
+ n as estimateRefundFeeSats,
12
14
  y as getPeginProtocolState,
13
- l as isDepositAmountValid,
14
- r as isPegoutTerminalStatus,
15
- n as isRecognizedPegoutStatus,
16
- d as pollAndSignPayouts,
17
- c as signDepositorGraph,
18
- P as submitWotsPublicKey,
19
- g as validateDepositAmount,
20
- m as validateMultiVaultDepositInputs,
21
- p as validateProviderSelection,
22
- v as validateRemainingCapacity,
23
- S as validateSecretAgainstHashlock,
24
- A as validateVaultAmounts,
25
- V as validateVaultProviderPubkey,
15
+ r as isDepositAmountValid,
16
+ d as isPegoutTerminalStatus,
17
+ c as isRecognizedPegoutStatus,
18
+ P as pollAndSignPayouts,
19
+ g as signDepositorGraph,
20
+ m as submitWotsPublicKey,
21
+ p as validateDepositAmount,
22
+ v as validateMultiVaultDepositInputs,
23
+ S as validateProviderSelection,
24
+ A as validateRemainingCapacity,
25
+ V as validateSecretAgainstHashlock,
26
+ f as validateVaultAmounts,
27
+ R as validateVaultProviderPubkey,
26
28
  b as waitForPeginStatus
27
29
  };
28
30
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,14 @@
1
1
  import { Network } from '@babylonlabs-io/babylon-tbv-rust-wasm';
2
2
  import { Address, Hex } from 'viem';
3
3
  import { SignPsbtOptions } from '../../../../shared/wallets/interfaces/BitcoinWallet';
4
+ export declare const REFUND_VSIZE = 160;
5
+ /**
6
+ * Network fee (sats) the SDK will charge for a refund tx at the given
7
+ * sat/vB rate. Mirrors the internal computation in
8
+ * {@link buildAndBroadcastRefund} so callers (e.g. UI fee previews) don't
9
+ * have to duplicate the constant.
10
+ */
11
+ export declare function estimateRefundFeeSats(feeRateSatsVb: number): bigint;
4
12
  /**
5
13
  * Authoritative vault fields needed to build a refund. Versioning fields,
6
14
  * the hashlock, and htlcVout must come from the on-chain contract (never the
@@ -1 +1 @@
1
- {"version":3,"file":"buildAndBroadcastRefund.d.ts","sourceRoot":"","sources":["../../../../../src/tbv/core/services/refund/buildAndBroadcastRefund.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAErE,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAC;AA+C3F;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,GAAG,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,2BAA2B,EAAE,MAAM,CAAC;IACpC,aAAa,EAAE,OAAO,CAAC;IACvB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iFAAiF;IACjF,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,qBAAqB;IACpC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,0BAA0B,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,sDAAsD;AACtD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,cAAc,CACxB,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,IAC/C,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAExC,MAAM,MAAM,gBAAgB,GAAG,CAC7B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,eAAe,KAClB,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,MAAM,WAAW,WAAW,CAC1B,CAAC,SAAS,kBAAkB,GAAG,kBAAkB;IAEjD,OAAO,EAAE,GAAG,CAAC;IACb;;;;OAIG;IACH,SAAS,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;IAC1C;;;OAGG;IACH,mBAAmB,EAAE,CACnB,KAAK,EAAE,eAAe,KACnB,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACpC;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,oEAAoE;IACpE,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAC/B,uCAAuC;IACvC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAqGD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,uBAAuB,CAC3C,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,EACjD,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CA8EnC"}
1
+ {"version":3,"file":"buildAndBroadcastRefund.d.ts","sourceRoot":"","sources":["../../../../../src/tbv/core/services/refund/buildAndBroadcastRefund.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAErE,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAC;AAyB3F,eAAO,MAAM,YAAY,MAAM,CAAC;AAEhC;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAOnE;AAsBD;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,GAAG,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,2BAA2B,EAAE,MAAM,CAAC;IACpC,aAAa,EAAE,OAAO,CAAC;IACvB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iFAAiF;IACjF,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,qBAAqB;IACpC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,0BAA0B,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,sDAAsD;AACtD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,cAAc,CACxB,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,IAC/C,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAExC,MAAM,MAAM,gBAAgB,GAAG,CAC7B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,eAAe,KAClB,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,MAAM,WAAW,WAAW,CAC1B,CAAC,SAAS,kBAAkB,GAAG,kBAAkB;IAEjD,OAAO,EAAE,GAAG,CAAC;IACb;;;;OAIG;IACH,SAAS,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;IAC1C;;;OAGG;IACH,mBAAmB,EAAE,CACnB,KAAK,EAAE,eAAe,KACnB,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACpC;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,oEAAoE;IACpE,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAC/B,uCAAuC;IACvC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAqGD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,uBAAuB,CAC3C,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,EACjD,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CA8EnC"}
@@ -4,5 +4,5 @@
4
4
  * @module services/refund
5
5
  */
6
6
  export { BIP68NotMatureError } from './errors';
7
- export { buildAndBroadcastRefund, type BtcBroadcastResult, type BtcBroadcaster, type RefundInput, type RefundPrePeginContext, type RefundPsbtSigner, type VaultRefundData, } from './buildAndBroadcastRefund';
7
+ export { buildAndBroadcastRefund, estimateRefundFeeSats, REFUND_VSIZE, type BtcBroadcastResult, type BtcBroadcaster, type RefundInput, type RefundPrePeginContext, type RefundPsbtSigner, type VaultRefundData, } from './buildAndBroadcastRefund';
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/tbv/core/services/refund/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EACL,uBAAuB,EACvB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/tbv/core/services/refund/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,EACZ,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,2BAA2B,CAAC"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("../challengeAssert-BM8m9gPM.cjs"),P=require("@babylonlabs-io/babylon-tbv-rust-wasm"),d=require("../payout-DP6KMFP1.cjs"),o=require("../bitcoin-DIN0OupO.cjs"),l=require("../signing-DHSXjhLM.cjs"),u=require("../validation-u8W7Lp2x.cjs"),t=require("../buildAndBroadcastRefund-DkEpTFkv.cjs"),a=require("../fundPeginTransaction-DaWoYCgO.cjs"),i=require("../psbtInputFields-CB8hqjQ5.cjs"),r=require("../PeginManager-DcjXiKYC.cjs"),e=require("../vault-registry-reader-DdruADqa.cjs"),s=require("../types-jmEyzzhY.cjs");exports.buildChallengeAssertPsbt=n.buildChallengeAssertPsbt;exports.buildDepositorPayoutPsbt=n.buildDepositorPayoutPsbt;exports.buildNoPayoutPsbt=n.buildNoPayoutPsbt;exports.buildPeginInputPsbt=n.buildPeginInputPsbt;exports.buildPeginTxFromFundedPrePegin=n.buildPeginTxFromFundedPrePegin;exports.buildPrePeginPsbt=n.buildPrePeginPsbt;exports.computeNumLocalChallengers=n.computeNumLocalChallengers;exports.extractPeginInputSignature=n.extractPeginInputSignature;exports.finalizePeginInputPsbt=n.finalizePeginInputPsbt;Object.defineProperty(exports,"computeMinClaimValue",{enumerable:!0,get:()=>P.computeMinClaimValue});Object.defineProperty(exports,"deriveVaultId",{enumerable:!0,get:()=>P.deriveVaultId});exports.buildPayoutPsbt=d.buildPayoutPsbt;exports.buildRefundPsbt=d.buildRefundPsbt;exports.createPayoutScript=d.createPayoutScript;exports.extractPayoutSignature=d.extractPayoutSignature;exports.deriveNativeSegwitAddress=o.deriveNativeSegwitAddress;exports.deriveTaprootAddress=o.deriveTaprootAddress;exports.ensureHexPrefix=o.ensureHexPrefix;exports.formatSatoshisToBtc=o.formatSatoshisToBtc;exports.getNetwork=o.getNetwork;exports.hexToUint8Array=o.hexToUint8Array;exports.isAddressFromPublicKey=o.isAddressFromPublicKey;exports.isValidHex=o.isValidHex;exports.processPublicKeyToXOnly=o.processPublicKeyToXOnly;exports.stripHexPrefix=o.stripHexPrefix;exports.toXOnly=o.toXOnly;exports.uint8ArrayToHex=o.uint8ArrayToHex;exports.validateWalletPubkey=o.validateWalletPubkey;exports.ContractStatus=l.ContractStatus;exports.PeginAction=l.PeginAction;exports.canPerformAction=l.canPerformAction;exports.createTaprootScriptPathSignOptions=l.createTaprootScriptPathSignOptions;exports.getPeginProtocolState=l.getPeginProtocolState;exports.BITCOIN_ADDRESS_RE=u.BITCOIN_ADDRESS_RE;exports.HEX_RE=u.HEX_RE;exports.KNOWN_SCRIPT_PREFIXES=u.KNOWN_SCRIPT_PREFIXES;exports.MAX_REASONABLE_FEE_SATS=u.MAX_REASONABLE_FEE_SATS;exports.TXID_RE=u.TXID_RE;exports.BIP68NotMatureError=t.BIP68NotMatureError;exports.ClaimerPegoutStatusValue=t.ClaimerPegoutStatusValue;exports.PayoutManager=t.PayoutManager;exports.activateVault=t.activateVault;exports.buildAndBroadcastRefund=t.buildAndBroadcastRefund;exports.computeHashlock=t.computeHashlock;exports.isDepositAmountValid=t.isDepositAmountValid;exports.isPegoutTerminalStatus=t.isPegoutTerminalStatus;exports.isRecognizedPegoutStatus=t.isRecognizedPegoutStatus;exports.pollAndSignPayouts=t.pollAndSignPayouts;exports.signDepositorGraph=t.signDepositorGraph;exports.submitWotsPublicKey=t.submitWotsPublicKey;exports.validateDepositAmount=t.validateDepositAmount;exports.validateMultiVaultDepositInputs=t.validateMultiVaultDepositInputs;exports.validateProviderSelection=t.validateProviderSelection;exports.validateRemainingCapacity=t.validateRemainingCapacity;exports.validateSecretAgainstHashlock=t.validateSecretAgainstHashlock;exports.validateVaultAmounts=t.validateVaultAmounts;exports.validateVaultProviderPubkey=t.validateVaultProviderPubkey;exports.waitForPeginStatus=t.waitForPeginStatus;exports.BTC_DUST_SAT=a.BTC_DUST_SAT;exports.DUST_THRESHOLD=a.DUST_THRESHOLD;exports.FEE_SAFETY_MARGIN=a.FEE_SAFETY_MARGIN;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.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.BitcoinScriptType=i.BitcoinScriptType;exports.UtxoNotAvailableError=i.UtxoNotAvailableError;exports.assertUtxosAvailable=i.assertUtxosAvailable;exports.calculateBtcTxHash=i.calculateBtcTxHash;exports.collectReservedUtxoRefs=i.collectReservedUtxoRefs;exports.extractInputsFromTransaction=i.extractInputsFromTransaction;exports.getDustThreshold=i.getDustThreshold;exports.getPsbtInputFields=i.getPsbtInputFields;exports.getScriptType=i.getScriptType;exports.selectUtxosForDeposit=i.selectUtxosForDeposit;exports.selectUtxosForPegin=i.selectUtxosForPegin;exports.shouldAddChangeOutput=i.shouldAddChangeOutput;exports.validateUtxosAvailable=i.validateUtxosAvailable;exports.CONTRACT_ERRORS=r.CONTRACT_ERRORS;exports.PeginManager=r.PeginManager;exports.VAULT_APP_NAME=r.VAULT_APP_NAME;exports.buildFundingOutpointsCommitment=r.buildFundingOutpointsCommitment;exports.buildVaultContext=r.buildVaultContext;exports.computeWotsBlockPublicKeysHash=r.computeWotsBlockPublicKeysHash;exports.deriveVaultRoot=r.deriveVaultRoot;exports.deriveWotsBlocksFromSeed=r.deriveWotsBlocksFromSeed;exports.expandAuthAnchor=r.expandAuthAnchor;exports.expandHashlockSecret=r.expandHashlockSecret;exports.expandWotsSeed=r.expandWotsSeed;exports.extractErrorData=r.extractErrorData;exports.getContractErrorMessage=r.getContractErrorMessage;exports.handleContractError=r.handleContractError;exports.isKnownContractError=r.isKnownContractError;exports.isWotsMismatchError=r.isWotsMismatchError;exports.ApplicationRegistryABI=e.ApplicationRegistryABI;exports.MEMPOOL_API_URLS=e.MEMPOOL_API_URLS;exports.ProtocolParamsABI=e.ProtocolParamsABI;exports.ServerIdentityError=e.ServerIdentityError;exports.VaultProviderRpcClient=e.VaultProviderRpcClient;exports.ViemProtocolParamsReader=e.ViemProtocolParamsReader;exports.ViemUniversalChallengerReader=e.ViemUniversalChallengerReader;exports.ViemVaultKeeperReader=e.ViemVaultKeeperReader;exports.ViemVaultRegistryReader=e.ViemVaultRegistryReader;exports.VpResponseValidationError=e.VpResponseValidationError;exports.VpTokenProvider=e.VpTokenProvider;exports.getAddressTxs=e.getAddressTxs;exports.getAddressUtxos=e.getAddressUtxos;exports.getMempoolApiUrl=e.getMempoolApiUrl;exports.getNetworkFees=e.getNetworkFees;exports.getTxHex=e.getTxHex;exports.getTxInfo=e.getTxInfo;exports.getUtxoInfo=e.getUtxoInfo;exports.pushTx=e.pushTx;exports.resolveProtocolAddresses=e.resolveProtocolAddresses;exports.validateRequestDepositorClaimerArtifactsResponse=e.validateRequestDepositorClaimerArtifactsResponse;exports.verifyServerIdentity=e.verifyServerIdentity;exports.BTCVaultRegistryABI=s.BTCVaultRegistryABI;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_TERMINAL_STATUSES=s.VP_TERMINAL_STATUSES;exports.VP_TRANSIENT_STATUSES=s.VP_TRANSIENT_STATUSES;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("../challengeAssert-yYFflBOx.cjs"),P=require("@babylonlabs-io/babylon-tbv-rust-wasm"),u=require("../noPayout-CwgYkZYs.cjs"),o=require("../bitcoin-DIN0OupO.cjs"),l=require("../signing-DHSXjhLM.cjs"),d=require("../validation-u8W7Lp2x.cjs"),e=require("../buildAndBroadcastRefund-CLLaz8D3.cjs"),a=require("../fundPeginTransaction-DaWoYCgO.cjs"),i=require("../psbtInputFields-CB8hqjQ5.cjs"),r=require("../PeginManager-DmVq6ffv.cjs"),t=require("../vault-registry-reader-DdruADqa.cjs"),s=require("../types-jmEyzzhY.cjs");exports.buildChallengeAssertPsbt=n.buildChallengeAssertPsbt;exports.buildDepositorPayoutPsbt=n.buildDepositorPayoutPsbt;exports.buildPeginInputPsbt=n.buildPeginInputPsbt;exports.buildPeginTxFromFundedPrePegin=n.buildPeginTxFromFundedPrePegin;exports.buildPrePeginPsbt=n.buildPrePeginPsbt;exports.computeNumLocalChallengers=n.computeNumLocalChallengers;exports.extractPeginInputSignature=n.extractPeginInputSignature;exports.finalizePeginInputPsbt=n.finalizePeginInputPsbt;Object.defineProperty(exports,"computeMinClaimValue",{enumerable:!0,get:()=>P.computeMinClaimValue});Object.defineProperty(exports,"deriveVaultId",{enumerable:!0,get:()=>P.deriveVaultId});exports.assertPayoutOutputMatchesRegistered=u.assertPayoutOutputMatchesRegistered;exports.buildNoPayoutPsbt=u.buildNoPayoutPsbt;exports.buildPayoutPsbt=u.buildPayoutPsbt;exports.buildRefundPsbt=u.buildRefundPsbt;exports.createPayoutScript=u.createPayoutScript;exports.extractPayoutSignature=u.extractPayoutSignature;exports.deriveNativeSegwitAddress=o.deriveNativeSegwitAddress;exports.deriveTaprootAddress=o.deriveTaprootAddress;exports.ensureHexPrefix=o.ensureHexPrefix;exports.formatSatoshisToBtc=o.formatSatoshisToBtc;exports.getNetwork=o.getNetwork;exports.hexToUint8Array=o.hexToUint8Array;exports.isAddressFromPublicKey=o.isAddressFromPublicKey;exports.isValidHex=o.isValidHex;exports.processPublicKeyToXOnly=o.processPublicKeyToXOnly;exports.stripHexPrefix=o.stripHexPrefix;exports.toXOnly=o.toXOnly;exports.uint8ArrayToHex=o.uint8ArrayToHex;exports.validateWalletPubkey=o.validateWalletPubkey;exports.ContractStatus=l.ContractStatus;exports.PeginAction=l.PeginAction;exports.canPerformAction=l.canPerformAction;exports.createTaprootScriptPathSignOptions=l.createTaprootScriptPathSignOptions;exports.getPeginProtocolState=l.getPeginProtocolState;exports.BITCOIN_ADDRESS_RE=d.BITCOIN_ADDRESS_RE;exports.HEX_RE=d.HEX_RE;exports.KNOWN_SCRIPT_PREFIXES=d.KNOWN_SCRIPT_PREFIXES;exports.MAX_REASONABLE_FEE_SATS=d.MAX_REASONABLE_FEE_SATS;exports.TXID_RE=d.TXID_RE;exports.BIP68NotMatureError=e.BIP68NotMatureError;exports.ClaimerPegoutStatusValue=e.ClaimerPegoutStatusValue;exports.PayoutManager=e.PayoutManager;exports.REFUND_VSIZE=e.REFUND_VSIZE;exports.activateVault=e.activateVault;exports.buildAndBroadcastRefund=e.buildAndBroadcastRefund;exports.computeHashlock=e.computeHashlock;exports.estimateRefundFeeSats=e.estimateRefundFeeSats;exports.isDepositAmountValid=e.isDepositAmountValid;exports.isPegoutTerminalStatus=e.isPegoutTerminalStatus;exports.isRecognizedPegoutStatus=e.isRecognizedPegoutStatus;exports.pollAndSignPayouts=e.pollAndSignPayouts;exports.signDepositorGraph=e.signDepositorGraph;exports.submitWotsPublicKey=e.submitWotsPublicKey;exports.validateDepositAmount=e.validateDepositAmount;exports.validateMultiVaultDepositInputs=e.validateMultiVaultDepositInputs;exports.validateProviderSelection=e.validateProviderSelection;exports.validateRemainingCapacity=e.validateRemainingCapacity;exports.validateSecretAgainstHashlock=e.validateSecretAgainstHashlock;exports.validateVaultAmounts=e.validateVaultAmounts;exports.validateVaultProviderPubkey=e.validateVaultProviderPubkey;exports.waitForPeginStatus=e.waitForPeginStatus;exports.BTC_DUST_SAT=a.BTC_DUST_SAT;exports.DUST_THRESHOLD=a.DUST_THRESHOLD;exports.FEE_SAFETY_MARGIN=a.FEE_SAFETY_MARGIN;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.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.BitcoinScriptType=i.BitcoinScriptType;exports.UtxoNotAvailableError=i.UtxoNotAvailableError;exports.assertUtxosAvailable=i.assertUtxosAvailable;exports.calculateBtcTxHash=i.calculateBtcTxHash;exports.collectReservedUtxoRefs=i.collectReservedUtxoRefs;exports.extractInputsFromTransaction=i.extractInputsFromTransaction;exports.getDustThreshold=i.getDustThreshold;exports.getPsbtInputFields=i.getPsbtInputFields;exports.getScriptType=i.getScriptType;exports.selectUtxosForDeposit=i.selectUtxosForDeposit;exports.selectUtxosForPegin=i.selectUtxosForPegin;exports.shouldAddChangeOutput=i.shouldAddChangeOutput;exports.validateUtxosAvailable=i.validateUtxosAvailable;exports.CONTRACT_ERRORS=r.CONTRACT_ERRORS;exports.PeginManager=r.PeginManager;exports.VAULT_APP_NAME=r.VAULT_APP_NAME;exports.buildFundingOutpointsCommitment=r.buildFundingOutpointsCommitment;exports.buildVaultContext=r.buildVaultContext;exports.computeWotsBlockPublicKeysHash=r.computeWotsBlockPublicKeysHash;exports.deriveVaultRoot=r.deriveVaultRoot;exports.deriveWotsBlocksFromSeed=r.deriveWotsBlocksFromSeed;exports.expandAuthAnchor=r.expandAuthAnchor;exports.expandHashlockSecret=r.expandHashlockSecret;exports.expandWotsSeed=r.expandWotsSeed;exports.extractErrorData=r.extractErrorData;exports.getContractErrorMessage=r.getContractErrorMessage;exports.handleContractError=r.handleContractError;exports.isKnownContractError=r.isKnownContractError;exports.isWotsMismatchError=r.isWotsMismatchError;exports.ApplicationRegistryABI=t.ApplicationRegistryABI;exports.MEMPOOL_API_URLS=t.MEMPOOL_API_URLS;exports.ProtocolParamsABI=t.ProtocolParamsABI;exports.ServerIdentityError=t.ServerIdentityError;exports.VaultProviderRpcClient=t.VaultProviderRpcClient;exports.ViemProtocolParamsReader=t.ViemProtocolParamsReader;exports.ViemUniversalChallengerReader=t.ViemUniversalChallengerReader;exports.ViemVaultKeeperReader=t.ViemVaultKeeperReader;exports.ViemVaultRegistryReader=t.ViemVaultRegistryReader;exports.VpResponseValidationError=t.VpResponseValidationError;exports.VpTokenProvider=t.VpTokenProvider;exports.getAddressTxs=t.getAddressTxs;exports.getAddressUtxos=t.getAddressUtxos;exports.getMempoolApiUrl=t.getMempoolApiUrl;exports.getNetworkFees=t.getNetworkFees;exports.getTxHex=t.getTxHex;exports.getTxInfo=t.getTxInfo;exports.getUtxoInfo=t.getUtxoInfo;exports.pushTx=t.pushTx;exports.resolveProtocolAddresses=t.resolveProtocolAddresses;exports.validateRequestDepositorClaimerArtifactsResponse=t.validateRequestDepositorClaimerArtifactsResponse;exports.verifyServerIdentity=t.verifyServerIdentity;exports.BTCVaultRegistryABI=s.BTCVaultRegistryABI;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_TERMINAL_STATUSES=s.VP_TERMINAL_STATUSES;exports.VP_TRANSIENT_STATUSES=s.VP_TRANSIENT_STATUSES;
2
2
  //# sourceMappingURL=index.cjs.map
package/dist/tbv/index.js CHANGED
@@ -1,149 +1,152 @@
1
- import { i as e, g as t, h as r, d as o, a as i, b as n, c as l, e as u, f as d } from "../challengeAssert-j2Vwqo0-.js";
2
- import { computeMinClaimValue as c, deriveVaultId as T } from "@babylonlabs-io/babylon-tbv-rust-wasm";
3
- import { a as S, b as A, c as E, e as _ } from "../payout-B_fvQU3q.js";
4
- import { d as R, a as m, e as x, f as b, g as I, h as f, i as v, b as C, p as U, s as O, t as V, u as h, v as y } from "../bitcoin-B-Y0DlqR.js";
5
- import { C as F, P as B, a as D, c as M, g as H } from "../signing-BZigafm0.js";
6
- import { B as k, H as W, K as X, M as K, T as w } from "../validation-CxqROCno.js";
7
- import { B as Y, C as J, P as j, a as Z, m as z, h as q, i as Q, l as $, k as aa, p as sa, b as ea, s as ta, v as ra, g as oa, d as ia, c as na, j as la, e as ua, f as da, w as Pa } from "../buildAndBroadcastRefund-xWS8frc6.js";
8
- import { B as Ta, D as pa, F as Sa, L as Aa, M as Ea, P as _a, b as ga, a as Ra, S as ma, T as xa, W as ba, f as Ia, c as fa, p as va, r as Ca } from "../fundPeginTransaction-oV-dNJOU.js";
9
- import { B as Oa, U as Va, a as ha, f as ya, c as Na, e as Fa, g as Ba, i as Da, h as Ma, s as Ha, b as La, d as ka, v as Wa } from "../psbtInputFields-DeTFSJOq.js";
10
- import { C as Ka, P as wa, V as Ga, k as Ya, l as Ja, c as ja, m as Za, d as za, b as qa, f as Qa, j as $a, e as as, g as ss, h as es, i as ts, a as rs } from "../PeginManager-Dj6oDaH5.js";
11
- import { A as is, M as ns, P as ls, S as us, V as ds, k as Ps, l as cs, m as Ts, n as ps, h as Ss, j as As, g as Es, a as _s, b as gs, c as Rs, d as ms, e as xs, f as bs, p as Is, r as fs, v as vs, i as Cs } from "../vault-registry-reader-BywZhqJL.js";
12
- import { B as Os, D as Vs, b as hs, J as ys, a as Ns, d as Fs, P as Bs, R as Ds, c as Ms, V as Hs } from "../types-CnG3JsRs.js";
1
+ import { h as e, g as t, d as r, a as o, b as i, c as n, e as l, f as u } from "../challengeAssert-mYikGC34.js";
2
+ import { computeMinClaimValue as P, deriveVaultId as c } from "@babylonlabs-io/babylon-tbv-rust-wasm";
3
+ import { a as p, d as S, c as E, b as A, f as R, e as _ } from "../noPayout-B8JiTaYt.js";
4
+ import { d as m, a as x, e as b, f as I, g as f, h as v, i as C, b as U, p as O, s as V, t as h, u as y, v as F } from "../bitcoin-B-Y0DlqR.js";
5
+ import { C as D, P as B, a as M, c as H, g as L } from "../signing-BZigafm0.js";
6
+ import { B as W, H as X, K, M as w, T as G } from "../validation-CxqROCno.js";
7
+ import { B as J, C as Z, P as j, R as z, a as q, m as Q, h as $, n as aa, i as sa, l as ea, k as ta, p as ra, b as oa, s as ia, v as na, g as la, d as ua, c as da, j as Pa, e as ca, f as Ta, w as pa } from "../buildAndBroadcastRefund-BRQaCQrJ.js";
8
+ import { B as Ea, D as Aa, F as Ra, L as _a, M as ga, P as ma, b as xa, a as ba, S as Ia, T as fa, W as va, f as Ca, c as Ua, p as Oa, r as Va } from "../fundPeginTransaction-oV-dNJOU.js";
9
+ import { B as ya, U as Fa, a as Na, f as Da, c as Ba, e as Ma, g as Ha, i as La, h as ka, s as Wa, b as Xa, d as Ka, v as wa } from "../psbtInputFields-DeTFSJOq.js";
10
+ import { C as Ya, P as Ja, V as Za, k as ja, l as za, c as qa, m as Qa, d as $a, b as as, f as ss, j as es, e as ts, g as rs, h as os, i as is, a as ns } from "../PeginManager-c44Uvd1N.js";
11
+ import { A as us, M as ds, P as Ps, S as cs, V as Ts, k as ps, l as Ss, m as Es, n as As, h as Rs, j as _s, g as gs, a as ms, b as xs, c as bs, d as Is, e as fs, f as vs, p as Cs, r as Us, v as Os, i as Vs } from "../vault-registry-reader-BywZhqJL.js";
12
+ import { B as ys, D as Fs, b as Ns, J as Ds, a as Bs, d as Ms, P as Hs, R as Ls, c as ks, V as Ws } from "../types-CnG3JsRs.js";
13
13
  export {
14
- is as ApplicationRegistryABI,
15
- Y as BIP68NotMatureError,
16
- k as BITCOIN_ADDRESS_RE,
17
- Os as BTCVaultRegistryABI,
18
- Ta as BTC_DUST_SAT,
19
- Oa as BitcoinScriptType,
20
- Ka as CONTRACT_ERRORS,
21
- J as ClaimerPegoutStatusValue,
22
- F as ContractStatus,
23
- pa as DUST_THRESHOLD,
24
- Vs as DaemonStatus,
25
- Sa as FEE_SAFETY_MARGIN,
26
- W as HEX_RE,
27
- hs as JSON_RPC_ERROR_CODES,
28
- ys as JsonRpcClient,
29
- Ns as JsonRpcError,
30
- X as KNOWN_SCRIPT_PREFIXES,
31
- Aa as LOW_RATE_ESTIMATION_ACCURACY_BUFFER,
32
- Ea as MAX_NON_LEGACY_OUTPUT_SIZE,
33
- K as MAX_REASONABLE_FEE_SATS,
34
- ns as MEMPOOL_API_URLS,
35
- _a as P2TR_INPUT_SIZE,
36
- ga as PEGIN_AUTH_ANCHOR_OUTPUTS,
37
- Ra as PEGIN_FIXED_OUTPUTS,
38
- Fs as POST_WOTS_STATUSES,
39
- Bs as PRE_DEPOSITOR_SIGNATURES_STATES,
14
+ us as ApplicationRegistryABI,
15
+ J as BIP68NotMatureError,
16
+ W as BITCOIN_ADDRESS_RE,
17
+ ys as BTCVaultRegistryABI,
18
+ Ea as BTC_DUST_SAT,
19
+ ya as BitcoinScriptType,
20
+ Ya as CONTRACT_ERRORS,
21
+ Z as ClaimerPegoutStatusValue,
22
+ D as ContractStatus,
23
+ Aa as DUST_THRESHOLD,
24
+ Fs as DaemonStatus,
25
+ Ra as FEE_SAFETY_MARGIN,
26
+ X as HEX_RE,
27
+ Ns as JSON_RPC_ERROR_CODES,
28
+ Ds as JsonRpcClient,
29
+ Bs as JsonRpcError,
30
+ K as KNOWN_SCRIPT_PREFIXES,
31
+ _a as LOW_RATE_ESTIMATION_ACCURACY_BUFFER,
32
+ ga as MAX_NON_LEGACY_OUTPUT_SIZE,
33
+ w as MAX_REASONABLE_FEE_SATS,
34
+ ds as MEMPOOL_API_URLS,
35
+ ma as P2TR_INPUT_SIZE,
36
+ xa as PEGIN_AUTH_ANCHOR_OUTPUTS,
37
+ ba as PEGIN_FIXED_OUTPUTS,
38
+ Ms as POST_WOTS_STATUSES,
39
+ Hs as PRE_DEPOSITOR_SIGNATURES_STATES,
40
40
  j as PayoutManager,
41
41
  B as PeginAction,
42
- wa as PeginManager,
43
- ls as ProtocolParamsABI,
44
- Ds as RpcErrorCode,
45
- ma as SPLIT_TX_FEE_SAFETY_MULTIPLIER,
46
- us as ServerIdentityError,
47
- w as TXID_RE,
48
- xa as TX_BUFFER_SIZE_OVERHEAD,
49
- Va as UtxoNotAvailableError,
50
- Ga as VAULT_APP_NAME,
51
- Ms as VP_TERMINAL_STATUSES,
52
- Hs as VP_TRANSIENT_STATUSES,
53
- ds as VaultProviderRpcClient,
54
- Ps as ViemProtocolParamsReader,
55
- cs as ViemUniversalChallengerReader,
56
- Ts as ViemVaultKeeperReader,
57
- ps as ViemVaultRegistryReader,
58
- Ss as VpResponseValidationError,
59
- As as VpTokenProvider,
60
- ba as WALLET_RELAY_FEE_RATE_THRESHOLD,
61
- Z as activateVault,
62
- ha as assertUtxosAvailable,
63
- z as buildAndBroadcastRefund,
42
+ Ja as PeginManager,
43
+ Ps as ProtocolParamsABI,
44
+ z as REFUND_VSIZE,
45
+ Ls as RpcErrorCode,
46
+ Ia as SPLIT_TX_FEE_SAFETY_MULTIPLIER,
47
+ cs as ServerIdentityError,
48
+ G as TXID_RE,
49
+ fa as TX_BUFFER_SIZE_OVERHEAD,
50
+ Fa as UtxoNotAvailableError,
51
+ Za as VAULT_APP_NAME,
52
+ ks as VP_TERMINAL_STATUSES,
53
+ Ws as VP_TRANSIENT_STATUSES,
54
+ Ts as VaultProviderRpcClient,
55
+ ps as ViemProtocolParamsReader,
56
+ Ss as ViemUniversalChallengerReader,
57
+ Es as ViemVaultKeeperReader,
58
+ As as ViemVaultRegistryReader,
59
+ Rs as VpResponseValidationError,
60
+ _s as VpTokenProvider,
61
+ va as WALLET_RELAY_FEE_RATE_THRESHOLD,
62
+ q as activateVault,
63
+ p as assertPayoutOutputMatchesRegistered,
64
+ Na as assertUtxosAvailable,
65
+ Q as buildAndBroadcastRefund,
64
66
  e as buildChallengeAssertPsbt,
65
67
  t as buildDepositorPayoutPsbt,
66
- Ya as buildFundingOutpointsCommitment,
67
- r as buildNoPayoutPsbt,
68
- S as buildPayoutPsbt,
69
- o as buildPeginInputPsbt,
70
- i as buildPeginTxFromFundedPrePegin,
71
- n as buildPrePeginPsbt,
68
+ ja as buildFundingOutpointsCommitment,
69
+ S as buildNoPayoutPsbt,
70
+ E as buildPayoutPsbt,
71
+ r as buildPeginInputPsbt,
72
+ o as buildPeginTxFromFundedPrePegin,
73
+ i as buildPrePeginPsbt,
72
74
  A as buildRefundPsbt,
73
- Ja as buildVaultContext,
74
- ya as calculateBtcTxHash,
75
- D as canPerformAction,
76
- Na as collectReservedUtxoRefs,
77
- q as computeHashlock,
78
- c as computeMinClaimValue,
79
- l as computeNumLocalChallengers,
80
- ja as computeWotsBlockPublicKeysHash,
81
- E as createPayoutScript,
82
- M as createTaprootScriptPathSignOptions,
83
- R as deriveNativeSegwitAddress,
84
- m as deriveTaprootAddress,
85
- T as deriveVaultId,
86
- Za as deriveVaultRoot,
87
- za as deriveWotsBlocksFromSeed,
88
- x as ensureHexPrefix,
89
- qa as expandAuthAnchor,
90
- Qa as expandHashlockSecret,
91
- $a as expandWotsSeed,
92
- as as extractErrorData,
93
- Fa as extractInputsFromTransaction,
75
+ za as buildVaultContext,
76
+ Da as calculateBtcTxHash,
77
+ M as canPerformAction,
78
+ Ba as collectReservedUtxoRefs,
79
+ $ as computeHashlock,
80
+ P as computeMinClaimValue,
81
+ n as computeNumLocalChallengers,
82
+ qa as computeWotsBlockPublicKeysHash,
83
+ R as createPayoutScript,
84
+ H as createTaprootScriptPathSignOptions,
85
+ m as deriveNativeSegwitAddress,
86
+ x as deriveTaprootAddress,
87
+ c as deriveVaultId,
88
+ Qa as deriveVaultRoot,
89
+ $a as deriveWotsBlocksFromSeed,
90
+ b as ensureHexPrefix,
91
+ aa as estimateRefundFeeSats,
92
+ as as expandAuthAnchor,
93
+ ss as expandHashlockSecret,
94
+ es as expandWotsSeed,
95
+ ts as extractErrorData,
96
+ Ma as extractInputsFromTransaction,
94
97
  _ as extractPayoutSignature,
95
- u as extractPeginInputSignature,
96
- d as finalizePeginInputPsbt,
97
- b as formatSatoshisToBtc,
98
- Ia as fundPeginTransaction,
99
- Es as getAddressTxs,
100
- _s as getAddressUtxos,
101
- ss as getContractErrorMessage,
102
- Ba as getDustThreshold,
103
- gs as getMempoolApiUrl,
104
- I as getNetwork,
105
- Rs as getNetworkFees,
106
- H as getPeginProtocolState,
107
- Da as getPsbtInputFields,
108
- Ma as getScriptType,
109
- ms as getTxHex,
110
- xs as getTxInfo,
111
- bs as getUtxoInfo,
112
- es as handleContractError,
113
- f as hexToUint8Array,
114
- v as isAddressFromPublicKey,
115
- Q as isDepositAmountValid,
116
- ts as isKnownContractError,
117
- $ as isPegoutTerminalStatus,
118
- aa as isRecognizedPegoutStatus,
119
- C as isValidHex,
120
- rs as isWotsMismatchError,
121
- fa as parseUnfundedWasmTransaction,
122
- va as peginOutputCount,
123
- sa as pollAndSignPayouts,
124
- U as processPublicKeyToXOnly,
125
- Is as pushTx,
126
- Ca as rateBasedTxBufferFee,
127
- fs as resolveProtocolAddresses,
128
- Ha as selectUtxosForDeposit,
129
- La as selectUtxosForPegin,
130
- ka as shouldAddChangeOutput,
131
- ea as signDepositorGraph,
132
- O as stripHexPrefix,
133
- ta as submitWotsPublicKey,
134
- V as toXOnly,
135
- h as uint8ArrayToHex,
136
- ra as validateDepositAmount,
137
- oa as validateMultiVaultDepositInputs,
138
- ia as validateProviderSelection,
139
- na as validateRemainingCapacity,
140
- vs as validateRequestDepositorClaimerArtifactsResponse,
141
- la as validateSecretAgainstHashlock,
142
- Wa as validateUtxosAvailable,
143
- ua as validateVaultAmounts,
144
- da as validateVaultProviderPubkey,
145
- y as validateWalletPubkey,
146
- Cs as verifyServerIdentity,
147
- Pa as waitForPeginStatus
98
+ l as extractPeginInputSignature,
99
+ u as finalizePeginInputPsbt,
100
+ I as formatSatoshisToBtc,
101
+ Ca as fundPeginTransaction,
102
+ gs as getAddressTxs,
103
+ ms as getAddressUtxos,
104
+ rs as getContractErrorMessage,
105
+ Ha as getDustThreshold,
106
+ xs as getMempoolApiUrl,
107
+ f as getNetwork,
108
+ bs as getNetworkFees,
109
+ L as getPeginProtocolState,
110
+ La as getPsbtInputFields,
111
+ ka as getScriptType,
112
+ Is as getTxHex,
113
+ fs as getTxInfo,
114
+ vs as getUtxoInfo,
115
+ os as handleContractError,
116
+ v as hexToUint8Array,
117
+ C as isAddressFromPublicKey,
118
+ sa as isDepositAmountValid,
119
+ is as isKnownContractError,
120
+ ea as isPegoutTerminalStatus,
121
+ ta as isRecognizedPegoutStatus,
122
+ U as isValidHex,
123
+ ns as isWotsMismatchError,
124
+ Ua as parseUnfundedWasmTransaction,
125
+ Oa as peginOutputCount,
126
+ ra as pollAndSignPayouts,
127
+ O as processPublicKeyToXOnly,
128
+ Cs as pushTx,
129
+ Va as rateBasedTxBufferFee,
130
+ Us as resolveProtocolAddresses,
131
+ Wa as selectUtxosForDeposit,
132
+ Xa as selectUtxosForPegin,
133
+ Ka as shouldAddChangeOutput,
134
+ oa as signDepositorGraph,
135
+ V as stripHexPrefix,
136
+ ia as submitWotsPublicKey,
137
+ h as toXOnly,
138
+ y as uint8ArrayToHex,
139
+ na as validateDepositAmount,
140
+ la as validateMultiVaultDepositInputs,
141
+ ua as validateProviderSelection,
142
+ da as validateRemainingCapacity,
143
+ Os as validateRequestDepositorClaimerArtifactsResponse,
144
+ Pa as validateSecretAgainstHashlock,
145
+ wa as validateUtxosAvailable,
146
+ ca as validateVaultAmounts,
147
+ Ta as validateVaultProviderPubkey,
148
+ F as validateWalletPubkey,
149
+ Vs as verifyServerIdentity,
150
+ pa as waitForPeginStatus
148
151
  };
149
152
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@babylonlabs-io/ts-sdk",
3
- "version": "0.29.0",
3
+ "version": "0.31.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -1,2 +0,0 @@
1
- "use strict";var G=Object.defineProperty;var q=(e,t,r)=>t in e?G(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var y=(e,t,r)=>q(e,typeof t!="symbol"?t+"":t,r);const p=require("./types-jmEyzzhY.cjs"),l=require("./bitcoin-DIN0OupO.cjs"),j=require("./sha2-CsTynrfJ.cjs"),b=require("bitcoinjs-lib"),O=require("buffer"),P=require("./signing-DHSXjhLM.cjs");require("@babylonlabs-io/babylon-tbv-rust-wasm");const h=require("./payout-DP6KMFP1.cjs");function Y(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const Q=Y(b),A=66;function C(e){if(!e.startsWith("0x")&&!e.startsWith("0X"))throw new Error("Expected 0x-prefixed hex string");const t=e.slice(2);if(t.length%2!==0)throw new Error(`Hex string has odd length: ${t.length}`);if(!/^[0-9a-fA-F]*$/.test(t))throw new Error("Hex string contains non-hex characters");const r=new Uint8Array(t.length/2);for(let o=0;o<r.length;o++)r[o]=parseInt(t.slice(o*2,o*2+2),16);return r}function J(e){return`0x${Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}`}function E(e,t){if(e.length!==A)throw new Error(`${t} must be exactly 32 bytes (${A} hex chars with 0x prefix), got ${e.length}`)}function N(e){E(e,"Secret");const t=C(e),r=j.sha256(t);return J(r)}function V(e,t){return E(e,"Secret"),E(t,"Hashlock"),C(t),N(e).toLowerCase()===t.toLowerCase()}const Z=/^0x[0-9a-fA-F]{64}$/,ee=/^0x[0-9a-fA-F]{40}$/,te=/^0x([0-9a-fA-F]{2})*$/;function v(e,t){if(e.length!==66)throw new Error(`${t} must be 32 bytes (66 hex chars with 0x prefix), got length ${e.length}`);if(!Z.test(e))throw new Error(`${t} must contain only hex characters after the 0x prefix`)}function re(e,t){if(!ee.test(e))throw new Error(`${t} must be a 20-byte 0x-prefixed hex address (42 chars)`)}function oe(e,t){if(!te.test(e))throw new Error(`${t} must be a 0x-prefixed hex string with an even number of hex chars`)}async function ne(e){const{btcVaultRegistryAddress:t,vaultId:r,hashlock:o,activationMetadata:i,writeContract:c,signal:a}=e;a==null||a.throwIfAborted(),re(t,"btcVaultRegistryAddress"),v(r,"vaultId");const s=l.ensureHexPrefix(e.secret);if(v(s,"secret"),o!==void 0&&(v(o,"hashlock"),!V(s,o)))throw new Error("Invalid secret: SHA256(secret) does not match the provided hashlock");return oe(i,"activationMetadata"),c({address:t,abi:p.BTCVaultRegistryABI,functionName:"activateVaultWithSecret",args:[r,s,i]})}const ie=1e4;async function k(e){const{statusReader:t,peginTxid:r,targetStatuses:o,timeoutMs:i,pollIntervalMs:c=ie,signal:a}=e,s=Date.now();for(;;){if(a!=null&&a.aborted)throw new Error(`Polling aborted for pegin ${r.slice(0,8)}… (target: ${[...o].join(", ")})`);if(Date.now()-s>=i)throw new Error(`Polling timeout after ${i}ms for pegin ${r.slice(0,8)}… (target: ${[...o].join(", ")})`);try{const u=(await t.getPeginStatus({pegin_txid:r},a)).status;if(o.has(u))return u;if(p.VP_TERMINAL_STATUSES.has(u)&&!o.has(u))throw new Error(`Pegin ${r.slice(0,8)}… reached terminal status "${u}" while waiting for ${[...o].join(", ")}`)}catch(n){if(!(n instanceof p.JsonRpcError&&n.code===p.RpcErrorCode.NOT_FOUND||n instanceof Error&&n.message.includes("PegIn not found")))throw n}await new Promise((n,u)=>{const d=()=>{clearTimeout(g),u(new Error(`Polling aborted for pegin ${r.slice(0,8)}… (target: ${[...o].join(", ")})`))},g=setTimeout(()=>{a==null||a.removeEventListener("abort",d),n()},c);a==null||a.addEventListener("abort",d,{once:!0})})}}const se=300*1e3,ae=new Set([p.DaemonStatus.PENDING_DEPOSITOR_WOTS_PK,...p.POST_WOTS_STATUSES]);async function ue(e){const{statusReader:t,wotsSubmitter:r,peginTxid:o,depositorPk:i,wotsPublicKeys:c,timeoutMs:a=se,signal:s}=e;s==null||s.throwIfAborted();const n=await k({statusReader:t,peginTxid:o,targetStatuses:ae,timeoutMs:a,signal:s});p.POST_WOTS_STATUSES.has(n)||(s==null||s.throwIfAborted(),await r.submitDepositorWotsKey({pegin_txid:o,depositor_pk:i,wots_public_keys:c},s))}const H=1;function ce(e,t,r){const o=b.Psbt.fromBase64(e),i=o.data.getTransaction().toString("hex").toLowerCase(),c=l.stripHexPrefix(t).toLowerCase();if(i!==c)throw new Error(`PSBT integrity check failed for ${r}: unsigned transaction does not match tx_hex`);return o}function le(e){const t=b.Psbt.fromHex(e.toHex());for(const r of t.data.inputs)delete r.tapBip32Derivation,delete r.tapMerkleRoot;return t}function I(e,t,r){if(!e)throw new Error(`Missing ${r} PSBT`);const o=ce(e,t,r);return le(o).toHex()}function pe(e,t){const r=[],o=[],i=[],c=I(e.payout_psbt,e.payout_tx.tx_hex,"depositor payout");r.push(c),o.push(P.createTaprootScriptPathSignOptions(t,H));for(const a of e.challenger_presign_data){const s=l.stripHexPrefix(a.challenger_pubkey),n=r.length,u=I(a.nopayout_psbt,a.nopayout_tx.tx_hex,`nopayout (challenger ${s})`);r.push(u),o.push(P.createTaprootScriptPathSignOptions(t,H)),i.push({challengerPubkey:s,noPayoutIdx:n})}return{psbtHexes:r,signOptions:o,challengerEntries:i}}function de(e,t,r){const o=h.extractPayoutSignature(e[0],r),i={};for(const c of t)i[c.challengerPubkey]={nopayout_signature:h.extractPayoutSignature(e[c.noPayoutIdx],r)};return{payout_signatures:{payout_signature:o},per_challenger:i}}async function fe(e,t,r){if(typeof e.signPsbts=="function")return e.signPsbts(t,r);const o=[];for(let i=0;i<t.length;i++)o.push(await e.signPsbt(t[i],r==null?void 0:r[i]));return o}async function D(e){const{depositorGraph:t,depositorBtcPubkey:r,btcWallet:o}=e,i=l.stripHexPrefix(r),c=await o.getPublicKeyHex(),{psbtHexes:a,signOptions:s,challengerEntries:n}=pe(t,c),u=await fe(o,a,s);if(u.length!==a.length)throw new Error(`Wallet returned ${u.length} signed PSBTs, expected ${a.length}`);return de(u,n,i)}class K{constructor(t){y(this,"config");this.config=t}async signPayoutTransaction(t){this.validatePayoutOutputs(t.payoutTxHex,t.registeredPayoutScriptPubKey);const r=await this.config.btcWallet.getPublicKeyHex(),{depositorPubkey:o}=l.validateWalletPubkey(r,t.depositorBtcPubkey),i=await h.buildPayoutPsbt({payoutTxHex:t.payoutTxHex,peginTxHex:t.peginTxHex,assertTxHex:t.assertTxHex,depositorBtcPubkey:o,vaultProviderBtcPubkey:t.vaultProviderBtcPubkey,vaultKeeperBtcPubkeys:t.vaultKeeperBtcPubkeys,universalChallengerBtcPubkeys:t.universalChallengerBtcPubkeys,timelockPegin:t.timelockPegin,network:this.config.network}),c=await this.config.btcWallet.signPsbt(i.psbtHex,P.createTaprootScriptPathSignOptions(r,1));return{signature:h.extractPayoutSignature(c,o),depositorBtcPubkey:o}}getNetwork(){return this.config.network}supportsBatchSigning(){return typeof this.config.btcWallet.signPsbts=="function"}async signPayoutTransactionsBatch(t){if(!this.supportsBatchSigning())throw new Error("Wallet does not support batch signing (signPsbts method not available)");const r=await this.config.btcWallet.getPublicKeyHex(),o=[],i=[],c=[];for(const n of t){this.validatePayoutOutputs(n.payoutTxHex,n.registeredPayoutScriptPubKey);const{depositorPubkey:u}=l.validateWalletPubkey(r,n.depositorBtcPubkey);c.push(u);const d=await h.buildPayoutPsbt({payoutTxHex:n.payoutTxHex,peginTxHex:n.peginTxHex,assertTxHex:n.assertTxHex,depositorBtcPubkey:u,vaultProviderBtcPubkey:n.vaultProviderBtcPubkey,vaultKeeperBtcPubkeys:n.vaultKeeperBtcPubkeys,universalChallengerBtcPubkeys:n.universalChallengerBtcPubkeys,timelockPegin:n.timelockPegin,network:this.config.network});o.push(d.psbtHex),i.push(P.createTaprootScriptPathSignOptions(r,1))}const a=await this.config.btcWallet.signPsbts(o,i);if(a.length!==t.length)throw new Error(`Expected ${t.length} signed PSBTs but received ${a.length}`);const s=[];for(let n=0;n<t.length;n++){const u=c[n],d=h.extractPayoutSignature(a[n],u);s.push({payoutSignature:d,depositorBtcPubkey:u})}return s}validatePayoutOutputs(t,r){if(!l.isValidHex(r))throw new Error("Invalid registeredPayoutScriptPubKey: not valid hex");const o=O.Buffer.from(l.stripHexPrefix(r),"hex"),i=b.Transaction.fromHex(l.stripHexPrefix(t));if(i.outs.length===0)throw new Error("Payout transaction has no outputs");if(!i.outs.reduce((a,s)=>s.value>a.value?s:a).script.equals(o))throw new Error("Payout transaction does not pay to the registered depositor payout address")}}const he=1200*1e3,L=new Set([p.DaemonStatus.PENDING_ACKS,p.DaemonStatus.PENDING_ACTIVATION,p.DaemonStatus.ACTIVATED]),ge=new Set([p.DaemonStatus.PENDING_DEPOSITOR_SIGNATURES,...L]);function Pe(e){return e.map(t=>({claimerPubkeyXOnly:l.processPublicKeyToXOnly(t.claimer_pubkey),payoutTxHex:t.payout_tx.tx_hex,assertTxHex:t.assert_tx.tx_hex}))}function be(e){const{output:t}=Q.payments.p2tr({internalPubkey:O.Buffer.from(e,"hex")});if(!t)throw new Error("Failed to derive BIP-86 P2TR scriptPubKey");return t.toString("hex")}function ye(e,t){const r=l.stripHexPrefix(e).toLowerCase(),o=l.stripHexPrefix(t.vaultProviderBtcPubkey).toLowerCase(),i=l.stripHexPrefix(t.depositorBtcPubkey).toLowerCase();if(r===o||r===i)return t.registeredPayoutScriptPubKey;if(!t.vaultKeeperBtcPubkeys.some(s=>l.stripHexPrefix(s).toLowerCase()===r))throw new Error(`Unknown claimer pubkey ${r}: not VP, depositor, or a registered vault keeper`);return`0x${be(r)}`}function R(e,t){return{payoutTxHex:e.payoutTxHex,peginTxHex:t.peginTxHex,assertTxHex:e.assertTxHex,vaultProviderBtcPubkey:t.vaultProviderBtcPubkey,vaultKeeperBtcPubkeys:t.vaultKeeperBtcPubkeys,universalChallengerBtcPubkeys:t.universalChallengerBtcPubkeys,depositorBtcPubkey:t.depositorBtcPubkey,timelockPegin:t.timelockPegin,registeredPayoutScriptPubKey:ye(e.claimerPubkeyXOnly,t)}}async function xe(e,t,r,o){const i=new K({network:t.network,btcWallet:e}),c=r.length;o==null||o(0,c);let a;if(i.supportsBatchSigning())a=(await i.signPayoutTransactionsBatch(r.map(u=>R(u,t)))).map(u=>u.payoutSignature);else{a=[];for(let n=0;n<r.length;n++){o==null||o(n,c);const u=await i.signPayoutTransaction(R(r[n],t));a.push(u.signature)}}const s={};for(let n=0;n<r.length;n++)s[r[n].claimerPubkeyXOnly]={payout_signature:a[n]};return o==null||o(c,c),s}async function we(e){const{statusReader:t,presignClient:r,btcWallet:o,peginTxid:i,depositorPk:c,signingContext:a,timeoutMs:s=he,signal:n,onProgress:u}=e,d=await k({statusReader:t,peginTxid:i,targetStatuses:ge,timeoutMs:s,signal:n});if(L.has(d))return;n==null||n.throwIfAborted();const g=await r.requestDepositorPresignTransactions({pegin_txid:i,depositor_pk:c},n);n==null||n.throwIfAborted();const x=l.processPublicKeyToXOnly(c),w=g.txs.filter(X=>l.processPublicKeyToXOnly(X.claimer_pubkey)!==x),m=Pe(w),T=await xe(o,a,m,u);n==null||n.throwIfAborted();const f=await D({depositorGraph:g.depositor_graph,depositorBtcPubkey:c,btcWallet:o});n==null||n.throwIfAborted();const _={...T};_[l.stripHexPrefix(c)]=f.payout_signatures,await r.submitDepositorPresignatures({pegin_txid:i,depositor_pk:c,signatures:_,depositor_claimer_presignatures:f},n)}function me(e){return/^[0-9a-fA-F]{64}$/.test(e)}function Te(e){const{amountSats:t,minDeposit:r,maxDeposit:o,btcBalance:i,estimatedFeeSats:c,depositorClaimValue:a}=e;return!(t<=0n||t<r||o&&o>0n&&t>o||c==null||a==null||t+c+a>i)}function ve(e,t,r){return e<=0n?{valid:!1,error:"Deposit amount must be greater than zero"}:e<t?{valid:!1,error:`Minimum deposit is ${l.formatSatoshisToBtc(t)} BTC`}:r&&r>0n&&e>r?{valid:!1,error:`Maximum deposit is ${l.formatSatoshisToBtc(r)} BTC`}:{valid:!0}}function Se(e){const{amount:t,effectiveRemaining:r}=e;return r===null?{valid:!0}:r===0n?{valid:!1,error:"Supply cap reached — deposits temporarily paused"}:t>r?{valid:!1,error:`Vault size exceeds remaining capacity (${l.formatSatoshisToBtc(r)} BTC)`}:{valid:!0}}function Ee(e,t){if(!e||e.length===0)return{valid:!1,error:"At least one vault provider must be selected"};const r=t.map(i=>i.toLowerCase());return e.filter(i=>!r.includes(i.toLowerCase())).length>0?{valid:!1,error:"Invalid vault provider selected"}:{valid:!0}}function M(e,t,r){if(!e||e.length===0)return{valid:!1,error:"At least one vault amount required"};for(let o=0;o<e.length;o++){const i=e[o];if(i<=0n)return{valid:!1,error:`Vault ${o+1} amount must be positive`};if(t&&i<t)return{valid:!1,error:`Vault ${o+1} amount ${l.formatSatoshisToBtc(i)} BTC is below minimum deposit ${l.formatSatoshisToBtc(t)} BTC`};if(r&&i>r)return{valid:!1,error:`Vault ${o+1} amount ${l.formatSatoshisToBtc(i)} BTC exceeds maximum deposit ${l.formatSatoshisToBtc(r)} BTC`}}return{valid:!0}}function U(e){const t=l.stripHexPrefix(e);return me(t)?{valid:!0}:{valid:!1,error:"Invalid pubkey format: must be 64 hex characters (32-byte x-only public key, no 0x prefix)"}}function ke(e){if(!e||e.length===0)throw new Error("No vault keepers available. The system requires at least one vault keeper to create a deposit.")}function Be(e){if(!e||e.length===0)throw new Error("No universal challengers available. The system requires at least one universal challenger to create a deposit.")}function _e(e){if(e.length===0)throw new Error("No spendable UTXOs available")}function Ae(e){const{vaultAmounts:t,confirmedUTXOs:r,vaultProviderBtcPubkey:o,vaultKeeperBtcPubkeys:i,universalChallengerBtcPubkeys:c,minDeposit:a,maxDeposit:s}=e,n=M(t,a,s);if(!n.valid)throw new Error(n.error);const u=U(o);if(!u.valid)throw new Error(u.error);ke(i),Be(c),_e(r)}var B=(e=>(e.CLAIM_EVENT_RECEIVED="ClaimEventReceived",e.CLAIM_BROADCAST="ClaimBroadcast",e.ASSERT_BROADCAST="AssertBroadcast",e.CHALLENGE_ASSERT_OBSERVED="ChallengeAssertObserved",e.WRONGLY_CHALLENGED_BROADCAST="WronglyChallengedBroadcast",e.PAYOUT_BROADCAST="PayoutBroadcast",e.FAILED="Failed",e))(B||{});const He=new Set(["PayoutBroadcast","Failed"]);function Ie(e){return Object.values(B).includes(e)}function Re(e){return!!e&&He.has(e)}class F extends Error{constructor(r,o){super(`Refund not yet mature (BIP68 not final): ${o.message}`);y(this,"vaultId");y(this,"cause");this.name="BIP68NotMatureError",this.vaultId=r,this.cause=o}}const $e=/^0x[0-9a-fA-F]{64}$/,Oe=/^(?:0x)?(?:[0-9a-fA-F]{2})+$/,W=/^(?:0x)?(?:[0-9a-fA-F]{64}|[0-9a-fA-F]{66})$/,Ce=160,Ne=1,$=65535,Ve=/non-BIP68-final/i;function z(e,t){if(e.length!==66)throw new Error(`${t} must be 32 bytes (66 hex chars with 0x prefix), got length ${e.length}`);if(!$e.test(e))throw new Error(`${t} must contain only hex characters after the 0x prefix`)}function S(e,t){if(!Number.isInteger(e)||e<0)throw new Error(`${t} must be a non-negative integer, got ${e}`)}function De(e){if(z(e.hashlock,"hashlock"),!Number.isInteger(e.htlcVout)||e.htlcVout<0||e.htlcVout>$)throw new Error(`htlcVout must be an integer 0-${$}, got ${e.htlcVout}`);if(S(e.offchainParamsVersion,"offchainParamsVersion"),S(e.appVaultKeepersVersion,"appVaultKeepersVersion"),S(e.universalChallengersVersion,"universalChallengersVersion"),typeof e.unsignedPrePeginTxHex!="string"||e.unsignedPrePeginTxHex.length===0)throw new Error("unsignedPrePeginTxHex must be a non-empty hex string");if(!Oe.test(e.unsignedPrePeginTxHex))throw new Error("unsignedPrePeginTxHex must be a hex byte string (optional 0x prefix, even length)");if(!e.depositorBtcPubkey||!W.test(e.depositorBtcPubkey))throw new Error("depositorBtcPubkey must be 32 or 33 bytes of hex (optional 0x prefix)");if(typeof e.amount!="bigint"||e.amount<=0n)throw new Error(`amount must be a positive bigint, got ${e.amount}`)}function Ke(e){if(!e.vaultProviderPubkey||!W.test(e.vaultProviderPubkey))throw new Error("vaultProviderPubkey must be 32 or 33 bytes of hex");if(e.vaultKeeperPubkeys.length===0)throw new Error("vaultKeeperPubkeys must be non-empty");if(e.universalChallengerPubkeys.length===0)throw new Error("universalChallengerPubkeys must be non-empty");if(!Number.isInteger(e.timelockRefund)||e.timelockRefund<=0)throw new Error(`timelockRefund must be a positive integer, got ${e.timelockRefund}`);if(typeof e.feeRate!="bigint"||e.feeRate<=0n)throw new Error(`protocol feeRate must be a positive bigint, got ${e.feeRate}`);if(!Number.isInteger(e.numLocalChallengers)||e.numLocalChallengers<0)throw new Error("numLocalChallengers must be a non-negative integer");if(!Number.isInteger(e.councilQuorum)||!Number.isInteger(e.councilSize)||e.councilQuorum<=0||e.councilSize<=0||e.councilQuorum>e.councilSize)throw new Error(`councilQuorum (${e.councilQuorum}) must be in [1, councilSize=${e.councilSize}]`)}function Le(e){const t=b.Psbt.fromHex(e);try{t.finalizeAllInputs()}catch(r){const o=r instanceof Error?r.message:String(r);if(!o.includes("already finalized"))throw new Error(`Failed to finalize refund PSBT: ${o}`)}return t.extractTransaction().toHex()}async function Me(e){const{vaultId:t,readVault:r,readPrePeginContext:o,feeRate:i,signPsbt:c,broadcastTx:a,signal:s}=e;s==null||s.throwIfAborted(),z(t,"vaultId");const n=await r();De(n),s==null||s.throwIfAborted();const u=await o(n);if(Ke(u),s==null||s.throwIfAborted(),!Number.isFinite(i)||i<=0)throw new Error(`feeRate must be a positive number, got ${i}`);const d=BigInt(Math.ceil(i*Ce));s==null||s.throwIfAborted();const g=l.processPublicKeyToXOnly(n.depositorBtcPubkey),{psbtHex:x}=await h.buildRefundPsbt({prePeginParams:{depositorPubkey:g,vaultProviderPubkey:l.stripHexPrefix(u.vaultProviderPubkey),vaultKeeperPubkeys:u.vaultKeeperPubkeys.map(l.stripHexPrefix),universalChallengerPubkeys:u.universalChallengerPubkeys.map(l.stripHexPrefix),hashlocks:[l.stripHexPrefix(n.hashlock)],timelockRefund:u.timelockRefund,pegInAmounts:[n.amount],feeRate:u.feeRate,numLocalChallengers:u.numLocalChallengers,councilQuorum:u.councilQuorum,councilSize:u.councilSize,network:u.network},fundedPrePeginTxHex:l.stripHexPrefix(n.unsignedPrePeginTxHex),htlcVout:n.htlcVout,refundFee:d,hashlock:l.stripHexPrefix(n.hashlock)});s==null||s.throwIfAborted();const w=P.createTaprootScriptPathSignOptions(n.depositorBtcPubkey,Ne),m=await c(x,w),T=Le(m);s==null||s.throwIfAborted();try{return await a(T)}catch(f){throw f instanceof Error&&Ve.test(f.message)?new F(t,f):f}}exports.BIP68NotMatureError=F;exports.ClaimerPegoutStatusValue=B;exports.PayoutManager=K;exports.activateVault=ne;exports.buildAndBroadcastRefund=Me;exports.computeHashlock=N;exports.isDepositAmountValid=Te;exports.isPegoutTerminalStatus=Re;exports.isRecognizedPegoutStatus=Ie;exports.pollAndSignPayouts=we;exports.signDepositorGraph=D;exports.submitWotsPublicKey=ue;exports.validateDepositAmount=ve;exports.validateMultiVaultDepositInputs=Ae;exports.validateProviderSelection=Ee;exports.validateRemainingCapacity=Se;exports.validateSecretAgainstHashlock=V;exports.validateVaultAmounts=M;exports.validateVaultProviderPubkey=U;exports.waitForPeginStatus=k;
2
- //# sourceMappingURL=buildAndBroadcastRefund-DkEpTFkv.cjs.map