mirror of
https://github.com/mempool/mempool.git
synced 2025-02-27 16:46:32 +01:00
167 lines
11 KiB
TypeScript
167 lines
11 KiB
TypeScript
export namespace IBitcoinApi {
|
|
export interface MempoolInfo {
|
|
loaded: boolean; // (boolean) True if the mempool is fully loaded
|
|
size: number; // (numeric) Current tx count
|
|
bytes: number; // (numeric) Sum of all virtual transaction sizes as defined in BIP 141.
|
|
usage: number; // (numeric) Total memory usage for the mempool
|
|
total_fee: number; // (numeric) Total fees of transactions in the mempool
|
|
maxmempool: number; // (numeric) Maximum memory usage for the mempool
|
|
mempoolminfee: number; // (numeric) Minimum fee rate in BTC/kB for tx to be accepted.
|
|
minrelaytxfee: number; // (numeric) Current minimum relay fee for transactions
|
|
}
|
|
|
|
export interface RawMempool { [txId: string]: MempoolEntry; }
|
|
|
|
export interface MempoolEntry {
|
|
vsize: number; // (numeric) virtual transaction size as defined in BIP 141.
|
|
weight: number; // (numeric) transaction weight as defined in BIP 141.
|
|
time: number; // (numeric) local time transaction entered pool in seconds since 1 Jan 1970 GMT
|
|
height: number; // (numeric) block height when transaction entered pool
|
|
descendantcount: number; // (numeric) number of in-mempool descendant transactions (including this one)
|
|
descendantsize: number; // (numeric) virtual transaction size of in-mempool descendants (including this one)
|
|
ancestorcount: number; // (numeric) number of in-mempool ancestor transactions (including this one)
|
|
ancestorsize: number; // (numeric) virtual transaction size of in-mempool ancestors (including this one)
|
|
wtxid: string; // (string) hash of serialized transactionumber; including witness data
|
|
fees: {
|
|
base: number; // (numeric) transaction fee in BTC
|
|
modified: number; // (numeric) transaction fee with fee deltas used for mining priority in BTC
|
|
ancestor: number; // (numeric) modified fees (see above) of in-mempool ancestors (including this one) in BTC
|
|
descendant: number; // (numeric) modified fees (see above) of in-mempool descendants (including this one) in BTC
|
|
};
|
|
depends: string[]; // (string) parent transaction id
|
|
spentby: string[]; // (array) unconfirmed transactions spending outputs from this transaction
|
|
'bip125-replaceable': boolean; // (boolean) Whether this transaction could be replaced due to BIP125 (replace-by-fee)
|
|
}
|
|
|
|
export interface Block {
|
|
hash: string; // (string) the block hash (same as provided)
|
|
confirmations: number; // (numeric) The number of confirmations, or -1 if the block is not on the main chain
|
|
size: number; // (numeric) The block size
|
|
strippedsize: number; // (numeric) The block size excluding witness data
|
|
weight: number; // (numeric) The block weight as defined in BIP 141
|
|
height: number; // (numeric) The block height or index
|
|
version: number; // (numeric) The block version
|
|
versionHex: string; // (string) The block version formatted in hexadecimal
|
|
merkleroot: string; // (string) The merkle root
|
|
tx: Transaction[];
|
|
time: number; // (numeric) The block time expressed in UNIX epoch time
|
|
mediantime: number; // (numeric) The median block time expressed in UNIX epoch time
|
|
nonce: number; // (numeric) The nonce
|
|
bits: string; // (string) The bits
|
|
difficulty: number; // (numeric) The difficulty
|
|
chainwork: string; // (string) Expected number of hashes required to produce the chain up to this block (in hex)
|
|
nTx: number; // (numeric) The number of transactions in the block
|
|
previousblockhash: string; // (string) The hash of the previous block
|
|
nextblockhash: string; // (string) The hash of the next block
|
|
}
|
|
|
|
export interface Transaction {
|
|
in_active_chain: boolean; // (boolean) Whether specified block is in the active chain or not
|
|
hex: string; // (string) The serialized, hex-encoded data for 'txid'
|
|
txid: string; // (string) The transaction id (same as provided)
|
|
hash: string; // (string) The transaction hash (differs from txid for witness transactions)
|
|
size: number; // (numeric) The serialized transaction size
|
|
vsize: number; // (numeric) The virtual transaction size (differs from size for witness transactions)
|
|
weight: number; // (numeric) The transaction's weight (between vsize*4-3 and vsize*4)
|
|
version: number; // (numeric) The version
|
|
locktime: number; // (numeric) The lock time
|
|
vin: Vin[];
|
|
vout: Vout[];
|
|
blockhash: string; // (string) the block hash
|
|
confirmations: number; // (numeric) The confirmations
|
|
blocktime: number; // (numeric) The block time expressed in UNIX epoch time
|
|
time: number; // (numeric) Same as blocktime
|
|
}
|
|
|
|
export interface Vin {
|
|
txid?: string; // (string) The transaction id
|
|
vout?: number; // (string)
|
|
scriptSig?: { // (json object) The script
|
|
asm: string; // (string) asm
|
|
hex: string; // (string) hex
|
|
};
|
|
sequence: number; // (numeric) The script sequence number
|
|
txinwitness?: string[]; // (string) hex-encoded witness data
|
|
coinbase?: string;
|
|
is_pegin?: boolean; // (boolean) Elements peg-in
|
|
}
|
|
|
|
export interface Vout {
|
|
value: number; // (numeric) The value in BTC
|
|
n: number; // (numeric) index
|
|
asset?: string; // (string) Elements asset id
|
|
scriptPubKey: { // (json object)
|
|
asm: string; // (string) the asm
|
|
hex: string; // (string) the hex
|
|
reqSigs?: number; // (numeric) The required sigs
|
|
type: string; // (string) The type, eg 'pubkeyhash'
|
|
address?: string; // (string) bitcoin address
|
|
addresses?: string[]; // (string) bitcoin addresses
|
|
pegout_chain?: string; // (string) Elements peg-out chain
|
|
pegout_addresses?: string[]; // (string) Elements peg-out addresses
|
|
};
|
|
}
|
|
|
|
export interface AddressInformation {
|
|
isvalid: boolean; // (boolean) If the address is valid or not. If not, this is the only property returned.
|
|
isvalid_parent?: boolean; // (boolean) Elements only
|
|
address: string; // (string) The bitcoin address validated
|
|
scriptPubKey: string; // (string) The hex-encoded scriptPubKey generated by the address
|
|
isscript: boolean; // (boolean) If the key is a script
|
|
iswitness: boolean; // (boolean) If the address is a witness
|
|
witness_version?: number; // (numeric, optional) The version number of the witness program
|
|
witness_program: string; // (string, optional) The hex value of the witness program
|
|
confidential_key?: string; // (string) Elements only
|
|
unconfidential?: string; // (string) Elements only
|
|
}
|
|
|
|
export interface ChainTips {
|
|
height: number; // (numeric) height of the chain tip
|
|
hash: string; // (string) block hash of the tip
|
|
branchlen: number; // (numeric) zero for main chain, otherwise length of branch connecting the tip to the main chain
|
|
status: 'invalid' | 'headers-only' | 'valid-headers' | 'valid-fork' | 'active';
|
|
}
|
|
|
|
export interface BlockchainInfo {
|
|
chain: number; // (string) current network name as defined in BIP70 (main, test, regtest)
|
|
blocks: number; // (numeric) the current number of blocks processed in the server
|
|
headers: number; // (numeric) the current number of headers we have validated
|
|
bestblockhash: string, // (string) the hash of the currently best block
|
|
difficulty: number; // (numeric) the current difficulty
|
|
mediantime: number; // (numeric) median time for the current best block
|
|
verificationprogress: number; // (numeric) estimate of verification progress [0..1]
|
|
initialblockdownload: boolean; // (bool) (debug information) estimate of whether this node is in Initial Block Download mode.
|
|
chainwork: string // (string) total amount of work in active chain, in hexadecimal
|
|
size_on_disk: number; // (numeric) the estimated size of the block and undo files on disk
|
|
pruned: number; // (boolean) if the blocks are subject to pruning
|
|
pruneheight: number; // (numeric) lowest-height complete block stored (only present if pruning is enabled)
|
|
automatic_pruning: number; // (boolean) whether automatic pruning is enabled (only present if pruning is enabled)
|
|
prune_target_size: number; // (numeric) the target size used by pruning (only present if automatic pruning is enabled)
|
|
softforks: SoftFork[]; // (array) status of softforks in progress
|
|
bip9_softforks: { [name: string]: Bip9SoftForks[] } // (object) status of BIP9 softforks in progress
|
|
warnings: string; // (string) any network and blockchain warnings.
|
|
}
|
|
|
|
interface SoftFork {
|
|
id: string; // (string) name of softfork
|
|
version: number; // (numeric) block version
|
|
reject: { // (object) progress toward rejecting pre-softfork blocks
|
|
status: boolean; // (boolean) true if threshold reached
|
|
},
|
|
}
|
|
interface Bip9SoftForks {
|
|
status: number; // (string) one of defined, started, locked_in, active, failed
|
|
bit: number; // (numeric) the bit (0-28) in the block version field used to signal this softfork (only for started status)
|
|
startTime: number; // (numeric) the minimum median time past of a block at which the bit gains its meaning
|
|
timeout: number; // (numeric) the median time past of a block at which the deployment is considered failed if not yet locked in
|
|
since: number; // (numeric) height of the first block to which the status applies
|
|
statistics: { // (object) numeric statistics about BIP9 signalling for a softfork (only for started status)
|
|
period: number; // (numeric) the length in blocks of the BIP9 signalling period
|
|
threshold: number; // (numeric) the number of blocks with the version bit set required to activate the feature
|
|
elapsed: number; // (numeric) the number of blocks elapsed since the beginning of the current period
|
|
count: number; // (numeric) the number of blocks with the version bit set in the current period
|
|
possible: boolean; // (boolean) returns false if there are not enough blocks left in this period to pass activation threshold
|
|
}
|
|
}
|
|
|
|
}
|