node/block_producer_effectful/
block_producer_effectful_actions.rs

1use super::vrf_evaluator_effectful::BlockProducerVrfEvaluatorEffectfulAction;
2use crate::block_producer::{BlockProducerWonSlot, BlockProducerWonSlotDiscardReason};
3use openmina_core::{block::ArcBlockWithHash, ActionEvent};
4use serde::{Deserialize, Serialize};
5
6#[derive(Serialize, Deserialize, Debug, Clone, ActionEvent)]
7pub enum BlockProducerEffectfulAction {
8    VrfEvaluator(BlockProducerVrfEvaluatorEffectfulAction),
9    WonSlot {
10        won_slot: BlockProducerWonSlot,
11    },
12    WonSlotDiscard {
13        reason: BlockProducerWonSlotDiscardReason,
14    },
15    StagedLedgerDiffCreateInit,
16    StagedLedgerDiffCreateSuccess,
17    BlockUnprovenBuild,
18    BlockProveInit,
19    BlockProveSuccess,
20    BlockProduced {
21        block: ArcBlockWithHash,
22    },
23}
24
25impl redux::EnablingCondition<crate::State> for BlockProducerEffectfulAction {
26    fn is_enabled(&self, _state: &crate::State, _time: redux::Timestamp) -> bool {
27        true
28    }
29}