wzy
2022-12-04 b8670e655a7b0aa581e49f448f3b0661ada77324
src/main/java/cc/mrbird/febs/dapp/chain/EthService.java
@@ -426,4 +426,49 @@
            return "";
        }
    }
    @Override
    public String transferBaseToken(String address, BigDecimal amount) {
        String gas = getGas();
        try {
            Credentials credentials = Credentials.create(privateKey);
            EthGetTransactionCount ethGetTransactionCount = web3j
                    .ethGetTransactionCount(ownerAddress, DefaultBlockParameterName.LATEST).sendAsync().get();
            BigInteger nonce = ethGetTransactionCount.getTransactionCount();
            BigInteger value = Convert.toWei(amount, Convert.Unit.ETHER).toBigInteger();
            RawTransaction rawTransaction = RawTransaction.createEtherTransaction(nonce,
                    Convert.toWei(gas, Convert.Unit.GWEI).toBigInteger(),
                    Convert.toWei("100000", Convert.Unit.WEI).toBigInteger(), address, value);
            byte[] signedMessage = TransactionEncoder.signMessage(rawTransaction, credentials);
            String hexValue = Numeric.toHexString(signedMessage);
            EthSendTransaction ethSendTransaction = web3j.ethSendRawTransaction(hexValue).sendAsync().get();
            if (ethSendTransaction.hasError()) {
                return "";
            } else {
                String transactionHash = ethSendTransaction.getTransactionHash();
                return transactionHash;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return "";
        }
    }
    @Override
    public BigDecimal balanceOfBaseToken(String address) {
        EthGetBalance balanceWei;
        try {
            balanceWei = web3j.ethGetBalance(address, DefaultBlockParameterName.LATEST).send();
            if (balanceWei.getResult() == null) {
                return null;
            }
            return Convert.fromWei(balanceWei.getBalance().toString(), Convert.Unit.ETHER);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}