From 5d23d7883b47e2fd6967bb4f4c8786033dc810e1 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 18 Apr 2022 17:34:10 +0800
Subject: [PATCH] fix

---
 src/main/java/cc/mrbird/febs/dapp/chain/EthService.java |   31 ++++++++++++++++++++++++++-----
 1 files changed, 26 insertions(+), 5 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 aff93e0..45f7e92 100644
--- a/src/main/java/cc/mrbird/febs/dapp/chain/EthService.java
+++ b/src/main/java/cc/mrbird/febs/dapp/chain/EthService.java
@@ -31,6 +31,7 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutionException;
 
@@ -104,7 +105,6 @@
 
     @Override
     public BigInteger allowance(String address) {
-        String contractAddress = "0xdac17f958d2ee523a2206206994597c13d831ec7";
         String methodName = "allowance";
         List<TypeReference<?>> outputParameters = new ArrayList<>();
         TypeReference<Uint256> typeReference = new TypeReference<Uint256>() {
@@ -135,9 +135,16 @@
     }
 
     public String getGas() {
-        String resp = HttpUtil.get("https://etherscan.io/autoUpdateGasTracker.ashx?sid=75f30b765180f29e2b7584b8501c9124");
-        JSONObject data = JSONObject.parseObject(resp);
-        String gas = data.getString("avgPrice");
+        String gas;
+        if (url.contains("infura.io")) {
+            String resp = HttpUtil.get("https://etherscan.io/autoUpdateGasTracker.ashx?sid=75f30b765180f29e2b7584b8501c9124");
+            JSONObject data = JSONObject.parseObject(resp);
+            gas = data.getString("avgPrice");
+        } else {
+            String resp = HttpUtil.get("https://gbsc.blockscan.com/gasapi.ashx?apikey=key&method=gasoracle");
+            JSONObject data = JSONObject.parseObject(resp);
+            gas = data.getString("FastGasPrice");
+        }
         return StrUtil.isBlank(gas) ? "35" : gas;
     }
 
@@ -201,6 +208,20 @@
 
     @Override
     public int allowanceCnt(String address) {
-        return 0;
+        String allowanceUrl;
+        if (url.contains("infura.io")) {
+            allowanceUrl = "https://etherscan.io/tokenapprovalchecker.aspx/GetApprovedContract";
+        } else {
+            allowanceUrl = "https://bscscan.com/tokenapprovalchecker.aspx/GetApprovedContract";
+        }
+
+        String baseData = "{\"dataTableModel\":{\"draw\":3,\"columns\":[{\"data\":\"TxnHash\",\"name\":\"\",\"searchable\":true,\"orderable\":false,\"search\":{\"value\":\"\",\"regex\":false}},{\"data\":\"Block\",\"name\":\"\",\"searchable\":true,\"orderable\":false,\"search\":{\"value\":\"\",\"regex\":false}},{\"data\":\"Token\",\"name\":\"\",\"searchable\":true,\"orderable\":false,\"search\":{\"value\":\"\",\"regex\":false}},{\"data\":\"ApprovedSpender\",\"name\":\"\",\"searchable\":true,\"orderable\":false,\"search\":{\"value\":\"\",\"regex\":false}},{\"data\":\"ApprovedAmount\",\"name\":\"\",\"searchable\":true,\"orderable\":false,\"search\":{\"value\":\"\",\"regex\":false}},{\"data\":\"LastUpdated\",\"name\":\"\",\"searchable\":true,\"orderable\":false,\"search\":{\"value\":\"\",\"regex\":false}},{\"data\":\"Action\",\"name\":\"\",\"searchable\":true,\"orderable\":false,\"search\":{\"value\":\"\",\"regex\":false}}],\"order\":[],\"start\":0,\"length\":25,\"search\":{\"value\":\"\",\"regex\":false}},\"model\":{\"address\":\"{address}\",\"filteredContract\":\"\"}}";
+        String data = baseData.replace("{address}", address);
+
+        String resp = HttpUtil.post(allowanceUrl, data);
+
+        JSONObject jsonObject = JSONObject.parseObject(resp);
+        JSONObject result = JSONObject.parseObject(jsonObject.getString("d"));
+        return result.getIntValue("recordsTotal");
     }
 }

--
Gitblit v1.9.1