snarkvm_errors/objects/
block.rs1use crate::objects::TransactionError;
18
19use std::fmt::Debug;
20
21#[derive(Debug, Error)]
22pub enum BlockError {
23 #[error("block already exists {}", _0)]
24 BlockExists(String),
25
26 #[error("{}: {}", _0, _1)]
27 Crate(&'static str, String),
28
29 #[error("{}", _0)]
30 Message(String),
31
32 #[error("{}", _0)]
33 TransactionError(TransactionError),
34
35 #[error("block number {} has not been mined yet", _0)]
36 InvalidBlockNumber(u32),
37
38 #[error("expected block parent: {} got parent: {} ", _0, _1)]
39 InvalidParent(String, String),
40
41 #[error("the given block {} is not a canonical or sidechain block", _0)]
42 IrrelevantBlock(String),
43}
44
45impl From<std::io::Error> for BlockError {
46 fn from(error: std::io::Error) -> Self {
47 BlockError::Crate("std::io", format!("{:?}", error))
48 }
49}
50
51impl From<TransactionError> for BlockError {
52 fn from(error: TransactionError) -> Self {
53 BlockError::TransactionError(error)
54 }
55}