有时候需要在一个交易中向数百甚至上千个地址转 ERC20 token,但是原生接口只支持一对一的转账,如果采用循环的方式逐个执行转账交易,将耗费大量 gas费,而且有可能超过单个区块的gas上限。本文通过修改标准ERC20智能合约,实现只支付一次交易费就可以向多个地址发送 ERC20 token。
代码如下:
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 totalSup
本文介绍了如何通过修改标准ERC20智能合约,实现在一笔交易中向多个地址批量转账ERC20 token,避免了循环转账的高gas费和可能的区块gas上限问题。合约已在Remix编译并通过测试。
订阅专栏 解锁全文
4497

被折叠的 条评论
为什么被折叠?



