67 Commits

Author SHA1 Message Date
Tobias Lindahl
301e6ff501 Handle oracle operation in FATE
Keep oracle type information on fcode level

Introduce typereps as values

Handle oracle registration

Handle oracle query object and oracle_query op

Handle oracle get question

Handle oracle query fee

Handle oracle get answer

Handle oracle respond

Handle oracle extend
2019-06-18 13:59:21 +02:00
Hans Svensson
81f277127d Handle signature, hash and map in create_calldata for FATE 2019-06-14 16:08:59 +02:00
Hans Svensson
11dc632927 Add handling of auth_tx_hash 2019-06-14 13:14:24 +02:00
Thomas Arts
a34558412d Arguments are in the body of the call, use term_to_fate before serializing them 2019-06-14 12:41:21 +02:00
Thomas Arts
95c41b8eee Avoid hash collisions in calldata creation 2019-06-14 12:41:21 +02:00
Thomas Arts
3a6337d8ca Testing that fate calldata is immune to existing __call in contract 2019-06-14 12:41:21 +02:00
Ulf Norell
17a1fd8095 Add require builtin 2019-06-14 10:27:07 +02:00
Hans Svensson
3e2281a834 Make fate-backend also return a Map 2019-06-10 15:13:34 +02:00
Ulf Norell
ed3ed6ded6 Check (de)serialize roundtrip in fate compiler tests 2019-06-03 13:41:07 +02:00
Hans Svensson
bb4ef61a50 Allow negative literals in calldata and result 2019-06-03 09:08:53 +02:00
Hans Svensson
758fecbb9b
Merge pull request #75 from aeternity/fix_aci
Restructure and improve ACI
2019-05-31 11:33:07 +02:00
Ulf Norell
bea524635b Add backend argument (aevm | fate) to aeso_compiler options
and test fate backend on (most) compilable contracts
2019-05-28 16:40:54 +02:00
Hans Svensson
4b0837dc59 Leave state/event blank if not present 2019-05-28 13:07:24 +02:00
Hans Svensson
0ded431df8 Fix interface and use atoms instead of binaries 2019-05-28 11:18:21 +02:00
Hans Svensson
e7419b79fd Put state and event types at the top level 2019-05-28 11:08:36 +02:00
Hans Svensson
c60999edf0 Refactor aeso_aci with dont_unfold, etc. 2019-05-28 11:08:36 +02:00
Hans Svensson
ea17dae93e Silence compiler warning 2019-05-28 11:08:36 +02:00
Hans Svensson
1ed40f1cca Pretty print state variables 'a instead of '1 2019-05-28 11:08:36 +02:00
Hans Svensson
5c98317a5a Make 'indexed' keyword optional 2019-05-28 11:08:36 +02:00
Ulf Norell
96547ea2ec Test for record field parse error 2019-05-27 12:04:38 +02:00
Ulf Norell
d8dd6b900f Remove unused test contract 2019-05-13 17:51:56 +02:00
Ulf Norell
74d4048d9f Check that init doesn't read or write the state 2019-05-13 17:51:47 +02:00
Ulf Norell
5aed8b3ef5 Check stateful annotations
Functions must be annotated as `stateful` in order to
- Update the contract state (using `put`)
- Call `Chain.spend` or other primitive functions that cost tokens
- Call an Oracle or AENS function that requires a signature
- Make a remote call with a non-zero value
- Construct a lambda calling a stateful function

It does not need to be stateful to
- Read the contract state
- Call another contract with value=0, even when the remote function is stateful
2019-05-13 13:39:17 +02:00
Ulf Norell
e1a798aef4 Check for repeated argument names to functions
(PT-159592825)
2019-05-10 15:51:42 +02:00
Ulf Norell
23cc8e1132
Letrec and letfun (#65)
* Type check and compile letfuns

* Minor code simplification

* Remove let rec from Sophia
2019-05-10 13:27:57 +02:00
Hans Svensson
192ec207a7 Add Contract.creator and address checking primitives 2019-05-09 09:54:04 +02:00
Ulf Norell
8a381e5ef1 Support equality on bytes(N) 2019-04-25 16:06:50 +02:00
Hans Svensson
4324bfd49e Add bytes(int), add address_literalsm add ecverify_secp25k1
hash -> bytes(32)
signature -> bytes(64)
address literals
2019-04-23 10:40:02 +02:00
Hans Svensson
d6a55e144e Test Auth.tx_hash compilation 2019-04-08 11:57:07 +02:00
Robert Virding
4a01c852c9 Add more test cases
And some trivial code cleanup.
2019-04-03 22:58:54 +02:00
Robert Virding
df00c3958b First version of final aci
Should have more test cases and code cleanup
2019-04-03 17:53:16 +02:00
Robert Virding
12cb37245b First version of new aci generator
We also include some updated simple tests which are only run by eunit.
2019-04-03 17:53:16 +02:00
Robert Virding
0d8b7c7c79 First commit fixinng references from aeso_ to aeb_
Also remove local copies of modules moved to aebytecode.
2019-04-02 15:59:12 +02:00
Hans Svensson
15ca37342c Remove aeso_blake2, use eblake2 2019-04-02 09:00:20 +02:00
Hans Svensson
cd116b23d7 add aeso_compiler:decode_calldata/3 2019-03-13 16:15:48 +01:00
Ulf Norell
3efde2a2a1 handle hash literals when permissive_address_literals 2019-03-01 11:36:28 +01:00
Ulf Norell
20f2a05638 fix problem with indent detection when inserting the __call function 2019-03-01 11:08:14 +01:00
Ulf Norell
56f70fea6c test oracle calldata fixes 2019-03-01 09:36:43 +01:00
Robert Virding
8619f47ee6 Add very basic ACI testing
These should be extended and expanded.
2019-02-28 16:13:57 +01:00
Hans Svensson
95bf0d4b6c Fix handling of init in create_calldata 2019-02-27 20:42:42 +01:00
Hans Svensson
e94c1f9d84
Merge pull request #30 from aeternity/to-sophia-value-revisited
To sophia value revisited
2019-02-27 11:36:03 +01:00
Ulf Norell
4c79f7b9f2 tests for calldata creation 2019-02-26 17:41:04 +01:00
Hans Svensson
7c95aafbb8
Merge pull request #29 from aeternity/more_better_errors
Improve Events error message + more tests
2019-02-26 16:21:35 +01:00
Ulf Norell
5a4a84805f change create_calldata function to also take fun name and arguments 2019-02-26 15:01:27 +01:00
Ulf Norell
cc3e322179 new version of to_sophia_value
takes function name and binary blob
2019-02-26 14:34:57 +01:00
Hans Svensson
7b474e439c Improve Events error message + more tests 2019-02-25 21:53:52 +01:00
Ulf Norell
dc4a2ca2f9 tests for aeso:compiler:to_sophia_value/2 2019-02-25 14:24:16 +01:00
Ulf Norell
aa6d56ce9b Allow passing an explicit "file system" for included files to the compiler 2019-02-08 14:16:06 +01:00
Ulf Norell
0b86cdc318 Clean up test case 2019-02-08 14:16:06 +01:00
Hans Svensson
421bc01012 Add error messages for bad include and nested namespace 2019-02-08 14:16:06 +01:00