UNPKG

sbtc-bridge-lib

Version:

Library for sBTC Bridge web client and API apps

111 lines (110 loc) 3.73 kB
import * as btc from '@scure/btc-signer'; import type { PayloadType } from './types/sbtc_types.js'; export declare const MAGIC_BYTES_TESTNET = "5432"; export declare const MAGIC_BYTES_MAINNET = "5832"; export declare const PEGIN_OPCODE = "3C"; export declare const PEGOUT_OPCODE = "3E"; export declare function parseDepositPayload(d1: Uint8Array): PayloadType; export declare function amountToUint8(amt: number, size: number): Uint8Array; /** export function uint8ToAmount(buf:Uint8Array):number { const hmmm = hex.decode(hex.encode(buf)) // needed to make work ? const view = new DataView(hmmm.buffer); const amt = view.getUint32(0); return amt; } */ export declare function amountToBigUint64(amt: number, size: number): Uint8Array; export declare function bigUint64ToAmount(buf: Uint8Array): number; export declare function parseWithdrawPayload(network: string, d0: string, bitcoinAddress: string, sigMode: 'rsv' | 'vrs'): PayloadType; export declare enum PrincipalType { STANDARD = "05", CONTRACT = "06" } export declare function buildDepositPayload(network: string, stacksAddress: string): string; export declare function buildDepositPayloadOpDrop(network: string, stacksAddress: string, revealFee: number): string; /** * @param network (testnet|mainnet) * @param amount * @param signature * @returns */ export declare function buildWithdrawPayload(network: string, amount: number, signature: string): string; /** * Withdrawal using commit reveal (op_drop) pattern * @param network (testnet|mainnet) * @param amount * @param signature * @returns */ export declare function buildWithdrawPayloadOpDrop(network: string, amount: number, signature: string): string; export declare function readDepositValue(outputs: Array<any>): number; /** * * @param network * @param txHex * @returns */ export declare function parsePayloadFromTransaction(network: string, txHex: string): PayloadType; export declare function parsePayloadFromOutput(network: string, tx: btc.Transaction): PayloadType; /** * * @param network * @param amount * @param bitcoinAddress * @returns */ export declare function getDataToSign(network: string, amount: number, bitcoinAddress: string): string; export declare function getStacksSimpleHashOfDataToSign(network: string, amount: number, bitcoinAddress: string): string; /** * * @param messageHash * @param signature * @returns */ export declare function getStacksAddressFromSignature(messageHash: Uint8Array, signature: string): { tp2pkh: string; tp2sh: string; mp2pkh: string; mp2sh: string; }; export declare function getStacksAddressFromSignatureRsv(messageHash: Uint8Array, signature: string): { tp2pkh: string; tp2sh: string; mp2pkh: string; mp2sh: string; }; export declare function getStacksAddressFromPubkey(pubkey: Uint8Array): { tp2pkh: string; tp2sh: string; mp2pkh: string; mp2sh: string; }; export declare function getMagicAndOpCode(d1: Uint8Array): { magic?: string; opcode: string; txType?: string; }; /** * Ensure we don't overwrite the original object with Uint8Arrays these can't be serialised to local storage. * @param script * @returns */ export declare function fromStorable(script: any): any; /** * * @param script * @returns */ export declare function toStorable(script: any): { address: any; script: string | Uint8Array | undefined; paymentType: any; witnessScript: string | Uint8Array | undefined; redeemScript: string | Uint8Array | undefined; leaves: any; tapInternalKey: string | Uint8Array | undefined; tapLeafScript: any; tapMerkleRoot: string | Uint8Array | undefined; tweakedPubkey: string | Uint8Array | undefined; };