UniswapV2核心合约学习(1)— UniswapV2Factory.sol_AiMateZero的博客-程序员秘密

技术标签: UniswapV2从零到精通  

记得朋友圈看到过一句话,如果Defi是以太坊的皇冠,那么Uniswap就是这顶皇冠中的明珠。Uniswap目前已经是V2版本,相对V1,它的功能更加全面优化,然而其合约源码却并不复杂。本文为个人学习UniswapV2源码的系列记录。

一、UniswapV2合约简要介绍

UniswapV2合约分为核心合约和周边合约,均使用Solidity语言编写。其核心合约实现了UniswapV2的完整功能(创建交易对,流动性供给,交易代币,价格预言机等),但对用户操作不友好;而周边合约是用来让用户更方便的和核心合约交互。

UniswapV2核心合约主要由factory合约(UniswapV2Factory.sol)、交易对模板合约(UniswapV2Pair.sol)及辅助工具库与接口定义等三部分组成。这次先学习UniswapV2Factory合约。

二、UniswapV2Factory合约源码一览

其文件名为UniswapV2Factory.sol,其源码为:

pragma solidity =0.5.16;

im
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39430411/article/details/108842197

智能推荐

Python------高阶函数_python ascii_lowercase_Python0398的博客-程序员秘密

1.如何随机生成验证码,快速生成内推码import   randomimport    stringcode_str= string.ascii_letters +string.digitsprint(code_str)def   gen_code(len=4):        return   "".join (random.sampl(code_str.len)pr...

位运算操作常见技巧_按位比较_阿飞算法的博客-程序员秘密

基本的位操作与( & )每一位进行比较,两位都为1,结果为1,否则为0(-4 & 1 = 0) 1 0 0 1 1 -->(19)[10] 表示10进制中的19& 1 1 0 0 1 -->(25)[10]------------------------------ 1 0 0 0 1 -->(17)[10]或( | )每一位进行比较,两位有一位是1,结果就是1(-4 | 1 = -3) 1 0 0 1 1 -->(19)[10

android 处理程序全局异常和错误_android 全局异常_zhongchao的博客-程序员秘密

<br />本文将分析在程序出错的情况下如何收集相关的错误信息,并发送错误信息到服务器供开发者分析和调试程序。错误信息将成为您Debug的一把利刃,通过错误信息您可以最及时的掌握程序在各个系统版本和设备上的运行情况。<br /><br />错误处理介绍<br /><br />在一般情况下,OPhone程序出错都会出现一个提示对话框<br />这种情况下,用户只有点击“强行关闭”来结束程序。当该对话框出现对用户来说是相当不友好的,本文中将会告诉您如何在程序出错时不显示该对话框。<br />随着OPhone设备

BZOJ 3288: Mato矩阵_weixin_30781107的博客-程序员秘密

3288: Mato矩阵Time Limit:10 SecMemory Limit:128 MBSubmit:295Solved:224[Submit][Status][Discuss]DescriptionMato同学最近正在研究一种矩阵,这种矩阵有n行n列第i行第j列的数为gcd(i,j)。例如n=5时,矩阵如下:1 1 1 1 11 2 1 2 11 1 ...

基于linux智能家居系统设计,基于Linux的智能家居系统设计与实现_yuwennaxiansheng的博客-程序员秘密

摘要:随着经济的发展,人们开始期盼着拥有一个安全,舒适,节能和便捷的家居环境.智能家居系统通过整合计算机技术,嵌入式技术,传感器技术,网络通信技术以及自动控制技术,集中或远程监控家庭事务,集安防控制,照明控制,多媒体娱乐,网络连接等功能于一体,满足信息时代人们高品质的生活追求.智能家居系统在欧美发达国家发展比较早,技术也比较成熟,但国内的应用正处在发展阶段,有着广泛的市场,因此,对智能家居系统的研...

Mayan游戏_weixin_30908941的博客-程序员秘密

题面总而言之,四条剪枝原则:(1)交换两个颜色相同的块没有意义(2)一个块的左边是非空块时不需要考虑左移,因为会和之前的块右移重复,即只有当左块为空时才左移(3)根据题目优先度的排序,可以知道,右移优先于左移,所以在dfs时先考虑右移(4)如果有一种颜色当前的块数目x满足1&lt;=x&lt;=2,则此情况不合法#include&lt;iostream&gt;...

随便推点

restart css3 animation_xiongzhengxiang的博客-程序员秘密

一个动画完了,还想触发,怎么弄?$el.removeClass('run').addClass('run')这样做,不行。因为浏览器发现删除的和新加的是同一个通话,而浏览器不会让同一个动画多次两次。如何解决?1、触发reflow时间$el.removeClass('run');$el[0].offsetWidth = $el[0].offsetWidth;$el

POJ-1700-最快渡河(贪心)_淋雨一直走..的博客-程序员秘密

Crossing River POJ - 1700A group of N people wishes to go across a river with only one boat,which can at most carry two persons. Therefore some sort of shuttlearrangement must be arranged in order...

vue element ui中upload组件如何在form表单中校验_枫丿慕的博客-程序员秘密

采用element ui,一个表单中有上传组件upload,然后写了校验规则,当不上传图片时,会提示请上传图片,当上传图片后,提示不会消失代码如下:&amp;lt;el-form-item label=&quot;图标&quot; prop=&quot;logo&quot; required&amp;gt; &amp;lt;el-upload class=&quot;avatar-u...

java集合学习笔记--二维集合HashMap_weixin_34001430的博客-程序员秘密

2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt; ...

启动Mongo之由于目标计算机积极拒绝,无法连接--mongoDB连接错误解决办法_pycharm运行mongo时计算机积极拒绝_mayfla的博客-程序员秘密

首先,先来张图,看看亲们有没有一样的连接问题。我是遇到过两次,觉得有必要记录下来。已备将来查看。       分析原因:这是启动shell编辑器的时候出现的问题,我分析他可能是服务器连接的问题。       解决方法:在mongo安装文件中,创建一个mongo.config文件,内容如下:      如果每次启动mongo,都从cmd启动,那将是一件很麻烦的事情。使用批

python中数组、列表转字符串方法大全_山人甲的博客-程序员秘密

符串转数组str = '1,2,3'arr = str.split(',')数组转字符串arr = ['a','b']str = ','.join(arr)arr = [1,2,3]str = ','.join(str(i) for i in b)二维数组转string:anchors = centroids.copy()widths = anchors[:, 0]...