@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
TypeScript
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;
}>;