# uniswap V2 源码详解 **Published by:** [satoshi](https://paragraph.com/@satoshi-3/) **Published on:** 2022-01-21 **URL:** https://paragraph.com/@satoshi-3/uniswap-v2 ## Content uniswap 代码由两个部分组成:v2-core & v2-periphery Uniswap协议的思想是reserve0*reserve1的乘积不变。 无常损失发生在币价波动,两种币价背离越多,损失越大。 造成无常损失的原因是因为,流动池无法做到价格同步,价格同步是通过市场投机者套利实现的。举例:当A、B池有交易对a、b时,A池的a价格低于B池的a价格,投资者会买入B池中的a卖到B池套利,B池中的流动性提供者就蒙受了损失。 1、v2-core 也就是所谓的核心代码,主要是创建交易对的逻辑,和交易对参数的设置。单个swap的逻辑。单个swap,两种代币形成的交易对,俗称“池子”。 https://github.com/Uniswap/v2-core core有三个合约: 1.1 UniswapV2ERC20.sol LP代币合约,本质上就是一个ERC20,实现了ERC20的全部功能之外和一般的ERC20不同的地方在于有一个permit方法,可以允许离线生成签名,签名给第三方进行交易,并且交易产生的gas由第三方支付。 1.2 UniswapV2Factory.sol 创建交易对 1.3 UniswapV2Pair.sol 添加流动性和移除流动性的基础方法mint和burn 2、v2-periphery periphery偏外围服务,在交易对的基础上构建服务。 https://github.com/Uniswap/v2-periphery ## Publication Information - [satoshi](https://paragraph.com/@satoshi-3/): Publication homepage - [All Posts](https://paragraph.com/@satoshi-3/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@satoshi-3): Subscribe to updates - [Twitter](https://twitter.com/likezzzzee): Follow on Twitter