harb/onchain/test/mocks/ConfigurableOptimizer.sol
openhands 21857ae8ca feat: protocol stats display + parameter sweep fuzzing infrastructure (#106)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 18:09:11 +00:00

45 lines
1.7 KiB
Solidity

// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity ^0.8.19;
/// @title ConfigurableOptimizer
/// @notice Optimizer mock with directly settable parameters for parameter sweep fuzzing
/// @dev Parameters are set via constructor or setter, not environment variables (Solidity can't read env)
contract ConfigurableOptimizer {
uint256 private _capitalInefficiency;
uint256 private _anchorShare;
uint24 private _anchorWidth;
uint256 private _discoveryDepth;
constructor(uint256 capitalInefficiency_, uint256 anchorShare_, uint24 anchorWidth_, uint256 discoveryDepth_) {
_capitalInefficiency = capitalInefficiency_;
_anchorShare = anchorShare_;
_anchorWidth = anchorWidth_;
_discoveryDepth = discoveryDepth_;
}
function setParams(uint256 capitalInefficiency_, uint256 anchorShare_, uint24 anchorWidth_, uint256 discoveryDepth_) external {
_capitalInefficiency = capitalInefficiency_;
_anchorShare = anchorShare_;
_anchorWidth = anchorWidth_;
_discoveryDepth = discoveryDepth_;
}
function calculateSentiment(uint256, uint256) public pure returns (uint256) {
return 0;
}
function getSentiment() external pure returns (uint256) {
return 0;
}
function getLiquidityParams() external view returns (uint256 capitalInefficiency, uint256 anchorShare, uint24 anchorWidth, uint256 discoveryDepth) {
capitalInefficiency = _capitalInefficiency;
anchorShare = _anchorShare;
anchorWidth = _anchorWidth;
discoveryDepth = _discoveryDepth;
}
function getDescription() external pure returns (string memory) {
return "Configurable Optimizer (Parameter Sweep)";
}
}