Web3j

有點困惑。如何使用 Web3j 將乙太幣發送到地址(Android)

  • April 10, 2019

編輯:我使用的是安卓平台

我想我在概念上有點困惑。如果有人能在我嘗試製作應用程序時為我回答這幾個問題,我將不勝感激,這樣我就可以清楚地知道這裡發生了什麼。我正在嘗試同時閱讀和破譯文件。

-我使用 web3j ECKeyPair 類生成了我的地址和私鑰

現在我需要能夠使用該數據將該乙太幣發送到一個地址,但我不確定我應該如何去做

  • 我想我應該使用一種叫做 rawtransaction 的東西,但我的理解又是模糊的
  • 我也希望能夠加密我的私鑰,但是我看到它將數據加密到密鑰庫文件中。有什麼方法可以清除這裡不必要的數據,因為我只是嘗試使用密碼加密私鑰。

如果比我更有知識的成員可以清除“簽署交易”所涉及的步驟,以便可以將乙太幣從一個地址發送到另一個地址,那麼您將對我的設計項目有很大的幫助。

我也不明白如何離線簽署交易,因為我認為簽署交易的目的是為了讓它可以被網路驗證

謝謝你。

你基本上需要三個步驟:

  1. 構造交易對象
  2. 用私鑰簽名
  3. 發布簽名交易

對於第 1 步,您可以執行以下操作:

var from = "0x..."; // The address you are sending ether from
var tx = {
 nonce: web3.eth.getTransactionCount (from),
 chainId: 1, // 1 means Mainnet, more chain IDs here: https://chainid.network/
 to: "0x...", // The address you are sending ether to
 data: "",
 value: value, // The amount of ether to send (in Wei)
 gasPrice: web3.eth.getGasPrice(),
 gas: 21000 // Enough for simple transfer
};

對於第 2 步,您可以:

var signedTx = web3.eth.accounts.signTransaction (tx, privateKey);

對於第 3 步,您可以:

web3.eth.sendSignedTransaction(signedTx);

有關更多資訊,請參閱Web3js 文件

抱歉,我的回答是關於 Web3js,而不是 Web3j。但是,對於 Web3j,步驟基本相同:

  1. 準備交易對象(RawTransaction
  2. 簽名(TransactionEncoder
  3. 發布它(ethSendRawTransaction

詳見官方文件

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