1
0
mirror of synced 2025-01-12 08:44:21 +00:00

19 lines
521 B
Rust

use std::collections::HashSet;
use consensus_engine::{Block, NewView, TimeoutQc};
// State transtitions that will be picked randomly
#[derive(Clone, Debug)]
pub enum Transition {
Nop,
ReceiveSafeBlock(Block),
ReceiveUnsafeBlock(Block),
ApproveBlock(Block),
ApprovePastBlock(Block),
LocalTimeout,
ReceiveTimeoutQcForRecentView(TimeoutQc),
ReceiveTimeoutQcForOldView(TimeoutQc),
ApproveNewViewWithLatestTimeoutQc(TimeoutQc, HashSet<NewView>),
//TODO: add more corner transitions
}