Skip to main content

chio_settle/channel/
mod.rs

1mod amount;
2mod close;
3mod dispute;
4mod funding;
5mod lifecycle;
6mod open;
7mod projection;
8mod rail;
9mod replay;
10mod reservation;
11mod signed;
12mod state;
13mod terminal;
14mod terminal_outcome;
15mod validation;
16
17pub use chio_core::web3::trust_profile::Web3FinalityMode;
18
19pub use amount::*;
20pub use close::*;
21pub use dispute::*;
22pub use funding::*;
23pub use lifecycle::*;
24pub use open::*;
25pub use projection::*;
26pub use rail::*;
27pub use replay::*;
28pub use reservation::*;
29pub use signed::*;
30pub use state::*;
31pub use terminal::*;
32pub use terminal_outcome::*;
33
34#[cfg(test)]
35mod tests;
36
37#[derive(Debug, thiserror::Error, Clone, PartialEq, Eq)]
38pub enum ChannelError {
39    #[error("invalid channel field `{0}`")]
40    InvalidField(&'static str),
41    #[error("channel arithmetic overflow")]
42    ArithmeticOverflow,
43    #[error("channel amount conversion is not exact")]
44    InexactAmount,
45    #[error("channel authority verification failed")]
46    AuthorityVerification,
47    #[error("illegal channel lifecycle transition")]
48    IllegalTransition,
49    #[error("channel canonicalization failed: {0}")]
50    Canonicalization(String),
51}