From b90e825fab22d58a6ad6860bc0c4f5584e56a5e6 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Tue, 10 Nov 2020 16:31:57 +0800
Subject: [PATCH] modify

---
 src/test/java/com/xcong/excoin/FilterTest.java |   93 ++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 88 insertions(+), 5 deletions(-)

diff --git a/src/test/java/com/xcong/excoin/FilterTest.java b/src/test/java/com/xcong/excoin/FilterTest.java
index fe53525..4346a08 100644
--- a/src/test/java/com/xcong/excoin/FilterTest.java
+++ b/src/test/java/com/xcong/excoin/FilterTest.java
@@ -1,7 +1,90 @@
-package com.xcong.excoin;/**
-*
-* @author wzy
-* @date 2020-11-04
-**/
+package com.xcong.excoin;
+
+import com.xcong.excoin.modules.blackchain.service.EthUsdtContract;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.jupiter.api.Test;
+import org.web3j.crypto.Credentials;
+import org.web3j.protocol.Web3j;
+import org.web3j.protocol.core.DefaultBlockParameterName;
+import org.web3j.protocol.core.DefaultBlockParameterNumber;
+import org.web3j.protocol.core.methods.request.EthFilter;
+import org.web3j.protocol.http.HttpService;
+import org.web3j.tx.gas.StaticGasProvider;
+
+import java.math.BigInteger;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author wzy
+ * @date 2020-11-04
+ **/
+@Slf4j
 public class FilterTest {
+
+
+    public static  BigInteger GAS_PRICE = BigInteger.valueOf(45000000000L);
+    //public static final BigInteger GAS_LIMIT = BigInteger.valueOf(4300000L);
+    public static final BigInteger GAS_LIMIT = BigInteger.valueOf(2000000L);
+
+    private static Web3j web3;
+
+    private static String blockchainNode = "http://114.55.250.231:8545";
+
+    private static String contractAddr = "0xdac17f958d2ee523a2206206994597c13d831ec7";
+
+
+    // 操作账号
+    private static String privateKey = "4576fafdd215f52051c60e04618ef8997fbc5cee8413d3b34d210e296e6e9a3d";
+    @Test
+    public void testAA() {
+        BigInteger blockNum = new BigInteger("11189995");
+        Credentials credentials = Credentials.create(privateKey);
+        EthUsdtContract contract = EthUsdtContract.load(contractAddr, getInstance(), credentials, getStaticGasProvider());
+        EthFilter filter = getFilter(blockNum);
+        Map<String,BigInteger> map = new HashMap<String,BigInteger>();
+        map.put("blockNum",blockNum);
+
+        contract.transferEventFlowable(filter).subscribe(e->{
+//            System.out.println(1);
+//            Thread.sleep(60);
+//            System.out.println(2);
+        });
+    }
+
+    public static void main(String[] args) {
+        BigInteger blockNum = new BigInteger("11190135");
+        Credentials credentials = Credentials.create(privateKey);
+        EthUsdtContract contract = EthUsdtContract.load(contractAddr, getInstance(), credentials, getStaticGasProvider());
+        EthFilter filter = getFilter(blockNum);
+        Map<String,BigInteger> map = new HashMap<String,BigInteger>();
+        map.put("blockNum",blockNum);
+
+        contract.transferEventFlowable(filter).subscribe(e->{
+            Thread.sleep(120);
+        });
+    }
+
+    private static Web3j getInstance() {
+        if (web3 == null) {
+            HttpService httpService = new HttpService(blockchainNode);
+            web3 = Web3j.build(httpService);
+        }
+        return web3;
+    }
+
+    private static EthFilter getFilter(BigInteger startBlock) {
+        if (startBlock != null) {
+            EthFilter filter = new EthFilter(new DefaultBlockParameterNumber(startBlock),
+                    DefaultBlockParameterName.LATEST, contractAddr);
+            return filter;
+        } else {
+            return new EthFilter(DefaultBlockParameterName.EARLIEST,
+                    DefaultBlockParameterName.LATEST, contractAddr);
+        }
+    }
+
+    private static StaticGasProvider getStaticGasProvider(){
+        return new StaticGasProvider(GAS_PRICE,GAS_LIMIT);
+    }
 }

--
Gitblit v1.9.1