Macros

metadata generates the metadata method and should be placed at the very end of the lib.rs file.

Attribute Macros

callbackDeprecated

callback is a marker attribute it does not generate code by itself.

callback_vecDeprecated

callback_args_vec is a marker attribute it does not generate code by itself.

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.

initDeprecated

init is a marker attribute it does not generate code by itself.

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.

result_serializer is a marker attribute it does not generate code by itself.

serializerDeprecated

serializer is a marker attribute it does not generate code by itself.

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.

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).