Struct elrond_wasm_node::ArwenApiImpl [−][src]
pub struct ArwenApiImpl {}
The reference to the API implementation based on Arwen hooks. It continas no data, can be embedded at no cost. Cloning it is a no-op.
Trait Implementations
impl BlockchainApi<ArwenBigUint> for ArwenApiImpl
[src]
impl BlockchainApi<ArwenBigUint> for ArwenApiImpl
[src]fn get_sc_address(&self) -> Address
[src]
fn get_owner_address(&self) -> Address
[src]
fn get_shard_of_address(&self, address: &Address) -> u32
[src]
fn is_smart_contract(&self, address: &Address) -> bool
[src]
fn get_caller(&self) -> Address
[src]
fn get_balance(&self, address: &Address) -> ArwenBigUint
[src]
fn get_tx_hash(&self) -> H256
[src]
fn get_gas_left(&self) -> u64
[src]
fn get_block_timestamp(&self) -> u64
[src]
fn get_block_nonce(&self) -> u64
[src]
fn get_block_round(&self) -> u64
[src]
fn get_block_epoch(&self) -> u64
[src]
fn get_block_random_seed(&self) -> Box<[u8; 48]>ⓘ
[src]
fn get_prev_block_timestamp(&self) -> u64
[src]
fn get_prev_block_nonce(&self) -> u64
[src]
fn get_prev_block_round(&self) -> u64
[src]
fn get_prev_block_epoch(&self) -> u64
[src]
fn get_prev_block_random_seed(&self) -> Box<[u8; 48]>ⓘ
[src]
fn get_current_esdt_nft_nonce(&self, address: &Address, token: &[u8]) -> u64
[src]
fn get_esdt_balance(
&self,
address: &Address,
token: &[u8],
nonce: u64
) -> ArwenBigUint
[src]
&self,
address: &Address,
token: &[u8],
nonce: u64
) -> ArwenBigUint
fn get_esdt_token_data(
&self,
address: &Address,
token: &[u8],
nonce: u64
) -> EsdtTokenData<ArwenBigUint>
[src]
&self,
address: &Address,
token: &[u8],
nonce: u64
) -> EsdtTokenData<ArwenBigUint>
pub fn get_sc_balance(&self) -> BigUint
[src]
impl CallValueApi<ArwenBigUint> for ArwenApiImpl
[src]
impl CallValueApi<ArwenBigUint> for ArwenApiImpl
[src]fn check_not_payable(&self)
[src]
fn egld_value(&self) -> ArwenBigUint
[src]
fn esdt_value(&self) -> ArwenBigUint
[src]
fn token(&self) -> TokenIdentifier
[src]
fn esdt_token_nonce(&self) -> u64
[src]
fn esdt_token_type(&self) -> EsdtTokenType
[src]
pub fn require_egld(&self) -> BigUint
[src]
pub fn require_esdt(&self, token: &[u8]) -> BigUint
[src]
pub fn payment_token_pair(&self) -> (BigUint, TokenIdentifier)
[src]
impl Clone for ArwenApiImpl
[src]
impl Clone for ArwenApiImpl
[src]Should be no-op. The API implementation is zero-sized.
fn clone(&self) -> Self
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl ContractSelfApi<ArwenBigInt, ArwenBigUint> for ArwenApiImpl
[src]
impl ContractSelfApi<ArwenBigInt, ArwenBigUint> for ArwenApiImpl
[src]type Storage = Self
Abstracts the lower-level storage functionality.
type CallValue = Self
Abstracts the call value handling at the beginning of a function call.
type SendApi = Self
Abstracts the sending of EGLD & ESDT transactions, as well as async calls.
type BlockchainApi = Self
type CryptoApi = Self
fn get_storage_raw(&self) -> Self::Storage
[src]
fn call_value(&self) -> Self::CallValue
[src]
fn send(&self) -> Self::SendApi
[src]
fn blockchain(&self) -> Self::BlockchainApi
[src]
fn crypto(&self) -> Self::CryptoApi
[src]
pub fn storage_load_cumulated_validator_reward(&self) -> BigUint
[src]
impl CryptoApi for ArwenApiImpl
[src]
impl CryptoApi for ArwenApiImpl
[src]fn sha256(&self, data: &[u8]) -> H256
[src]
fn keccak256(&self, data: &[u8]) -> H256
[src]
fn verify_bls(&self, key: &[u8], message: &[u8], signature: &[u8]) -> bool
[src]
fn verify_ed25519(&self, key: &[u8], message: &[u8], signature: &[u8]) -> bool
[src]
fn verify_secp256k1(&self, key: &[u8], message: &[u8], signature: &[u8]) -> bool
[src]
impl EndpointArgumentApi for ArwenApiImpl
[src]
impl EndpointArgumentApi for ArwenApiImpl
[src]Interface to only be used by code generated by the macros. The smart contract code doesn’t have access to these methods directly.
fn get_num_arguments(&self) -> i32
[src]
fn get_argument_len(&self, arg_index: i32) -> usize
[src]
fn copy_argument_to_slice(&self, arg_index: i32, slice: &mut [u8])
[src]
fn get_argument_vec_u8(&self, arg_index: i32) -> Vec<u8>
[src]
fn get_argument_boxed_bytes(&self, arg_index: i32) -> BoxedBytes
[src]
fn get_argument_big_uint_raw(&self, arg_id: i32) -> i32
[src]
fn get_argument_big_int_raw(&self, arg_id: i32) -> i32
[src]
fn get_argument_u64(&self, arg_id: i32) -> u64
[src]
fn get_argument_i64(&self, arg_id: i32) -> i64
[src]
pub fn check_num_arguments(&self, expected: i32)
[src]
impl EndpointFinishApi for ArwenApiImpl
[src]
impl EndpointFinishApi for ArwenApiImpl
[src]Interface to only be used by code generated by the macros. The smart contract code doesn’t have access to these methods directly.
fn finish_slice_u8(&self, slice: &[u8])
[src]
fn finish_big_int_raw(&self, handle: i32)
[src]
fn finish_big_uint_raw(&self, handle: i32)
[src]
fn finish_u64(&self, value: u64)
[src]
fn finish_i64(&self, value: i64)
[src]
impl ErrorApi for ArwenApiImpl
[src]
impl ErrorApi for ArwenApiImpl
[src]fn signal_error(&self, message: &[u8]) -> !
[src]
impl LogApi for ArwenApiImpl
[src]
impl LogApi for ArwenApiImpl
[src]Interface to only be used by code generated by the macros. The smart contract code doesn’t have access to these methods directly.
fn write_event_log(&self, topics_buffer: &ArgBuffer, data: &[u8])
[src]
fn write_legacy_log(&self, topics: &[[u8; 32]], data: &[u8])
[src]
impl SendApi<ArwenBigUint> for ArwenApiImpl
[src]
impl SendApi<ArwenBigUint> for ArwenApiImpl
[src]fn direct_egld(&self, to: &Address, amount: &ArwenBigUint, data: &[u8])
[src]
fn direct_egld_execute(
&self,
to: &Address,
amount: &ArwenBigUint,
gas_limit: u64,
function: &[u8],
arg_buffer: &ArgBuffer
) -> Result<(), &'static [u8]>
[src]
&self,
to: &Address,
amount: &ArwenBigUint,
gas_limit: u64,
function: &[u8],
arg_buffer: &ArgBuffer
) -> Result<(), &'static [u8]>
fn direct_esdt_execute(
&self,
to: &Address,
token: &[u8],
amount: &ArwenBigUint,
gas_limit: u64,
function: &[u8],
arg_buffer: &ArgBuffer
) -> Result<(), &'static [u8]>
[src]
&self,
to: &Address,
token: &[u8],
amount: &ArwenBigUint,
gas_limit: u64,
function: &[u8],
arg_buffer: &ArgBuffer
) -> Result<(), &'static [u8]>
fn direct_esdt_nft_execute(
&self,
to: &Address,
token: &[u8],
nonce: u64,
amount: &ArwenBigUint,
gas_limit: u64,
function: &[u8],
arg_buffer: &ArgBuffer
) -> Result<(), &'static [u8]>
[src]
&self,
to: &Address,
token: &[u8],
nonce: u64,
amount: &ArwenBigUint,
gas_limit: u64,
function: &[u8],
arg_buffer: &ArgBuffer
) -> Result<(), &'static [u8]>
fn async_call_raw(&self, to: &Address, amount: &ArwenBigUint, data: &[u8]) -> !
[src]
fn deploy_contract(
&self,
gas: u64,
amount: &ArwenBigUint,
code: &BoxedBytes,
code_metadata: CodeMetadata,
arg_buffer: &ArgBuffer
) -> Address
[src]
&self,
gas: u64,
amount: &ArwenBigUint,
code: &BoxedBytes,
code_metadata: CodeMetadata,
arg_buffer: &ArgBuffer
) -> Address
fn execute_on_dest_context_raw(
&self,
gas: u64,
address: &Address,
amount: &ArwenBigUint,
function: &[u8],
arg_buffer: &ArgBuffer
) -> Vec<BoxedBytes>
[src]
&self,
gas: u64,
address: &Address,
amount: &ArwenBigUint,
function: &[u8],
arg_buffer: &ArgBuffer
) -> Vec<BoxedBytes>
fn execute_on_dest_context_raw_custom_result_range<F>(
&self,
gas: u64,
address: &Address,
amount: &ArwenBigUint,
function: &[u8],
arg_buffer: &ArgBuffer,
range_closure: F
) -> Vec<BoxedBytes> where
F: FnOnce(usize, usize) -> (usize, usize),
[src]
&self,
gas: u64,
address: &Address,
amount: &ArwenBigUint,
function: &[u8],
arg_buffer: &ArgBuffer,
range_closure: F
) -> Vec<BoxedBytes> where
F: FnOnce(usize, usize) -> (usize, usize),
fn execute_on_dest_context_by_caller_raw(
&self,
gas: u64,
address: &Address,
amount: &ArwenBigUint,
function: &[u8],
arg_buffer: &ArgBuffer
) -> Vec<BoxedBytes>
[src]
&self,
gas: u64,
address: &Address,
amount: &ArwenBigUint,
function: &[u8],
arg_buffer: &ArgBuffer
) -> Vec<BoxedBytes>
fn execute_on_same_context_raw(
&self,
gas: u64,
address: &Address,
amount: &ArwenBigUint,
function: &[u8],
arg_buffer: &ArgBuffer
)
[src]
&self,
gas: u64,
address: &Address,
amount: &ArwenBigUint,
function: &[u8],
arg_buffer: &ArgBuffer
)
fn storage_store_tx_hash_key(&self, data: &[u8])
[src]
fn storage_load_tx_hash_key(&self) -> BoxedBytes
[src]
fn call_local_esdt_built_in_function(
&self,
gas: u64,
function: &[u8],
arg_buffer: &ArgBuffer
)
[src]
&self,
gas: u64,
function: &[u8],
arg_buffer: &ArgBuffer
)
pub fn direct_esdt_via_transf_exec(
&self,
to: &Address,
token: &[u8],
amount: &BigUint,
data: &[u8]
) -> Result<(), &'static [u8]>
[src]
&self,
to: &Address,
token: &[u8],
amount: &BigUint,
data: &[u8]
) -> Result<(), &'static [u8]>
pub fn direct(
&self,
to: &Address,
token: &TokenIdentifier,
amount: &BigUint,
data: &[u8]
)
[src]
&self,
to: &Address,
token: &TokenIdentifier,
amount: &BigUint,
data: &[u8]
)
pub fn direct_esdt_via_async_call(
&self,
to: &Address,
esdt_token_name: &[u8],
amount: &BigUint,
data: &[u8]
) -> !
[src]
&self,
to: &Address,
esdt_token_name: &[u8],
amount: &BigUint,
data: &[u8]
) -> !
pub fn direct_via_async_call(
&self,
to: &Address,
token: &TokenIdentifier,
amount: &BigUint,
data: &[u8]
)
[src]
&self,
to: &Address,
token: &TokenIdentifier,
amount: &BigUint,
data: &[u8]
)
pub fn async_call(&self, async_call: AsyncCall<BigUint>) -> !
[src]
pub fn esdt_local_mint(&self, gas: u64, token: &[u8], amount: &BigUint)
[src]
pub fn esdt_local_burn(&self, gas: u64, token: &[u8], amount: &BigUint)
[src]
pub fn esdt_nft_create<T>(
&self,
gas: u64,
token: &[u8],
amount: &BigUint,
name: &BoxedBytes,
royalties: &BigUint,
hash: &H256,
attributes: &T,
uris: &[BoxedBytes]
) where
T: TopEncode,
[src]
&self,
gas: u64,
token: &[u8],
amount: &BigUint,
name: &BoxedBytes,
royalties: &BigUint,
hash: &H256,
attributes: &T,
uris: &[BoxedBytes]
) where
T: TopEncode,
pub fn esdt_nft_add_quantity(
&self,
gas: u64,
token: &[u8],
nonce: u64,
amount: &BigUint
)
[src]
&self,
gas: u64,
token: &[u8],
nonce: u64,
amount: &BigUint
)
pub fn esdt_nft_burn(
&self,
gas: u64,
token: &[u8],
nonce: u64,
amount: &BigUint
)
[src]
&self,
gas: u64,
token: &[u8],
nonce: u64,
amount: &BigUint
)
pub fn direct_esdt_nft_via_async_call(
&self,
from: &Address,
to: &Address,
token: &[u8],
nonce: u64,
amount: &BigUint,
data: &[u8]
)
[src]
&self,
from: &Address,
to: &Address,
token: &[u8],
nonce: u64,
amount: &BigUint,
data: &[u8]
)
pub fn direct_esdt_nft_via_transfer_exec(
&self,
to: &Address,
token: &[u8],
nonce: u64,
amount: &BigUint,
data: &[u8]
) -> Result<(), &'static [u8]>
[src]
&self,
to: &Address,
token: &[u8],
nonce: u64,
amount: &BigUint,
data: &[u8]
) -> Result<(), &'static [u8]>
impl StorageReadApi for ArwenApiImpl
[src]
impl StorageReadApi for ArwenApiImpl
[src]fn storage_load_len(&self, key: &[u8]) -> usize
[src]
fn storage_load_vec_u8(&self, key: &[u8]) -> Vec<u8>
[src]
fn storage_load_boxed_bytes(&self, key: &[u8]) -> BoxedBytes
[src]
fn storage_load_big_uint_raw(&self, key: &[u8]) -> i32
[src]
fn storage_load_u64(&self, key: &[u8]) -> u64
[src]
fn storage_load_i64(&self, key: &[u8]) -> i64
[src]
impl StorageWriteApi for ArwenApiImpl
[src]
impl StorageWriteApi for ArwenApiImpl
[src]fn storage_store_slice_u8(&self, key: &[u8], value: &[u8])
[src]
fn storage_store_big_uint_raw(&self, key: &[u8], handle: i32)
[src]
fn storage_store_u64(&self, key: &[u8], value: u64)
[src]
fn storage_store_i64(&self, key: &[u8], value: i64)
[src]
Auto Trait Implementations
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
The resulting type after obtaining ownership.