diff --git a/interface/Cargo.toml b/interface/Cargo.toml index 7394eb84..5399e272 100644 --- a/interface/Cargo.toml +++ b/interface/Cargo.toml @@ -27,7 +27,7 @@ solana-cpi = { version = "^2.1", optional = true } solana-frozen-abi = { version = "^2.1", features = ["frozen-abi"], optional = true } solana-frozen-abi-macro = { version = "^2.1", features = ["frozen-abi"], optional = true } solana-instruction = "^2.1" -solana-program-error = { version = "^2.1", optional = true } +solana-program-error = { version = "^2.1" } solana-pubkey = { version = "^2.1", default-features = false } solana-system-interface = "^1.0" solana-sysvar-id = "2.1" @@ -49,7 +49,6 @@ rustdoc-args = ["--cfg=docsrs"] [features] bincode = [ "dep:solana-cpi", - "dep:solana-program-error", "solana-instruction/bincode", "solana-instruction/serde", "solana-system-interface/bincode", diff --git a/interface/src/error.rs b/interface/src/error.rs index 89f14179..c4d97e23 100644 --- a/interface/src/error.rs +++ b/interface/src/error.rs @@ -1,6 +1,7 @@ use { num_traits::{FromPrimitive, ToPrimitive}, solana_decode_error::DecodeError, + solana_program_error::ProgramError, }; /// Reasons the Stake might have had an error. @@ -68,6 +69,12 @@ pub enum StakeError { EpochRewardsActive, } +impl From for ProgramError { + fn from(e: StakeError) -> Self { + ProgramError::Custom(e as u32) + } +} + impl FromPrimitive for StakeError { #[inline] fn from_i64(n: i64) -> Option {