Helius
2022-06-09 8f090c91e2e2b0536d0900b935948e77a5f0979d
fix some problem
22 files modified
1 files added
264 ■■■■ changed files
src/main/java/cc/mrbird/febs/common/contants/AppContants.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/chain/ChainEnum.java 14 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/chain/ChainService.java 22 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/chain/ContractChainService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/chain/EthService.java 28 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/chain/TrxService.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/entity/DappFundFlowEntity.java 6 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java 18 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java 50 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/utils/OnlineTransferUtil.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/job/MineProfitJob.java 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/job/SystemInit.java 29 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/job/SystemTradeJob.java 1 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java 1 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java 3 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java 17 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/rabbit/producer/ChainProducer.java 6 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/dapp/DappMemberDao.xml 7 ●●●●● patch | view | raw | blame | history
src/test/java/cc/mrbird/febs/ChainTest.java 26 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/contants/AppContants.java
@@ -153,6 +153,8 @@
    public static final String DIC_VALUE_SYSTEM_START_TARGET = "SYSTEM_START_TARGET";
    public static final String DIC_VALUE_SYSTEM_SOURCE_POOL_VOL = "SYSTEM_SOURCE_POOL_VOL";
    public static final String DIC_VALUE_SYSTEM_NODE_CNT_LIMIT = "SYSTEM_NODE_CNT_LIMIT";
    // 用户购买奖励比例(给上级)
    public static final String DIC_VALUE_USER_BUY_REWARD = "USER_BUY_REWARD";
    public static final String DESTROY_ADDRESS = "0x0000000000000000000000000000000000000001";
src/main/java/cc/mrbird/febs/dapp/chain/ChainEnum.java
@@ -31,7 +31,7 @@
     */
    BSC_USDT("BSC", "0x977a9ddfb965a9a3416fa72ca7f91c4949c18f25",
            "0xefe98e00cd227b6322e892c82fcbd8eadf119c3188b7e574bc624f65405d61bf",
            "https://data-seed-prebsc-2-s2.binance.org:8545",
            "https://data-seed-prebsc-2-s1.binance.org:8545",
            "0x337610d27c682E347C9cD60BD4b3b107C9d34dDd",
            ""),
@@ -43,7 +43,7 @@
     */
    BSC_TFC("BSC", "0x977a9ddfb965a9a3416fa72ca7f91c4949c18f25",
            "0xefe98e00cd227b6322e892c82fcbd8eadf119c3188b7e574bc624f65405d61bf",
            "https://data-seed-prebsc-2-s2.binance.org:8545",
            "https://data-seed-prebsc-2-s1.binance.org:8545",
            "0xdd92ea2f41d807a60b29004bf7db807d8ac09212",
            ""),
@@ -52,7 +52,7 @@
     */
    BSC_TFC_SOURCE("BSC", "0x4EbDCA102623b46a47042D580dddAdE2a53D057F",
            "0x81c2c02d0c106c1e32ab060a37f6eb279c0649c30ea5cc1c4951e6a8dd4e963c",
            "https://data-seed-prebsc-2-s2.binance.org:8545",
            "https://data-seed-prebsc-2-s1.binance.org:8545",
            "0xdd92ea2f41d807a60b29004bf7db807d8ac09212",
            ""),
@@ -61,7 +61,7 @@
     */
    BSC_USDT_SOURCE("BSC", "0x4EbDCA102623b46a47042D580dddAdE2a53D057F",
            "0x81c2c02d0c106c1e32ab060a37f6eb279c0649c30ea5cc1c4951e6a8dd4e963c",
            "https://data-seed-prebsc-2-s2.binance.org:8545",
            "https://data-seed-prebsc-2-s1.binance.org:8545",
            "0x337610d27c682E347C9cD60BD4b3b107C9d34dDd",
            ""),
@@ -70,7 +70,7 @@
     */
    BSC_TFC_MAKE("BSC", "0xBae24dAa3aB94cfF8114a16A4267D769b3a651F8",
            "0xc0cabaf5f1fce227e5f1b8a7f83a5dc28972389ffc59559d7852ce8d27c3bec4",
            "https://data-seed-prebsc-2-s2.binance.org:8545",
            "https://data-seed-prebsc-2-s1.binance.org:8545",
            "0xdd92ea2f41d807a60b29004bf7db807d8ac09212",
            ""),
@@ -79,7 +79,7 @@
     */
    BSC_TFC_TECH("BSC", "0xD998DA7362360eFC6daDFEd6E9a32E70640d7600",
            "",
            "https://data-seed-prebsc-2-s2.binance.org:8545",
            "https://data-seed-prebsc-2-s1.binance.org:8545",
            "0xdd92ea2f41d807a60b29004bf7db807d8ac09212",
            ""),
@@ -88,7 +88,7 @@
     */
    BSC_TFC_REWARD("BSC", "0xBae24dAa3aB94cfF8114a16A4267D769b3a651F8",
            "0xc0cabaf5f1fce227e5f1b8a7f83a5dc28972389ffc59559d7852ce8d27c3bec4",
            "https://data-seed-prebsc-2-s2.binance.org:8545",
            "https://data-seed-prebsc-2-s1.binance.org:8545",
            "0xdd92ea2f41d807a60b29004bf7db807d8ac09212",
            "");
src/main/java/cc/mrbird/febs/dapp/chain/ChainService.java
@@ -108,17 +108,19 @@
    }
    public static void main(String[] args) {
        ChainEnum chain = ChainEnum.getValueByName(ChainEnum.BSC_TFC.name());
        assert chain != null;
//        ChainEnum chain = ChainEnum.getValueByName(ChainEnum.BSC_TFC.name());
//        assert chain != null;
//
//        EthUsdtContract contract = contract(chain.getPrivateKey(), chain.getContractAddress(), chain.getUrl());
//        EthFilter filter = getFilter(new BigInteger("18097238"), chain.getContractAddress());
//
//        contract.transferEventFlowable(filter).subscribe(e -> {
//            System.out.println(1);
//        }, error -> {
//            log.error("--->", error);
//        });
        EthUsdtContract contract = contract(chain.getPrivateKey(), chain.getContractAddress(), chain.getUrl());
        EthFilter filter = getFilter(new BigInteger("18097238"), chain.getContractAddress());
        contract.transferEventFlowable(filter).subscribe(e -> {
            System.out.println(1);
        }, error -> {
            log.error("--->", error);
        });
        System.out.println(ChainService.getInstance(ChainEnum.BSC_TFC.name()).totalSupply());
    }
}
src/main/java/cc/mrbird/febs/dapp/chain/ContractChainService.java
@@ -22,4 +22,6 @@
    int decimals();
    BigInteger blockNumber();
    BigInteger totalSupply();
}
src/main/java/cc/mrbird/febs/dapp/chain/EthService.java
@@ -332,4 +332,32 @@
        }
    }
    @Override
    public BigInteger totalSupply() {
        try {
            String methodName = "totalSupply";
            List<Type> inputParameters = new ArrayList<>();
            List<TypeReference<?>> outputParameters = new ArrayList<>();
            TypeReference<Uint256> typeReference = new TypeReference<Uint256>() {
            };
            outputParameters.add(typeReference);
            Function function = new Function(methodName, inputParameters, outputParameters);
            String data = FunctionEncoder.encode(function);
            Transaction transaction = Transaction.createEthCallTransaction(null, contractAddress, data);
            EthCall ethCall;
            BigInteger totalSupply = BigInteger.ZERO;
            try {
                ethCall = web3j.ethCall(transaction, DefaultBlockParameterName.LATEST).send();
                List<Type> results = FunctionReturnDecoder.decode(ethCall.getValue(), function.getOutputParameters());
                totalSupply = (BigInteger) results.get(0).getValue();
                return totalSupply.divide(BigInteger.TEN.pow(decimals()));
            } catch (IOException e) {
                e.printStackTrace();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return BigInteger.ZERO;
    }
}
src/main/java/cc/mrbird/febs/dapp/chain/TrxService.java
@@ -108,4 +108,9 @@
    public BigInteger blockNumber() {
        return null;
    }
    @Override
    public BigInteger totalSupply() {
        return null;
    }
}
src/main/java/cc/mrbird/febs/dapp/entity/DappFundFlowEntity.java
@@ -26,7 +26,11 @@
    public DappFundFlowEntity() {}
    public DappFundFlowEntity(Long memberId, BigDecimal amount, Integer type, Integer status, BigDecimal fee) {
        new DappFundFlowEntity(memberId, amount, type, status, fee, null);
        this.memberId = memberId;
        this.amount = amount;
        this.type = type;
        this.status = status;
        this.fee = fee;
    }
    public DappFundFlowEntity(Long memberId, BigDecimal amount, Integer type, Integer status, BigDecimal fee, String fromHash) {
src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
@@ -28,4 +28,6 @@
    List<DappMemberEntity> selectParentsList(@Param("list") List<String> inviteIds, @Param("size") Integer size);
    BigDecimal selectAllBalance(@Param("accountType") String accountType);
    List<DappMemberEntity> selectMemberByAccountType(@Param("accountType") String accountType);
}
src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java
@@ -26,4 +26,11 @@
    void mining();
    void onlineTransfer(String batchNo);
    /**
     * 用户购买奖励
     *
     * @param id
     */
    void userBuyReward(Long id);
}
src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java
@@ -89,12 +89,13 @@
                return;
            }
//            DappMemberEntity fromMember = dappMemberService.findByAddress(e.from, null);
//            if (fromMember == null) {
//                DappMemberEntity sourceAddress = dappMemberDao.selectByAddress(ChainEnum.BSC_TFC.getAddress(), null);
//                fromMember = dappMemberService.insertMember(e.from, sourceAddress.getInviteId());
//                return;
//            }
            // 更新余额
            DappMemberEntity fromMember = dappMemberService.findByAddress(e.from, null);
            if (fromMember != null) {
                BigDecimal balance = ChainService.getInstance(ChainEnum.BSC_TFC.name()).balanceOf(e.from);
                fromMember.setBalance(balance);
                dappMemberService.updateById(fromMember);
            }
            BigInteger tokens = e.tokens;
            BigDecimal amount = BigDecimal.valueOf(tokens.intValue()).divide(BigDecimal.TEN.pow(decimals), decimals, RoundingMode.HALF_DOWN);
@@ -109,8 +110,11 @@
                if (toMember.getActiveStatus() == 2) {
                    toMember.setActiveStatus(1);
                    dappMemberService.updateById(toMember);
                }
                // 更新余额
                BigDecimal balance = ChainService.getInstance(ChainEnum.BSC_TFC.name()).balanceOf(e.to);
                toMember.setBalance(balance);
                dappMemberService.updateById(toMember);
                OnlineTransferUtil.addTransferRecord(e.from, e.to, amount, e.log.getTransactionHash(), DappTransferRecordEntity.TRANSFER_SOURCE_FLAG_ONLINE, AppContants.SYMBOL_COIN);
            }
src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java
@@ -64,15 +64,13 @@
            // 如果得到触发,则休眠10秒。 因为此处监听器触发可能优先于前端调用transfer接口
            try {
                Thread.sleep(5000);
                Thread.sleep(10000);
            } catch (InterruptedException ex) {
                ex.printStackTrace();
            }
            ContractChainService sourceUsdtInstance = ChainService.getInstance(ChainEnum.BSC_USDT.name());
            int decimals = sourceUsdtInstance.decimals();
            int tfcDecimals = ChainService.getInstance(ChainEnum.BSC_TFC.name()).decimals();
            if (e.from.equals("0xaa25aa7a19f9c426e07dee59b12f944f4d9f1dd3")) {
                return;
            }
@@ -155,6 +153,9 @@
                // 发送转账消息
                chainProducer.sendOnlineTransfer(JSONObject.toJSONString(map));
                // 发送购买奖励消息
                chainProducer.sendUserBuyReward(fundFlow.getId());
            }
        }
    }
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
@@ -24,6 +24,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.math.RoundingMode;
import java.util.*;
@@ -207,15 +208,21 @@
    @Override
    public void mining() {
        log.info("挖矿");
        ContractChainService contract = ChainService.getInstance(ChainEnum.BSC_TFC.name());
        // 发行量
        BigInteger totalSupply = contract.totalSupply();
        Object o = redisUtils.get(AppContants.REDIS_KEY_MINE_ALL_INTERNET_CNT);
        if (o == null) {
            return;
        BigDecimal totalUnHold = contract.balanceOf(AppContants.DESTROY_ADDRESS);
        List<DappMemberEntity> admin = dappMemberDao.selectMemberByAccountType("admin");
        for (DappMemberEntity member : admin) {
            totalUnHold = totalUnHold.add(contract.balanceOf(member.getAddress()));
        }
        Object transferPoolObj = redisUtils.get(AppContants.REDIS_KEY_MINE_TRANSFER_POOL_TRADE_CNT);
        BigDecimal allInternet = (BigDecimal) o;
        // 全网持币量
        BigDecimal allInternet = new BigDecimal(totalSupply).subtract(totalUnHold);
        // 中转池交易量
        BigDecimal transferPoll = (BigDecimal) transferPoolObj;
        List<DappMemberEntity> allMembers = dappMemberDao.selectList(null);
@@ -242,7 +249,12 @@
                continue;
            }
            DappFundFlowEntity fundFlow = new DappFundFlowEntity(member.getId(), mine, 3, 2, BigDecimal.ZERO);
            dappFundFlowDao.insert(fundFlow);
            OnlineTransferUtil.addTransfer(member.getAddress(), mine, 3, 1, ChainEnum.BSC_TFC.name(), AppContants.SYMBOL_COIN, batchNo);
            member.setBalance(balance);
            dappMemberDao.updateById(member);
        }
        Map<String, String> map = new HashMap<>();
@@ -291,4 +303,34 @@
            }
        }
    }
    @Override
    public void userBuyReward(Long id) {
        DappFundFlowEntity fundFlow = dappFundFlowDao.selectById(id);
        DappMemberEntity member = dappMemberDao.selectById(fundFlow.getMemberId());
        DappMemberEntity referer = dappMemberDao.selectMemberInfoByInviteId(member.getRefererId());
        if (referer == null || "admin".equals(referer.getAccountType())) {
            return;
        }
        DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(AppContants.DIC_TYPE_SYSTEM_SETTING, AppContants.DIC_VALUE_USER_BUY_REWARD);
        BigDecimal prop = new BigDecimal(dic.getValue()).divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP);
        BigDecimal reward = fundFlow.getAmount().multiply(prop);
        BigDecimal balance = ChainService.getInstance(ChainEnum.BSC_TFC_REWARD.name()).balanceOf(ChainEnum.BSC_TFC_REWARD.getAddress());
        if (balance.compareTo(reward) < 1) {
            return;
        }
        DappFundFlowEntity rewardFlow = new DappFundFlowEntity(referer.getId(), reward, 4, 2, BigDecimal.ZERO);
        dappFundFlowDao.insert(rewardFlow);
        OnlineTransferUtil.addTransfer(referer.getAddress(), reward, 4, 1, ChainEnum.BSC_TFC_REWARD.name(), AppContants.SYMBOL_COIN, rewardFlow.getId().toString());
        Map<String, String> map = new HashMap<>();
        map.put("batchNo", rewardFlow.getId().toString());
        map.put("type", "batch");
        chainProducer.sendOnlineTransfer(JSONObject.toJSONString(map));
    }
}
src/main/java/cc/mrbird/febs/dapp/utils/OnlineTransferUtil.java
@@ -1,8 +1,10 @@
package cc.mrbird.febs.dapp.utils;
import cc.mrbird.febs.common.utils.SpringContextUtil;
import cc.mrbird.febs.dapp.entity.DappFundFlowEntity;
import cc.mrbird.febs.dapp.entity.DappOnlineTransferEntity;
import cc.mrbird.febs.dapp.entity.DappTransferRecordEntity;
import cc.mrbird.febs.dapp.mapper.DappFundFlowDao;
import cc.mrbird.febs.dapp.mapper.DappOnlineTransferDao;
import cc.mrbird.febs.dapp.mapper.DappTransferRecordDao;
@@ -51,4 +53,5 @@
    public static void addTransferRecord(String fromAddress, String toAddress, BigDecimal amount, String hash, String sourceFlag, String symbol) {
        addTransferRecord(fromAddress, toAddress, amount, hash, "BSC", sourceFlag, symbol);
    }
}
src/main/java/cc/mrbird/febs/job/MineProfitJob.java
@@ -42,7 +42,7 @@
    @Autowired
    private RedisUtils redisUtils;
    @Scheduled(cron = "0 0 2 * * ? ")
//    @Scheduled(cron = "0 0 2 * * ? ")
    @Transactional(rollbackFor = Exception.class)
    public void start() {
        log.info("返利执行");
src/main/java/cc/mrbird/febs/job/SystemInit.java
New file
@@ -0,0 +1,29 @@
package cc.mrbird.febs.job;
import cc.mrbird.febs.common.contants.AppContants;
import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.dapp.chain.ChainEnum;
import cc.mrbird.febs.dapp.chain.ChainService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.math.BigDecimal;
/**
 * @author wzy
 * @date 2022-06-09
 **/
@Slf4j
@Component
public class SystemInit {
    @Autowired
    private RedisUtils redisUtils;
    @PostConstruct
    public void init() {
        log.info("系统参数初始化");
    }
}
src/main/java/cc/mrbird/febs/job/SystemTradeJob.java
@@ -132,6 +132,7 @@
     */
    @Scheduled(cron = "0 0 2 * * ?")
    public void mineJob() {
        log.info("挖矿");
        systemService.mining();
    }
}
src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java
@@ -8,4 +8,5 @@
    public static final String ONLINE_TRANSFER = "queue_online_transfer";
    public static final String DISTRIB_PROFIT = "queue_distrib_profit";
    public static final String USER_BUY_REWARD = "queue_user_buy_reward";
}
src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java
@@ -7,7 +7,8 @@
public enum QueueEnum {
    ONLINE_TRANSFER("exchange_online_transfer", "route_key_online_transfer", "queue_online_transfer"),
    DISTRIB_PROFIT("exchange_distrib_profit", "route_key_distrib_profit", "queue_distrib_profit");
    DISTRIB_PROFIT("exchange_distrib_profit", "route_key_distrib_profit", "queue_distrib_profit"),
    USER_BUY_REWARD("exchange_user_buy_reward", "route_key_user_buy_reward", "queue_user_buy_reward");
    private String exchange;
src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java
@@ -58,4 +58,21 @@
    public Binding distribProfitBind() {
        return BindingBuilder.bind(distribProfitQueue()).to(distribProfitExchange()).with(QueueEnum.DISTRIB_PROFIT.getRoute());
    }
    // === 用户购买奖励 start ===
    @Bean
    public DirectExchange userBuyRewardExchange() {
        return new DirectExchange(QueueEnum.USER_BUY_REWARD.getExchange());
    }
    @Bean
    public Queue userBuyRewardQueue() {
        return new Queue(QueueEnum.USER_BUY_REWARD.getQueue());
    }
    @Bean
    public Binding userBuyRewardBind() {
        return BindingBuilder.bind(userBuyRewardQueue()).to(userBuyRewardExchange()).with(QueueEnum.USER_BUY_REWARD.getRoute());
    }
    // === 用户购买奖励 end ===
}
src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java
@@ -33,4 +33,10 @@
        log.info("收到滑点分配消息:{}", id);
        dappSystemService.tradeProfitDistribute(Long.parseLong(id));
    }
    @RabbitListener(queues = QueueConstants.USER_BUY_REWARD)
    public void userBuyReward(String id) {
        log.info("收到用户购买奖励消息:{}", id);
        dappSystemService.userBuyReward(Long.parseLong(id));
    }
}
src/main/java/cc/mrbird/febs/rabbit/producer/ChainProducer.java
@@ -44,4 +44,10 @@
        CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString());
        rabbitTemplate.convertAndSend(QueueEnum.DISTRIB_PROFIT.getExchange(), QueueEnum.DISTRIB_PROFIT.getRoute(), id, correlationData);
    }
    public void sendUserBuyReward(Long id) {
        log.info("发送用户购买奖励消息:{}", id);
        CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString());
        rabbitTemplate.convertAndSend(QueueEnum.USER_BUY_REWARD.getExchange(), QueueEnum.USER_BUY_REWARD.getRoute(), id, correlationData);
    }
}
src/main/resources/mapper/dapp/DappMemberDao.xml
@@ -85,4 +85,11 @@
            </if>
        </where>
    </select>
    <select id="selectMemberByAccountType" resultType="cc.mrbird.febs.dapp.entity.DappMemberEntity">
        select * from dapp_member
        <where>
            account_type=#{accountType}
        </where>
    </select>
</mapper>
src/test/java/cc/mrbird/febs/ChainTest.java
@@ -3,7 +3,9 @@
import cc.mrbird.febs.dapp.chain.ChainEnum;
import cc.mrbird.febs.dapp.chain.ChainService;
import cc.mrbird.febs.dapp.chain.ContractChainService;
import cc.mrbird.febs.dapp.entity.DappFundFlowEntity;
import cc.mrbird.febs.dapp.entity.DappOnlineTransferEntity;
import cc.mrbird.febs.dapp.mapper.DappFundFlowDao;
import cc.mrbird.febs.dapp.mapper.DappOnlineTransferDao;
import cc.mrbird.febs.job.SystemTradeJob;
import cc.mrbird.febs.rabbit.producer.ChainProducer;
@@ -69,4 +71,28 @@
        chainProducer.sendOnlineTransfer(JSONObject.toJSONString(map));
    }
    @Test
    public void totalSupplyTest() {
        System.out.println(ChainService.getInstance(ChainEnum.BSC_TFC.getChain()).totalSupply());
    }
    @Test
    public void mineTest() {
        systemTradeJob.mineJob();
    }
    @Autowired
    private DappFundFlowDao dappFundFlowDao;
    @Test
    public void fundFlowInsertTest() {
        DappFundFlowEntity rewardFlow = new DappFundFlowEntity(11L, BigDecimal.valueOf(1L), 4, 2, BigDecimal.ZERO);
        rewardFlow.setFromHash("1");
        dappFundFlowDao.insert(rewardFlow);
    }
    @Test
    public void userBuyRewardTest() {
        chainProducer.sendUserBuyReward(56L);
    }
}