pub struct AllowedProposers {
pub epoch: EpochId,
pub proposers: Vec<u32>,
}Expand description
The validators allowed to propose a transaction in consensus
Proposal by any other validator is byzantine behavior and invalidates the whole block.
§BCS
The BCS serialized form for this type is defined by the following ABNF:
allowed-proposers = u64 (vector u32) ; epoch, then committee indicesFields§
§epoch: EpochIdThe epoch whose committee proposers indexes into
Committee indices are only meaningful against one committee, so a set recorded for any other epoch is ignored and the transaction is treated as naming no proposers.
proposers: Vec<u32>Committee indices of the allowed proposers, strictly increasing and non-empty
An empty set is rejected at deserialization, since it names no validator and would be rejected on chain.
Trait Implementations§
Source§impl Arbitrary for AllowedProposers
impl Arbitrary for AllowedProposers
Source§type Parameters = ()
type Parameters = ()
The type of parameters that
arbitrary_with accepts for configuration
of the generated Strategy. Parameters must implement Default.Source§type Strategy = BoxedStrategy<AllowedProposers>
type Strategy = BoxedStrategy<AllowedProposers>
The type of
Strategy used to generate values of type Self.Source§fn arbitrary_with(args: <Self as Arbitrary>::Parameters) -> Self::Strategy
fn arbitrary_with(args: <Self as Arbitrary>::Parameters) -> Self::Strategy
Source§impl Clone for AllowedProposers
impl Clone for AllowedProposers
Source§fn clone(&self) -> AllowedProposers
fn clone(&self) -> AllowedProposers
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for AllowedProposers
impl Debug for AllowedProposers
Source§impl<'de> Deserialize<'de> for AllowedProposers
impl<'de> Deserialize<'de> for AllowedProposers
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Hash for AllowedProposers
impl Hash for AllowedProposers
Source§impl PartialEq for AllowedProposers
impl PartialEq for AllowedProposers
Source§fn eq(&self, other: &AllowedProposers) -> bool
fn eq(&self, other: &AllowedProposers) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl Serialize for AllowedProposers
impl Serialize for AllowedProposers
impl Eq for AllowedProposers
impl StructuralPartialEq for AllowedProposers
Auto Trait Implementations§
impl Freeze for AllowedProposers
impl RefUnwindSafe for AllowedProposers
impl Send for AllowedProposers
impl Sync for AllowedProposers
impl Unpin for AllowedProposers
impl UnsafeUnpin for AllowedProposers
impl UnwindSafe for AllowedProposers
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
Casts
self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read moreSource§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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<'de, T> FromBcs for Twhere
T: Deserialize<'de>,
impl<'de, T> FromBcs for Twhere
T: Deserialize<'de>,
Source§fn from_bcs<'de>(bytes: &'de [u8]) -> Result<Self, Error>where
Self: Deserialize<'de>,
fn from_bcs<'de>(bytes: &'de [u8]) -> Result<Self, Error>where
Self: Deserialize<'de>,
Available on crate feature
serde only.Source§fn from_bcs_base64(base64: &str) -> Result<Self, Error>where
Self: DeserializeOwned,
fn from_bcs_base64(base64: &str) -> Result<Self, Error>where
Self: DeserializeOwned,
Available on crate feature
serde only.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>
Converts
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>
Converts
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