Skip to content

Commit 5dc5154

Browse files
committed
Add study notes for 2025-08-18
1 parent e11aaf6 commit 5dc5154

1 file changed

Lines changed: 85 additions & 0 deletions

File tree

kaixiang-uoa.md

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,91 @@ timezone: UTC+8
1515
## Notes
1616

1717
<!-- Content_START -->
18+
# 2025-08-18
19+
20+
---
21+
今天两件事:
22+
23+
### 1. 前端:
24+
看了前端部分的代码,主要是练习,拆分组件,怎么拆,数据流怎么走,状态管理管的是组件中的什么部分,用了一部分自己的代码例子,也尝试让AI给生成了一下练习题。就是急需提升coding的能力,以及怎么设计组件。
25+
26+
27+
### 2. 又看了点 Uniswap:
28+
29+
### 1) Allowance / Approve / Permit2
30+
31+
* **Allowance(授权额度)**:把某个 ERC-20 代币的**可用额度**授权给路由合约(如 `SwapRouter`),路由才能代扣。
32+
* **Approve**:链上交易,修改 `allowance`。前端先**读取** allowance,不足再引导授权。
33+
* **Permit / Permit2**:用**签名**代替传统 `approve` 交易,可做到**一次签名 + 一次 swap**,减少交互与费用;注意**限额/到期****吊销**入口。
34+
35+
---
36+
37+
### 2) exactInput vs exactOutput(两种下单模式)
38+
39+
* **exactInput**:给定 `amountIn`,希望“至少得到”多少(`amountOutMin`)。最常见、风险可控。
40+
* **exactOutput**:希望**恰好得到** `amountOut`,允许“最多花”多少(`amountInMax`)。更易因价格波动失败。
41+
* 初学建议先用 **exactInputSingle(单跳)**:路径简单、稳定。
42+
43+
---
44+
45+
### 3) 滑点(Slippage)& 截止时间(Deadline)
46+
47+
#### 3.1 定义
48+
49+
* **滑点(成交滑点)****最终成交价格**相对**你看到的报价**变差的幅度。
50+
51+
* 来源 A:你这笔交易**沿 AMM 曲线**推进引起的**价格冲击**(池子越浅,冲击越大)。
52+
* 来源 B:**等待打包期间**市场变动/他人交易/MEV 夹子导致价格变化。
53+
* **滑点容忍度(Slippage Tolerance)**:你在前端**设定的阈值**,告诉路由“价格最差能接受到什么程度”;路由据此计算保护参数:
54+
55+
* exactInput:`amountOutMin = 报价 * (1 - 滑点%)`
56+
* exactOutput:`amountInMax = 报价 * (1 + 滑点%)`
57+
58+
> 简单说:**滑点是客观发生的价格偏差;滑点容忍度是你愿意忍多少**。超过就**回滚**,不成交。
59+
60+
#### 3.2 例子
61+
62+
* 报价:1 A → 100 B
63+
* 你设 **1%** 滑点 → `amountOutMin = 100 * (1 - 0.01) = 99`
64+
* 区块打包时池子被别人先扫了,你最终只会拿到 **99.2 B** → ≥ 99,**成交**
65+
* 若只剩 **98.7 B** → < 99,**回滚**,保障你不被“劣价成交”。
66+
67+
#### 3.3 怎么选滑点
68+
69+
* **稳定币对(深池)**`0.1% ~ 0.3%`
70+
* **主流币/较深池**`0.3% ~ 1%`
71+
* **长尾/浅池/波动大**`1% ~ 3%+`(能成交,但**更易被夹**,谨慎)
72+
* 原则:**能成交的前提下尽量小**;越大越容易被三明治。
73+
74+
#### 3.4 Deadline(截止时间)
75+
76+
* 防止交易长时间悬而未决被人“摆布”。
77+
* 常用:**2\~5 分钟**;过期自动失败。
78+
79+
---
80+
81+
### 4) 费档(Fee Tier)与池选择
82+
83+
* 典型费档:**0.01% / 0.05% / 0.3% / 1%**
84+
* **稳定币对**偏低费档,**波动/长尾**偏高费档。一个币对可有**多个池**,路由会择优。
85+
86+
---
87+
88+
### 5) 单位与精度
89+
90+
* **decimals**:不是都 18(如 USDC 多为 6)。
91+
* **输入/显示**:界面用人类单位,链上调用要**精确换算**
92+
* **价格**`sqrtPriceX96 → 实际价格` 时,注意两侧 decimals。
93+
94+
---
95+
96+
### 6) 常见失败与前端防御
97+
98+
* **`INSUFFICIENT_OUTPUT_AMOUNT`**`amountOutMin` 太紧或价格波动 → 提示用户调滑点/重试。
99+
* **授权不足**:先读 allowance,只给**所需额度**(或用 Permit2)。
100+
* **链不匹配**:提示切换网络。
101+
* **异常代币**:fee-on-transfer/非标准 ERC-20 → 事前校验与友好提示。
102+
18103
# 2025-08-17
19104

20105
今天看了一点uniswap,感觉很多东西,学不完。主要就是看了:

0 commit comments

Comments
 (0)