Expand description
Blockchain-specific methods available to the smart contract. This is a wrapper around a
low-level BlockchainInterface
. Unless you know what you are doing prefer using env::*
whenever possible. In case of cross-contract calls prefer using even higher-level API available
through callback_args
, callback_args_vec
, ext_contract
, Promise
, and PromiseOrValue
.
Constants
Price per 1 byte of storage from mainnet genesis config. TODO: will be using the host function when it will be available.
Functions
Aborts the current contract execution without a custom message.
To include a message, use panic_str
.
The balance attached to the given account. This includes the attached_deposit that was attached to the transaction
The balance locked for potential validator staking.
The balance that was attached to the call that will be immediately deposited before the contract execution starts
Returns the height of the block the transaction is being executed in.
Current block index.
Current block timestamp, i.e, number of non-leap-nanoseconds since January 1, 1970 0:00:00 UTC.
The id of the account that owns the current contract.
Current epoch height.
The input to the contract call serialized as bytes. If input is not provided returns None
.
Returns true
if the given account ID is valid and false
otherwise.
Hashes the random sequence of bytes using keccak256.
Hashes the bytes using the Keccak-256 hash function. This returns a 32 byte hash.
Hashes the random sequence of bytes using keccak512.
Hashes the bytes using the Keccak-512 hash function. This returns a 64 byte hash.
Log the UTF-8 encodable message.
Logs the string message message. This message is stored on chain.
Terminates the execution of the program with the UTF-8 encoded message.
panic_str
should be used as the bytes are required to be UTF-8
Terminates the execution of the program with the UTF-8 encoded message.
The id of the account that was the previous contract in the chain of cross-contract calls.
If this is the first contract, it is equal to signer_account_id
.
The amount of gas attached to the call that can be used to pay for the gas fees.
Creates a new promise which completes when time all promises passed as arguments complete.
Creates a promise that will execute a method on account with given arguments and attaches the given amount and gas.
If the current function is invoked by a callback we can access the execution results of the promises that caused the callback.
If the current function is invoked by a callback we can access the execution results of the promises that caused the callback. This function returns the number of complete and incomplete callbacks.
Consider the execution result of promise under promise_idx
as execution result of this
function.
Attaches the callback that is executed after promise pointed by promise_idx
is complete.
Returns the random seed from the current block. This 32 byte hash is based on the VRF value from the block. This value is not modified in any way each time this function is called within the same method/block.
Returns the random seed from the current block. This 32 byte hash is based on the VRF value from the block. This value is not modified in any way each time this function is called within the same method/block.
Reads the content of the register_id
. If register is not used returns None
.
Returns the size of the register. If register is not used returns None
.
Hashes the bytes using the RIPEMD-160 hash function. This returns a 20 byte hash.
Replaces the current low-level blockchain interface accessible through env::*
with another
low-level blockchain interfacr that implements BlockchainInterface
trait. In most cases you
want to use testing_env!
macro to set it.
Setups panic hook to expose error info to the blockchain.
Hashes the random sequence of bytes using sha256.
Hashes the bytes using the SHA-256 hash function. This returns a 32 byte hash.
The id of the account that either signed the original transaction or issued the initial cross-contract call.
The public key of the account that did the signing.
Returns true
if the contract state exists and false
otherwise.
Load the state of the given object.
Reads the most recent value that was evicted with storage_write
or storage_remove
command.
Checks if there is a key-value in the storage.
Reads the value stored under the given key.
Removes the value stored under the given key.
If key-value existed returns true
, otherwise false
.
Current total storage usage of this smart contract that this account would be paying for.
Writes key-value into storage.
If another key-value existed in the storage with the same key it returns true
, otherwise false
.
The gas that was already burnt during the contract execution (cannot exceed prepaid_gas
)
For a given account return its current stake. If the account is not a validator, returns 0.
Returns the total stake of validators in the current epoch.
Sets the blob of data as the return value of the contract.