我们知道,通过sendTransaction发送eth,它有from to和amount,它是一对一的交易。我能得到一种一对多(多对多)的交易方式,比如比特币核心中的sendmany吗?由于比特币核心可以自动在本地钱包中提取比特币的所有地址,它实际上是一个多对多的交易。只是为了在我有大笔交易的时候省下矿工费。
谢谢。
发布于 2018-04-11 05:26:48
Ethereum中没有本地方法可以做到这一点,但是您可以编写一个智能契约来完成该任务。
例如,这个https://github.com/cleanunicorn/smart-split
是否将用户定义为合作伙伴
// partnerAdd adds a new partner to the list
// It saves the partner address and the weight of the partner
function partnerAdd(address partner, uint256 weight) public onlyOwnerOrPartner {
require(partnerExists(partner) == false);
partners.push(partner);
partnersWeight.push(weight);
}而在接收ETH的功能中,ETH可以根据您的逻辑来分割资金。
function () public payable {
uint256 sum;
for (uint256 i = 0; i < partners.length; i++) {
sum = sum + partnersWeight[i];
}
Sum(sum);
for (i = 0; i < partners.length; i++) {
address dst = partners[i];
uint256 value = msg.value * partnersWeight[i] / sum;
dst.transfer(value);
SplitValue(dst, partnersWeight[i], value);
}
}https://ethereum.stackexchange.com/questions/45330
复制相似问题