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
Hans Svensson
2b7490776e
Add include directive
...
Add an include directive to include namespaces into a contract. Only allowed at the top level.
To allow includes, either call through aeso_compiler:file or set the option `allow_include` (and add `include_path`(s)).
2019-02-08 14:16:06 +01:00
Ulf Norell
6cdba58e35
Update error messages
2019-02-08 14:16:06 +01:00
Ulf Norell
e6f01481bf
Bind state and event primitives only in contracts (and with the right types)
2019-02-08 14:16:06 +01:00