Skip to content

Commit 2fb7b07

Browse files
committed
factor duplicated approval/permit2 code
1 parent bbfa037 commit 2fb7b07

File tree

1 file changed

+11
-14
lines changed

1 file changed

+11
-14
lines changed

src/EulerSwap.sol

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -164,24 +164,21 @@ contract EulerSwap is IEulerSwap, EVCUtil {
164164
require(status != 2, Locked());
165165
status = 1;
166166

167-
address permit2 = IEVault(vault0).permit2Address();
168-
if (permit2 == address(0)) {
169-
IERC20(asset0).forceApprove(vault0, type(uint256).max);
170-
} else {
171-
IERC20(asset0).forceApprove(permit2, type(uint256).max);
172-
IAllowanceTransfer(permit2).approve(asset0, vault0, type(uint160).max, type(uint48).max);
173-
}
167+
approveVault(asset0, vault0);
168+
approveVault(asset1, vault1);
169+
170+
IEVC(evc).enableCollateral(eulerAccount, vault0);
171+
IEVC(evc).enableCollateral(eulerAccount, vault1);
172+
}
174173

175-
permit2 = IEVault(vault1).permit2Address();
174+
function approveVault(address asset, address vault) internal {
175+
address permit2 = IEVault(vault).permit2Address();
176176
if (permit2 == address(0)) {
177-
IERC20(asset1).forceApprove(vault1, type(uint256).max);
177+
IERC20(asset).forceApprove(vault, type(uint256).max);
178178
} else {
179-
IERC20(asset1).forceApprove(permit2, type(uint256).max);
180-
IAllowanceTransfer(permit2).approve(asset1, vault1, type(uint160).max, type(uint48).max);
179+
IERC20(asset).forceApprove(permit2, type(uint256).max);
180+
IAllowanceTransfer(permit2).approve(asset, vault, type(uint160).max, type(uint48).max);
181181
}
182-
183-
IEVC(evc).enableCollateral(eulerAccount, vault0);
184-
IEVC(evc).enableCollateral(eulerAccount, vault1);
185182
}
186183

187184
/// @inheritdoc IEulerSwap

0 commit comments

Comments
 (0)