node/block_producer_effectful/
block_producer_effectful_actions.rs1use 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}