> For the complete documentation index, see [llms.txt](https://doc.nftsniper.club/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.nftsniper.club/chang-jian-wen-ti-bi-du/faq+/replace-address-parameters.md).

# 替换地址参数

<mark style="color:red;">**系统会自动处理99%需要替换地址的场景，但是仍有1%的场景无法处理。所以掌握地址替换识别能力是必要的。**</mark>

如何操作：

第一步，找到对应的tx，去读合约参数，需要明确这个地址参数究竟是干嘛的？

<figure><img src="https://content.gitbook.com/content/4Y69XVvMAwNTXpNkwYKg/blobs/GaC4xwmCvLUzrhBptz6N/image.png" alt=""><figcaption></figcaption></figure>

如图所示，这个合约方法里面有两个地址参数，通过名称我们就能分析到，第一个参数是项目方地址，<mark style="color:red;">**第二个参数则是把nft mint给谁，也就是打给谁的地址，这个地址就是需要处理的。**</mark>

<figure><img src="https://content.gitbook.com/content/4Y69XVvMAwNTXpNkwYKg/blobs/8G4oW1XlSjtNtMi0EsfV/image.png" alt=""><figcaption></figcaption></figure>

所以上面这个合约我们处理的结果如图所示。

<figure><img src="https://content.gitbook.com/content/4Y69XVvMAwNTXpNkwYKg/blobs/KzP6GIKcWROSnKTqZtLr/image.png" alt=""><figcaption></figcaption></figure>

如图所示，这个合约方法里面有两个地址参数，通过名称我们就能分析到，<mark style="color:red;">**第一个参数则是把nft mint给谁，也就是打给谁的地址，这个地址就是需要处理的。**</mark>第二个参数你可能短时间读不懂，没关系，我们回头看下这个方法成功调用的一条tx里面参数。

<figure><img src="https://content.gitbook.com/content/4Y69XVvMAwNTXpNkwYKg/blobs/o7ejI7nE3IJpo8Tzge1l/image.png" alt=""><figcaption></figcaption></figure>

找到这条交易，你发现这个参数不是常规地址，一般这种情况都是不需要处理的，然后你可以多找几条成功的tx印证你的想法。

一般来说。地址参数遇到下面的内容都是不需要处理的：

0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE 0x0000000000000000000000000000000000000000

<figure><img src="https://content.gitbook.com/content/4Y69XVvMAwNTXpNkwYKg/blobs/0Ygt24zmZrQiri4vrLyX/image.png" alt=""><figcaption></figcaption></figure>

如果里面不是上述的两个免处理地址，那么还是要按照我们常规流程，去读合约，去判断每个地址参数的作用。

<figure><img src="https://content.gitbook.com/content/4Y69XVvMAwNTXpNkwYKg/blobs/no7KnGtrmcfm7MRUt9Kz/image.png" alt=""><figcaption></figcaption></figure>

如图所示，这个合约方法涉及3个地址。通过简单的读名称，我们知道第一个是接受地址参数，需要替换，后面两个参数都是currency，这个参数是老朋友了，99%的情况传入的参数都是上面说的免处理情况，那是不是这个情况呢，我们找到一条成功的tx印证想法

<figure><img src="https://content.gitbook.com/content/4Y69XVvMAwNTXpNkwYKg/blobs/fdQHS4nagBIYDTnBpnv6/image.png" alt=""><figcaption></figcaption></figure>

果然不出我们所料。

<figure><img src="https://content.gitbook.com/content/4Y69XVvMAwNTXpNkwYKg/blobs/8m6ejnDa1gsHijJVESnt/image.png" alt=""><figcaption></figcaption></figure>

再来分析一条，这个就是三个地址参数，我们唯一需要看下第三个参数，找一条tx分析。

<figure><img src="https://content.gitbook.com/content/4Y69XVvMAwNTXpNkwYKg/blobs/qp4nc1Tz65WcyOR2ls9p/image.png" alt=""><figcaption></figcaption></figure>

第三个是我们熟悉的免处理参数，那么说明这个方法里面三个地址参数都是不需要处理的。

所以可以粗略总结下：

1.如果方法里面只有一个参数涉及地址，只需要检查这个是不是作为nft接收地址即可。

2.如果方法里面有多个参数涉及地址，排除免处理情况的参数，然后剩余的地址参数再挨个看，先读方法名，方法名读不透再去读合约。然后找几条成功的tx印证你的想法。

总的来说，地址替换不难，掌握一些经验即可灵活处理了。

<mark style="color:red;">**ok，讲完了一堆东西估计看到这里，很多人已经晕了，有没有快速简单的分析方法呢？**</mark>

<figure><img src="https://content.gitbook.com/content/4Y69XVvMAwNTXpNkwYKg/blobs/gJjWG1gvfiMTXkv6D2z0/image.png" alt=""><figcaption></figcaption></figure>

答案是有的，首先要这条tx已经confirm，然后你找到nft从0地址真实转移到了xxx地址，然后你直接去找xxx地址在不在参数里，用浏览器自带的搜索，一下子就会给你高亮标记出来，然后把这个参数替换为&就完事了。

更为进阶的就是某些特殊合约是指定打到同一个号，但是需要你懂的读合约，你需要读懂合约在判断地址mint数量时，是判断的sender地址还是receive地址。这里不再展开说明，你如果有代码基础很容易理解，如果没有，建议不要骚操作。
