1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
use ceres_std::{String, Vec};
use snafu::Snafu;
#[derive(Snafu, Debug)]
pub enum Error {
OutOfBounds,
DecodeRuntimeValueFailed,
OutputBufferTooSmall,
#[snafu(display("flags: {}, data: {:?}", flags, data))]
ReturnData { flags: u32, data: Vec<u8> },
ParseWasmModuleFailed,
#[snafu(display("Failed to parse name section {}", error))]
ParseNameSectionFailed { error: String },
CalcuateMemoryLimitFailed,
AllocMemoryFailed,
#[snafu(display("Serialize failed {}", error))]
SerializeFailed {
error: parity_wasm::SerializationError,
},
#[snafu(display("Init module failed {}", error))]
InitModuleFailed { error: ceres_executor::Error },
#[snafu(display("Deploy contract failed {}", error))]
DeployContractFailed { error: ceres_executor::Error },
#[snafu(display("Call contract failed {}", error))]
CallContractFailed { error: ceres_executor::Error },
DecodeSelectorFailed,
DecodeContractFailed,
InvalidArgumentLength,
ParseArgumentFailed,
#[snafu(display("Could not find method {}", name))]
GetMethodFailed { name: String },
CouldNotSetStorage,
GetStorageFailed,
InvalidCodeHash,
#[snafu(display("{}", err))]
Custom { err: &'static str },
InsertContractFailed,
GetContractFailed,
}
impl PartialEq for Error {
fn eq(&self, other: &Self) -> bool {
match self {
Error::SerializeFailed { error: _ } => false,
_ => self.eq(other),
}
}
}
impl Eq for Error {}
pub type Result<T> = core::result::Result<T, Error>;