Solidity
契約如何進行定期付款?
我需要創建一個契約,根據使用者的請求進行定期付款,契約將要求使用者告訴發送者和接收者地址,它會以經常性的方式將一定數量的 erc20 代幣從發送者轉移到接收者——也許每個月,或每天。
我正在閱讀乙太坊鬧鐘,到目前為止我的理解是它會安排交易稍後執行,但它可以重複嗎?像每2個月?
快速啟動連結或建議將不勝感激,非常感謝!
合約只有在區塊鏈之外的東西呼叫它們時才能執行。我可以想到三個可能願意每 2 個月呼叫一次合約的實體:
- 發件人可能願意這樣做,例如,如果未發送付款,他們將停止接收某些服務。
- 收件人可能願意這樣做,以便他們獲得報酬。
- 如果第三方得到補償,他們可能願意這樣做。(這就是乙太坊鬧鐘的工作原理。)
如果我是你,我只會讓任何人都可以呼叫該函式,並設置接收者必須呼叫該函式才能獲得報酬的期望。對於不願意的收件人,發件人可以自己做,也可以激勵第三方做。
你不能在本地做到這一點。
乙太坊鬧鐘(這已經很長時間沒有活動了,“Chrono-Logic”正在這個基礎上建構)
ETH-Tempus 是最簡單、最便宜的。與 oraclize 的不同之處在於 ETH-Tempus 的 gas 消耗更低,更重要的是,在 oraclize 中你是提前付款的,如果你沒有完全使用,你傳遞給他們的 gas 是不會返還的。
請注意,ETH-Tempus 僅具有調度未來任何時間呼叫的功能,而 oraclize 具有許多其他功能。
在 ETH-Tempus 中:
- 當您的契約被呼叫時,付款就完成了。
- 天然氣消耗更便宜。
- 天然氣消耗量是線上估算的,您只需支付計算出的費用外加約 5 美分美元的費用。
- 使用簡單(查看 GitHub 上的範例)
免責聲明:我為 ETH-Tempus 編寫了程式碼,可以在測試網路(rinkeby)中免費測試。我創建它是因為我看到很多人都在尋找它,而我發現的解決方案要麼複雜要麼太昂貴,以至於在您需要大量呼叫的情況下無法實際考慮。(就像每隔一段時間重複呼叫)
希望這可以幫助