系统会自动处理99%需要替换地址的场景,但是仍有1%的场景无法处理。所以掌握地址替换识别能力是必要的。
如何操作:
第一步,找到对应的tx,去读合约参数,需要明确这个地址参数究竟是干嘛的?
如图所示,这个合约方法里面有两个地址参数,通过名称我们就能分析到,第一个参数是项目方地址,第二个参数则是把nft mint给谁,也就是打给谁的地址,这个地址就是需要处理的。
所以上面这个合约我们处理的结果如图所示。
如图所示,这个合约方法里面有两个地址参数,通过名称我们就能分析到,第一个参数则是把nft mint给谁,也就是打给谁的地址,这个地址就是需要处理的。第二个参数你可能短时间读不懂,没关系,我们回头看下这个方法成功调用的一条tx里面参数。
找到这条交易,你发现这个参数不是常规地址,一般这种情况都是不需要处理的,然后你可以多找几条成功的tx印证你的想法。
一般来说。地址参数遇到下面的内容都是不需要处理的:
0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE 0x0000000000000000000000000000000000000000
如果里面不是上述的两个免处理地址,那么还是要按照我们常规流程,去读合约,去判断每个地址参数的作用。
如图所示,这个合约方法涉及3个地址。通过简单的读名称,我们知道第一个是接受地址参数,需要替换,后面两个参数都是currency,这个参数是老朋友了,99%的情况传入的参数都是上面说的免处理情况,那是不是这个情况呢,我们找到一条成功的tx印证想法
果然不出我们所料。
再来分析一条,这个就是三个地址参数,我们唯一需要看下第三个参数,找一条tx分析。
第三个是我们熟悉的免处理参数,那么说明这个方法里面三个地址参数都是不需要处理的。
所以可以粗略总结下:
1.如果方法里面只有一个参数涉及地址,只需要检查这个是不是作为nft接收地址即可。
2.如果方法里面有多个参数涉及地址,排除免处理情况的参数,然后剩余的地址参数再挨个看,先读方法名,方法名读不透再去读合约。然后找几条成功的tx印证你的想法。
总的来说,地址替换不难,掌握一些经验即可灵活处理了。
ok,讲完了一堆东西估计看到这里,很多人已经晕了,有没有快速简单的分析方法呢?
答案是有的,首先要这条tx已经confirm,然后你找到nft从0地址真实转移到了xxx地址,然后你直接去找xxx地址在不在参数里,用浏览器自带的搜索,一下子就会给你高亮标记出来,然后把这个参数替换为&就完事了。
更为进阶的就是某些特殊合约是指定打到同一个号,但是需要你懂的读合约,你需要读懂合约在判断地址mint数量时,是判断的sender地址还是receive地址。这里不再展开说明,你如果有代码基础很容易理解,如果没有,建议不要骚操作。