UNPKG

@nori-zk/mina-token-bridge

Version:

A Mina zk-program contract allowing users to mint tokens on Nori Bridge.

38 lines (37 loc) 2.14 kB
import { WebSocketServiceTopicSubscriptionMessage } from '@nori-zk/pts-types'; import { WebSocketSubject } from 'rxjs/webSocket'; import { ReconnectingWebSocketSubject } from './reconnectingSocket.js'; /** * Creates a basic `WebSocketSubject` for receiving bridge-related messages. * * This socket: * - Subscribes to `state.eth`, `state.bridge`, and `timings.notices.transition` on open. * - Sends `ping` messages at a fixed interval (heartbeat). * - Ignores `pong` replies in the message stream. * * Automatically unsubscribes from heartbeat pings on socket close. * * @param url WebSocket server URL (default: wss://wss.nori.it.com) * @param heartBeatInterval Interval for heartbeat pings in ms (default: 3000) * @returns A filtered WebSocketSubject that emits structured subscription messages. */ export declare function getBridgeSocket$(url?: string, heartBeatInterval?: number): WebSocketSubject<WebSocketServiceTopicSubscriptionMessage>; /** * Creates a reconnecting WebSocketSubject that: * - Handles connection state tracking and automatic reconnect with exponential backoff * - Sends regular `ping` heartbeats * - Watches for missing `pong` responses and triggers reconnection if threshold is exceeded * - Subscribes to key bridge-related topics on connection * - Filters out pong replies from message stream * * @param url WebSocket server URL (default: wss://wss.nori.it.com) * @param heartBeatInterval Interval in ms for sending pings (default: 3000) * @param pongTimeoutMultiplier Multiplier to determine allowed pong delay before reconnection (default: 2) * @returns An object containing: * - `bridgeSocket$`: the reconnecting WebSocket observable for bridge messages * - `bridgeSocketConnectionState$`: connection state observable */ export declare function getReconnectingBridgeSocket$(url?: string, heartBeatInterval?: number, pongTimeoutMultiplier?: number): { bridgeSocket$: ReconnectingWebSocketSubject<WebSocketServiceTopicSubscriptionMessage>; bridgeSocketConnectionState$: import("rxjs").Observable<"connecting" | "open" | "closed" | "reconnecting" | "permanently-closed">; };