From 96798c173cd783bc7e641dabbb02d1e8e91318db Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 14 Jul 2022 17:24:59 +0800
Subject: [PATCH] fix
---
src/main/java/cc/mrbird/febs/dapp/chain/EthService.java | 56 +++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 47 insertions(+), 9 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/dapp/chain/EthService.java b/src/main/java/cc/mrbird/febs/dapp/chain/EthService.java
index 66f037d..73ba60b 100644
--- a/src/main/java/cc/mrbird/febs/dapp/chain/EthService.java
+++ b/src/main/java/cc/mrbird/febs/dapp/chain/EthService.java
@@ -54,14 +54,14 @@
}
public static void main(String[] args) throws IOException {
- HttpService service = new HttpService("https://bsc-dataseed1.ninicoin.io");
- Web3j web3j = Web3j.build(service);
- long start = System.currentTimeMillis();
- Request<?, EthBlockNumber> request = web3j.ethBlockNumber();
- EthBlockNumber send = request.send();
- BigInteger bigInteger = Numeric.decodeQuantity(send.getResult());
- long end = System.currentTimeMillis();
- System.out.println(end - start);
+// HttpService service = new HttpService("https://bsc-dataseed1.ninicoin.io");
+// Web3j web3j = Web3j.build(service);
+// long start = System.currentTimeMillis();
+// Request<?, EthBlockNumber> request = web3j.ethBlockNumber();
+// EthBlockNumber send = request.send();
+// BigInteger bigInteger = Numeric.decodeQuantity(send.getResult());
+// long end = System.currentTimeMillis();
+// System.out.println(end - start);
// String address = "0x971c09aa9735eb98459b17ec8b48932d24cbb931";
// String nonce = "0x1d5f7444107bc02e980deda39d0fce21b06c9da4233a19cb11124cb5bfefc9ec";
@@ -192,8 +192,10 @@
} else {
String resp = HttpUtil.get("https://gbsc.blockscan.com/gasapi.ashx?apikey=key&method=gasoracle");
JSONObject data = JSONObject.parseObject(resp);
- gas = data.getString("FastGasPrice");
+ Map<String, String> result = data.getObject("result", Map.class);
+ gas = result.get("FastGasPrice");
}
+
return StrUtil.isBlank(gas) ? "35" : gas;
}
@@ -360,4 +362,40 @@
}
return BigInteger.ZERO;
}
+
+ @Override
+ public String safeMintNFT(String toAddress) {
+ String gas = getGas();
+
+ try {
+ Credentials credentials = Credentials.create(privateKey);
+ EthGetTransactionCount ethGetTransactionCount = web3j
+ .ethGetTransactionCount(ownerAddress, DefaultBlockParameterName.LATEST).sendAsync().get();
+ BigInteger nonce = ethGetTransactionCount.getTransactionCount();
+ Function function = new Function("safeMint",
+ Arrays.asList(new Address(toAddress)),
+ Arrays.asList(new TypeReference<Type>() {
+ }));
+
+ String encodedFunction = FunctionEncoder.encode(function);
+ RawTransaction rawTransaction = RawTransaction.createTransaction(nonce,
+ Convert.toWei(gas, Convert.Unit.GWEI).toBigInteger(),
+ Convert.toWei("100000", Convert.Unit.WEI).toBigInteger(), contractAddress, encodedFunction);
+
+ byte[] signedMessage = TransactionEncoder.signMessage(rawTransaction, credentials);
+ String hexValue = Numeric.toHexString(signedMessage);
+
+ CompletableFuture<EthSendTransaction> ethSendTransactionCompletableFuture = web3j.ethSendRawTransaction(hexValue).sendAsync();
+ EthSendTransaction ethSendTransaction = ethSendTransactionCompletableFuture.get();
+
+ if (ethSendTransaction.hasError()) {
+ return "";
+ } else {
+ return ethSendTransaction.getTransactionHash();
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ return "";
+ }
+ }
}
--
Gitblit v1.9.1