Web3js

如何指定gas payer

  • July 11, 2018

我如何指定將支付汽油費的帳戶,假設 0x1 正在向 0x2 發送代幣,但我希望 0x3(我有私鑰)支付 tx 汽油費?

我想你不能。發送交易的人應該支付用過的氣體。

你可以做的是計算消耗氣體的價格,將其轉換為乙太幣並將這個值從 0x3 發送回 0x1/0x2。

讓我更詳細地解釋一下:

如果您想自動執行此操作(以退還 tx 費用),您可以編寫一個簡單的腳本來執行此操作。我會建議你檢查Web3.js,因為它更方便解決此類問題。所以你的算法應該這樣工作:

  1. 為第一個帳戶(0x1)設置某種餘額觀察器。(查看有關如何執行此操作的相關答案)。所以當你的0x1賬戶餘額發生變化時,你應該檢查交易是否已經發送到0x2
  2. 如果你看到成功的新乙太幣轉賬交易出現,使用 Web3 獲取交易雜湊,然後獲取 tx 費用(消耗的氣體)並將其轉換為 Wei。
  3. 再次使用 Web3將轉換後的金額從0x3發送到0x1 。

這是解決此類問題的非常簡單明了的方法。但請注意,您將花費更多,因為0x3還必須支付退款費用。

只有當 0x1 是合約時才有可能。然後 0x3 可以呼叫 0x1 上的方法,將令牌發送到 0x2。

如果 0x1 不能是契約,請查看someart 的答案

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