Files
DefinitelyTyped/types/web3/providers.d.ts
2018-05-30 09:55:55 +02:00

65 lines
1.8 KiB
TypeScript

interface JsonRPCRequest {
jsonrpc: string;
method: string;
params: any[];
id: number;
}
interface JsonRPCResponse {
jsonrpc: string;
id: number;
result?: any;
error?: string;
}
export class Provider {
send(
payload: JsonRPCRequest,
callback: (e: Error, val: JsonRPCResponse) => void
): any;
}
export class WebsocketProvider extends Provider {
responseCallbacks: object;
notificationCallbacks: [() => any];
connection: {
onclose(e: any): void;
onmessage(e: any): void;
onerror(e?: any): void;
};
addDefaultEvents: () => void;
on(type: string, callback: () => any): void;
removeListener(type: string, callback: () => any): void;
removeAllListeners(type: string): void;
reset(): void;
}
export class HttpProvider extends Provider {
responseCallbacks: undefined;
notificationCallbacks: undefined;
connection: undefined;
addDefaultEvents: undefined;
on(type: string, callback: () => any): undefined;
removeListener(type: string, callback: () => any): undefined;
removeAllListeners(type: string): undefined;
reset(): undefined;
}
export class IpcProvider extends Provider {
responseCallbacks: undefined;
notificationCallbacks: undefined;
connection: undefined;
addDefaultEvents: undefined;
on(type: string, callback: () => any): undefined;
removeListener(type: string, callback: () => any): undefined;
removeAllListeners(type: string): undefined;
reset(): undefined;
}
export default interface Providers {
WebsocketProvider: new (
host: string,
timeout?: number
) => WebsocketProvider;
HttpProvider: new (host: string, timeout?: number) => HttpProvider;
IpcProvider: new (path: string, net: any) => IpcProvider;
}