lotus-sdk
Version:
Central repository for several classes of tools for integrating with, and building for, the Lotusia ecosystem
128 lines • 3.44 kB
TypeScript
type JSONRPCResult = string | string[] | number | NetworkInfo | MiningInfo | MempoolInfo | PeerInfo[] | BlockStats | BlockInfo | RawTransaction;
export interface NetworkInfo {
subversion: string;
localrelay: boolean;
connections: number;
connections_in: number;
warnings: string;
}
export interface MiningInfo {
blocks: number;
difficulty: number;
networkhashps: number;
pooledtx: number;
chain: string;
warnings: string;
}
export interface MempoolInfo {
loaded: boolean;
size: number;
bytes: number;
usage: number;
maxmempool: number;
mempoolminfee: number;
minrelaytxfee: number;
unbroadcastcount: number;
}
export interface PeerInfo {
addr: string;
services: string;
servicesnames: Array<string>;
relaytxes: boolean;
lastsend: number;
lastrecv: number;
last_transaction: number;
last_proof: number;
last_block: number;
bytessent: number;
bytesrecv: number;
conntime: number;
timeoffset: number;
pingtime: number;
minping: number;
version: number;
subver: string;
inbound: boolean;
startingheight: number;
synced_headers: number;
synced_blocks: number;
geoip?: {
country: string;
city: string;
};
}
export interface BlockStats {
avgfee: number;
avgfeerate: number;
avgtxsize: number;
blockhash: string;
feerate_percentiles: Array<number>;
height: number;
ins: number;
maxfee: number;
maxfeerate: number;
maxtxsize: number;
medianfee: number;
medianfeerate: number;
mediantxsize: number;
minfeerate: number;
mintxsize: number;
notx: number;
outs: number;
subsidy: number;
time: number;
total_out: number;
total_size: number;
totalfee: number;
txs: number;
utxo_increase: number;
utxo_size_inc: number;
}
export interface BlockInfo {
hash: string;
confirmations: number;
size: number;
height: number;
tx: Array<string>;
time: number;
difficulty: number;
nTx: number;
previousblockhash: string;
nextblockhash: string;
}
export interface TransactionInput {
txid: string;
vout: number;
coinbase?: string;
}
export interface TransactionOutput {
value: number;
scriptPubKey: {
addresses: Array<string>;
type: string;
asm: string;
};
}
export interface RawTransaction {
txid: string;
size: number;
vin: TransactionInput[];
vout: TransactionOutput[];
time?: number;
blocktime?: number;
blockhash?: string;
confirmations?: number;
}
export declare function sendRPCRequest(method: string, params: unknown[]): Promise<JSONRPCResult>;
export declare function getMiningInfo(): Promise<MiningInfo>;
export declare function getNetworkInfo(): Promise<NetworkInfo>;
export declare function getPeerInfo(): Promise<PeerInfo[]>;
export declare function getBlockCount(): Promise<number>;
export declare function getBlockHash(height: number): Promise<string>;
export declare function getBlockStats(hash: string): Promise<BlockStats>;
export declare function getBlock(hash: string): Promise<BlockInfo>;
export declare function getRawTransaction(txid: string): Promise<RawTransaction>;
export declare function getRawMemPool(): Promise<string[]>;
export declare function getMempoolInfo(): Promise<MempoolInfo>;
export {};
//# sourceMappingURL=rpc.d.ts.map