/ test / contracts / events.aes
events.aes
 1  contract interface Remote =
 2    entrypoint dummy : () => unit
 3  
 4  contract Events =
 5  
 6    // Valid index types
 7    type ix1 = int
 8    type ix2 = bool
 9    type ix3 = bits
10    type ix4 = bytes(12)
11    type ix5 = hash // bytes(32)
12    type ix6 = address
13    type ix7 = Remote
14    type ix8 = oracle(int, int)
15    type ix9 = oracle_query(int, int)
16  
17    // Valid payload types
18    type data1 = string
19    type data2 = signature  // bytes(64)
20    type data3 = bytes(65)
21  
22    datatype event
23      = Nodata0
24      | Nodata1(ix1)
25      | Nodata2(ix2, ix3)
26      | Nodata3(ix4, ix5, ix6)
27      | Data0(data1)
28      | Data1(data2, ix7)
29      | Data2(ix8, data3, ix9)
30      | Data3(ix1, ix2, ix5, data1)
31      | Event1(int, int, string)
32      | Event2(string, address)
33  
34    entrypoint nodata0()                   = Chain.event(Nodata0)
35    entrypoint nodata1(ix1)                = Chain.event(Nodata1(ix1))
36    entrypoint nodata2(ix2, ix3)           = Chain.event(Nodata2(ix2, ix3))
37    entrypoint nodata3(ix4, ix5, ix6)      = Chain.event(Nodata3(ix4, ix5, ix6))
38    entrypoint data0(data1)                = Chain.event(Data0(data1))
39    entrypoint data1(data2, ix7)           = Chain.event(Data1(data2, ix7))
40    entrypoint data2(ix8, data3, ix9)      = Chain.event(Data2(ix8, data3, ix9))
41    entrypoint data3(ix1, ix2, ix5, data1) = Chain.event(Data3(ix1, ix2, ix5, data1))
42  
43    entrypoint f1(x : int, y : string) = Chain.event(Event1(x, x+1, y))
44    entrypoint f2(s : string)          = Chain.event(Event2(s, Call.caller))