Enum pallet_payment::pallet::Call
source · pub enum Call<T: Config> {
pay {
recipient: T::AccountId,
amount: BalanceOf<T>,
remark: Option<BoundedDataOf<T>>,
},
release {
to: T::AccountId,
},
cancel {
creator: T::AccountId,
},
resolve_payment {
from: T::AccountId,
recipient: T::AccountId,
recipient_share: Percent,
},
request_refund {
recipient: T::AccountId,
},
dispute_refund {
creator: T::AccountId,
},
request_payment {
from: T::AccountId,
amount: BalanceOf<T>,
},
accept_and_pay {
to: T::AccountId,
},
// some variants omitted
}
Expand description
Contains one variant per dispatchable that can be called by an extrinsic.
Variants§
pay
This allows any user to create a new payment, that releases only to specified recipient The only action is to store the details of this payment in storage and reserve the specified amount. User also has the option to add a remark, this remark can then be used to run custom logic and trigger alternate payment flows. the specified amount.
release
Fields
to: T::AccountId
Release any created payment, this will transfer the reserved amount from the creator of the payment to the assigned recipient
cancel
Fields
creator: T::AccountId
Cancel a payment in created state, this will release the reserved back to creator of the payment. This extrinsic can only be called by the recipient of the payment
resolve_payment
This extrinsic is used to resolve disputes between the creator and recipient of the payment. This extrinsic allows the assigned judge to cancel/release/partial_release the payment.
request_refund
Fields
recipient: T::AccountId
Allow the creator of a payment to initiate a refund that will return the funds after a configured amount of time that the reveiver has to react and opose the request
dispute_refund
Fields
creator: T::AccountId
Allow payment recipient to dispute the refund request from the payment creator This does not cancel the request, instead sends the payment to a NeedsReview state The assigned resolver account can then change the state of the payment after review.
request_payment
accept_and_pay
Fields
to: T::AccountId
Implementations§
source§impl<T: Config> Call<T>
impl<T: Config> Call<T>
sourcepub fn new_call_variant_pay(
recipient: T::AccountId,
amount: BalanceOf<T>,
remark: Option<BoundedDataOf<T>>
) -> Self
pub fn new_call_variant_pay(
recipient: T::AccountId,
amount: BalanceOf<T>,
remark: Option<BoundedDataOf<T>>
) -> Self
Create a call with the variant pay
.
sourcepub fn new_call_variant_release(to: T::AccountId) -> Self
pub fn new_call_variant_release(to: T::AccountId) -> Self
Create a call with the variant release
.
sourcepub fn new_call_variant_cancel(creator: T::AccountId) -> Self
pub fn new_call_variant_cancel(creator: T::AccountId) -> Self
Create a call with the variant cancel
.
sourcepub fn new_call_variant_resolve_payment(
from: T::AccountId,
recipient: T::AccountId,
recipient_share: Percent
) -> Self
pub fn new_call_variant_resolve_payment(
from: T::AccountId,
recipient: T::AccountId,
recipient_share: Percent
) -> Self
Create a call with the variant resolve_payment
.
sourcepub fn new_call_variant_request_refund(recipient: T::AccountId) -> Self
pub fn new_call_variant_request_refund(recipient: T::AccountId) -> Self
Create a call with the variant request_refund
.
sourcepub fn new_call_variant_dispute_refund(creator: T::AccountId) -> Self
pub fn new_call_variant_dispute_refund(creator: T::AccountId) -> Self
Create a call with the variant dispute_refund
.
sourcepub fn new_call_variant_request_payment(
from: T::AccountId,
amount: BalanceOf<T>
) -> Self
pub fn new_call_variant_request_payment(
from: T::AccountId,
amount: BalanceOf<T>
) -> Self
Create a call with the variant request_payment
.
sourcepub fn new_call_variant_accept_and_pay(to: T::AccountId) -> Self
pub fn new_call_variant_accept_and_pay(to: T::AccountId) -> Self
Create a call with the variant accept_and_pay
.
Trait Implementations§
source§impl<T: Config> Decode for Call<T>
impl<T: Config> Decode for Call<T>
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 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<T: Config> Encode for Call<T>
impl<T: Config> Encode for Call<T>
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<T: Config> GetCallName for Call<T>
impl<T: Config> GetCallName for Call<T>
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> GetDispatchInfo for Call<T>
impl<T: Config> GetDispatchInfo for Call<T>
source§fn get_dispatch_info(&self) -> DispatchInfo
fn get_dispatch_info(&self) -> DispatchInfo
DispatchInfo
, containing relevant information of this dispatch. Read moresource§impl<T> TypeInfo for Call<T>where
PhantomData<(T,)>: TypeInfo + 'static,
T::AccountId: TypeInfo + 'static,
BalanceOf<T>: HasCompact,
Option<BoundedDataOf<T>>: TypeInfo + 'static,
T: Config + 'static,
impl<T> TypeInfo for Call<T>where
PhantomData<(T,)>: TypeInfo + 'static,
T::AccountId: TypeInfo + 'static,
BalanceOf<T>: HasCompact,
Option<BoundedDataOf<T>>: TypeInfo + 'static,
T: Config + 'static,
source§impl<T: Config> UnfilteredDispatchable for Call<T>
impl<T: Config> UnfilteredDispatchable for Call<T>
§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> EncodeLike<Call<T>> for Call<T>
impl<T: Config> Eq for Call<T>
Auto Trait Implementations§
impl<T> RefUnwindSafe for Call<T>where
T: RefUnwindSafe,
<T as Config>::AccountId: RefUnwindSafe,
<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: RefUnwindSafe,
<T as Config>::MaxRemarkLength: RefUnwindSafe,
impl<T> Send for Call<T>where
T: Send,
<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: Send,
<T as Config>::MaxRemarkLength: Send,
impl<T> Sync for Call<T>where
T: Sync,
<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: Sync,
<T as Config>::MaxRemarkLength: Sync,
impl<T> Unpin for Call<T>where
T: Unpin,
<T as Config>::AccountId: Unpin,
<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: Unpin,
<T as Config>::MaxRemarkLength: Unpin,
impl<T> UnwindSafe for Call<T>where
T: UnwindSafe,
<T as Config>::AccountId: UnwindSafe,
<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: UnwindSafe,
<T as Config>::MaxRemarkLength: UnwindSafe,
Blanket Implementations§
§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
. Read more§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 more§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 more§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.§impl<T> Hashable for Twhere
T: Codec,
impl<T> Hashable for Twhere
T: Codec,
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>
§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
.