40 lines
818 B
Plaintext
40 lines
818 B
Plaintext
|
(*_*
|
||
|
name: Reasonligo Contract
|
||
|
language: reasonligo
|
||
|
compile:
|
||
|
entrypoint: main
|
||
|
dryRun:
|
||
|
entrypoint: main
|
||
|
parameters: Increment (1)
|
||
|
storage: 0
|
||
|
deploy:
|
||
|
entrypoint: main
|
||
|
storage: 0
|
||
|
evaluateValue:
|
||
|
entrypoint: ""
|
||
|
evaluateFunction:
|
||
|
entrypoint: add
|
||
|
parameters: (5, 6)
|
||
|
*_*)
|
||
|
type storage = int;
|
||
|
|
||
|
/* variant defining pseudo multi-entrypoint actions */
|
||
|
|
||
|
type action =
|
||
|
| Increment(int)
|
||
|
| Decrement(int);
|
||
|
|
||
|
let add = ((a,b): (int, int)): int => a + b;
|
||
|
let sub = ((a,b): (int, int)): int => a - b;
|
||
|
|
||
|
/* real entrypoint that re-routes the flow based on the action provided */
|
||
|
|
||
|
let main = ((p,storage): (action, storage)) => {
|
||
|
let storage =
|
||
|
switch (p) {
|
||
|
| Increment(n) => add((storage, n))
|
||
|
| Decrement(n) => sub((storage, n))
|
||
|
};
|
||
|
([]: list(operation), storage);
|
||
|
};
|