>>30318827
Uniswap has been hard-coded so that whenever you swap any two tokens, you are getting routed ONLY through WETH, DAI, USDC, USDT, COMP and MKR.
This results in a price disparity between the different pairs which allows vampiric "arbitrage" bots to swoop in and extract ETH from liquidity pairs. Do note that this is not "typical" arbitrage, this arbitrage comes from the fact that users are getting routed through sub-optimal coin routes, which means the profit that the bots receive comes from the fact that Uniswap users are getting overcharged, i.e you pay more money than you would have paid for the same amount of coins had you gone through the optimal route.
Example:
https://etherscan.io/tx/0xafc8a6262e36ed236f3992e152d5367a767530d8a8b1b33e7dd61c34a7d55fa5
For this transaction, a drainer bot exploits such an unnatural price disparity to triangularly arbitrage the $BUIDL-$UniFi pair:
First, it uses ETH to buy UniFi via Uniswap’s ETH-UniFi pool.
In this pool, the price of 1 UniFi = ~0.00114 ETH.
(2.304 ETH / 2,020 UniFi = ~0.00114 ETH)
With 2.304 ETH, it buys ~2,020 UniFi.
Then, it sells that UniFi for BUIDL via Uniswap’s UniFi-BUIDL pool.
In this pool, the price of 1 BUIDL = ~2.83 UniFi.
(713 buidl / 2,020 UniFi = 2.83)
Here, because of Uniswap’s exclusionary routing mechanism, the price of UniFi is lagging. Thus, it is relatively more valuable, and the bot is able to buy more BUIDL with it than had it done so directly with ETH via the ETH-BUIDL pool.
With ~2,020 UniFi, it buys ~713 BUIDL; if prices were properly synced, it would have only got 667.
Finally, it sells that BUIDL for ETH via Uniswap’s ETH-BUIDL pool.
In this pool, the price of 1 ETH = ~0.0034 BUIDL. (713 BUIDL / 2.458 ETH = ~.00344)
With ~713 BUIDL, it buys ~2.46 ETH.
This is a ~0.16 profit in ETH.
The bot has drained the equivalent of 0.16 ETH from the BUIDL and UniFi liquidity pools.
Don't think they aren't aware of this, FYI.