fix: add symmetric InvalidAddress guard to setLiquidityManager (#935)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
openhands 2026-03-18 09:45:43 +00:00
parent 4c1a3940ec
commit ee867b256e
2 changed files with 9 additions and 0 deletions

View file

@ -69,6 +69,7 @@ contract Kraiken is ERC20, ERC20Permit {
function setLiquidityManager(address liquidityManager_) external {
require(msg.sender == deployer, "only deployer");
if (address(0) == liquidityManager_) revert ZeroAddressInSetter();
if (liquidityManager_ == stakingPool) revert InvalidAddress();
if (liquidityManager != address(0)) revert AddressAlreadySet();
liquidityManager = liquidityManager_;
}

View file

@ -187,6 +187,14 @@ contract KraikenTest is Test {
kraiken.setLiquidityManager(makeAddr("anotherLiquidityManager"));
}
function testSetLiquidityManagerRejectsStakingPool() public {
Kraiken freshKraiken = new Kraiken("KRAIKEN", "KRK");
address sp = makeAddr("stakingPool");
freshKraiken.setStakingPool(sp);
vm.expectRevert(Kraiken.InvalidAddress.selector);
freshKraiken.setLiquidityManager(sp);
}
function testSetLiquidityManagerOnlyDeployer() public {
Kraiken freshKraiken = new Kraiken("KRAIKEN", "KRK");
address nonDeployer = makeAddr("nonDeployer");