From 26406202f48ff2c77d1a51be621e38ba6e105f2f Mon Sep 17 00:00:00 2001 From: Disco <131301107+0xDiscotech@users.noreply.github.com> Date: Wed, 3 Dec 2025 12:23:58 -0300 Subject: [PATCH 1/3] fix: remove todo and update fees depositor address on mainnet (#704) --- op-deployer/pkg/deployer/standard/standard.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/op-deployer/pkg/deployer/standard/standard.go b/op-deployer/pkg/deployer/standard/standard.go index 9533d29f1ee..bcfb6062db6 100644 --- a/op-deployer/pkg/deployer/standard/standard.go +++ b/op-deployer/pkg/deployer/standard/standard.go @@ -46,8 +46,7 @@ const ( CurrentTag = ContractsV410Tag ) -// TODO(#17505): This address should be updated to the actual address once deployed -var L1FeesDepositor = common.HexToAddress("0x81c01427DFA9A2512b4EBf1462868856BA4aA91a") +var L1FeesDepositor = common.HexToAddress("0xed9B99a703BaD32AC96FDdc313c0652e379251Fd") var DisputeAbsolutePrestate = common.HexToHash("0x038512e02c4c3f7bdaec27d00edf55b7155e0905301e1a88083e4e0a6764d54c") From a06debe069e44100c9add79dc93299faa3c5a552 Mon Sep 17 00:00:00 2001 From: Disco <131301107+0xDiscotech@users.noreply.github.com> Date: Wed, 3 Dec 2025 19:22:42 -0300 Subject: [PATCH 2/3] chore: set genesis min withdrawal threshold from ten to two eth (#723) --- .../contracts-bedrock/scripts/L2Genesis.s.sol | 4 +-- .../test/L2/L1Withdrawer.t.sol | 4 +-- .../test/L2/RevenueSharingIntegration.t.sol | 33 ++----------------- .../test/scripts/L2Genesis.t.sol | 4 +-- 4 files changed, 9 insertions(+), 36 deletions(-) diff --git a/packages/contracts-bedrock/scripts/L2Genesis.s.sol b/packages/contracts-bedrock/scripts/L2Genesis.s.sol index 19d3ef5e122..c189309fddd 100644 --- a/packages/contracts-bedrock/scripts/L2Genesis.s.sol +++ b/packages/contracts-bedrock/scripts/L2Genesis.s.sol @@ -89,8 +89,8 @@ contract L2Genesis is Script { uint256 internal constant PRECOMPILE_COUNT = 256; uint80 internal constant DEV_ACCOUNT_FUND_AMT = 10_000 ether; - uint32 internal constant WITHDRAWAL_MIN_GAS_LIMIT = 1_000_000; - uint256 internal constant MIN_WITHDRAWAL_AMOUNT_THRESHOLD = 10 ether; + uint32 internal constant WITHDRAWAL_MIN_GAS_LIMIT = 800_000; + uint256 internal constant MIN_WITHDRAWAL_AMOUNT_THRESHOLD = 2 ether; /// @notice Default Anvil dev accounts. Only funded if `cfg.fundDevAccounts == true`. /// Also known as "test test test test test test test test test test test junk" mnemonic accounts, diff --git a/packages/contracts-bedrock/test/L2/L1Withdrawer.t.sol b/packages/contracts-bedrock/test/L2/L1Withdrawer.t.sol index 865e7177f23..fa00468a039 100644 --- a/packages/contracts-bedrock/test/L2/L1Withdrawer.t.sol +++ b/packages/contracts-bedrock/test/L2/L1Withdrawer.t.sol @@ -18,8 +18,8 @@ contract L1Withdrawer_TestInit is CommonTest { event WithdrawalGasLimitUpdated(uint32 oldWithdrawalGasLimit, uint32 newWithdrawalGasLimit); // Test state - uint256 minWithdrawalAmount = 10 ether; - uint32 withdrawalGasLimit = 1_000_000; + uint256 minWithdrawalAmount = 2 ether; + uint32 withdrawalGasLimit = 800_000; uint32 internal constant MIN_WITHDRAWAL_GAS_LIMIT = 800_000; diff --git a/packages/contracts-bedrock/test/L2/RevenueSharingIntegration.t.sol b/packages/contracts-bedrock/test/L2/RevenueSharingIntegration.t.sol index 777b0ffa942..0b448616bf7 100644 --- a/packages/contracts-bedrock/test/L2/RevenueSharingIntegration.t.sol +++ b/packages/contracts-bedrock/test/L2/RevenueSharingIntegration.t.sol @@ -32,31 +32,6 @@ contract RevenueSharingIntegration_Test is CommonTest { disbursementInterval = feeSplitter.feeDisbursementInterval(); } - /// @notice Configure all vaults to withdraw to FeeSplitter on L2 - function _configureVaultsForFeeSplitter() private { - // Get the ProxyAdmin owner to configure vaults - address proxyAdminOwner = proxyAdmin.owner(); - - // Configure all vaults to withdraw to FeeSplitter on L2 - vm.startPrank(proxyAdminOwner); - IFeeVault(payable(address(sequencerFeeVault))).setRecipient(address(feeSplitter)); - IFeeVault(payable(address(sequencerFeeVault))).setWithdrawalNetwork(Types.WithdrawalNetwork.L2); - IFeeVault(payable(address(sequencerFeeVault))).setMinWithdrawalAmount(0); - - IFeeVault(payable(address(baseFeeVault))).setRecipient(address(feeSplitter)); - IFeeVault(payable(address(baseFeeVault))).setWithdrawalNetwork(Types.WithdrawalNetwork.L2); - IFeeVault(payable(address(baseFeeVault))).setMinWithdrawalAmount(0); - - IFeeVault(payable(address(l1FeeVault))).setRecipient(address(feeSplitter)); - IFeeVault(payable(address(l1FeeVault))).setWithdrawalNetwork(Types.WithdrawalNetwork.L2); - IFeeVault(payable(address(l1FeeVault))).setMinWithdrawalAmount(0); - - IFeeVault(payable(address(operatorFeeVault))).setRecipient(address(feeSplitter)); - IFeeVault(payable(address(operatorFeeVault))).setWithdrawalNetwork(Types.WithdrawalNetwork.L2); - IFeeVault(payable(address(operatorFeeVault))).setMinWithdrawalAmount(0); - vm.stopPrank(); - } - /// @notice Helper to fund vaults function _fundVaults(uint256 _sequencerFees, uint256 _baseFees, uint256 _l1Fees, uint256 _operatorFees) private { vm.deal(address(sequencerFeeVault), _sequencerFees); @@ -134,8 +109,9 @@ contract RevenueSharingIntegration_Test is CommonTest { // | 0/0/0/0 | 2.5 | 205.55 | Accumulating | // |__________________|______________|______________|________________________________| function test_revenueSharing_fullFlow_succeeds() public { - // Configure vaults to withdraw to FeeSplitter - _configureVaultsForFeeSplitter(); + // Use 10 ETH as the minimum withdrawal amount for this test's hardcoded math + vm.prank(proxyAdminOwner); + l1Withdrawer.setMinWithdrawalAmount(10 ether); // Get recipient addresses address shareRecipient = superchainRevSharesCalculator.shareRecipient(); @@ -272,9 +248,6 @@ contract RevenueSharingIntegration_Test is CommonTest { return; } - // Configure vaults for disbursement - _configureVaultsForFeeSplitter(); - { // Get share info from calculator first ISharesCalculator.ShareInfo[] memory shareInfo = diff --git a/packages/contracts-bedrock/test/scripts/L2Genesis.t.sol b/packages/contracts-bedrock/test/scripts/L2Genesis.t.sol index 52646aeb940..f4943f82ea8 100644 --- a/packages/contracts-bedrock/test/scripts/L2Genesis.t.sol +++ b/packages/contracts-bedrock/test/scripts/L2Genesis.t.sol @@ -194,9 +194,9 @@ abstract contract L2Genesis_TestInit is Test { // Check the L1Withdrawer is properly set IL1Withdrawer l1Withdrawer = IL1Withdrawer(superchainRevSharesCalculator.shareRecipient()); - assertEq(l1Withdrawer.minWithdrawalAmount(), 10 ether); + assertEq(l1Withdrawer.minWithdrawalAmount(), 2 ether); assertEq(l1Withdrawer.recipient(), input.l1FeesDepositor); - assertEq(l1Withdrawer.withdrawalGasLimit(), 1_000_000); + assertEq(l1Withdrawer.withdrawalGasLimit(), 800_000); } function testCGT() internal view { From f7003195f5a614fe9c56c67e320d408745b0277d Mon Sep 17 00:00:00 2001 From: Disco <131301107+0xDiscotech@users.noreply.github.com> Date: Thu, 4 Dec 2025 12:32:00 -0300 Subject: [PATCH 3/3] fix: remove unused errors (#726) --- .../contracts-bedrock/test/L2/RevenueSharingIntegration.t.sol | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/contracts-bedrock/test/L2/RevenueSharingIntegration.t.sol b/packages/contracts-bedrock/test/L2/RevenueSharingIntegration.t.sol index 0b448616bf7..c8ec809265a 100644 --- a/packages/contracts-bedrock/test/L2/RevenueSharingIntegration.t.sol +++ b/packages/contracts-bedrock/test/L2/RevenueSharingIntegration.t.sol @@ -4,9 +4,7 @@ pragma solidity 0.8.15; import { CommonTest } from "test/setup/CommonTest.sol"; import { ISharesCalculator } from "interfaces/L2/ISharesCalculator.sol"; import { ISuperchainRevSharesCalculator } from "interfaces/L2/ISuperchainRevSharesCalculator.sol"; -import { IFeeVault } from "interfaces/L2/IFeeVault.sol"; import { Predeploys } from "src/libraries/Predeploys.sol"; -import { Types } from "src/libraries/Types.sol"; import { ICrossDomainMessenger } from "interfaces/universal/ICrossDomainMessenger.sol"; /// @title RevenueSharingIntegration_Test