forked from apfitzge/agave
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathblock_error.rs
40 lines (32 loc) · 1.24 KB
/
block_error.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
use thiserror::Error;
#[derive(Error, Debug, PartialEq, Eq)]
pub enum BlockError {
/// Block did not have enough ticks was not marked full
/// and no shred with is_last was seen.
#[error("incomplete block")]
Incomplete,
/// Block entries hashes must all be valid
#[error("invalid entry hash")]
InvalidEntryHash,
/// Blocks must end in a tick that has been marked as the last tick.
#[error("invalid last tick")]
InvalidLastTick,
/// Blocks can not have missing ticks
/// Usually indicates that the node was interrupted with a more valuable block during
/// production and abandoned it for that more-favorable block. Leader sent data to indicate
/// the end of the block.
#[error("too few ticks")]
TooFewTicks,
/// Blocks can not have extra ticks
#[error("too many ticks")]
TooManyTicks,
/// All ticks must contain the same number of hashes within a block
#[error("invalid tick hash count")]
InvalidTickHashCount,
/// Blocks must end in a tick entry, trailing transaction entries are not allowed to guarantee
/// that each block has the same number of hashes
#[error("trailing entry")]
TrailingEntry,
#[error("duplicate block")]
DuplicateBlock,
}