xiaoyong931011
2022-12-30 0e928b86a1619af790abd7fb6e00b596dfb17164
20221227 充值归集
1 files modified
29 ■■■■ changed files
src/main/java/cc/mrbird/febs/mall/chain/service/UsdtErc20UpdateService.java 29 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/chain/service/UsdtErc20UpdateService.java
@@ -10,6 +10,7 @@
import org.springframework.stereotype.Service;
import org.web3j.crypto.Credentials;
import org.web3j.protocol.Web3j;
import org.web3j.protocol.core.DefaultBlockParameter;
import org.web3j.protocol.core.DefaultBlockParameterName;
import org.web3j.protocol.core.DefaultBlockParameterNumber;
import org.web3j.protocol.core.methods.request.EthFilter;
@@ -63,7 +64,7 @@
    }
    //private static String blockchainNode = "http://114.55.250.231:8545";
    private static String blockchainNode = "http://120.55.86.146:8545";
    private static String blockchainNode = "https://bsc-dataseed1.ninicoin.io";
//    private static String contractAddr = "0xdac17f958d2ee523a2206206994597c13d831ec7";
@@ -83,14 +84,17 @@
            ALL_ADDRESS_LIST.addAll(tdCoinWallets);
        }
        // 获取最新区块
        String string = redisUtils.getString(ETH_USDT_BLOCK_NUM);
//        String string = redisUtils.getString(ETH_USDT_BLOCK_NUM);
        String string = "24317595";
        if(string==null){
            string = "24317595";
        }
        BigInteger blockNum = new BigInteger(string);
        Credentials credentials = Credentials.create(privateKey);
        EthUsdtContract contract = EthUsdtContract.load(contractAddr, getInstance(), credentials, getStaticGasProvider());
        EthFilter filter = getFilter(blockNum);
        EthFilter filter = getFilter(blockNum,null,contractAddr);
        Map<String,BigInteger> map = new HashMap<String,BigInteger>();
        map.put("blockNum",blockNum);
        contract.transferEventFlowable(filter).subscribe(e->{
@@ -127,6 +131,25 @@
            return new EthFilter(DefaultBlockParameterName.EARLIEST,
                    DefaultBlockParameterName.LATEST, contractAddr);
        }
    }
    private static EthFilter getFilter(BigInteger startBlock, BigInteger endBlock, String contractAddress) {
        DefaultBlockParameter startParameterName = null;
        DefaultBlockParameter endParameterName = null;
        if (startBlock != null) {
            startParameterName = new DefaultBlockParameterNumber(startBlock);
        } else {
            startParameterName = DefaultBlockParameterName.EARLIEST;
        }
        if (endBlock != null) {
            endParameterName = new DefaultBlockParameterNumber(endBlock);
        } else {
            endParameterName = DefaultBlockParameterName.LATEST;
        }
        return new EthFilter(startParameterName, endParameterName, contractAddress);
    }
}