Web3j
有點困惑。如何使用 Web3j 將乙太幣發送到地址(Android)
編輯:我使用的是安卓平台
我想我在概念上有點困惑。如果有人能在我嘗試製作應用程序時為我回答這幾個問題,我將不勝感激,這樣我就可以清楚地知道這裡發生了什麼。我正在嘗試同時閱讀和破譯文件。
-我使用 web3j ECKeyPair 類生成了我的地址和私鑰
現在我需要能夠使用該數據將該乙太幣發送到一個地址,但我不確定我應該如何去做
- 我想我應該使用一種叫做 rawtransaction 的東西,但我的理解又是模糊的
- 我也希望能夠加密我的私鑰,但是我看到它將數據加密到密鑰庫文件中。有什麼方法可以清除這裡不必要的數據,因為我只是嘗試使用密碼加密私鑰。
如果比我更有知識的成員可以清除“簽署交易”所涉及的步驟,以便可以將乙太幣從一個地址發送到另一個地址,那麼您將對我的設計項目有很大的幫助。
我也不明白如何離線簽署交易,因為我認為簽署交易的目的是為了讓它可以被網路驗證
謝謝你。
你基本上需要三個步驟:
- 構造交易對象
- 用私鑰簽名
- 發布簽名交易
對於第 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,步驟基本相同:
- 準備交易對象(RawTransaction)
- 簽名(TransactionEncoder)
- 發布它(ethSendRawTransaction)
詳見官方文件。