UNPKG

@nori-zk/mina-token-bridge

Version:

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

930 lines (929 loc) 114 kB
import { getCanComputeEthProof$, getCanMint$, getDepositProcessingStatus$ } from '../rx/deposit.js'; import { getBridgeStateTopic$, getBridgeTimingsTopic$, getEthStateTopic$ } from '../rx/topics.js'; import { Observable } from 'rxjs'; type ObservableValue<T> = T extends Observable<infer U> ? U : never; export declare const getDepositMachine: (initialContext: { ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }) => import("xstate").StateMachine<{ activeDepositNumber: number | null; depositMintTx: string | null; computedEthProof: string | null; processingStatus: ObservableValue<ReturnType<typeof getDepositProcessingStatus$>> | null; canComputeStatus: ObservableValue<ReturnType<typeof getCanComputeEthProof$>> | null; canMintStatus: ObservableValue<ReturnType<typeof getCanMint$>> | null; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, { type: "SET_DEPOSIT_NUMBER"; value: number; } | { type: "CHECK_STATUS"; } | { type: "COMPUTE_ETH_PROOF"; } | { type: "BUILD_MINT_TX"; } | { type: "SUBMIT_MINT_TX"; } | { type: "RESET"; }, { [x: string]: import("xstate").ActorRefFromLogic<import("xstate").ObservableActorLogic<{ time_remaining_sec: number; elapsed_sec: number; deposit_processing_status: import("../rx/deposit.js").BridgeDepositProcessingStatus; deposit_block_number: number; stage_name: import("node_modules/@nori-zk/pts-types/build/public/src/index.js").KeyTransitionStageMessageTypes; input_slot: number; input_block_number: number; output_slot: number; output_block_number: number; last_finalized_job: "unknown" | { input_slot: number; input_block_number: number; output_slot: number; output_block_number: number; }; }, { depositBlockNumber: number; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").ObservableActorLogic<import("../rx/deposit.js").BridgeDepositProcessingStatus.MissedMintingOpportunity | "Waiting" | "CanCompute", { depositBlockNumber: number; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").ObservableActorLogic<import("../rx/deposit.js").BridgeDepositProcessingStatus.ReadyToMint | import("../rx/deposit.js").BridgeDepositProcessingStatus.MissedMintingOpportunity | "Waiting", { depositBlockNumber: number; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<string, { depositBlockNumber: number; }, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<string, { depositBlockNumber: number; ethProof: string; }, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<void, { mintTx: string; }, import("xstate").EventObject>>; }, import("xstate").Values<{ depositProcessingStatusActor: { src: "depositProcessingStatusActor"; logic: import("xstate").ObservableActorLogic<{ time_remaining_sec: number; elapsed_sec: number; deposit_processing_status: import("../rx/deposit.js").BridgeDepositProcessingStatus; deposit_block_number: number; stage_name: import("node_modules/@nori-zk/pts-types/build/public/src/index.js").KeyTransitionStageMessageTypes; input_slot: number; input_block_number: number; output_slot: number; output_block_number: number; last_finalized_job: "unknown" | { input_slot: number; input_block_number: number; output_slot: number; output_block_number: number; }; }, { depositBlockNumber: number; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, import("xstate").EventObject>; id: string; }; canComputeEthProofActor: { src: "canComputeEthProofActor"; logic: import("xstate").ObservableActorLogic<import("../rx/deposit.js").BridgeDepositProcessingStatus.MissedMintingOpportunity | "Waiting" | "CanCompute", { depositBlockNumber: number; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, import("xstate").EventObject>; id: string; }; canMintActor: { src: "canMintActor"; logic: import("xstate").ObservableActorLogic<import("../rx/deposit.js").BridgeDepositProcessingStatus.ReadyToMint | import("../rx/deposit.js").BridgeDepositProcessingStatus.MissedMintingOpportunity | "Waiting", { depositBlockNumber: number; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, import("xstate").EventObject>; id: string; }; computeEthProofService: { src: "computeEthProofService"; logic: import("xstate").PromiseActorLogic<string, { depositBlockNumber: number; }, import("xstate").EventObject>; id: string; }; buildMintTxService: { src: "buildMintTxService"; logic: import("xstate").PromiseActorLogic<string, { depositBlockNumber: number; ethProof: string; }, import("xstate").EventObject>; id: string; }; submitMintTxService: { src: "submitMintTxService"; logic: import("xstate").PromiseActorLogic<void, { mintTx: string; }, import("xstate").EventObject>; id: string; }; }>, never, import("xstate").Values<{ canMint: { type: "canMint"; params: unknown; }; hasComputedEthProof: { type: "hasComputedEthProof"; params: unknown; }; hasDepositMintTx: { type: "hasDepositMintTx"; params: unknown; }; hasActiveDepositNumber: { type: "hasActiveDepositNumber"; params: unknown; }; canComputeEthProof: { type: "canComputeEthProof"; params: unknown; }; isMissedOpportunity: { type: "isMissedOpportunity"; params: unknown; }; }>, never, "hasComputedEthProof" | "hasDepositMintTx" | "hasActiveDepositNumber" | "checking" | "noActiveDepositNumber" | "checkingCanCompute" | "missedOpportunity" | "computingEthProof" | "canComputeEvaluation" | "buildingMintTx" | "canMintEvaluation" | "submittingMintTx" | "completed", string, {}, {}, import("xstate").EventObject, import("xstate").MetaObject, { readonly id: "deposit"; readonly initial: "checking"; readonly context: { readonly activeDepositNumber: number; readonly depositMintTx: string; readonly computedEthProof: string; readonly processingStatus: any; readonly canComputeStatus: any; readonly canMintStatus: any; readonly ethStateTopic$: Observable<{ latest_finality_block_number: number; latest_finality_slot: number; }>; readonly bridgeStateTopic$: Observable<{ stage_name: import("node_modules/@nori-zk/pts-types/build/public/src/index.js").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; }; }>; readonly bridgeTimingsTopic$: Observable<{ message_type: "TransitionTiming"; extension: import("node_modules/@nori-zk/pts-types/build/public/src/index.js").KeyTransitionStageEstimatedTransitionTime; datetime_iso: string; topic: "timings.notices.transition"; }>; }; readonly states: { readonly checking: { readonly entry: import("xstate").ActionFunction<{ activeDepositNumber: number | null; depositMintTx: string | null; computedEthProof: string | null; processingStatus: ObservableValue<ReturnType<typeof getDepositProcessingStatus$>> | null; canComputeStatus: ObservableValue<ReturnType<typeof getCanComputeEthProof$>> | null; canMintStatus: ObservableValue<ReturnType<typeof getCanMint$>> | null; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, { type: "SET_DEPOSIT_NUMBER"; value: number; } | { type: "CHECK_STATUS"; } | { type: "COMPUTE_ETH_PROOF"; } | { type: "BUILD_MINT_TX"; } | { type: "SUBMIT_MINT_TX"; } | { type: "RESET"; }, { type: "SET_DEPOSIT_NUMBER"; value: number; } | { type: "CHECK_STATUS"; } | { type: "COMPUTE_ETH_PROOF"; } | { type: "BUILD_MINT_TX"; } | { type: "SUBMIT_MINT_TX"; } | { type: "RESET"; }, undefined, import("xstate").Values<{ depositProcessingStatusActor: { src: "depositProcessingStatusActor"; logic: import("xstate").ObservableActorLogic<{ time_remaining_sec: number; elapsed_sec: number; deposit_processing_status: import("../rx/deposit.js").BridgeDepositProcessingStatus; deposit_block_number: number; stage_name: import("node_modules/@nori-zk/pts-types/build/public/src/index.js").KeyTransitionStageMessageTypes; input_slot: number; input_block_number: number; output_slot: number; output_block_number: number; last_finalized_job: "unknown" | { input_slot: number; input_block_number: number; output_slot: number; output_block_number: number; }; }, { depositBlockNumber: number; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, import("xstate").EventObject>; id: string; }; canComputeEthProofActor: { src: "canComputeEthProofActor"; logic: import("xstate").ObservableActorLogic<import("../rx/deposit.js").BridgeDepositProcessingStatus.MissedMintingOpportunity | "Waiting" | "CanCompute", { depositBlockNumber: number; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, import("xstate").EventObject>; id: string; }; canMintActor: { src: "canMintActor"; logic: import("xstate").ObservableActorLogic<import("../rx/deposit.js").BridgeDepositProcessingStatus.ReadyToMint | import("../rx/deposit.js").BridgeDepositProcessingStatus.MissedMintingOpportunity | "Waiting", { depositBlockNumber: number; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, import("xstate").EventObject>; id: string; }; computeEthProofService: { src: "computeEthProofService"; logic: import("xstate").PromiseActorLogic<string, { depositBlockNumber: number; }, import("xstate").EventObject>; id: string; }; buildMintTxService: { src: "buildMintTxService"; logic: import("xstate").PromiseActorLogic<string, { depositBlockNumber: number; ethProof: string; }, import("xstate").EventObject>; id: string; }; submitMintTxService: { src: "submitMintTxService"; logic: import("xstate").PromiseActorLogic<void, { mintTx: string; }, import("xstate").EventObject>; id: string; }; }>, never, never, never, never>; readonly always: readonly [{ readonly target: "hasComputedEthProof"; readonly guard: "hasComputedEthProof"; }, { readonly target: "hasDepositMintTx"; readonly guard: "hasDepositMintTx"; }, { readonly target: "hasActiveDepositNumber"; readonly guard: "hasActiveDepositNumber"; }, { readonly target: "noActiveDepositNumber"; }]; }; readonly noActiveDepositNumber: { readonly on: { readonly SET_DEPOSIT_NUMBER: { readonly actions: import("xstate").ActionFunction<{ activeDepositNumber: number | null; depositMintTx: string | null; computedEthProof: string | null; processingStatus: ObservableValue<ReturnType<typeof getDepositProcessingStatus$>> | null; canComputeStatus: ObservableValue<ReturnType<typeof getCanComputeEthProof$>> | null; canMintStatus: ObservableValue<ReturnType<typeof getCanMint$>> | null; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, { type: "SET_DEPOSIT_NUMBER"; value: number; }, { type: "SET_DEPOSIT_NUMBER"; value: number; } | { type: "CHECK_STATUS"; } | { type: "COMPUTE_ETH_PROOF"; } | { type: "BUILD_MINT_TX"; } | { type: "SUBMIT_MINT_TX"; } | { type: "RESET"; }, undefined, import("xstate").Values<{ depositProcessingStatusActor: { src: "depositProcessingStatusActor"; logic: import("xstate").ObservableActorLogic<{ time_remaining_sec: number; elapsed_sec: number; deposit_processing_status: import("../rx/deposit.js").BridgeDepositProcessingStatus; deposit_block_number: number; stage_name: import("node_modules/@nori-zk/pts-types/build/public/src/index.js").KeyTransitionStageMessageTypes; input_slot: number; input_block_number: number; output_slot: number; output_block_number: number; last_finalized_job: "unknown" | { input_slot: number; input_block_number: number; output_slot: number; output_block_number: number; }; }, { depositBlockNumber: number; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, import("xstate").EventObject>; id: string; }; canComputeEthProofActor: { src: "canComputeEthProofActor"; logic: import("xstate").ObservableActorLogic<import("../rx/deposit.js").BridgeDepositProcessingStatus.MissedMintingOpportunity | "Waiting" | "CanCompute", { depositBlockNumber: number; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, import("xstate").EventObject>; id: string; }; canMintActor: { src: "canMintActor"; logic: import("xstate").ObservableActorLogic<import("../rx/deposit.js").BridgeDepositProcessingStatus.ReadyToMint | import("../rx/deposit.js").BridgeDepositProcessingStatus.MissedMintingOpportunity | "Waiting", { depositBlockNumber: number; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, import("xstate").EventObject>; id: string; }; computeEthProofService: { src: "computeEthProofService"; logic: import("xstate").PromiseActorLogic<string, { depositBlockNumber: number; }, import("xstate").EventObject>; id: string; }; buildMintTxService: { src: "buildMintTxService"; logic: import("xstate").PromiseActorLogic<string, { depositBlockNumber: number; ethProof: string; }, import("xstate").EventObject>; id: string; }; submitMintTxService: { src: "submitMintTxService"; logic: import("xstate").PromiseActorLogic<void, { mintTx: string; }, import("xstate").EventObject>; id: string; }; }>, never, never, never, never>; readonly target: "hasActiveDepositNumber"; }; }; }; readonly hasActiveDepositNumber: { readonly entry: import("xstate").ActionFunction<{ activeDepositNumber: number | null; depositMintTx: string | null; computedEthProof: string | null; processingStatus: ObservableValue<ReturnType<typeof getDepositProcessingStatus$>> | null; canComputeStatus: ObservableValue<ReturnType<typeof getCanComputeEthProof$>> | null; canMintStatus: ObservableValue<ReturnType<typeof getCanMint$>> | null; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, { type: "SET_DEPOSIT_NUMBER"; value: number; } | { type: "CHECK_STATUS"; } | { type: "COMPUTE_ETH_PROOF"; } | { type: "BUILD_MINT_TX"; } | { type: "SUBMIT_MINT_TX"; } | { type: "RESET"; }, { type: "SET_DEPOSIT_NUMBER"; value: number; } | { type: "CHECK_STATUS"; } | { type: "COMPUTE_ETH_PROOF"; } | { type: "BUILD_MINT_TX"; } | { type: "SUBMIT_MINT_TX"; } | { type: "RESET"; }, undefined, import("xstate").Values<{ depositProcessingStatusActor: { src: "depositProcessingStatusActor"; logic: import("xstate").ObservableActorLogic<{ time_remaining_sec: number; elapsed_sec: number; deposit_processing_status: import("../rx/deposit.js").BridgeDepositProcessingStatus; deposit_block_number: number; stage_name: import("node_modules/@nori-zk/pts-types/build/public/src/index.js").KeyTransitionStageMessageTypes; input_slot: number; input_block_number: number; output_slot: number; output_block_number: number; last_finalized_job: "unknown" | { input_slot: number; input_block_number: number; output_slot: number; output_block_number: number; }; }, { depositBlockNumber: number; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, import("xstate").EventObject>; id: string; }; canComputeEthProofActor: { src: "canComputeEthProofActor"; logic: import("xstate").ObservableActorLogic<import("../rx/deposit.js").BridgeDepositProcessingStatus.MissedMintingOpportunity | "Waiting" | "CanCompute", { depositBlockNumber: number; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, import("xstate").EventObject>; id: string; }; canMintActor: { src: "canMintActor"; logic: import("xstate").ObservableActorLogic<import("../rx/deposit.js").BridgeDepositProcessingStatus.ReadyToMint | import("../rx/deposit.js").BridgeDepositProcessingStatus.MissedMintingOpportunity | "Waiting", { depositBlockNumber: number; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, import("xstate").EventObject>; id: string; }; computeEthProofService: { src: "computeEthProofService"; logic: import("xstate").PromiseActorLogic<string, { depositBlockNumber: number; }, import("xstate").EventObject>; id: string; }; buildMintTxService: { src: "buildMintTxService"; logic: import("xstate").PromiseActorLogic<string, { depositBlockNumber: number; ethProof: string; }, import("xstate").EventObject>; id: string; }; submitMintTxService: { src: "submitMintTxService"; logic: import("xstate").PromiseActorLogic<void, { mintTx: string; }, import("xstate").EventObject>; id: string; }; }>, never, never, never, never>; readonly invoke: readonly [{ readonly id: "depositProcessingStatus"; readonly src: "depositProcessingStatusActor"; readonly input: ({ context }: { context: { activeDepositNumber: number | null; depositMintTx: string | null; computedEthProof: string | null; processingStatus: ObservableValue<ReturnType<typeof getDepositProcessingStatus$>> | null; canComputeStatus: ObservableValue<ReturnType<typeof getCanComputeEthProof$>> | null; canMintStatus: ObservableValue<ReturnType<typeof getCanMint$>> | null; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }; event: { type: "SET_DEPOSIT_NUMBER"; value: number; } | { type: "CHECK_STATUS"; } | { type: "COMPUTE_ETH_PROOF"; } | { type: "BUILD_MINT_TX"; } | { type: "SUBMIT_MINT_TX"; } | { type: "RESET"; }; self: import("xstate").ActorRef<import("xstate").MachineSnapshot<{ activeDepositNumber: number | null; depositMintTx: string | null; computedEthProof: string | null; processingStatus: ObservableValue<ReturnType<typeof getDepositProcessingStatus$>> | null; canComputeStatus: ObservableValue<ReturnType<typeof getCanComputeEthProof$>> | null; canMintStatus: ObservableValue<ReturnType<typeof getCanMint$>> | null; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, { type: "SET_DEPOSIT_NUMBER"; value: number; } | { type: "CHECK_STATUS"; } | { type: "COMPUTE_ETH_PROOF"; } | { type: "BUILD_MINT_TX"; } | { type: "SUBMIT_MINT_TX"; } | { type: "RESET"; }, Record<string, import("xstate").AnyActorRef>, import("xstate").StateValue, string, unknown, any, any>, { type: "SET_DEPOSIT_NUMBER"; value: number; } | { type: "CHECK_STATUS"; } | { type: "COMPUTE_ETH_PROOF"; } | { type: "BUILD_MINT_TX"; } | { type: "SUBMIT_MINT_TX"; } | { type: "RESET"; }, import("xstate").AnyEventObject>; }) => { depositBlockNumber: number; ethStateTopic$: Observable<{ latest_finality_block_number: number; latest_finality_slot: number; }>; bridgeStateTopic$: Observable<{ stage_name: import("node_modules/@nori-zk/pts-types/build/public/src/index.js").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; }; }>; bridgeTimingsTopic$: Observable<{ message_type: "TransitionTiming"; extension: import("node_modules/@nori-zk/pts-types/build/public/src/index.js").KeyTransitionStageEstimatedTransitionTime; datetime_iso: string; topic: "timings.notices.transition"; }>; }; readonly onSnapshot: { readonly actions: import("xstate").ActionFunction<{ activeDepositNumber: number | null; depositMintTx: string | null; computedEthProof: string | null; processingStatus: ObservableValue<ReturnType<typeof getDepositProcessingStatus$>> | null; canComputeStatus: ObservableValue<ReturnType<typeof getCanComputeEthProof$>> | null; canMintStatus: ObservableValue<ReturnType<typeof getCanMint$>> | null; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, import("xstate").SnapshotEvent<import("xstate").ObservableSnapshot<{ time_remaining_sec: number; elapsed_sec: number; deposit_processing_status: import("../rx/deposit.js").BridgeDepositProcessingStatus; deposit_block_number: number; stage_name: import("node_modules/@nori-zk/pts-types/build/public/src/index.js").KeyTransitionStageMessageTypes; input_slot: number; input_block_number: number; output_slot: number; output_block_number: number; last_finalized_job: "unknown" | { input_slot: number; input_block_number: number; output_slot: number; output_block_number: number; }; }, { depositBlockNumber: number; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }>>, { type: "SET_DEPOSIT_NUMBER"; value: number; } | { type: "CHECK_STATUS"; } | { type: "COMPUTE_ETH_PROOF"; } | { type: "BUILD_MINT_TX"; } | { type: "SUBMIT_MINT_TX"; } | { type: "RESET"; }, undefined, import("xstate").Values<{ depositProcessingStatusActor: { src: "depositProcessingStatusActor"; logic: import("xstate").ObservableActorLogic<{ time_remaining_sec: number; elapsed_sec: number; deposit_processing_status: import("../rx/deposit.js").BridgeDepositProcessingStatus; deposit_block_number: number; stage_name: import("node_modules/@nori-zk/pts-types/build/public/src/index.js").KeyTransitionStageMessageTypes; input_slot: number; input_block_number: number; output_slot: number; output_block_number: number; last_finalized_job: "unknown" | { input_slot: number; input_block_number: number; output_slot: number; output_block_number: number; }; }, { depositBlockNumber: number; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, import("xstate").EventObject>; id: string; }; canComputeEthProofActor: { src: "canComputeEthProofActor"; logic: import("xstate").ObservableActorLogic<import("../rx/deposit.js").BridgeDepositProcessingStatus.MissedMintingOpportunity | "Waiting" | "CanCompute", { depositBlockNumber: number; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, import("xstate").EventObject>; id: string; }; canMintActor: { src: "canMintActor"; logic: import("xstate").ObservableActorLogic<import("../rx/deposit.js").BridgeDepositProcessingStatus.ReadyToMint | import("../rx/deposit.js").BridgeDepositProcessingStatus.MissedMintingOpportunity | "Waiting", { depositBlockNumber: number; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, import("xstate").EventObject>; id: string; }; computeEthProofService: { src: "computeEthProofService"; logic: import("xstate").PromiseActorLogic<string, { depositBlockNumber: number; }, import("xstate").EventObject>; id: string; }; buildMintTxService: { src: "buildMintTxService"; logic: import("xstate").PromiseActorLogic<string, { depositBlockNumber: number; ethProof: string; }, import("xstate").EventObject>; id: string; }; submitMintTxService: { src: "submitMintTxService"; logic: import("xstate").PromiseActorLogic<void, { mintTx: string; }, import("xstate").EventObject>; id: string; }; }>, never, never, never, never>; }; }, { readonly id: "canComputeEthProof"; readonly src: "canComputeEthProofActor"; readonly input: ({ context }: { context: { activeDepositNumber: number | null; depositMintTx: string | null; computedEthProof: string | null; processingStatus: ObservableValue<ReturnType<typeof getDepositProcessingStatus$>> | null; canComputeStatus: ObservableValue<ReturnType<typeof getCanComputeEthProof$>> | null; canMintStatus: ObservableValue<ReturnType<typeof getCanMint$>> | null; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }; event: { type: "SET_DEPOSIT_NUMBER"; value: number; } | { type: "CHECK_STATUS"; } | { type: "COMPUTE_ETH_PROOF"; } | { type: "BUILD_MINT_TX"; } | { type: "SUBMIT_MINT_TX"; } | { type: "RESET"; }; self: import("xstate").ActorRef<import("xstate").MachineSnapshot<{ activeDepositNumber: number | null; depositMintTx: string | null; computedEthProof: string | null; processingStatus: ObservableValue<ReturnType<typeof getDepositProcessingStatus$>> | null; canComputeStatus: ObservableValue<ReturnType<typeof getCanComputeEthProof$>> | null; canMintStatus: ObservableValue<ReturnType<typeof getCanMint$>> | null; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, { type: "SET_DEPOSIT_NUMBER"; value: number; } | { type: "CHECK_STATUS"; } | { type: "COMPUTE_ETH_PROOF"; } | { type: "BUILD_MINT_TX"; } | { type: "SUBMIT_MINT_TX"; } | { type: "RESET"; }, Record<string, import("xstate").AnyActorRef>, import("xstate").StateValue, string, unknown, any, any>, { type: "SET_DEPOSIT_NUMBER"; value: number; } | { type: "CHECK_STATUS"; } | { type: "COMPUTE_ETH_PROOF"; } | { type: "BUILD_MINT_TX"; } | { type: "SUBMIT_MINT_TX"; } | { type: "RESET"; }, import("xstate").AnyEventObject>; }) => { depositBlockNumber: number; ethStateTopic$: Observable<{ latest_finality_block_number: number; latest_finality_slot: number; }>; bridgeStateTopic$: Observable<{ stage_name: import("node_modules/@nori-zk/pts-types/build/public/src/index.js").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; }; }>; bridgeTimingsTopic$: Observable<{ message_type: "TransitionTiming"; extension: import("node_modules/@nori-zk/pts-types/build/public/src/index.js").KeyTransitionStageEstimatedTransitionTime; datetime_iso: string; topic: "timings.notices.transition"; }>; }; readonly onSnapshot: { readonly actions: import("xstate").ActionFunction<{ activeDepositNumber: number | null; depositMintTx: string | null; computedEthProof: string | null; processingStatus: ObservableValue<ReturnType<typeof getDepositProcessingStatus$>> | null; canComputeStatus: ObservableValue<ReturnType<typeof getCanComputeEthProof$>> | null; canMintStatus: ObservableValue<ReturnType<typeof getCanMint$>> | null; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, import("xstate").SnapshotEvent<import("xstate").ObservableSnapshot<import("../rx/deposit.js").BridgeDepositProcessingStatus.MissedMintingOpportunity | "Waiting" | "CanCompute", { depositBlockNumber: number; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }>>, { type: "SET_DEPOSIT_NUMBER"; value: number; } | { type: "CHECK_STATUS"; } | { type: "COMPUTE_ETH_PROOF"; } | { type: "BUILD_MINT_TX"; } | { type: "SUBMIT_MINT_TX"; } | { type: "RESET"; }, undefined, import("xstate").Values<{ depositProcessingStatusActor: { src: "depositProcessingStatusActor"; logic: import("xstate").ObservableActorLogic<{ time_remaining_sec: number; elapsed_sec: number; deposit_processing_status: import("../rx/deposit.js").BridgeDepositProcessingStatus; deposit_block_number: number; stage_name: import("node_modules/@nori-zk/pts-types/build/public/src/index.js").KeyTransitionStageMessageTypes; input_slot: number; input_block_number: number; output_slot: number; output_block_number: number; last_finalized_job: "unknown" | { input_slot: number; input_block_number: number; output_slot: number; output_block_number: number; }; }, { depositBlockNumber: number; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, import("xstate").EventObject>; id: string; }; canComputeEthProofActor: { src: "canComputeEthProofActor"; logic: import("xstate").ObservableActorLogic<import("../rx/deposit.js").BridgeDepositProcessingStatus.MissedMintingOpportunity | "Waiting" | "CanCompute", { depositBlockNumber: number; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, import("xstate").EventObject>; id: string; }; canMintActor: { src: "canMintActor"; logic: import("xstate").ObservableActorLogic<import("../rx/deposit.js").BridgeDepositProcessingStatus.ReadyToMint | import("../rx/deposit.js").BridgeDepositProcessingStatus.MissedMintingOpportunity | "Waiting", { depositBlockNumber: number; ethStateTopic$: ReturnType<typeof getEthStateTopic$>; bridgeStateTopic$: ReturnType<typeof getBridgeStateTopic$>; bridgeTimingsTopic$: ReturnType<typeof getBridgeTimingsTopic$>; }, import("xstate").EventObject>; id: string; }; computeEthProofService: { src: "computeEthProofService"; logic: import("xstate").PromiseActorLogic<string, { depositBlockNumber: number; }, import("xstate").EventObject>; id: string; }; buildMintTxService: { src: "buildMintTxService"; logic: import("xstate").PromiseActorLogic<string, { depositBlockNumber: number; ethProof: string; }, import("xstate").EventObject>; id: string; }; submitMintTxService: { src: "submitMintTxService"; logic: import("xstate").PromiseActorLogic<void, { mintTx: string; }, import("xstate").EventObject>;