Skip to main content

cosm_tome/modules/cosmwasm/
error.rs

1use thiserror::Error;
2
3use crate::{
4    chain::error::ChainError,
5    modules::{auth::error::AccountError, tx::error::TxError},
6};
7
8pub use serde_json::Error as SerdeJsonError;
9
10#[derive(Error, Debug)]
11pub enum CosmwasmError {
12    #[error("cannot serialize inputted msg as json")]
13    JsonSerialize { source: SerdeJsonError },
14
15    #[error("unsupported instantiate permission AccessType: {i:?}")]
16    AccessType { i: i32 },
17
18    #[error("missing event from chain response")]
19    MissingEvent,
20
21    #[error(transparent)]
22    TxError(#[from] TxError),
23
24    #[error(transparent)]
25    AccountError(#[from] AccountError),
26
27    #[error(transparent)]
28    ChainError(#[from] ChainError),
29}
30
31impl CosmwasmError {
32    pub(crate) fn json(e: serde_json::Error) -> CosmwasmError {
33        CosmwasmError::JsonSerialize { source: e }
34    }
35}