nimbus-eth1/nimbus/transaction
Jamie Lokier ffd34a69fe
EVMC: Using `{.show.}` trace all calls from EVM to host services
When `show_tx_calls` is manually set to true, show all the calls from the EVM
to the host, including name, arguments and results.

For example this shows each call to `setStorage`, the key, value and storage
result.  This output allows the externally-visible activity of an EVM to be
seen, and it's been useful for guessing what went wrong when a test fails.

In theory, if two EVMs show the same activity in this log, they should have the
same effect on account states, gas, etc. and the same final `roothash`
(which is the only value some tests check).

ps. Ideally we'd use `{.push show.}`...`{.pop.}`, just like with `inline`.
But we can't: https://github.com/nim-lang/Nim/issues/12867

Signed-off-by: Jamie Lokier <jamie@shareable.org>
2021-06-08 18:29:40 +01:00
..
call_common.nim Transaction: Run all computations via EVMC `execute` 2021-06-08 18:29:39 +01:00
call_evm.nim EVM: Remove `vm_types2` everywhere, use common forks list instead 2021-06-08 15:36:31 +01:00
evmc_host_glue.nim Transaction: Run all computations via EVMC `execute` 2021-06-08 18:29:39 +01:00
evmc_vm_glue.nim EVMC: Binary compatibility on the VM side for calling `execute` 2021-06-08 18:29:39 +01:00
host_services.nim EVMC: Using `{.show.}` trace all calls from EVM to host services 2021-06-08 18:29:40 +01:00
host_trace.nim EVMC: `{.show.}` pragma to show EVMC host call arguments and results 2021-06-08 18:29:40 +01:00
host_types.nim Transaction: Run all computations via EVMC `execute` 2021-06-08 18:29:39 +01:00