UNPKG

1.58 kBTypeScriptView Raw
1import { Event } from 'microevent.ts';
2import RpcProviderInterface from './RpcProviderInterface';
3declare class RpcProvider implements RpcProviderInterface {
4 private _dispatch;
5 private _rpcTimeout;
6 constructor(_dispatch: RpcProvider.Dispatcher, _rpcTimeout?: number);
7 dispatch(payload: any): void;
8 rpc<T = void, U = void>(id: string, payload?: T, transfer?: any): Promise<U>;
9 signal<T = void>(id: string, payload?: T, transfer?: any): this;
10 registerRpcHandler<T = void, U = void>(id: string, handler: RpcProviderInterface.RpcHandler<T, U>): this;
11 registerSignalHandler<T = void>(id: string, handler: RpcProviderInterface.SignalHandler<T>): this;
12 deregisterRpcHandler<T = void, U = void>(id: string, handler: RpcProviderInterface.RpcHandler<T, U>): this;
13 deregisterSignalHandler<T = void>(id: string, handler: RpcProviderInterface.SignalHandler<T>): this;
14 private _raiseError;
15 private _handleSignal;
16 private _handeRpc;
17 private _handleInternal;
18 private _transactionTimeout;
19 private _clearTransaction;
20 error: Event<Error>;
21 private _rpcHandlers;
22 private _signalHandlers;
23 private _pendingTransactions;
24 private _nextTransactionId;
25}
26declare module RpcProvider {
27 enum MessageType {
28 signal = 0,
29 rpc = 1,
30 internal = 2
31 }
32 interface Dispatcher {
33 (message: Message, transfer?: Array<any>): void;
34 }
35 interface Message {
36 type: MessageType;
37 transactionId?: number;
38 id: string;
39 payload?: any;
40 }
41}
42export default RpcProvider;