Re-exports
Modules
Collections that offer an alternative to standard containers from
std::collections::*
by
utilizing the underlying blockchain trie storage more efficiently.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
.Helper types for JSON serialization.
Mock blockchain utilities. These can only be used inside tests and are not available for
a wasm32 target.
Collections and types used when interacting with storage.
Testing blockchain utilities. These can only be used inside tests and are not available for
a wasm32 target.
Helper methods that often used in smart contracts.
Macros
Helper macro to log a message through
env::log_str
.
This macro can be used similar to the std::format
macro in most cases.Helper macro to create assertions that will panic through the runtime host functions.
setup_allocDeprecated
Deprecated helper function which used to generate code to initialize the
GlobalAllocator
.
This is now initialized by default. Disable wee_alloc
feature to configure manually.Initializes a testing environment to mock interactions which would otherwise go through a
validator node. This macro will initialize or overwrite the
MockedBlockchain
instance for interactions from a smart contract.Structs
A simple type used in conjunction with FunctionError representing that the function should
abort without a custom message.
Account identifier. This is the human readable utf8 string which is used internally to index
accounts on the network and their respective state.
Represents the amount of NEAR tokens in “gas units” which are used to fund transactions.
Weight of unused gas to use with
promise_batch_action_function_call_weight
.Mocked blockchain that can be used in the tests for the smart contracts.
It implements
BlockchainInterface
by redirecting calls to VMLogic
. It unwraps errors of
VMLogic
to cause panic during the unit tests similarly to how errors of VMLogic
would cause
the termination of guest program execution. Unit tests can even assert the expected error
message.A structure representing a result of the scheduled execution on another contract.
Public key in a binary format with base58 string serialization with human-readable curve.
The key types currently supported are
secp256k1
and ed25519
.Context for the contract execution.
Enums
PublicKey curve
All error variants which can occur with promise results.
When the method can return either a promise or a value, it can be called with
PromiseOrValue::Promise
or PromiseOrValue::Value
to specify which one should be returned.When there is a callback attached to one or more contract calls the execution results of these
calls are available to the contract invoked through the callback.
When there is a callback attached to one or more contract calls the execution results of these
calls are available to the contract invoked through the callback.
Constants
Balance of one NEAR, which is 10^24 Yocto NEAR.
Balance of one Yocto NEAR, which is the smallest denomination. This value is 10^-24 of one NEAR.
Traits
Enables contract runtime to panic with the given type. Any error type used in conjunction
with
#[handle_result]
has to implement this trait.Converts Self into a
Vec<u8>
that is used for a storage key through into_storage_key
.Type Definitions
Balance is a type for storing amounts of tokens, specified in yoctoNEAR.
Height of the block.
BlockHeightDeltaDeprecated
Block height delta that measures the difference between
BlockHeight
s.Raw type for 32 bytes of the hash.
Raw type for duration in nanoseconds
Height of the epoch.
GCCountDeprecated
IteratorIndexDeprecated
MerkleHashDeprecated
Hash used by a struct implementing the Merkle tree.
NonceDeprecated
Nonce for transactions.
NumBlocksDeprecated
Number of blocks in current group.
NumSeatsDeprecated
Number of seats of validators (block producer or hidden ones) in current group (settlement).
NumShardsDeprecated
Number of shards in current group.
PromiseIdDeprecated
Promise index that is computed only once.
ProtocolVersionDeprecated
ReceiptIndexDeprecated
An index of Receipt to append an action
ShardIdDeprecated
Shard index, from 0 to NUM_SHARDS - 1.
StorageUsage is used to count the amount of storage used by a contract.
StorageUsageChangeDeprecated
StorageUsageChange is used to count the storage usage within a single contract call.
Raw type for timestamp in nanoseconds
ValidatorIdDeprecated
Validator identifier in current group.
ValidatorMaskDeprecated
Mask which validators participated in multi sign.
Attribute Macros
ext_contract
takes a Rust Trait and converts it to a module with static methods.
Each of these static methods takes positional arguments defined by the Trait,
then the receiver_id, the attached deposit and the amount of gas and returns a new Promise.This attribute macro is used on a struct and its implementations
to generate the necessary code to expose
pub
methods from the contract as well
as generating the glue code to be a valid NEAR contract.Derive Macros
BorshStorageKey
generates implementation for BorshIntoStorageKey
trait.
It allows the type to be passed as a unique prefix for persistent collections.
The type should also implement or derive BorshSerialize
trait.NOTE: This is an internal implementation for
#[near_bindgen(events(standard = ...))]
attribute.FunctionError
generates implementation for near_sdk::FunctionError
trait.
It allows contract runtime to panic with the type using its ToString
implementation
as the message.PanicOnDefault
generates implementation for Default
trait that panics with the following
message The contract is not initialized
when default()
is called.
This is a helpful macro in case the contract is required to be initialized with either init
or
init(ignore_state)
.