以太坊ERC20代币空投合约

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

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

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

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

    https://github.com/XuHugo/airdrop/blob/master/Token.sol

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

   https://github.com/XuHugo/airdrop/blob/master/airdrop.sol

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

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

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

猜你喜欢

转载自blog.csdn.net/xq723310/article/details/80998129