UNPKG

@btc-vision/transaction

Version:

OPNet transaction library allows you to create and sign transactions for the OPNet network.

115 lines (81 loc) 3 kB
import { Web3Provider } from '../Web3Provider.js'; export enum UnisatNetwork { testnet = 'testnet', mainnet = 'livenet', regtest = 'regtest', } export enum UnisatChainType { BITCOIN_MAINNET = 'BITCOIN_MAINNET', BITCOIN_TESTNET = 'BITCOIN_TESTNET', BITCOIN_TESTNET4 = 'BITCOIN_TESTNET4', BITCOIN_REGTEST = 'BITCOIN_REGTEST', BITCOIN_SIGNET = 'BITCOIN_SIGNET', FRACTAL_BITCOIN_MAINNET = 'FRACTAL_BITCOIN_MAINNET', FRACTAL_BITCOIN_TESTNET = 'FRACTAL_BITCOIN_TESTNET', } export interface UnisatChainInfo { readonly enum: UnisatChainType; readonly name: string; readonly network: UnisatNetwork; } export interface Balance { readonly confirmed: number; readonly unconfirmed: number; readonly total: number; } export enum MessageType { ecdsa = 'ecdsa', bip322 = 'bip322-simple', } export enum SignatureType { ecdsa = 'ecdsa', schnorr = 'schnorr', } interface ToSignInputBase { readonly index: number; readonly sighashTypes?: number[]; readonly disableTweakSigner?: boolean; } export interface ToSignInputPublicKey extends ToSignInputBase { readonly publicKey: string; } export interface ToSignInputAddress extends ToSignInputBase { readonly address: string; } export type ToSignInput = ToSignInputPublicKey | ToSignInputAddress; export interface PsbtSignatureOptions { readonly autoFinalized?: boolean; readonly toSignInputs?: ToSignInput[]; } export interface Unisat { web3?: Web3Provider; disconnect: () => void; connect: () => void; sendBitcoin( toAddress: string, satoshis: number, options: { feeRate: number; memo?: string; memos?: string[] }, ): Promise<string>; requestAccounts(): Promise<string[]>; getNetwork(): Promise<UnisatNetwork>; getChain(): Promise<UnisatChainInfo>; getAccounts(): Promise<string[]>; switchNetwork(network: UnisatNetwork): Promise<void>; getPublicKey(): Promise<string>; getBalance(): Promise<Balance>; signMessage(message: string | Buffer, type?: MessageType): Promise<string>; signData(hex: string, type?: SignatureType): Promise<string>; pushTx(options: { rawtx: string }): Promise<string>; signPsbt(psbtHex: string, psbtOptions: PsbtSignatureOptions): Promise<string>; signPsbts(psbtHex: string[], psbtOptions: PsbtSignatureOptions[]): Promise<string[]>; pushPsbt(psbtHex: string): Promise<string>; on(event: 'accountsChanged', listener: (accounts: string[]) => void): void; on(event: 'chainChanged' | 'networkChanged', listener: (chain: UnisatChainInfo) => void): void; on(event: 'disconnect', listener: () => void): void; removeListener(event: 'accountsChanged', listener: (accounts: string[]) => void): void; removeListener( event: 'chainChanged' | 'networkChanged', listener: (chain: UnisatChainInfo) => void, ): void; removeListener(event: 'disconnect', listener: () => void): void; }