Transactions

使用 web3j 進行離線交易簽名?

  • May 22, 2021

我想離線生成並簽署交易,然後使用不同的帳戶發送該交易。我找到了一些 web3js 資源並且我已經閱讀了 web3 文件,但是我還沒有找到任何明確的解決方案來使用 web3j 在 Java 中執行此操作。謝謝您的幫助。

我認為這樣的事情應該有效

// Create the Transaction
RawTransaction rawTransaction = RawTransaction.createEtherTransaction(<nonce>, <gasPrice>, 
      <gasLimit>, <to>, <value>);  

// Sign the Transaction
byte[] signedMessage = TransactionEncoder.signMessage(rawTransaction, <your-Credentials>);

String hexValue = Numeric.toHexString(signedMessage);

然後將 hexValue 交給第三方廣播到網路

更新:現在您需要方法 singMessage 的鏈 ID,如下所示:

long chainId = <the id of the used chain>
byte[] signedMessage = TransactionEncoder.signMessage(rawTransaction, chainId , <you Credentials>);

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