欢迎加入币圈投资/技术支持 千人交流qq群: 289111800

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 

ERC20标准代币空投方法,网上找了一些资料都比较有限,而且通过etherscan.io发现,很多空投方法都是集合到了token合约里,例如这个SIM:https://etherscan.io/address/0x86c8bf8532aa2601151c9dbbf4e4c4804e042571#code;

    但是我们需要的是别人给你token合约地址,而你用自己的空投合约帮别人空投。经过一系列测试,现在有一些眉目了,技术路线基本清晰了,做一下记录说明。

 

第一步,有一个token合约和空投合约;
第二部,向空投合约地址转需要空投的代币;
第三部,使用空投合约进行空投;
第四部,取回空投合约账户下剩余的代币;
 

    首先写一个比较简单erc20的token合约用作测试。

 

    https://github.com/XuHugo/solidityproject/tree/master/airdrop/Token.sol

   下面看一下空投合约的写法。

   https://github.com/XuHugo/solidityproject/tree/master/airdrop/airdrop.sol

这里主要看一下,AirTransfer方法,在这个方法里,我们先通过token合约地址获取到合约的实例,然后获取合约的transfer方法;通过for将传进来的地址依次空投代币即可;

这里有一个坑需要注意,我们需要先把要空投的代币转移到空投合约地址,然后再又空投合约地址转移到要空投的账户,为什么这么做呢,主要是因为大部分token合约的transfer函数影响的,因为transfer里,from地址都是调用该token合约的账户,如果该账户没有钱则必然失败,在该例中,token合约的调用者是空投合约,所以我们需要先向空投合约地址赚钱。

总结一下,写空投合约最好根据token合约来写,不同token合约,空投合约也会有所不同。 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄