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
比推快讯
更多 >>- 比特币完成第四次减半,挖矿奖励降至3.125 BTC
- 印度男子承认创建欺骗性 Coinbase 网站并窃取 950 万美元的加密货币
- 美联储金融稳定报告:持续通胀被视为最重要的金融稳定风险
- DAO组织Own the Doge购买与狗狗币原型Kabosu相关的图像版权
- 美国国税局公布1099报税草案,包括代币代码、钱包地址等内容
- 金融律师Scott Johnsson:年底前看不到现货以太坊ETF被批准的任何迹象
- Magic Eden:将于4月25日扩展至Base网络
- 距比特币第四次减半已不足8个小时,剩余49区块
- 半小时前Coinbase Institutional地址转出超150万枚UNI
- Coinbase:MNI-USD交易对已处于全面交易模式
- 今日9支现货比特币ETF减持472枚 BTC,价值约3044万美元
- Pyth Network推出MERL/USD价格源服务
- Coinbase Custody将于5月停止对Unifi Protocol DAO (UNFI) 和PlayDapp (PLA)的支持
- Polygon Staking地址转入4000万枚MATIC,价值超2700万美元
- UniSat:Runes上线7天内,etch和铸造可获得三倍积分奖励
- Telegram Wallet发布五项更新,支持用户直接向其 Telegram 联系人发送代币和 NFT
- 50 分钟前 Tether 向 Cumberland DRW 出售 9000 万枚 USDT
- MyShell推出基于EigenDA与Optimism的AI消费者L2网络,测试网将于下周上线
- BTC短线跌破64000美元
- 数字资产市场服务提供商Skynet Trading完成新一轮融资,Edessa Capital等参投
- 美股数字货币板块走高
- 路透社:美国债务负担恶化引发投资者关注比特币和黄金
- Lambda完成180万美元天使轮融资
- Runestone总成交额突破2500枚BTC
- HTX Ventures战略投资Merkle 3s Capital
- 贝莱德IBIT持仓超27.3万枚比特币
- 新加坡加密支付公司Triple-A新增PYUSD支持
- 美SEC:孙宇晨频繁赴美,美法院已具备相应管辖权
- 韩国监管机构推迟批准Crypto.com当地部门领导层变动
- 新加坡支付公司Triple-A 推出对PayPal稳定币的支持
- Base发布2024年第6轮Base建设者资助名单
- PADO与ArweaveAO合作发起可验证机密计算VCC
- 基于以太坊区块链的影视支付平台FilmChain完成280万欧元融资,Holt InterXion领投
- 企业忠诚度平台Superlogic完成760万美元战略轮融资,Amex Ventures等参投
- 俄罗斯国家杜马金融市场委员会主席:数字金融资产可能取代法定货币用于国际支付
比推专栏
更多 >>观点
项目
比推热门文章
- 比特币完成第四次减半,挖矿奖励降至3.125 BTC
- 【比推每日新闻精选】Michael Saylor今年通过出售MicroStrategy股票赚取3.7亿美元;金融律师Scott Johnsson:年底前看不到现货以太坊ETF被批准的任何迹象;美国国税局公布1099报税草案,包括代币代码、钱包地址等内容;美联储金融稳定报告:持续通胀被视为最重要的金融稳定风险
- 印度男子承认创建欺骗性 Coinbase 网站并窃取 950 万美元的加密货币
- 【比推每日市场动态】减半日来袭,大户再增持超12亿美元BTC
- 美联储金融稳定报告:持续通胀被视为最重要的金融稳定风险
- DAO组织Own the Doge购买与狗狗币原型Kabosu相关的图像版权
- 美国国税局公布1099报税草案,包括代币代码、钱包地址等内容
- 金融律师Scott Johnsson:年底前看不到现货以太坊ETF被批准的任何迹象
- Magic Eden:将于4月25日扩展至Base网络
- 距比特币第四次减半已不足8个小时,剩余49区块