第73篇 ERC20一对多转账交易实现源码

Posted wonderBlock

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第73篇 ERC20一对多转账交易实现源码相关的知识,希望对你有一定的参考价值。

有时候需要在一个以太坊交易中向数百甚至上千个地址转 ERC20 代币,但是以太坊的原生接口只支持一对一的转账,如果采用循环的方式逐个执行转账交易,将耗费大量 gas费,而且有可能超过单个区块的gas上限。本文通过修改标准ERC20智能合约,实现只支付一次交易费就可以向多个地址发送 ERC20 代币。

代码如下:

pragma solidity ^0.5.0;

library SafeMathAres {
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}   
  
contract ABCToken {
    using SafeMathAres for uint256;
    string public constant name = "ABC Token";
    string public constant symbol = "ABC";
    uint256 public constant decimals = 18;
    uint256 public constant totalSupply = 1000000000*10**decimals;
	
    mapping (address => uint256) private balances;
    mapping (addre

以上是关于第73篇 ERC20一对多转账交易实现源码的主要内容,如果未能解决你的问题,请参考以下文章

ERC 20 优缺点,以及 eth 3 种转账方式

订阅 ERC20 转账活动

ERC20转账压缩

【ETH钱包开发04】web3j转账ERC-20 Token

第89篇 defi实战-质押ERC20智能合约

第131篇 ERC20 锁仓合约