Web3j

將乙太幣從一方轉移到另一方

  • June 7, 2017

我正在嘗試使用 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);
...

我設法轉移了乙太。

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