@@ -4,6 +4,7 @@ import akka.util.ByteString
4
4
import io .iohk .ethereum .domain .UInt256
5
5
import io .iohk .ethereum .utils .BlockchainConfig
6
6
import EvmConfig ._
7
+ import io .iohk .ethereum
7
8
import io .iohk .ethereum .vm
8
9
9
10
// scalastyle:off number.of.methods
@@ -36,7 +37,8 @@ object EvmConfig {
36
37
blockchainConfig.byzantiumBlockNumber -> ByzantiumConfigBuilder ,
37
38
blockchainConfig.constantinopleBlockNumber -> ConstantinopleConfigBuilder ,
38
39
blockchainConfig.atlantisBlockNumber -> AtlantisConfigBuilder ,
39
- blockchainConfig.aghartaBlockNumber -> AghartaConfigBuilder
40
+ blockchainConfig.aghartaBlockNumber -> AghartaConfigBuilder ,
41
+ blockchainConfig.phoenixBlockNumber -> PhoenixConfigBuilder
40
42
)
41
43
42
44
// highest transition block that is less/equal to `blockNumber`
@@ -53,6 +55,7 @@ object EvmConfig {
53
55
val AtlantisOpCodes = ByzantiumOpCodes
54
56
val ConstantinopleOpCodes = OpCodeList (OpCodes .ConstantinopleOpCodes )
55
57
val AghartaOpCodes = ConstantinopleOpCodes
58
+ val PhoenixOpCodes = OpCodeList (OpCodes .PhoenixOpCodes )
56
59
57
60
val FrontierConfigBuilder : EvmConfigBuilder = config => EvmConfig (
58
61
blockchainConfig = config,
@@ -105,6 +108,11 @@ object EvmConfig {
105
108
opCodeList = AghartaOpCodes
106
109
)
107
110
111
+ val PhoenixConfigBuilder : EvmConfigBuilder = config => AghartaConfigBuilder (config).copy(
112
+ feeSchedule = new ethereum.vm.FeeSchedule .PhoenixFeeSchedule ,
113
+ opCodeList = PhoenixOpCodes
114
+ )
115
+
108
116
case class OpCodeList (opCodes : List [OpCode ]) {
109
117
val byteToOpCode : Map [Byte , OpCode ] =
110
118
opCodes.map(op => op.code -> op).toMap
@@ -253,6 +261,8 @@ object FeeSchedule {
253
261
254
262
class AghartaFeeSchedule extends ByzantiumFeeSchedule
255
263
264
+ class PhoenixFeeSchedule extends AghartaFeeSchedule
265
+
256
266
}
257
267
258
268
trait FeeSchedule {
0 commit comments