@@ -13,12 +13,14 @@ import {MaglevEulerSwap as Maglev} from "../src/MaglevEulerSwap.sol";
13
13
contract EulerSwapTest is MaglevTestBase {
14
14
Maglev public maglev;
15
15
16
+ uint256 minFee = 0.0000000000001e18 ;
17
+
16
18
function setUp () public virtual override {
17
19
super .setUp ();
18
20
19
21
vm.prank (owner);
20
22
maglev = new Maglev (
21
- _getMaglevBaseParams (), Maglev.EulerSwapParams ({px: 1e18 , py: 1e18 , cx: 0.4e18 , cy: 0.85e18 , fee: 0 })
23
+ _getMaglevBaseParams (), Maglev.EulerSwapParams ({px: 1e18 , py: 1e18 , cx: 0.4e18 , cy: 0.85e18 , fee: minFee })
22
24
);
23
25
24
26
vm.prank (holder);
@@ -67,7 +69,7 @@ contract EulerSwapTest is MaglevTestBase {
67
69
int256 origNAV = getHolderNAV ();
68
70
69
71
vm.prank (owner);
70
- maglev.setEulerSwapParams (Maglev.EulerSwapParams ({px: px, py: py, cx: 0.4e18 , cy: 0.85e18 , fee: 0 }));
72
+ maglev.setEulerSwapParams (Maglev.EulerSwapParams ({px: px, py: py, cx: 0.4e18 , cy: 0.85e18 , fee: minFee }));
71
73
72
74
uint256 amountIn = 1e18 ;
73
75
uint256 amountOut = maglev.quoteExactInput (address (assetTST), address (assetTST2), amountIn);
@@ -120,7 +122,7 @@ contract EulerSwapTest is MaglevTestBase {
120
122
oracle.setPrice (address (assetTST), unitOfAccount, price);
121
123
122
124
vm.prank (owner);
123
- maglev.setEulerSwapParams (Maglev.EulerSwapParams ({px: px, py: py, cx: cx, cy: cy, fee: 0 }));
125
+ maglev.setEulerSwapParams (Maglev.EulerSwapParams ({px: px, py: py, cx: cx, cy: cy, fee: minFee }));
124
126
125
127
int256 origNAV = getHolderNAV ();
126
128
@@ -147,4 +149,19 @@ contract EulerSwapTest is MaglevTestBase {
147
149
148
150
assertGe (getHolderNAV (), origNAV);
149
151
}
152
+
153
+ function test_roundingFailure () public {
154
+ vm.skip (true );
155
+
156
+ vm.prank (owner);
157
+ maglev.setEulerSwapParams (Maglev.EulerSwapParams ({px: 1e18 , py: 1e18 , cx: 0.4e18 , cy: 0.85e18 , fee: 0 }));
158
+
159
+ uint256 amountIn = 1.4e18 ;
160
+ uint256 amountOut = maglev.quoteExactInput (address (assetTST), address (assetTST2), amountIn);
161
+
162
+ assetTST.mint (address (this ), amountIn);
163
+ assetTST.transfer (address (maglev), amountIn);
164
+ maglev.swap (0 , amountOut, address (this ), "" );
165
+ assertEq (assetTST2.balanceOf (address (this )), amountOut);
166
+ }
150
167
}
0 commit comments