Commit Graph

87 Commits

Author SHA1 Message Date
jangko a4678a041d
wire evmc to vm2 and drop legacy vm
fixes #445, #1172
2022-09-26 15:16:28 +07:00
Jamie Lokier 4187eb1959
Transaction: Prepare txRefundGas to support txCallEvm
There's only one call left to `refundGas(Transaction, ...)`, and the
similarity to the tail of `rpcEstimateGas` is obvious.

Gather this into `call_evm`: `refundGas` -> `txRefundGas`.

Signed-off-by: Jamie Lokier <jamie@shareable.org>
2021-05-03 19:51:20 +01:00
Jamie Lokier 52fd8b8129
Transaction: Prepare txSetupComputation to support txCallEvm
After recent changes, there's only one call left to `setupComputation`, and
it's just a variant like `rpcSetupComputation` but for transaction processing.
The similarity to `rpcSetupComputation` is obvious.

Gather this into `call_evm`: `setupComputation` -> `txSetupComputation`.

Signed-off-by: Jamie Lokier <jamie@shareable.org>
2021-05-03 19:51:20 +01:00
Jordan Hrycaj 69a1ee5fc8 re-named some v2state_transactions.nim to its original name without the v2
also:
  re-integrated stack_defs.nim back into stack.nim

why:
  the v2 prefix of the file name was used as a visual aid when
  comparing vm2 against vm sources
2021-04-28 15:24:14 +03:00
Jordan Hrycaj f159e67bba renamed states*.nim => v2states*.nim
why:
  these files provide part of the externally accessible interface
  provided by vm_state*.nim. so the new filename indicates that the
  source code belongs to vm2 (rather than vm).
2021-04-23 14:04:06 +03:00
Jordan Hrycaj b4f8450968 provide identical copy of vm folder => vm2, activated by make flag ENABLE_VM2=1
why:
  vm2 enabled by ENABLE_VM2=1 behaves as vm without ENABLE_EVMC=1 until
  it doesn't in some future fatch set. this leaves some wiggle room
  to work on a vm copy without degrading the original implementation.

details:
  + additional make flag ENABLE_VM2=1 (or ENABLE_VM2=0 to explicitely disable)
  + when both flags ENABLE_EVMC=1 and ENABLE_VM2=1 are present, the former
    flag ENABLE_EVMC=1 takes precedence, this is implemented at the NIM
    compiler level for -d:evmc_enabled and -d:vm2_enabled
2021-04-23 14:04:06 +03:00
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 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 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
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 0686bb4b6e remove legacy unused code 2020-02-12 17:53:26 +02:00
andri lim 270854a5aa simplify 'gasUsed' and 'refundGas' 2020-02-12 17:53:26 +02:00
andri lim d9991b1e8b simplify cash 2020-02-12 17:53:26 +02:00
andri lim 1cd9353faa simplify computation 2020-02-12 17:53:26 +02:00
andri lim 55494f06e5
move 'validateTransaction' from GST into 'processTransaction' 2020-01-24 19:52:55 +07:00
andri lim d656f7f701 rename 'txContext' to 'setupTxContext' 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 577c7ca5aa simplify 'execComputation' 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 ec8abf40e4 move 'tx.getRecipient' into 'setupComputation' 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 73c60fe694 unifying contract collision detection 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 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
andri lim 8f7597e23b [skip ci] add evmc CallKind to EVM Message 2020-01-19 19:17:37 +02:00
andri lim 836e087984 [skip ci] change storageAddress to contractAddres 2020-01-19 19:17:37 +02:00
andri lim 40ddbca1ee [skip ci] simplify EVM message creation 2020-01-19 19:17:37 +02:00
andri lim c4dcf5da30
reduce compiler warnings 2019-11-13 21:49:39 +07:00
andri lim 7c094a2a3e
initial implementation of transaction test 2019-08-29 19:54:38 +07:00
Jacek Sieka 2763bd0dd5
std_shims -> stew 2019-07-07 12:12:01 +02:00
andri lim 90e3a4320a
fix revert opcode at first level computation 2019-04-26 07:31:13 +07:00
andri lim 6295e6a7e4
fix touched miner problem, GST +25 2019-04-26 07:31:11 +07:00
andri lim dd89af6d3d
implement EIP658: receipt status field 2019-04-26 07:31:09 +07:00
andri lim 1883472104
fix evm msg contract creation, GST +3 2019-04-18 12:42:37 +07:00
andri lim f7338b7d76
include miner address in touchedAccounts, GST +7 2019-04-18 11:12:21 +07:00
andri lim 7c134b481e
split state clearing in execComputation to processTransaction, GST +5 2019-04-18 08:27:55 +07:00
andri lim 03435c7beb
gst and processTransaction unification 2019-04-18 07:56:57 +07:00
andri lim 6cf0cdf23a
implement EIP161 nonce incrementation, GST +65 2019-04-17 12:15:15 +07:00
andri lim 85d9bd3958
implement EIP158, GST -4 +81 2019-04-17 11:03:52 +07:00
andri lim 79630611c0
fixes #244 2019-04-15 11:34:41 +07:00
andri lim 0f8affb7c9
remove explicit return value from VM 2019-04-02 13:11:00 +07:00
Ștefan Talpalaru 348782ac6a
Merge branch 'fix_gaspricelimit' of github.com:jangko/nimbus into jangko-fix_gaspricelimit 2019-03-28 15:14:39 +01:00
andri lim 1ad4e256b2
fix self destruct refund gas problem 2019-03-28 19:07:30 +07:00
andri lim 62c1e668a9
fix tx_e1c174e2 problem, GST +1 2019-03-28 19:05:07 +07:00