From 69c628049507799e621f13356a38265e0d6cd09d Mon Sep 17 00:00:00 2001 From: Jeff Wu Date: Thu, 8 Aug 2024 13:24:27 -0700 Subject: [PATCH] fix: sherlock-audit/2024-06-leveraged-vaults-judging#72 --- contracts/vaults/staking/BaseStakingVault.sol | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/contracts/vaults/staking/BaseStakingVault.sol b/contracts/vaults/staking/BaseStakingVault.sol index 6dbc32e4..cdc3eced 100644 --- a/contracts/vaults/staking/BaseStakingVault.sol +++ b/contracts/vaults/staking/BaseStakingVault.sol @@ -10,6 +10,7 @@ import {WithdrawRequestBase, WithdrawRequest, SplitWithdrawRequest} from "../com import {BaseStrategyVault, IERC20, NotionalProxy} from "../common/BaseStrategyVault.sol"; import {ITradingModule, Trade, TradeType} from "@interfaces/trading/ITradingModule.sol"; import {VaultAccountHealthFactors} from "@interfaces/notional/IVaultController.sol"; +import {ClonedCoolDownHolder} from "@contracts/vaults/staking/protocols/ClonedCoolDownHolder.sol"; struct RedeemParams { uint8 dexId; @@ -267,4 +268,10 @@ abstract contract BaseStakingVault is WithdrawRequestBase, BaseStrategyVault { function finalizeWithdrawsManual(address account) external { return _finalizeWithdrawsManual(account); } + + function rescueTokens( + address cooldownHolder, IERC20 token, address receiver, uint256 amount + ) external onlyRole(EMERGENCY_EXIT_ROLE) { + ClonedCoolDownHolder(cooldownHolder).rescueTokens(token, receiver, amount); + } } \ No newline at end of file