❓为什么写这篇文章主要是因为@eigenlayer的nft只是一个纪念意义的nft,并且是无限制的mint。并且本来想趁着gas低,写一个批量mint的程序,然后节省gas去mint,不过发现其实不行(线程内会解释)然后反正没事做,那还不如写个线程说一下我们应该如何自己创建一个批量mi
<!--StartFragment-->
❓为什么写这篇文章
🧑先说结论,批量mint能有什么好处
🧬大概路径 路径超级简陋图如下:
对于批量mint NFT,要结合具体的项目合约来使用,有的合约有限制的时候是不可以进行批量mint的,如 @eigenlayer
有些是可以,如之前的 $xen $clips $ferc 都是可以做到批量mint,特别是 $ferc 由于合约的问题,当时mint一个会吃税,但是有批量mint合约的话,只会吃税1次,但是得到了100
不要特别迷信批量mint就会省钱, 因为
需要有一定的solidity基础,如果没有solidity基础的话,可以先去学或者直接先看一下熟悉一下也行
然后对于以后有些nft或者airdrop的领取的话,自己都可以去看项目代码看能否使用批量
如果对于抓不准的,也欢迎大家发我,然后我看看能不能写批量,毕竟我也想实践中成长
🧑💻具体代码撰写思路
🔗 先直接把合约模板发出来
🤖 代码解析 直接解释这代码吧,对于不同的项目,其实相对应的改一下内容即可
主要原理就是,我们需要连接项目的合约,然后调用项目合约里面的方法,所以我们需要抽取一个接口出来。
需要实现两个逻辑 ① 能进行mint token 的方法 ② 能转账 token 给原钱包的方法
所以我们相对应需要改的也是这两个方法,以下是修改步骤 ① 先找项目合约,通过别人成功调用的交易地址,找到具体的mint方法,以之前的 clips 为例 https://etherscan.io/tx/0xa2b9c10eef73acff7277c845a7e77e06c7f37222a0797a3d01361df555504308
② 查看项目具体代码,需要方法名称,传递参数 ③ 修改批量mint合约的内容 ④ 从 ② 可以看出,我们需要接入 transfer方法,所以相对应的, transfer方法也需要修改,修改成什么样的话,和 mint方法同理 <br> 修改批量mint逻辑 ① 首先判断是否需要创建子合约调用
② 修改项目地址 <br> 修改循环逻辑
循环逻辑其实不用修改,不过我们可以新增一些其他逻辑如 - 只想自己调用,不给其他人用,在
当存在一些特殊情况的时候,其实是不能批量mint的
<!--EndFragment-->
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!