首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Uniswap V2为什么需要溢出?

Uniswap V2为什么需要溢出?
EN

Stack Overflow用户
提问于 2022-10-20 20:47:00
回答 1查看 29关注 0票数 2

我正在分析Uniswap V2核心合同,并注意到了一个评论

代码语言:javascript
复制
// overflow is desired

为什么要溢出?

因为,在我看来,当溢出发生时,下一行

代码语言:javascript
复制
if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) {

由于错误的timeElapsed,永远不会是真的。

EN

回答 1

Stack Overflow用户

发布于 2022-10-20 20:50:30

在:

代码语言:javascript
复制
uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired

由于timeElapsed是无符号的,如果发生溢出,那么它的值必然是正的,因此表达式timeElapsed > 0必然会计算为true。

如果您计划深入研究稳健代码,那么您可能希望学习无符号整数和二补的基本概念。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74146143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档