multiversx_sc::types

Struct ContractCallNoPayment

Source
pub struct ContractCallNoPayment<SA, OriginalResult>
where SA: CallTypeApi + 'static,
{ pub to: ManagedAddress<SA>, pub function_call: FunctionCall<SA>, pub explicit_gas_limit: u64, /* private fields */ }
👎Deprecated since 0.49.0: Please use the unified transaction syntax instead.
Expand description

Holds metadata for calling another contract, without payments.

Proxies generally create contract calls of this type (unless there are payment arguments in the endpoint - but these are mostly obsolete now).

It is also the basis for all other contract call types, all of them contain this one.

Fields§

§to: ManagedAddress<SA>
👎Deprecated since 0.49.0: Please use the unified transaction syntax instead.
§function_call: FunctionCall<SA>
👎Deprecated since 0.49.0: Please use the unified transaction syntax instead.
§explicit_gas_limit: u64
👎Deprecated since 0.49.0: Please use the unified transaction syntax instead.

Implementations§

Source§

impl<SA, OriginalResult> ContractCallNoPayment<SA, OriginalResult>
where SA: CallTypeApi + 'static,

Source

pub fn new<N: Into<ManagedBuffer<SA>>>( to: ManagedAddress<SA>, endpoint_name: N, ) -> Self

Source

pub fn with_egld_transfer( self, egld_amount: BigUint<SA>, ) -> ContractCallWithEgld<SA, OriginalResult>

Sets payment to be EGLD transfer.

Source

pub fn with_esdt_transfer<P: Into<EsdtTokenPayment<SA>>>( self, payment: P, ) -> ContractCallWithMultiEsdt<SA, OriginalResult>

Adds a single ESDT token transfer to a contract call.

Can be called multiple times on the same call.

Source

pub fn add_esdt_token_transfer( self, payment_token: TokenIdentifier<SA>, payment_nonce: u64, payment_amount: BigUint<SA>, ) -> ContractCallWithMultiEsdt<SA, OriginalResult>

👎Deprecated since 0.39.0: Replace by contract_call.with_esdt_transfer((payment_token, payment_nonce, payment_amount)). The tuple argument will get automatically converted to EsdtTokenPayment.
Source

pub fn with_multi_token_transfer( self, payments: ManagedVec<SA, EsdtTokenPayment<SA>>, ) -> ContractCallWithMultiEsdt<SA, OriginalResult>

Sets payment to be a (potentially) multi-token transfer.

Source

pub fn with_any_payment( self, payment: EgldOrMultiEsdtPayment<SA>, ) -> ContractCallWithAnyPayment<SA, OriginalResult>

Sets payment to be a (potentially) multi-token transfer.

Source

pub fn with_egld_or_single_esdt_transfer<P: Into<EgldOrEsdtTokenPayment<SA>>>( self, payment: P, ) -> ContractCallWithEgldOrSingleEsdt<SA, OriginalResult>

Sets payment to be either EGLD or a single ESDT transfer, as determined at runtime.

Source

pub fn with_egld_or_single_esdt_token_transfer( self, payment_token: EgldOrEsdtTokenIdentifier<SA>, payment_nonce: u64, payment_amount: BigUint<SA>, ) -> ContractCallWithEgldOrSingleEsdt<SA, OriginalResult>

👎Deprecated since 0.39.0: Replace by contract_call.with_egld_or_single_esdt_transfer((payment_token, payment_nonce, payment_amount)).
Source

pub fn into_function_call(self) -> FunctionCall<SA>

Source

pub fn tx(self) -> Tx<TxScEnv<SA>, (), (), (), (), FunctionCall<SA>, ()>

Trait Implementations§

Source§

impl<SA, OriginalResult> ContractCall<SA> for ContractCallNoPayment<SA, OriginalResult>
where SA: CallTypeApi + 'static, OriginalResult: TopEncodeMulti,

Source§

fn transfer_execute(self)

Immediately launches a transfer-execute call. Read more
Source§

fn argument<T: TopEncodeMulti>(self, arg: &T) -> Self

Serializes and pushes a value to the arguments buffer. Read more
Source§

fn push_raw_argument<RawArg: Into<ManagedBuffer<SA>>>( &mut self, raw_arg: RawArg, )

For cases where we build the contract call by hand. Read more
Source§

fn with_raw_arguments(self, raw_argument_buffer: ManagedArgBuffer<SA>) -> Self

For cases where we build the contract call by hand.
Source§

fn with_gas_limit(self, gas_limit: u64) -> Self

Sets an explicit gas limit to the call.
Source§

fn into_call_data_string(self) -> ManagedBuffer<SA>

Source§

fn async_call(self) -> AsyncCall<SA>

Converts to a legacy async call.
Source§

fn async_call_promise(self) -> AsyncCallPromises<SA>

Converts to an async promise.
Source§

fn execute_on_dest_context<RequestedResult>(self) -> RequestedResult
where RequestedResult: TopDecodeMulti,

Executes immediately, synchronously, and returns contract call result. Only works if the target contract is in the same shard.
Source§

fn execute_on_dest_context_with_back_transfers<RequestedResult>( self, ) -> (RequestedResult, BackTransfers<SA>)
where RequestedResult: TopDecodeMulti,

Executes immediately, synchronously, and returns contract call result. Only works if the target contract is in the same shard.
Source§

fn execute_on_dest_context_ignore_result(self)

👎Deprecated since 0.36.1: Redundant method, use let _: IgnoreValue = contract_call.execute_on_dest_context(...) instead
Executes immediately, synchronously. Read more
Source§

fn execute_on_dest_context_readonly<RequestedResult>(self) -> RequestedResult
where RequestedResult: TopDecodeMulti,

Executes immediately, synchronously, and returns contract call result. Read more
Source§

fn execute_on_same_context<RequestedResult>(self) -> RequestedResult
where RequestedResult: TopDecodeMulti,

Executes immediately, synchronously, and returns contract call result. Read more
Source§

impl<SA, OriginalResult> ContractCallBase<SA> for ContractCallNoPayment<SA, OriginalResult>
where SA: CallTypeApi + 'static, OriginalResult: TopEncodeMulti,

Source§

type OriginalResult = OriginalResult

👎Deprecated since 0.49.0: Please use the unified transaction syntax instead.
Source§

impl<Api, R> From<ContractCallNoPayment<Api, R>> for FunctionCall<Api>
where Api: CallTypeApi,

Source§

fn from(ccnp: ContractCallNoPayment<Api, R>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<SA, OriginalResult> Freeze for ContractCallNoPayment<SA, OriginalResult>

§

impl<SA, OriginalResult> RefUnwindSafe for ContractCallNoPayment<SA, OriginalResult>

§

impl<SA, OriginalResult> Send for ContractCallNoPayment<SA, OriginalResult>
where SA: Send, OriginalResult: Send, <SA as HandleTypeInfo>::ManagedBufferHandle: Send,

§

impl<SA, OriginalResult> Sync for ContractCallNoPayment<SA, OriginalResult>
where SA: Sync, OriginalResult: Sync, <SA as HandleTypeInfo>::ManagedBufferHandle: Sync,

§

impl<SA, OriginalResult> Unpin for ContractCallNoPayment<SA, OriginalResult>
where SA: Unpin, OriginalResult: Unpin, <SA as HandleTypeInfo>::ManagedBufferHandle: Unpin,

§

impl<SA, OriginalResult> UnwindSafe for ContractCallNoPayment<SA, OriginalResult>
where SA: UnwindSafe, OriginalResult: UnwindSafe, <SA as HandleTypeInfo>::ManagedBufferHandle: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.