// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity ^0.8.19; /** * @title MockStake * @notice Mock implementation of Stake contract for testing Optimizer * @dev Allows setting percentageStaked and averageTaxRate for testing different scenarios */ contract MockStake { uint256 private _percentageStaked; uint256 private _averageTaxRate; /** * @notice Set the percentage staked for testing * @param percentage Value between 0 and 1e18 */ function setPercentageStaked(uint256 percentage) external { require(percentage <= 1e18, "Percentage too high"); _percentageStaked = percentage; } /** * @notice Set the average tax rate for testing * @param rate Value between 0 and 1e18 */ function setAverageTaxRate(uint256 rate) external { require(rate <= 1e18, "Rate too high"); _averageTaxRate = rate; } /** * @notice Returns the mocked percentage staked * @return percentageStaked A number between 0 and 1e18 */ function getPercentageStaked() external view returns (uint256) { return _percentageStaked; } /** * @notice Returns the mocked average tax rate * @return averageTaxRate A number between 0 and 1e18 */ function getAverageTaxRate() external view returns (uint256) { return _averageTaxRate; } }