use thiserror::Error;
use crate::simulation::protocol_sim::GetAmountOutResult;
#[derive(Error, Debug)]
pub enum SimulationError {
#[error("Fatal error: {0}")]
FatalError(String),
#[error("Invalid input: {0}")]
InvalidInput(String, Option<GetAmountOutResult>),
#[error("Recoverable error: {0}")]
RecoverableError(String),
}
#[derive(Debug)]
pub enum TransitionError {
MissingAttribute(String),
DecodeError(String),
InvalidEventType(),
SimulationError(SimulationError),
}
impl From<SimulationError> for TransitionError {
fn from(error: SimulationError) -> Self {
TransitionError::SimulationError(error)
}
}