uniswap 代码由两个部分组成:v2-core & v2-periphery
Uniswap协议的思想是reserve0*reserve1的乘积不变。
无常损失发生在币价波动,两种币价背离越多,损失越大。
造成无常损失的原因是因为,流动池无法做到价格同步,价格同步是通过市场投机者套利实现的。举例:当A、B池有交易对a、b时,A池的a价格低于B池的a价格,投资者会买入B池中的a卖到B池套利,B池中的流动性提供者就蒙受了损失。
也就是所谓的核心代码,主要是创建交易对的逻辑,和交易对参数的设置。单个swap的逻辑。单个swap,两种代币形成的交易对,俗称“池子”。
core有三个合约:
LP代币合约,本质上就是一个ERC20,实现了ERC20的全部功能之外和一般的ERC20不同的地方在于有一个permit方法,可以允许离线生成签名,签名给第三方进行交易,并且交易产生的gas由第三方支付。
创建交易对
添加流动性和移除流动性的基础方法mint和burn
periphery偏外围服务,在交易对的基础上构建服务。