40 Commits

Author SHA1 Message Date
jangko
baf508f6ae
move stateDB from VMState to chainDB
previously, every time the VMState was created, it will also create
new stateDB, and this action will nullify the advantages of cached accounts.

the new changes will conserve the accounts cache if the executed blocks
are contiguous. if not the stateDB need to be reinited.

this changes also allow rpcCallEvm and rpcEstimateGas executed properly
using current stateDB instead of creating new one each time they are called.
2021-10-28 18:57:08 +07: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
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
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
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
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
8564e9532b change 'rawOutput' to 'output' 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
836e087984 [skip ci] change storageAddress to contractAddres 2020-01-19 19:17:37 +02:00
andri lim
c4dcf5da30
reduce compiler warnings 2019-11-13 21:49:39 +07:00
andri lim
e675182506 fixes 32 bit problem in test_helpers.nim and transaction_tracer.nim 2019-08-19 20:41:27 +03:00
Jacek Sieka
2763bd0dd5
std_shims -> stew 2019-07-07 12:12:01 +02:00
andri lim
79630611c0
fixes #244 2019-04-15 11:34:41 +07:00
Ștefan Talpalaru
f62601e844
Merge branch 'non_recursive_evm' of github.com:jangko/nimbus into jangko-non_recursive_evm 2019-03-20 14:43:50 +01:00
andri lim
4f6f564626
fix regression 2019-03-18 13:13:16 +07:00
Ștefan Talpalaru
a67edd693a
assert() -> doAssert() 2019-03-13 22:36:54 +01:00
andri lim
9d6fb4c82e add comment to transaction tracer 2019-02-27 13:30:18 +02:00
andri lim
0d64e0a6c3
fix #245 2019-02-25 20:02:16 +07:00
andri lim
f5e54b8d4f fix self destruct problem 2019-02-23 17:57:53 +02:00
andri lim
47a8089ff8 fixes #236 2019-02-21 13:09:36 +02:00
andri lim
d015fc3819 bugfix: transaction tracer more robust storage key handling 2019-02-18 13:16:04 +02:00
andri lim
927abdc142 bugfix: multi-depth transaction tracer storage 2019-02-18 13:16:04 +02:00
andri lim
44d05dfdb1 fixes transaction_tracer.nim: tracing depth 2019-02-15 17:20:51 +02:00
andri lim
9efef3829f fixes storage tracer 2019-02-06 18:42:03 +01:00
Yuriy Glukhov
481c6cf4ed Use nim-eth (#224) 2019-02-05 20:15:50 +01:00
andri lim
b93d809805 fix internal transactions account tracing 2019-01-06 13:17:25 +02:00
andri lim
e78fb72ef6 fixes #188 2019-01-06 13:16:45 +02:00
andri lim
8a6d351c22 add internal transactions dump 2019-01-06 11:43:38 +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
andri lim
fe5ddf757b fix trace returnValue 2018-12-05 22:01:29 +07:00
andri lim
572de41507 tracing opcode return value 2018-12-05 22:01:29 +07:00
andri lim
7a3ddfec87 correcting account storage retrieval 2018-12-05 22:01:29 +07:00
andri lim
2552d6452a fix traceTransaction 2018-12-05 22:01:29 +07:00
andri lim
5509c66cce implement transaction tracer 2018-12-05 22:01:28 +07:00
Yuriy Glukhov
bac452f589 Initial TransactionTracer impl 2018-10-28 14:38:05 +01:00