Update programs using simple error mapping to use CustomError

This commit is contained in:
Tyera Eulberg 2019-03-11 14:50:31 -06:00 committed by Greg Fitzgerald
parent db5370c5df
commit 1a9ef37251
6 changed files with 12 additions and 8 deletions

1
Cargo.lock generated
View File

@ -2327,6 +2327,7 @@ dependencies = [
"bincode 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-runtime 0.12.0",
"solana-sdk 0.12.0",
]

View File

@ -5,7 +5,7 @@ use log::*;
use solana_sdk::account::KeyedAccount;
use solana_sdk::native_program::ProgramError;
use solana_sdk::pubkey::Pubkey;
use solana_sdk::solana_entrypoint;
use solana_sdk::{custom_error, solana_entrypoint};
solana_entrypoint!(entrypoint);
fn entrypoint(
@ -18,5 +18,6 @@ fn entrypoint(
trace!("process_instruction: {:?}", data);
trace!("keyed_accounts: {:?}", keyed_accounts);
process_instruction(program_id, keyed_accounts, data).map_err(|_| ProgramError::GenericError)
process_instruction(program_id, keyed_accounts, data)
.map_err(|e| ProgramError::CustomError(custom_error!(e)))
}

View File

@ -12,6 +12,7 @@ edition = "2018"
bincode = "1.1.2"
log = "0.4.2"
serde = "1.0.89"
serde_derive = "1.0.89"
solana-sdk = { path = "../../sdk", version = "0.12.0" }
[dev-dependencies]

View File

@ -1,5 +1,7 @@
use log::*;
use serde_derive::Serialize;
use solana_sdk::account::KeyedAccount;
use solana_sdk::custom_error;
use solana_sdk::native_program::ProgramError;
use solana_sdk::pubkey::Pubkey;
use solana_sdk::system_instruction::SystemInstruction;
@ -8,7 +10,7 @@ use solana_sdk::system_program;
const FROM_ACCOUNT_INDEX: usize = 0;
const TO_ACCOUNT_INDEX: usize = 1;
#[derive(Debug, Clone, PartialEq)]
#[derive(Serialize, Debug, Clone, PartialEq)]
enum SystemError {
AccountAlreadyInUse,
ResultWithNegativeLamports,
@ -96,11 +98,10 @@ pub fn entrypoint(
program_id,
} => create_system_account(keyed_accounts, lamports, space, &program_id).map_err(|e| {
match e {
SystemError::AccountAlreadyInUse => ProgramError::InvalidArgument,
SystemError::ResultWithNegativeLamports => {
ProgramError::ResultWithNegativeLamports
}
SystemError::SourceNotSystemAccount => ProgramError::InvalidArgument,
e => ProgramError::CustomError(custom_error!(e)),
}
}),
SystemInstruction::Assign { program_id } => {

View File

@ -2,7 +2,7 @@ use log::*;
use solana_sdk::account::KeyedAccount;
use solana_sdk::native_program::ProgramError;
use solana_sdk::pubkey::Pubkey;
use solana_sdk::solana_entrypoint;
use solana_sdk::{custom_error, solana_entrypoint};
mod token_program;
@ -17,6 +17,6 @@ fn entrypoint(
token_program::TokenProgram::process(program_id, info, input).map_err(|err| {
error!("error: {:?}", err);
ProgramError::GenericError
ProgramError::CustomError(custom_error!(err))
})
}

View File

@ -5,7 +5,7 @@ use solana_sdk::account::KeyedAccount;
use solana_sdk::pubkey::Pubkey;
use std;
#[derive(Debug, PartialEq)]
#[derive(Serialize, Debug, PartialEq)]
pub enum Error {
InvalidArgument,
InsufficentFunds,