123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- /**
- * Generic long-lived socket provider.
- *
- * Sub-classing notes
- * - a sub-class MUST call the `_start()` method once connected
- * - a sub-class MUST override the `_write(string)` method
- * - a sub-class MUST call `_processMessage(string)` for each message
- *
- * @_subsection: api/providers/abstract-provider:Socket Providers [about-socketProvider]
- */
- import { JsonRpcApiProvider } from "./provider-jsonrpc.js";
- import type { Subscriber, Subscription } from "./abstract-provider.js";
- import type { EventFilter } from "./provider.js";
- import type { JsonRpcApiProviderOptions, JsonRpcError, JsonRpcPayload, JsonRpcResult } from "./provider-jsonrpc.js";
- import type { Networkish } from "./network.js";
- /**
- * A **SocketSubscriber** uses a socket transport to handle events and
- * should use [[_emit]] to manage the events.
- */
- export declare class SocketSubscriber implements Subscriber {
- #private;
- /**
- * The filter.
- */
- get filter(): Array<any>;
- /**
- * Creates a new **SocketSubscriber** attached to %%provider%% listening
- * to %%filter%%.
- */
- constructor(provider: SocketProvider, filter: Array<any>);
- start(): void;
- stop(): void;
- pause(dropWhilePaused?: boolean): void;
- resume(): void;
- /**
- * @_ignore:
- */
- _handleMessage(message: any): void;
- /**
- * Sub-classes **must** override this to emit the events on the
- * provider.
- */
- _emit(provider: SocketProvider, message: any): Promise<void>;
- }
- /**
- * A **SocketBlockSubscriber** listens for ``newHeads`` events and emits
- * ``"block"`` events.
- */
- export declare class SocketBlockSubscriber extends SocketSubscriber {
- /**
- * @_ignore:
- */
- constructor(provider: SocketProvider);
- _emit(provider: SocketProvider, message: any): Promise<void>;
- }
- /**
- * A **SocketPendingSubscriber** listens for pending transacitons and emits
- * ``"pending"`` events.
- */
- export declare class SocketPendingSubscriber extends SocketSubscriber {
- /**
- * @_ignore:
- */
- constructor(provider: SocketProvider);
- _emit(provider: SocketProvider, message: any): Promise<void>;
- }
- /**
- * A **SocketEventSubscriber** listens for event logs.
- */
- export declare class SocketEventSubscriber extends SocketSubscriber {
- #private;
- /**
- * The filter.
- */
- get logFilter(): EventFilter;
- /**
- * @_ignore:
- */
- constructor(provider: SocketProvider, filter: EventFilter);
- _emit(provider: SocketProvider, message: any): Promise<void>;
- }
- /**
- * A **SocketProvider** is backed by a long-lived connection over a
- * socket, which can subscribe and receive real-time messages over
- * its communication channel.
- */
- export declare class SocketProvider extends JsonRpcApiProvider {
- #private;
- /**
- * Creates a new **SocketProvider** connected to %%network%%.
- *
- * If unspecified, the network will be discovered.
- */
- constructor(network?: Networkish, _options?: JsonRpcApiProviderOptions);
- _getSubscriber(sub: Subscription): Subscriber;
- /**
- * Register a new subscriber. This is used internalled by Subscribers
- * and generally is unecessary unless extending capabilities.
- */
- _register(filterId: number | string, subscriber: SocketSubscriber): void;
- _send(payload: JsonRpcPayload | Array<JsonRpcPayload>): Promise<Array<JsonRpcResult | JsonRpcError>>;
- /**
- * Sub-classes **must** call this with messages received over their
- * transport to be processed and dispatched.
- */
- _processMessage(message: string): Promise<void>;
- /**
- * Sub-classes **must** override this to send %%message%% over their
- * transport.
- */
- _write(message: string): Promise<void>;
- }
- //# sourceMappingURL=provider-socket.d.ts.map
|