-
Notifications
You must be signed in to change notification settings - Fork 39
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
Pectra on Isthmus FMA #201
base: main
Are you sure you want to change the base?
Conversation
security/fma-isthmus-l2-pectra.md
Outdated
| Created at | 2025-02-10 | | ||
| Initial Reviewers | refcell | | ||
| Need Approval From | | | ||
| Status | In Review 🔎 | |
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.
We need to add this add the end of the current review please not accept this current suggestion now.
I will accept this at the end myself.
| Status | In Review 🔎 | | |
| Status | Implementing Action 🛫 | |
In review by EVM Safety: https://github.com/ethereum-optimism/security-pod/issues/241 |
security/fma-isthmus-l2-pectra.md
Outdated
- [ ] (BLOCKING): Add a E2E test that Validate that minting to EOA that contains code (with Type4) is not an issue (@meyer9 assignee for now but could be someone else). | ||
- [ ] (NON-BLOCKING): Identify path from the sequencer during the deposit transaction on the L2 that can cause unexpected behavior when an EOA has some code. | ||
- [ ] (NON-BLOCKING): Indicate in this FMA reference the kurtosis devnet that allow the perform testing on Isthmus (L2 Pectra). | ||
- [ ] (NON-BLOCKING): Tests to make sure that `ressources_limit` and `gas_limit` for each Superchain are not failling by overflowing from the config on L1 (assignee: @geoknee) |
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.
I have performed this check manually code here and confirmed that all chains currently in the registry currently have a gasLimit
of at least 30M and a maxResourceLimit
of at least 20M.
It wasn't worth committing this as a CI check, but I think we can add the link above and consider this item done.
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.
Test output in this fold
➜ rollup git:(gk/superchain-upgrade-gas-check) ✗ go test -timeout 30s -run ^TestSuperchainGasLimit$ ./... -v
=== RUN TestSuperchainGasLimit
dialing client at https://ethereum-sepolia-rpc.publicnode.commaking batch call
finished batch call
dialing client at https://ethereum-rpc.publicnode.commaking batch call
finished batch call
superchain_test.go:76: 60000000
superchain_test.go:78: Chain: cyber-mainnet GasLimit 30.0M
superchain_test.go:80: Chain: cyber-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: mint-mainnet GasLimit 30.0M
superchain_test.go:80: Chain: mint-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: creator-chain-testnet-sepolia GasLimit 30.0M
superchain_test.go:80: Chain: creator-chain-testnet-sepolia ResourceConfig 20.0M
superchain_test.go:78: Chain: cyber-sepolia GasLimit 30.0M
superchain_test.go:80: Chain: cyber-sepolia ResourceConfig 20.0M
superchain_test.go:78: Chain: mode-sepolia GasLimit 30.0M
superchain_test.go:80: Chain: mode-sepolia ResourceConfig 20.0M
superchain_test.go:78: Chain: unichain-sepolia GasLimit 30.0M
superchain_test.go:80: Chain: unichain-sepolia ResourceConfig 20.0M
superchain_test.go:78: Chain: automata-mainnet GasLimit 30.0M
superchain_test.go:80: Chain: automata-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: ethernity-mainnet GasLimit 30.0M
superchain_test.go:80: Chain: ethernity-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: ink-mainnet GasLimit 60.0M
superchain_test.go:80: Chain: ink-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: lisk-mainnet GasLimit 60.0M
superchain_test.go:80: Chain: lisk-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: ethernity-sepolia GasLimit 30.0M
superchain_test.go:80: Chain: ethernity-sepolia ResourceConfig 20.0M
superchain_test.go:78: Chain: funki-mainnet GasLimit 30.0M
superchain_test.go:80: Chain: funki-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: metal-mainnet GasLimit 30.0M
superchain_test.go:80: Chain: metal-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: mode-mainnet GasLimit 30.0M
superchain_test.go:80: Chain: mode-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: polynomial-mainnet GasLimit 30.0M
superchain_test.go:80: Chain: polynomial-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: race-mainnet GasLimit 30.0M
superchain_test.go:80: Chain: race-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: sseed-mainnet GasLimit 30.0M
superchain_test.go:80: Chain: sseed-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: xterio-eth-mainnet GasLimit 30.0M
superchain_test.go:80: Chain: xterio-eth-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: pivotal-sepolia GasLimit 30.0M
superchain_test.go:80: Chain: pivotal-sepolia ResourceConfig 20.0M
superchain_test.go:78: Chain: soneium-minato-sepolia GasLimit 30.0M
superchain_test.go:80: Chain: soneium-minato-sepolia ResourceConfig 20.0M
superchain_test.go:78: Chain: worldchain-sepolia GasLimit 30.0M
superchain_test.go:80: Chain: worldchain-sepolia ResourceConfig 20.0M
superchain_test.go:78: Chain: hashkeychain-mainnet GasLimit 30.0M
superchain_test.go:80: Chain: hashkeychain-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: orderly-mainnet GasLimit 180.0M
superchain_test.go:80: Chain: orderly-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: snax-mainnet GasLimit 30.0M
superchain_test.go:80: Chain: snax-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: soneium-mainnet GasLimit 40.0M
superchain_test.go:80: Chain: soneium-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: swan-mainnet GasLimit 30.0M
superchain_test.go:80: Chain: swan-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: op-sepolia GasLimit 60.0M
superchain_test.go:80: Chain: op-sepolia ResourceConfig 20.0M
superchain_test.go:78: Chain: op-mainnet GasLimit 60.0M
superchain_test.go:80: Chain: op-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: redstone-mainnet GasLimit 100.0M
superchain_test.go:80: Chain: redstone-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: unichain-mainnet GasLimit 30.0M
superchain_test.go:80: Chain: unichain-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: worldchain-mainnet GasLimit 30.0M
superchain_test.go:80: Chain: worldchain-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: zora-mainnet GasLimit 30.0M
superchain_test.go:80: Chain: zora-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: funki-sepolia GasLimit 30.0M
superchain_test.go:80: Chain: funki-sepolia ResourceConfig 20.0M
superchain_test.go:78: Chain: race-sepolia GasLimit 30.0M
superchain_test.go:80: Chain: race-sepolia ResourceConfig 20.0M
superchain_test.go:78: Chain: shape-sepolia GasLimit 30.0M
superchain_test.go:80: Chain: shape-sepolia ResourceConfig 20.0M
superchain_test.go:78: Chain: bob-mainnet GasLimit 30.0M
superchain_test.go:80: Chain: bob-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: zora-sepolia GasLimit 30.0M
superchain_test.go:80: Chain: zora-sepolia ResourceConfig 20.0M
superchain_test.go:78: Chain: lyra-mainnet GasLimit 120.0M
superchain_test.go:80: Chain: lyra-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: ink-sepolia GasLimit 30.0M
superchain_test.go:80: Chain: ink-sepolia ResourceConfig 20.0M
superchain_test.go:78: Chain: arena-z-mainnet GasLimit 60.0M
superchain_test.go:80: Chain: arena-z-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: shape-mainnet GasLimit 30.0M
superchain_test.go:80: Chain: shape-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: swell-mainnet GasLimit 60.0M
superchain_test.go:80: Chain: swell-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: tbn-mainnet GasLimit 30.0M
superchain_test.go:80: Chain: tbn-mainnet ResourceConfig 20.0M
superchain_test.go:78: Chain: arena-z-testnet-sepolia GasLimit 30.0M
superchain_test.go:80: Chain: arena-z-testnet-sepolia ResourceConfig 20.0M
superchain_test.go:78: Chain: base-sepolia GasLimit 60.0M
superchain_test.go:80: Chain: base-sepolia ResourceConfig 20.0M
superchain_test.go:78: Chain: lisk-sepolia GasLimit 30.0M
superchain_test.go:80: Chain: lisk-sepolia ResourceConfig 20.0M
superchain_test.go:78: Chain: metal-sepolia GasLimit 30.0M
superchain_test.go:80: Chain: metal-sepolia ResourceConfig 20.0M
superchain_test.go:78: Chain: tbn-sepolia GasLimit 30.0M
superchain_test.go:80: Chain: tbn-sepolia ResourceConfig 20.0M
superchain_test.go:78: Chain: base-mainnet GasLimit 116.0M
superchain_test.go:80: Chain: base-mainnet ResourceConfig 20.0M
--- PASS: TestSuperchainGasLimit (0.19s)
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.
Thanks!
How to make sure we are running this just before the isthmus upgrade?
To make sure no Systemconfig has been updated by mistake after we just ran the script?
I will complete this Action item and open one that would require to run this script before the execution in the warroom of the upgrade tell me if you are okay with this one @geoknee please?
Co-authored-by: George Knee <georgeknee@googlemail.com>
|
||
### FM8: Smart contracts relying on sender check no longer ensures sender does not have code | ||
|
||
- **Description:** As part of EIP-7702, `msg.sender == tx.origin` no longer implies that the caller has no code. If unaddressed, this could cause |
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.
This has been handled, there is a new library for handling this check that has been introduced into our L1 contracts
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.
Correct the changes has been made on L1.
Also this is fixed on the L2 the modifier onlyEOA
is used now:
https://github.com/ethereum-optimism/optimism/blob/9249efc6343208f69283290fc9c5c8f6e7b243f8/packages/contracts-bedrock/src/L2/L2StandardBridge.sol#L104
I would like still to know if there is any operation on the op-node
that can potentially revert or cause unexpected behavior if interacting with an EIP7702 address such as minting, refund etc.
But the smart contractsa are correct.
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.
we should be safe from eip-3607 from just rebasing on top of latest geth, but good call on checking that deposits work as expected, https://eips.ethereum.org/EIPS/eip-3607
From Mark, this is correct but just in case can someone point me the tests that can cover this if there is?
Description
Adds an FMA for Pectra on Isthmus.