2025-08-19 11:41:02 +02:00
|
|
|
// 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;
|
2025-10-04 15:17:09 +02:00
|
|
|
|
2025-08-19 11:41:02 +02:00
|
|
|
/**
|
|
|
|
|
* @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;
|
|
|
|
|
}
|
2025-10-04 15:17:09 +02:00
|
|
|
|
2025-08-19 11:41:02 +02:00
|
|
|
/**
|
|
|
|
|
* @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;
|
|
|
|
|
}
|
2025-10-04 15:17:09 +02:00
|
|
|
|
2025-08-19 11:41:02 +02:00
|
|
|
/**
|
|
|
|
|
* @notice Returns the mocked percentage staked
|
|
|
|
|
* @return percentageStaked A number between 0 and 1e18
|
|
|
|
|
*/
|
|
|
|
|
function getPercentageStaked() external view returns (uint256) {
|
|
|
|
|
return _percentageStaked;
|
|
|
|
|
}
|
2025-10-04 15:17:09 +02:00
|
|
|
|
2025-08-19 11:41:02 +02:00
|
|
|
/**
|
|
|
|
|
* @notice Returns the mocked average tax rate
|
|
|
|
|
* @return averageTaxRate A number between 0 and 1e18
|
|
|
|
|
*/
|
|
|
|
|
function getAverageTaxRate() external view returns (uint256) {
|
|
|
|
|
return _averageTaxRate;
|
|
|
|
|
}
|
2025-10-04 15:17:09 +02:00
|
|
|
}
|