28 lines
1,020 B
Solidity
28 lines
1,020 B
Solidity
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||
|
|
pragma solidity ^0.8.19;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @title MockLiquidityManagerPositions
|
||
|
|
* @notice Mock LiquidityManager for testing utilizationRate (slot 6) normalization in Optimizer.
|
||
|
|
* @dev Exposes positions(uint8) matching ThreePositionStrategy's public mapping getter.
|
||
|
|
* Stage enum: FLOOR=0, ANCHOR=1, DISCOVERY=2.
|
||
|
|
*/
|
||
|
|
contract MockLiquidityManagerPositions {
|
||
|
|
struct TokenPosition {
|
||
|
|
uint128 liquidity;
|
||
|
|
int24 tickLower;
|
||
|
|
int24 tickUpper;
|
||
|
|
}
|
||
|
|
|
||
|
|
mapping(uint8 => TokenPosition) private _positions;
|
||
|
|
|
||
|
|
function setPosition(uint8 stage, uint128 liquidity, int24 tickLower, int24 tickUpper) external {
|
||
|
|
_positions[stage] = TokenPosition({ liquidity: liquidity, tickLower: tickLower, tickUpper: tickUpper });
|
||
|
|
}
|
||
|
|
|
||
|
|
function positions(uint8 stage) external view returns (uint128 liquidity, int24 tickLower, int24 tickUpper) {
|
||
|
|
TokenPosition storage p = _positions[stage];
|
||
|
|
return (p.liquidity, p.tickLower, p.tickUpper);
|
||
|
|
}
|
||
|
|
}
|