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.