Ola language
  • Introduction
  • 🏃‍♂️Quick Start
  • 👀Ola Examples
  • 👏Ola Language
    • Variables
    • Data Types
    • Operators
    • Control Flow
    • Functions
    • Event
    • Contracts
    • Interfaces and Librariese
    • Import
    • Comment Lines
    • Features TODO
  • Standard Libraries
    • CoreLib Functions
    • Prophet Functions
  • Ola Language ABI
  • Ola Compiler
    • Compiler Frontend
    • Compiler Backend
  • Ola Language Grammar
  • Appendix
Powered by GitBook
On this page
  • State Variables
  • Functions
  • Events
  • Struct Types
  • Enum Types
Edit on GitHub
  1. Ola Language

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
}
PreviousEventNextInterfaces and Librariese

Last updated 1 year ago

👏