当前位置:   article > 正文

空投合约时转账失败的问题

空投合约时转账失败的问题

研究空投合约时转账失败的问题

最近在研究空投可约的实现,在Ethereum.io上找到OMG的空投代币合约代码:

contract Airdropper is Ownable {

   function multisend(address _tokenAddr, address[] dests, uint256[] values) onlyOwner returns (uint256) {
        uint256 i = 0;

        while (i < dests.length) {
           ERC20(_tokenAddr).transfer(dests[i], values[i]); 
           i += 1;
        }
        return(i);
    }

    function ico() returns(bool res) {
        ERC20(_tokenAddr).transfer(dests[i], values[i]);
    }  
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

在传入代币地址的时候转账老是出错,底层一直抛出”invalid opcode 0xfd”

一番纠错之后,发现这个错不是由于require抛出,而转账一直失败的原因是因为在Airdropper合约地址中没有代币合约,
所以导致转账失败,由于对于被调用的合约来说,msg.sender是这个合约地址,所以先要确定Airdropper中有足够的代币合约。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/369176
推荐阅读
相关标签
  

闽ICP备14008679号