Web3j
將乙太幣從一方轉移到另一方
我正在嘗試使用 web3j 和使用以下程式碼的 java 程序將 ETH 從一個帳戶轉移到另一個帳戶。
public void transfer (String from, String to, BigInteger amount) throws InterruptedException, ExecutionException, IOException, CipherException{ Credentials credentials1 = WalletUtils.loadCredentials( "mypassword", "path\\to\\keystore"); EthGetTransactionCount ethGetTransactionCount = web3.ethGetTransactionCount( from, DefaultBlockParameterName.LATEST).sendAsync().get(); BigInteger nonce = ethGetTransactionCount.getTransactionCount(); System.out.println(nonce); RawTransaction rawTransaction = RawTransaction.createEtherTransaction ( nonce, Convert.toWei("22", Convert.Unit.MWEI).toBigInteger(), Convert.toWei("44", Convert.Unit.GWEI).toBigInteger(), to, amount); byte[] signedMessage = TransactionEncoder.signMessage(rawTransaction, credentials1); String hexValue = Numeric.toHexString(signedMessage); EthSendTransaction ethSendTransaction = web3.ethSendRawTransaction(hexValue).sendAsync().get(); String transactionHash = ethSendTransaction.getTransactionHash(); }
但我無法讓它工作。此外,nonce 不會改變並繼續返回 44。
我在 Ropsten 測試網上執行它。
有什麼想法嗎?
謝謝,科恩
在 web3 創建者的幫助下,我能夠解決這個問題。
添加:
... static final BigInteger GAS_PRICE = BigInteger.valueOf(20_000_000_000L); static final BigInteger GAS_LIMIT = BigInteger.valueOf(4_300_000); ...
和
... RawTransaction rawTransaction = RawTransaction.createEtherTransaction ( nonce, GAS_PRICE, GAS_LIMIT, to, amount); ...
我設法轉移了乙太。