Skip to content

core/vm/evm.go — Version Comparison

v1.17.3 v1.17.4
Branch etc/v1.17.3-full-node etc/v1.17.4-full-node
Delta +10 -1 +10 -1
ETC delta on v1.17.3 (+10 -1)
diff --git a/core/vm/evm.go b/core/vm/evm.go
index 26b2f73a0..609f48c76 100644
--- a/core/vm/evm.go
+++ b/core/vm/evm.go
@@ -159,10 +159,14 @@ func NewEVM(blockCtx BlockContext, statedb StateDB, chainConfig *params.ChainCon
        evm.table = &pragueInstructionSet
    case evm.chainRules.IsCancun:
        evm.table = &cancunInstructionSet
+   case evm.chainRules.IsSpiral:
+       evm.table = &spiralInstructionSet
    case evm.chainRules.IsShanghai:
        evm.table = &shanghaiInstructionSet
    case evm.chainRules.IsMerge:
        evm.table = &mergeInstructionSet
+   case evm.chainRules.IsMystique:
+       evm.table = &mystiqueInstructionSet
    case evm.chainRules.IsLondon:
        evm.table = &londonInstructionSet
    case evm.chainRules.IsBerlin:
@@ -183,9 +187,14 @@ func NewEVM(blockCtx BlockContext, statedb StateDB, chainConfig *params.ChainCon
        evm.table = &frontierInstructionSet
    }
    var extraEips []int
-   if len(evm.Config.ExtraEips) > 0 {
+   if evm.chainRules.IsEIP160 || len(evm.Config.ExtraEips) > 0 {
        // Deep-copy jumptable to prevent modification of opcodes in other tables
        evm.table = copyJumpTable(evm.table)
+       if evm.chainRules.IsEIP160 {
+           if err := EnableEIP(160, evm.table); err != nil {
+               log.Error("EIP activation failed", "eip", 160, "error", err)
+           }
+       }
    }
    for _, eip := range evm.Config.ExtraEips {
        if err := EnableEIP(eip, evm.table); err != nil {
ETC delta on v1.17.4 (+10 -1)
diff --git a/core/vm/evm.go b/core/vm/evm.go
index 50d9e8ab0..716fa7ec2 100644
--- a/core/vm/evm.go
+++ b/core/vm/evm.go
@@ -161,10 +161,14 @@ func NewEVM(blockCtx BlockContext, statedb StateDB, chainConfig *params.ChainCon
        evm.table = &pragueInstructionSet
    case evm.chainRules.IsCancun:
        evm.table = &cancunInstructionSet
+   case evm.chainRules.IsSpiral:
+       evm.table = &spiralInstructionSet
    case evm.chainRules.IsShanghai:
        evm.table = &shanghaiInstructionSet
    case evm.chainRules.IsMerge:
        evm.table = &mergeInstructionSet
+   case evm.chainRules.IsMystique:
+       evm.table = &mystiqueInstructionSet
    case evm.chainRules.IsLondon:
        evm.table = &londonInstructionSet
    case evm.chainRules.IsBerlin:
@@ -185,9 +189,14 @@ func NewEVM(blockCtx BlockContext, statedb StateDB, chainConfig *params.ChainCon
        evm.table = &frontierInstructionSet
    }
    var extraEips []int
-   if len(evm.Config.ExtraEips) > 0 {
+   if evm.chainRules.IsEIP160 || len(evm.Config.ExtraEips) > 0 {
        // Deep-copy jumptable to prevent modification of opcodes in other tables
        evm.table = copyJumpTable(evm.table)
+       if evm.chainRules.IsEIP160 {
+           if err := EnableEIP(160, evm.table); err != nil {
+               log.Error("EIP activation failed", "eip", 160, "error", err)
+           }
+       }
    }
    for _, eip := range evm.Config.ExtraEips {
        if err := EnableEIP(eip, evm.table); err != nil {

← Back to Version Comparison