From ee867b256e5bd191a67073056e0c827fc5e81a03 Mon Sep 17 00:00:00 2001 From: openhands Date: Wed, 18 Mar 2026 09:45:43 +0000 Subject: [PATCH] fix: add symmetric InvalidAddress guard to setLiquidityManager (#935) Co-Authored-By: Claude Sonnet 4.6 --- onchain/src/Kraiken.sol | 1 + onchain/test/Kraiken.t.sol | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/onchain/src/Kraiken.sol b/onchain/src/Kraiken.sol index ea2362e..8a5efaf 100644 --- a/onchain/src/Kraiken.sol +++ b/onchain/src/Kraiken.sol @@ -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_; } diff --git a/onchain/test/Kraiken.t.sol b/onchain/test/Kraiken.t.sol index 8dc7ac0..055a092 100644 --- a/onchain/test/Kraiken.t.sol +++ b/onchain/test/Kraiken.t.sol @@ -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");