File tree Expand file tree Collapse file tree 2 files changed +10
-8
lines changed Expand file tree Collapse file tree 2 files changed +10
-8
lines changed Original file line number Diff line number Diff line change 3
3
! Better revert messages when a swap cannot be satisifed due to debt-limit/utilisation/etc
4
4
* currently it's an arithmetic underflow
5
5
! Don't make quotes that would cause a swap to fail due to supply or borrow caps
6
- ! In _computeQuote() use vault.cash() method instead of token.balanceOf() otherwise donations could cause quoted swaps to fail
7
- ! In _computeQuote(), exactOut swaps should verify the *amount* (not quote) is withdrawable
8
6
* ConstantSum: incorporate price multipliers in quote methods
9
7
* natspec
10
8
* permit2 instead of regular approval: measure gas savings
Original file line number Diff line number Diff line change @@ -219,13 +219,17 @@ abstract contract MaglevBase is IMaglevBase, EVCUtil {
219
219
220
220
uint256 quote = computeQuote (amount, exactIn, asset0IsInput);
221
221
222
- require (quote <= (asset0IsInput ? reserve1 : reserve0), InsufficientReserves ());
223
- require (
224
- quote <= IERC20 (asset0IsInput ? asset1 : asset0).balanceOf (asset0IsInput ? vault1 : vault0),
225
- InsufficientCash ()
226
- );
222
+ if (exactIn) {
223
+ // if `exactIn`, `quote` is the amount of assets to buy from the AMM
224
+ require (quote <= (asset0IsInput ? reserve1 : reserve0), InsufficientReserves ());
225
+ require (quote <= IEVault (asset0IsInput ? vault1 : vault0).cash (), InsufficientCash ());
226
+ } else {
227
+ // if `!exactIn`, `amount` is the amount of assets to buy from the AMM
228
+ require (amount <= (asset0IsInput ? reserve1 : reserve0), InsufficientReserves ());
229
+ require (amount <= IEVault (asset0IsInput ? vault1 : vault0).cash (), InsufficientCash ());
230
+ }
227
231
228
- // exactOut: increase required amountIn, rounding up
232
+ // exactOut: increase required quote( amountIn) , rounding up
229
233
if (! exactIn) quote = (quote * 1e18 + (feeMultiplier - 1 )) / feeMultiplier;
230
234
231
235
return quote;
You can’t perform that action at this time.
0 commit comments