记得朋友圈看到过一句话,如果Defi是以太坊的皇冠,那么Uniswap就是这顶皇冠中的明珠。Uniswap目前已经是V2版本,相对V1,它的功能更加全面优化,然而其合约源码却并不复杂。本文为个人学习UniswapV2源码的系列记录文章。
UniswapV2的周边合约主要用做外部账号和核心合约之间的桥梁,也就是用户 => 周边合约 => 核心合约。UniswapV2周边合约主要包含接口定义,工具库、Router和示例实现这四部分, 这次我们先来学习它的工具库。
UniswapV2周边合约的工具库包含两个部分,一部分是直接写在项目里的,有三个合约:SafeMath
,UniswapV2Library
和UniswapV2OracleLibrary
。另外一部分是Node.js依赖库,需要使用yarn
安装的,也包含几个库。这其中SafeMath
就是简单的防溢出库,在前面的系列学习中已经讲过,这里不再学习研究。
建议读者在开始学习之前阅读我的另一篇文章:UniswapV2介绍 来对UniswapV2的整体机制有个大致了解,这样更有助于理解源码。
一、UniswapV2Library
1.1、源码
该库的源码也只有82行,相对比较简单,照例先贴源码: