转账方法可能存在的逻辑问题,请大佬指教!

今天在群里看到群友提问,没有解答出来,很尴尬,希望大佬能伸出援手,原问题如下?

有一个转账函数自相矛盾

你看图片,第一个if的条件是:to == address(uniswapV2Pair)) 就表示这个接受地址必须是池子,就只能是卖币和加池子操作。或者说接收地址只能是address(uniswapV2Pair))。

然后假如满足第一个if条件,到第二个if条件就存在自相矛盾。

999.png

第二个if判断条件:!ammPairs[to]

这个to地址在第一个if里只能是uniswapV2Pair地址,但是前面在状态变量里已经规定这个映射:ammPairs[address(uniswapV2Pair)] = true;

即ammPairs[to]是ture,再!,最后的bool值就是false。

那就不满足第二个if条件了

为什么代码部署到链上,能正常运行,这两个if不是存在自相矛盾吗?

求大佬指教!感激万分!

请先 登录 后评论

3 个回答

令狐猪
请先 登录 后评论
zen
请先 登录 后评论
令狐猪
请先 登录 后评论
  • 1 关注
  • 0 收藏,2229 浏览
  • 令狐猪 提出于 2022-07-18 17:15