eth/tracers: fix codehash in prestate diffmode

This commit is contained in:
Sina Mahmoodi 2026-04-07 11:05:58 +00:00
parent bd6530a1d4
commit 50aceba6c4

View file

@ -277,8 +277,15 @@ func (t *prestateTracer) processDiffState() {
} }
if newCodeHash != prevCodeHash { if newCodeHash != prevCodeHash {
modified = true modified = true
// If code was cleared, report the canonical empty code hash
// rather than the zero hash used for comparison.
if newCodeHash == (common.Hash{}) {
emptyHash := types.EmptyCodeHash
postAccount.CodeHash = &emptyHash
} else {
postAccount.CodeHash = &newCodeHash postAccount.CodeHash = &newCodeHash
} }
}
if !t.config.DisableCode { if !t.config.DisableCode {
newCode := t.env.StateDB.GetCode(addr) newCode := t.env.StateDB.GetCode(addr)
if !bytes.Equal(newCode, t.pre[addr].Code) { if !bytes.Equal(newCode, t.pre[addr].Code) {