pub mod deposit;
pub mod withdrawal;
pub mod order;
pub mod execute_deposit;
pub mod execute_withdrawal;
pub mod execute_order;
pub mod update_adl;
pub mod position_cut;
pub mod shift;
pub mod execute_shift;
pub use deposit::*;
pub use execute_deposit::*;
pub use execute_order::*;
pub use execute_shift::*;
pub use execute_withdrawal::*;
pub use order::*;
pub use position_cut::*;
pub use shift::*;
pub use update_adl::*;
pub use withdrawal::*;
use crate::CoreError;
pub(crate) struct ModelError(gmsol_model::Error);
impl From<gmsol_model::Error> for ModelError {
fn from(err: gmsol_model::Error) -> Self {
Self(err)
}
}
impl From<ModelError> for anchor_lang::prelude::Error {
fn from(err: ModelError) -> Self {
match err.0 {
gmsol_model::Error::EmptyDeposit => CoreError::EmptyDeposit.into(),
gmsol_model::Error::Solana(err) => err,
core_error => {
crate::msg!("A model error occurred. Error Message: {}", core_error);
CoreError::Model.into()
}
}
}
}