File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -15,6 +15,51 @@ timezone: UTC+8
1515## Notes
1616
1717<!-- Content_START -->
18+ # 2025-08-18
19+
20+ 学习并总结了一些uniswap v2的内容:
21+
22+ ** Uniswap一些核心内容:主要来源于官方文档**
23+
24+ 1.Uniswap的交易对是任意ERC20交易对,增加流动性(提供相应的两种ERC20币)会获得流动性代币,你也可以随时使用流动性代币赎回你的ERC20代币。增加流动性会减小交易时的价格滑点。
25+
26+ 2.Uniswap采用** 恒定乘积** 自动做市,因此大额交易和小额交易相比,其执行时的比率(价格)会指数级变得更差,当然就是这样设计的。
27+
28+ 3.由于套利行为的存在,Uniswap价格始终趋向于结算价。
29+
30+ 4.交易时,Uniswap收取0.3%的手续费,支付给所有流动性提供者。这实质上会使恒定乘积的K变大。
31+
32+ 5.Uniswap生态参与者分为三类:流动性提供者,交易者,开发者。
33+ - ** 流动性提供者** 又分为四类:被动型,专业型,代币项目方和DeFi创新者。
34+ - ** 交易者** 也分为几类:投机者,套利者,Dapp用户,智能合约。(其中套利者和投机者的区别是套利者利用不同平台的价格差获利,投机者通过交易代币获利)。
35+ - ** 开发者** 。也可以分为下面几种:
36+
37+ ①开源特性为其它项目使用Uniswap功能提供了可能。你可以在主要的Defi项目上发现Uniswap的函数。
38+
39+ ②钱包集成了交易代币和流动性供给功能。
40+
41+ ③DEX(去中心化交易所)可以拉取Uniswap的流动性,从而将流动性和交易分离开来。对这些项目来说,Uniswap是最大的单一去中心化流动性源。
42+
43+ 6.Uniswap V2的智能合约系统由两部分组成:** 核心合约** ,它为Uniswap上所有交易对提供基础的安全保证。周边合约,用来和核心合约交互,方便用户使用,但并不是核心合约的一部分。
44+
45+ 7.** 核心合约由一个单例factory和多个交易对pairs组成** 。factory用来创建和索引pairs。核心合约设计的很短小简洁,这样减小复杂性,更不易出错,但是相对的,对用户有时就不友好了。实质上,并不推荐直接和核心合约交互,而是使用周边合约交互。
46+
47+ 8.** factory合约保存了启用pairs的字节码** 。它的主要工作是为唯一的交易对创建唯一的智能合约。它同时也控制着开发团队招手续费收取开关。
48+
49+ 9.** pairs交易对主要提供了两个功能** :一是提供自动做市并追踪交易池中的代币余额;二是暴露相关数据给外部以作为去中心化价格预言机。
50+
51+ 10.** 周边合约** 是一套合约的集合,它们设计用来支持和核心合约作特定领域的交互。
52+
53+ 11.** Library库合约** 。Uniswap V2中的库提供了大量便利工具用来获取数据和价格。
54+
55+ 12.** Router路由合约** 。用于和前端交互的合约,用来实现交易和流动性管理。它还原生支持多交易对交易,将ETH作为第一类公民,同时提供移除流动性时使用元数据交易的支持。
56+
57+ 13.** 提前发送代币的交易方式** 。通常,代币如果通过第三方合约进行转移,需要授权后才能操作。Uniswap V2采用了一种不同的设计,不使用授权,而是在交易前需要先发送代币到交易对。交易时,合约会检查当前保存的代币余额和合约实际代币余额,以这两者之间的差额作为输入代币的数量。因此在调用交易对中任何需要代币的方法时必须先将相应数量的代币发送到交易对(除了Flash Swaps先借后还交易这个例外)。
58+
59+ 14.** WETH** 。Uniswap V2并不支持ETH/ERC20交易对,因此必须使用WETH模拟。用户可以忽略其中细节,只是简单的使用周边合约来包装和解包装ETH。
60+
61+ 15.** 最小流动性** 。为了消除截断影响和增加流动性供给理论上的最小滴答,交易对燃烧了最初的最小流动性。它只发生在第一次提供流动性期间,对绝大部分交易对而言,这个值是微不足道,可以忽略不计的。
62+
1863# 2025-08-16
1964
2065今日编写了前端重要代码:
You can’t perform that action at this time.
0 commit comments