Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions op-deployer/book/src/user-guide/init.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -65,6 +66,7 @@ In production environments, you should use a more secure setup with cold-wallet
* `baseFeeVaultRecipient`
* `l1FeeVaultRecipient`
* `sequencerFeeVaultRecipient`
* `operatorFeeVaultRecipient`
* `l1ProxyAdminOwner`
* `l2ProxyAdminOwner`
* `systemConfigOwner`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
5 changes: 3 additions & 2 deletions packages/contracts-bedrock/src/L2/FeeSplitter.sol
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down Expand Up @@ -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";

Expand Down
7 changes: 4 additions & 3 deletions packages/contracts-bedrock/src/L2/FeeVault.sol
Original file line number Diff line number Diff line change
Expand Up @@ -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
Comment thread
0xDiscotech marked this conversation as resolved.
/// @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).
Expand Down Expand Up @@ -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;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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";

Expand Down