-
Notifications
You must be signed in to change notification settings - Fork 2k
chore: activate prague
hardfork and Solidity version 0.8.30
as default
#10565
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
Conversation
prague
hardfork by defaultprague
hardfork by default and use 0.8.30
for tests
@@ -1082,7 +1082,7 @@ contract CounterTest is Test { | |||
|
|||
function test_Increment_In_Counter_With_Salt() public { | |||
CounterWithSalt counter = new CounterWithSalt{value: 111, salt: bytes32("preprocess_counter_with_salt")}(1); | |||
assertEq(address(counter), 0x3Efe9ecFc73fB3baB7ECafBB40D3e134260Be6AB); | |||
assertEq(address(counter), 0x223e63BE3BF01DD04f852d70f1bE217017055f49); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These can be explained by differences in bytecode (like evm version) - we should make this test more robust instead of changing the address but can be done as a follow-up imo. The places where the strict assertions against the addresses are done largely make sense.
prague
hardfork by default and use 0.8.30
for testsprague
hardfork and Solidity version 0.8.30
as default
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
smol nit
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm, left small nit
.normalize_version_solc(version) | ||
.unwrap_or_default(), | ||
) | ||
let evm = EvmVersion::default() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe can be simplified, or for future have a normalize_evm_version(version, language)
in foundry compilers?
let mut evm = EvmVersion::default()
.normalize_version_solc(version)
.unwrap_or_default();
// Vyper does not yet support Prague, so we normalize it to Cancun.
if language.is_vyper() {
evm = normalize_evm_version_vyper(evm);
}
Some(evm)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point, opened a follow-up ticket for me here: foundry-rs/compilers#278
We should either upstream this Vyper
exception as is or create a unified helper as proposed
Motivation
Closes: #10564
Considering 0.8.30+ ships with
prague
enabled we should pro-actively move to using it by default.Solution
Adds Prague activation timestamp, fix
blob_fee
andblob_params
to be hardfork compatibleAnvil already has
prague
activated per #10653Breaking changes
Users targeting older versions (< 0.8.30) will likely experience a breaking change similar to how we've had this when we introduced
cancun
as a default if they don't have anevm_version
specified infoundry.toml
.Follow up
prague
by default book#1535cargo update
#10680normalize_evm_version_vyper
helperPR Checklist