go-ethereum/eth/tracers/internal/tracetest
Guillaume Ballet ba215fd927
cmd, core, trie, triedb: split CachingDB into merkle + binary dbs. (#34700)
This Pr implements some prerequisite changes for #34004 : split the
`CachingDB` into a `MerkleDB` and a `UBTDB`, so that very different
behaviors don't clash as much.

The transition isn't handled by this PR, but after talking to Gary we
agreed that `UBTDB` should receive another `triedb`, which will only be
loaded if the `Ended` flag is set to false in the conversion contract.
If this is too hard to achieve, it makes sense to load it regardless,
and then loading can be prevented at a later stage by adding a
`UBTTransitionFinalizationTime` in `ChainConfig`.

---------

Co-authored-by: Gary Rong <garyrong0905@gmail.com>
2026-04-17 08:55:54 +08:00
..
selfdestruct_test_contracts
testdata
calltrace_test.go
erc7562_tracer_test.go
flat_calltrace_test.go
makeTest.js
prestate_test.go
README.md
selfdestruct_state_test.go cmd, core, trie, triedb: split CachingDB into merkle + binary dbs. (#34700) 2026-04-17 08:55:54 +08:00
supply_test.go
util.go

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' })