Assalamo Aleikum @Mufti_Billal @Mufti_Faraz_Adam
Flash loans is away to get loan from a defi protocol and pay it back on the same transaction
some protocols like uniswap charges liquidity pool fees as if you done a normal swap
is it shariha compliance or not?
Flash swaps are an integral feature of Uniswap V2. In fact, under the hood, all swaps are actually flash swaps! This simply means that pair contracts send output tokens to the recipient before enforcing that enough input tokens have been received. This is slightly atypical, as one might expect a pair to ensure it’s received payment before delivery. However, because Ethereum transactions are atomic, we can roll back the entire swap if it turns out that the contract hasn’t received enough tokens to make itself whole by the end of the transaction.
In the case where the token withdrawn is the same as the token returned (i.e. DAI was requested in the flash swap, used, then returned, or vice versa with WETH), the following condition must be satisfied:
DAIReservePre - DAIWithdrawn + (DAIReturned * .997) >= DAIReservePre
It may be more intuitive to rewrite this formula in terms of a “fee” levied on the withdrawn amount (despite the fact that Uniswap always levies fees on input amounts, in this case the returned amount, here we can simplify to an effective fee on the withdrawn amount). If we rearrange, the formula looks like:
(DAIReturned * .997) - DAIWithdrawn >= 0
DAIReturned >= DAIWithdrawn / .997
So, the effective fee on the withdrawn amount is
.003 / .997 ≈ 0.3009027%.