logo
#[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

NotBonded

The given validator is not bonded.

assert_eq!(0, Error::NotBonded as u8);

TooManyEventsInQueue

There are too many bonding or unbonding attempts already enqueued to allow more.

assert_eq!(1, Error::TooManyEventsInQueue as u8);

CannotUnbondLastValidator

At least one validator must remain bonded.

assert_eq!(2, Error::CannotUnbondLastValidator as u8);

SpreadTooHigh

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);

MultipleRequests

The given validator already has a bond or unbond attempt enqueued.

assert_eq!(4, Error::MultipleRequests as u8);

BondTooSmall

Attempted to bond with a stake which was too small.

assert_eq!(5, Error::BondTooSmall as u8);

BondTooLarge

Attempted to bond with a stake which was too large.

assert_eq!(6, Error::BondTooLarge as u8);

UnbondTooLarge

Attempted to unbond an amount which was too large.

assert_eq!(7, Error::UnbondTooLarge as u8);

BondTransferFailed

While bonding, the transfer from source purse to the Handle Payment internal purse failed.

assert_eq!(8, Error::BondTransferFailed as u8);

UnbondTransferFailed

While unbonding, the transfer from the Handle Payment internal purse to the destination purse failed.

assert_eq!(9, Error::UnbondTransferFailed as u8);

TimeWentBackwards

Internal error: a BlockTime was unexpectedly out of sequence.

assert_eq!(10, Error::TimeWentBackwards as u8);

StakesNotFound

Internal error: stakes were unexpectedly empty.

assert_eq!(11, Error::StakesNotFound as u8);

PaymentPurseNotFound

Internal error: the Handle Payment contract’s payment purse wasn’t found.

assert_eq!(12, Error::PaymentPurseNotFound as u8);

PaymentPurseKeyUnexpectedType

Internal error: the Handle Payment contract’s payment purse key was the wrong type.

assert_eq!(13, Error::PaymentPurseKeyUnexpectedType as u8);

PaymentPurseBalanceNotFound

Internal error: couldn’t retrieve the balance for the Handle Payment contract’s payment purse.

assert_eq!(14, Error::PaymentPurseBalanceNotFound as u8);

BondingPurseNotFound

Internal error: the Handle Payment contract’s bonding purse wasn’t found.

assert_eq!(15, Error::BondingPurseNotFound as u8);

BondingPurseKeyUnexpectedType

Internal error: the Handle Payment contract’s bonding purse key was the wrong type.

assert_eq!(16, Error::BondingPurseKeyUnexpectedType as u8);

RefundPurseKeyUnexpectedType

Internal error: the Handle Payment contract’s refund purse key was the wrong type.

assert_eq!(17, Error::RefundPurseKeyUnexpectedType as u8);

RewardsPurseNotFound

Internal error: the Handle Payment contract’s rewards purse wasn’t found.

assert_eq!(18, Error::RewardsPurseNotFound as u8);

RewardsPurseKeyUnexpectedType

Internal error: the Handle Payment contract’s rewards purse key was the wrong type.

assert_eq!(19, Error::RewardsPurseKeyUnexpectedType as u8);

StakesKeyDeserializationFailed

Internal error: failed to deserialize the stake’s key.

assert_eq!(20, Error::StakesKeyDeserializationFailed as u8);

StakesDeserializationFailed

Internal error: failed to deserialize the stake’s balance.

assert_eq!(21, Error::StakesDeserializationFailed as u8);

SystemFunctionCalledByUserAccount

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);

InsufficientPaymentForAmountSpent

Internal error: while finalizing payment, the amount spent exceeded the amount available.

assert_eq!(23, Error::InsufficientPaymentForAmountSpent as u8);

FailedTransferToRewardsPurse

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);

FailedTransferToAccountPurse

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);

SetRefundPurseCalledOutsidePayment

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);

GetBalance

Raised when the system is unable to determine purse balance.

assert_eq!(27, Error::GetBalance as u8);

PutKey

Raised when the system is unable to put named key.

assert_eq!(28, Error::PutKey as u8);

RemoveKey

Raised when the system is unable to remove given named key.

assert_eq!(29, Error::RemoveKey as u8);

Transfer

Failed to transfer funds.

assert_eq!(30, Error::Transfer as u8);

ArithmeticOverflow

An arithmetic overflow occurred

assert_eq!(31, Error::ArithmeticOverflow as u8);

RefundPurseIsPaymentPurse

Refund purse is a payment purse.

Trait Implementations

The CLType of Self.

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Formats the value using the given formatter. Read more

Converts to this type from the input type.

Converts to this type from the input type.

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Serializes &self to a Vec<u8>.

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

Consumes self and serializes to a Vec<u8>.

The type returned in the event of a conversion error.

Performs the conversion.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Converts self into a target type. Read more

Causes self to use its Binary implementation when Debug-formatted.

Causes self to use its Display implementation when Debug-formatted. Read more

Causes self to use its LowerExp implementation when Debug-formatted. Read more

Causes self to use its LowerHex implementation when Debug-formatted. Read more

Causes self to use its Octal implementation when Debug-formatted.

Causes self to use its Pointer implementation when Debug-formatted. Read more

Causes self to use its UpperExp implementation when Debug-formatted. Read more

Causes self to use its UpperHex implementation when Debug-formatted. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Pipes a value into a function that cannot ordinarily be called in suffix position. Read more

Pipes a trait borrow into a function that cannot normally be called in suffix position. Read more

Pipes a trait mutable borrow into a function that cannot normally be called in suffix position. Read more

Pipes a trait borrow into a function that cannot normally be called in suffix position. Read more

Pipes a trait mutable borrow into a function that cannot normally be called in suffix position. Read more

Pipes a dereference into a function that cannot normally be called in suffix position. Read more

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

Pipes a mutable reference into a function that cannot ordinarily be called in suffix position. Read more

Should always be Self

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

Calls tap_mut in debug builds, and does nothing in release builds.

Provides immutable access to the reference for inspection.

Calls tap_ref in debug builds, and does nothing in release builds.

Provides mutable access to the reference for modification.

Calls tap_ref_mut in debug builds, and does nothing in release builds.

Provides immutable access to the borrow for inspection. Read more

Calls tap_borrow in debug builds, and does nothing in release builds.

Provides mutable access to the borrow for modification.

Calls tap_borrow_mut in debug builds, and does nothing in release builds. Read more

Immutably dereferences self for inspection.

Calls tap_deref in debug builds, and does nothing in release builds.

Mutably dereferences self for modification.

Calls tap_deref_mut in debug builds, and does nothing in release builds. Read more

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

Converts the given value to a String. Read more

Attempts to convert self into a target type. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.