登录 后可观看高清视频

剖析 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 函数计算用户将收到的单个代币数量。