@@ -16,19 +16,16 @@ contract EulerSwap is IEulerSwap, EVCUtil {
1616
1717 bytes32 public constant curve = bytes32 ("EulerSwap v1 " );
1818
19- uint256 public constant protocolFee = 0.1e18 ;
20- address public constant protocolFeeRecipient = address (0 );
21-
2219 address public immutable vault0;
2320 address public immutable vault1;
2421 address public immutable asset0;
2522 address public immutable asset1;
2623 address public immutable eulerAccount;
2724 uint112 public immutable equilibriumReserve0;
2825 uint112 public immutable equilibriumReserve1;
29- uint256 public immutable feeMultiplier ;
30- uint256 private immutable feeMultiplierProtocol ;
31- uint256 private immutable feeMultiplierLP ;
26+ uint256 public immutable fee ;
27+ uint256 public immutable protocolFee ;
28+ address public immutable protocolFeeRecipient ;
3229
3330 uint256 public immutable priceX;
3431 uint256 public immutable priceY;
@@ -88,9 +85,9 @@ contract EulerSwap is IEulerSwap, EVCUtil {
8885 equilibriumReserve1 = params.equilibriumReserve1;
8986 reserve0 = params.currReserve0;
9087 reserve1 = params.currReserve1;
91- feeMultiplier = 1e18 - params.fee;
92- feeMultiplierProtocol = 1e18 - (params.fee * protocolFee / 1e18 ) ;
93- feeMultiplierLP = feeMultiplier * 1e18 / feeMultiplierProtocol ;
88+ fee = params.fee;
89+ protocolFee = 0. 1e18 ;
90+ protocolFeeRecipient = address ( 0 ) ;
9491
9592 // Curve params
9693
@@ -226,10 +223,16 @@ contract EulerSwap is IEulerSwap, EVCUtil {
226223 uint256 amount = IERC20 (asset).balanceOf (address (this ));
227224 if (amount == 0 ) return 0 ;
228225
226+ uint256 feeAmount = amount * fee / 1e18 ;
227+
229228 {
230- uint256 feeAmount = amount - (amount * feeMultiplierProtocol / 1e18 );
231- IERC20 (asset).transfer (protocolFeeRecipient, feeAmount);
232- amount -= feeAmount;
229+ uint256 protocolFeeAmount = feeAmount * protocolFee / 1e18 ;
230+
231+ if (protocolFeeAmount != 0 ) {
232+ IERC20 (asset).transfer (protocolFeeRecipient, protocolFeeAmount);
233+ amount -= protocolFeeAmount;
234+ feeAmount -= protocolFeeAmount;
235+ }
233236 }
234237
235238 uint256 deposited;
@@ -257,7 +260,7 @@ contract EulerSwap is IEulerSwap, EVCUtil {
257260 deposited += amount;
258261 }
259262
260- return ( deposited * feeMultiplierLP + ( 1e18 - 1 )) / 1e18 ;
263+ return deposited > feeAmount ? deposited - feeAmount : 0 ;
261264 }
262265
263266 /// @notice Approves tokens for a given vault, supporting both standard approvals and permit2
0 commit comments