以太坊 :如何将ETH交易自动拆分为另外2个交易



假设我有一个共享钱包,为我和我的兄弟收集以太币。我们彼此分享这个钱包的50%。

如果一个ETH交易进入这个钱包,是否有一种自动方式将收到的以太币自动发送到我的个人钱包和我兄弟的钱包,而无需我们做任何特别的事情?

可以通过特殊的智能合约(带回退(或任何其他方式来完成吗?

您可以部署此合约(不要忘记更改地址(

当有人向您发送以太币时,他需要投入 100000 个 gas,这个额外的气体需要发送 2 笔交易:为您和您的兄弟

pragma solidity ^0.4.25;
contract Split {
address public constant MY_ADDRESS = 0x5Ac652E32b8064000a4ab34aF0AE24E4966E309E;
address public constant BRO_ADDRESS = 0x43CcDF0774813B6E14E64b18b34dE438B039663C;
function () external payable {
if (msg.value > 0) {
// msg.value - received ethers
MY_ADDRESS.transfer(msg.value / 2);
// address(this).balance - contract balance after transaction to MY_ADDRESS (half of received ethers)  
BRO_ADDRESS.transfer(address(this).balance);
}
}
}

是的。看看开放齐柏林飞艇拆分付款: https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/payment/SplitPayment.sol

这使用声明,但您可以做类似的事情并使用智能合约回退来自动化此操作。

最新更新