@btc-vision/bitcoin-rpc
Version:
The one and only fully typed Bitcoin RPC client for Node.js
230 lines (229 loc) • 5.25 kB
TypeScript
export interface BestBlockHeader {
hash: string;
confirmations: number;
height: number;
version: number;
versionHex: string;
merkleroot: string;
time: number;
mediantime: number;
nonce: number;
bits: string;
difficulty: number;
chainwork: string;
nTx: number;
previousblockhash?: string;
nextblockhash?: string;
}
export interface DeploymentInfo {
hash: string;
height: number;
deployments: {
[key: string]: {
type: string;
active: boolean;
height?: number;
info?: {
status: string;
since?: number;
status_next?: string;
statistics?: {
period: number;
threshold: number;
elapsed: number;
count: number;
possible: boolean;
};
};
};
};
}
export interface MempoolEntryById {
vsize: number;
weight: number;
time: number;
height: number;
descendantcount: number;
descendantsize: number;
ancestorcount: number;
ancestorsize: number;
wtxid: string;
fees: {
base: number;
modified: number;
ancestor: number;
descendant: number;
};
depends: string[];
spentby: string[];
'bip125-replaceable': boolean;
unbroadcast: boolean;
}
export interface GenerateBlockResult {
hash: string;
hex?: string;
}
export interface PeerAddressResult {
success: boolean;
}
export interface NodeAddress {
time: number;
services: number;
address: string;
port: number;
network: string;
}
export interface TestMempoolAcceptFees {
base: number;
'effective-feerate': number;
'effective-includes': string[];
}
export interface TestMempoolAcceptResult {
txid: string;
wtxid: string;
'package-error'?: string;
allowed?: boolean;
vsize?: number;
fees?: TestMempoolAcceptFees;
'reject-reason'?: string;
'reject-details'?: string;
}
export interface PackageTxFees {
base: number;
'effective-feerate'?: number;
'effective-includes'?: string[];
}
export interface PackageTxResult {
txid: string;
'other-wtxid'?: string;
vsize?: number;
fees?: PackageTxFees;
error?: string;
}
export interface PackageResult {
package_msg: string;
'tx-results': {
[wtxid: string]: PackageTxResult;
};
'replaced-transactions'?: string[];
}
export interface IndexInfo {
[indexName: string]: {
synced: boolean;
best_block_height: number;
best_block_hash?: string;
};
}
export interface ChainLockVerification {
valid: boolean;
height?: number;
}
export interface WalletDescriptor {
descriptor: string;
checksum: string;
isrange: boolean;
issolvable: boolean;
hasprivatekeys: boolean;
}
export interface HDKeyInfo {
xpub: string;
has_private: boolean;
name: string;
descriptors: Array<{
desc: string;
active: boolean;
}>;
}
export interface ImportDescriptorsResult {
success: boolean;
warnings?: string[];
error?: {
code: number;
message: string;
};
}
export interface ListDescriptorsResult {
wallet_name: string;
descriptors: Array<{
desc: string;
timestamp: number;
active: boolean;
internal?: boolean;
range?: number | [number, number];
next?: number;
}>;
}
export interface MigrateWalletResult {
wallet_name: string;
watchonly_name?: string;
solvables_name?: string;
backup_path: string;
}
export interface PsbtBumpFeeResult {
psbt: string;
origfee: number;
fee: number;
errors?: string[];
}
export interface SendResult {
complete: boolean;
txid?: string;
hex?: string;
psbt?: string;
}
export interface SendAllResult {
complete: boolean;
txid?: string;
hex?: string;
psbt?: string;
fee?: number;
weight?: number;
}
export interface SimulateTransactionResult {
balance_change: number;
feerate?: {
effective_feerate: number;
wtxids: string[];
};
}
export interface UpgradeWalletResult {
wallet_name: string;
previous_version: number;
current_version: number;
result?: string;
error?: string;
}
export interface ImportDescriptorRequest {
desc: string;
timestamp: number | 'now';
active?: boolean;
range?: number | [number, number];
next_index?: number;
internal?: boolean;
label?: string;
}
export interface SendOptions {
add_inputs?: boolean;
include_unsafe?: boolean;
add_to_wallet?: boolean;
change_address?: string;
change_position?: number;
change_type?: string;
fee_rate?: number | string;
include_watching?: boolean;
inputs?: Array<{
txid: string;
vout: number;
weight?: number;
}>;
lock_unspents?: boolean;
locktime?: number;
max_tx_weight?: number;
psbt?: boolean;
subtract_fee_from_outputs?: number[];
conf_target?: number;
replaceable?: boolean;
minconf?: number;
maxconf?: number;
send_max?: boolean;
}