Enum casper_types::system::handle_payment::Error [−][src]
#[repr(u8)]
pub enum Error {
Show 33 variants
NotBonded,
TooManyEventsInQueue,
CannotUnbondLastValidator,
SpreadTooHigh,
MultipleRequests,
BondTooSmall,
BondTooLarge,
UnbondTooLarge,
BondTransferFailed,
UnbondTransferFailed,
TimeWentBackwards,
StakesNotFound,
PaymentPurseNotFound,
PaymentPurseKeyUnexpectedType,
PaymentPurseBalanceNotFound,
BondingPurseNotFound,
BondingPurseKeyUnexpectedType,
RefundPurseKeyUnexpectedType,
RewardsPurseNotFound,
RewardsPurseKeyUnexpectedType,
StakesKeyDeserializationFailed,
StakesDeserializationFailed,
SystemFunctionCalledByUserAccount,
InsufficientPaymentForAmountSpent,
FailedTransferToRewardsPurse,
FailedTransferToAccountPurse,
SetRefundPurseCalledOutsidePayment,
GetBalance,
PutKey,
RemoveKey,
Transfer,
ArithmeticOverflow,
RefundPurseIsPaymentPurse,
// some variants omitted
}
Expand description
Errors which can occur while executing the Handle Payment contract.
Variants
The given validator is not bonded.
assert_eq!(0, Error::NotBonded as u8);
There are too many bonding or unbonding attempts already enqueued to allow more.
assert_eq!(1, Error::TooManyEventsInQueue as u8);
At least one validator must remain bonded.
assert_eq!(2, Error::CannotUnbondLastValidator as u8);
Failed to bond or unbond as this would have resulted in exceeding the maximum allowed difference between the largest and smallest stakes.
assert_eq!(3, Error::SpreadTooHigh as u8);
The given validator already has a bond or unbond attempt enqueued.
assert_eq!(4, Error::MultipleRequests as u8);
Attempted to bond with a stake which was too small.
assert_eq!(5, Error::BondTooSmall as u8);
Attempted to bond with a stake which was too large.
assert_eq!(6, Error::BondTooLarge as u8);
Attempted to unbond an amount which was too large.
assert_eq!(7, Error::UnbondTooLarge as u8);
While bonding, the transfer from source purse to the Handle Payment internal purse failed.
assert_eq!(8, Error::BondTransferFailed as u8);
While unbonding, the transfer from the Handle Payment internal purse to the destination purse failed.
assert_eq!(9, Error::UnbondTransferFailed as u8);
Internal error: a BlockTime
was unexpectedly out of sequence.
assert_eq!(10, Error::TimeWentBackwards as u8);
Internal error: stakes were unexpectedly empty.
assert_eq!(11, Error::StakesNotFound as u8);
Internal error: the Handle Payment contract’s payment purse wasn’t found.
assert_eq!(12, Error::PaymentPurseNotFound as u8);
Internal error: the Handle Payment contract’s payment purse key was the wrong type.
assert_eq!(13, Error::PaymentPurseKeyUnexpectedType as u8);
Internal error: couldn’t retrieve the balance for the Handle Payment contract’s payment purse.
assert_eq!(14, Error::PaymentPurseBalanceNotFound as u8);
Internal error: the Handle Payment contract’s bonding purse wasn’t found.
assert_eq!(15, Error::BondingPurseNotFound as u8);
Internal error: the Handle Payment contract’s bonding purse key was the wrong type.
assert_eq!(16, Error::BondingPurseKeyUnexpectedType as u8);
Internal error: the Handle Payment contract’s refund purse key was the wrong type.
assert_eq!(17, Error::RefundPurseKeyUnexpectedType as u8);
Internal error: the Handle Payment contract’s rewards purse wasn’t found.
assert_eq!(18, Error::RewardsPurseNotFound as u8);
Internal error: the Handle Payment contract’s rewards purse key was the wrong type.
assert_eq!(19, Error::RewardsPurseKeyUnexpectedType as u8);
Internal error: failed to deserialize the stake’s key.
assert_eq!(20, Error::StakesKeyDeserializationFailed as u8);
Internal error: failed to deserialize the stake’s balance.
assert_eq!(21, Error::StakesDeserializationFailed as u8);
The invoked Handle Payment function can only be called by system contracts, but was called by a user contract.
assert_eq!(22, Error::SystemFunctionCalledByUserAccount as u8);
Internal error: while finalizing payment, the amount spent exceeded the amount available.
assert_eq!(23, Error::InsufficientPaymentForAmountSpent as u8);
Internal error: while finalizing payment, failed to pay the validators (the transfer from the Handle Payment contract’s payment purse to rewards purse failed).
assert_eq!(24, Error::FailedTransferToRewardsPurse as u8);
Internal error: while finalizing payment, failed to refund the caller’s purse (the transfer from the Handle Payment contract’s payment purse to refund purse or account’s main purse failed).
assert_eq!(25, Error::FailedTransferToAccountPurse as u8);
Handle Payment contract’s “set_refund_purse” method can only be called by the payment code of a deploy, but was called by the session code.
assert_eq!(26, Error::SetRefundPurseCalledOutsidePayment as u8);
Raised when the system is unable to determine purse balance.
assert_eq!(27, Error::GetBalance as u8);
Raised when the system is unable to put named key.
assert_eq!(28, Error::PutKey as u8);
Raised when the system is unable to remove given named key.
assert_eq!(29, Error::RemoveKey as u8);
Failed to transfer funds.
assert_eq!(30, Error::Transfer as u8);
An arithmetic overflow occurred
assert_eq!(31, Error::ArithmeticOverflow as u8);
Refund purse is a payment purse.
Trait Implementations
Returns the length of the Vec<u8>
which would be returned from a successful call to
to_bytes()
or into_bytes()
. The data is not actually serialized, so this call is
relatively cheap. Read more
Auto Trait Implementations
impl RefUnwindSafe for Error
impl UnwindSafe for Error
Blanket Implementations
Mutably borrows from an owned value. Read more
fn fmt_binary(self) -> FmtBinary<Self> where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self> where
Self: Binary,
Causes self
to use its Binary
implementation when Debug
-formatted.
fn fmt_display(self) -> FmtDisplay<Self> where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self> where
Self: Display,
Causes self
to use its Display
implementation when
Debug
-formatted. Read more
fn fmt_lower_exp(self) -> FmtLowerExp<Self> where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self> where
Self: LowerExp,
Causes self
to use its LowerExp
implementation when
Debug
-formatted. Read more
fn fmt_lower_hex(self) -> FmtLowerHex<Self> where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self> where
Self: LowerHex,
Causes self
to use its LowerHex
implementation when
Debug
-formatted. Read more
Causes self
to use its Octal
implementation when Debug
-formatted.
fn fmt_pointer(self) -> FmtPointer<Self> where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self> where
Self: Pointer,
Causes self
to use its Pointer
implementation when
Debug
-formatted. Read more
fn fmt_upper_exp(self) -> FmtUpperExp<Self> where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self> where
Self: UpperExp,
Causes self
to use its UpperExp
implementation when
Debug
-formatted. Read more
fn fmt_upper_hex(self) -> FmtUpperHex<Self> where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self> where
Self: UpperHex,
Causes self
to use its UpperHex
implementation when
Debug
-formatted. Read more
fn pipe_as_ref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: AsRef<T>,
T: 'a,
R: 'a,
fn pipe_as_ref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: AsRef<T>,
T: 'a,
R: 'a,
Pipes a trait borrow into a function that cannot normally be called in suffix position. Read more
fn pipe_as_mut<'a, T, R>(&'a mut self, func: impl FnOnce(&'a mut T) -> R) -> R where
Self: AsMut<T>,
T: 'a,
R: 'a,
fn pipe_as_mut<'a, T, R>(&'a mut self, func: impl FnOnce(&'a mut T) -> R) -> R where
Self: AsMut<T>,
T: 'a,
R: 'a,
Pipes a trait mutable borrow into a function that cannot normally be called in suffix position. Read more
fn pipe_borrow<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Borrow<T>,
T: 'a,
R: 'a,
fn pipe_borrow<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Borrow<T>,
T: 'a,
R: 'a,
Pipes a trait borrow into a function that cannot normally be called in suffix position. Read more
fn pipe_borrow_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: BorrowMut<T>,
T: 'a,
R: 'a,
fn pipe_borrow_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: BorrowMut<T>,
T: 'a,
R: 'a,
Pipes a trait mutable borrow into a function that cannot normally be called in suffix position. Read more
fn pipe_deref<'a, R>(&'a self, func: impl FnOnce(&'a Self::Target) -> R) -> R where
Self: Deref,
R: 'a,
fn pipe_deref<'a, R>(&'a self, func: impl FnOnce(&'a Self::Target) -> R) -> R where
Self: Deref,
R: 'a,
Pipes a dereference into a function that cannot normally be called in suffix position. Read more
fn pipe_deref_mut<'a, R>(
&'a mut self,
func: impl FnOnce(&'a mut Self::Target) -> R
) -> R where
Self: DerefMut,
R: 'a,
fn pipe_deref_mut<'a, R>(
&'a mut self,
func: impl FnOnce(&'a mut Self::Target) -> R
) -> R where
Self: DerefMut,
R: 'a,
Pipes a mutable dereference into a function that cannot normally be called in suffix position. Read more
Pipes a reference into a function that cannot ordinarily be called in suffix position. Read more
Provides immutable access for inspection. Read more
Calls tap
in debug builds, and does nothing in release builds.
Provides mutable access for modification. Read more
fn tap_mut_dbg<F, R>(self, func: F) -> Self where
F: FnOnce(&mut Self) -> R,
fn tap_mut_dbg<F, R>(self, func: F) -> Self where
F: FnOnce(&mut Self) -> R,
Calls tap_mut
in debug builds, and does nothing in release builds.
impl<T, U> TapAsRef<U> for T where
U: ?Sized,
impl<T, U> TapAsRef<U> for T where
U: ?Sized,
Provides immutable access to the reference for inspection.
fn tap_ref_dbg<F, R>(self, func: F) -> Self where
Self: AsRef<T>,
F: FnOnce(&T) -> R,
fn tap_ref_dbg<F, R>(self, func: F) -> Self where
Self: AsRef<T>,
F: FnOnce(&T) -> R,
Calls tap_ref
in debug builds, and does nothing in release builds.
fn tap_ref_mut<F, R>(self, func: F) -> Self where
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
fn tap_ref_mut<F, R>(self, func: F) -> Self where
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
Provides mutable access to the reference for modification.
fn tap_ref_mut_dbg<F, R>(self, func: F) -> Self where
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
fn tap_ref_mut_dbg<F, R>(self, func: F) -> Self where
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
Calls tap_ref_mut
in debug builds, and does nothing in release builds.
impl<T, U> TapBorrow<U> for T where
U: ?Sized,
impl<T, U> TapBorrow<U> for T where
U: ?Sized,
fn tap_borrow<F, R>(self, func: F) -> Self where
Self: Borrow<T>,
F: FnOnce(&T) -> R,
fn tap_borrow<F, R>(self, func: F) -> Self where
Self: Borrow<T>,
F: FnOnce(&T) -> R,
Provides immutable access to the borrow for inspection. Read more
fn tap_borrow_dbg<F, R>(self, func: F) -> Self where
Self: Borrow<T>,
F: FnOnce(&T) -> R,
fn tap_borrow_dbg<F, R>(self, func: F) -> Self where
Self: Borrow<T>,
F: FnOnce(&T) -> R,
Calls tap_borrow
in debug builds, and does nothing in release builds.
fn tap_borrow_mut<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
fn tap_borrow_mut<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
Provides mutable access to the borrow for modification.
fn tap_borrow_mut_dbg<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
fn tap_borrow_mut_dbg<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
Calls tap_borrow_mut
in debug builds, and does nothing in release
builds. Read more
Immutably dereferences self
for inspection.
fn tap_deref_dbg<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
fn tap_deref_dbg<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
Calls tap_deref
in debug builds, and does nothing in release builds.
fn tap_deref_mut<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
fn tap_deref_mut<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
Mutably dereferences self
for modification.
fn tap_deref_mut_dbg<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
fn tap_deref_mut_dbg<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
Calls tap_deref_mut
in debug builds, and does nothing in release
builds. Read more