go-ethereum/eth/tracers/internal/tracetest
Felix Lange 9064038a86
consensus/beacon: remove TestingTTDBlock (#31153)
This removes the method `TestingTTDBlock` introduced by #30744. It was
added to make the beacon consensus engine aware of the merge block in
tests without relying on the total difficulty. However, tracking the
merge block this way is very annoying. We usually configure forks in the
`ChainConfig`, but the method is on the consensus engine, which isn't
always created in the same place. By sidestepping the `ChainConfig` we
don't get the usual fork-order checking, so it's possible to enable the
merge before the London fork, for example. This in turn can lead to very
hard-to-debug outputs and validation errors.

So here I'm changing the consensus engine to check the
`MergeNetsplitBlock` instead. Alternatively, we assume a network is
merged if it has a `TerminalTotalDifficulty` of zero, which is a very
common configuration in tests.
2025-02-11 13:44:25 +01:00
..
testdata params,core: add max and target value to chain config (#31002) 2025-02-04 15:43:18 +01:00
README.md eth/tracers: live chain tracing with hooks (#29189) 2024-03-22 18:53:53 +01:00
calltrace_test.go core: switch EVM tx context in ApplyMessage (#30809) 2024-11-29 15:39:42 +01:00
flat_calltrace_test.go all: update license comments and AUTHORS (#31133) 2025-02-05 23:01:17 +01:00
makeTest.js all: update license comments and AUTHORS (#31133) 2025-02-05 23:01:17 +01:00
prestate_test.go all: update license comments and AUTHORS (#31133) 2025-02-05 23:01:17 +01:00
supply_test.go consensus/beacon: remove TestingTTDBlock (#31153) 2025-02-11 13:44:25 +01:00
util.go all: update license comments and AUTHORS (#31133) 2025-02-05 23:01:17 +01:00

README.md

Filling test cases

To fill test cases for the built-in tracers, the makeTest.js script can be used. Given a transaction on a dev/test network, makeTest.js will fetch its prestate and then traces with the given configuration. In the Geth console do:

let tx = '0x...'
loadScript('makeTest.js')
makeTest(tx, { tracer: 'callTracer' })