ligo/gitlab-pages/docs/reference/toplevel.md
2020-04-07 17:33:20 -05:00

3.3 KiB

id title description hide_table_of_contents
toplevel Toplevel Available functions at the top level true

import Syntax from '@theme/Syntax'; import SyntaxTitle from '@theme/SyntaxTitle';

These functions are available without any needed prefix.

function is_nat: int -> option(nat) val is_nat: int -> nat option let is_nat: int => option(nat)

Convert an int to a nat if possible.

function abs: int -> nat val abs: int -> nat let abs: int => nat

Cast an int to nat.

function int: nat -> int val int: nat -> int let int: nat => int

Cast an nat to int.

const unit: unit val unit: unit let (): unit

A helper to create a unit.

function failwith : string -> unit val failwith : string -> unit let failwith: string => unit

Cause the contract to fail with an error message.

⚠ Using this currently requires in general a type annotation on the failwith call.

function assert : bool -> unit val assert : bool -> unit let assert: bool => unit

Check if a certain condition has been met. If not the contract will fail.

function ediv : int -> int -> option (int * nat) function ediv : mutez -> nat -> option (mutez * mutez) function ediv : mutez -> mutez -> option (nat * mutez) function ediv : nat -> nat -> option (nat * nat) val ediv : int -> int -> (int * nat) option val ediv : mutez -> nat -> (mutez * mutez) option val ediv : mutez -> mutez -> (nat * mutez) option val ediv : nat -> nat -> (nat * nat) option let ediv: (int, int) => option((int, nat)) let ediv: (mutez, nat) => option((mutez, mutez)) let ediv: (mutez, mutez) => option((nat, mutez)) let ediv: (nat, nat) => option((nat, nat))

Compiles to Michelson EDIV, one operation to get both the quotient and remainder of a division. ediv x y returns None if y is zero, otherwise returns Some (quotient, remainder) such that x = (quotient * y) + remainder and 0 <= remainder < abs(y).