Paweł Bylica
7c79af5d59
EVM-C: fix typo in comments
2017-04-25 17:02:49 +02:00
Paweł Bylica
5bab6b8d7e
EVM-C: Fix some issues in the example
2017-04-25 17:01:46 +02:00
Paweł Bylica
71dd92123c
EVM-C: Clarify UTF-8 encoding of error messages
2017-04-24 18:23:19 +02:00
Paweł Bylica
c584b84af9
EVM-C: clarify that evm_result::release can be NULL
2017-04-24 18:10:30 +02:00
Paweł Bylica
1fe60a02ba
EVM-C: Simplify and clarify docs of evm_result
2017-04-24 14:00:27 +02:00
Paweł Bylica
d3001b92fd
Add REVERT opcode support
2017-04-03 18:00:26 +02:00
Paweł Bylica
dcf9662874
Add support for Metropolis compatibility mode
2017-04-03 16:13:18 +02:00
Paweł Bylica
67ed0d9bf9
Fix EVM_CALL_FAILURE definition on Windows
2017-01-19 14:32:22 +01:00
Paweł Bylica
96a1a9020b
EVM-C: Use enums to represent constants
2017-01-19 14:32:22 +01:00
Paweł Bylica
66b2ae9663
EVM-C: return by explicit output param
...
In evm_query_fn, return result by explicit output parameter to avoid C ABI issues and inrease portability. C compiler would do the same implicitly.
2017-01-19 14:32:22 +01:00
Paweł Bylica
575337b449
EVM-C: pass callback argument explicitly by pointer
...
We try to avoid C ABI complex rules like passing structs by value to increase portability.
2017-01-19 14:32:22 +01:00
Paweł Bylica
3d2e365661
EVM-C: introduce factory -- simpler interface
...
Replace evm_interface with evm_factory. The factory provides ABI protection and the function for creating EVM instances. After the instance is create you can discard the factory as it is no longer needed.
2017-01-19 14:32:22 +01:00
Paweł Bylica
bfd39abfb2
EVM-C: Drop address field from evm_result
...
The evm_result was planned to be used as the return struct of the call callback. The address was added to support CREATE, but it is never used and the union here confuses many languages like Go and Python.
2017-01-19 14:32:21 +01:00
Paweł Bylica
04cb34fb7d
EVM-C: separate EXTCODESIZE from EXTCODE(COPY)
2016-12-06 13:47:57 +01:00
Paweł Bylica
a4a6b9f60b
EVM-C add modes for recent hard forks
2016-11-22 17:39:15 +01:00
Paweł Bylica
aceb7af658
EVM-C: reorder and add create_address to evm_result
2016-09-28 13:19:02 +02:00
Paweł Bylica
8b9867c971
EVM-C: Attach result_release function to the result itself
2016-09-27 17:14:19 +02:00
Paweł Bylica
9c2ef341a7
EVM-C: add call depth query
2016-09-26 16:28:12 +02:00
Paweł Bylica
344552bbe1
Move CALL cost calculations to VM
...
Delegating CALL cost calculations to Env is bad idea and has bugs.
2016-09-14 13:50:45 +02:00
Alex Beregszaszi
ce780dd595
EVM-C: use new format for evm_query descriptions
2016-09-01 03:22:23 +01:00
Alex Beregszaszi
4fbe3a05d9
EVM-C: mark empty args as n/a in query/update
2016-09-01 03:08:24 +01:00
Alex Beregszaszi
800e8f531f
EVM-C: remove question marks (all fields are defined)
2016-09-01 03:07:18 +01:00
Paweł Bylica
1e28593836
EVM-C: remove note about 8-byte alignment
2016-08-31 13:45:24 +02:00
Paweł Bylica
dfd21b50c6
EVM-C: mark the section of the header for Python CFFI
2016-08-31 12:01:28 +02:00
Paweł Bylica
04ddc0fb93
EVM-C: update docs
2016-08-31 12:00:40 +02:00
Paweł Bylica
2a99b13573
EVM-C: Replace evm_{uint|hash}256 with single evm_uint256be
...
All values transfered to/from a VM must be passed as big-endian integers.
2016-08-31 11:40:02 +02:00
Paweł Bylica
4b650928bb
EVM-C: Avoid examplevm_get_interface() being implicitly variadic
2016-08-29 10:37:46 +02:00
Paweł Bylica
12efc07993
EVM-C: Extend docs of evm_update_fn
2016-08-29 09:30:19 +02:00
Paweł Bylica
1c4ba40573
Fix type in EVM-C docs. NFC
2016-08-29 09:06:47 +02:00
Paweł Bylica
e70eae3e7a
EVM-C: evm_prepare_code(): move code_hash parameter before code parameter
2016-08-28 20:40:27 +02:00
Paweł Bylica
0b9b01e05c
EVM-C: Simplify evm_hash256 struct
2016-08-28 20:40:20 +02:00
Paweł Bylica
aa1fa5ee32
EVM-C: Add ABI versioning support
2016-08-25 22:02:36 +02:00
Paweł Bylica
93f16f9380
EVM-C: Drop evm_get_info()
2016-08-25 15:01:49 +02:00
Paweł Bylica
2e6b278a59
EVM-C: Rename evm_result_error_code -> evm_result_code
2016-08-25 13:50:11 +02:00
Paweł Bylica
85ee6de4be
EVM-C: Update docs
2016-08-25 12:48:54 +02:00
Paweł Bylica
b889ea4daa
EVM-C: Change #define EVM_CALL_FAILURE to static const global variable
2016-08-25 12:40:16 +02:00
Paweł Bylica
cd72d30018
EVM-C: Extend evm_result
2016-08-25 12:11:24 +02:00
Alex Beregszaszi
971033adda
EVM-C: start result codes from 1
2016-08-24 12:40:55 +01:00
Alex Beregszaszi
baeade4d10
EVM-C: rename EVM_RESULT_* to EVM_*
2016-08-24 12:30:52 +01:00
Alex Beregszaszi
f107589c59
EVM-C: rename EVM_EXCEPTION to EVM_CALL_EXCEPTION
2016-08-24 12:30:51 +01:00
Alex Beregszaszi
9046d6edd5
EVM-C: include the rest of the result codes from cpp-ethereum
2016-08-24 11:02:59 +01:00
Alex Beregszaszi
75f257a3a7
EVM-C: include last_pc in evm_result
2016-08-24 10:47:17 +01:00
Alex Beregszaszi
0e129f5fed
EVM-C: demote EVM_EXCEPTION to only be used with evm_query_fn
2016-08-24 10:47:17 +01:00
Alex Beregszaszi
abc914afd2
EVM-C: include evm_result_outcome in evm_result
2016-08-24 10:47:17 +01:00
Paweł Bylica
530b6684b2
EVM-C: Rename evm_fn_table -> evm_interface
2016-08-23 21:51:42 +02:00
Paweł Bylica
81edf123db
EVM-C: Replace #pargma once with #ifndef include guards
2016-08-23 20:04:08 +02:00
Paweł Bylica
c4b226a035
EVM-C: Move evmjit to separated header & update docs
2016-08-23 13:50:25 +02:00
Paweł Bylica
efb73335c2
Update EVM-C examples
2016-08-23 13:07:33 +02:00
Paweł Bylica
5defa1d222
EVM-C: Support multiple implementation
...
Support multiple VM implementations by EVM-C in a single application by exporting only a function table (like vtable in OOP) for each implementation. The symbol name convention is `<vm-name>_get_fn_table()`.
2016-08-23 12:09:39 +02:00
Paweł Bylica
77326672fd
EVM-C: Use int istead of bool type
2016-08-23 11:55:06 +02:00