js-conflux-sdk
Version:
JavaScript Conflux Software Development Kit
109 lines (108 loc) • 3.38 kB
TypeScript
export = BaseProvider;
declare class BaseProvider extends EventEmitter {
/**
* @param {object} [options]
* @param {string} options.url - Full json rpc http url
* @param {number} [options.timeout=30*1000] - Request time out in ms
* @param {number} [options.retry=1] - Retry number
* @param {boolean} [options.keepAlive=false] - Whether open the http keep-alive option
* @param {object} [options.logger] - Logger with `info` and `error`
* @return {BaseProvider}
*/
constructor({ url, retry, timeout, keepAlive, logger, }?: {
url: string;
timeout?: number;
retry?: number;
keepAlive?: boolean;
logger?: object;
});
url: string;
retry: number;
timeout: number;
logger: any;
keepAlive: boolean;
headers: {
Connection: string;
};
/**
* Gen a random json rpc id.
* It is used in `call` method, overwrite it to gen your own id.
*
* @return {string}
*/
requestId(): string;
/**
* @param {any}
* @private
* @return {Promise<*>}
*/
private _request;
/**
* @param {any[]}
* @return {Promise<*>}
* @private
*/
private _requestBatch;
/**
* Call a json rpc method with params
*
* @param {object} data
* @param {string} data.method - Json rpc method name.
* @param {array} [data.params] - Json rpc method params.
* @return {Promise<*>} Json rpc method return value.
*
* @example
* > await provider.request({method: 'cfx_epochNumber'});
* > await provider.request({method: 'cfx_getBlockByHash', params: [blockHash]});
*/
request({ method, params }: {
method: string;
params?: any[];
}): Promise<any>;
/**
* Call a json rpc method with params
*
* @param {string} method - Json rpc method name.
* @param {any[]} params - Json rpc method params.
* @return {Promise<*>} Json rpc method return value.
*
* @example
* > await provider.call('cfx_epochNumber');
* > await provider.call('cfx_getBlockByHash', blockHash);
*/
call(method: string, ...params: any[]): Promise<any>;
/**
* Send a json rpc method request
*
* @param {string} method - Json rpc method name.
* @param {array} [params] - Json rpc method params.
* @return {Promise<*>} Json rpc method return value.
*
* @example
* > await provider.send('cfx_epochNumber');
* > await provider.send('cfx_getBlockByHash', [blockHash]);
*/
send(method: string, params?: any[]): Promise<any>;
/**
* Batch call json rpc methods with params
*
* @param {object[]} array - Array of object with "method" and "params"
* @return {Promise<Array>}
*
* @example
* > await provider.batch([
* { method: 'cfx_epochNumber' },
* { method: 'cfx_getBalance', params: ['cfxtest:aaawgvnhveawgvnhveawgvnhveawgvnhvey1umfzwp'] },
* { method: 'InValidInput' },
* ])
[ '0x3b734d', '0x22374d959c622f74728', RPCError: Method not found ]
*/
batch(array: object[]): Promise<any[]>;
close(): void;
}
declare namespace BaseProvider {
export { RPCError };
}
import EventEmitter = require("events");
import RPCError = require("./RPCError");
//# sourceMappingURL=BaseProvider.d.ts.map