前面两种方式都是在合约外部在重新部署一个合约用于空投,第三种方式则是在合约中就实现空投,实现的思路其实和之前的方法一样,只不过是集合到了合约当中

将下面的代码加到合约当中

  1. function batch(address []toAddr, uint256 []value) returns (bool){
  2. require(toAddr.length == value.length && toAddr.length >= 1);
  3. for(uint256 i = 0 ; i < toAddr.length; i++){
  4. transfer(toAddr[i], value[i]);
  5. }
  1. }

按照之前的步骤部署到geth私有链中,查看合约

可以发现,现在的合约当中已经有了batch方法了,然后进行交易就可以了

空投合约的三种方式就实现了,其实原理都很简单