52 Commits

Author SHA1 Message Date
jangko
3db535aa39
EIP2929 implementation 2021-01-11 14:56:42 +07:00
jangko
5a78b8a5a7
stubbing berlin opcodes 2020-11-25 16:43:34 +07:00
jangko
207065746c
reduce more warnings 2020-07-21 13:25:27 +07:00
andri lim
87bae2bb78
switch to new toFork 2020-04-12 18:02:59 +07:00
andri lim
266e0ddb1e
room for EIP-1283 2020-03-24 17:21:13 +07:00
andri lim
0686bb4b6e remove legacy unused code 2020-02-12 17:53:26 +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
kdeme
9964a55772 Replace getCurrentException 2019-12-05 13:02:21 +01:00
andri lim
c0c62b94b8 implement EIP-2200 stub 2019-11-12 15:51:48 +00:00
andri lim
b5e8a8d61b implement 'chainId' opcode 2019-11-12 15:51:48 +00:00
andri lim
078375061b implement EIP 1884 stub 2019-11-12 15:51:48 +00:00
andri lim
0bb6c73bdb implement EIP 1344 stub 2019-11-12 15:51:48 +00:00
andri lim
b7a1431c33 fix modexp gasFee 2019-05-13 10:26:28 +03:00
andri lim
213fb3b971 constantinople's skeletal implementation 2019-05-13 10:26:28 +03:00
Ștefan Talpalaru
631f3ca29f
fix for Nim HEAD 2019-05-01 19:56:23 +02:00
andri lim
7b47cb6b24
various fixes, GST +6 2019-04-26 07:31:14 +07:00
andri lim
7940d443e9
implement EIP214: staticCall opcode 2019-04-26 07:31:10 +07:00
andri lim
52caf0c248
implement EIP211: returnDataCopy and returnDataSize opcode 2019-04-26 07:31:10 +07:00
andri lim
13cd54a382
implement byzantium opcode dispatch 2019-04-26 07:31:03 +07:00
Ștefan Talpalaru
29a226da1e
more gcsafe pragmas for Nim HEAD 2019-04-26 00:18:51 +02:00
andri lim
79630611c0
fixes #244 2019-04-15 11:34:41 +07:00
andri lim
7eafd75d17
separate tangerine whistle and spurious dragon opcode dispatcher 2019-04-08 08:06:40 +07:00
andri lim
d37d7fa6a5
remove computedGoto pragma 2019-04-04 17:23:28 +07:00
andri lim
fb97d8d0ce
move exception handler to executeOpcodes 2019-04-04 15:26:12 +07:00
andri lim
039256de6a
more on continuation passsing 2019-04-04 15:21:24 +07:00
andri lim
4c0ba876ef
move exception handler deeper in the EVM 2019-04-04 10:50:25 +07:00
andri lim
07ac4620d9
remove 'var' modifier from 'computation: var BaseComputation' 2019-04-04 10:20:00 +07:00
andri lim
26b40f41e3
fix precompiles selection, GST +5 2019-04-02 13:11:00 +07:00
andri lim
d9a9459d95
reduce stack usage 2019-03-28 19:06:38 +07:00
andri lim
be79bc8740
remove opCodeExec, use executeOpcodes 2019-03-21 09:32:48 +07:00
andri lim
b73a1238e0
interpreter dispatch simplification 2019-03-21 09:27:14 +07:00
andri lim
4f6f564626
fix regression 2019-03-18 13:13:16 +07:00
andri lim
4383831772
separate Frontier and Homestead opcode dispatcher 2019-03-18 11:27:32 +07:00
andri lim
f1fac6be0f
remove redundant updateOpcodeExec 2019-03-13 21:15:13 +07:00
andri lim
9522c1145f
fix #245 again 2019-02-25 22:59:05 +07:00
andri lim
0d64e0a6c3
fix #245 2019-02-25 20:02:16 +07:00
andri lim
28245e92a2 fixes #235 2019-02-22 13:10:22 +02:00
andri lim
47a8089ff8 fixes #236 2019-02-21 13:09:36 +02:00
andri lim
71e7ee2dae fixes ECRecover precompiles 2019-02-20 15:16:07 +02:00
andri lim
b159b5c945 remove lastOpCodeHasRetVal, make it simpler 2019-01-06 11:43:38 +02:00
Ștefan Talpalaru
f91e69f7c7
more VM tracing
The existing vmState tracing is plugged into chronicles, at the TRACE
level, to facilitate state test debugging.

Some useful chronicles defines are added to "tests/nim.cfg" to simplify
the compile-and-run command for individual tests.
2018-12-12 11:47:10 +01:00
Ștefan Talpalaru
115843487c
general-state testsuite changes and better fork selection
- skipped the tests in allowedFailInCurrentBuild()
- replaced doAssert() with check() in testFixtureIndexes() so we can see
  both hash values on failure
- checking filename extension for JSON tests to avoid editor swap files
- replaced the duplicated block values in the main net's ChainConfig
  with values from forkBlocks
- allowed overriding the current fork in computations, because the old
  strategy of only looking at the block number doesn't work with JSON tests
  where the block number is usually 1
- explicitly pass the fork to gasCosts() and use it for conditional cost
  calculation
- fixed a logic error in the CREATE opcode
- fixed VM selection based on current fork in updateOpcodeExec()
- single point of control for supported forks in tests (just one fork, at the
  moment)
- 44 new test failures (that were probably passing for the wrong reasons)
2018-12-07 18:18:29 +01:00
andri lim
572de41507 tracing opcode return value 2018-12-05 22:01:29 +07:00
andri lim
5509c66cce implement transaction tracer 2018-12-05 22:01:28 +07:00
coffeepots
f99138dca6 Merge branch 'call-fixes-precompiles' 2018-11-12 15:57:54 +00:00
Yuriy Glukhov
bac452f589 Initial TransactionTracer impl 2018-10-28 14:38:05 +01:00
coffeepots
6e4616e443 Precompiles now executed if called from vm_state_transactions 2018-10-12 16:16:14 +01:00
coffeepots
b49637cdbf Helper procs for updating opcode executor based on fork 2018-09-18 13:10:30 +01:00
coffeepots
af76d209a6 Add opcode executor proc to computation 2018-09-14 16:47:40 +01:00