From 1b7312857938217abd88bf9ccc87bdb8115be7f7 Mon Sep 17 00:00:00 2001 From: Trevor Richard Date: Fri, 15 Mar 2024 20:50:17 +0000 Subject: [PATCH] replace double approval with OZ forceApprove --- src/PrizeVault.sol | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/PrizeVault.sol b/src/PrizeVault.sol index fafcff3..2079c3a 100644 --- a/src/PrizeVault.sol +++ b/src/PrizeVault.sol @@ -859,15 +859,11 @@ contract PrizeVault is TwabERC20, Claimable, IERC4626, ILiquidationSource, Ownab // Previously accumulated dust is swept into the yield vault along with the deposit. uint256 _assetsWithDust = _asset.balanceOf(address(this)); - _asset.approve(address(yieldVault), _assetsWithDust); + _asset.forceApprove(address(yieldVault), _assetsWithDust); // The shares are calculated and then minted directly to mitigate rounding error loss. uint256 _yieldVaultShares = yieldVault.previewDeposit(_assetsWithDust); uint256 _assetsUsed = yieldVault.mint(_yieldVaultShares, address(this)); - if (_assetsUsed != _assetsWithDust) { - // If some latent balance remains, the approval is set back to zero for weird tokens like USDT. - _asset.approve(address(yieldVault), 0); - } _mint(_receiver, _shares);