Skip to content

Commit b09e0c0

Browse files
Merge branch 'fix-approval' into scripts
2 parents 7847d8d + a3349f2 commit b09e0c0

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/EulerSwap.sol

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
// SPDX-License-Identifier: UNLICENSED
22
pragma solidity ^0.8.27;
33

4+
import {SafeERC20, IERC20} from "openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol";
45
import {IEVC} from "evc/interfaces/IEthereumVaultConnector.sol";
5-
import {IEVault, IERC20, IBorrowing, IERC4626, IRiskManager} from "evk/EVault/IEVault.sol";
6+
import {IEVault, IBorrowing, IERC4626, IRiskManager} from "evk/EVault/IEVault.sol";
67
import {IUniswapV2Callee} from "./interfaces/IUniswapV2Callee.sol";
78
import {IEulerSwap} from "./interfaces/IEulerSwap.sol";
89
import {IAllowanceTransfer} from "permit2/src/interfaces/IAllowanceTransfer.sol";
910
import {EVCUtil} from "evc/utils/EVCUtil.sol";
1011

1112
contract EulerSwap is IEulerSwap, EVCUtil {
13+
using SafeERC20 for IERC20;
14+
1215
bytes32 public constant curve = keccak256("EulerSwap v1");
1316

1417
address public immutable vault0;
@@ -154,17 +157,17 @@ contract EulerSwap is IEulerSwap, EVCUtil {
154157

155158
address permit2 = IEVault(vault0).permit2Address();
156159
if (permit2 == address(0)) {
157-
IERC20(asset0).approve(vault0, type(uint256).max);
160+
IERC20(asset0).forceApprove(vault0, type(uint256).max);
158161
} else {
159-
IERC20(asset0).approve(permit2, type(uint256).max);
162+
IERC20(asset0).forceApprove(permit2, type(uint256).max);
160163
IAllowanceTransfer(permit2).approve(asset0, vault0, type(uint160).max, type(uint48).max);
161164
}
162165

163166
permit2 = IEVault(vault1).permit2Address();
164167
if (permit2 == address(0)) {
165-
IERC20(asset1).approve(vault1, type(uint256).max);
168+
IERC20(asset1).forceApprove(vault1, type(uint256).max);
166169
} else {
167-
IERC20(asset1).approve(permit2, type(uint256).max);
170+
IERC20(asset1).forceApprove(permit2, type(uint256).max);
168171
IAllowanceTransfer(permit2).approve(asset1, vault1, type(uint160).max, type(uint48).max);
169172
}
170173

0 commit comments

Comments
 (0)