第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一对多转账交易实现源码的主要内容,如果未能解决你的问题,请参考以下文章