Code Review 回顾:去中心化交易所 Uniswap
这次 Code Review 的项目是去中心化交易所 Uniswap,领读员是 Tiny 熊。
视频回顾在 这里。
Uniswap 介绍
Uniswap 的核心原理利用了一个简单的常量乘积模型:K = x * y,其中 x,y 为代币数量。在交易的过程中,需要保持 K 值不变,所以 x 和 y 的变化方向是相反的。可以参考下面的三幅图来理解如何在 Uniswap 中交易和增加流动性。
代码解读
Uniswap 有两个核心的项目:
uniswap-v2-core 项目
这个项目中的代码通常不会被用户直接调用,而是被 uniswap-v2-periphery 项目中的路由合约调用,因为路由合约的接口更友好。
合约:UniswapV2Factory.sol
核心方法:
createPair:用来创建一个交易对。接收两个 token 的地址作为参数,然后调用汇编方法 create2 创建 pair,之后 调用 IUniswapV2Pair 的 initialize 方法初始化 pair。创建成功后发出 PairCreated 事件。
合约:UniswapV2Pair.sol
这个合约相当于
核心方法:
-
mint:给指定的地址 mint LP token。
-
burn:burn 掉 LP token,发送给用户对应的 token0 和 token1。
-
swap:交易。
uniswap-v2-periphery 项目
这个项目会被前端直接调用,之后会调用进 uniswap-v2-core 项目中的对应方法。
合约:UniswapV2Router02.sol
核心方法:
-
addLiquidity:提供两种 ERC-20 token,给 ERC-20⇄ERC-20 池子添加流动性
-
removeLiquidity:移除 ERC-20⇄ERC-20 池子的流动性,接收两种 ERC-20 token
-
removeLiquidityWithPermit:让用户提前签好名授权(approve)合约,这样就省去了 approve 交易,只需要一笔交易就可以完成 approve + transferFrom 的操作。
-
swapExactTokensForTokens:交易。指定发送 (in) 的 token0 数量,让合约计算得到 (out) 的 token1 数量
-
swapTokensForExactTokens:交易。指定想要得到 (out) 的 token1 数量,让合约计算需要发送 (in) 的 token0 数量
更多的关于合约方法的描述,可以参考 Uniswap 的 文档。
撰文:要飞的 Harry
比推快讯
更多 >>- 预测平台Polymarket用户押注赵长鹏的刑期将不超过一年
- 24,673枚ETH从未知钱包转移到Coinbase Institutional
- 金融科技公司 Stripe 集成 Avalanche 的 Core 钱包
- TD Cowen:Consensys 与 SEC 关于以太坊是否是证券的诉讼“将需要数年时间”
- EigenLayer 公布代币空投计划,其中 15% 分配给质押者
- EigenLayer已在 GitHub 上发布白皮书,空投或将于5月10日上线
- Kamino基金会将推出KMNO质押,质押Multiplier最高可提升至3倍
- Coinbase将在 Solana 网络上添加对Neon EVM (NEON) 的支持
- 5万枚GNO转入Gnosis Treasury钱包地址,价值超1600万美元
- 疑似孙宇晨地址再次从Binance转出8170枚ETH,约合2592万美元
- EigenLayer疑似开通Eigen Foundation官方账户
- 加密交易生态系统LazyBear完成400万USDT战略融资,DWF Labs等参投
- 美国九只现货比特币ETF今日净流出超1.4亿美元,贝莱德连续3天未增持或减持BTC
- 某巨鲸向Coinbase存入400枚BTC,若全部出售将获利215万美元
- OSL ETF及托管业务负责人:香港对以太坊早有明确定义,并不是证券
- friend.tech v2预计将推迟至5月2日发布
- 数据:第一季度Filecoin FVM TVL超过6亿美元
- 华夏基金:预计首批香港比特币现货ETF首发规模将超1.25亿美元
- Nansen:过去 30 天内,Tether、USDC 和 DAI 交易量超过 Visa 2023 年的月度平均水平
- 6个巨鲸地址在市场下跌期间抛售超4.4万枚ETH,价值约合1.4亿美元
- CONSENSYS 称 SEC 执法总监于 2023 年 3 月批准了调查以太坊的正式命令
- 美国缓刑办公室建议对CZ缓刑五个月
- FOX:美SEC主席在过去一年认定ETH为未经注册的证券
- BCB Group在法国获得数字资产和电子货币许可证
- Tether Evo战略投资Blackrock Neurotech公司2亿美元
- HKbitEX与上海技术交易所启动上技所跨境技术贸易港澳服务中心
- 欧盟10国拟推进将数字资产市场法纳入本国法律
- 华夏基金为香港首批现货加密ETF规模最大的发行方
- Web3人才网络Braintrust推出AI招聘平台AIR
- 币安在菲禁令可能有利于当地加密货币市场发展
- 某鲸鱼地址向币安存入33383枚ETH
- 加拿大总理提议对股票和加密货币征收资本利得税
- 沉睡2年的鲸鱼地址向Lido存入1300枚ETH
- Covalent已通过私人交易购入FTX破产财团持有的CQT代币
- Web3 游戏初创公司 GFAL 筹集 330 万美元种子轮融资
- 孙宇晨:预测美国SEC将在5月份拒绝以太坊ETF
- USDC上周交易量达4560亿美元超越USDT的890亿美元交易量
- Visa:Circle的USDC在稳定币交易量超越USDT
- Manta联创:参与Renew Paradigm的11个Manta生态项目将根据NFT销毁分配其总代币供应量的3%
- Jupiter LFG Launchpad第二期项目UpRock公布UPT代币公平分配路线图
- Uniswap在Taiko主网上部署Uniswap V3的提案正式通过
- 老虎证券支持首批虚拟资产现货ETF零佣金交易
- QCP Capital:经济增长放缓和通胀持续升温的滞胀组合进一步削弱美联储降息可能性
- Peter Brandt:比特币或已见顶,可能回落至3万美元
比推专栏
更多 >>- IOSG Weekly Brief|Base社交协议王国:消费者应用沉淀下的海量用户和数十亿TVL #222
- NEAR:为何AI需要Web3?Web3究竟会给AI带来什么样的颠覆式进步
- Polkadot 的未来升级方向 “JAM” 究竟是什么?
- Chainlink Labs新增战略联盟成员,本周有哪些大事件呢?|Chainlink 周报
- 比特币成长的代价
- Meta 开放 MR 系统授权,联想华硕加盟;黄仁勋:别买车,买机器人!;12306:别信!任何「加速包」都没用| 极客早知道
- 炒虚拟货币血本无归,委托人要求返还投资款,法院:损失自担!
- 终于,比特币挖开了黄金的“墙角”?
- 比特币减半完成Runes符文协议上线,前十项目都有哪些?10个工具助你打新和发现Alpha项目
- 一种估算比特币泡沫大小的科学方法
观点
项目
比推热门文章
- 预测平台Polymarket用户押注赵长鹏的刑期将不超过一年
- 24,673枚ETH从未知钱包转移到Coinbase Institutional
- 金融科技公司 Stripe 集成 Avalanche 的 Core 钱包
- TD Cowen:Consensys 与 SEC 关于以太坊是否是证券的诉讼“将需要数年时间”
- EigenLayer 公布代币空投计划,其中 15% 分配给质押者
- EigenLayer已在 GitHub 上发布白皮书,空投或将于5月10日上线
- Kamino基金会将推出KMNO质押,质押Multiplier最高可提升至3倍
- Coinbase将在 Solana 网络上添加对Neon EVM (NEON) 的支持
- 5万枚GNO转入Gnosis Treasury钱包地址,价值超1600万美元
- 疑似孙宇晨地址再次从Binance转出8170枚ETH,约合2592万美元