文章 视频 课程 百科图谱 线下集训
更多
  • 问答
  • 提问
  • 发表文章
  • 专栏
  • 活动
  • 文档
  • 工作
  • 集市
  • 发现
  • 文章
  • 问答
  • 视频
  • 课程
  • 线下集训
  • 专栏
  • 活动
  • 工作
  • 文档
  • 集市
搜索
  • 登录/注册
SC programmer
  • 文章
  • 专栏
  • 问答
  • 视频
  • 课程
  • 集市作品
  • 活动
  • 招聘
TA的视频 TA的合集
兑换第二部分 | Uniswap V3 核心合约解析 - 第21部分
在本视频中,我们开始编写Uniswap V3池合约中while循环内的代码,专注于单次迭代的实现。首先,我们设定了循环条件,确保剩余指定金额不为零且当前平方根价格不等于限制。接着,我们初始化了一个结构体用于计算步骤,并设置了当前平方根价格。虽然我们跳过了获取下一个初始化tick的代码,但我们为后续的多tick交换做了准备。接下来,我们计算下一个平方根价格,并通过复杂的条件语句确保其在限制范围内。最后,我们讨论了如何更新剩余金额,并为后续视频做了注释,以便完成整个while循环的实现。
209
0
0
2025-01-22 17:38
兑换换第一部分 | Uniswap V3 核心合约解析 - 第20部分
本视频介绍了如何在Uniswap V3池合约中实现一个交换功能。首先,定义了输入和输出参数,包括接收者、交易金额、价格限制等。接着,创建了必要的结构体,并初始化了状态变量。通过检查输入参数的有效性,更新当前的平方根价格和流动性,并计算交易的输入和输出金额。最后,完成了代币的转移逻辑。虽然视频中跳过了计算金额的循环部分,但整体结构和逻辑已基本搭建完成。
199
0
0
2025-01-22 17:38
计算交换步骤 2 | Uniswap V3 核心合约解析 - 第 19 部分
在本视频中,我们完成了计算交换步骤的函数,重点是如何计算交易费用。我们讨论了在不同情况下费用的计算方式:如果交换步骤未达到目标平方根比率,费用从剩余金额中扣除;如果达到目标,则费用通过特定公式计算。我们推导了费用计算的数学公式,并在Uniswap V3池合约中实现了这一逻辑,最终成功编译了合约代码。
186
0
0
2025-01-22 17:38
计算交换 第一步 | Uniswap V3 核心合约解析 - 第18部分
在Uniswap V3的池合约中,swap函数调用compute swap step函数来计算平方根价格、输入和输出金额以及手续费。该函数根据当前和目标的平方根价格、流动性和剩余金额来计算所需的代币输入和输出量,并确定交易是“精确输入”还是“精确输出”。通过对不同情况的处理,函数计算出最大输入或输出金额,并确保输出金额不会超过预设的限制。最后,函数还会计算交易的手续费,确保交易的安全性和准确性。
201
0
0
2025-01-22 17:38
收集费用 | Uniswap V3 核心合约解析 - 第17部分
本视频介绍了如何在Uniswap pool 合约中实现collect函数,以便从流动性池中转移代币。该函数接收接收者地址、上下限tick、请求的代币数量等参数,并返回实际转移的代币数量。实现过程中,首先获取位置并计算可转移的代币数量,然后更新位置并使用安全转账方法将代币转出。最后,成功编译合约,接下来将开始实现swap函数。
183
0
0
2025-01-22 17:37
移除流动性 | Uniswap V3 核心合约解析 - 第16部分
在Uniswap V3中,移除流动性需要两个步骤:首先调用burn函数更新位置,然后调用collect函数实际转移代币。burn函数接受三个参数,更新拥有的代币数量,并返回可移除的代币数量。函数内部使用了re-entrancy锁,并调用modify position函数来修改流动性。通过将流动性数量转换为负数,函数计算出应移除的代币数量,并更新位置。最后,burn函数不进行代币转移,实际转移将在下一个视频中讨论的collect函数中完成。
663
0
0
2025-01-22 17:37
完成修改头寸 | Uniswap V3 核心合约解析 - 第15部分
本文讨论了如何完成一个名为“modify position”的函数,该函数用于更新流动性并计算所需的代币数量。首先,使用Uniswap V3的数学库来计算在不同价格范围内所需的代币0和代币1的数量。函数根据当前价格与设定的价格范围的关系,分为三种情况进行处理:当前价格低于下限、在两个价格范围之间以及高于上限。根据这些情况,调用相应的数学函数来计算所需的代币数量,并更新流动性。最后,确保合约成功编译,并为后续的流动性移除功能做准备。
212
0
0
2025-01-22 17:37
流动性增量 | Uniswap V3 核心合约解析 - 第14部分
本视频介绍了如何计算Uniswap V3中的流动性变化(流动性增量),即在添加或移除流动性时的流动性差异。流动性增量(delta L)通过比较添加流动性前后的流动性(L0和L1)来计算,并考虑当前价格与设定价格范围(P of A和P of B)的关系。根据当前价格的不同情况(低于P of A、超过P of B或介于两者之间),流动性增量的计算公式也有所不同。通过这些公式,可以确定在添加流动性时所需的代币数量,从而帮助用户更好地管理其流动性。
185
0
0
2025-01-22 17:37
流动性 | Uniswap V3 核心合约解析 - 第13部分
本文介绍了如何通过特定方程计算Amount 代币X和Y的流动性,基于流动性、价格范围P_A和P_B的已知条件。首先,当当前价格P低于P_A时,需计算从P_A到P_B所需的代币X数量;反之,当P高于P_B时,则需计算代币Y的数量。若当前价格在P_A和P_B之间,则需确保从P到P_B和从P到P_A的流动性相等。通过这些方程,可以解决流动性L的计算,以及在给定代币数量的情况下所需的另一种代币数量。
181
0
0
2025-01-22 17:36
真实金额 | Uniswap V3 核心合约解析 - 第12部分
本文讨论了在价格从P_A变动到P_B时,所需的代币X和Y的数量(分别称为X0和Y0)。通过使用实际储备曲线的方程,得出X0的计算公式为:X0 = L / √P_A - L / √P_B,表示在给定流动性L的情况下,从价格范围P_A到P_B所需的代币X的数量。同样,Y0的计算公式为:Y0 = L * √P_B - L * √P_A,表示从价格范围P_B到P_A所需的代币Y的数量。
188
0
0
2025-01-22 17:36
  • ‹
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • ›
SC programmer
SC programmer
贡献值: 5 学分: 10
https://www.smartcontract.engineer/
0 关注 5 粉丝
关于
关于我们
社区公约
学分规则
Github
伙伴们
DeCert
ChainTool
GCC
合作
广告投放
发布课程
联系我们
友情链接
关注社区
Discord
Twitter
Youtube
B 站
公众号

关注不错过动态

微信群

加入技术圈子

©2025 登链社区 版权所有 | Powered By Tipask3.5|
粤公网安备 44049102496617号 粤ICP备17140514号 粤B2-20230927 增值电信业务经营许可证

发送私信

请将文档链接发给晓娜,我们会尽快安排上架,感谢您的推荐!

提醒

检测到你当前登录的账号还未绑定手机号
请绑定后再发布
去绑定
编辑封面图
封面预览