Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add initial EIP-1559 support #244

Merged
merged 1 commit into from
Nov 9, 2021
Merged

Add initial EIP-1559 support #244

merged 1 commit into from
Nov 9, 2021

Conversation

joshuajbouw
Copy link
Contributor

Adds initial EIP-1559 support for the London hardfork.

There has been numerous changes done in this PR. Notably, I made a geth-like NormalizedEthTransaction which given the current fork will use that structure. This is important as for the first time instead of adding fields, 1 was taken away, and 2 additional were added so it led to a bit of a large redesign.

@artob artob changed the title Add intial EIP-1559 support Add initial EIP-1559 support Aug 23, 2021
@joshuajbouw joshuajbouw added C-dependencies Category: Pull requests that update a dependency C-enhancement Category: New feature or request A-benchmark Area: performance benchmarks A-testing Area: If something has added tests, or changed them. P-high Pririoty: high S-do-not-merge Status: Do not merge S-blocked Status: Blocked labels Sep 13, 2021
@joshuajbouw joshuajbouw removed S-do-not-merge Status: Do not merge S-blocked Status: Blocked labels Sep 23, 2021
@joshuajbouw
Copy link
Contributor Author

Unblocked as per #280

engine-types/src/types.rs Outdated Show resolved Hide resolved
@birchmd birchmd marked this pull request as ready for review September 23, 2021 19:03
engine/src/transaction/eip_1559.rs Outdated Show resolved Hide resolved
engine/src/transaction/mod.rs Show resolved Hide resolved
engine/src/transaction/mod.rs Outdated Show resolved Hide resolved
fn gas_price(&self) -> U256 {
U256::zero()
self.gas_price
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A noteworthy change. This improves our EVM compatibility.

///
/// TODO: doc.aurora.dev link
fn block_base_fee_per_gas(&self) -> U256 {
U256::zero()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We'll probably want to make this part of the state as some point, and allow it to be set by the engine contract owner. But this is fine for now.

}

// TODO: upgrade to Berlin HF
pub(crate) const CONFIG: &Config = &Config::istanbul();
pub(crate) const CONFIG: &Config = &Config::london();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also a noteworthy change.

(Also apparently we never actually updated to the Berlin config, oops.)

@birchmd
Copy link
Member

birchmd commented Oct 22, 2021

@joshuajbouw I can't tag you as a reviewer of your own PR, but please take a look. I think this is ready to merge now. We'll need to update our docs about the gas_price and base_fee as well after the merge.

@joshuajbouw
Copy link
Contributor Author

Thanks buddy. Yes. Agreed.

@birchmd birchmd merged commit b904fd0 into develop Nov 9, 2021
@birchmd birchmd deleted the feat/london/eip-1559 branch November 9, 2021 17:41
birchmd added a commit that referenced this pull request Nov 10, 2021
@joshuajbouw joshuajbouw mentioned this pull request Dec 10, 2021
artob pushed a commit that referenced this pull request Dec 10, 2021
* Feat(engine): London hard fork support (#244)
* Fix(exit precompile): Address to refund in case of error is an argument (#311)
* Feat(engine): Make engine parametric in storage access (#314)
* Test verifying the EVM log returns the correct address (#341)
* Remove sdk::current_account_id usage from engine-precompiles (#346)
* Remove Default trait bound from engine IO (#342)
* Remove some sdk usage from core logic (#347)
* Factor out blockchain environment variable access as a trait (#349)
* Factor out NEAR promise host functions into a trait (#353)
* Borsh deserialized value field for call args (#351)
* Refactor(eth-connector): Use Result return values instead of panicking (#355)
* Gate all NEAR host functions behind the contract feature (#356)
* Bump @openzeppelin/contracts from 4.3.2 to 4.3.3 in /etc/eth-contracts
* Chore: Newtypes for gas (#344)
* Feat(standalone): Standalone (#345)
* Minor fixes to sdk refactor (#359)
* Refactor(engine): Move submit logic into engine module (#366)
* Feat(standalone): Storage backend (#375)
* NEAR random numbers from solidity contract (#368)
* Feat(standalone): EVM tracing via SputnikVM (#383)
* Feat(standalone): Bootstrap storage from relayer and state snapshots (#379)
* Feat(standalone): Structures and logic for keeping storage in sync with the blockchain (#382)
* Feat(standalone): Capture geth-like tracing from SputnikVM events (#384)
* Connector cleanup (#374)
* Remove betanet
* Fix(engine): original_storage bug fix; more tracing tests (#390)
* Increase NEAR Gas for ft_on_transfer (#389)

Co-authored-by: Andrew Bednoff <andrew.bednoff@aurora.dev>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evgeny Ukhanov <evgeny.ukhanov@aurora.dev>
Co-authored-by: Marcelo Fornet <marcelo.fornet@aurora.dev>
Co-authored-by: Michael Birch <michael.birch@aurora.dev>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-benchmark Area: performance benchmarks A-testing Area: If something has added tests, or changed them. C-dependencies Category: Pull requests that update a dependency C-enhancement Category: New feature or request P-high Pririoty: high
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants