Custom error decoder (#3783)

automerge
This commit is contained in:
Tyera Eulberg
2019-04-25 11:29:44 -06:00
committed by Grimes
parent b67b0bff05
commit 5a79676b8a
17 changed files with 218 additions and 33 deletions

View File

@ -1,14 +1,29 @@
use crate::instruction::{AccountMeta, Instruction};
use crate::instruction_processor_utils::DecodeError;
use crate::pubkey::Pubkey;
use crate::system_program;
use num_derive::FromPrimitive;
#[derive(Serialize, Debug, Clone, PartialEq)]
#[derive(Serialize, Debug, Clone, PartialEq, FromPrimitive)]
pub enum SystemError {
AccountAlreadyInUse,
ResultWithNegativeLamports,
SourceNotSystemAccount,
}
impl<T> DecodeError<T> for SystemError {
fn type_of(&self) -> &'static str {
"SystemError"
}
}
impl std::fmt::Display for SystemError {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
write!(f, "error")
}
}
impl std::error::Error for SystemError {}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
pub enum SystemInstruction {
/// Create a new account