Commit Graph

198 Commits

Author SHA1 Message Date
Alex Beregszaszi cd9109bfac examples: add EVMC_CREATE example to example_vm 2019-04-24 12:08:49 +01:00
Alex Beregszaszi 4b5880bf94 example: Implement proper Rust VM example 2019-04-24 09:43:11 +01:00
Alex Beregszaszi 79b6d2a9c0 examples: Add dummy Rust VM 2019-04-24 09:42:24 +01:00
Paweł Bylica 0c1e13b485
examples: Rewrite Host example to use Host abstract class 2019-04-02 11:28:22 +02:00
Paweł Bylica 83dae57ceb
examples: Refactor host example 2019-03-15 02:32:32 +01:00
Paweł Bylica 3ef9c1de50
examples: Always build example_vm as shared library 2019-03-14 18:32:27 +01:00
Paweł Bylica 1f1a095208
examples: Fix and extend example VM with NUMBER example code 2019-03-12 17:59:06 +01:00
Paweł Bylica 0a0bb0b92e
go: Add unit test for Execute() 2019-03-12 17:59:06 +01:00
Paweł Bylica 709965077f
examples: Fix example_vm
- Make it compatible with C++
- Properly return project version
2019-01-22 14:15:26 +01:00
Paweł Bylica d4fc289c80
Rename EVMC_LATEST_REVISION to EVMC_MAX_REVISION 2019-01-21 12:09:20 +01:00
Paweł Bylica e461b45f1c
Simplify get_block_hash() method by returning null hash 2018-10-19 17:42:19 +02:00
Paweł Bylica 182006bcb7
Fix typo: capabilites -> capabilities 2018-10-18 15:42:01 +02:00
Paweł Bylica ebccd234b0
docs: Document example_vm.c 2018-10-18 15:38:10 +02:00
Paweł Bylica 997d797816
examples: Document example_vm.c file 2018-10-18 14:06:51 +02:00
Paweł Bylica 9bfb7c8ada
Return code hash from get_code_hash() directly 2018-09-12 23:08:06 +02:00
Paweł Bylica b0d0bc035b
Return size_t from get_code_size() directly 2018-09-12 23:08:06 +02:00
Paweł Bylica 67441020a4
Return uint256be from get_balance() directly 2018-09-12 23:06:14 +02:00
Paweł Bylica 941c0a9723
Drop EVMC_STORAGE_NON_EXISTING_ACCOUNT status 2018-09-09 10:16:10 +02:00
Paweł Bylica 21e6605f98
Return bytes32 from get_storage() directly 2018-09-09 10:16:10 +02:00
Paweł Bylica 5c8e64915a
Improve C++ helpers 2018-09-08 22:43:04 +02:00
Alex Beregszaszi 3dfa18a393
Move C++ helpers into evmc/helpers.hpp 2018-09-08 22:39:17 +02:00
Paweł Bylica dc495408be
Improve EVMC capabilities 2018-09-08 22:16:14 +02:00
Paweł Bylica 1ab90eb80a
examples: Use evmc_bytes32 in the Host example 2018-09-07 00:14:21 +02:00
Paweł Bylica 60cfde98af
Add alias evmc_address for struct evmc_address 2018-09-07 00:01:08 +02:00
Paweł Bylica 00e8b89712
Add alias evmc_bytes32 for struct evmc_bytes32 2018-09-07 00:00:32 +02:00
Paweł Bylica e772fbf28b
Rename uint256be to bytes32 2018-09-06 23:57:32 +02:00
Paweł Bylica a48893437f
Return bool from get_storage() to indicate non-existing accounts 2018-09-06 23:12:00 +02:00
Paweł Bylica d128fe45d7
Introduce EVMC_STORAGE_NON_EXISTING_ACCOUNT for set_storage() Host method 2018-09-06 23:12:00 +02:00
Paweł Bylica f41fccd21e
Add test for EVMC_SET_OPTION_INVALID_VALUE 2018-09-06 17:57:49 +02:00
Paweł Bylica 8ea48035ea
examples: Make some example Host methods a bit more interesting 2018-09-06 14:21:51 +02:00
Paweł Bylica b8b3719fb9
Return bool from evmc_get_code_size_fn() 2018-09-06 14:21:51 +02:00
Paweł Bylica d6ef551541
Return bool from evmc_get_code_hash_fn() 2018-09-06 14:21:51 +02:00
Paweł Bylica ca85b77f57
Return bool from evmc_get_balance_fn() 2018-09-06 14:21:51 +02:00
Alex Beregszaszi 50c254fb98 Introduce evmc_set_option_result enum 2018-09-06 09:54:09 +01:00
Paweł Bylica 280ff99363
Use bool type instead of int with 1 and 0 2018-09-06 00:28:27 +02:00
Paweł Bylica 9a2d07e595
Remove code hash from evmc_message 2018-09-03 19:58:57 +02:00
Paweł Bylica ced1c2676f
examples: Better get_block_hash example 2018-09-03 17:24:15 +02:00
Alex Beregszaszi d9f7ff25f5
Add return code to get_block_hash_fn 2018-09-03 16:45:08 +02:00
Paweł Bylica e2cff68587
Rename context_fn_table to host_interface 2018-08-31 13:39:41 +02:00
Paweł Bylica 759e67a1c6
Rename examplevm to example-vm 2018-08-31 13:10:07 +02:00
Paweł Bylica 0bb3a67284
CMake: Flatten examplevm 2018-08-31 13:10:07 +02:00
Paweł Bylica f858f79e2a
CMake: Flatten example_host 2018-08-31 13:10:06 +02:00
Paweł Bylica 98213f93ec
Add back main example that uses example Host and VM 2018-08-31 13:09:05 +02:00
Paweł Bylica 78888b57a9
Create header for example_host 2018-08-31 13:09:04 +02:00
Paweł Bylica 43dce45a5b
Create context in example host 2018-08-31 13:09:04 +02:00
Paweł Bylica 5aefc4faf3
Replace capi.c example with example_host.cpp 2018-08-31 13:09:04 +02:00
Alex Beregszaszi 0403343779 Return evmc_tx_context in get_tx_context (as opposed to pointer parameter) 2018-08-30 14:03:50 +01:00
Paweł Bylica 3c86a6b934
Return result from call_fn
This changes the evmc_call_fn signature to return evmc_result object instead of getting result as an output parameter.
2018-08-29 23:00:27 +02:00
Paweł Bylica a777a13f87 Include project version in examplevm 2018-08-28 20:34:48 +01:00
Alex Beregszaszi 8726fc9a33 Use nicer example EVM bytecode in examples/capi.c 2018-08-28 20:34:38 +01:00
Alex Beregszaszi 3403282827 Do not keep sample EVM code as hex string, but as proper binary in examples/examplevm 2018-08-28 20:34:38 +01:00
Paweł Bylica 43fc619a7e
Update license note in headers of source files 2018-08-22 13:57:25 +02:00
Paweł Bylica 0659e24db0
Update copyright notice 2018-08-21 09:44:18 +02:00
Paweł Bylica 36b7976121
Merge pull request #68 from ethereum/abi-version-helper
Add evmc_is_abi_compatible helper
2018-08-20 16:23:29 +02:00
Alex Beregszaszi 3fe4f28867 Add evmc_is_abi_compatible helper 2018-08-20 15:05:41 +01:00
Alex Beregszaszi f014e4fc77 Add evmc_execute helper 2018-08-20 14:59:52 +01:00
Alex Beregszaszi afed355232 examples: use evmc helpers 2018-08-20 05:24:21 +01:00
Alex Beregszaszi 4e513a6541 examples: use vm instead of jit in capi 2018-08-20 05:23:01 +01:00
Paweł Bylica e16f19e38d
examples: Rename evm_log() to emit_log() 2018-08-08 15:39:40 +02:00
Paweł Bylica 8cf24c7dd9
Extend set_storage() by reporting the storage status 2018-08-08 15:39:04 +02:00
Andrei Maiboroda 2e25d34c11
Support for EXTCODEHASH 2018-07-31 14:42:13 +02:00
Paweł Bylica d2ac75f6a8
Do not allow set_tracer function to be null 2018-07-25 18:22:08 +02:00
Paweł Bylica 4ad5b52492
Cleanup examplevm 2018-06-26 10:41:02 +02:00
Paweł Bylica fda9851e96
CMake: Move examplevm artifacts to parent dir 2018-06-26 10:41:01 +02:00
Paweł Bylica 5372417ca6
Properly export symbols from DLLs 2018-06-25 18:48:03 +02:00
Paweł Bylica cdd53518b6 Fix building with Visual Studio 2018-06-25 13:20:18 +02:00
Paweł Bylica 9af6c35b48
Add examples how to use CMake packages 2018-06-19 22:30:36 +02:00
Paweł Bylica cb2288b49d
Merge pull request #14 from ethereum/clang-format-config
Add clang-format config
2018-06-16 12:36:00 +02:00
Paweł Bylica 889f8d74b4
Fix compiler warning 2018-06-11 11:44:13 +02:00
Paweł Bylica 4ca2d9c66b
Reformat files 2018-05-11 13:26:58 +02:00
Paweł Bylica 262211ab68
Move evmc.h to include/evmc dir 2018-04-19 09:41:48 +02:00
Paweł Bylica c5c34599b9
Change naming convention for "create" function
Now should be prefixed with "evmc_create_".
2018-04-17 11:11:31 +02:00
Paweł Bylica 630d8be405
Add name and version to evmc_instance 2018-04-17 11:11:30 +02:00
Paweł Bylica 8830ab0d7d
Move examplevm to its own dir 2018-04-13 08:40:13 +02:00
Paweł Bylica 4578e80c38
Use common compiler settings from Cable 2018-04-12 23:01:38 +02:00
Paweł Bylica a800ae7aa5
Fix examples build config 2018-04-10 14:12:12 +02:00
Alex Beregszaszi 2ec50258cd Rename evm.h to evmc.h 2018-03-28 14:40:18 +01:00
Alex Beregszaszi 19ce0eb4ab Rename evm_/EVM_ to evmc_/EVMC_ 2018-03-28 14:39:38 +01:00
Paweł Bylica 4d763dadab
Add main CMake script 2018-03-28 15:20:08 +02:00
Paweł Bylica ccc3106233 EVM-C: Change get_code() to copy_code() 2018-03-27 12:45:22 +02:00
Paweł Bylica 82f1936fa2 EVM-C: Add get_code_size() callback function 2018-03-26 15:08:10 +02:00
Alex Beregszaszi 0877e9d9bd Do not pollute the header with examplevm_create() 2018-01-24 22:38:17 +00:00
Paweł Bylica b0de6dcd46 EVM-C: Rename message.address -> message.destination 2018-01-23 11:00:55 +01:00
Dmitri Makarov a154b61c51 Prepare for LLVM 5.0 upgrade, but still compatible with LLVM 3.9 2017-12-11 20:13:49 +01:00
Paweł Bylica 2e92618966 Fix example 2017-10-24 13:50:35 +02:00
Paweł Bylica 52d6cc55a9 EVM-C: Rename evm_uint160be -> evm_address 2017-09-26 16:51:34 +02:00
Paweł Bylica 7448400879 EVM-C: Rename evm_result::code -> evm_result::status_code 2017-09-26 16:51:34 +02:00
Paweł Bylica 431c9d2def EVM-C: Rename evm_result_code -> evm_status_code 2017-09-26 14:04:21 +02:00
Paweł Bylica 5ff2b98c14 EVM-C: Remove factory 2017-09-22 19:16:52 +02:00
Paweł Bylica 61d533aad7 EVM-C: Move ABI version from factory to instance 2017-09-22 18:50:20 +02:00
Paweł Bylica c5ae54f6ee Rename some vars: mode -> rev 2017-08-20 16:18:27 +02:00
Paweł Bylica 25bc753f0e EVM-C: Rename evm_mode to evm_revision 2017-08-18 18:32:26 +02:00
Paweł Bylica 581ba3ef2e EVM-C: Improve execution context opaque struct 2017-08-18 18:29:22 +02:00
Paweł Bylica 9503ac90c2 EVM-C: Improve example 2017-08-18 13:40:25 +02:00
Paweł Bylica 182d7f3876 EVM-C: Reduce query_fn to account_exists_fn 2017-08-08 10:26:52 +02:00
Paweł Bylica 2d2adcb868 EVM-C: Move code query to separated callback function 2017-08-08 10:11:53 +02:00
Paweł Bylica 2aa1623203 EVM-C: Move balance query to separated callback function 2017-08-07 18:45:26 +02:00
Yoichi Hirai 56ccdf9d2f Split Metropolis into Byzantium and Constantinople 2017-08-02 17:51:49 +02:00
Paweł Bylica d6224857c4 EVM-C: Collect callbacks in evm_host struct 2017-08-01 15:59:40 +02:00
Paweł Bylica 1bbdc0c0c9 EVM-C: Split get_storage from query callback 2017-06-09 16:16:17 +02:00