From acfb2adab17160a604c83c2a7864533b5da91492 Mon Sep 17 00:00:00 2001 From: devopsbo3 <69951731+devopsbo3@users.noreply.github.com> Date: Fri, 10 Nov 2023 11:21:03 -0600 Subject: [PATCH] Revert "core/state: move UpdateContractCode before the trie hash is computed (#27853)" This reverts commit 075fd1c21612714b526afffa2058fb9ac5982f4b. --- core/state/statedb.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/core/state/statedb.go b/core/state/statedb.go index 5c33e2d7e130f..fdaeacc6b3d94 100644 --- a/core/state/statedb.go +++ b/core/state/statedb.go @@ -546,9 +546,6 @@ func (s *StateDB) updateStateObject(obj *stateObject) { if err := s.trie.UpdateAccount(addr, &obj.data); err != nil { s.setError(fmt.Errorf("updateStateObject (%x) error: %v", addr[:], err)) } - if obj.dirtyCode { - s.trie.UpdateContractCode(obj.Address(), common.BytesToHash(obj.CodeHash()), obj.code) - } // Cache the data until commit. Note, this update mechanism is not symmetric // to the deletion, because whereas it is enough to track account updates // at commit time, deletions need tracking at transaction boundary level to @@ -1192,6 +1189,7 @@ func (s *StateDB) Commit(block uint64, deleteEmptyObjects bool) (common.Hash, er // Write any contract code associated with the state object if obj.code != nil && obj.dirtyCode { rawdb.WriteCode(codeWriter, common.BytesToHash(obj.CodeHash()), obj.code) + s.trie.UpdateContractCode(obj.Address(), common.BytesToHash(obj.CodeHash()), obj.code) obj.dirtyCode = false } // Write any storage changes in the state object to its storage trie