EIP 2028: transaction gas lowered from 68 to 16 (#10987)
This commit is contained in:
parent
2af3140a26
commit
79b671f6c7
@ -262,7 +262,6 @@ fn test_calldataload(factory: super::Factory) {
|
|||||||
|
|
||||||
assert_eq!(gas_left, U256::from(79_991));
|
assert_eq!(gas_left, U256::from(79_991));
|
||||||
assert_store(&ext, 0, "23ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff23");
|
assert_store(&ext, 0, "23ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff23");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
evm_test!{test_author: test_author_int}
|
evm_test!{test_author: test_author_int}
|
||||||
|
@ -90,6 +90,8 @@ pub struct CommonParams {
|
|||||||
pub eip1283_disable_transition: BlockNumber,
|
pub eip1283_disable_transition: BlockNumber,
|
||||||
/// Number of first block where EIP-1014 rules begin.
|
/// Number of first block where EIP-1014 rules begin.
|
||||||
pub eip1014_transition: BlockNumber,
|
pub eip1014_transition: BlockNumber,
|
||||||
|
/// Number of first block where EIP-2028 rules begin.
|
||||||
|
pub eip2028_transition: BlockNumber,
|
||||||
/// Number of first block where dust cleanup rules (EIP-168 and EIP169) begin.
|
/// Number of first block where dust cleanup rules (EIP-168 and EIP169) begin.
|
||||||
pub dust_protection_transition: BlockNumber,
|
pub dust_protection_transition: BlockNumber,
|
||||||
/// Nonce cap increase per block. Nonce cap is only checked if dust protection is enabled.
|
/// Nonce cap increase per block. Nonce cap is only checked if dust protection is enabled.
|
||||||
@ -160,6 +162,9 @@ impl CommonParams {
|
|||||||
schedule.have_bitwise_shifting = block_number >= self.eip145_transition;
|
schedule.have_bitwise_shifting = block_number >= self.eip145_transition;
|
||||||
schedule.have_extcodehash = block_number >= self.eip1052_transition;
|
schedule.have_extcodehash = block_number >= self.eip1052_transition;
|
||||||
schedule.eip1283 = block_number >= self.eip1283_transition && !(block_number >= self.eip1283_disable_transition);
|
schedule.eip1283 = block_number >= self.eip1283_transition && !(block_number >= self.eip1283_disable_transition);
|
||||||
|
if block_number >= self.eip2028_transition {
|
||||||
|
schedule.tx_data_non_zero_gas = 16;
|
||||||
|
}
|
||||||
if block_number >= self.eip210_transition {
|
if block_number >= self.eip210_transition {
|
||||||
schedule.blockhash_gas = 800;
|
schedule.blockhash_gas = 800;
|
||||||
}
|
}
|
||||||
@ -277,6 +282,10 @@ impl From<ethjson::spec::Params> for CommonParams {
|
|||||||
BlockNumber::max_value,
|
BlockNumber::max_value,
|
||||||
Into::into,
|
Into::into,
|
||||||
),
|
),
|
||||||
|
eip2028_transition: p.eip2028_transition.map_or_else(
|
||||||
|
BlockNumber::max_value,
|
||||||
|
Into::into,
|
||||||
|
),
|
||||||
dust_protection_transition: p.dust_protection_transition.map_or_else(
|
dust_protection_transition: p.dust_protection_transition.map_or_else(
|
||||||
BlockNumber::max_value,
|
BlockNumber::max_value,
|
||||||
Into::into,
|
Into::into,
|
||||||
|
@ -91,7 +91,7 @@ pub struct Schedule {
|
|||||||
pub tx_create_gas: usize,
|
pub tx_create_gas: usize,
|
||||||
/// Additional cost for empty data transaction
|
/// Additional cost for empty data transaction
|
||||||
pub tx_data_zero_gas: usize,
|
pub tx_data_zero_gas: usize,
|
||||||
/// Aditional cost for non-empty data transaction
|
/// Additional cost for non-empty data transaction
|
||||||
pub tx_data_non_zero_gas: usize,
|
pub tx_data_non_zero_gas: usize,
|
||||||
/// Gas price for copying memory
|
/// Gas price for copying memory
|
||||||
pub copy_gas: usize,
|
pub copy_gas: usize,
|
||||||
@ -288,6 +288,13 @@ impl Schedule {
|
|||||||
schedule
|
schedule
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Schedule for the Istanbul fork of the Ethereum main net.
|
||||||
|
pub fn new_istanbul() -> Schedule {
|
||||||
|
let mut schedule = Self::new_constantinople();
|
||||||
|
schedule.tx_data_non_zero_gas = 16;
|
||||||
|
schedule
|
||||||
|
}
|
||||||
|
|
||||||
fn new(efcd: bool, hdc: bool, tcg: usize) -> Schedule {
|
fn new(efcd: bool, hdc: bool, tcg: usize) -> Schedule {
|
||||||
Schedule {
|
Schedule {
|
||||||
exceptional_failed_code_deposit: efcd,
|
exceptional_failed_code_deposit: efcd,
|
||||||
|
@ -98,6 +98,13 @@ impl FakeExt {
|
|||||||
ext
|
ext
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// New fake externalities with constantinople schedule rules
|
||||||
|
pub fn new_istanbul() -> Self {
|
||||||
|
let mut ext = FakeExt::default();
|
||||||
|
ext.schedule = Schedule::new_istanbul();
|
||||||
|
ext
|
||||||
|
}
|
||||||
|
|
||||||
/// Alter fake externalities to allow wasm
|
/// Alter fake externalities to allow wasm
|
||||||
pub fn with_wasm(mut self) -> Self {
|
pub fn with_wasm(mut self) -> Self {
|
||||||
self.schedule.wasm = Some(Default::default());
|
self.schedule.wasm = Some(Default::default());
|
||||||
|
@ -94,6 +94,8 @@ pub struct Params {
|
|||||||
/// See `CommonParams` docs.
|
/// See `CommonParams` docs.
|
||||||
pub eip1014_transition: Option<Uint>,
|
pub eip1014_transition: Option<Uint>,
|
||||||
/// See `CommonParams` docs.
|
/// See `CommonParams` docs.
|
||||||
|
pub eip2028_transition: Option<Uint>,
|
||||||
|
/// See `CommonParams` docs.
|
||||||
pub dust_protection_transition: Option<Uint>,
|
pub dust_protection_transition: Option<Uint>,
|
||||||
/// See `CommonParams` docs.
|
/// See `CommonParams` docs.
|
||||||
pub nonce_cap_increment: Option<Uint>,
|
pub nonce_cap_increment: Option<Uint>,
|
||||||
|
Loading…
Reference in New Issue
Block a user