@@ -25,7 +25,7 @@ pub enum MyError {
|
||||
}
|
||||
impl From<MyError> for ProgramError {
|
||||
fn from(e: MyError) -> Self {
|
||||
ProgramError::CustomError(e as u32)
|
||||
ProgramError::Custom(e as u32)
|
||||
}
|
||||
}
|
||||
impl<T> DecodeError<T> for MyError {
|
||||
|
@@ -189,7 +189,7 @@ mod bpf {
|
||||
let result = bank_client.send_instruction(&mint_keypair, instruction);
|
||||
assert_eq!(
|
||||
result.unwrap_err().unwrap(),
|
||||
TransactionError::InstructionError(0, InstructionError::CustomError(42))
|
||||
TransactionError::InstructionError(0, InstructionError::Custom(42))
|
||||
);
|
||||
|
||||
let instruction = Instruction::new(program_id, &4u8, account_metas.clone());
|
||||
@@ -398,14 +398,14 @@ mod bpf {
|
||||
let result = bank_client.send_instruction(&mint_keypair, instruction);
|
||||
assert_eq!(
|
||||
result.unwrap_err().unwrap(),
|
||||
TransactionError::InstructionError(0, InstructionError::CustomError(0))
|
||||
TransactionError::InstructionError(0, InstructionError::Custom(0))
|
||||
);
|
||||
|
||||
let instruction = Instruction::new(program_id, &4u8, account_metas.clone());
|
||||
let result = bank_client.send_instruction(&mint_keypair, instruction);
|
||||
assert_eq!(
|
||||
result.unwrap_err().unwrap(),
|
||||
TransactionError::InstructionError(0, InstructionError::CustomError(42))
|
||||
TransactionError::InstructionError(0, InstructionError::Custom(42))
|
||||
);
|
||||
|
||||
let instruction = Instruction::new(program_id, &6u8, account_metas.clone());
|
||||
|
@@ -426,7 +426,7 @@ mod tests {
|
||||
.unwrap(),
|
||||
TransactionError::InstructionError(
|
||||
0,
|
||||
InstructionError::CustomError(BudgetError::DestinationMissing as u32)
|
||||
InstructionError::Custom(BudgetError::DestinationMissing as u32)
|
||||
)
|
||||
);
|
||||
assert_eq!(bank_client.get_balance(&alice_pubkey).unwrap(), 1);
|
||||
|
@@ -13,5 +13,5 @@ fn process_instruction(
|
||||
_keyed_accounts: &[KeyedAccount],
|
||||
_data: &[u8],
|
||||
) -> Result<(), InstructionError> {
|
||||
Err(InstructionError::CustomError(0))
|
||||
Err(InstructionError::Custom(0))
|
||||
}
|
||||
|
@@ -23,6 +23,6 @@ fn test_program_native_failure() {
|
||||
.send_instruction(&alice_keypair, instruction)
|
||||
.unwrap_err()
|
||||
.unwrap(),
|
||||
TransactionError::InstructionError(0, InstructionError::CustomError(0))
|
||||
TransactionError::InstructionError(0, InstructionError::Custom(0))
|
||||
);
|
||||
}
|
||||
|
4
programs/librapay/Cargo.lock
generated
4
programs/librapay/Cargo.lock
generated
@@ -2616,7 +2616,6 @@ dependencies = [
|
||||
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-logger 1.0.0",
|
||||
"solana-sdk 1.0.0",
|
||||
]
|
||||
|
||||
@@ -2745,7 +2744,7 @@ dependencies = [
|
||||
"rayon 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-bpf-loader-program 1.0.0",
|
||||
"solana-config-program 1.0.0",
|
||||
"solana-logger 1.0.0",
|
||||
"solana-measure 1.0.0",
|
||||
"solana-metrics 1.0.0",
|
||||
@@ -2844,7 +2843,6 @@ dependencies = [
|
||||
"num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-logger 1.0.0",
|
||||
"solana-metrics 1.0.0",
|
||||
"solana-sdk 1.0.0",
|
||||
"thiserror 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@@ -38,10 +38,10 @@ pub fn map_failure_error(err: failure::Error) -> InstructionError {
|
||||
}
|
||||
|
||||
pub fn map_err_vm_status(status: VMStatus) -> InstructionError {
|
||||
// Attempt to map the StatusCode (repr(u64)) to a u32 for CustomError.
|
||||
// Attempt to map the StatusCode (repr(u64)) to a u32 for Custom.
|
||||
// The only defined StatusCode that fails is StatusCode::UNKNOWN_ERROR
|
||||
match <StatusCode as Into<u64>>::into(status.major_status).try_into() {
|
||||
Ok(u) => InstructionError::CustomError(u),
|
||||
Ok(u) => InstructionError::Custom(u),
|
||||
Err(_) => InstructionError::InvalidError,
|
||||
}
|
||||
}
|
||||
|
@@ -641,7 +641,7 @@ mod tests {
|
||||
"main".to_string(),
|
||||
vec![],
|
||||
),
|
||||
Err(InstructionError::CustomError(4002))
|
||||
Err(InstructionError::Custom(4002))
|
||||
);
|
||||
}
|
||||
|
||||
|
@@ -760,7 +760,7 @@ mod tests {
|
||||
where
|
||||
T: 'static + std::error::Error + DecodeError<T> + FromPrimitive,
|
||||
{
|
||||
if let InstructionError::CustomError(code) = err {
|
||||
if let InstructionError::Custom(code) = err {
|
||||
let specific_error: T = T::decode_custom_error_to_enum(code).unwrap();
|
||||
format!(
|
||||
"{:?}: {}::{:?} - {}",
|
||||
@@ -774,7 +774,7 @@ mod tests {
|
||||
}
|
||||
}
|
||||
assert_eq!(
|
||||
"CustomError(0): StakeError::NoCreditsToRedeem - not enough credits to redeem",
|
||||
"Custom(0): StakeError::NoCreditsToRedeem - not enough credits to redeem",
|
||||
pretty_err::<StakeError>(StakeError::NoCreditsToRedeem.into())
|
||||
)
|
||||
}
|
||||
|
@@ -194,7 +194,7 @@ impl<'a> StorageAccount<'a> {
|
||||
|
||||
if segment_index >= current_segment {
|
||||
// attempt to submit proof for unconfirmed segment
|
||||
return Err(InstructionError::CustomError(
|
||||
return Err(InstructionError::Custom(
|
||||
StorageError::InvalidSegment as u32,
|
||||
));
|
||||
}
|
||||
@@ -207,7 +207,7 @@ impl<'a> StorageAccount<'a> {
|
||||
// TODO check that this blockhash is valid and recent
|
||||
// if !is_valid(&blockhash) {
|
||||
// // proof isn't using a recent blockhash
|
||||
// return Err(InstructionError::CustomError(InvalidBlockhash as u32));
|
||||
// return Err(InstructionError::Custom(InvalidBlockhash as u32));
|
||||
// }
|
||||
|
||||
let proof = Proof {
|
||||
@@ -220,13 +220,13 @@ impl<'a> StorageAccount<'a> {
|
||||
let segment_proofs = proofs.entry(current_segment).or_default();
|
||||
if segment_proofs.contains(&proof) {
|
||||
// do not accept duplicate proofs
|
||||
return Err(InstructionError::CustomError(
|
||||
return Err(InstructionError::Custom(
|
||||
StorageError::DuplicateProof as u32,
|
||||
));
|
||||
}
|
||||
if segment_proofs.len() >= MAX_PROOFS_PER_SEGMENT {
|
||||
// do not accept more than MAX_PROOFS_PER_SEGMENT
|
||||
return Err(InstructionError::CustomError(
|
||||
return Err(InstructionError::Custom(
|
||||
StorageError::ProofLimitReached as u32,
|
||||
));
|
||||
}
|
||||
@@ -255,7 +255,7 @@ impl<'a> StorageAccount<'a> {
|
||||
{
|
||||
debug!("advertise new segment: {} orig: {}", segment, clock.segment);
|
||||
if segment < *state_segment || segment > clock.segment {
|
||||
return Err(InstructionError::CustomError(
|
||||
return Err(InstructionError::Custom(
|
||||
StorageError::InvalidSegment as u32,
|
||||
));
|
||||
}
|
||||
@@ -290,7 +290,7 @@ impl<'a> StorageAccount<'a> {
|
||||
} = &mut storage_contract
|
||||
{
|
||||
if segment_index > *state_segment {
|
||||
return Err(InstructionError::CustomError(
|
||||
return Err(InstructionError::Custom(
|
||||
StorageError::InvalidSegment as u32,
|
||||
));
|
||||
}
|
||||
@@ -329,7 +329,7 @@ impl<'a> StorageAccount<'a> {
|
||||
|
||||
if accounts.len() != proofs_per_account.len() {
|
||||
// don't have all the accounts to validate the proofs_per_account against
|
||||
return Err(InstructionError::CustomError(
|
||||
return Err(InstructionError::Custom(
|
||||
StorageError::InvalidProofMask as u32,
|
||||
));
|
||||
}
|
||||
@@ -380,9 +380,7 @@ impl<'a> StorageAccount<'a> {
|
||||
} = &mut storage_contract
|
||||
{
|
||||
if owner.id != *account_owner {
|
||||
return Err(InstructionError::CustomError(
|
||||
StorageError::InvalidOwner as u32,
|
||||
));
|
||||
return Err(InstructionError::Custom(StorageError::InvalidOwner as u32));
|
||||
}
|
||||
|
||||
credits.update_epoch(clock.epoch);
|
||||
@@ -397,9 +395,7 @@ impl<'a> StorageAccount<'a> {
|
||||
} = &mut storage_contract
|
||||
{
|
||||
if owner.id != *account_owner {
|
||||
return Err(InstructionError::CustomError(
|
||||
StorageError::InvalidOwner as u32,
|
||||
));
|
||||
return Err(InstructionError::Custom(StorageError::InvalidOwner as u32));
|
||||
}
|
||||
credits.update_epoch(clock.epoch);
|
||||
let (num_validations, _total_proofs) = count_valid_proofs(&validations);
|
||||
@@ -422,7 +418,7 @@ fn check_redeemable(
|
||||
) -> Result<(), InstructionError> {
|
||||
let rewards = (credits.redeemable as f64 * storage_point_value) as u64;
|
||||
if rewards_pool.lamports()? < rewards {
|
||||
Err(InstructionError::CustomError(
|
||||
Err(InstructionError::Custom(
|
||||
StorageError::RewardPoolDepleted as u32,
|
||||
))
|
||||
} else {
|
||||
@@ -629,7 +625,7 @@ mod tests {
|
||||
keyed_pool_account.account.borrow_mut().lamports = 0;
|
||||
assert_eq!(
|
||||
check_redeemable(&mut credits, 1.0, &keyed_pool_account, &mut owner),
|
||||
Err(InstructionError::CustomError(
|
||||
Err(InstructionError::Custom(
|
||||
StorageError::RewardPoolDepleted as u32,
|
||||
))
|
||||
);
|
||||
|
@@ -22,7 +22,7 @@ pub enum VestError {
|
||||
|
||||
impl From<VestError> for InstructionError {
|
||||
fn from(e: VestError) -> Self {
|
||||
InstructionError::CustomError(e as u32)
|
||||
InstructionError::Custom(e as u32)
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -370,7 +370,7 @@ mod tests {
|
||||
where
|
||||
T: 'static + std::error::Error + DecodeError<T> + FromPrimitive,
|
||||
{
|
||||
if let InstructionError::CustomError(code) = err {
|
||||
if let InstructionError::Custom(code) = err {
|
||||
let specific_error: T = T::decode_custom_error_to_enum(code).unwrap();
|
||||
format!(
|
||||
"{:?}: {}::{:?} - {}",
|
||||
@@ -384,7 +384,7 @@ mod tests {
|
||||
}
|
||||
}
|
||||
assert_eq!(
|
||||
"CustomError(0): VoteError::VoteTooOld - vote already recorded or not in slot hashes history",
|
||||
"Custom(0): VoteError::VoteTooOld - vote already recorded or not in slot hashes history",
|
||||
pretty_err::<VoteError>(VoteError::VoteTooOld.into())
|
||||
)
|
||||
}
|
||||
|
Reference in New Issue
Block a user