试试批量转帐合约 / 学习智能合约#17

试试批量转帐合约 / 学习智能合约#17

onetomany.jpg

当你同时需要向不同的用户转帐时,批量转帐合约就有了它的应用场景。批量化在不少语言中就是一个for循环,但在智能合约中使用for循环可能就会有不少的大坑了。所以,在设计时要多参考,多测试。

先看看代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
pragma solidity >=0.4.22 <0.7.0;

contract TransferMany {
constructor() payable public {
}

receive() external payable { }

fallback () external payable { }

function transferEths(address payable[] memory _tos) payable public returns (bool)
{
require(_tos.length > 0);
// require(msg.sender == owner);
for(uint32 i=0;i<_tos.length;i++){
_tos[i].transfer(1 ether);
}
return true;
}
}

总体来讲,先将以太币传入合约,再调用合约批量转帐。新版的Solidity是使用receive接收以太币,业务逻辑中同样是使用for来完成批量业务。在生成合约时最好加上权限,只有owner才能调用合约。

如果是批量转帐代币也是并不多思路,只是调用的方法不太一样而已,大家可以自行尝试。


This page is synchronized from the post: ‘试试批量转帐合约 / 学习智能合约#17’

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×