ligo/gitlab-pages/docs/intro/src/what-and-why/ligo-counter.mligo
2020-02-10 19:07:20 +01:00

24 lines
599 B
Plaintext

type storage = int
type parameter =
Increment of int
| Decrement of int
| Reset
type return = operation list * storage
(* Two entrypoints *)
let add (store, delta : storage * int) : storage = store + delta
let sub (store, delta : storage * int) : storage = store - delta
(* Main access point that dispatches to the entrypoints according to
the smart contract parameter. *)
let main (action, store : parameter * storage) : return =
([] : operation list), // No operations
(match action with
Increment (n) -> add (store, n)
| Decrement (n) -> sub (store, n)
| Reset -> 0)