@babylonlabs-io/ts-sdk 0.30.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.
@@ -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-BY6mYmFl.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-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"),t=require("../buildAndBroadcastRefund-CO60ReNf.cjs"),a=require("../fundPeginTransaction-DaWoYCgO.cjs"),i=require("../psbtInputFields-CB8hqjQ5.cjs"),r=require("../PeginManager-Zrv-ncJi.cjs"),e=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=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,150 +1,152 @@
1
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
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 A, b as E, f as g, e as R } 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 N } from "../bitcoin-B-Y0DlqR.js";
5
- import { C as B, P as D, a as M, c as H, g as L } from "../signing-BZigafm0.js";
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
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 j, P as Z, a as z, m as q, h as Q, i as $, l as aa, k as sa, p as ea, b as ta, s as ra, v as oa, g as ia, d as na, c as la, j as ua, e as da, f as Pa, w as ca } from "../buildAndBroadcastRefund-BY6mYmFl.js";
8
- import { B as pa, D as Sa, F as Aa, L as Ea, M as ga, P as Ra, b as _a, a as ma, S as xa, T as ba, W as Ia, f as fa, c as va, p as Ca, r as Ua } from "../fundPeginTransaction-oV-dNJOU.js";
9
- import { B as Va, U as ha, a as ya, f as Na, c as Fa, e as Ba, g as Da, i as Ma, h as Ha, s as La, b as ka, d as Wa, v as Xa } from "../psbtInputFields-DeTFSJOq.js";
10
- import { C as wa, P as Ga, V as Ya, k as Ja, l as ja, c as Za, m as za, d as qa, b as Qa, f as $a, j as as, e as ss, g as es, h as ts, i as rs, a as os } from "../PeginManager-_pamUKlS.js";
11
- import { A as ns, M as ls, P as us, S as ds, V as Ps, k as cs, l as Ts, m as ps, n as Ss, h as As, j as Es, g as gs, a as Rs, b as _s, c as ms, d as xs, e as bs, f as Is, p as fs, r as vs, v as Cs, i as Us } from "../vault-registry-reader-BywZhqJL.js";
12
- import { B as Vs, D as hs, b as ys, J as Ns, a as Fs, d as Bs, P as Ds, R as Ms, c as Hs, V as Ls } from "../types-CnG3JsRs.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
- ns as ApplicationRegistryABI,
14
+ us as ApplicationRegistryABI,
15
15
  J as BIP68NotMatureError,
16
16
  W as BITCOIN_ADDRESS_RE,
17
- Vs as BTCVaultRegistryABI,
18
- pa as BTC_DUST_SAT,
19
- Va as BitcoinScriptType,
20
- wa as CONTRACT_ERRORS,
21
- j as ClaimerPegoutStatusValue,
22
- B as ContractStatus,
23
- Sa as DUST_THRESHOLD,
24
- hs as DaemonStatus,
25
- Aa as FEE_SAFETY_MARGIN,
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
26
  X as HEX_RE,
27
- ys as JSON_RPC_ERROR_CODES,
28
- Ns as JsonRpcClient,
29
- Fs as JsonRpcError,
27
+ Ns as JSON_RPC_ERROR_CODES,
28
+ Ds as JsonRpcClient,
29
+ Bs as JsonRpcError,
30
30
  K as KNOWN_SCRIPT_PREFIXES,
31
- Ea as LOW_RATE_ESTIMATION_ACCURACY_BUFFER,
31
+ _a as LOW_RATE_ESTIMATION_ACCURACY_BUFFER,
32
32
  ga as MAX_NON_LEGACY_OUTPUT_SIZE,
33
33
  w as MAX_REASONABLE_FEE_SATS,
34
- ls as MEMPOOL_API_URLS,
35
- Ra as P2TR_INPUT_SIZE,
36
- _a as PEGIN_AUTH_ANCHOR_OUTPUTS,
37
- ma as PEGIN_FIXED_OUTPUTS,
38
- Bs as POST_WOTS_STATUSES,
39
- Ds as PRE_DEPOSITOR_SIGNATURES_STATES,
40
- Z as PayoutManager,
41
- D as PeginAction,
42
- Ga as PeginManager,
43
- us as ProtocolParamsABI,
44
- Ms as RpcErrorCode,
45
- xa as SPLIT_TX_FEE_SAFETY_MULTIPLIER,
46
- ds as ServerIdentityError,
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
+ j as PayoutManager,
41
+ B as PeginAction,
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,
47
48
  G as TXID_RE,
48
- ba as TX_BUFFER_SIZE_OVERHEAD,
49
- ha as UtxoNotAvailableError,
50
- Ya as VAULT_APP_NAME,
51
- Hs as VP_TERMINAL_STATUSES,
52
- Ls as VP_TRANSIENT_STATUSES,
53
- Ps as VaultProviderRpcClient,
54
- cs as ViemProtocolParamsReader,
55
- Ts as ViemUniversalChallengerReader,
56
- ps as ViemVaultKeeperReader,
57
- Ss as ViemVaultRegistryReader,
58
- As as VpResponseValidationError,
59
- Es as VpTokenProvider,
60
- Ia as WALLET_RELAY_FEE_RATE_THRESHOLD,
61
- z as activateVault,
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,
62
63
  p as assertPayoutOutputMatchesRegistered,
63
- ya as assertUtxosAvailable,
64
- q as buildAndBroadcastRefund,
64
+ Na as assertUtxosAvailable,
65
+ Q as buildAndBroadcastRefund,
65
66
  e as buildChallengeAssertPsbt,
66
67
  t as buildDepositorPayoutPsbt,
67
- Ja as buildFundingOutpointsCommitment,
68
+ ja as buildFundingOutpointsCommitment,
68
69
  S as buildNoPayoutPsbt,
69
- A as buildPayoutPsbt,
70
+ E as buildPayoutPsbt,
70
71
  r as buildPeginInputPsbt,
71
72
  o as buildPeginTxFromFundedPrePegin,
72
73
  i as buildPrePeginPsbt,
73
- E as buildRefundPsbt,
74
- ja as buildVaultContext,
75
- Na as calculateBtcTxHash,
74
+ A as buildRefundPsbt,
75
+ za as buildVaultContext,
76
+ Da as calculateBtcTxHash,
76
77
  M as canPerformAction,
77
- Fa as collectReservedUtxoRefs,
78
- Q as computeHashlock,
78
+ Ba as collectReservedUtxoRefs,
79
+ $ as computeHashlock,
79
80
  P as computeMinClaimValue,
80
81
  n as computeNumLocalChallengers,
81
- Za as computeWotsBlockPublicKeysHash,
82
- g as createPayoutScript,
82
+ qa as computeWotsBlockPublicKeysHash,
83
+ R as createPayoutScript,
83
84
  H as createTaprootScriptPathSignOptions,
84
85
  m as deriveNativeSegwitAddress,
85
86
  x as deriveTaprootAddress,
86
87
  c as deriveVaultId,
87
- za as deriveVaultRoot,
88
- qa as deriveWotsBlocksFromSeed,
88
+ Qa as deriveVaultRoot,
89
+ $a as deriveWotsBlocksFromSeed,
89
90
  b as ensureHexPrefix,
90
- Qa as expandAuthAnchor,
91
- $a as expandHashlockSecret,
92
- as as expandWotsSeed,
93
- ss as extractErrorData,
94
- Ba as extractInputsFromTransaction,
95
- R as extractPayoutSignature,
91
+ aa as estimateRefundFeeSats,
92
+ as as expandAuthAnchor,
93
+ ss as expandHashlockSecret,
94
+ es as expandWotsSeed,
95
+ ts as extractErrorData,
96
+ Ma as extractInputsFromTransaction,
97
+ _ as extractPayoutSignature,
96
98
  l as extractPeginInputSignature,
97
99
  u as finalizePeginInputPsbt,
98
100
  I as formatSatoshisToBtc,
99
- fa as fundPeginTransaction,
101
+ Ca as fundPeginTransaction,
100
102
  gs as getAddressTxs,
101
- Rs as getAddressUtxos,
102
- es as getContractErrorMessage,
103
- Da as getDustThreshold,
104
- _s as getMempoolApiUrl,
103
+ ms as getAddressUtxos,
104
+ rs as getContractErrorMessage,
105
+ Ha as getDustThreshold,
106
+ xs as getMempoolApiUrl,
105
107
  f as getNetwork,
106
- ms as getNetworkFees,
108
+ bs as getNetworkFees,
107
109
  L as getPeginProtocolState,
108
- Ma as getPsbtInputFields,
109
- Ha as getScriptType,
110
- xs as getTxHex,
111
- bs as getTxInfo,
112
- Is as getUtxoInfo,
113
- ts as handleContractError,
110
+ La as getPsbtInputFields,
111
+ ka as getScriptType,
112
+ Is as getTxHex,
113
+ fs as getTxInfo,
114
+ vs as getUtxoInfo,
115
+ os as handleContractError,
114
116
  v as hexToUint8Array,
115
117
  C as isAddressFromPublicKey,
116
- $ as isDepositAmountValid,
117
- rs as isKnownContractError,
118
- aa as isPegoutTerminalStatus,
119
- sa as isRecognizedPegoutStatus,
118
+ sa as isDepositAmountValid,
119
+ is as isKnownContractError,
120
+ ea as isPegoutTerminalStatus,
121
+ ta as isRecognizedPegoutStatus,
120
122
  U as isValidHex,
121
- os as isWotsMismatchError,
122
- va as parseUnfundedWasmTransaction,
123
- Ca as peginOutputCount,
124
- ea as pollAndSignPayouts,
123
+ ns as isWotsMismatchError,
124
+ Ua as parseUnfundedWasmTransaction,
125
+ Oa as peginOutputCount,
126
+ ra as pollAndSignPayouts,
125
127
  O as processPublicKeyToXOnly,
126
- fs as pushTx,
127
- Ua as rateBasedTxBufferFee,
128
- vs as resolveProtocolAddresses,
129
- La as selectUtxosForDeposit,
130
- ka as selectUtxosForPegin,
131
- Wa as shouldAddChangeOutput,
132
- ta as signDepositorGraph,
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,
133
135
  V as stripHexPrefix,
134
- ra as submitWotsPublicKey,
136
+ ia as submitWotsPublicKey,
135
137
  h as toXOnly,
136
138
  y as uint8ArrayToHex,
137
- oa as validateDepositAmount,
138
- ia as validateMultiVaultDepositInputs,
139
- na as validateProviderSelection,
140
- la as validateRemainingCapacity,
141
- Cs as validateRequestDepositorClaimerArtifactsResponse,
142
- ua as validateSecretAgainstHashlock,
143
- Xa as validateUtxosAvailable,
144
- da as validateVaultAmounts,
145
- Pa as validateVaultProviderPubkey,
146
- N as validateWalletPubkey,
147
- Us as verifyServerIdentity,
148
- ca as waitForPeginStatus
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
149
151
  };
150
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.30.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 z=Object.defineProperty;var G=(e,t,r)=>t in e?z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var m=(e,t,r)=>G(e,typeof t!="symbol"?t+"":t,r);const f=require("./types-jmEyzzhY.cjs"),l=require("./bitcoin-DIN0OupO.cjs"),q=require("./sha2-CsTynrfJ.cjs"),g=require("bitcoinjs-lib"),Q=require("buffer"),x=require("./signing-DHSXjhLM.cjs");require("@babylonlabs-io/babylon-tbv-rust-wasm");const h=require("./noPayout-CwgYkZYs.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 j=Y(g),H=66;function R(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!==H)throw new Error(`${t} must be exactly 32 bytes (${H} hex chars with 0x prefix), got ${e.length}`)}function O(e){E(e,"Secret");const t=R(e),r=q.sha256(t);return J(r)}function N(e,t){return E(e,"Secret"),E(t,"Hashlock"),R(t),O(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 T(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:s,writeContract:u,signal:i}=e;i==null||i.throwIfAborted(),re(t,"btcVaultRegistryAddress"),T(r,"vaultId");const a=l.ensureHexPrefix(e.secret);if(T(a,"secret"),o!==void 0&&(T(o,"hashlock"),!N(a,o)))throw new Error("Invalid secret: SHA256(secret) does not match the provided hashlock");return oe(s,"activationMetadata"),u({address:t,abi:f.BTCVaultRegistryABI,functionName:"activateVaultWithSecret",args:[r,a,s]})}const ie=1e4;async function B(e){const{statusReader:t,peginTxid:r,targetStatuses:o,timeoutMs:s,pollIntervalMs:u=ie,signal:i}=e,a=Date.now();for(;;){if(i!=null&&i.aborted)throw new Error(`Polling aborted for pegin ${r.slice(0,8)}… (target: ${[...o].join(", ")})`);if(Date.now()-a>=s)throw new Error(`Polling timeout after ${s}ms for pegin ${r.slice(0,8)}… (target: ${[...o].join(", ")})`);try{const c=(await t.getPeginStatus({pegin_txid:r},i)).status;if(o.has(c))return c;if(f.VP_TERMINAL_STATUSES.has(c)&&!o.has(c))throw new Error(`Pegin ${r.slice(0,8)}… reached terminal status "${c}" while waiting for ${[...o].join(", ")}`)}catch(n){if(!(n instanceof f.JsonRpcError&&n.code===f.RpcErrorCode.NOT_FOUND||n instanceof Error&&n.message.includes("PegIn not found")))throw n}await new Promise((n,c)=>{const p=()=>{clearTimeout(d),c(new Error(`Polling aborted for pegin ${r.slice(0,8)}… (target: ${[...o].join(", ")})`))},d=setTimeout(()=>{i==null||i.removeEventListener("abort",p),n()},u);i==null||i.addEventListener("abort",p,{once:!0})})}}const se=300*1e3,ae=new Set([f.DaemonStatus.PENDING_DEPOSITOR_WOTS_PK,...f.POST_WOTS_STATUSES]);async function ue(e){const{statusReader:t,wotsSubmitter:r,peginTxid:o,depositorPk:s,wotsPublicKeys:u,timeoutMs:i=se,signal:a}=e;a==null||a.throwIfAborted();const n=await B({statusReader:t,peginTxid:o,targetStatuses:ae,timeoutMs:i,signal:a});f.POST_WOTS_STATUSES.has(n)||(a==null||a.throwIfAborted(),await r.submitDepositorWotsKey({pegin_txid:o,depositor_pk:s,wots_public_keys:u},a))}const C=1;function ce(e,t,r){const o=l.stripHexPrefix(r).toLowerCase(),u=[e,...t].map(i=>l.stripHexPrefix(i).toLowerCase()).filter(i=>i!==o);if(u.length===0)throw new Error("Cannot derive localChallengers: removing depositor from {vaultProvider, vaultKeepers} left an empty set");return u}function le(e,t){const r=e.ins[t];return l.uint8ArrayToHex(new Uint8Array(r.hash).slice().reverse())}function k(e,t,r,o,s){const u=e.ins[t];if(u.index!==0)throw new Error(`NoPayout (challenger ${s}) input ${t} expected to spend ${o} vout 0, got vout ${u.index}`);const i=r.getId(),a=le(e,t);if(a!==i)throw new Error(`NoPayout (challenger ${s}) input ${t} does not reference ${o} (expected txid ${i}, got ${a})`)}async function pe(e,t,r){const o=[],s=[],u=[];h.assertPayoutOutputMatchesRegistered(e.payout_tx.tx_hex,r.registeredPayoutScriptPubKey);const i=await h.buildPayoutPsbt({payoutTxHex:e.payout_tx.tx_hex,peginTxHex:r.peginTxHex,assertTxHex:e.assert_tx.tx_hex,depositorBtcPubkey:r.depositorBtcPubkey,vaultProviderBtcPubkey:r.vaultProviderBtcPubkey,vaultKeeperBtcPubkeys:r.vaultKeeperBtcPubkeys,universalChallengerBtcPubkeys:r.universalChallengerBtcPubkeys,timelockPegin:r.timelockPegin,network:r.network});o.push(i.psbtHex),s.push(x.createTaprootScriptPathSignOptions(t,C));const a=ce(r.vaultProviderBtcPubkey,r.vaultKeeperBtcPubkeys,r.depositorBtcPubkey),n=l.stripHexPrefix(r.depositorBtcPubkey),c=g.Transaction.fromHex(l.stripHexPrefix(e.assert_tx.tx_hex));for(const p of e.challenger_presign_data){const d=l.stripHexPrefix(p.challenger_pubkey),y=o.length,b=await de({challenger:p,challengerPubkey:d,claimerPubkey:n,localChallengers:a,assertTxParsed:c,ctx:r});o.push(b),s.push(x.createTaprootScriptPathSignOptions(t,C)),u.push({challengerPubkey:d,noPayoutIdx:y})}return{psbtHexes:o,signOptions:s,challengerEntries:u}}async function de(e){const{challenger:t,challengerPubkey:r,claimerPubkey:o,localChallengers:s,assertTxParsed:u,ctx:i}=e;h.assertNoPayoutOutputMatchesChallenger(t.nopayout_tx.tx_hex,r,i.network);const a=g.Transaction.fromHex(l.stripHexPrefix(t.nopayout_tx.tx_hex)),n=g.Transaction.fromHex(l.stripHexPrefix(t.challenge_assert_x_tx.tx_hex)),c=g.Transaction.fromHex(l.stripHexPrefix(t.challenge_assert_y_tx.tx_hex));if(a.ins.length!==3)throw new Error(`NoPayout (challenger ${r}) must have exactly 3 inputs, got ${a.ins.length}`);k(a,0,u,"Assert",r),k(a,1,n,"ChallengeAssertX",r),k(a,2,c,"ChallengeAssertY",r);const p=[u.outs[0],n.outs[0],c.outs[0]].map(d=>({script_pubkey:l.uint8ArrayToHex(new Uint8Array(d.script)),value:d.value}));return h.buildNoPayoutPsbt({noPayoutTxHex:t.nopayout_tx.tx_hex,challengerPubkey:r,prevouts:p,connectorParams:{claimer:o,localChallengers:s,universalChallengers:i.universalChallengerBtcPubkeys,timelockAssert:i.timelockAssert,councilMembers:i.councilMembers,councilQuorum:i.councilQuorum}})}function he(e,t,r){const o=h.extractPayoutSignature(e[0],r),s={};for(const u of t)s[u.challengerPubkey]={nopayout_signature:h.extractPayoutSignature(e[u.noPayoutIdx],r)};return{payout_signatures:{payout_signature:o},per_challenger:s}}async function fe(e,t,r){if(typeof e.signPsbts=="function")return e.signPsbts(t,r);const o=[];for(let s=0;s<t.length;s++)o.push(await e.signPsbt(t[s],r==null?void 0:r[s]));return o}async function K(e){const{depositorGraph:t,btcWallet:r,signingContext:o}=e,s=l.stripHexPrefix(o.depositorBtcPubkey),u=await r.getPublicKeyHex(),{psbtHexes:i,signOptions:a,challengerEntries:n}=await pe(t,u,o),c=await fe(r,i,a);if(c.length!==i.length)throw new Error(`Wallet returned ${c.length} signed PSBTs, expected ${i.length}`);return he(c,n,s)}class V{constructor(t){m(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),s=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}),u=await this.config.btcWallet.signPsbt(s.psbtHex,x.createTaprootScriptPathSignOptions(r,1));return{signature:h.extractPayoutSignature(u,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=[],s=[],u=[];for(const n of t){this.validatePayoutOutputs(n.payoutTxHex,n.registeredPayoutScriptPubKey);const{depositorPubkey:c}=l.validateWalletPubkey(r,n.depositorBtcPubkey);u.push(c);const p=await h.buildPayoutPsbt({payoutTxHex:n.payoutTxHex,peginTxHex:n.peginTxHex,assertTxHex:n.assertTxHex,depositorBtcPubkey:c,vaultProviderBtcPubkey:n.vaultProviderBtcPubkey,vaultKeeperBtcPubkeys:n.vaultKeeperBtcPubkeys,universalChallengerBtcPubkeys:n.universalChallengerBtcPubkeys,timelockPegin:n.timelockPegin,network:this.config.network});o.push(p.psbtHex),s.push(x.createTaprootScriptPathSignOptions(r,1))}const i=await this.config.btcWallet.signPsbts(o,s);if(i.length!==t.length)throw new Error(`Expected ${t.length} signed PSBTs but received ${i.length}`);const a=[];for(let n=0;n<t.length;n++){const c=u[n],p=h.extractPayoutSignature(i[n],c);a.push({payoutSignature:p,depositorBtcPubkey:c})}return a}validatePayoutOutputs(t,r){h.assertPayoutOutputMatchesRegistered(t,r)}}const Pe=1200*1e3,D=new Set([f.DaemonStatus.PENDING_ACKS,f.DaemonStatus.PENDING_ACTIVATION,f.DaemonStatus.ACTIVATED]),ge=new Set([f.DaemonStatus.PENDING_DEPOSITOR_SIGNATURES,...D]);function ye(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}=j.payments.p2tr({internalPubkey:Q.Buffer.from(e,"hex")});if(!t)throw new Error("Failed to derive BIP-86 P2TR scriptPubKey");return t.toString("hex")}function xe(e,t){const r=l.stripHexPrefix(e).toLowerCase(),o=l.stripHexPrefix(t.vaultProviderBtcPubkey).toLowerCase(),s=l.stripHexPrefix(t.depositorBtcPubkey).toLowerCase();if(r===o||r===s)return t.registeredPayoutScriptPubKey;if(!t.vaultKeeperBtcPubkeys.some(a=>l.stripHexPrefix(a).toLowerCase()===r))throw new Error(`Unknown claimer pubkey ${r}: not VP, depositor, or a registered vault keeper`);return`0x${be(r)}`}function I(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:xe(e.claimerPubkeyXOnly,t)}}async function me(e,t,r,o){const s=new V({network:t.network,btcWallet:e}),u=r.length;o==null||o(0,u);let i;if(s.supportsBatchSigning())i=(await s.signPayoutTransactionsBatch(r.map(c=>I(c,t)))).map(c=>c.payoutSignature);else{i=[];for(let n=0;n<r.length;n++){o==null||o(n,u);const c=await s.signPayoutTransaction(I(r[n],t));i.push(c.signature)}}const a={};for(let n=0;n<r.length;n++)a[r[n].claimerPubkeyXOnly]={payout_signature:i[n]};return o==null||o(u,u),a}async function we(e){const{statusReader:t,presignClient:r,btcWallet:o,peginTxid:s,depositorPk:u,signingContext:i,timeoutMs:a=Pe,signal:n,onProgress:c}=e,p=await B({statusReader:t,peginTxid:s,targetStatuses:ge,timeoutMs:a,signal:n});if(D.has(p))return;n==null||n.throwIfAborted();const d=await r.requestDepositorPresignTransactions({pegin_txid:s,depositor_pk:u},n);n==null||n.throwIfAborted();const y=l.processPublicKeyToXOnly(u),b=d.txs.filter(X=>l.processPublicKeyToXOnly(X.claimer_pubkey)!==y),w=ye(b),v=await me(o,i,w,c);n==null||n.throwIfAborted();const P=await K({depositorGraph:d.depositor_graph,btcWallet:o,signingContext:{peginTxHex:i.peginTxHex,depositorBtcPubkey:u,vaultProviderBtcPubkey:i.vaultProviderBtcPubkey,vaultKeeperBtcPubkeys:i.vaultKeeperBtcPubkeys,universalChallengerBtcPubkeys:i.universalChallengerBtcPubkeys,timelockPegin:i.timelockPegin,timelockAssert:i.timelockAssert,councilMembers:i.councilMembers,councilQuorum:i.councilQuorum,network:i.network,registeredPayoutScriptPubKey:i.registeredPayoutScriptPubKey}});n==null||n.throwIfAborted();const A={...v};A[l.stripHexPrefix(u)]=P.payout_signatures,await r.submitDepositorPresignatures({pegin_txid:s,depositor_pk:u,signatures:A,depositor_claimer_presignatures:P},n)}function ve(e){return/^[0-9a-fA-F]{64}$/.test(e)}function Te(e){const{amountSats:t,minDeposit:r,maxDeposit:o,btcBalance:s,estimatedFeeSats:u,depositorClaimValue:i}=e;return!(t<=0n||t<r||o&&o>0n&&t>o||u==null||i==null||t+u+i>s)}function ke(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(s=>s.toLowerCase());return e.filter(s=>!r.includes(s.toLowerCase())).length>0?{valid:!1,error:"Invalid vault provider selected"}:{valid:!0}}function L(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 s=e[o];if(s<=0n)return{valid:!1,error:`Vault ${o+1} amount must be positive`};if(t&&s<t)return{valid:!1,error:`Vault ${o+1} amount ${l.formatSatoshisToBtc(s)} BTC is below minimum deposit ${l.formatSatoshisToBtc(t)} BTC`};if(r&&s>r)return{valid:!1,error:`Vault ${o+1} amount ${l.formatSatoshisToBtc(s)} BTC exceeds maximum deposit ${l.formatSatoshisToBtc(r)} BTC`}}return{valid:!0}}function M(e){const t=l.stripHexPrefix(e);return ve(t)?{valid:!0}:{valid:!1,error:"Invalid pubkey format: must be 64 hex characters (32-byte x-only public key, no 0x prefix)"}}function Be(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 _e(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 Ae(e){if(e.length===0)throw new Error("No spendable UTXOs available")}function He(e){const{vaultAmounts:t,confirmedUTXOs:r,vaultProviderBtcPubkey:o,vaultKeeperBtcPubkeys:s,universalChallengerBtcPubkeys:u,minDeposit:i,maxDeposit:a}=e,n=L(t,i,a);if(!n.valid)throw new Error(n.error);const c=M(o);if(!c.valid)throw new Error(c.error);Be(s),_e(u),Ae(r)}var _=(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))(_||{});const Ce=new Set(["PayoutBroadcast","Failed"]);function Ie(e){return Object.values(_).includes(e)}function $e(e){return!!e&&Ce.has(e)}class U extends Error{constructor(r,o){super(`Refund not yet mature (BIP68 not final): ${o.message}`);m(this,"vaultId");m(this,"cause");this.name="BIP68NotMatureError",this.vaultId=r,this.cause=o}}const Re=/^0x[0-9a-fA-F]{64}$/,Oe=/^(?:0x)?(?:[0-9a-fA-F]{2})+$/,F=/^(?:0x)?(?:[0-9a-fA-F]{64}|[0-9a-fA-F]{66})$/,Ne=160,Ke=1,$=65535,Ve=/non-BIP68-final/i;function W(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(!Re.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(W(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||!F.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 Le(e){if(!e.vaultProviderPubkey||!F.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 Me(e){const t=g.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 Ue(e){const{vaultId:t,readVault:r,readPrePeginContext:o,feeRate:s,signPsbt:u,broadcastTx:i,signal:a}=e;a==null||a.throwIfAborted(),W(t,"vaultId");const n=await r();De(n),a==null||a.throwIfAborted();const c=await o(n);if(Le(c),a==null||a.throwIfAborted(),!Number.isFinite(s)||s<=0)throw new Error(`feeRate must be a positive number, got ${s}`);const p=BigInt(Math.ceil(s*Ne));a==null||a.throwIfAborted();const d=l.processPublicKeyToXOnly(n.depositorBtcPubkey),{psbtHex:y}=await h.buildRefundPsbt({prePeginParams:{depositorPubkey:d,vaultProviderPubkey:l.stripHexPrefix(c.vaultProviderPubkey),vaultKeeperPubkeys:c.vaultKeeperPubkeys.map(l.stripHexPrefix),universalChallengerPubkeys:c.universalChallengerPubkeys.map(l.stripHexPrefix),hashlocks:[l.stripHexPrefix(n.hashlock)],timelockRefund:c.timelockRefund,pegInAmounts:[n.amount],feeRate:c.feeRate,numLocalChallengers:c.numLocalChallengers,councilQuorum:c.councilQuorum,councilSize:c.councilSize,network:c.network},fundedPrePeginTxHex:l.stripHexPrefix(n.unsignedPrePeginTxHex),htlcVout:n.htlcVout,refundFee:p,hashlock:l.stripHexPrefix(n.hashlock)});a==null||a.throwIfAborted();const b=x.createTaprootScriptPathSignOptions(n.depositorBtcPubkey,Ke),w=await u(y,b),v=Me(w);a==null||a.throwIfAborted();try{return await i(v)}catch(P){throw P instanceof Error&&Ve.test(P.message)?new U(t,P):P}}exports.BIP68NotMatureError=U;exports.ClaimerPegoutStatusValue=_;exports.PayoutManager=V;exports.activateVault=ne;exports.buildAndBroadcastRefund=Ue;exports.computeHashlock=O;exports.isDepositAmountValid=Te;exports.isPegoutTerminalStatus=$e;exports.isRecognizedPegoutStatus=Ie;exports.pollAndSignPayouts=we;exports.signDepositorGraph=K;exports.submitWotsPublicKey=ue;exports.validateDepositAmount=ke;exports.validateMultiVaultDepositInputs=He;exports.validateProviderSelection=Ee;exports.validateRemainingCapacity=Se;exports.validateSecretAgainstHashlock=N;exports.validateVaultAmounts=L;exports.validateVaultProviderPubkey=M;exports.waitForPeginStatus=B;
2
- //# sourceMappingURL=buildAndBroadcastRefund-CO60ReNf.cjs.map