Sunce86/eip 1559 (#393)

* eip1559 hard fork activation

* eip1559 hard fork activation 2

* added new transaction type for eip1559

* added base fee field to block header

* fmt fix

* added base fee calculation. added block header validation against base fee

* fmt

* temporarily added modified transaction pool

* tx pool fix of PendingIterator

* tx pool fix of UnorderedIterator

* tx pool added test for set_scoring

* transaction pool changes

* added tests for eip1559 transaction and eip1559 receipt

* added test for eip1559 transaction execution

* block gas limit / block gas target handling

* base fee verification moved out of engine

* calculate_base_fee moved to EthereumMachine

* handling of base_fee_per_gas as part of seal

* handling of base_fee_per_gas changed. Different encoding/decoding of block header

* eip1559 transaction execution - gas price handling

* eip1559 transaction execution - verification, fee burning

* effectiveGasPrice removed from the receipt payload (specs)

* added support for 1559 txs in tx pool verification

* added Aleut test network configuration

* effective_tip_scaled replaced by typed_gas_price

* eip 3198 - Basefee opcode

* rpc - updated structs Block and Header

* rpc changes for 1559

* variable renaming according to spec

* - typed_gas_price renamed to effective_gas_price
- elasticity_multiplier definition moved to update_schedule()

* calculate_base_fee simplified

* Evm environment context temporary fix for gas limit

* fmt fix

* fixed fake_sign::sign_call

* temporary fix for GASLIMIT opcode to provide gas_target actually

* gas_target removed from block header according to spec change: https://github.com/ethereum/EIPs/pull/3566

* tx pool verification fix

* env_info base fee changed to Option

* fmt fix

* pretty format

* updated ethereum tests

* cache_pending refresh on each update of score

* code review fixes

* fmt fix

* code review fix - changed handling of eip1559_base_fee_max_change_denominator

* code review fix - modification.gas_price

* Skip gas_limit_bump for Aura

* gas_limit calculation changed to target ceil

* gas_limit calculation will target ceil on 1559 activation block

* transaction verification updated according spec: https://github.com/ethereum/EIPs/pull/3594

* updated json tests

* ethereum json tests fix for base_fee
This commit is contained in:
Dusan Stanivukovic
2021-06-04 12:12:24 +02:00
committed by GitHub
parent 144b2293a2
commit 5e7086d54c
122 changed files with 6666 additions and 660 deletions

View File

@@ -95,13 +95,15 @@ fn should_return_list_of_items_to_confirm() {
from: Address::from_low_u64_be(1),
used_default_from: false,
to: Some(Address::from_str("d46e8dd67c5d32be8058bb8eb970870f07244567").unwrap()),
gas_price: U256::from(10_000),
gas_price: Some(U256::from(10_000)),
max_fee_per_gas: None,
gas: U256::from(10_000_000),
value: U256::from(1),
data: vec![],
nonce: None,
condition: None,
access_list: None,
max_priority_fee_per_gas: None,
}),
Origin::Unknown,
)
@@ -142,13 +144,15 @@ fn should_reject_transaction_from_queue_without_dispatching() {
from: Address::from_low_u64_be(1),
used_default_from: false,
to: Some(Address::from_str("d46e8dd67c5d32be8058bb8eb970870f07244567").unwrap()),
gas_price: U256::from(10_000),
gas_price: Some(U256::from(10_000)),
max_fee_per_gas: None,
gas: U256::from(10_000_000),
value: U256::from(1),
data: vec![],
nonce: None,
condition: None,
access_list: None,
max_priority_fee_per_gas: None,
}),
Origin::Unknown,
)
@@ -180,13 +184,15 @@ fn should_not_remove_transaction_if_password_is_invalid() {
from: Address::from_low_u64_be(1),
used_default_from: false,
to: Some(Address::from_str("d46e8dd67c5d32be8058bb8eb970870f07244567").unwrap()),
gas_price: U256::from(10_000),
gas_price: Some(U256::from(10_000)),
max_fee_per_gas: None,
gas: U256::from(10_000_000),
value: U256::from(1),
data: vec![],
nonce: None,
condition: None,
access_list: None,
max_priority_fee_per_gas: None,
}),
Origin::Unknown,
)
@@ -246,13 +252,15 @@ fn should_confirm_transaction_and_dispatch() {
from: address,
used_default_from: false,
to: Some(recipient),
gas_price: U256::from(10_000),
gas_price: Some(U256::from(10_000)),
max_fee_per_gas: None,
gas: U256::from(10_000_000),
value: U256::from(1),
data: vec![],
nonce: None,
condition: None,
access_list: None,
max_priority_fee_per_gas: None,
}),
Origin::Unknown,
)
@@ -311,13 +319,15 @@ fn should_alter_the_sender_and_nonce() {
from: Address::from_low_u64_be(0),
used_default_from: false,
to: Some(recipient),
gas_price: U256::from(10_000),
gas_price: Some(U256::from(10_000)),
max_fee_per_gas: None,
gas: U256::from(10_000_000),
value: U256::from(1),
data: vec![],
nonce: Some(10.into()),
condition: None,
access_list: None,
max_priority_fee_per_gas: None,
}),
Origin::Unknown,
)
@@ -377,13 +387,15 @@ fn should_confirm_transaction_with_token() {
from: address,
used_default_from: false,
to: Some(recipient),
gas_price: U256::from(10_000),
gas_price: Some(U256::from(10_000)),
max_fee_per_gas: None,
gas: U256::from(10_000_000),
value: U256::from(1),
data: vec![],
nonce: None,
condition: None,
access_list: None,
max_priority_fee_per_gas: None,
}),
Origin::Unknown,
)
@@ -445,13 +457,15 @@ fn should_confirm_transaction_with_rlp() {
from: address,
used_default_from: false,
to: Some(recipient),
gas_price: U256::from(10_000),
gas_price: Some(U256::from(10_000)),
max_fee_per_gas: None,
gas: U256::from(10_000_000),
value: U256::from(1),
data: vec![],
nonce: None,
condition: None,
access_list: None,
max_priority_fee_per_gas: None,
}),
Origin::Unknown,
)
@@ -511,13 +525,15 @@ fn should_return_error_when_sender_does_not_match() {
from: Address::default(),
used_default_from: false,
to: Some(recipient),
gas_price: U256::from(10_000),
gas_price: Some(U256::from(10_000)),
max_fee_per_gas: None,
gas: U256::from(10_000_000),
value: U256::from(1),
data: vec![],
nonce: None,
condition: None,
access_list: None,
max_priority_fee_per_gas: None,
}),
Origin::Unknown,
)
@@ -578,13 +594,15 @@ fn should_confirm_sign_transaction_with_rlp() {
from: address,
used_default_from: false,
to: Some(recipient),
gas_price: U256::from(10_000),
gas_price: Some(U256::from(10_000)),
max_fee_per_gas: None,
gas: U256::from(10_000_000),
value: U256::from(1),
data: vec![],
nonce: None,
condition: None,
access_list: None,
max_priority_fee_per_gas: None,
}),
Origin::Unknown,
)