UNPKG

@xlink-network/xlink-sdk

Version:
59 lines (57 loc) 1.82 kB
import { sum } from "./chunk-YV2TZGS6.mjs"; import { BigNumber } from "./chunk-KHTJNOQE.mjs"; // src/bitcoinUtils/bitcoinHelpers.ts import * as btc from "@scure/btc-signer"; import { Address, OutScript } from "@scure/btc-signer"; function sumUTXO(utxos) { return sum(utxos.map((utxo) => utxo.amount)); } function isSameUTXO(utxo1, utxo2) { return utxo1.txId === utxo2.txId && utxo1.index === utxo2.index; } function addressToScriptPubKey(network, address) { const addr = Address(network).decode(address); return OutScript.encode(addr); } function scriptPubKeyToAddress(network, output) { return Address(network).encode(OutScript.decode(output)); } function bitcoinToSatoshi(bitcoinAmount) { return BigNumber.toBigInt({}, BigNumber.rightMoveDecimals(8, bitcoinAmount)); } function satoshiToBitcoin(satoshiAmount) { return BigNumber.toString(BigNumber.leftMoveDecimals(8, satoshiAmount)); } function getP2TRInternalPublicKey_from_P2TR_publicKey(network, publicKey) { const ecdsaPublicKeyLength = 33; if (publicKey.byteLength !== ecdsaPublicKeyLength) { throw new Error("Invalid public key length"); } return publicKey.slice(1); } function getTapInternalKey_from_P2TR_publicKey(network, publicKey) { return btc.p2tr( getP2TRInternalPublicKey_from_P2TR_publicKey(network, publicKey), void 0, network ).tapInternalKey; } function getRedeemScript_from_P2SH_P2WPKH_publicKey(network, publicKey) { return btc.p2sh(btc.p2wpkh(publicKey, network), network).redeemScript; } export { sumUTXO, isSameUTXO, addressToScriptPubKey, scriptPubKeyToAddress, bitcoinToSatoshi, satoshiToBitcoin, getP2TRInternalPublicKey_from_P2TR_publicKey, getTapInternalKey_from_P2TR_publicKey, getRedeemScript_from_P2SH_P2WPKH_publicKey }; //# sourceMappingURL=chunk-VA3HOX5B.mjs.map