Repository: iotexproject/iotex-core
Pull request #4215 (2024-03-28 22:12:51)

[evm] rename suicide to selfDestruct
# Description
as title, to make code more readable following the interface name change

Fixes #(issue)

## Type of change
Please delete options that are not relevant.
- [] Bug fix (non-breaking change which fixes an issue)
- [] New feature (non-breaking change which adds functionality)
- [x] Code refactor or improvement
- [] Breaking change (fix or feature that would cause a new or changed behavior of existing functionality)
- [] This change requires a documentation update

# How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
- [] make test
- [] fullsync
- [] Other test (please specify)

**Test Configuration**:
- Firmware version:
- Hardware:
- Toolchain:
- SDK:

# Checklist:
- [] My code follows the style guidelines of this project
- [] I have performed a self-review of my code
- [] I have commented my code, particularly in hard-to-understand areas
- [] I have made corresponding changes to the documentation
- [] My changes generate no new warnings
- [] I have added tests that prove my fix is effective or that my feature works
- [] New and existing unit tests pass locally with my changes
- [] Any dependent changes have been merged and published in downstream modules


sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=iotexproject_iotex-core&pullRequest=4215) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=iotexproject_iotex-core&pullRequest=4215&resolved=false&inNewCodePeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/component_measures?id=iotexproject_iotex-core&pullRequest=4215&metric=new_accepted_issues&view=list)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=iotexproject_iotex-core&pullRequest=4215&resolved=false&inNewCodePeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/no-data-16px.png '') No data about Coverage  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=iotexproject_iotex-core&pullRequest=4215&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarCloud](https://sonarcloud.io/dashboard?id=iotexproject_iotex-core&pullRequest=4215)


codecov[bot]: ## [Codecov](https://app.codecov.io/gh/iotexproject/iotex-core/pull/4215?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iotexproject) Report
Attention: Patch coverage is `88.23529%` with `4 lines` in your changes are missing coverage. Please review.
> Project coverage is 76.76%. Comparing base [(`e1f0636`)](https://app.codecov.io/gh/iotexproject/iotex-core/commit/e1f0636b27ca54fa57da8cadb3034431143833fa?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iotexproject) to head [(`a150cdf`)](https://app.codecov.io/gh/iotexproject/iotex-core/pull/4215?dropdown=coverage&src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iotexproject).
> Report is 216 commits behind head on master.

| [Files](https://app.codecov.io/gh/iotexproject/iotex-core/pull/4215?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iotexproject) | Patch % | Lines |
|---|---|---|
| [action/protocol/execution/evm/evmstatedbadapter.go](https://app.codecov.io/gh/iotexproject/iotex-core/pull/4215?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iotexproject#diff-YWN0aW9uL3Byb3RvY29sL2V4ZWN1dGlvbi9ldm0vZXZtc3RhdGVkYmFkYXB0ZXIuZ28=) | 88.23% | [2 Missing and 2 partials :warning: ](https://app.codecov.io/gh/iotexproject/iotex-core/pull/4215?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iotexproject) |

<details><summary>Additional details and impacted files</summary>


```diff
@@            Coverage Diff             @@
##           master    #4215      +/-   ##
==========================================
+ Coverage   75.38%   76.76%   +1.38%     
==========================================
  Files         303      340      +37     
  Lines       25923    29263    +3340     
==========================================
+ Hits        19541    22463    +2922     
- Misses       5360     5695     +335     
- Partials     1022     1105      +83     
```



</details>

[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/iotexproject/iotex-core/pull/4215?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iotexproject).   
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iotexproject).

sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=iotexproject_iotex-core&pullRequest=4215) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=iotexproject_iotex-core&pullRequest=4215&resolved=false&inNewCodePeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/component_measures?id=iotexproject_iotex-core&pullRequest=4215&metric=new_accepted_issues&view=list)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=iotexproject_iotex-core&pullRequest=4215&resolved=false&inNewCodePeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/no-data-16px.png '') No data about Coverage  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=iotexproject_iotex-core&pullRequest=4215&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarCloud](https://sonarcloud.io/dashboard?id=iotexproject_iotex-core&pullRequest=4215)



Patch:
diff --git a/action/protocol/execution/evm/evmstatedbadapter.go b/action/protocol/execution/evm/evmstatedbadapter.go
index c7a7f964c..37709d5e0 100644
--- a/action/protocol/execution/evm/evmstatedbadapter.go
+++ b/action/protocol/execution/evm/evmstatedbadapter.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2019 IoTeX Foundation
+// Copyright (c) 2024 IoTeX Foundation
 // This source code is provided 'as is' and no warranties are given as to title or non-infringement, merchantability
 // or fitness for purpose and, to the extent permitted by law, all liability for your use of the code is disclaimed.
 // This source code is governed by Apache License 2.0 that can be found in the LICENSE file.
@@ -55,8 +55,8 @@ type (
 		refundSnapshot             map[int]uint64
 		cachedContract             contractMap
 		contractSnapshot           map[int]contractMap   // snapshots of contracts
-		suicided                   deleteAccount         // account/contract calling Suicide
-		suicideSnapshot            map[int]deleteAccount // snapshots of suicide accounts
+		selfDestructed             deleteAccount         // account/contract calling SelfDestruct
+		selfDestructedSnapshot     map[int]deleteAccount // snapshots of SelfDestruct accounts
 		preimages                  preimageMap
 		preimageSnapshot           map[int]preimageMap
 		accessList                 *accessList // per-transaction access list
@@ -170,23 +170,23 @@ func NewStateDBAdapter(
 	opts ...StateDBAdapterOption,
 ) (*StateDBAdapter, error) {
 	s := &StateDBAdapter{
-		sm:                   sm,
-		logs:                 []*action.Log{},
-		err:                  nil,
-		blockHeight:          blockHeight,
-		executionHash:        executionHash,
-		lastAddBalanceAmount: new(big.Int),
-		refundSnapshot:       make(map[int]uint64),
-		cachedContract:       make(contractMap),
-		contractSnapshot:     make(map[int]contractMap),
-		suicided:             make(deleteAccount),
-		suicideSnapshot:      make(map[int]deleteAccount),
-		preimages:            make(preimageMap),
-		preimageSnapshot:     make(map[int]preimageMap),
-		accessList:           newAccessList(),
-		accessListSnapshot:   make(map[int]*accessList),
-		logsSnapshot:         make(map[int]int),
-		txLogsSnapshot:       make(map[int]int),
+		sm:                     sm,
+		logs:                   []*action.Log{},
+		err:                    nil,
+		blockHeight:            blockHeight,
+		executionHash:          executionHash,
+		lastAddBalanceAmount:   new(big.Int),
+		refundSnapshot:         make(map[int]uint64),
+		cachedContract:         make(contractMap),
+		contractSnapshot:       make(map[int]contractMap),
+		selfDestructed:         make(deleteAccount),
+		selfDestructedSnapshot: make(map[int]deleteAccount),
+		preimages:              make(preimageMap),
+		preimageSnapshot:       make(map[int]preimageMap),
+		accessList:             newAccessList(),
+		accessListSnapshot:     make(map[int]*accessList),
+		logsSnapshot:           make(map[int]int),
+		txLogsSnapshot:         make(map[int]int),
 	}
 	for _, opt := range opts {
 		if err := opt(s); err != nil {
@@ -447,8 +447,8 @@ func (stateDB *StateDBAdapter) SelfDestruct(evmAddr common.Address) {
 	// a separate patch file will be created later to provide missing logs before the hard-fork
 	// TODO: remove this gating once the hard-fork has passed
 	if stateDB.suicideTxLogMismatchPanic {
-		// before calling Suicide, EVM will transfer the contract's balance to beneficiary
-		// need to create a transaction log on successful suicide
+		// before calling SelfDestruct, EVM will transfer the contract's balance to beneficiary
+		// need to create a transaction log on successful SelfDestruct
 		if stateDB.lastAddBalanceAmount.Cmp(actBalance) == 0 {
 			if stateDB.lastAddBalanceAmount.Cmp(big.NewInt(0)) > 0 {
 				from, _ := address.FromBytes(evmAddr[:])
@@ -460,19 +460,19 @@ func (stateDB *StateDBAdapter) SelfDestruct(evmAddr common.Address) {
 				})
 			}
 		} else {
-			log.L().Panic("suicide contract's balance does not match",
-				zap.String("suicide", actBalance.String()),
+			log.L().Panic("SelfDestruct contract's balance does not match",
+				zap.String("SelfDestruct", actBalance.String()),
 				zap.String("beneficiary", stateDB.lastAddBalanceAmount.String()))
 		}
 	}
 	// mark it as deleted
-	stateDB.suicided[addrHash] = struct{}{}
+	stateDB.selfDestructed[addrHash] = struct{}{}
 }
 
 // HasSelfDestructed returns whether the contract has been killed
 func (stateDB *StateDBAdapter) HasSelfDestructed(evmAddr common.Address) bool {
 	addrHash := hash.BytesToHash160(evmAddr.Bytes())
-	_, ok := stateDB.suicided[addrHash]
+	_, ok := stateDB.selfDestructed[addrHash]
 	return ok
 }
 
@@ -592,9 +592,9 @@ func (stateDB *StateDBAdapter) RevertToSnapshot(snapshot int) {
 		stateDB.logError(err)
 		return
 	}
-	ds, ok := stateDB.suicideSnapshot[snapshot]
+	ds, ok := stateDB.selfDestructedSnapshot[snapshot]
 	if !ok {
-		// this should not happen, b/c we save the suicide accounts on a successful return of Snapshot(), but check anyway
+		// this should not happen, b/c we save the SelfDestruct accounts on a successful return of Snapshot(), but check anyway
 		log.L().Error("Failed to get snapshot.", zap.Int("snapshot", snapshot))
 		return
 	}
@@ -644,14 +644,14 @@ func (stateDB *StateDBAdapter) RevertToSnapshot(snapshot int) {
 			}
 		}
 	}
-	// restore the suicide accounts
-	stateDB.suicided = nil
-	stateDB.suicided = ds
+	// restore the SelfDestruct accounts
+	stateDB.selfDestructed = nil
+	stateDB.selfDestructed = ds
 	if stateDB.fixSnapshotOrder {
-		delete(stateDB.suicideSnapshot, snapshot)
+		delete(stateDB.selfDestructedSnapshot, snapshot)
 		for i := snapshot + 1; ; i++ {
-			if _, ok := stateDB.suicideSnapshot[i]; ok {
-				delete(stateDB.suicideSnapshot, i)
+			if _, ok := stateDB.selfDestructedSnapshot[i]; ok {
+				delete(stateDB.selfDestructedSnapshot, i)
 			} else {
 				break
 			}
@@ -713,7 +713,7 @@ func (stateDB *StateDBAdapter) Snapshot() int {
 		}
 	}
 	sn := stateDB.sm.Snapshot()
-	if _, ok := stateDB.suicideSnapshot[sn]; ok {
+	if _, ok := stateDB.selfDestructedSnapshot[sn]; ok {
 		err := errors.New("unexpected error: duplicate snapshot version")
 		if stateDB.fixSnapshotOrder {
 			log.L().Panic("Failed to snapshot.", zap.Error(err))
@@ -730,12 +730,12 @@ func (stateDB *StateDBAdapter) Snapshot() int {
 		stateDB.logsSnapshot[sn] = len(stateDB.logs)
 		stateDB.txLogsSnapshot[sn] = len(stateDB.transactionLogs)
 	}
-	// save a copy of current suicide accounts
+	// save a copy of current SelfDestruct accounts
 	sa := make(deleteAccount)
-	for k, v := range stateDB.suicided {
+	for k, v := range stateDB.selfDestructed {
 		sa[k] = v
 	}
-	stateDB.suicideSnapshot[sn] = sa
+	stateDB.selfDestructedSnapshot[sn] = sa
 	if !stateDB.fixSnapshotOrder {
 		for _, addr := range stateDB.cachedContractAddrs() {
 			c[addr] = stateDB.cachedContract[addr].Snapshot()
@@ -996,8 +996,8 @@ func (stateDB *StateDBAdapter) CommitContracts() error {
 			return errors.Wrap(err, "failed to decode address hash")
 		}
 		copy(addr[:], addrBytes)
-		if _, ok := stateDB.suicided[addr]; ok {
-			// no need to update a suicide account/contract
+		if _, ok := stateDB.selfDestructed[addr]; ok {
+			// no need to update a SelfDestruct account/contract
 			continue
 		}
 		contract := stateDB.cachedContract[addr]
@@ -1014,7 +1014,7 @@ func (stateDB *StateDBAdapter) CommitContracts() error {
 	}
 	// delete suicided accounts/contract
 	addrStrs = make([]string, 0)
-	for addr := range stateDB.suicided {
+	for addr := range stateDB.selfDestructed {
 		addrStrs = append(addrStrs, hex.EncodeToString(addr[:]))
 	}
 	sort.Strings(addrStrs)
@@ -1028,7 +1028,7 @@ func (stateDB *StateDBAdapter) CommitContracts() error {
 		copy(addr[:], addrBytes)
 		if _, err := stateDB.sm.DelState(protocol.LegacyKeyOption(addr)); err != nil {
 			stateDB.logError(err)
-			return errors.Wrapf(err, "failed to delete suicide account/contract %x", addr[:])
+			return errors.Wrapf(err, "failed to delete SelfDestruct account/contract %x", addr[:])
 		}
 	}
 	// write preimages to DB
@@ -1083,8 +1083,8 @@ func (stateDB *StateDBAdapter) clear() {
 	stateDB.refundSnapshot = make(map[int]uint64)
 	stateDB.cachedContract = make(contractMap)
 	stateDB.contractSnapshot = make(map[int]contractMap)
-	stateDB.suicided = make(deleteAccount)
-	stateDB.suicideSnapshot = make(map[int]deleteAccount)
+	stateDB.selfDestructed = make(deleteAccount)
+	stateDB.selfDestructedSnapshot = make(map[int]deleteAccount)
 	stateDB.preimages = make(preimageMap)
 	stateDB.preimageSnapshot = make(map[int]preimageMap)
 	stateDB.accessList = newAccessList()
diff --git a/blockchain/genesis/genesis.go b/blockchain/genesis/genesis.go
index 3e0ab5eb1..d9f6fa6d3 100644
--- a/blockchain/genesis/genesis.go
+++ b/blockchain/genesis/genesis.go
@@ -256,7 +256,7 @@ type (
 		SumatraBlockHeight uint64 `yaml:"sumatraHeight"`
 		// TsunamiBlockHeight is the start height to
 		// 1. enable delegate endorsement
-		// 2. generate transaction log for Suicide() call in EVM
+		// 2. generate transaction log for SelfDestruct() call in EVM
 		// 3. raise block gas limit to 50M
 		TsunamiBlockHeight uint64 `yaml:"tsunamiHeight"`
 		// UpernavikBlockHeight is the start height to


Test patch:
diff --git a/action/protocol/execution/evm/evmstatedbadapter_test.go b/action/protocol/execution/evm/evmstatedbadapter_test.go
index 8eb07d8b5..89ff4eab7 100644
--- a/action/protocol/execution/evm/evmstatedbadapter_test.go
+++ b/action/protocol/execution/evm/evmstatedbadapter_test.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2019 IoTeX Foundation
+// Copyright (c) 2024 IoTeX Foundation
 // This source code is provided 'as is' and no warranties are given as to title or non-infringement, merchantability
 // or fitness for purpose and, to the extent permitted by law, all liability for your use of the code is disclaimed.
 // This source code is governed by Apache License 2.0 that can be found in the LICENSE file.
@@ -448,8 +448,8 @@ func TestSnapshotRevertAndCommit(t *testing.T) {
 			}
 			// set refund
 			stateDB.refund = test.refund
-			// set suicide
-			for _, e := range test.suicide {
+			// set SelfDestruct
+			for _, e := range test.selfDestruct {
 				if e.amount != nil {
 					stateDB.AddBalance(e.addr, uint256.MustFromBig(e.amount))
 				}
@@ -639,9 +639,9 @@ func TestSnapshotRevertAndCommit(t *testing.T) {
 					}
 				}
 			}
-			// test suicide/exist
-			for _, e := range test.suicide {
-				require.Equal(e.suicide, stateDB.HasSelfDestructed(e.addr))
+			// test SelfDestruct/exist
+			for _, e := range test.selfDestruct {
+				require.Equal(e.selfDestruct, stateDB.HasSelfDestructed(e.addr))
 				require.Equal(e.exist, stateDB.Exist(e.addr))
 			}
 			// test logs
@@ -666,13 +666,13 @@ func TestSnapshotRevertAndCommit(t *testing.T) {
 		require.Equal(1, stateDB.Snapshot())
 		if fixSnapshot {
 			require.Equal(1, len(stateDB.contractSnapshot))
-			require.Equal(1, len(stateDB.suicideSnapshot))
+			require.Equal(1, len(stateDB.selfDestructedSnapshot))
 			require.Equal(1, len(stateDB.preimageSnapshot))
 			require.Equal(1, len(stateDB.accessListSnapshot))
 			require.Equal(1, len(stateDB.refundSnapshot))
 		} else {
 			require.Equal(3, len(stateDB.contractSnapshot))
-			require.Equal(3, len(stateDB.suicideSnapshot))
+			require.Equal(3, len(stateDB.selfDestructedSnapshot))
 			require.Equal(3, len(stateDB.preimageSnapshot))
 			// refund fix and accessList are introduced after fixSnapshot
 			// so their snapshot are always properly cleared
@@ -682,7 +682,7 @@ func TestSnapshotRevertAndCommit(t *testing.T) {
 		// commit snapshot 0's state
 		require.NoError(stateDB.CommitContracts())
 		stateDB.clear()
-		//[TODO] need e2etest to verify state factory commit/re-open (whether result from state/balance/suicide/exist is same)
+		//[TODO] need e2etest to verify state factory commit/re-open (whether result from state/balance/SelfDestruct/exist is same)
 	}
 
 	t.Run("contract snapshot/revert/commit", func(t *testing.T) {
@@ -734,8 +734,8 @@ func TestClearSnapshots(t *testing.T) {
 			for _, e := range test.states {
 				stateDB.SetState(e.addr, e.k, e.v)
 			}
-			// set suicide
-			for _, e := range test.suicide {
+			// set SelfDestruct
+			for _, e := range test.selfDestruct {
 				stateDB.SelfDestruct(e.addr)
 				require.Equal(e.exist, stateDB.Exist(e.addr))
 			}
@@ -752,23 +752,23 @@ func TestClearSnapshots(t *testing.T) {
 
 		if stateDB.fixSnapshotOrder {
 			// snapshot 1, 2 cleared, only 0 left in map
-			require.Equal(1, len(stateDB.suicideSnapshot))
+			require.Equal(1, len(stateDB.selfDestructedSnapshot))
 			require.Equal(1, len(stateDB.contractSnapshot))
 			require.Equal(1, len(stateDB.preimageSnapshot))
 			require.Equal(2, stateDB.Snapshot())
 			// now there are 2 snapshots: 0 and the newly added one
-			require.Equal(2, len(stateDB.suicideSnapshot))
+			require.Equal(2, len(stateDB.selfDestructedSnapshot))
 			require.Equal(2, len(stateDB.contractSnapshot))
 			require.Equal(2, len(stateDB.preimageSnapshot))
 			require.Equal(2, len(stateDB.logsSnapshot))
 		} else {
 			// snapshot not cleared
-			require.Equal(3, len(stateDB.suicideSnapshot))
+			require.Equal(3, len(stateDB.selfDestructedSnapshot))
 			require.Equal(3, len(stateDB.contractSnapshot))
 			require.Equal(3, len(stateDB.preimageSnapshot))
 			require.Equal(2, stateDB.Snapshot())
 			// still 3 old snapshots
-			require.Equal(3, len(stateDB.suicideSnapshot))
+			require.Equal(3, len(stateDB.selfDestructedSnapshot))
 			require.Equal(3, len(stateDB.contractSnapshot))
 			require.Equal(3, len(stateDB.preimageSnapshot))
 			// log snapshot added after fixSnapshotOrder, so it is cleared and 1 remains
diff --git a/action/protocol/execution/evm/testdata_test.go b/action/protocol/execution/evm/testdata_test.go
index ad3a9b703..8d3830a70 100644
--- a/action/protocol/execution/evm/testdata_test.go
+++ b/action/protocol/execution/evm/testdata_test.go
@@ -1,3 +1,8 @@
+// Copyright (c) 2024 IoTeX Foundation
+// This source code is provided 'as is' and no warranties are given as to title or non-infringement, merchantability
+// or fitness for purpose and, to the extent permitted by law, all liability for your use of the code is disclaimed.
+// This source code is governed by Apache License 2.0 that can be found in the LICENSE file.
+
 package evm
 
 import (
@@ -35,11 +40,11 @@ type (
 		v    common.Hash
 	}
 	sui struct {
-		amount      *big.Int
-		beneficiary common.Address
-		addr        common.Address
-		suicide     bool
-		exist       bool
+		amount       *big.Int
+		beneficiary  common.Address
+		addr         common.Address
+		selfDestruct bool
+		exist        bool
 	}
 	image struct {
 		hash common.Hash
@@ -56,7 +61,7 @@ type (
 		codes                         []code
 		states                        []evmSet
 		refund                        uint64
-		suicide                       []sui
+		selfDestruct                  []sui
 		preimage                      []image
 		accessList                    []access
 		logs                          []*types.Log