From 3facc19be32dd305a7fa4f6119d47318e1ff1877 Mon Sep 17 00:00:00 2001 From: kchojn Date: Mon, 28 Oct 2024 08:41:14 -0300 Subject: [PATCH] refactor(statedb_hooked.go): refactor SelfDestruct and SelfDestruct6780 methods to improve readability and reduce code duplication --- core/state/statedb_hooked.go | 48 +++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/core/state/statedb_hooked.go b/core/state/statedb_hooked.go index e13c02e220..3a924cec8e 100644 --- a/core/state/statedb_hooked.go +++ b/core/state/statedb_hooked.go @@ -198,40 +198,44 @@ func (s *hookedStateDB) SetState(address common.Address, key common.Hash, value } func (s *hookedStateDB) SelfDestruct(address common.Address) uint256.Int { - prevCode := s.inner.GetCode(address) - prevCodeHash := s.inner.GetCodeHash(address) - prev := s.inner.SelfDestruct(address) + var prevCode []byte + var prevCodeHash common.Hash - if !prev.IsZero() { - if s.hooks.OnBalanceChange != nil { - s.hooks.OnBalanceChange(address, prev.ToBig(), new(big.Int), tracing.BalanceDecreaseSelfdestruct) - } + if s.hooks.OnCodeChange != nil { + prevCode = s.inner.GetCode(address) + prevCodeHash = s.inner.GetCodeHash(address) } - if len(prevCode) > 0 { - if s.hooks.OnCodeChange != nil { - s.hooks.OnCodeChange(address, prevCodeHash, prevCode, types.EmptyCodeHash, nil) - } + prev := s.inner.SelfDestruct(address) + + if !prev.IsZero() && s.hooks.OnBalanceChange != nil { + s.hooks.OnBalanceChange(address, prev.ToBig(), new(big.Int), tracing.BalanceDecreaseSelfdestruct) + } + + if len(prevCode) > 0 && s.hooks.OnCodeChange != nil { + s.hooks.OnCodeChange(address, prevCodeHash, prevCode, types.EmptyCodeHash, nil) } return prev } func (s *hookedStateDB) SelfDestruct6780(address common.Address) (uint256.Int, bool) { - prevCodeHash := s.inner.GetCodeHash(address) - prevCode := s.inner.GetCode(address) - prev, changed := s.inner.SelfDestruct6780(address) + var prevCode []byte + var prevCodeHash common.Hash - if !prev.IsZero() && changed { - if s.hooks.OnBalanceChange != nil { - s.hooks.OnBalanceChange(address, prev.ToBig(), new(big.Int), tracing.BalanceDecreaseSelfdestruct) - } + if s.hooks.OnCodeChange != nil { + prevCodeHash = s.inner.GetCodeHash(address) + prevCode = s.inner.GetCode(address) } - if len(prevCode) > 0 && changed { - if s.hooks.OnCodeChange != nil { - s.hooks.OnCodeChange(address, prevCodeHash, prevCode, types.EmptyCodeHash, nil) - } + prev, changed := s.inner.SelfDestruct6780(address) + + if !prev.IsZero() && changed && s.hooks.OnBalanceChange != nil { + s.hooks.OnBalanceChange(address, prev.ToBig(), new(big.Int), tracing.BalanceDecreaseSelfdestruct) + } + + if len(prevCode) > 0 && changed && s.hooks.OnCodeChange != nil { + s.hooks.OnCodeChange(address, prevCodeHash, prevCode, types.EmptyCodeHash, nil) } return prev, changed