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
jangko
2f3a22d840
fix evmc_host.set_storage
2020-07-21 19:58:17 +07:00
jangko
04dcec03a3
fix missing import when chronicles enabled
2020-07-21 15:12:59 +07:00
jangko
207065746c
reduce more warnings
2020-07-21 13:25:27 +07:00
jangko
165f9fea2e
reduce warnings
2020-07-21 13:15:06 +07:00
jangko
845671bf0a
fix compilation error following breaking changes in nim-eth
2020-07-20 13:50:05 +07:00
jangko
7c026e1b48
modify VMState to enable witness data collection
2020-06-06 10:05:11 +07:00
jangko
71514a0a66
replace state_db with accounts_cache
2020-05-30 10:14:59 +07:00
Jacek Sieka
4ade5797ee
rlp: don't use ranges / experimental features ( #495 )
2020-04-20 20:12:44 +02:00
andri lim
af02a3b1b2
reduce unused import warnings
2020-04-15 19:05:57 +07:00
andri lim
87bae2bb78
switch to new toFork
2020-04-12 18:02:59 +07:00
andri lim
6591893158
change FkGlacierMuir to FkMuirGlacier [skip ci]
2020-04-11 16:02:15 +07:00
Jacek Sieka
1d472cf090
Eth keys ( #482 )
...
* bump nim-eth, fix deprecated calls
2020-04-05 15:12:48 +02:00
jangko
32f5fd9b90
fix evmc sstore gas cost related to EIP 1283
2020-03-24 17:21:18 +07:00
jangko
b5850ca748
fix evmc compilation issue
2020-03-24 17:21:18 +07:00
andri lim
266e0ddb1e
room for EIP-1283
2020-03-24 17:21:13 +07:00
andri lim
6b6584c4d0
Glacier Muir update
2020-02-20 09:21:35 +02:00
andri lim
15c9fa54ec
fixes modexp gasFee bug
2020-02-18 20:11:36 +02:00
andri lim
deb09f40f0
less explicit 'copyMem'
2020-02-12 17:53:26 +02:00
andri lim
7c9f6b48d6
unify Nimbus 'call' and EVMC 'call'
2020-02-12 17:53:26 +02:00
andri lim
0686bb4b6e
remove legacy unused code
2020-02-12 17:53:26 +02:00
andri lim
3ef2969583
clear picture on EIP 716 issue
2020-02-12 17:53:26 +02:00
andri lim
dc3a897851
implement evmc call
2020-02-12 17:53:26 +02:00
andri lim
9477990897
simplify CALL family impl
2020-02-12 17:53:26 +02:00
andri lim
fff35ab01d
implement evmc create/create2
2020-02-12 17:53:26 +02:00
andri lim
109f841a9e
simplify returnData logic
2020-02-12 17:53:26 +02:00
andri lim
22dff9ff88
remove 'startGas' from 'gasMeter'
2020-02-12 17:53:26 +02:00
andri lim
1cd9353faa
simplify computation
2020-02-12 17:53:26 +02:00
andri lim
8564e9532b
change 'rawOutput' to 'output'
2020-02-12 17:53:26 +02:00
andri lim
f850c4a37b
put 'sstoreEvmc' behind 'when evmc_enabled'
2020-02-12 17:53:26 +02:00
andri lim
95edc54b46
fixes gcsafe overrides and reduce unnecessary evmc conversion
2020-01-23 18:07:44 +02:00
andri lim
18eb255758
convert 'block' into 'if-else' in evmc 'setStorage'
2020-01-23 18:07:44 +02:00
andri lim
9b1f8e2f65
change 'registerAccountForDeletion' to 'execSelfDestruct'
2020-01-23 18:07:44 +02:00
andri lim
933b2dad78
remove code from EVM Message and load code in 'Computation'
2020-01-23 18:07:44 +02:00
andri lim
83e9debb62
move contract address creation to 'Computation'
2020-01-23 18:07:44 +02:00
andri lim
ea4f851f80
move create contract incNonce to 'applyMessage'
2020-01-23 18:07:44 +02:00
andri lim
37c282f1b9
fixes evmc 'gasRefund'
2020-01-23 18:07:44 +02:00
andri lim
c459879647
only import evmc files when 'evmc_enabled' defined
2020-01-23 18:07:44 +02:00
andri lim
4aa209113a
integrate evmc 'setStorage'
2020-01-23 18:07:44 +02:00
andri lim
62f96e9bd4
integrate evmc 'emitLog'
2020-01-23 18:07:44 +02:00
andri lim
bf7b4c7273
fixes evmc 'selfDestruct' definition
2020-01-23 18:07:44 +02:00
andri lim
3e384f764d
fixes evmc 'accountExists' definition
2020-01-23 18:07:44 +02:00
andri lim
64f0e59487
evmc_enabled compile time flags
2020-01-23 18:07:44 +02:00
andri lim
295d2c180b
integrate evmc 'selfDestruct' and 'copyCode'
2020-01-23 18:07:44 +02:00
andri lim
8a9d9114e7
integrate evmc 'getCodeHash'
2020-01-23 18:07:44 +02:00
andri lim
5507e80b63
integrate evmc 'getCodeSize'
2020-01-23 18:07:44 +02:00
andri lim
8c53371c49
integrate evmc 'getBalance'
2020-01-23 18:07:44 +02:00
andri lim
fdbc888840
integrate evmc 'getStorage'
2020-01-23 18:07:44 +02:00
andri lim
a4a1148a45
integrate evmc 'accountExists'
2020-01-23 18:07:44 +02:00
andri lim
1813579bc4
integrate evmc 'getBlockHash'
2020-01-23 18:07:44 +02:00
andri lim
319e5d8ae9
integrate evmc 'getTxContext'
2020-01-23 18:07:44 +02:00
andri lim
e25f2bb82f
evmc host implementation
2020-01-23 18:07:44 +02:00
andri lim
c1ef8632b2
move fork and gasCosts from Computation to vmState
2020-01-20 18:36:58 +02:00
andri lim
bab359cabf
move origin and gasPrice from Message to vmState
2020-01-20 18:36:58 +02:00
andri lim
d300bc352d
fixes balance transfer for CALL and CALLCODE
2020-01-20 18:36:58 +02:00
andri lim
73c60fe694
unifying contract collision detection
2020-01-20 18:36:58 +02:00
andri lim
16a938d3fa
fixes clearStorage bug
2020-01-20 18:36:58 +02:00
andri lim
89d1834d52
consistent evm depth call check
2020-01-20 18:36:58 +02:00
andri lim
009aa35dfb
remove unused eraseReturnData
2020-01-20 18:36:58 +02:00
andri lim
52fffa6e25
fixes long standing bug create2nocash
2020-01-20 18:36:58 +02:00
andri lim
63e886655b
fixes coinbase suicide bugs
2020-01-20 18:36:58 +02:00
andri lim
0b99b76cd1
change 'BaseComputation' to 'Computation'
2020-01-20 18:36:58 +02:00
andri lim
79df931234
simplifies computation.getFork
2020-01-20 18:36:58 +02:00
andri lim
6066028d06
remove duplicate line
2020-01-19 19:17:37 +02:00
andri lim
d30f434f03
get rid of computation child after execution
2020-01-19 19:17:37 +02:00
andri lim
ed62d1e217
[skip ci] more collectTouchAccounts reduction
2020-01-19 19:17:37 +02:00
andri lim
5e6018b20b
[skip ci] collectTouchedAccounts reduction
2020-01-19 19:17:37 +02:00