Trait multiversx_sc_snippets::imports::TxPayment

source ·
pub trait TxPayment<Env>
where Env: TxEnv,
{ // Required methods fn is_no_payment(&self, env: &Env) -> bool; fn perform_transfer_execute( self, env: &Env, to: &ManagedAddress<<Env as TxEnv>::Api>, gas_limit: u64, fc: FunctionCall<<Env as TxEnv>::Api> ); fn with_normalized<From, To, F, R>( self, env: &Env, from: &From, to: To, fc: FunctionCall<<Env as TxEnv>::Api>, f: F ) -> R where From: TxFrom<Env>, To: TxToSpecified<Env>, F: FnOnce(&ManagedAddress<<Env as TxEnv>::Api>, &BigUint<<Env as TxEnv>::Api>, FunctionCall<<Env as TxEnv>::Api>) -> R; fn into_full_payment_data( self, env: &Env ) -> FullPaymentData<<Env as TxEnv>::Api>; }
Expand description

Describes a payment that is part of a transaction.

Required Methods§

source

fn is_no_payment(&self, env: &Env) -> bool

Returns true if payment indicates transfer of either non-zero EGLD or ESDT amounts.

source

fn perform_transfer_execute( self, env: &Env, to: &ManagedAddress<<Env as TxEnv>::Api>, gas_limit: u64, fc: FunctionCall<<Env as TxEnv>::Api> )

Transfer-execute calls have different APIs for different payments types. This method selects between them.

source

fn with_normalized<From, To, F, R>( self, env: &Env, from: &From, to: To, fc: FunctionCall<<Env as TxEnv>::Api>, f: F ) -> R
where From: TxFrom<Env>, To: TxToSpecified<Env>, F: FnOnce(&ManagedAddress<<Env as TxEnv>::Api>, &BigUint<<Env as TxEnv>::Api>, FunctionCall<<Env as TxEnv>::Api>) -> R,

Converts an ESDT call to a built-in function call, if necessary.

source

fn into_full_payment_data( self, env: &Env ) -> FullPaymentData<<Env as TxEnv>::Api>

Payment data to be used by the testing framework. Will be refactored.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<Env> TxPayment<Env> for (TokenIdentifier<<Env as TxEnv>::Api>, u64, BigUint<<Env as TxEnv>::Api>)
where Env: TxEnv,

source§

fn is_no_payment(&self, _env: &Env) -> bool

source§

fn perform_transfer_execute( self, env: &Env, to: &ManagedAddress<<Env as TxEnv>::Api>, gas_limit: u64, fc: FunctionCall<<Env as TxEnv>::Api> )

source§

fn with_normalized<From, To, F, R>( self, env: &Env, from: &From, to: To, fc: FunctionCall<<Env as TxEnv>::Api>, f: F ) -> R
where From: TxFrom<Env>, To: TxToSpecified<Env>, F: FnOnce(&ManagedAddress<<Env as TxEnv>::Api>, &BigUint<<Env as TxEnv>::Api>, FunctionCall<<Env as TxEnv>::Api>) -> R,

source§

fn into_full_payment_data( self, env: &Env ) -> FullPaymentData<<Env as TxEnv>::Api>

source§

impl<Env> TxPayment<Env> for ()
where Env: TxEnv,

source§

fn is_no_payment(&self, _env: &Env) -> bool

source§

fn perform_transfer_execute( self, env: &Env, to: &ManagedAddress<<Env as TxEnv>::Api>, gas_limit: u64, fc: FunctionCall<<Env as TxEnv>::Api> )

source§

fn with_normalized<From, To, F, R>( self, env: &Env, _from: &From, to: To, fc: FunctionCall<<Env as TxEnv>::Api>, f: F ) -> R
where From: TxFrom<Env>, To: TxToSpecified<Env>, F: FnOnce(&ManagedAddress<<Env as TxEnv>::Api>, &BigUint<<Env as TxEnv>::Api>, FunctionCall<<Env as TxEnv>::Api>) -> R,

source§

fn into_full_payment_data( self, _env: &Env ) -> FullPaymentData<<Env as TxEnv>::Api>

Implementors§

source§

impl<'a, Env> TxPayment<Env> for EgldOrMultiEsdtPaymentRefs<'a, <Env as TxEnv>::Api>
where Env: TxEnv,

source§

impl<'a, Env> TxPayment<Env> for EgldOrEsdtTokenPaymentRefs<'a, <Env as TxEnv>::Api>
where Env: TxEnv,

source§

impl<'a, Env> TxPayment<Env> for EsdtTokenPaymentRefs<'a, <Env as TxEnv>::Api>
where Env: TxEnv,

source§

impl<'a, Env> TxPayment<Env> for ManagedRef<'a, <Env as TxEnv>::Api, ManagedVec<<Env as TxEnv>::Api, EsdtTokenPayment<<Env as TxEnv>::Api>>>
where Env: TxEnv,

source§

impl<Env> TxPayment<Env> for &EgldOrMultiEsdtPayment<<Env as TxEnv>::Api>
where Env: TxEnv,

source§

impl<Env> TxPayment<Env> for &EgldOrEsdtTokenPayment<<Env as TxEnv>::Api>
where Env: TxEnv,

source§

impl<Env> TxPayment<Env> for &EsdtTokenPayment<<Env as TxEnv>::Api>
where Env: TxEnv,

source§

impl<Env> TxPayment<Env> for &ManagedVec<<Env as TxEnv>::Api, EsdtTokenPayment<<Env as TxEnv>::Api>>
where Env: TxEnv,

source§

impl<Env> TxPayment<Env> for EgldOrMultiEsdtPayment<<Env as TxEnv>::Api>
where Env: TxEnv,

source§

impl<Env> TxPayment<Env> for EgldOrEsdtTokenPayment<<Env as TxEnv>::Api>
where Env: TxEnv,

source§

impl<Env> TxPayment<Env> for EsdtTokenPayment<<Env as TxEnv>::Api>
where Env: TxEnv,

source§

impl<Env> TxPayment<Env> for ManagedVec<<Env as TxEnv>::Api, EsdtTokenPayment<<Env as TxEnv>::Api>>
where Env: TxEnv,

source§

impl<Env> TxPayment<Env> for NotPayable
where Env: TxEnv,

source§

impl<Env, EgldValue> TxPayment<Env> for Egld<EgldValue>
where Env: TxEnv, EgldValue: TxEgldValue<Env>,