Jordan Hrycaj
dfc93a74ad
moved validateTransaction() to executor
...
why:
not part of VM (see andri's requested change at #573 )
2021-04-07 15:13:28 +01:00
Jordan Hrycaj
827b8c9c81
reset explicit import paths for local modules
...
why:
it was convenient to have relocatable source modules when writing the
vm interface wrappers. this patch moves it back to the standard.
also:
there are no deep links into the vm folder anymore which leaves some
room for manoeuvring inside
2021-04-01 12:53:22 +01:00
Jordan Hrycaj
00ba7a2718
merge vm_forks and vm_opcode_values => vm_type2
...
why:
all types, but they cannot be merged int vm_types because of a circular
dependency.
2021-03-31 17:53:15 +01:00
Jordan Hrycaj
9e365734e6
renamed nvm_ prefixed modules to its original names
...
why:
the nvm_ prefix was used inside the vm folder to hide them temporarily
from the outside world while writing export wrappers. now all
functionality is accessed via vm_*, rather than vm/* imports.
todo:
at a later stage the import headers of the vm modules need to get fixed
to meet style guide standards (as jacek kindly pointed out.)
2021-03-31 17:19:54 +01:00
Jordan Hrycaj
474bd9e910
expanded nvm_interpreter
...
details:
explicit symbol exports rather than wholesale module names
2021-03-31 16:49:11 +01:00
Jordan Hrycaj
7c28d5d362
provide vm_utils_numeric as import/export wrapper
...
details:
moved original vm/interpreter/utils/utils_numeric.nim => vm/interpreter/utils/utils_numeric.nim
2021-03-31 16:49:07 +01:00
Jordan Hrycaj
99568c9b46
provide vm_opcode_values as import/export wrapper
...
details:
moved original vm/interpreter/opcode_values.nim => vm/interpreter/nvm_opcode_values.nim
2021-03-31 16:49:03 +01:00
Jordan Hrycaj
cf63b9b03f
provide vm_memory as import/export wrapper
...
details:
moved original vm/memory.nim => vm/nvm_memory.nim
2021-03-31 16:48:44 +01:00
Jordan Hrycaj
7b5d00307c
provide vm_precompiles as import/export wrapper
...
details:
moved original vm/precompiles.nim => vm/nvm_precompiles.nim
2021-03-31 16:47:15 +01:00
Jordan Hrycaj
5ce7ca6b32
provide vm_interpreter as import/export wrapper
...
details:
moved original vm/interpreter.nim => vm/nvm_interpreter.nim
2021-03-31 16:47:08 +01:00
Jordan Hrycaj
eee24de450
provide vm_message as import/export wrapper
...
details:
moved original vm/message.nim => vm/nvm_message.nim
2021-03-31 16:47:02 +01:00
Jordan Hrycaj
cf3a356d76
provide vm_computation as import/export wrapper
...
details:
moved original vm/computation.nim => vm/nvm_computation.nim
2021-03-31 16:38:10 +01:00
Jordan Hrycaj
689458a346
provide vm_gas_costs as import/export wrapper
...
details:
moved original vm/interpreter/vm_gas_costs.nim => vm/interpreter/nvm_gas_costs.nim
2021-03-31 16:03:51 +01:00
Jordan Hrycaj
3a3e4d5707
provide vm_forks as import/export wrapper
...
details:
moved original vm/interpreter/vm_forks.nim => vm/interpreter/nvm_forks.nim
2021-03-31 16:03:34 +01:00
Jordan Hrycaj
907465300f
isolate vm_state_transactions as import/export wrapper
...
details:
moved original vm_state_transactions.nim => vm/nvm_state_transactions.nim
2021-03-31 10:05:47 +01:00
Jordan Hrycaj
eda1290c25
isolate vm_state as import/export wrapper
...
details:
moved original vm_state.nim => vm/nvm_state.nim
2021-03-31 09:58:26 +01:00
Jordan Hrycaj
ed59f602d5
isolate vm_types as import/export wrapper
...
details:
moved original vm_types.nim => vm/nvm_types.nim
2021-03-31 09:48:50 +01:00
Jordan Hrycaj
a3db0f41d8
remove relative paths ./ and ../ from import section
...
why:
relative paths make sources inherently non-relocatable
details:
import base is set to the nimbus directoy, so importing ./stack
from file interpreter.nim becomes vm/stack etc.
caveat:
a file named nimbus/strformat.nim would clash with strformat (but
not with std/strformat)
2021-03-30 17:20:43 +01:00
jangko
8486c1834c
fixes #558 , use distinct uint for ChainId and NetworkId to prevent confusion
2021-02-14 11:01:27 +07:00
jangko
b6ad47f3a4
fixes evmc bug and add github action job to test evmc
2021-01-20 11:50:07 +07:00
jangko
8c5c967715
bump submodules
2021-01-20 11:50:07 +07:00
jangko
ad284e3d25
fixes EIP2929 SLOAD
2021-01-14 23:22:28 +07:00
jangko
f6c44ffcc0
fixes EIP2929 CALL opCode
2021-01-14 23:22:28 +07:00
jangko
9709525916
fix byzantium bug related to revertPrecompileTouched
2021-01-13 08:08:56 +07:00
jangko
f906d177f4
add comments about disabled EIPs
2021-01-11 15:33:30 +07:00
jangko
01dec1d359
fixes EIP2929 opcodes impl
2021-01-11 14:57:40 +07:00
jangko
3db535aa39
EIP2929 implementation
2021-01-11 14:56:42 +07:00
jangko
ab314c1e04
temporary disable EIP2046 and EIP2565
2021-01-11 14:53:51 +07:00
jangko
c84e34cac6
simplify blscurve utils impl
2020-12-02 18:14:34 +07:00
jangko
397119468a
simplify bncurve getPoint
2020-12-02 16:17:52 +07:00
jangko
fec9d26873
more eip2537 cleanup
2020-12-02 15:15:58 +07:00
jangko
90415d537f
add map_to_curve_g1 implementation for miracl
2020-11-30 21:19:46 +07:00
jangko
3f79588a74
EIP2537 part 3
2020-11-29 08:01:17 +07:00
jangko
0799b4534c
EIP2537 part 2
2020-11-28 23:13:10 +07:00
jangko
c1b7ae5b02
EIP2537 part 1
2020-11-27 21:42:17 +07:00
andri lim
360b74327e
Merge pull request #544 from status-im/precompiles_test_rework
...
Precompiles test rework
2020-11-26 10:34:26 +07:00
jangko
971e00e580
precompile contracts test rework
2020-11-25 20:42:15 +07:00
jangko
56bc1205e5
returnStack: use seq[int] instead of Uint256 Stack
2020-11-25 19:09:16 +07:00
jangko
a263e6b1a6
implement EIP2315 tests
2020-11-25 18:23:02 +07:00
jangko
a38882a9a0
implement EIP 2315 opcodes
2020-11-25 17:09:10 +07:00
jangko
5a78b8a5a7
stubbing berlin opcodes
2020-11-25 16:43:34 +07:00
jangko
e2cd9b20fa
add returnStack to Computation
2020-11-25 16:26:24 +07:00
jangko
5bb6418bcb
implement EIP2565
2020-11-24 16:19:02 +07:00
jangko
97f73fd03d
implement EIP 2046
2020-11-19 14:23:07 +07:00
jangko
c68aa47464
fixes fork comparison related code
2020-11-19 11:59:53 +07:00
jangko
648cc77f80
add berlin hf enum
2020-11-19 10:58:37 +07:00
andri lim
676ce3aedb
Merge pull request #528 from narimiran/parse-enum-2
...
write `Fork` enum in a "modern way"
2020-09-04 15:09:01 +07:00
narimiran
36a75197d2
write Fork
enum in a "modern way"
...
This provides the same functionality as `$` proc, but it keeps working
with Nim 1.3+, where `parseEnum` implementation has been changed to be
able to work with enums with holes (after a bugfix for them).
Note that the first character is case-sensitive and "Constantinople" !=
"constantinople".
Since the tests (`test_op_arith` and `test_op_bit`) use lower-case first
letter, the string representation is also changed to the lower-case.
2020-09-03 10:03:20 +02:00
jangko
c9802edfce
setup block and state env for more complex eth rpc tests
2020-07-28 23:48:45 +07:00
jangko
6ffb33ccac
cleanup sstore gasCost
2020-07-21 20:13:58 +07:00