/ test / contracts / create_test.aes
create_test.aes
 1  contract IntegerAdder =
 2    entrypoint init() = ()
 3    entrypoint addIntegers(x, y) = x + y
 4  
 5  contract IntegerAdderHolder =
 6    type state = IntegerAdder
 7    stateful entrypoint init() = Chain.create() : IntegerAdder
 8    entrypoint get() = state
 9  
10  contract IntegerAdderFactory =
11    entrypoint init() = ()
12    stateful entrypoint new() =
13      let i = Chain.create() : IntegerAdderHolder
14      i.get()
15  
16  payable contract ValueAdder =
17    entrypoint init() = ()
18    stateful entrypoint addValue(x) =
19      let integerAdderFactory = Chain.create()
20      let adder = integerAdderFactory.new()
21      adder.addIntegers(x, Contract.balance)
22  
23  main contract EnterpriseContract =
24    entrypoint init() = ()
25    stateful payable entrypoint increaseByThree(x) =
26      require(Call.value >= 3, "Price for addition = 3AEtto, insufficient funds")
27      let threeAdder = Chain.create(value = 3)
28      threeAdder.addValue(x)