[英]Ethereum : How to auto-split an ETH transaction into 2 other transactions
假設我有一個共享錢包,為我和我的兄弟收集了醚類。 我們分享這個錢包的50%。
如果有一個ETH交易來到這個錢包,有沒有一種自動發送方式可以自動將收到的醚發送到我的個人錢包和我兄弟的錢包,而我們沒有做任何特別的事情?
可以通過特殊的智能合約(后備)或任何其他方式來完成嗎?
是。 看看Open Zeppelin拆分付款: https : //github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/payment/SplitPayment.sol
這使用了聲明,但你可以做類似的事情,並使用智能合約后備來自動化這一點。
您可以部署此合同(不要忘記更改地址)
當有人向你發送醚類時,他需要輸入10萬個氣體,這個額外的氣體需要發送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);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.