Transactions
乙太幣:在不發送交易的情況下獲取交易雜湊
我的交易失敗了,所以當我呼叫 ethers.wallet.sendTransaction(tx) 時,它沒有給我一個可以用來調試它的雜湊值。tx 對像有 4 個欄位:from、to、data、value。如果我做
const txSigned = await wallet.signTransaction({ ...tx, gasPrice, gasLimit: BigNumber.from("2000000"), }); console.log("Tx hash wrong:", ethers.utils.keccak256(txSigned));
那麼這個出現的值實際上並不匹配正確的交易雜湊。有誰知道我如何使用乙太幣來獲得這樣的交易雜湊,以調試失敗的交易?我可以手動轉到本地鏈本身並查看失敗的 tx 雜湊,但這不能在我的程式碼本身內部進行操作。
在事務完成之前無法獲取事務雜湊。因為要生成交易雜湊,一些欄位是必需的,這些欄位在交易完成之前不可用
您正確計算了雜湊- 它是已
keccak256
簽名交易的雜湊。其他地方有問題。嘗試通過 發送簽名的 tx
provider.sendTransaction
,因為signer.sendTransaction
可以重新計算 gas 或 smth。否則,雜湊將不同。或者,在手動簽署交易時,您會錯過該
chainId
欄位並通過Wallet
它簽名會添加chainId
.