Contracts
Contracts in Ola are similar to Solidity languages. Each contract can contain declarations of State Variables
, Functions
, Events
, Struct Types
and Enum Types
.
There are also special kinds of contracts called libraries
and interface
.
The section about contracts contains more details than this section, which serves to provide a quick overview.
State Variables
State variables are variables whose values are permanently stored in contract storage.
contract SimpleStorage {
u32 storedData; // State variable
// ...
}
Functions
Functions are the executable units of code. Functions are usually defined inside a contract.
contract SimpleAuction {
fn bid() { // Function
// ...
}
}
Functions accept parameters
and return
variables to pass parameters and values between them.
Events
Events are convenience interfaces with the Ola logging facilities.
contract SimpleAuction {
event HighestBidIncreased(address bidder, u32 amount); // Event
fn bid() {
// ...
emit HighestBidIncreased(original_address(), 1); // Triggering event
}
}
Struct Types
Structs are custom defined types that can group several variables
contract Ballot {
struct Voter { // Struct
u32 weight;
bool voted;
address delegate;
u32 vote;
}
}
Enum Types
Enums can be used to create custom types with a finite set of constant values
contract Purchase {
enum State { Created, Locked, Inactive } // Enum
}
Last updated