Enum pallet_example_offchain_worker::pallet::Call [−][src]
pub enum Call<T: Config> { submit_price(u32), submit_price_unsigned(T::BlockNumber, u32), submit_price_unsigned_with_signed_payload(PricePayload<T::Public, T::BlockNumber>, T::Signature), // some variants omitted }
Expand description
A public part of the pallet.
Variants
submit_price(u32)
Submit new price to the list.
This method is a public function of the module and can be called from within
a transaction. It appends given price
to current list of prices.
In our example the offchain worker
will create, sign & submit a transaction that
calls this function passing the price.
The transaction needs to be signed (see ensure_signed
) check, so that the caller
pays a fee to execute it.
This makes sure that it’s not easy (or rather cheap) to attack the chain by submitting
excesive transactions, but note that it doesn’t ensure the price oracle is actually
working and receives (and provides) meaningful data.
This example is not focused on correctness of the oracle itself, but rather its
purpose is to showcase offchain worker capabilities.
submit_price_unsigned(T::BlockNumber, u32)
Submit new price to the list via unsigned transaction.
Works exactly like the submit_price
function, but since we allow sending the
transaction without a signature, and hence without paying any fees,
we need a way to make sure that only some transactions are accepted.
This function can be called only once every T::UnsignedInterval
blocks.
Transactions that call that function are de-duplicated on the pool level
via validate_unsigned
implementation and also are rendered invalid if
the function has already been called in current “session”.
It’s important to specify weight
for unsigned calls as well, because even though
they don’t charge fees, we still don’t want a single block to contain unlimited
number of such transactions.
This example is not focused on correctness of the oracle itself, but rather its purpose is to showcase offchain worker capabilities.
submit_price_unsigned_with_signed_payload(PricePayload<T::Public, T::BlockNumber>, T::Signature)
Trait Implementations
Attempt to deserialise the value from input.
Attempt to skip the encoded value from input. Read more
fn encoded_fixed_size() -> Option<usize>
fn encoded_fixed_size() -> Option<usize>
Returns the fixed encoded size of the type. Read more
Convert self to a slice and append it to the destination.
fn using_encoded<R, F>(&self, f: F) -> R where
F: FnOnce(&[u8]) -> R,
fn using_encoded<R, F>(&self, f: F) -> R where
F: FnOnce(&[u8]) -> R,
Convert self to a slice and then invoke the given closure with it.
fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
Calculates the encoded size. Read more
Return the function name of the Call.
Return all function names.
Return a DispatchInfo
, containing relevant information of this dispatch. Read more
Dispatch this call but do not check the filter in origin.
Auto Trait Implementations
impl<T> RefUnwindSafe for Call<T> where
T: RefUnwindSafe,
<T as Config>::BlockNumber: RefUnwindSafe,
<T as SigningTypes>::Public: RefUnwindSafe,
<T as SigningTypes>::Signature: RefUnwindSafe,
impl<T> Send for Call<T> where
T: Send,
<T as SigningTypes>::Public: Send,
<T as SigningTypes>::Signature: Send,
impl<T> Sync for Call<T> where
T: Sync,
<T as SigningTypes>::Public: Sync,
<T as SigningTypes>::Signature: Sync,
impl<T> Unpin for Call<T> where
T: Unpin,
<T as Config>::BlockNumber: Unpin,
<T as SigningTypes>::Public: Unpin,
<T as SigningTypes>::Signature: Unpin,
impl<T> UnwindSafe for Call<T> where
T: UnwindSafe,
<T as Config>::BlockNumber: UnwindSafe,
<T as SigningTypes>::Public: UnwindSafe,
<T as SigningTypes>::Signature: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
Convert 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
. Read more
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
type Output = T
type Output = T
Should always be Self
The counterpart to unchecked_from
.
Consume self to return an equivalent value of T
.
pub fn vzip(self) -> V
impl<'_, '_, T> EncodeLike<&'_ &'_ T> for T where
T: Encode,
impl<'_, T> EncodeLike<&'_ T> for T where
T: Encode,
impl<'_, T> EncodeLike<&'_ mut T> for T where
T: Encode,
impl<T> EncodeLike<Arc<T>> for T where
T: Encode,
impl<T> EncodeLike<Rc<T>> for T where
T: Encode,
impl<T> MaybeDebug for T where
T: Debug,
impl<T> MaybeDebug for T where
T: Debug,