@onekeyfe/blockchain-link
Version:
High-level javascript interface for blockchain communication
65 lines (64 loc) • 3.11 kB
TypeScript
/// <reference types="node" />
import WebSocket from 'ws';
import { EventEmitter } from 'events';
import { Deferred } from '../../utils/deferred';
import { Send } from '../../types/blockbook';
import { GetFiatRatesForTimestamps, GetFiatRatesTickersList, AccountInfoParams, EstimateFeeParams, AccountBalanceHistoryParams, GetCurrentFiatRates } from '../../types/messages';
interface Subscription {
id: string;
type: 'notification' | 'block' | 'fiatRates';
callback: (result: any) => void;
}
interface Options {
url: string;
timeout?: number;
pingTimeout?: number;
keepAlive?: boolean;
}
export default class Socket extends EventEmitter {
options: Options;
ws: WebSocket | undefined;
messageID: number;
messages: Deferred<any>[];
subscriptions: Subscription[];
pingTimeout: ReturnType<typeof setTimeout> | undefined;
connectionTimeout: ReturnType<typeof setTimeout> | undefined;
constructor(options: Options);
setConnectionTimeout(): void;
clearConnectionTimeout(): void;
setPingTimeout(): void;
onTimeout(): void;
onPing(): Promise<void>;
onError(): void;
send: Send;
onmessage(message: string): void;
connect(): Promise<void>;
init(): void;
disconnect(): void;
isConnected(): boolean | undefined;
getServerInfo(): Promise<import("../../types/blockbook").ServerInfo>;
getBlockHash(block: number): Promise<import("../../types/blockbook").BlockHash>;
getAccountInfo(payload: AccountInfoParams): Promise<import("../../types/blockbook").AccountInfo>;
getAccountUtxo(descriptor: string): Promise<import("../../types/blockbook").AccountUtxo>;
getTransaction(txid: string): Promise<import("../../types/blockbook").Transaction>;
pushTransaction(hex: string): Promise<import("../../types/blockbook").Push>;
estimateFee(payload: EstimateFeeParams): Promise<import("../../types/blockbook").Fee>;
getCurrentFiatRates(payload: GetCurrentFiatRates['payload']): Promise<import("../../types/blockbook").TimestampedFiatRates>;
getAccountBalanceHistory(payload: AccountBalanceHistoryParams): Promise<import("../../types/blockbook").AccountBalanceHistory[]>;
getFiatRatesForTimestamps(payload: GetFiatRatesForTimestamps['payload']): Promise<import("../../types/blockbook").FiatRatesForTimestamp>;
getFiatRatesTickersList(payload: GetFiatRatesTickersList['payload']): Promise<import("../../types/blockbook").AvailableCurrencies>;
subscribeAddresses(addresses: string[]): Promise<import("../../types/blockbook").Subscribe>;
unsubscribeAddresses(): Promise<import("../../types/blockbook").Subscribe> | {
subscribed: boolean;
};
subscribeBlock(): Promise<import("../../types/blockbook").Subscribe>;
unsubscribeBlock(): Promise<import("../../types/blockbook").Subscribe> | {
subscribed: boolean;
};
subscribeFiatRates(currency?: string): Promise<import("../../types/blockbook").Subscribe>;
unsubscribeFiatRates(): Promise<import("../../types/blockbook").Subscribe> | {
subscribed: boolean;
};
dispose(): void;
}
export {};