@btc-vision/transaction
Version:
OPNet transaction library allows you to create and sign transactions for the OPNet network.
100 lines (67 loc) • 2.68 kB
text/typescript
import type { Web3Provider } from '../Web3Provider.js';
import { UnisatChainType, WalletNetworks } from '../WalletNetworks.js';
export interface UnisatChainInfo {
readonly enum: UnisatChainType;
readonly name: string;
readonly network: WalletNetworks;
}
export interface Balance {
readonly confirmed: number;
readonly unconfirmed: number;
readonly total: number;
readonly csv1_unlocked?: number;
readonly csv1_locked?: number;
readonly p2wda_total_amount?: 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: () => Promise<void>;
connect: () => Promise<void>;
requestAccounts(): Promise<string[]>;
getNetwork(): Promise<WalletNetworks>;
getChain(): Promise<UnisatChainInfo>;
getAccounts(): Promise<string[]>;
switchNetwork(network: WalletNetworks): Promise<void>;
switchChain(network: UnisatChainType): Promise<void>;
getPublicKey(): Promise<string>;
getBalance(): Promise<Balance>;
signMessage(message: string | Uint8Array, type?: MessageType): Promise<string>;
signData(hex: string, type?: SignatureType, originalMessage?: string): 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;
}