@@ -4,6 +4,7 @@ import akka.util.ByteString
44import io .iohk .ethereum .domain .UInt256
55import io .iohk .ethereum .utils .BlockchainConfig
66import EvmConfig ._
7+ import io .iohk .ethereum
78import io .iohk .ethereum .vm
89
910// scalastyle:off number.of.methods
@@ -36,7 +37,8 @@ object EvmConfig {
3637 blockchainConfig.byzantiumBlockNumber -> ByzantiumConfigBuilder ,
3738 blockchainConfig.constantinopleBlockNumber -> ConstantinopleConfigBuilder ,
3839 blockchainConfig.atlantisBlockNumber -> AtlantisConfigBuilder ,
39- blockchainConfig.aghartaBlockNumber -> AghartaConfigBuilder
40+ blockchainConfig.aghartaBlockNumber -> AghartaConfigBuilder ,
41+ blockchainConfig.phoenixBlockNumber -> PhoenixConfigBuilder
4042 )
4143
4244 // highest transition block that is less/equal to `blockNumber`
@@ -53,6 +55,7 @@ object EvmConfig {
5355 val AtlantisOpCodes = ByzantiumOpCodes
5456 val ConstantinopleOpCodes = OpCodeList (OpCodes .ConstantinopleOpCodes )
5557 val AghartaOpCodes = ConstantinopleOpCodes
58+ val PhoenixOpCodes = OpCodeList (OpCodes .PhoenixOpCodes )
5659
5760 val FrontierConfigBuilder : EvmConfigBuilder = config => EvmConfig (
5861 blockchainConfig = config,
@@ -105,6 +108,11 @@ object EvmConfig {
105108 opCodeList = AghartaOpCodes
106109 )
107110
111+ val PhoenixConfigBuilder : EvmConfigBuilder = config => AghartaConfigBuilder (config).copy(
112+ feeSchedule = new ethereum.vm.FeeSchedule .PhoenixFeeSchedule ,
113+ opCodeList = PhoenixOpCodes
114+ )
115+
108116 case class OpCodeList (opCodes : List [OpCode ]) {
109117 val byteToOpCode : Map [Byte , OpCode ] =
110118 opCodes.map(op => op.code -> op).toMap
@@ -253,6 +261,8 @@ object FeeSchedule {
253261
254262 class AghartaFeeSchedule extends ByzantiumFeeSchedule
255263
264+ class PhoenixFeeSchedule extends AghartaFeeSchedule
265+
256266}
257267
258268trait FeeSchedule {
0 commit comments