登录 后可观看高清视频
剖析 Curve V1 稳定币兑换
12次播放
11小时前
视频 AI 总结: 该视频是关于 Curve V1 AMM 的课程介绍,面向有 Foundry 经验的高级 Solidity 开发者。课程将深入讲解 Curve V1 的数学原理和算法,并通过 Vyper 代码冷启动、Foundry 练习等方式,帮助学习者理解 Curve V1 的内部机制,并为学习 Curve V2 打下基础。课程讲师 Tez 拥有多年的软件和智能合约开发经验,并提供 GitHub 仓库供学习者进行练习和讨论。
视频中提出的关键信息:
- 课程目标:理解 Curve V1 的数学和算法,阅读 Vyper 代码,并进行 Foundry 测试。
- 预备知识:熟悉 Foundry、恒定乘积 AMM 和恒定总和 AMM 的数学原理。
- 可选知识:了解 Uniswap V2/V3、DeFi 基础知识(如稳定币 DAI/USDC)以及 Python。
- 课程内容:Curve V1 的数学和算法、Vyper 代码冷启动、Foundry 练习。
- 学习 Curve V1 的意义:为新的 AMM 设计提供灵感,帮助参与安全竞赛和漏洞赏金项目,以及为理解 Curve V2 做准备。
- Curve V1 与 Uniswap V2/V3 的区别:Curve V1 使用 Vyper 编写,滑点低,支持两种或多种代币,可以指定提款代币,并收取不平衡费用。
- Curve V1 的核心公式:是恒定乘积和恒定总和的结合,通过参数 A 控制曲线的平坦程度。
- Curve V1 使用牛顿法来计算代币数量和流动性。
- Curve V1 的主要合约是 StableSwap,用户通过 exchange, addLiquidity, removeLiquidity 等函数与之交互。
- StableSwap 合约会先计算 A 参数,再计算流动性 D。
- 所有代币余额在计算前都会转换为 18 位小数。
- getVirtualPrice 函数返回每个 LP 代币的价值。
- calcTalkingAmount 函数计算要铸造或销毁的 LP 代币数量。
- exchange 函数用于交换代币。
- getY 函数计算 tokenOut 的代币余额。
- getDy 和 getDyOnTheLine 函数计算交换代币后获得的代币数量。
- addLiquidity 函数用于向 Curve V1 AMM 添加流动性。
- removeLiquidity 函数会销毁 LP 份额,然后按比例将池中的所有代币返还给流动性提供者。
- removeLiquidityOneCoin 函数会销毁 LP 份额,然后返还用户指定的单个代币。
- calcWithdrawOneCoin 函数计算用户将收到的单个代币数量。