Skip to content

Conversation

0xDiscotech
Copy link
Contributor

@0xDiscotech 0xDiscotech commented Sep 19, 2025

Description

Introduce the FeeSplitter predeploy as part of a new revenue-sharing feature. The goal is to make revenue sharing simpler and more modular, with configurable values and automated handling where possible.

Includes supporting contracts like SuperchainRevSharesCalculator, L1Withdrawer, and FeesDepositor, which act as periphery components of the system and cover the first expected use case.

This is opt-in, but will be enabled by default on fresh chains at genesis. Operators must set a chain fees recipient address on L2 for splits to work.

FeeVaults were updated to be more flexible with setters, while keeping backwards compatibility.

Tests

  • All new contracts are fully unit tested.
  • Genesis logic has dedicated tests, and there ar integration tests covering the full main flow.
  • Invariant tests added using Foundry as fuzzer.

Additional context

Metadata

When the FeesDepositor contract for OP’s L1 fees is deployed, it should be linked here

⚠️ Disclaimer: We made minimal changes to the Go files to get the checks passing and did so carefully. Go isn’t our primary expertise, so we’d appreciate extra attention from Go reviewers on these edits.

@0xDiscotech 0xDiscotech requested review from a team as code owners September 19, 2025 15:56
@JosepBove
Copy link
Member

As I mentioned on our chats, everything LGTM. Just this minor spec mismatch-related stuff.

Copy link
Member

@JosepBove JosepBove left a comment

Choose a reason for hiding this comment

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

Thanks for the fixes, approved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants