caravan-x
Version:
A terminal-based utility for managing Caravan multisig wallets in regtest mode. This tool simplifies development and testing with Caravan by providing an easy-to-use interface
81 lines (80 loc) • 2.29 kB
TypeScript
import { BitcoinRpcClient } from "./rpc";
import { UTXO } from "../types/bitcoin";
/**
* Service for Bitcoin wallet operations
*/
export declare class BitcoinService {
readonly rpc: BitcoinRpcClient;
private readonly network;
constructor(rpc: BitcoinRpcClient, isRegtest?: boolean);
/**
* Create a new wallet
*/
createWallet(name: string, options?: {
disablePrivateKeys?: boolean;
blank?: boolean;
descriptorWallet?: boolean;
}): Promise<any>;
/**
* Get info about a wallet
*/
getWalletInfo(wallet: string): Promise<any>;
/**
* Generate a new address from a wallet
*/
getNewAddress(wallet: string, label?: string): Promise<string>;
/**
* Get detailed info about an address
*/
getAddressInfo(wallet: string, address: string): Promise<any>;
/**
* List wallets on the node
*/
listWallets(): Promise<string[]>;
/**
* List unspent outputs for an address or wallet
*/
listUnspent(wallet: string, addresses?: string[]): Promise<UTXO[]>;
/**
* Get transaction details
*/
getTransaction(wallet: string, txid: string): Promise<any>;
/**
* Send to address
*/
sendToAddress(wallet: string, address: string, amount: number): Promise<string>;
/**
* Create a wallet with a known private key (for testing)
*/
createPrivateKeyWallet(name: string, wif?: string): Promise<{
wallet: string;
wif: string;
address: string;
}>;
/**
* Generate an extended public key from wallet
*/
getExtendedPubKey(wallet: string, path?: string): Promise<{
xpub: string;
path: string;
rootFingerprint?: string;
}>;
/**
* Create a software wallet for use in Caravan multisig
*/
createCaravanKeyWallet(name: string, path?: string): Promise<{
wallet: string;
xpub: string;
path: string;
rootFingerprint: string;
wif?: string;
}>;
/**
* Extract private key for address
*/
dumpPrivateKey(wallet: string, address: string): Promise<string>;
/**
* Generate blocks to a specific address
*/
generateToAddress(numBlocks: number, address: string): Promise<string[]>;
}