From 0acab5415d10764d03ef2f7ce3a991fd24543229 Mon Sep 17 00:00:00 2001 From: 0xDiscotech <131301107+0xDiscotech@users.noreply.github.com> Date: Tue, 11 Nov 2025 19:28:19 -0300 Subject: [PATCH 1/2] feat: add chain processed event --- src/RevShareContractsUpgrader.sol | 9 +++++++++ src/interfaces/IRevShareContractsUpgrader.sol | 2 ++ .../RevShareContractsUpgrader.t.sol | 19 +++++++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/src/RevShareContractsUpgrader.sol b/src/RevShareContractsUpgrader.sol index 2604daa24b..9dccd26703 100644 --- a/src/RevShareContractsUpgrader.sol +++ b/src/RevShareContractsUpgrader.sol @@ -36,6 +36,11 @@ contract RevShareContractsUpgrader { /// @notice Thrown when array is empty error EmptyArray(); + /// @notice Emitted when a chain's RevShare setup deposits are completed + /// @param portal The portal address for the chain + /// @param chainIndex The index of the chain in the configs array + event ChainProcessed(address portal, uint256 chainIndex); + /// @notice Struct for L1Withdrawer configuration. /// @param minWithdrawalAmount Minimum withdrawal amount /// @param recipient Recipient address for withdrawals @@ -101,6 +106,8 @@ contract RevShareContractsUpgrader { // Upgrade all 4 vaults with RevShare configuration (recipient=FeeSplitter, minWithdrawal=0, network=L2) _upgradeVaultsWithRevShareConfig(config.portal); + + emit ChainProcessed(config.portal, i); } } @@ -131,6 +138,8 @@ contract RevShareContractsUpgrader { // Configure all 4 vaults for revenue sharing _configureVaultsForRevShare(config.portal); + + emit ChainProcessed(config.portal, i); } } diff --git a/src/interfaces/IRevShareContractsUpgrader.sol b/src/interfaces/IRevShareContractsUpgrader.sol index 6a63c9ffa9..4f5f04833f 100644 --- a/src/interfaces/IRevShareContractsUpgrader.sol +++ b/src/interfaces/IRevShareContractsUpgrader.sol @@ -8,6 +8,8 @@ interface IRevShareContractsUpgrader { error GasLimitCannotBeZero(); error EmptyArray(); + event ChainProcessed(address portal, uint256 chainIndex); + struct L1WithdrawerConfig { uint256 minWithdrawalAmount; address recipient; diff --git a/test/template/revenue-share-upgrade-path/RevShareContractsUpgrader.t.sol b/test/template/revenue-share-upgrade-path/RevShareContractsUpgrader.t.sol index 749c629354..1d2d90e8eb 100644 --- a/test/template/revenue-share-upgrade-path/RevShareContractsUpgrader.t.sol +++ b/test/template/revenue-share-upgrade-path/RevShareContractsUpgrader.t.sol @@ -21,6 +21,9 @@ import {IFeeVault} from "src/interfaces/IFeeVault.sol"; /// @title RevShareContractsUpgrader_TestInit /// @notice Base test contract with shared setup and helpers for RevShareContractsUpgrader tests. contract RevShareContractsUpgrader_TestInit is Test { + // Events + event ChainProcessed(address portal, uint256 chainIndex); + // Contract under test RevShareContractsUpgrader internal upgrader; @@ -444,6 +447,10 @@ contract RevShareContractsUpgrader_UpgradeAndSetupRevShare_Test is RevShareContr _mockAndExpectFeeSplitterDeployAndSetup(_portal, expectedCalculator); _mockAndExpectAllVaultUpgrades(_portal); + // Expect event + vm.expectEmit(true, true, true, true); + emit ChainProcessed(_portal, 0); + // Execute upgrader.upgradeAndSetupRevShare(configs); } @@ -490,6 +497,10 @@ contract RevShareContractsUpgrader_UpgradeAndSetupRevShare_Test is RevShareContr _mockAndExpectCalculatorDeploy(portal, expectedL1Withdrawer, chainFeeRecipient); _mockAndExpectFeeSplitterDeployAndSetup(portal, expectedCalculator); _mockAndExpectAllVaultUpgrades(portal); + + // Expect event for this chain + vm.expectEmit(true, true, true, true); + emit ChainProcessed(portal, i); } // Execute once with all chains @@ -582,6 +593,10 @@ contract RevShareContractsUpgrader_SetupRevShare_Test is RevShareContractsUpgrad _mockAndExpectFeeSplitterSetCalculator(_portal, expectedCalculator); _mockAndExpectAllVaultSetters(_portal); + // Expect event + vm.expectEmit(true, true, true, true); + emit ChainProcessed(_portal, 0); + // Execute upgrader.setupRevShare(configs); } @@ -628,6 +643,10 @@ contract RevShareContractsUpgrader_SetupRevShare_Test is RevShareContractsUpgrad _mockAndExpectCalculatorDeploy(portal, expectedL1Withdrawer, chainFeeRecipient); _mockAndExpectFeeSplitterSetCalculator(portal, expectedCalculator); _mockAndExpectAllVaultSetters(portal); + + // Expect event for this chain + vm.expectEmit(true, true, true, true); + emit ChainProcessed(portal, i); } // Execute once with all chains From 71499a760beadbeffc40dbe6760f65f9c61314a4 Mon Sep 17 00:00:00 2001 From: 0xDiscotech <131301107+0xDiscotech@users.noreply.github.com> Date: Tue, 11 Nov 2025 19:30:00 -0300 Subject: [PATCH 2/2] chore: expect emit address --- .../RevShareContractsUpgrader.t.sol | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/test/template/revenue-share-upgrade-path/RevShareContractsUpgrader.t.sol b/test/template/revenue-share-upgrade-path/RevShareContractsUpgrader.t.sol index 1d2d90e8eb..d669822d69 100644 --- a/test/template/revenue-share-upgrade-path/RevShareContractsUpgrader.t.sol +++ b/test/template/revenue-share-upgrade-path/RevShareContractsUpgrader.t.sol @@ -406,7 +406,8 @@ contract RevShareContractsUpgrader_UpgradeAndSetupRevShare_Test is RevShareContr /// @notice Test that upgradeAndSetupRevShare reverts when gas limit is zero function test_upgradeAndSetupRevShare_whenGasLimitIsZero_reverts() public { RevShareContractsUpgrader.RevShareConfig[] memory configs = new RevShareContractsUpgrader.RevShareConfig[](1); - configs[0] = _createRevShareConfig(PORTAL_ONE, MIN_WITHDRAWAL_AMOUNT, L1_RECIPIENT_ONE, 0, CHAIN_FEES_RECIPIENT_ONE); + configs[0] = + _createRevShareConfig(PORTAL_ONE, MIN_WITHDRAWAL_AMOUNT, L1_RECIPIENT_ONE, 0, CHAIN_FEES_RECIPIENT_ONE); vm.expectRevert(RevShareContractsUpgrader.GasLimitCannotBeZero.selector); upgrader.upgradeAndSetupRevShare(configs); @@ -448,7 +449,7 @@ contract RevShareContractsUpgrader_UpgradeAndSetupRevShare_Test is RevShareContr _mockAndExpectAllVaultUpgrades(_portal); // Expect event - vm.expectEmit(true, true, true, true); + vm.expectEmit(address(upgrader)); emit ChainProcessed(_portal, 0); // Execute @@ -499,7 +500,7 @@ contract RevShareContractsUpgrader_UpgradeAndSetupRevShare_Test is RevShareContr _mockAndExpectAllVaultUpgrades(portal); // Expect event for this chain - vm.expectEmit(true, true, true, true); + vm.expectEmit(address(upgrader)); emit ChainProcessed(portal, i); } @@ -552,7 +553,8 @@ contract RevShareContractsUpgrader_SetupRevShare_Test is RevShareContractsUpgrad /// @notice Test that setupRevShare reverts when gas limit is zero function test_setupRevShare_whenGasLimitIsZero_reverts() public { RevShareContractsUpgrader.RevShareConfig[] memory configs = new RevShareContractsUpgrader.RevShareConfig[](1); - configs[0] = _createRevShareConfig(PORTAL_ONE, MIN_WITHDRAWAL_AMOUNT, L1_RECIPIENT_ONE, 0, CHAIN_FEES_RECIPIENT_ONE); + configs[0] = + _createRevShareConfig(PORTAL_ONE, MIN_WITHDRAWAL_AMOUNT, L1_RECIPIENT_ONE, 0, CHAIN_FEES_RECIPIENT_ONE); vm.expectRevert(RevShareContractsUpgrader.GasLimitCannotBeZero.selector); upgrader.setupRevShare(configs); @@ -594,7 +596,7 @@ contract RevShareContractsUpgrader_SetupRevShare_Test is RevShareContractsUpgrad _mockAndExpectAllVaultSetters(_portal); // Expect event - vm.expectEmit(true, true, true, true); + vm.expectEmit(address(upgrader)); emit ChainProcessed(_portal, 0); // Execute @@ -645,7 +647,7 @@ contract RevShareContractsUpgrader_SetupRevShare_Test is RevShareContractsUpgrad _mockAndExpectAllVaultSetters(portal); // Expect event for this chain - vm.expectEmit(true, true, true, true); + vm.expectEmit(address(upgrader)); emit ChainProcessed(portal, i); }