1. Introduction
  2. 1. Quickstart
    ❱
    1. 1.1. Write your first contract
    2. 1.2. Deploying a contract to a testnet
  3. 2. Using Fe
    ❱
    1. 2.1. Installation
    2. 2.2. Using projects
    3. 2.3. Tutorials
      ❱
      1. 2.3.1. Open auction
    4. 2.4. Example Contracts
      ❱
      1. 2.4.1. Open auction
    5. 2.5. Useful external links
  4. 3. Development
    ❱
    1. 3.1. Build & Test
    2. 3.2. Release
  5. 4. Standard Library
    ❱
    1. 4.1. Precompiles
  6. 5. Specification (WIP)
    ❱
    1. 5.1. Notation
    2. 5.2. Lexical Structure
      ❱
      1. 5.2.1. Keywords
      2. 5.2.2. Identifiers
      3. 5.2.3. Tokens
    3. 5.3. Comments
    4. 5.4. Items
      ❱
      1. 5.4.1. Visibility and Privacy
      2. 5.4.2. Structs
      3. 5.4.3. Traits
      4. 5.4.4. Enums
      5. 5.4.5. Type Aliases
      6. 5.4.6. Contracts
      7. 5.4.7. Functions
        ❱
        1. 5.4.7.1. Context
        2. 5.4.7.2. Self
    5. 5.5. Statements
      ❱
      1. 5.5.1. pragma Statement
      2. 5.5.2. const Statement
      3. 5.5.3. let Statement
      4. 5.5.4. Assignment Statement
      5. 5.5.5. Augmenting Assignment Statement
      6. 5.5.6. revert Statement
      7. 5.5.7. return Statement
      8. 5.5.8. if Statement
      9. 5.5.9. for Statement
      10. 5.5.10. while Statement
      11. 5.5.11. break Statement
      12. 5.5.12. continue Statement
      13. 5.5.13. match Statement
      14. 5.5.14. assert Statement
    6. 5.6. Expressions
      ❱
      1. 5.6.1. Call expressions
      2. 5.6.2. Tuple expressions
      3. 5.6.3. List expressions
      4. 5.6.4. Struct expressions
      5. 5.6.5. Index expressions
      6. 5.6.6. Attribute expressions
      7. 5.6.7. Name expressions
      8. 5.6.8. Path expressions
      9. 5.6.9. Literal expressions
      10. 5.6.10. Arithmetic Operators
      11. 5.6.11. Comparison Operators
      12. 5.6.12. Boolean Operators
      13. 5.6.13. Unary Operators
    7. 5.7. Type System
      ❱
      1. 5.7.1. Types
        ❱
        1. 5.7.1.1. Boolean Type
        2. 5.7.1.2. Contract Type
        3. 5.7.1.3. Numeric Types
        4. 5.7.1.4. Tuple Types
        5. 5.7.1.5. Array Types
        6. 5.7.1.6. Struct Types
        7. 5.7.1.7. Enum Types
        8. 5.7.1.8. Address Type
        9. 5.7.1.9. Map Type
        10. 5.7.1.10. String Type
        11. 5.7.1.11. Unit Type
        12. 5.7.1.12. Function Type
    8. 5.8. Data Layout
      ❱
      1. 5.8.1. Stack
      2. 5.8.2. Storage
        ❱
        1. 5.8.2.1. Constant size values in storage
        2. 5.8.2.2. Maps in storage
        3. 5.8.2.3. to_mem() function
      3. 5.8.3. Memory
        ❱
        1. 5.8.3.1. Sequence types in memory
  7. 6. Contributing
  8. 7. Release Notes
  9. 8. Code of Conduct

The Fe Guide

Fe Language Specification

Warning: This is a work in progress document. It is incomplete and specifications aren't stable yet.
  • Notation
  • Lexical Structure
    • Keywords
    • Identifiers
    • Tokens
  • Comments
  • Items
    • Visibility and Privacy
    • Structs
    • Traits
    • Enums
    • Type Aliases
    • Contracts
    • Functions
      • Context
      • Self
  • Statements
    • pragma Statement
    • Assignment Statement
    • Augmenting Assignment Statement
    • const Statement
    • let Statement
    • revert Statement
    • return Statement
    • if Statement
    • for Statement
    • while Statement
    • break Statement
    • continue Statement
    • assert Statement
  • Expressions
    • Call expressions
    • Tuple expressions
    • List expressions
    • Index expressions
    • Attribute expressions
    • Name expressions
    • Literal expressions
    • Arithmetic Operators
    • Comparison Operators
    • Boolean Operators
    • Unary Operators
  • Type System
    • Types
      • Boolean Type
      • Contract Type
      • Numeric Types
      • Tuple Types
      • Array Types
      • Struct Types
      • Enum Types
      • Address Type
      • Map Type
      • String Type
  • Data Layout
    • Stack
    • Storage
      • Constant size values in storage
      • Maps in storage
      • to_mem() function
    • Memory
      • Sequence types in memory