Enum pallet_tips::pallet::Call
source · pub enum Call<T: Config<I>, I: 'static = ()> {
report_awesome {
reason: Vec<u8>,
who: <<T as Config>::Lookup as StaticLookup>::Source,
},
retract_tip {
hash: T::Hash,
},
tip_new {
reason: Vec<u8>,
who: <<T as Config>::Lookup as StaticLookup>::Source,
tip_value: BalanceOf<T, I>,
},
tip {
hash: T::Hash,
tip_value: BalanceOf<T, I>,
},
close_tip {
hash: T::Hash,
},
slash_tip {
hash: T::Hash,
},
// some variants omitted
}
Expand description
Contains one variant per dispatchable that can be called by an extrinsic.
Variants§
report_awesome
Report something reason
that deserves a tip and claim any eventual the finder’s fee.
The dispatch origin for this call must be Signed.
Payment: TipReportDepositBase
will be reserved from the origin account, as well as
DataDepositPerByte
for each byte in reason
.
reason
: The reason for, or the thing that deserves, the tip; generally this will be a UTF-8-encoded URL.who
: The account which should be credited for the tip.
Emits NewTip
if successful.
- Complexity:
O(R)
whereR
length ofreason
.- encoding and hashing of ‘reason’
- DbReads:
Reasons
,Tips
- DbWrites:
Reasons
,Tips
retract_tip
Retract a prior tip-report from report_awesome
, and cancel the process of tipping.
If successful, the original deposit will be unreserved.
The dispatch origin for this call must be Signed and the tip identified by hash
must have been reported by the signing account through report_awesome
(and not
through tip_new
).
hash
: The identity of the open tip for which a tip value is declared. This is formed as the hash of the tuple of the original tipreason
and the beneficiary account ID.
Emits TipRetracted
if successful.
- Complexity:
O(1)
- Depends on the length of
T::Hash
which is fixed.
- Depends on the length of
- DbReads:
Tips
,origin account
- DbWrites:
Reasons
,Tips
,origin account
tip_new
Fields
who: <<T as Config>::Lookup as StaticLookup>::Source
Give a tip for something new; no finder’s fee will be taken.
The dispatch origin for this call must be Signed and the signing account must be a
member of the Tippers
set.
reason
: The reason for, or the thing that deserves, the tip; generally this will be a UTF-8-encoded URL.who
: The account which should be credited for the tip.tip_value
: The amount of tip that the sender would like to give. The median tip value of active tippers will be given to thewho
.
Emits NewTip
if successful.
- Complexity:
O(R + T)
whereR
length ofreason
,T
is the number of tippers.O(T)
: decodingTipper
vec of lengthT
.T
is charged as upper bound given byContainsLengthBound
. The actual cost depends on the implementation ofT::Tippers
.O(R)
: hashing and encoding of reason of lengthR
- DbReads:
Tippers
,Reasons
- DbWrites:
Reasons
,Tips
tip
Declare a tip value for an already-open tip.
The dispatch origin for this call must be Signed and the signing account must be a
member of the Tippers
set.
hash
: The identity of the open tip for which a tip value is declared. This is formed as the hash of the tuple of the hash of the original tipreason
and the beneficiary account ID.tip_value
: The amount of tip that the sender would like to give. The median tip value of active tippers will be given to thewho
.
Emits TipClosing
if the threshold of tippers has been reached and the countdown period
has started.
-
Complexity:
O(T)
whereT
is the number of tippers. decodingTipper
vec of lengthT
, insert tip and check closing,T
is charged as upper bound given byContainsLengthBound
. The actual cost depends on the implementation ofT::Tippers
.Actually weight could be lower as it depends on how many tips are in
OpenTip
but it is weighted as if almost full i.e of lengthT-1
. -
DbReads:
Tippers
,Tips
-
DbWrites:
Tips
close_tip
Close and payout a tip.
The dispatch origin for this call must be Signed.
The tip identified by hash
must have finished its countdown period.
hash
: The identity of the open tip for which a tip value is declared. This is formed as the hash of the tuple of the original tipreason
and the beneficiary account ID.
- Complexity:
O(T)
whereT
is the number of tippers. decodingTipper
vec of lengthT
.T
is charged as upper bound given byContainsLengthBound
. The actual cost depends on the implementation ofT::Tippers
. - DbReads:
Tips
,Tippers
,tip finder
- DbWrites:
Reasons
,Tips
,Tippers
,tip finder
slash_tip
Implementations§
source§impl<T: Config<I>, I: 'static> Call<T, I>
impl<T: Config<I>, I: 'static> Call<T, I>
sourcepub fn new_call_variant_report_awesome(
reason: Vec<u8>,
who: <<T as Config>::Lookup as StaticLookup>::Source
) -> Self
pub fn new_call_variant_report_awesome(
reason: Vec<u8>,
who: <<T as Config>::Lookup as StaticLookup>::Source
) -> Self
Create a call with the variant report_awesome
.
sourcepub fn new_call_variant_retract_tip(hash: T::Hash) -> Self
pub fn new_call_variant_retract_tip(hash: T::Hash) -> Self
Create a call with the variant retract_tip
.
sourcepub fn new_call_variant_tip_new(
reason: Vec<u8>,
who: <<T as Config>::Lookup as StaticLookup>::Source,
tip_value: BalanceOf<T, I>
) -> Self
pub fn new_call_variant_tip_new(
reason: Vec<u8>,
who: <<T as Config>::Lookup as StaticLookup>::Source,
tip_value: BalanceOf<T, I>
) -> Self
Create a call with the variant tip_new
.
sourcepub fn new_call_variant_tip(hash: T::Hash, tip_value: BalanceOf<T, I>) -> Self
pub fn new_call_variant_tip(hash: T::Hash, tip_value: BalanceOf<T, I>) -> Self
Create a call with the variant tip
.
sourcepub fn new_call_variant_close_tip(hash: T::Hash) -> Self
pub fn new_call_variant_close_tip(hash: T::Hash) -> Self
Create a call with the variant close_tip
.
sourcepub fn new_call_variant_slash_tip(hash: T::Hash) -> Self
pub fn new_call_variant_slash_tip(hash: T::Hash) -> Self
Create a call with the variant slash_tip
.
Trait Implementations§
source§impl<T: Config<I>, I: 'static> Decode for Call<T, I>
impl<T: Config<I>, I: 'static> Decode for Call<T, I>
source§impl<T: Config<I>, I: 'static> Encode for Call<T, I>
impl<T: Config<I>, I: 'static> Encode for Call<T, I>
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
)
source§fn size_hint(&self) -> usize
fn size_hint(&self) -> usize
source§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,
source§fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
source§impl<T: Config<I>, I: 'static> GetCallName for Call<T, I>
impl<T: Config<I>, I: 'static> GetCallName for Call<T, I>
source§fn get_call_name(&self) -> &'static str
fn get_call_name(&self) -> &'static str
source§fn get_call_names() -> &'static [&'static str]
fn get_call_names() -> &'static [&'static str]
source§impl<T: Config<I>, I: 'static> GetDispatchInfo for Call<T, I>
impl<T: Config<I>, I: 'static> GetDispatchInfo for Call<T, I>
source§fn get_dispatch_info(&self) -> DispatchInfo
fn get_dispatch_info(&self) -> DispatchInfo
DispatchInfo
, containing relevant information of this dispatch. Read moresource§impl<T: Config<I>, I: 'static> PartialEq<Call<T, I>> for Call<T, I>
impl<T: Config<I>, I: 'static> PartialEq<Call<T, I>> for Call<T, I>
source§impl<T, I> TypeInfo for Call<T, I>where
PhantomData<(T, I)>: TypeInfo + 'static,
<<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
T::Hash: TypeInfo + 'static,
BalanceOf<T, I>: HasCompact,
T: Config<I> + 'static,
I: 'static,
impl<T, I> TypeInfo for Call<T, I>where
PhantomData<(T, I)>: TypeInfo + 'static,
<<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
T::Hash: TypeInfo + 'static,
BalanceOf<T, I>: HasCompact,
T: Config<I> + 'static,
I: 'static,
source§impl<T: Config<I>, I: 'static> UnfilteredDispatchable for Call<T, I>
impl<T: Config<I>, I: 'static> UnfilteredDispatchable for Call<T, I>
§type Origin = <T as Config>::Origin
type Origin = <T as Config>::Origin
frame_system::Config::Origin
).source§fn dispatch_bypass_filter(
self,
origin: Self::Origin
) -> DispatchResultWithPostInfo
fn dispatch_bypass_filter(
self,
origin: Self::Origin
) -> DispatchResultWithPostInfo
impl<T: Config<I>, I: 'static> EncodeLike<Call<T, I>> for Call<T, I>
impl<T: Config<I>, I: 'static> Eq for Call<T, I>
Auto Trait Implementations§
impl<T, I> RefUnwindSafe for Call<T, I>where
I: RefUnwindSafe,
T: RefUnwindSafe,
<<T as Config<I>>::Currency as Currency<<T as Config>::AccountId>>::Balance: RefUnwindSafe,
<T as Config>::Hash: RefUnwindSafe,
<<T as Config>::Lookup as StaticLookup>::Source: RefUnwindSafe,
impl<T, I> Send for Call<T, I>where
I: Send,
T: Send,
<<T as Config<I>>::Currency as Currency<<T as Config>::AccountId>>::Balance: Send,
<<T as Config>::Lookup as StaticLookup>::Source: Send,
impl<T, I> Sync for Call<T, I>where
I: Sync,
T: Sync,
<<T as Config<I>>::Currency as Currency<<T as Config>::AccountId>>::Balance: Sync,
<<T as Config>::Lookup as StaticLookup>::Source: Sync,
impl<T, I> Unpin for Call<T, I>where
I: Unpin,
T: Unpin,
<<T as Config<I>>::Currency as Currency<<T as Config>::AccountId>>::Balance: Unpin,
<T as Config>::Hash: Unpin,
<<T as Config>::Lookup as StaticLookup>::Source: Unpin,
impl<T, I> UnwindSafe for Call<T, I>where
I: UnwindSafe,
T: UnwindSafe,
<<T as Config<I>>::Currency as Currency<<T as Config>::AccountId>>::Balance: UnwindSafe,
<T as Config>::Hash: UnwindSafe,
<<T as Config>::Lookup as StaticLookup>::Source: UnwindSafe,
Blanket Implementations§
source§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
source§impl<T> DecodeLimit for Twhere
T: Decode,
impl<T> DecodeLimit for Twhere
T: Decode,
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§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
. Read moresource§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
. Read moresource§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. Read moresource§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. Read moresource§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.source§impl<T> FmtForward for T
impl<T> FmtForward for T
source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
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>,
source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moresource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moresource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
self
, then passes self.as_ref()
into the pipe function.source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
source§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 moresource§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read moresource§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).source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.source§impl<T> Tap for T
impl<T> Tap for T
source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
Borrow<B>
of a value. Read moresource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
BorrowMut<B>
of a value. Read moresource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
AsRef<R>
view of a value. Read moresource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
AsMut<R>
view of a value. Read moresource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
Deref::Target
of a value. Read moresource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Deref::Target
of a value. Read moresource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds. Read moresource§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
.tap_borrow()
only in debug builds, and is erased in release
builds. Read moresource§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
.tap_borrow_mut()
only in debug builds, and is erased in release
builds. Read moresource§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
.tap_ref()
only in debug builds, and is erased in release
builds. Read moresource§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
.tap_ref_mut()
only in debug builds, and is erased in release
builds. Read moresource§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
.