@@ -283,24 +283,24 @@ func (t *prestateTracer) processDiffState() {
283283
284284 newBalance , _ := t .env .IntraBlockState .GetBalance (addr )
285285 newNonce , _ := t .env .IntraBlockState .GetNonce (addr )
286- // GetCodeHash returns common.Hash{} for deleted accounts; GetCode cannot make
287- // that distinction (empty bytes for both deleted and codeless accounts ).
286+ // GetCode returns empty bytes for both deleted and codeless accounts;
287+ // GetCodeHash distinguishes them ( deleted → zero hash ).
288288 codeHash , _ := t .env .IntraBlockState .GetCodeHash (addr )
289289 newCodeHash := codeHash .Value ()
290290
291291 newBalanceBig := newBalance .ToBig ()
292- if newBalanceBig .Cmp (t . pre [ addr ] .Balance ) != 0 {
292+ if newBalanceBig .Cmp (state .Balance ) != 0 {
293293 modified = true
294294 postAccount .Balance = newBalanceBig
295295 }
296- if newNonce != t . pre [ addr ] .Nonce {
296+ if newNonce != state .Nonce {
297297 modified = true
298298 postAccount .Nonce = newNonce
299299 }
300300
301301 prevCodeHash := empty .CodeHash
302- if t . pre [ addr ] .CodeHash != nil {
303- prevCodeHash = * t . pre [ addr ] .CodeHash
302+ if state .CodeHash != nil {
303+ prevCodeHash = * state .CodeHash
304304 }
305305
306306 if newCodeHash != prevCodeHash {
@@ -311,8 +311,8 @@ func (t *prestateTracer) processDiffState() {
311311 if ! t .config .DisableCode {
312312 newCode , _ := t .env .IntraBlockState .GetCode (addr )
313313 var prevCode []byte
314- if t . pre [ addr ] .Code != nil {
315- prevCode = * t . pre [ addr ] .Code
314+ if state .Code != nil {
315+ prevCode = * state .Code
316316 }
317317 if ! bytes .Equal (newCode , prevCode ) {
318318 modified = true
@@ -324,13 +324,13 @@ func (t *prestateTracer) processDiffState() {
324324 for key , val := range state .Storage {
325325 // don't include the empty slot
326326 if val == (common.Hash {}) {
327- delete (t . pre [ addr ] .Storage , key )
327+ delete (state .Storage , key )
328328 }
329329
330330 newVal , _ := t .env .IntraBlockState .GetState (addr , accounts .InternKey (key ))
331331 if new (uint256.Int ).SetBytes (val [:]).Eq (& newVal ) {
332332 // Omit unchanged slots
333- delete (t . pre [ addr ] .Storage , key )
333+ delete (state .Storage , key )
334334 } else {
335335 modified = true
336336 if ! newVal .IsZero () {
0 commit comments