UNPKG

@nori-zk/mina-token-bridge

Version:

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

67 lines (66 loc) 3.13 kB
import { KeyTransitionStageMessageTypes, WebSocketServiceTopicSubscriptionMessage } from '@nori-zk/pts-types'; import { Observable } from 'rxjs'; import { WebSocketSubject } from 'rxjs/webSocket'; import { ReconnectingWebSocketSubject } from './reconnectingSocket.js'; /** * Returns an observable emitting the bridge's current processing state. * * Filters for messages from the `state.bridge` topic, ignoring any with `elapsed_sec` * set to `'unknown'`, as those do not represent valid state data. * * The observable emits objects containing the current stage, slot/block input/output * positions, elapsed time in seconds, and details about the last finalized job— * if known. * * The stream is shared and replayed to all subscribers using `shareReplay(1)`. * * @param bridgeSocket$ WebSocket connection to the bridge service. * @returns Observable emitting bridge state updates. */ export declare const getBridgeStateTopic$: (bridgeSocket$: WebSocketSubject<WebSocketServiceTopicSubscriptionMessage> | ReconnectingWebSocketSubject<WebSocketServiceTopicSubscriptionMessage>) => Observable<{ stage_name: KeyTransitionStageMessageTypes; input_slot: number; input_block_number: number; output_slot: number; output_block_number: number; elapsed_sec: number; last_finalized_job: "unknown" | { input_slot: number; input_block_number: number; output_slot: number; output_block_number: number; }; }>; /** * Returns an observable emitting bridge timing data related to transition notices. * * Filters for messages from the `timings.notices.transition` topic. * Emits raw transition timing metadata from the bridge without transformation. * * The stream is shared and replayed to all subscribers using `shareReplay(1)`. * * @param bridgeSocket$ WebSocket connection to the bridge service. * @returns Observable emitting transition timing updates. */ export declare const getBridgeTimingsTopic$: (bridgeSocket$: WebSocketSubject<WebSocketServiceTopicSubscriptionMessage> | ReconnectingWebSocketSubject<WebSocketServiceTopicSubscriptionMessage>) => Observable<{ message_type: "TransitionTiming"; extension: import("@nori-zk/pts-types").KeyTransitionStageEstimatedTransitionTime; datetime_iso: string; topic: "timings.notices.transition"; }>; /** * Returns an observable emitting the current Ethereum finality state. * * Filters for messages from the `state.eth` topic, discarding any with * `latest_finality_block_number` set to `'unknown'`. * * Emits the latest known finality slot and block number from the Ethereum network. * The stream is shared and replayed to all subscribers using `shareReplay(1)`. * * @param bridgeSocket$ WebSocket connection to the bridge service. * @returns Observable emitting Ethereum finality state updates. */ export declare const getEthStateTopic$: (bridgeSocket$: WebSocketSubject<WebSocketServiceTopicSubscriptionMessage> | ReconnectingWebSocketSubject<WebSocketServiceTopicSubscriptionMessage>) => Observable<{ latest_finality_block_number: number; latest_finality_slot: number; }>;