EIP-211 RETURNDATACOPY and RETURNDATASIZE (#5678)

* EIP-211

* Optimized memory usage

* Optimized truncation
This commit is contained in:
Arkadiy Paronyan
2017-06-06 17:47:12 +02:00
committed by Nikolay Volf
parent 241de230bb
commit 99bfef2801
14 changed files with 136 additions and 56 deletions

View File

@@ -72,6 +72,8 @@ pub struct CommonParams {
pub eip210_contract_code: Bytes,
/// Gas allocated for EIP-210 blockhash update.
pub eip210_contract_gas: U256,
/// Number of first block where EIP-211 (Metropolis: RETURNDATASIZE/RETURNDATACOPY) rules begin.
pub eip211_transition: BlockNumber,
}
impl From<ethjson::spec::Params> for CommonParams {
@@ -94,6 +96,7 @@ impl From<ethjson::spec::Params> for CommonParams {
|| DEFAULT_BLOCKHASH_CONTRACT.from_hex().expect("Default BLOCKHASH contract is valid"),
Into::into),
eip210_contract_gas: p.eip210_contract_gas.map_or(1000000.into(), Into::into),
eip211_transition: p.eip211_transition.map_or(BlockNumber::max_value(), Into::into),
}
}
}