harb/onchain/test/mocks/MockStake.sol

47 lines
1.3 KiB
Solidity
Raw Normal View History

// 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;
}
}