pub enum Phase<Bn> {
Off,
Signed,
Unsigned((bool, Bn)),
Emergency,
}
Expand description
Current phase of the pallet.
Variants§
Off
Nothing, the election is not happening.
Signed
Signed phase is open.
Unsigned((bool, Bn))
Unsigned phase. First element is whether it is active or not, second the starting block number.
We do not yet check whether the unsigned phase is active or passive. The intent is for the blockchain to be able to declare: “I believe that there exists an adequate signed solution,” advising validators not to bother running the unsigned offchain worker.
As validator nodes are free to edit their OCW code, they could simply ignore this advisory and always compute their own solution. However, by default, when the unsigned phase is passive, the offchain workers will not bother running.
Emergency
The emergency phase. This is enabled upon a failing call to T::ElectionProvider::elect
.
After that, the only way to leave this phase is through a successful
T::ElectionProvider::elect
.
Implementations§
source§impl<Bn: PartialEq + Eq> Phase<Bn>
impl<Bn: PartialEq + Eq> Phase<Bn>
sourcepub fn is_emergency(&self) -> bool
pub fn is_emergency(&self) -> bool
Whether the phase is emergency or not.
sourcepub fn is_unsigned(&self) -> bool
pub fn is_unsigned(&self) -> bool
Whether the phase is unsigned or not.
sourcepub fn is_unsigned_open_at(&self, at: Bn) -> bool
pub fn is_unsigned_open_at(&self, at: Bn) -> bool
Whether the phase is unsigned and open or not, with specific start.
sourcepub fn is_unsigned_open(&self) -> bool
pub fn is_unsigned_open(&self) -> bool
Whether the phase is unsigned and open or not.
Trait Implementations§
source§impl<Bn> Decode for Phase<Bn>where
Bn: Decode,
(bool, Bn): Decode,
impl<Bn> Decode for Phase<Bn>where Bn: Decode, (bool, Bn): Decode,
source§fn decode<__CodecInputEdqy: Input>(
__codec_input_edqy: &mut __CodecInputEdqy
) -> Result<Self, Error>
fn decode<__CodecInputEdqy: Input>( __codec_input_edqy: &mut __CodecInputEdqy ) -> Result<Self, Error>
§fn decode_into<I>(
input: &mut I,
dst: &mut MaybeUninit<Self>
) -> Result<DecodeFinished, Error>where
I: Input,
fn decode_into<I>( input: &mut I, dst: &mut MaybeUninit<Self> ) -> Result<DecodeFinished, Error>where I: Input,
§fn skip<I>(input: &mut I) -> Result<(), Error>where
I: Input,
fn skip<I>(input: &mut I) -> Result<(), Error>where I: Input,
§fn encoded_fixed_size() -> Option<usize>
fn encoded_fixed_size() -> Option<usize>
source§impl<Bn> Encode for Phase<Bn>where
Bn: Encode,
(bool, Bn): Encode,
impl<Bn> Encode for Phase<Bn>where Bn: Encode, (bool, Bn): Encode,
source§fn encode_to<__CodecOutputEdqy: Output + ?Sized>(
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy
)
fn encode_to<__CodecOutputEdqy: Output + ?Sized>( &self, __codec_dest_edqy: &mut __CodecOutputEdqy )
§fn using_encoded<R, F>(&self, f: F) -> Rwhere
F: FnOnce(&[u8]) -> R,
fn using_encoded<R, F>(&self, f: F) -> Rwhere F: FnOnce(&[u8]) -> R,
§fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
source§impl<Bn: PartialEq> PartialEq<Phase<Bn>> for Phase<Bn>
impl<Bn: PartialEq> PartialEq<Phase<Bn>> for Phase<Bn>
impl<Bn: Copy> Copy for Phase<Bn>
impl<Bn> EncodeLike<Phase<Bn>> for Phase<Bn>where Bn: Encode, (bool, Bn): Encode,
impl<Bn: Eq> Eq for Phase<Bn>
impl<Bn> StructuralEq for Phase<Bn>
impl<Bn> StructuralPartialEq for Phase<Bn>
Auto Trait Implementations§
impl<Bn> RefUnwindSafe for Phase<Bn>where Bn: RefUnwindSafe,
impl<Bn> Send for Phase<Bn>where Bn: Send,
impl<Bn> Sync for Phase<Bn>where Bn: Sync,
impl<Bn> Unpin for Phase<Bn>where Bn: Unpin,
impl<Bn> UnwindSafe for Phase<Bn>where Bn: UnwindSafe,
Blanket Implementations§
source§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
§impl<T> DecodeAll for Twhere
T: Decode,
impl<T> DecodeAll for Twhere T: Decode,
§fn decode_all(input: &mut &[u8]) -> Result<T, Error>
fn decode_all(input: &mut &[u8]) -> Result<T, Error>
Self
and consume all of the given input data. Read more§impl<T> DecodeLimit for Twhere
T: Decode,
impl<T> DecodeLimit for Twhere T: Decode,
source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
source§impl<T> Hashable for Twhere
T: Codec,
impl<T> Hashable for Twhere T: Codec,
fn blake2_128(&self) -> [u8; 16]
fn blake2_256(&self) -> [u8; 32]
fn blake2_128_concat(&self) -> Vec<u8, Global> ⓘ
fn twox_128(&self) -> [u8; 16]
fn twox_256(&self) -> [u8; 32]
fn twox_64_concat(&self) -> Vec<u8, Global> ⓘ
fn identity(&self) -> Vec<u8, Global> ⓘ
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T, Outer> IsWrappedBy<Outer> for Twhere
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
impl<T, Outer> IsWrappedBy<Outer> for Twhere Outer: AsRef<T> + AsMut<T> + From<T>, T: From<Outer>,
§impl<T> KeyedVec for Twhere
T: Codec,
impl<T> KeyedVec for Twhere T: Codec,
§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
source§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere Self: UniqueSaturatedFrom<T>,
source§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere Self: UniqueSaturatedInto<T>,
T
. Read more§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.source§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere T: UncheckedFrom<S>,
source§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from
.source§impl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
impl<T, S> UniqueSaturatedInto<T> for Swhere T: Bounded, S: TryInto<T>,
source§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T
.