Enum dock_runtime::EPMCall
pub enum EPMCall<T>where
T: Config,{
submit_unsigned {
raw_solution: Box<RawSolution<<<T as Config>::MinerConfig as MinerConfig>::Solution>, Global>,
witness: SolutionOrSnapshotSize,
},
set_minimum_untrusted_score {
maybe_next_score: Option<ElectionScore>,
},
set_emergency_election_result {
supports: Vec<(<T as Config>::AccountId, Support<<T as Config>::AccountId>), Global>,
},
submit {
raw_solution: Box<RawSolution<<<T as Config>::MinerConfig as MinerConfig>::Solution>, Global>,
},
governance_fallback {
maybe_max_voters: Option<u32>,
maybe_max_targets: Option<u32>,
},
// some variants omitted
}
Expand description
Contains one variant per dispatchable that can be called by an extrinsic.
Variants§
submit_unsigned
Fields
witness: SolutionOrSnapshotSize
Submit a solution for the unsigned phase.
The dispatch origin fo this call must be none.
This submission is checked on the fly. Moreover, this unsigned solution is only validated when submitted to the pool from the local node. Effectively, this means that only active validators can submit this transaction when authoring a block (similar to an inherent).
To prevent any incorrect solution (and thus wasted time/weight), this transaction will panic if the solution submitted by the validator is invalid in any way, effectively putting their authoring reward at risk.
No deposit or reward is associated with this submission.
set_minimum_untrusted_score
Set a new value for MinimumUntrustedScore
.
Dispatch origin must be aligned with T::ForceOrigin
.
This check can be turned off by setting the value to None
.
set_emergency_election_result
Set a solution in the queue, to be handed out to the client of this pallet in the next
call to ElectionProvider::elect
.
This can only be set by T::ForceOrigin
, and only when the phase is Emergency
.
The solution is not checked for any feasibility and is assumed to be trustworthy, as any feasibility check itself can in principle cause the election process to fail (due to memory/weight constrains).
submit
Fields
Submit a solution for the signed phase.
The dispatch origin fo this call must be signed.
The solution is potentially queued, based on the claimed score and processed at the end of the signed phase.
A deposit is reserved and recorded for the solution. Based on the outcome, the solution might be rewarded, slashed, or get all or a part of the deposit back.
governance_fallback
Trigger the governance fallback.
This can only be called when [Phase::Emergency
] is enabled, as an alternative to
calling Call::set_emergency_election_result
.
Implementations§
§impl<T> Call<T>where
T: Config,
impl<T> Call<T>where T: Config,
pub fn new_call_variant_submit_unsigned(
raw_solution: Box<RawSolution<<<T as Config>::MinerConfig as MinerConfig>::Solution>, Global>,
witness: SolutionOrSnapshotSize
) -> Call<T>
pub fn new_call_variant_submit_unsigned( raw_solution: Box<RawSolution<<<T as Config>::MinerConfig as MinerConfig>::Solution>, Global>, witness: SolutionOrSnapshotSize ) -> Call<T>
Create a call with the variant submit_unsigned
.
pub fn new_call_variant_set_minimum_untrusted_score(
maybe_next_score: Option<ElectionScore>
) -> Call<T>
pub fn new_call_variant_set_minimum_untrusted_score( maybe_next_score: Option<ElectionScore> ) -> Call<T>
Create a call with the variant set_minimum_untrusted_score
.
pub fn new_call_variant_set_emergency_election_result(
supports: Vec<(<T as Config>::AccountId, Support<<T as Config>::AccountId>), Global>
) -> Call<T>
pub fn new_call_variant_set_emergency_election_result( supports: Vec<(<T as Config>::AccountId, Support<<T as Config>::AccountId>), Global> ) -> Call<T>
Create a call with the variant set_emergency_election_result
.
pub fn new_call_variant_submit(
raw_solution: Box<RawSolution<<<T as Config>::MinerConfig as MinerConfig>::Solution>, Global>
) -> Call<T>
pub fn new_call_variant_submit( raw_solution: Box<RawSolution<<<T as Config>::MinerConfig as MinerConfig>::Solution>, Global> ) -> Call<T>
Create a call with the variant submit
.
Trait Implementations§
§impl<T> Decode for Call<T>where
T: Config,
impl<T> Decode for Call<T>where T: Config,
§fn decode<__CodecInputEdqy>(
__codec_input_edqy: &mut __CodecInputEdqy
) -> Result<Call<T>, Error>where
__CodecInputEdqy: Input,
fn decode<__CodecInputEdqy>( __codec_input_edqy: &mut __CodecInputEdqy ) -> Result<Call<T>, Error>where __CodecInputEdqy: Input,
§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>
§impl<T> Encode for Call<T>where
T: Config,
impl<T> Encode for Call<T>where T: Config,
§fn encode_to<__CodecOutputEdqy>(&self, __codec_dest_edqy: &mut __CodecOutputEdqy)where
__CodecOutputEdqy: Output + ?Sized,
fn encode_to<__CodecOutputEdqy>(&self, __codec_dest_edqy: &mut __CodecOutputEdqy)where __CodecOutputEdqy: Output + ?Sized,
§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
§impl<T> GetCallName for Call<T>where
T: Config,
impl<T> GetCallName for Call<T>where T: Config,
§fn get_call_name(&self) -> &'static str
fn get_call_name(&self) -> &'static str
§fn get_call_names() -> &'static [&'static str]
fn get_call_names() -> &'static [&'static str]
§impl<T> GetDispatchInfo for Call<T>where
T: Config,
impl<T> GetDispatchInfo for Call<T>where T: Config,
§fn get_dispatch_info(&self) -> DispatchInfo
fn get_dispatch_info(&self) -> DispatchInfo
DispatchInfo
, containing relevant information of this dispatch. Read more§impl<T> TypeInfo for Call<T>where
T: Config + 'static,
PhantomData<(T,)>: TypeInfo + 'static,
Box<RawSolution<<<T as Config>::MinerConfig as MinerConfig>::Solution>, Global>: TypeInfo + 'static,
Vec<(<T as Config>::AccountId, Support<<T as Config>::AccountId>), Global>: TypeInfo + 'static,
impl<T> TypeInfo for Call<T>where T: Config + 'static, PhantomData<(T,)>: TypeInfo + 'static, Box<RawSolution<<<T as Config>::MinerConfig as MinerConfig>::Solution>, Global>: TypeInfo + 'static, Vec<(<T as Config>::AccountId, Support<<T as Config>::AccountId>), Global>: TypeInfo + 'static,
§impl<T> UnfilteredDispatchable for Call<T>where
T: Config,
impl<T> UnfilteredDispatchable for Call<T>where T: Config,
§type Origin = <T as Config>::Origin
type Origin = <T as Config>::Origin
frame_system::Config::Origin
).§fn dispatch_bypass_filter(
self,
origin: <Call<T> as UnfilteredDispatchable>::Origin
) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>
fn dispatch_bypass_filter( self, origin: <Call<T> as UnfilteredDispatchable>::Origin ) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>
impl<T> EncodeLike<Call<T>> for Call<T>where T: Config,
impl<T> Eq for Call<T>where T: Config,
Auto Trait Implementations§
impl<T> RefUnwindSafe for Call<T>where T: RefUnwindSafe, <T as Config>::AccountId: RefUnwindSafe, <<T as Config>::MinerConfig as MinerConfig>::Solution: RefUnwindSafe,
impl<T> Send for Call<T>where T: Send, <<T as Config>::MinerConfig as MinerConfig>::Solution: Send,
impl<T> Sync for Call<T>where T: Sync, <<T as Config>::MinerConfig as MinerConfig>::Solution: Sync,
impl<T> Unpin for Call<T>where T: Unpin, <T as Config>::AccountId: Unpin,
impl<T> UnwindSafe for Call<T>where T: UnwindSafe, <T as Config>::AccountId: UnwindSafe, <<T as Config>::MinerConfig as MinerConfig>::Solution: UnwindSafe,
Blanket Implementations§
source§impl<T> CanUpdate<()> for T
impl<T> CanUpdate<()> for T
source§fn can_remove(&self, _entity: &()) -> bool
fn can_remove(&self, _entity: &()) -> bool
§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
§fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
fn checked_from<T>(t: T) -> Option<Self>where Self: TryFrom<T>,
§fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
fn checked_into<T>(self) -> Option<T>where Self: TryInto<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,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.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<T> Hashable for Twhere
T: Codec,
impl<T> Hashable for Twhere T: Codec,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IsType<T> for T
impl<T> IsType<T> for T
§impl<T> KeyedVec for Twhere
T: Codec,
impl<T> KeyedVec for Twhere T: Codec,
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere Self: UniqueSaturatedFrom<T>,
§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere Self: UniqueSaturatedInto<T>,
T
. Read more§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere T: UncheckedFrom<S>,
§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from
.§impl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
impl<T, S> UniqueSaturatedInto<T> for Swhere T: Bounded, S: TryInto<T>,
§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T
.