/
caller.lua
47 lines (29 loc) · 897 Bytes
/
caller.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
state.var {
var = state.value()
}
timer = "AmhWD5WtbScVHWS2N4Rhy6CHCm4AVGjzA1HyDywUfnrURSHvHgAh"
call_price = "10000000000000000" -- 0.01 aergo = minimum
function get_value()
return var:get()
end
function on_timer(arg)
assert(system.getSender() == timer, "only the timer contract can call this function")
var:set(arg)
end
function use_timer(interval, arg)
var:set("empty")
contract.call.value(call_price)(timer, "new", interval, "on_timer", arg)
end
function use_timer2(waergo, interval, arg)
var:set("empty")
contract.call(waergo, "transfer", timer, call_price, interval, "on_timer", arg)
end
function transfer()
-- do nothing, only receive tokens
end
-- wrapped aergo (waergo) ARC1 tokens
function tokensReceived(operator, from, amount, ...)
end
abi.payable(transfer)
abi.register(use_timer, use_timer2, on_timer, tokensReceived)
abi.register_view(get_value)