Skip to main content

Decorators overview

ask! provides a set of decorators to allow developers to code smart contract in Assemblyscirpt. eg.@contract. To further define the decorator's behavior during compilation, ask! introduces parameters within decorator. eg. @message({"mutates": false}). Currently, ask! has mainly two types of decorators: class decorators and syntax decorators.

contract#

class:#

@contract: marks this class as a contract

@dynamic: marks this class as an existing contract for cross contract call

property:#

@state: marks this class property as state needs to be synced to blockchain

method:#

@constructor: marks this method as constructor in instatiate a contract

@message: marks this method as a public method in a smart contract

event#

class#

@event: marks this class as an event emitted during contract execution

property:#

@topic: marks this class property as a topic and to be indexed

metadata#

@doc: provide documentation for the information generated by metadata.json. It can add documentation comments for @contract/@event/@message/@constructor declarations.

@contract@doc(desc = "MyToken conract that implement erc20 contract")class MyToken {  // ...}