@babylonlabs-io/ts-sdk 0.29.0 → 0.30.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 (51) hide show
  1. package/dist/{PeginManager-DcjXiKYC.cjs → PeginManager-Zrv-ncJi.cjs} +2 -2
  2. package/dist/{PeginManager-DcjXiKYC.cjs.map → PeginManager-Zrv-ncJi.cjs.map} +1 -1
  3. package/dist/{PeginManager-Dj6oDaH5.js → PeginManager-_pamUKlS.js} +3 -3
  4. package/dist/{PeginManager-Dj6oDaH5.js.map → PeginManager-_pamUKlS.js.map} +1 -1
  5. package/dist/{buildAndBroadcastRefund-xWS8frc6.js → buildAndBroadcastRefund-BY6mYmFl.js} +406 -303
  6. package/dist/buildAndBroadcastRefund-BY6mYmFl.js.map +1 -0
  7. package/dist/buildAndBroadcastRefund-CO60ReNf.cjs +2 -0
  8. package/dist/buildAndBroadcastRefund-CO60ReNf.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 +144 -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 +145 -144
  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 +1 -1
  38. package/dist/tbv/index.cjs +1 -1
  39. package/dist/tbv/index.js +145 -144
  40. package/package.json +1 -1
  41. package/dist/buildAndBroadcastRefund-DkEpTFkv.cjs +0 -2
  42. package/dist/buildAndBroadcastRefund-DkEpTFkv.cjs.map +0 -1
  43. package/dist/buildAndBroadcastRefund-xWS8frc6.js.map +0 -1
  44. package/dist/challengeAssert-BM8m9gPM.cjs +0 -2
  45. package/dist/challengeAssert-BM8m9gPM.cjs.map +0 -1
  46. package/dist/challengeAssert-j2Vwqo0-.js +0 -304
  47. package/dist/challengeAssert-j2Vwqo0-.js.map +0 -1
  48. package/dist/payout-B_fvQU3q.js +0 -261
  49. package/dist/payout-B_fvQU3q.js.map +0 -1
  50. package/dist/payout-DP6KMFP1.cjs +0 -2
  51. package/dist/payout-DP6KMFP1.cjs.map +0 -1
@@ -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"),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;
2
2
  //# sourceMappingURL=index.cjs.map
package/dist/tbv/index.js CHANGED
@@ -1,149 +1,150 @@
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 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";
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";
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,
40
- j as PayoutManager,
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,
14
+ ns as ApplicationRegistryABI,
15
+ J as BIP68NotMatureError,
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,
26
+ X as HEX_RE,
27
+ ys as JSON_RPC_ERROR_CODES,
28
+ Ns as JsonRpcClient,
29
+ Fs as JsonRpcError,
30
+ K as KNOWN_SCRIPT_PREFIXES,
31
+ Ea as LOW_RATE_ESTIMATION_ACCURACY_BUFFER,
32
+ ga as MAX_NON_LEGACY_OUTPUT_SIZE,
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,
47
+ 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,
62
+ p as assertPayoutOutputMatchesRegistered,
63
+ ya as assertUtxosAvailable,
64
+ q as buildAndBroadcastRefund,
64
65
  e as buildChallengeAssertPsbt,
65
66
  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,
72
- 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,
94
- _ 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
67
+ Ja as buildFundingOutpointsCommitment,
68
+ S as buildNoPayoutPsbt,
69
+ A as buildPayoutPsbt,
70
+ r as buildPeginInputPsbt,
71
+ o as buildPeginTxFromFundedPrePegin,
72
+ i as buildPrePeginPsbt,
73
+ E as buildRefundPsbt,
74
+ ja as buildVaultContext,
75
+ Na as calculateBtcTxHash,
76
+ M as canPerformAction,
77
+ Fa as collectReservedUtxoRefs,
78
+ Q as computeHashlock,
79
+ P as computeMinClaimValue,
80
+ n as computeNumLocalChallengers,
81
+ Za as computeWotsBlockPublicKeysHash,
82
+ g as createPayoutScript,
83
+ H as createTaprootScriptPathSignOptions,
84
+ m as deriveNativeSegwitAddress,
85
+ x as deriveTaprootAddress,
86
+ c as deriveVaultId,
87
+ za as deriveVaultRoot,
88
+ qa as deriveWotsBlocksFromSeed,
89
+ 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,
96
+ l as extractPeginInputSignature,
97
+ u as finalizePeginInputPsbt,
98
+ I as formatSatoshisToBtc,
99
+ fa as fundPeginTransaction,
100
+ gs as getAddressTxs,
101
+ Rs as getAddressUtxos,
102
+ es as getContractErrorMessage,
103
+ Da as getDustThreshold,
104
+ _s as getMempoolApiUrl,
105
+ f as getNetwork,
106
+ ms as getNetworkFees,
107
+ 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,
114
+ v as hexToUint8Array,
115
+ C as isAddressFromPublicKey,
116
+ $ as isDepositAmountValid,
117
+ rs as isKnownContractError,
118
+ aa as isPegoutTerminalStatus,
119
+ sa as isRecognizedPegoutStatus,
120
+ U as isValidHex,
121
+ os as isWotsMismatchError,
122
+ va as parseUnfundedWasmTransaction,
123
+ Ca as peginOutputCount,
124
+ ea as pollAndSignPayouts,
125
+ 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,
133
+ V as stripHexPrefix,
134
+ ra as submitWotsPublicKey,
135
+ h as toXOnly,
136
+ 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
148
149
  };
149
150
  //# 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.30.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