multiversx_sc::types

Trait 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::Api>, gas_limit: u64, fc: FunctionCall<Env::Api>, ); fn with_normalized<From, To, F, R>( self, env: &Env, from: &From, to: To, fc: FunctionCall<Env::Api>, f: F, ) -> R where From: TxFrom<Env>, To: TxToSpecified<Env>, F: FnOnce(&ManagedAddress<Env::Api>, &BigUint<Env::Api>, FunctionCall<Env::Api>) -> R; fn into_full_payment_data(self, env: &Env) -> FullPaymentData<Env::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::Api>, gas_limit: u64, fc: FunctionCall<Env::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::Api>, f: F, ) -> R
where From: TxFrom<Env>, To: TxToSpecified<Env>, F: FnOnce(&ManagedAddress<Env::Api>, &BigUint<Env::Api>, FunctionCall<Env::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::Api>

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

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn into_full_payment_data(self, env: &Env) -> FullPaymentData<Env::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::Api>, gas_limit: u64, fc: FunctionCall<Env::Api>, )

Source§

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

Source§

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

Implementors§

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<Env> TxPayment<Env> for ManagedRef<'_, Env::Api, MultiEgldOrEsdtPayment<Env::Api>>
where Env: TxEnv,

Source§

impl<Env> TxPayment<Env> for ManagedRef<'_, Env::Api, MultiEsdtPayment<Env::Api>>
where Env: TxEnv,

Source§

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

Source§

impl<Env> TxPayment<Env> for TestEsdtTransfer<'_>
where Env: TxEnv,

Source§

impl<Env> TxPayment<Env> for MultiEgldOrEsdtPayment<Env::Api>
where Env: TxEnv,

Source§

impl<Env> TxPayment<Env> for MultiEsdtPayment<Env::Api>
where Env: TxEnv,

Source§

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