draft: ban-deposits-interop first RFC draft
Description
This draft PR should NOT be merged, it is here to serve as a place to leave feedback and collaborate on implementation ideas.
To get ready for Interop, we need to make sure to disable ExecutingMessages to be referenced by Deposit transactions.
This PR touches both the client and the relevant pre-deploy contracts.
Tests
Tests will NOT be added to this PR, as it only serves as a collaborative draft.
Additional context
Missing features:
- [x]
!ba.rollupCfg.IsInteropActivationBlocklegacy deposit handling - [ ] some
marshallandunmarshallfunctionality forDepositsCompleteTx - [x] Interop
l1InfoTx - [ ] add natspec
- [x] Modify
SetL1BlockValuesfunction on.gofiles - [ ] client tests https://github.com/ethereum-optimism/optimism/pull/11504
Metadata
- Fixes #10867
There is currently some discrepancies between using IsInterop vs IsIsthmus - we need to standardize the usage, just to be mindful of
There is currently some discrepancies between using
IsInteropvsIsIsthmus- we need to standardize the usage, just to be mindful of
should we also modify: https://github.com/ethereum-optimism/optimism/blob/0d78e5a6a433e30d350cdaadbc018d4b803fefaf/op-node/rollup/types.go#L492 ?
maybe on another PR.
for now I'll use IsInteropActivationBlock if that's ok, and will leave a note on the required name-change
Semgrep found 2 ban_non_wraparound_modifiers findings:
- packages/contracts-bedrock/src/L2/L2ToL2CrossDomainMessenger.sol
- packages/contracts-bedrock/src/L2/CrossL2Inbox.sol
Modifiers that don't do something before and after execution are banned.
Ignore this finding from ban_non_wraparound_modifiers.