Contract-Development

將乙太幣發送到多個地址的“正確”方式是什麼?

  • March 4, 2022

我在這裡看到過這個討論,但沒有得到滿意的答案。將乙太幣發送給多個收件人的推薦方式是什麼?

我想到的一種方法如下:

部署一個智能合約,接受來自任何賬戶的乙太幣以及收件人地址+金額列表。

契約將資金分成不同的賬戶。但是,我有一些擔憂:

如果接收方是一個在其回退函式中有一些奇怪程式碼的合約怎麼辦?也可能存在其他安全問題。

做這個的最好方式是什麼?是否有一個經過良好測試的智能合約來處理我可以重複使用的邊界案例?

如果有幫助,我正在使用 Web3j 和 Ethereumj 與區塊鏈進行互動。

編輯:另一種方法是發送多個交易而不使用契約。契約是否有經濟利益?似乎即使通過合約,乙太幣也會被發送到多個地址,並且會產生線性增加的成本。它是否正確?費用是否相似?

eth.getCode(address)您可以通過使用(無論您的 api 中的什麼等價物)來測試地址是否是普通賬戶而不是合約賬戶。如果沒有程式碼,它只是一個普通的帳戶,你可以發送乙太幣讓你心滿意足!如果有程式碼,那麼事情就會變得有點棘手。

在我知道你為什麼從契約中向多個賬戶發送乙太幣的目的之前,我無法真正給你關於“邊境案件”的答案。

你可以輕鬆編寫一個鏈下函式,只需將乙太幣發送到每個賬戶,而無需部署合約。

如果您希望該契約到位,因為它會更新添加到契約儲存中的新帳戶,那麼我看不到任何其他邊緣情況。合約中的任何功能都將新賬戶添加到儲存中,只需要在添加之前檢查賬戶地址是否有程式碼。

您可以使用這個開源工具 - http://bulktokensending.online 它還允許生成 ETH 地址。來源在這裡https://github.com/bulktokensending/bulktokensending

引用自:https://ethereum.stackexchange.com/questions/29124