diff --git a/op-deployer/book/src/user-guide/init.md b/op-deployer/book/src/user-guide/init.md index a82f917652e..56f357e4e72 100644 --- a/op-deployer/book/src/user-guide/init.md +++ b/op-deployer/book/src/user-guide/init.md @@ -44,6 +44,7 @@ l2ContractsLocator = "tag://op-contracts/v1.7.0-beta.1+l2-contracts" baseFeeVaultRecipient = "0x0000000000000000000000000000000000000000" l1FeeVaultRecipient = "0x0000000000000000000000000000000000000000" sequencerFeeVaultRecipient = "0x0000000000000000000000000000000000000000" + operatorFeeVaultRecipient = "0x0000000000000000000000000000000000000000" eip1559DenominatorCanyon = 250 eip1559Denominator = 50 eip1559Elasticity = 6 @@ -65,6 +66,7 @@ In production environments, you should use a more secure setup with cold-wallet * `baseFeeVaultRecipient` * `l1FeeVaultRecipient` * `sequencerFeeVaultRecipient` +* `operatorFeeVaultRecipient` * `l1ProxyAdminOwner` * `l2ProxyAdminOwner` * `systemConfigOwner` diff --git a/packages/contracts-bedrock/book/src/contributing/style-guide.md b/packages/contracts-bedrock/book/src/contributing/style-guide.md index a8686aa023f..4a5981b2499 100644 --- a/packages/contracts-bedrock/book/src/contributing/style-guide.md +++ b/packages/contracts-bedrock/book/src/contributing/style-guide.md @@ -389,9 +389,4 @@ Certain types of tests are excluded from standard naming conventions: - **Script tests** (`test/scripts/`): Test deployment and utility scripts - **Library tests** (`test/libraries/`): May have different artifact structures - **Formal verification** (`test/kontrol/`): Use specialized tooling conventions -- **Vendor tests** (`test/vendor/`): Test external code with different patterns - -## Withdrawing From Fee Vaults - -See the file `scripts/FeeVaultWithdrawal.s.sol` to withdraw from the L2 fee vaults. It includes -instructions on how to run it. `foundry` is required. +- **Vendor tests** (`test/vendor/`): Test external code with different patterns \ 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..ca84510f4fd 100644 --- a/packages/contracts-bedrock/src/L2/FeeSplitter.sol +++ b/packages/contracts-bedrock/src/L2/FeeSplitter.sol @@ -18,8 +18,8 @@ import { Initializable } from "@openzeppelin/contracts-upgradeable/proxy/utils/I /// @custom:proxied /// @custom:predeploy 0x420000000000000000000000000000000000002B /// @title FeeSplitter -/// @notice Withdraws funds from system FeeVault contracts, sends Optimism their revenue share, and -/// sends the remaining funds to the fee router. +/// @notice Withdraws funds from system FeeVault contracts and distributes them according to the +/// configured SharesCalculator. contract FeeSplitter is ISemver, Initializable { /// @notice Thrown when the fee disbursement interval exceeds the maximum allowed. error FeeSplitter_ExceedsMaxFeeDisbursementTime(); @@ -62,6 +62,7 @@ contract FeeSplitter is ISemver, Initializable { bytes32 internal constant _FEE_SPLITTER_IS_DISBURSING_SLOT = 0xe3007e9730850b5618eacb0537bef0cf0f1600267ae8549e472449d77b731e45; + /// @notice Semantic version. /// @custom:semver 1.0.0 string public constant version = "1.0.0"; diff --git a/packages/contracts-bedrock/src/L2/FeeVault.sol b/packages/contracts-bedrock/src/L2/FeeVault.sol index 0e2259123ff..9f040f07150 100644 --- a/packages/contracts-bedrock/src/L2/FeeVault.sol +++ b/packages/contracts-bedrock/src/L2/FeeVault.sol @@ -39,6 +39,7 @@ abstract contract FeeVault is Initializable { /// @notice Reserve extra slots in the storage layout for future upgrades, 50 in total. uint256[46] private __gap; + /// @custom:legacy /// @notice Emitted each time a withdrawal occurs. This event will be deprecated /// in favor of the Withdrawal event containing the WithdrawalNetwork parameter. /// @param value Amount that was withdrawn (in wei). @@ -167,27 +168,27 @@ abstract contract FeeVault is Initializable { } } + /// @custom:legacy /// @notice Minimum balance before a withdrawal can be triggered. /// Use the `minWithdrawalAmount()` getter as this is deprecated /// and is subject to be removed in the future. - /// @custom:legacy function MIN_WITHDRAWAL_AMOUNT() public view returns (uint256) { return minWithdrawalAmount; } + /// @custom:legacy /// @notice Account that will receive the fees. Can be located on L1 or L2. /// Use the `recipient()` getter as this is deprecated /// and is subject to be removed in the future. - /// @custom:legacy /// @return The recipient address. function RECIPIENT() public view returns (address) { return recipient; } + /// @custom:legacy /// @notice Network which the recipient will receive fees on. /// Use the `withdrawalNetwork()` getter as this is deprecated /// and is subject to be removed in the future. - /// @custom:legacy function WITHDRAWAL_NETWORK() public view returns (Types.WithdrawalNetwork) { return withdrawalNetwork; } diff --git a/packages/contracts-bedrock/src/L2/SuperchainRevSharesCalculator.sol b/packages/contracts-bedrock/src/L2/SuperchainRevSharesCalculator.sol index ff3ec4f33f0..7270140a34f 100644 --- a/packages/contracts-bedrock/src/L2/SuperchainRevSharesCalculator.sol +++ b/packages/contracts-bedrock/src/L2/SuperchainRevSharesCalculator.sol @@ -12,7 +12,7 @@ import { ISharesCalculator } from "interfaces/L2/ISharesCalculator.sol"; /// @title SuperchainRevSharesCalculator /// @notice Calculator for Superchain revenue share. It pays the greater amount between 2.5% of /// gross revenue or 15% of net revenue (gross minus L1 fees) to the configured share recipient. -/// The second configured recipient receives the full remainder via FeeSplitter's remainder send. +/// The second configured recipient receives the remaining revenue. contract SuperchainRevSharesCalculator is ISemver, ISharesCalculator { /// @notice Emitted when the share recipient is updated. /// @param oldShareRecipient The old share recipient address. @@ -30,6 +30,7 @@ contract SuperchainRevSharesCalculator is ISemver, ISharesCalculator { /// @notice Thrown when the gross share is zero. error SharesCalculator_ZeroGrossShare(); + /// @notice Semantic version. /// @custom:semver 1.0.0 string public constant version = "1.0.0";