diff --git a/ethcore/src/spec/spec.rs b/ethcore/src/spec/spec.rs index 00ef71459aa..f625f99e137 100644 --- a/ethcore/src/spec/spec.rs +++ b/ethcore/src/spec/spec.rs @@ -120,6 +120,8 @@ pub struct CommonParams { pub eip1052_transition: BlockNumber, /// Number of first block where EIP-1283 rules begin. pub eip1283_transition: BlockNumber, + /// Number of first block where EIP-1283 rules end. + pub eip1283_disable_transition: BlockNumber, /// Number of first block where EIP-1014 rules begin. pub eip1014_transition: BlockNumber, /// Number of first block where dust cleanup rules (EIP-168 and EIP169) begin. @@ -188,7 +190,7 @@ impl CommonParams { schedule.have_return_data = block_number >= self.eip211_transition; schedule.have_bitwise_shifting = block_number >= self.eip145_transition; schedule.have_extcodehash = block_number >= self.eip1052_transition; - schedule.eip1283 = block_number >= self.eip1283_transition; + schedule.eip1283 = block_number >= self.eip1283_transition && !(block_number >= self.eip1283_disable_transition); if block_number >= self.eip210_transition { schedule.blockhash_gas = 800; } @@ -296,6 +298,10 @@ impl From for CommonParams { BlockNumber::max_value, Into::into, ), + eip1283_disable_transition: p.eip1283_disable_transition.map_or_else( + BlockNumber::max_value, + Into::into, + ), eip1014_transition: p.eip1014_transition.map_or_else( BlockNumber::max_value, Into::into, diff --git a/json/src/spec/params.rs b/json/src/spec/params.rs index 801a5f3a50d..05af6f219f1 100644 --- a/json/src/spec/params.rs +++ b/json/src/spec/params.rs @@ -112,6 +112,9 @@ pub struct Params { /// See `CommonParams` docs. #[serde(rename="eip1283Transition")] pub eip1283_transition: Option, + #[serde(rename="eip1283DisableTransition")] + pub eip1283_disable_transition: Option, + /// See `CommonParams` docs. #[serde(rename="eip1014Transition")] pub eip1014_transition: Option, /// See `CommonParams` docs.