From caca3a8048e61178d86a6c455e6193e3906abafc Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Fri, 31 Aug 2018 23:43:51 +0800 Subject: [PATCH] Add EIP-1014 transition config flag (#9268) * Add EIP-1014 transition config flag * Remove EIP-86 configs * Change CREATE2 opcode index to 0xf5 * Move salt to the last item in the stack * Change sendersaltandaddress scheme to comply with current EIP-1014 * Fix json configs * Fix create2 test * Fix deprecated comments --- ethcore/evm/src/instructions.rs | 2 +- ethcore/evm/src/interpreter/mod.rs | 4 ++-- ethcore/light/src/client/mod.rs | 7 ------- ethcore/res/ethereum/classic.json | 3 +-- ethcore/res/ethereum/easthub.json | 3 +-- ethcore/res/ethereum/eip150_test.json | 1 - ethcore/res/ethereum/eip161_test.json | 1 - ethcore/res/ethereum/ellaism.json | 1 - ethcore/res/ethereum/expanse.json | 1 - ethcore/res/ethereum/foundation.json | 1 - ethcore/res/ethereum/frontier_like_test.json | 1 - ethcore/res/ethereum/frontier_test.json | 1 - ethcore/res/ethereum/homestead_test.json | 1 - ethcore/res/ethereum/mcip3_test.json | 1 - ethcore/res/ethereum/mcip6_byz.json | 1 - ethcore/res/ethereum/morden.json | 3 +-- ethcore/res/ethereum/musicoin.json | 1 - ethcore/res/ethereum/olympic.json | 1 - ethcore/res/ethereum/ropsten.json | 1 - ethcore/res/ethereum/social.json | 3 +-- ethcore/res/instant_seal.json | 1 - ethcore/res/null.json | 1 - ethcore/src/client/client.rs | 4 ---- ethcore/src/client/evm_test_client.rs | 2 +- ethcore/src/client/test_client.rs | 2 -- ethcore/src/client/traits.rs | 3 --- ethcore/src/executive.rs | 11 ++++++----- ethcore/src/externalities.rs | 4 ++-- ethcore/src/spec/spec.rs | 14 +++++++------- ethcore/vm/src/ext.rs | 4 ++-- ethcore/vm/src/schedule.rs | 8 ++++---- json/src/spec/params.rs | 6 +++--- 32 files changed, 32 insertions(+), 66 deletions(-) diff --git a/ethcore/evm/src/instructions.rs b/ethcore/evm/src/instructions.rs index 67d390d4d..e1d31b13a 100644 --- a/ethcore/evm/src/instructions.rs +++ b/ethcore/evm/src/instructions.rs @@ -328,7 +328,7 @@ enum_with_from_u8! { #[doc = "like CALLCODE but keeps caller's value and sender"] DELEGATECALL = 0xf4, #[doc = "create a new account and set creation address to sha3(sender + sha3(init code)) % 2**160"] - CREATE2 = 0xfb, + CREATE2 = 0xf5, #[doc = "stop execution and revert state changes. Return output data."] REVERT = 0xfd, #[doc = "like CALL but it does not take value, nor modify the state"] diff --git a/ethcore/evm/src/interpreter/mod.rs b/ethcore/evm/src/interpreter/mod.rs index b535b0833..b20bab24d 100644 --- a/ethcore/evm/src/interpreter/mod.rs +++ b/ethcore/evm/src/interpreter/mod.rs @@ -426,13 +426,13 @@ impl Interpreter { }, instructions::CREATE | instructions::CREATE2 => { let endowment = self.stack.pop_back(); + let init_off = self.stack.pop_back(); + let init_size = self.stack.pop_back(); let address_scheme = match instruction { instructions::CREATE => CreateContractAddress::FromSenderAndNonce, instructions::CREATE2 => CreateContractAddress::FromSenderSaltAndCodeHash(self.stack.pop_back().into()), _ => unreachable!("instruction can only be CREATE/CREATE2 checked above; qed"), }; - let init_off = self.stack.pop_back(); - let init_size = self.stack.pop_back(); let create_gas = provided.expect("`provided` comes through Self::exec from `Gasometer::get_gas_cost_mem`; `gas_gas_mem_cost` guarantees `Some` when instruction is `CALL`/`CALLCODE`/`DELEGATECALL`/`CREATE`; this is `CREATE`; qed"); diff --git a/ethcore/light/src/client/mod.rs b/ethcore/light/src/client/mod.rs index a1625b0e8..af557c024 100644 --- a/ethcore/light/src/client/mod.rs +++ b/ethcore/light/src/client/mod.rs @@ -127,9 +127,6 @@ pub trait LightChainClient: Send + Sync { /// Get the `i`th CHT root. fn cht_root(&self, i: usize) -> Option; - /// Get the EIP-86 transition block number. - fn eip86_transition(&self) -> BlockNumber; - /// Get a report of import activity since the last call. fn report(&self) -> ClientReport; } @@ -585,10 +582,6 @@ impl LightChainClient for Client { Client::cht_root(self, i) } - fn eip86_transition(&self) -> BlockNumber { - self.engine().params().eip86_transition - } - fn report(&self) -> ClientReport { Client::report(self) } diff --git a/ethcore/res/ethereum/classic.json b/ethcore/res/ethereum/classic.json index 17cdfd300..b4d15c618 100644 --- a/ethcore/res/ethereum/classic.json +++ b/ethcore/res/ethereum/classic.json @@ -31,8 +31,7 @@ "eip161abcTransition": "0x7fffffffffffffff", "eip161dTransition": "0x7fffffffffffffff", "eip155Transition": 3000000, - "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff" + "eip98Transition": "0x7fffffffffffff" }, "genesis": { "seal": { diff --git a/ethcore/res/ethereum/easthub.json b/ethcore/res/ethereum/easthub.json index e7e1a6e70..bcc34a782 100644 --- a/ethcore/res/ethereum/easthub.json +++ b/ethcore/res/ethereum/easthub.json @@ -27,8 +27,7 @@ "eip155Transition": "0x0", "eip161abcTransition": "0x7fffffffffffffff", "eip161dTransition": "0x7fffffffffffffff", - "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff" + "eip98Transition": "0x7fffffffffffff" }, "genesis": { "seal": { diff --git a/ethcore/res/ethereum/eip150_test.json b/ethcore/res/ethereum/eip150_test.json index baf9c1b7b..32f6401ff 100644 --- a/ethcore/res/ethereum/eip150_test.json +++ b/ethcore/res/ethereum/eip150_test.json @@ -23,7 +23,6 @@ "eip161abcTransition": "0x7fffffffffffffff", "eip161dTransition": "0x7fffffffffffffff", "eip98Transition": "0x7fffffffffffffff", - "eip86Transition": "0x7fffffffffffffff", "eip155Transition": "0x7fffffffffffffff", "maxCodeSize": 24576, "maxCodeSizeTransition": "0x7fffffffffffffff" diff --git a/ethcore/res/ethereum/eip161_test.json b/ethcore/res/ethereum/eip161_test.json index 079ce7d55..722881158 100644 --- a/ethcore/res/ethereum/eip161_test.json +++ b/ethcore/res/ethereum/eip161_test.json @@ -23,7 +23,6 @@ "eip161abcTransition": "0x0", "eip161dTransition": "0x0", "eip98Transition": "0x7fffffffffffffff", - "eip86Transition": "0x7fffffffffffffff", "eip155Transition": "0x7fffffffffffffff", "maxCodeSize": 24576, "maxCodeSizeTransition": "0x0" diff --git a/ethcore/res/ethereum/ellaism.json b/ethcore/res/ethereum/ellaism.json index 41f08e755..7b3c8dd5c 100644 --- a/ethcore/res/ethereum/ellaism.json +++ b/ethcore/res/ethereum/ellaism.json @@ -29,7 +29,6 @@ "eip161dTransition": "0x7fffffffffffffff", "eip155Transition": "0x0", "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff", "wasmActivationTransition": 2000000, "eip140Transition": 2000000, "eip211Transition": 2000000, diff --git a/ethcore/res/ethereum/expanse.json b/ethcore/res/ethereum/expanse.json index 99a3ab5d7..76ce0b0c5 100644 --- a/ethcore/res/ethereum/expanse.json +++ b/ethcore/res/ethereum/expanse.json @@ -38,7 +38,6 @@ "eip161abcTransition": "0x927C0", "eip161dTransition": "0x927C0", "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff", "eip155Transition": "0x927C0", "eip140Transition": "0xC3500", "eip211Transition": "0xC3500", diff --git a/ethcore/res/ethereum/foundation.json b/ethcore/res/ethereum/foundation.json index 3332ad6f9..59e8daa8c 100644 --- a/ethcore/res/ethereum/foundation.json +++ b/ethcore/res/ethereum/foundation.json @@ -150,7 +150,6 @@ "eip161dTransition": 2675000, "eip155Transition": 2675000, "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff", "maxCodeSize": 24576, "maxCodeSizeTransition": 2675000, "eip140Transition": 4370000, diff --git a/ethcore/res/ethereum/frontier_like_test.json b/ethcore/res/ethereum/frontier_like_test.json index 7eac5acbd..3596217cb 100644 --- a/ethcore/res/ethereum/frontier_like_test.json +++ b/ethcore/res/ethereum/frontier_like_test.json @@ -143,7 +143,6 @@ "eip161abcTransition": "0x7fffffffffffffff", "eip161dTransition": "0x7fffffffffffffff", "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff", "eip155Transition": "0x7fffffffffffffff" }, "genesis": { diff --git a/ethcore/res/ethereum/frontier_test.json b/ethcore/res/ethereum/frontier_test.json index 7e52f6ecf..b01ae9ef0 100644 --- a/ethcore/res/ethereum/frontier_test.json +++ b/ethcore/res/ethereum/frontier_test.json @@ -23,7 +23,6 @@ "eip161abcTransition": "0x7fffffffffffffff", "eip161dTransition": "0x7fffffffffffffff", "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff", "eip155Transition": "0x7fffffffffffffff" }, "genesis": { diff --git a/ethcore/res/ethereum/homestead_test.json b/ethcore/res/ethereum/homestead_test.json index 817bf5ff5..2dc521b9a 100644 --- a/ethcore/res/ethereum/homestead_test.json +++ b/ethcore/res/ethereum/homestead_test.json @@ -19,7 +19,6 @@ "minGasLimit": "0x1388", "networkID" : "0x1", "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff", "eip155Transition": "0x7fffffffffffffff", "eip150Transition": "0x7fffffffffffffff", "eip160Transition": "0x7fffffffffffffff", diff --git a/ethcore/res/ethereum/mcip3_test.json b/ethcore/res/ethereum/mcip3_test.json index 391a62573..d24164dcf 100644 --- a/ethcore/res/ethereum/mcip3_test.json +++ b/ethcore/res/ethereum/mcip3_test.json @@ -33,7 +33,6 @@ "eip160Transition":"0x7fffffffffffff", "eip161abcTransition":"0x7fffffffffffff", "eip161dTransition":"0x7fffffffffffff", - "eip86Transition":"0x7fffffffffffff", "eip98Transition":"0x7fffffffffffff", "eip140Transition":"0x7fffffffffffff", "eip155Transition":"0x7fffffffffffff", diff --git a/ethcore/res/ethereum/mcip6_byz.json b/ethcore/res/ethereum/mcip6_byz.json index a12df7c71..45aef8b4b 100644 --- a/ethcore/res/ethereum/mcip6_byz.json +++ b/ethcore/res/ethereum/mcip6_byz.json @@ -33,7 +33,6 @@ "eip160Transition":"0x7fffffffffffff", "eip161abcTransition":"0x7fffffffffffff", "eip161dTransition":"0x7fffffffffffff", - "eip86Transition":"0x7fffffffffffff", "eip98Transition":"0x7fffffffffffff", "eip140Transition":"0x2a", "eip155Transition":"0x2a", diff --git a/ethcore/res/ethereum/morden.json b/ethcore/res/ethereum/morden.json index 3664c3e9c..561733555 100644 --- a/ethcore/res/ethereum/morden.json +++ b/ethcore/res/ethereum/morden.json @@ -31,8 +31,7 @@ "eip161abcTransition": "0x7fffffffffffffff", "eip161dTransition": "0x7fffffffffffffff", "eip155Transition": 1915000, - "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff" + "eip98Transition": "0x7fffffffffffff" }, "genesis": { "seal": { diff --git a/ethcore/res/ethereum/musicoin.json b/ethcore/res/ethereum/musicoin.json index f9c4e046d..fca6a8962 100644 --- a/ethcore/res/ethereum/musicoin.json +++ b/ethcore/res/ethereum/musicoin.json @@ -33,7 +33,6 @@ "eip160Transition":"0x21e88e", "eip161abcTransition":"0x21e88e", "eip161dTransition":"0x21e88e", - "eip86Transition":"0x7fffffffffffff", "eip98Transition":"0x7fffffffffffff", "eip140Transition":"0x21e88e", "eip155Transition":"0x21e88e", diff --git a/ethcore/res/ethereum/olympic.json b/ethcore/res/ethereum/olympic.json index 3ae9baddf..274e8c23a 100644 --- a/ethcore/res/ethereum/olympic.json +++ b/ethcore/res/ethereum/olympic.json @@ -23,7 +23,6 @@ "eip161abcTransition": "0x7fffffffffffffff", "eip161dTransition": "0x7fffffffffffffff", "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff", "eip155Transition": "0x7fffffffffffffff" }, "genesis": { diff --git a/ethcore/res/ethereum/ropsten.json b/ethcore/res/ethereum/ropsten.json index bdf44fe83..fd24bbe6d 100644 --- a/ethcore/res/ethereum/ropsten.json +++ b/ethcore/res/ethereum/ropsten.json @@ -32,7 +32,6 @@ "eip161dTransition": 10, "eip155Transition": 10, "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff", "eip140Transition": 1700000, "eip211Transition": 1700000, "eip214Transition": 1700000, diff --git a/ethcore/res/ethereum/social.json b/ethcore/res/ethereum/social.json index 2ad8fec8b..bbc77359b 100644 --- a/ethcore/res/ethereum/social.json +++ b/ethcore/res/ethereum/social.json @@ -27,8 +27,7 @@ "eip161abcTransition": "0x7fffffffffffffff", "eip161dTransition": "0x7fffffffffffffff", "eip155Transition": "0x0", - "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff" + "eip98Transition": "0x7fffffffffffff" }, "genesis": { "seal": { diff --git a/ethcore/res/instant_seal.json b/ethcore/res/instant_seal.json index 36832e698..005342437 100644 --- a/ethcore/res/instant_seal.json +++ b/ethcore/res/instant_seal.json @@ -16,7 +16,6 @@ "eip161dTransition": "0x0", "eip155Transition": "0x0", "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff", "maxCodeSize": 24576, "maxCodeSizeTransition": "0x0", "eip140Transition": "0x0", diff --git a/ethcore/res/null.json b/ethcore/res/null.json index 345bb02b2..7fa41a8de 100644 --- a/ethcore/res/null.json +++ b/ethcore/res/null.json @@ -11,7 +11,6 @@ "maximumExtraDataSize": "0x20", "minGasLimit": "0x1388", "networkID" : "0x2", - "eip86Transition": "0x7fffffffffffff", "eip140Transition": "0x0", "eip211Transition": "0x0", "eip214Transition": "0x0", diff --git a/ethcore/src/client/client.rs b/ethcore/src/client/client.rs index 573fd1f93..acfc5e7e0 100644 --- a/ethcore/src/client/client.rs +++ b/ethcore/src/client/client.rs @@ -2039,10 +2039,6 @@ impl BlockChainClient for Client { fn registrar_address(&self) -> Option
{ self.registrar_address.clone() } - - fn eip86_transition(&self) -> u64 { - self.engine().params().eip86_transition - } } impl IoClient for Client { diff --git a/ethcore/src/client/evm_test_client.rs b/ethcore/src/client/evm_test_client.rs index c54dc2a98..7767c9922 100644 --- a/ethcore/src/client/evm_test_client.rs +++ b/ethcore/src/client/evm_test_client.rs @@ -205,7 +205,7 @@ impl<'a> EvmTestClient<'a> { ) -> TransactResult { let initial_gas = transaction.gas; // Verify transaction - let is_ok = transaction.verify_basic(true, None, env_info.number >= self.spec.engine.params().eip86_transition); + let is_ok = transaction.verify_basic(true, None, false); if let Err(error) = is_ok { return TransactResult::Err { state_root: *self.state.root(), diff --git a/ethcore/src/client/test_client.rs b/ethcore/src/client/test_client.rs index 9981f8d2c..642b56718 100644 --- a/ethcore/src/client/test_client.rs +++ b/ethcore/src/client/test_client.rs @@ -860,8 +860,6 @@ impl BlockChainClient for TestBlockChainClient { } fn registrar_address(&self) -> Option
{ None } - - fn eip86_transition(&self) -> u64 { u64::max_value() } } impl IoClient for TestBlockChainClient { diff --git a/ethcore/src/client/traits.rs b/ethcore/src/client/traits.rs index 189ca67f4..fb18ba284 100644 --- a/ethcore/src/client/traits.rs +++ b/ethcore/src/client/traits.rs @@ -378,9 +378,6 @@ pub trait BlockChainClient : Sync + Send + AccountData + BlockChain + CallContra /// Get the address of the registry itself. fn registrar_address(&self) -> Option
; - - /// Get the EIP-86 transition block number. - fn eip86_transition(&self) -> u64; } /// Provides `reopen_block` method diff --git a/ethcore/src/executive.rs b/ethcore/src/executive.rs index 5be54f724..ff5c54eff 100644 --- a/ethcore/src/executive.rs +++ b/ethcore/src/executive.rs @@ -63,10 +63,11 @@ pub fn contract_address(address_scheme: CreateContractAddress, sender: &Address, }, CreateContractAddress::FromSenderSaltAndCodeHash(salt) => { let code_hash = keccak(code); - let mut buffer = [0u8; 20 + 32 + 32]; - &mut buffer[0..20].copy_from_slice(&sender[..]); - &mut buffer[20..(20+32)].copy_from_slice(&salt[..]); - &mut buffer[(20+32)..].copy_from_slice(&code_hash[..]); + let mut buffer = [0u8; 1 + 20 + 32 + 32]; + buffer[0] = 0xff; + &mut buffer[1..(1+20)].copy_from_slice(&sender[..]); + &mut buffer[(1+20)..(1+20+32)].copy_from_slice(&salt[..]); + &mut buffer[(1+20+32)..].copy_from_slice(&code_hash[..]); (From::from(keccak(&buffer[..])), Some(code_hash)) }, CreateContractAddress::FromSenderAndCodeHash => { @@ -290,7 +291,7 @@ impl<'a, B: 'a + StateBackend> Executive<'a, B> { let mut substate = Substate::new(); // NOTE: there can be no invalid transactions from this point. - if !schedule.eip86 || !t.is_unsigned() { + if !schedule.keep_unsigned_nonce || !t.is_unsigned() { self.state.inc_nonce(&sender)?; } self.state.sub_balance(&sender, &U256::from(gas_cost), &mut substate.to_cleanup_mode(&schedule))?; diff --git a/ethcore/src/externalities.rs b/ethcore/src/externalities.rs index 74fedd0fd..dad3987b9 100644 --- a/ethcore/src/externalities.rs +++ b/ethcore/src/externalities.rs @@ -230,7 +230,7 @@ impl<'a, T: 'a, V: 'a, B: 'a> Ext for Externalities<'a, T, V, B> }; if !self.static_flag { - if !self.schedule.eip86 || params.sender != UNSIGNED_SENDER { + if !self.schedule.keep_unsigned_nonce || params.sender != UNSIGNED_SENDER { if let Err(e) = self.state.inc_nonce(&self.origin_info.address) { debug!(target: "ext", "Database corruption encountered: {:?}", e); return ContractCreateResult::Failed @@ -611,6 +611,6 @@ mod tests { } }; - assert_eq!(address, Address::from_str("b7c227636666831278bacdb8d7f52933b8698ab9").unwrap()); + assert_eq!(address, Address::from_str("e33c0c7f7df4809055c3eba6c09cfe4baf1bd9e0").unwrap()); } } diff --git a/ethcore/src/spec/spec.rs b/ethcore/src/spec/spec.rs index 720198114..5131adaf7 100644 --- a/ethcore/src/spec/spec.rs +++ b/ethcore/src/spec/spec.rs @@ -96,8 +96,6 @@ pub struct CommonParams { pub validate_receipts_transition: BlockNumber, /// Validate transaction chain id. pub validate_chain_id_transition: BlockNumber, - /// Number of first block where EIP-86 (Metropolis) rules begin. - pub eip86_transition: BlockNumber, /// Number of first block where EIP-140 (Metropolis: REVERT opcode) rules begin. pub eip140_transition: BlockNumber, /// Number of first block where EIP-210 (Metropolis: BLOCKHASH changes) rules begin. @@ -117,6 +115,8 @@ pub struct CommonParams { pub eip145_transition: BlockNumber, /// Number of first block where EIP-1052 rules begin. pub eip1052_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. pub dust_protection_transition: BlockNumber, /// Nonce cap increase per block. Nonce cap is only checked if dust protection is enabled. @@ -177,7 +177,7 @@ impl CommonParams { /// Apply common spec config parameters to the schedule. pub fn update_schedule(&self, block_number: u64, schedule: &mut ::vm::Schedule) { - schedule.have_create2 = block_number >= self.eip86_transition; + schedule.have_create2 = block_number >= self.eip1014_transition; schedule.have_revert = block_number >= self.eip140_transition; schedule.have_static_call = block_number >= self.eip214_transition; schedule.have_return_data = block_number >= self.eip211_transition; @@ -248,10 +248,6 @@ impl From for CommonParams { eip155_transition: p.eip155_transition.map_or(0, Into::into), validate_receipts_transition: p.validate_receipts_transition.map_or(0, Into::into), validate_chain_id_transition: p.validate_chain_id_transition.map_or(0, Into::into), - eip86_transition: p.eip86_transition.map_or_else( - BlockNumber::max_value, - Into::into, - ), eip140_transition: p.eip140_transition.map_or_else( BlockNumber::max_value, Into::into, @@ -290,6 +286,10 @@ impl From for CommonParams { BlockNumber::max_value, Into::into, ), + eip1014_transition: p.eip1014_transition.map_or_else( + BlockNumber::max_value, + Into::into, + ), dust_protection_transition: p.dust_protection_transition.map_or_else( BlockNumber::max_value, Into::into, diff --git a/ethcore/vm/src/ext.rs b/ethcore/vm/src/ext.rs index 1eb696f97..d95573c3c 100644 --- a/ethcore/vm/src/ext.rs +++ b/ethcore/vm/src/ext.rs @@ -53,9 +53,9 @@ pub enum MessageCallResult { /// Specifies how an address is calculated for a new contract. #[derive(Copy, Clone, PartialEq, Eq, Debug, Hash)] pub enum CreateContractAddress { - /// Address is calculated from sender and nonce. Pre EIP-86 (Metropolis) + /// Address is calculated from sender and nonce. pWASM `create` scheme. FromSenderAndNonce, - /// Address is calculated from sender, salt and code hash. EIP-86 CREATE2 scheme. + /// Address is calculated from sender, salt and code hash. pWASM `create2` scheme and EIP-1014 CREATE2 scheme. FromSenderSaltAndCodeHash(H256), /// Address is calculated from code hash and sender. Used by pwasm create ext. FromSenderAndCodeHash, diff --git a/ethcore/vm/src/schedule.rs b/ethcore/vm/src/schedule.rs index 2d263b63e..b3d71457e 100644 --- a/ethcore/vm/src/schedule.rs +++ b/ethcore/vm/src/schedule.rs @@ -117,8 +117,8 @@ pub struct Schedule { pub have_bitwise_shifting: bool, /// Kill basic accounts below this balance if touched. pub kill_dust: CleanDustMode, - /// Enable EIP-86 rules - pub eip86: bool, + /// VM execution does not increase null signed address nonce if this field is true. + pub keep_unsigned_nonce: bool, /// Wasm extra schedule settings, if wasm activated pub wasm: Option, } @@ -250,7 +250,7 @@ impl Schedule { blockhash_gas: 20, have_static_call: false, kill_dust: CleanDustMode::Off, - eip86: false, + keep_unsigned_nonce: false, wasm: None, } } @@ -323,7 +323,7 @@ impl Schedule { blockhash_gas: 20, have_static_call: false, kill_dust: CleanDustMode::Off, - eip86: false, + keep_unsigned_nonce: false, wasm: None, } } diff --git a/json/src/spec/params.rs b/json/src/spec/params.rs index d3319f7c4..4210bbe45 100644 --- a/json/src/spec/params.rs +++ b/json/src/spec/params.rs @@ -79,9 +79,6 @@ pub struct Params { #[serde(rename="validateReceiptsTransition")] pub validate_receipts_transition: Option, /// See `CommonParams` docs. - #[serde(rename="eip86Transition")] - pub eip86_transition: Option, - /// See `CommonParams` docs. #[serde(rename="eip140Transition")] pub eip140_transition: Option, /// See `CommonParams` docs. @@ -112,6 +109,9 @@ pub struct Params { #[serde(rename="eip1052Transition")] pub eip1052_transition: Option, /// See `CommonParams` docs. + #[serde(rename="eip1014Transition")] + pub eip1014_transition: Option, + /// See `CommonParams` docs. #[serde(rename="dustProtectionTransition")] pub dust_protection_transition: Option, /// See `CommonParams` docs.