TxPayment

Trait TxPayment 

Source
pub trait TxPayment<Env>: Sized
where Env: TxEnv,
{ // Required methods fn is_no_payment(&self, env: &Env) -> bool; fn perform_transfer_execute_fallible( self, env: &Env, to: &ManagedAddress<<Env as TxEnv>::Api>, gas_limit: u64, fc: FunctionCall<<Env as TxEnv>::Api>, ) -> Result<(), TransferExecuteFailed>; fn perform_transfer_execute_legacy( 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>; // Provided method fn perform_transfer_fallible( self, env: &Env, to: &ManagedAddress<<Env as TxEnv>::Api>, ) -> Result<(), TransferExecuteFailed> { ... } }
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_fallible( self, env: &Env, to: &ManagedAddress<<Env as TxEnv>::Api>, gas_limit: u64, fc: FunctionCall<<Env as TxEnv>::Api>, ) -> Result<(), TransferExecuteFailed>

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

Source

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

Allows transfer-execute without payment.

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.

Provided Methods§

Source

fn perform_transfer_fallible( self, env: &Env, to: &ManagedAddress<<Env as TxEnv>::Api>, ) -> Result<(), TransferExecuteFailed>

Shortcut for doing direct transfers.

It is relevant with EGLD: it is simpler to perform direct EGLD transfers, instead of going via multi-transfer.

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 (EsdtTokenIdentifier<<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_fallible( self, env: &Env, to: &ManagedAddress<<Env as TxEnv>::Api>, gas_limit: u64, fc: FunctionCall<<Env as TxEnv>::Api>, ) -> Result<(), TransferExecuteFailed>

Source§

fn perform_transfer_execute_legacy( 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_fallible( self, _env: &Env, _to: &ManagedAddress<<Env as TxEnv>::Api>, _gas_limit: u64, _fc: FunctionCall<<Env as TxEnv>::Api>, ) -> Result<(), TransferExecuteFailed>

Source§

fn perform_transfer_fallible( self, _env: &Env, _to: &ManagedAddress<<Env as TxEnv>::Api>, ) -> Result<(), TransferExecuteFailed>

Source§

fn perform_transfer_execute_legacy( 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<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, EgldOrEsdtTokenPayment<<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 EgldOrMultiEsdtPaymentRefs<'_, <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 EgldOrEsdtTokenPaymentRefs<'_, <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 EsdtTokenPaymentRefs<'_, <Env as TxEnv>::Api>
where Env: TxEnv,

Source§

impl<Env> TxPayment<Env> for ManagedRef<'_, <Env as TxEnv>::Api, ManagedVec<<Env as TxEnv>::Api, EgldOrEsdtTokenPayment<<Env as TxEnv>::Api>>>
where Env: TxEnv,

Source§

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

Source§

impl<Env> TxPayment<Env> for ManagedVec<<Env as TxEnv>::Api, EgldOrEsdtTokenPayment<<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> TxPayment<Env> for TestEsdtTransfer<'_>
where Env: TxEnv,

Source§

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