polymesh_api_ink/
error.rs1use alloc::{format, string::String};
2
3use codec::{Decode, Encode};
4
5#[derive(Debug, Encode, Decode)]
6#[cfg_attr(feature = "std", derive(scale_info::TypeInfo))]
7pub enum Error {
8 ParityScaleCodec(String),
9 Generic { status_code: u32 },
10 ExtrinsicCallFailed { error_msg: String },
11}
12
13impl From<codec::Error> for Error {
14 fn from(err: codec::Error) -> Self {
15 Self::ParityScaleCodec(format!("{err:?}"))
16 }
17}
18
19impl ink::env::chain_extension::FromStatusCode for Error {
20 fn from_status_code(status_code: u32) -> Result<(), Self> {
21 match status_code {
22 0 => Ok(()),
23 _ => Err(Self::Generic { status_code }),
24 }
25 }
26}
27
28pub type Result<T, E = Error> = core::result::Result<T, E>;