@@ -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