Pre:
朋友发了个tx给我,发现自己在pancakeSwap添加流动性时,没有获得全部的lptoken,一部分lptoken发送到了0x0ed943ce24baebf257488771759f9bf482c39706
这个地址里,觉得很奇怪。。叫我看一下原因。
分析过程:
Erc20合约:
一开始猜测有可能这个地址是erc20合约本身的收税地址,先看看该合约有无tax fee
用这个cryptogems网站查很方便,确实有tax fee
但去合约代码里查,0x0ed943ce24baebf257488771759f9bf482c39706
这个地址不是erc20合约里的预留地址/收税地址,那就不是代币合约的问题。。。
Google:
google搜索了一下0x0ed943ce24baebf257488771759f9bf482c39706
这个地址,发现也有部分人有遇到同样的问题,他们也没有讨论出个所以然来。
一度怀疑,他们是用同一个erc20合约自动生成工具,去发布token,被开发者预留了收税地址,强行收税。。。
Bscscan:
先去bscscan查查这个地址,
该地址0x0ed943ce24baebf257488771759f9bf482c39706
是个代理合约,他的执行合约是
0xc06e6ed003763d173b5b9f35960ad359d0339c96
继续查一下
执行合约名称为PCSFeeHandler
,可能跟pancake有关系,还是没看出个所以然来。。。
tenderly
去tenderly
Debug一下,
先关注几个transfer
相关的函数,也没看到0x0ed943ce24baebf257488771759f9bf482c39706
的踪影。
然后在debugger里的参数里有看到这个地址出现。
向上找,是在mint
铸造lptoken的流程里,会交税给这个地址。
mint函数流程:
接着就去看一下PancakePair代码里的mint
函数
-
feeOn
开关由_mintFee
函数控制 -
查询工厂函数的
feeTo
地址
-
feeTo
地址不为0地址,则feeOn
收税开关为开启
所以就是,添加流动性的时候,由于pancakeswap
开启了收税开关,mint
出来的部分lptoken
打到了官方的收税地址里了。
验证:
随便找两个和router
合约交互,调用了addLiquidity
函数的tx看看,都是同样有被官方收税。
确实是被官方收税了,Done!
小结:
-
之前应该是没开启收税,现在开启了
-
做平台真赚钱,先免费做大,流量多了,后面再一键开启收税
-
去中心的代码,中心化的规则指定😆😆😆 Fun~
2022.7.11更新
之前的添加流动性也是有交税的,应该tax fee比较低,无感知。所以tax开关是一直开启的,并不是最近才开启的。
bitquery数据分析:
看看收税地址的入账情况:
能发现到一些有趣的信息,交税次数最多的token: DRIP Token (DRIP),还以为是bnb这类主流token呢。。
一些信息:
有一定热度,代币机制有10%的税,会自动添加流动性,所以才会频繁mint LpToken,频繁交税。