casper_client/cli/transaction_v1_builder/
error.rs1use core::fmt::{self, Display, Formatter};
2use std::error::Error as StdError;
3
4#[cfg(doc)]
5use super::{TransactionV1, TransactionV1Builder};
6
7#[derive(Clone, Eq, PartialEq, Debug)]
9#[non_exhaustive]
10pub enum TransactionV1BuilderError {
11    MissingInitiatorAddr,
16    MissingChainName,
21    CouldNotSerializeField {
24        field_index: u16,
26    },
27}
28
29impl Display for TransactionV1BuilderError {
30    fn fmt(&self, formatter: &mut Formatter) -> fmt::Result {
31        match self {
32            TransactionV1BuilderError::MissingInitiatorAddr => {
33                write!(
34                    formatter,
35                    "transaction requires account - use `with_account` or `with_secret_key`"
36                )
37            }
38            TransactionV1BuilderError::MissingChainName => {
39                write!(
40                    formatter,
41                    "transaction requires chain name - use `with_chain_name`"
42                )
43            }
44            TransactionV1BuilderError::CouldNotSerializeField { field_index } => {
45                write!(formatter, "Cannot serialize field at index {}", field_index)
46            }
47        }
48    }
49}
50
51impl StdError for TransactionV1BuilderError {}