mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-23 05:06:43 +00:00
eth/tracers: fix prestateTracer for EIP-6780 SELFDESTRUCT
This commit is contained in:
parent
5dd0fe2f53
commit
193516ed81
1 changed files with 9 additions and 1 deletions
|
|
@ -131,7 +131,15 @@ func (t *prestateTracer) OnOpcode(pc uint64, opcode byte, gas, cost uint64, scop
|
|||
addr := common.Address(stackData[stackLen-1].Bytes20())
|
||||
t.lookupAccount(addr)
|
||||
if op == vm.SELFDESTRUCT {
|
||||
t.deleted[caller] = true
|
||||
if t.chainConfig.IsCancun(t.env.BlockNumber, t.env.Time) {
|
||||
// EIP-6780: only delete if created in same transaction
|
||||
if t.created[caller] {
|
||||
t.deleted[caller] = true
|
||||
}
|
||||
} else {
|
||||
// Pre-EIP-6780: always delete
|
||||
t.deleted[caller] = true
|
||||
}
|
||||
}
|
||||
case stackLen >= 5 && (op == vm.DELEGATECALL || op == vm.CALL || op == vm.STATICCALL || op == vm.CALLCODE):
|
||||
addr := common.Address(stackData[stackLen-2].Bytes20())
|
||||
|
|
|
|||
Loading…
Reference in a new issue