Struct multiversx_sc::types::ContractCallWithEgld
source · pub struct ContractCallWithEgld<SA, OriginalResult>where
SA: CallTypeApi + 'static,{
pub basic: ContractCallNoPayment<SA, OriginalResult>,
pub egld_payment: BigUint<SA>,
}
Expand description
Holds data for calling another contract, with EGLD payment only.
Gets created when chaining method with_egld_transfer
.
If the payment is zero, it bevahes exactly like ContractCallNoPayment
.
It also represents the normalized form of any contract call, since ESDT transfers (the only payment not available here) get converted to builtin function calls in normalized form.
Fields§
§basic: ContractCallNoPayment<SA, OriginalResult>
§egld_payment: BigUint<SA>
Implementations§
source§impl<SA, OriginalResult> ContractCallWithEgld<SA, OriginalResult>where
SA: CallTypeApi + 'static,
impl<SA, OriginalResult> ContractCallWithEgld<SA, OriginalResult>where SA: CallTypeApi + 'static,
sourcepub fn convert_to_esdt_transfer_call(
self,
payments: ManagedVec<SA, EsdtTokenPayment<SA>>
) -> Self
pub fn convert_to_esdt_transfer_call( self, payments: ManagedVec<SA, EsdtTokenPayment<SA>> ) -> Self
If this is an ESDT call, it converts it to a regular call to ESDTTransfer.
Async calls require this step, but not transfer_esdt_execute
.
source§impl<SA, OriginalResult> ContractCallWithEgld<SA, OriginalResult>where
SA: CallTypeApi + 'static,
impl<SA, OriginalResult> ContractCallWithEgld<SA, OriginalResult>where SA: CallTypeApi + 'static,
pub fn resolve_gas_limit(&self) -> u64
source§impl<SA, OriginalResult> ContractCallWithEgld<SA, OriginalResult>where
SA: CallTypeApi + 'static,
impl<SA, OriginalResult> ContractCallWithEgld<SA, OriginalResult>where SA: CallTypeApi + 'static,
sourcepub fn new<N: Into<ManagedBuffer<SA>>>(
to: ManagedAddress<SA>,
endpoint_name: N,
egld_payment: BigUint<SA>
) -> Self
pub fn new<N: Into<ManagedBuffer<SA>>>( to: ManagedAddress<SA>, endpoint_name: N, egld_payment: BigUint<SA> ) -> Self
Creates a new instance directly.
The constructor is mostly for hand-written proxies,
the usual way of constructing this object is via the builder methods of other contract call types,
especially with_egld_transfer
.
Trait Implementations§
source§impl<SA, OriginalResult> ContractCall<SA> for ContractCallWithEgld<SA, OriginalResult>where
SA: CallTypeApi + 'static,
OriginalResult: TopEncodeMulti,
impl<SA, OriginalResult> ContractCall<SA> for ContractCallWithEgld<SA, OriginalResult>where SA: CallTypeApi + 'static, OriginalResult: TopEncodeMulti,
type OriginalResult = OriginalResult
source§fn transfer_execute(self)
fn transfer_execute(self)
Immediately launches a transfer-execute call. Read more
source§fn push_raw_argument<RawArg: Into<ManagedBuffer<SA>>>(
&mut self,
raw_arg: RawArg
)
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
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
fn with_gas_limit(self, gas_limit: u64) -> Self
Sets an explicit gas limit to the call.
source§fn async_call(self) -> AsyncCall<SA>
fn async_call(self) -> AsyncCall<SA>
Converts to a legacy async call.
source§fn execute_on_dest_context<RequestedResult>(self) -> RequestedResultwhere
RequestedResult: TopDecodeMulti,
fn execute_on_dest_context<RequestedResult>(self) -> RequestedResultwhere 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)
fn execute_on_dest_context_ignore_result(self)
👎Deprecated since 0.36.1: Redundant method, use
let _: IgnoreValue = contract_call.execute_on_dest_context(...)
insteadExecutes immediately, synchronously. Read more
source§fn execute_on_dest_context_readonly<RequestedResult>(self) -> RequestedResultwhere
RequestedResult: TopDecodeMulti,
fn execute_on_dest_context_readonly<RequestedResult>(self) -> RequestedResultwhere RequestedResult: TopDecodeMulti,
Executes immediately, synchronously, and returns contract call result. Read more
source§fn execute_on_same_context<RequestedResult>(self) -> RequestedResultwhere
RequestedResult: TopDecodeMulti,
fn execute_on_same_context<RequestedResult>(self) -> RequestedResultwhere RequestedResult: TopDecodeMulti,
Executes immediately, synchronously, and returns contract call result. Read more
Auto Trait Implementations§
impl<SA, OriginalResult> CodecFromSelf for ContractCallWithEgld<SA, OriginalResult>where OriginalResult: CodecFromSelf, SA: CodecFromSelf,
impl<SA, OriginalResult> RefUnwindSafe for ContractCallWithEgld<SA, OriginalResult>where OriginalResult: RefUnwindSafe, SA: RefUnwindSafe, <SA as HandleTypeInfo>::BigIntHandle: RefUnwindSafe, <SA as HandleTypeInfo>::ManagedBufferHandle: RefUnwindSafe,
impl<SA, OriginalResult> Send for ContractCallWithEgld<SA, OriginalResult>where OriginalResult: Send, SA: Send, <SA as HandleTypeInfo>::BigIntHandle: Send, <SA as HandleTypeInfo>::ManagedBufferHandle: Send,
impl<SA, OriginalResult> Sync for ContractCallWithEgld<SA, OriginalResult>where OriginalResult: Sync, SA: Sync, <SA as HandleTypeInfo>::BigIntHandle: Sync, <SA as HandleTypeInfo>::ManagedBufferHandle: Sync,
impl<SA, OriginalResult> Unpin for ContractCallWithEgld<SA, OriginalResult>where OriginalResult: Unpin, SA: Unpin, <SA as HandleTypeInfo>::BigIntHandle: Unpin, <SA as HandleTypeInfo>::ManagedBufferHandle: Unpin,
impl<SA, OriginalResult> UnwindSafe for ContractCallWithEgld<SA, OriginalResult>where OriginalResult: UnwindSafe, SA: UnwindSafe, <SA as HandleTypeInfo>::BigIntHandle: UnwindSafe, <SA as HandleTypeInfo>::ManagedBufferHandle: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more