Open 0xdcota opened 1 year ago
An additional check can be added to swappers so that sandwich attacks are not possible or mitigated.
At the time of performing a ISwapper-swap call, the function should check if price expected is close near an external (trusted) oracle source.
Refer to implementation here
uint256 priceFromSwapper = (_collateralAmount * (10**uint256(_borrowAssetDecimals))) / _amountToReceive; uint256 priceFromOracle = _oracle.getPriceOf( _collateralAsset, _borrowAsset, _collateralAssetDecimals ); uint256 priceDelta = priceFromSwapper > priceFromOracle ? priceFromSwapper - priceFromOracle : priceFromOracle - priceFromSwapper; require( (priceDelta * SLIPPAGE_LIMIT_DENOMINATOR) / priceFromOracle < SLIPPAGE_LIMIT_NUMERATOR, Errors.VL_SWAP_SLIPPAGE_LIMIT_EXCEED );
An additional check can be added to swappers so that sandwich attacks are not possible or mitigated.
At the time of performing a ISwapper-swap call, the function should check if price expected is close near an external (trusted) oracle source.
Refer to implementation here