From 5a67fa450af9783441211dc8a6a4b26352001b3e Mon Sep 17 00:00:00 2001 From: 0xchin <77933451+0xChin@users.noreply.github.com> Date: Wed, 22 Oct 2025 14:54:15 -0300 Subject: [PATCH 1/2] feat: set block.timestamp to last interval on intiailzie --- packages/contracts-bedrock/foundry.lock | 38 +++++++++++++++++++ .../contracts-bedrock/src/L2/FeeSplitter.sol | 3 ++ .../test/L2/FeeSplitter.t.sol | 1 + 3 files changed, 42 insertions(+) create mode 100644 packages/contracts-bedrock/foundry.lock diff --git a/packages/contracts-bedrock/foundry.lock b/packages/contracts-bedrock/foundry.lock new file mode 100644 index 00000000000..2ba35bbc17c --- /dev/null +++ b/packages/contracts-bedrock/foundry.lock @@ -0,0 +1,38 @@ +{ + "lib/forge-std": { + "rev": "6853b9ec7df5dc0c213b05ae67785ad4f4baa0ea" + }, + "lib/kontrol-cheatcodes": { + "rev": "2c48ae1ab44228c199dca29414c0b4b18a3434e6" + }, + "lib/lib-keccak": { + "rev": "3b1e7bbb4cc23e9228097cfebe42aedaf3b8f2b9" + }, + "lib/openzeppelin-contracts": { + "rev": "ecd2ca2cd7cac116f7a37d0e474bbb3d7d5e1c4d" + }, + "lib/openzeppelin-contracts-upgradeable": { + "rev": "0a2cb9a445c365870ed7a8ab461b12acf3e27d63" + }, + "lib/openzeppelin-contracts-v5": { + "rev": "dbb6104ce834628e473d2173bbc9d47f81a9eec3" + }, + "lib/safe-contracts": { + "branch": { + "name": "v1.4.1", + "rev": "186a21a74b327f17fc41217a927dea7064f74604" + } + }, + "lib/solady": { + "rev": "502cc1ea718e6fa73b380635ee0868b0740595f0" + }, + "lib/solady-v0.0.245": { + "rev": "e0ef35adb0ccd1032794731a995cb599bba7b537" + }, + "lib/solmate": { + "rev": "8f9b23f8838670afda0fd8983f2c41e8037ae6bc" + }, + "lib/superchain-registry": { + "rev": "84bce73573f130008d84bae6e924163bab589a11" + } +} \ No newline at end of file diff --git a/packages/contracts-bedrock/src/L2/FeeSplitter.sol b/packages/contracts-bedrock/src/L2/FeeSplitter.sol index 8c53117f975..2766fd9216e 100644 --- a/packages/contracts-bedrock/src/L2/FeeSplitter.sol +++ b/packages/contracts-bedrock/src/L2/FeeSplitter.sol @@ -109,6 +109,9 @@ contract FeeSplitter is ISemver, Initializable { sharesCalculator = _sharesCalculator; // As default, the fee disbursement interval is 1 day feeDisbursementInterval = 1 days; + + // Set the last disbursement time to the current block timestamp + lastDisbursementTime = uint128(block.timestamp); } /// @dev Receives ETH fees withdrawn from L2 FeeVaults. diff --git a/packages/contracts-bedrock/test/L2/FeeSplitter.t.sol b/packages/contracts-bedrock/test/L2/FeeSplitter.t.sol index 5317751b54e..c9618bba94d 100644 --- a/packages/contracts-bedrock/test/L2/FeeSplitter.t.sol +++ b/packages/contracts-bedrock/test/L2/FeeSplitter.t.sol @@ -111,6 +111,7 @@ contract FeeSplitter_Initialize_Test is FeeSplitter_TestInit { assertEq(address(IFeeSplitter(payable(impl)).sharesCalculator()), address(_defaultSharesCalculator)); assertEq(IFeeSplitter(payable(impl)).feeDisbursementInterval(), 1 days); + assertEq(IFeeSplitter(payable(impl)).lastDisbursementTime(), block.timestamp); } /// @notice Test that the implementation contract disables initializers in the constructor From fa7f97c88271d0fd3c9a6df725e36a55ea43c0d0 Mon Sep 17 00:00:00 2001 From: 0xchin <77933451+0xChin@users.noreply.github.com> Date: Wed, 29 Oct 2025 00:39:27 -0300 Subject: [PATCH 2/2] chore: remove foundry.lock --- packages/contracts-bedrock/foundry.lock | 38 ------------------------- 1 file changed, 38 deletions(-) delete mode 100644 packages/contracts-bedrock/foundry.lock diff --git a/packages/contracts-bedrock/foundry.lock b/packages/contracts-bedrock/foundry.lock deleted file mode 100644 index 2ba35bbc17c..00000000000 --- a/packages/contracts-bedrock/foundry.lock +++ /dev/null @@ -1,38 +0,0 @@ -{ - "lib/forge-std": { - "rev": "6853b9ec7df5dc0c213b05ae67785ad4f4baa0ea" - }, - "lib/kontrol-cheatcodes": { - "rev": "2c48ae1ab44228c199dca29414c0b4b18a3434e6" - }, - "lib/lib-keccak": { - "rev": "3b1e7bbb4cc23e9228097cfebe42aedaf3b8f2b9" - }, - "lib/openzeppelin-contracts": { - "rev": "ecd2ca2cd7cac116f7a37d0e474bbb3d7d5e1c4d" - }, - "lib/openzeppelin-contracts-upgradeable": { - "rev": "0a2cb9a445c365870ed7a8ab461b12acf3e27d63" - }, - "lib/openzeppelin-contracts-v5": { - "rev": "dbb6104ce834628e473d2173bbc9d47f81a9eec3" - }, - "lib/safe-contracts": { - "branch": { - "name": "v1.4.1", - "rev": "186a21a74b327f17fc41217a927dea7064f74604" - } - }, - "lib/solady": { - "rev": "502cc1ea718e6fa73b380635ee0868b0740595f0" - }, - "lib/solady-v0.0.245": { - "rev": "e0ef35adb0ccd1032794731a995cb599bba7b537" - }, - "lib/solmate": { - "rev": "8f9b23f8838670afda0fd8983f2c41e8037ae6bc" - }, - "lib/superchain-registry": { - "rev": "84bce73573f130008d84bae6e924163bab589a11" - } -} \ No newline at end of file