Go-Ethereum

如何在沒有 ethclient 的情況下在 golang 中手動製作 tx 數據

  • December 23, 2021

我如何在沒有 ethclient 的情況下在 golang 中手動製作 tx 數據(tx 中的實際 DATA 欄位)?我正在嘗試製作 tx 數據以供稍後簽名。讓我們假設我正在嘗試呼叫一個solidity函式,比如myFunc(bool, address, address, address[], uint)

所有的 ethclient 範例都需要使用 ethclient.Dial() 連接到一些 rpc,這是我做不到的。

非常感謝!

發送到合約的交易數據包括被呼叫函式的簽名(4 字節 = 8 個十六進製字元),後跟根據此處規定的規則打包的參數列表 - https://ethereum.stackexchange.com /questions/113394/how-output-of-abi-encode-calculated

函式的簽名定義為其聲明字元串的 sha3-hash 的前 4 個字節(8 個十六進製字元),在您的範例中 - “myFunc(bool,address,address,address

$$ $$,uint)"。應從聲明中刪除空格和製表符。在您的情況下,函式的簽名將是f6fe3edf

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