| | |
| | | } |
| | | |
| | | 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"; |
| | |
| | | } 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; |
| | | } |
| | | |
| | |
| | | } |
| | | 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("1000000", 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 ""; |
| | | } |
| | | } |
| | | } |