pub enum CellbaseError {
InvalidInput,
InvalidRewardAmount,
InvalidRewardTarget,
InvalidWitness,
InvalidTypeScript,
InvalidOutputQuantity,
InvalidQuantity,
InvalidPosition,
InvalidOutputData,
}
Expand description
Errors due to the fact that the cellbase rule is not respected.
See more about cellbase transaction: cellbase transaction
Variants§
InvalidInput
The cellbase input is unexpected. The structure reference of correct cellbase input: new_cellbase_input
.
InvalidRewardAmount
The cellbase output capacity is not equal to the total block reward.
InvalidRewardTarget
The cellbase output lock does not match with the target lock.
As for 0 ~ PROPOSAL_WINDOW.farthest blocks, cellbase outputs should be empty; otherwise, lock of first cellbase output should match with the target block.
Assumes the current block number is i
, then its target block is that: (1) on that same chain with current block; (2) number is i - PROPOSAL_WINDOW.farthest - 1
.
InvalidWitness
The cellbase witness is not in CellbaseWitness
format.
InvalidTypeScript
The cellbase type script is not none.
InvalidOutputQuantity
The length of cellbase outputs and outputs-data should be equal and less than 1
.
InvalidQuantity
There are multiple cellbase transactions inside the same block.
InvalidPosition
The first block transaction is not a valid cellbase transaction.
See also is_cellbase
.
InvalidOutputData
The cellbase output-data is not empty.
Trait Implementations§
Source§impl Clone for CellbaseError
impl Clone for CellbaseError
Source§fn clone(&self) -> CellbaseError
fn clone(&self) -> CellbaseError
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for CellbaseError
impl Debug for CellbaseError
Source§impl Display for CellbaseError
impl Display for CellbaseError
Source§impl Error for CellbaseError
impl Error for CellbaseError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
Source§impl From<CellbaseError> for BlockError
impl From<CellbaseError> for BlockError
Source§fn from(error: CellbaseError) -> Self
fn from(error: CellbaseError) -> Self
Source§impl From<CellbaseError> for Error
impl From<CellbaseError> for Error
Source§fn from(error: CellbaseError) -> Self
fn from(error: CellbaseError) -> Self
Source§impl PartialEq for CellbaseError
impl PartialEq for CellbaseError
impl Eq for CellbaseError
impl StructuralPartialEq for CellbaseError
Auto Trait Implementations§
impl Freeze for CellbaseError
impl RefUnwindSafe for CellbaseError
impl Send for CellbaseError
impl Sync for CellbaseError
impl Unpin for CellbaseError
impl UnwindSafe for CellbaseError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more