记得朋友圈看到过一句话,如果Defi是以太坊的皇冠,那么Uniswap就是这顶皇冠中的明珠。Uniswap目前已经是V2版本,相对V1,它的功能更加全面优化,然而其合约源码却并不复杂。本文为个人学习UniswapV2源码的系列记录文章。
一、无常损失介绍这个合约之前需要阐述另一个概念,那就是无常损失。什么是无常损失呢?这里有一篇文章讲述的比较简单明了,为什么自动做市商可能会亏钱?。该文章提到 :
简单来说,无常损失是指在AMM中持有代币和在你自己的钱包中持有代币之间的价值差。
当AMM中的代币价格向任何方向上发生偏离时,就会发生这种情况。偏离越大,无常损失越大。
本来笔者也打算写一篇关于无常损失的学习文章,但一还没有构思好,二这篇文章写的也不错。所以在这里推荐大家先阅读这篇文章了解无常损失,但是无常损失有一个前提条件这篇文章却没有讲清楚或者讲得很明确:
单指交易对而言,没有无常损失这个概念;只有和外部价格对照并以外部价格为标准才有无常损失这个说法。
如果已经知道无常损失,那我们就往下看。
二、ExampleSwapToPrice.sol
介绍
本合约的主要目的就是通过交易,让UniswapV2交易对里的资产价格和外部价格达成一致