I'm Sorry is a safe flashloan contract that solves the impermanent loss problem posed by current flashloan architectures.
Flashloans allow MEV searchers to exploit onchain arbitrage opportunities by borrowing tokens, doing some arbitrage, and returning the full amount of borrowed tokens to the liquidity pool from which they were borrowed before completing the transaction, plus a fee. The atomic property of EVM transactions enables protocols like Uniswap to provide flashloans without risk of loss of funds from the pool, however impermanent loss remains possible under the existing architecture.
In "I'm Sorry," we propose a contract that enables flashloans over liquidity pools of only one token: ETH. This design allows LPs to earn ETH flashloan fees without any risk of impermanent loss. This same architecture could also be applied to any ERC-20.
We use Foundry to create a single smart contract that is an ETH liquidity pool that supports flashloans, for a competitive fee, with no risk of impermanent loss for the liquidity providers. The contract is straightforward and self-contained. The contract does not have any imports.