node/transition_frontier/genesis_effectful/
transition_frontier_genesis_effectful_actions.rs1use std::sync::Arc;
2
3use mina_p2p_messages::v2::{ProverExtendBlockchainInputStableV2, StateHash};
4use openmina_core::ActionEvent;
5use serde::{Deserialize, Serialize};
6
7use crate::transition_frontier::genesis::GenesisConfig;
8
9pub type TransitionFrontierGenesisEffectfulActionWithMeta =
10 redux::ActionWithMeta<TransitionFrontierGenesisEffectfulAction>;
11pub type TransitionFrontierGenesisEffectfulActionWithMetaRef<'a> =
12 redux::ActionWithMeta<&'a TransitionFrontierGenesisEffectfulAction>;
13
14#[derive(derive_more::From, Serialize, Deserialize, Debug, Clone, ActionEvent)]
15#[action_event(level = trace)]
16pub enum TransitionFrontierGenesisEffectfulAction {
17 LedgerLoadInit {
18 config: Arc<GenesisConfig>,
19 },
20 ProveInit {
21 block_hash: StateHash,
22 input: Box<ProverExtendBlockchainInputStableV2>,
23 },
24}
25
26impl redux::EnablingCondition<crate::State> for TransitionFrontierGenesisEffectfulAction {
27 fn is_enabled(&self, _state: &crate::State, _time: redux::Timestamp) -> bool {
28 true
29 }
30}
31
32impl From<TransitionFrontierGenesisEffectfulAction> for crate::Action {
33 fn from(value: TransitionFrontierGenesisEffectfulAction) -> Self {
34 crate::transition_frontier::TransitionFrontierAction::GenesisEffect(value).into()
35 }
36}