A variable name in the SmartVaultManager contract is confusing.
It lets the user think that the SmartVault liquidated funds are sent to the Protocol multisig
but those should be sent to the LiquidationPoolManager.
The variable naming can be really confusing for users.
@@ -18,7 +18,7 @@ contract SmartVaultManagerV5 is ISmartVaultManager, ISmartVaultManagerV2, Initia
uint256 public constant HUNDRED_PC = 1e5;
- address public protocol;
+ address public liquidationManager;
address public liquidator;
address public euros;
uint256 public collateralRate;
@@ -100,6 +100,10 @@ contract SmartVaultManagerV5 is ISmartVaultManager, ISmartVaultManagerV2, Initia
return lastToken;
}
+ function protocol() external view returns (address) {
+ return liquidationManager;
+ }
+
function setMintFeeRate(uint256 _rate) external onlyOwner {
mintFeeRate = _rate;
function liquidateERC20(IERC20 _token) private {
- if (_token.balanceOf(address(this)) != 0) _token.safeTransfer(ISmartVaultManagerV3(manager).protocol(), _token.balanceOf(address(this)));
+ if (_token.balanceOf(address(this)) != 0) _token.safeTransfer(ISmartVaultManagerV3(manager).liquidationManager(), _token.balanceOf(address(this)));
}
function liquidate() external onlyVaultManager {
@@ -162,7 +162,7 @@ contract SmartVaultV3 is ISmartVault {
require(fullyCollateralised(_amount + fee), UNDER_COLL);
minted = minted + _amount + fee;
EUROs.mint(_to, _amount);
- EUROs.mint(ISmartVaultManagerV3(manager).protocol(), fee);
+ EUROs.mint(ISmartVaultManagerV3(manager).liquidationManager(), fee);
emit EUROsMinted(_to, _amount, fee);
}
@@ -170,7 +170,7 @@ contract SmartVaultV3 is ISmartVault {
uint256 fee = _amount * ISmartVaultManagerV3(manager).burnFeeRate() / ISmartVaultManagerV3(manager).HUNDRED_PC();
minted = minted - _amount;
EUROs.burn(msg.sender, _amount);
- IERC20(address(EUROs)).safeTransferFrom(msg.sender, ISmartVaultManagerV3(manager).protocol(), fee);
+ IERC20(address(EUROs)).safeTransferFrom(msg.sender, ISmartVaultManagerV3(manager).liquidationManager(), fee);
emit EUROsBurned(_amount, fee);
}
@@ -188,13 +188,13 @@ contract SmartVaultV3 is ISmartVault {
}
function executeNativeSwapAndFee(ISwapRouter.ExactInputSingleParams memory _params, uint256 _swapFee) private {
- (bool sent,) = payable(ISmartVaultManagerV3(manager).protocol()).call{value: _swapFee}("");
+ (bool sent,) = payable(ISmartVaultManagerV3(manager).liquidationManager()).call{value: _swapFee}("");
require(sent, "err-swap-fee-native");
ISwapRouter(ISmartVaultManagerV3(manager).swapRouter2()).exactInputSingle{value: _params.amountIn}(_params);
}
function executeERC20SwapAndFee(ISwapRouter.ExactInputSingleParams memory _params, uint256 _swapFee) private {
- IERC20(_params.tokenIn).safeTransfer(ISmartVaultManagerV3(manager).protocol(), _swapFee);
+ IERC20(_params.tokenIn).safeTransfer(ISmartVaultManagerV3(manager).liquidationManager(), _swapFee);
IERC20(_params.tokenIn).safeApprove(ISmartVaultManagerV3(manager).swapRouter2(), _params.amountIn);
ISwapRouter(ISmartVaultManagerV3(manager).swapRouter2()).exactInputSingle(_params);
IWETH weth = IWETH(ISmartVaultManagerV3(manager).weth());