Skip to content

Commit b093fe2

Browse files
fix _computeQuote
1 parent f980ee9 commit b093fe2

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

src/MaglevBase.sol

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -199,10 +199,17 @@ abstract contract MaglevBase is IMaglevBase, EVCUtil {
199199

200200
uint256 quote = computeQuote(amount, exactIn, asset0IsInput);
201201

202-
require(quote <= (asset0IsInput ? reserve1 : reserve0), InsufficientReserves());
203-
require(quote <= IEVault(asset0IsInput ? vault1 : vault0).cash(), InsufficientCash());
202+
if (exactIn) {
203+
// if `exactIn`, `quote` is the amount of assets to buy from the AMM
204+
require(quote <= (asset0IsInput ? reserve1 : reserve0), InsufficientReserves());
205+
require(quote <= IEVault(asset0IsInput ? vault1 : vault0).cash(), InsufficientCash());
206+
} else {
207+
// if `!exactIn`, `amount` is the amount of assets to buy from the AMM
208+
require(amount <= (asset0IsInput ? reserve1 : reserve0), InsufficientReserves());
209+
require(amount <= IEVault(asset0IsInput ? vault1 : vault0).cash(), InsufficientCash());
210+
}
204211

205-
// exactOut: increase required amountIn, rounding up
212+
// exactOut: increase required quote(amountIn), rounding up
206213
if (!exactIn) quote = (quote * 1e18 + (feeMultiplier - 1)) / feeMultiplier;
207214

208215
return quote;

0 commit comments

Comments
 (0)