209 Commits

Author SHA1 Message Date
Tobias Lindahl
9dfc5f4f1d
Merge pull request #55 from aeternity/PT-166786424-check-oracle-types
Add oracle types to some oracle instructions
2019-06-20 09:21:23 +02:00
Thomas Arts
1fda6912da Fix error 2019-06-19 17:41:47 +02:00
Thomas Arts
9840b22546 Add decoding function 2019-06-19 17:41:47 +02:00
Thomas Arts
e3f843fd91 Do not return types, create_calldata does not need those 2019-06-19 17:41:47 +02:00
Hans Svensson
768e0d4fbb Fix incorrect type spec 2019-06-19 13:25:05 +02:00
Tobias Lindahl
f92e23c955 Add oracle types to some oracle instructions 2019-06-19 12:11:22 +02:00
Tobias Lindahl
e321882b98
Pt 166233685 fate oracles (#52)
* Introduce typereps

* Use typereps for registering oracles

* Add TTL to oracle register

* Introduce oracle query object and ORACLE_QUERY operation

* Stub the remaining oracle instructions

* Adapt oracle respond and extend

* Document oracle ops

* Add unit tests for all oracle instructions
2019-06-18 13:56:48 +02:00
Hans Svensson
c1fb3a47c7 More functions in aeb_fate_abi 2019-06-18 13:51:06 +02:00
Hans Svensson
a0c3a990ed Add function_name_from_function_hash to aeb_fate_abi 2019-06-18 11:59:54 +02:00
Hans Svensson
506f9ca72e Add AUTH_TX_HASH operation 2019-06-11 15:31:16 +02:00
Thomas Arts
242700e084 Add creation of fate calldata 2019-06-11 14:47:38 +02:00
Hans Svensson
896290ad3b contract_to_address instruction 2019-06-11 09:20:13 +02:00
Ulf Norell
876e8504c8 crypto instructions 2019-06-05 14:21:47 +02:00
Ulf Norell
409d761b18 Add serialization of any and type variables 2019-06-05 11:13:52 +02:00
Thomas Arts
b8b316aae0 Make sorting idempotent 2019-06-03 14:49:13 +02:00
Thomas Arts
ffebc13d08 Make sort testable 2019-06-03 14:45:08 +02:00
Thomas Arts
3ff4df42ff Make sure arguments not provided are maskes 2#00. 2019-06-03 13:43:49 +02:00
Thomas Arts
e8390e52d1 Bug fix and little different way of writing logic 2019-06-03 11:07:00 +02:00
Erik Stenman
58daf1bb5c Add quick check test for order and handle variants. 2019-05-31 14:42:00 +02:00
Erik Stenman
cb8e2b07a4 Use FATE order to sort maps iterator. 2019-05-31 13:52:07 +02:00
Erik Stenman
46f9d34447 Total order for FATE types. 2019-05-31 13:17:50 +02:00
Erik Stenman
942c7fb069 Add first draft of total order for FATE terms. 2019-05-30 12:31:40 +02:00
Thomas Arts
a5bfdf63d5 Define a specific sorting for key-Value pairs
Sort on key and check: no duplicates and no maps and variants as key
2019-05-29 16:23:43 +02:00
Thomas Arts
41860b041e We should not deserialize function blocks only containing opcodes, but not a function 2019-05-29 16:23:43 +02:00
Thomas Arts
25ef7e7fe3 Remove special cases for NIL and empty MAP 2019-05-29 11:18:41 +02:00
Thomas Arts
bcc409f302 serialize and deserialize integers with validity check 2019-05-29 11:17:13 +02:00
Thomas Arts
42719e7000 Fail on deserializing negative zero 2019-05-29 08:52:24 +02:00
Thomas Arts
f7a4c40c50 Only decode correctly encoded negative binaries 2019-05-29 08:21:25 +02:00
Thomas Arts
ec0af8046a Safer serialization of opcode arguments 2019-05-28 19:09:42 +02:00
Thomas Arts
302c1c211d Erik's fix to LONG strings 2019-05-28 18:11:42 +02:00
Thomas Arts
453f68fa39 Serialize only code blocks that have operators in right order 2019-05-28 18:11:42 +02:00
Thomas Arts
aa9d2bf893 Do not allow empty code blocks 2019-05-28 18:11:42 +02:00
Thomas Arts
5d7bd73bcb Serialization of functions only succeeds for 4 byte iudentifiers 2019-05-28 18:11:42 +02:00
Thomas Arts
34b9684b6b Deserialize code without functions 2019-05-28 18:11:42 +02:00
Thomas Arts
ccbb0ed6c7 Make code easier to test 2019-05-28 18:11:42 +02:00
Ulf Norell
f1298870e5
Merge pull request #47 from aeternity/add-target-register-to-tuple
Add target register to TUPLE
2019-05-28 14:17:16 +02:00
Ulf Norell
f115feb16d Print state variables as storeN instead of var-N 2019-05-28 11:53:13 +02:00
Tobias Lindahl
241a96ebaa
Change the correct function name to not shadow builting guard (#46) 2019-05-28 11:32:52 +02:00
Ulf Norell
880cf573aa Add a target register to TUPLE instruction 2019-05-28 11:24:38 +02:00
Tobias Lindahl
89f5ebc84b
Add missing basic instructions (#45)
* Add missing basic instructions

* MAP_SIZE
* MAP_TO_LIST
* STR_LENGTH

* Change name of erlang function to not shadow builtin guard
2019-05-28 11:15:04 +02:00
Erik Stenman
e98298cce4
Add accepted types to operator declarations. Check opcode numbering. (#43)
* Add accepted types to operator declarations. 
* Check opcode numbering.
2019-05-24 13:21:49 +02:00
Erik Stenman
0d1899b32a
Pt 165352420 dissallow stack n (#42)
* Get rid of redundant arity field from op defs. Reorder and renumber ops. Fix bb_end for abort and exit.

* FATE does not accept arbitrary stack positions, only the accumulator aka stack 0.
2019-05-23 13:40:49 +02:00
Erik Stenman
3e0e289f2f
Get rid of redundant arity field from op defs. Reorder and renumber ops. Fix bb_end for abort and exit. (#41) 2019-05-23 13:37:32 +02:00
Tobias Lindahl
11a8997ac7
Pt 166148534 refactor fate code (#40)
* Change names of generated aeb_fate_code -> aeb_fate_ops

* Break out fate code to separate adt module

* Fix documentation of the SPEND op

* More compact implementation of serialization/deserialization

* Changed argument specification order
2019-05-23 08:15:18 +02:00
Tobias Lindahl
a9389e4e69 Add the CALL_VALUE instruction 2019-05-09 10:57:18 +02:00
Tobias Lindahl
2d3cede235 Add value to remote calls and the new ops CALL_GR and CALL_GTR 2019-05-09 10:57:18 +02:00
Hans Svensson
5fd076f043 Add CREATOR opcode and address check primops 2019-05-09 09:35:48 +02:00
Ulf Norell
2555868990
Merge pull request #37 from aeternity/fate-compiler
Fate compiler
2019-05-07 13:04:53 +02:00
Tobias Lindahl
b6019eb81b Fix object parsing 2019-05-07 11:16:05 +02:00
Ulf Norell
91fc56c322 Change local calls to allow dynamic function name 2019-05-07 09:04:24 +02:00