package com.xcong.excoin.modules.blackchain.service; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.sunlight.tronsdk.TrxService; import com.sunlight.tronsdk.transaction.TransactionResult; import com.xcong.excoin.modules.blackchain.model.Trc20TransactionsData; import com.xcong.excoin.modules.blackchain.model.Trc20TransactionsResult; import org.apache.commons.codec.binary.Hex; import org.tron.common.crypto.SignInterface; import org.tron.common.crypto.SignUtils; import org.tron.common.utils.ByteArray; import org.tron.common.utils.Utils; import org.tron.walletserver.WalletApi; import java.math.BigDecimal; import java.util.HashMap; import java.util.List; import java.util.Map; /** * TRC20 服务类 * https://cn.developers.tron.network/reference */ public class Trc20Service { private final static String FULL_NODE_URL = "https://api.trongrid.io"; public final static String TRX_PRIVATE_KEY = "a932e4cc6fd9e4932da90e8dd0c6b2bdbfcdfb54de1ce6b68d854cc9b3c95653"; public final static String TRX_ADDRESS = "TJD7nWCAiTiiRoqh7TDjc6wL72YwBi2ef5"; public final static String POOL_ADDRESS = "TXBQCyHDmHTauN3nUixjiQT6fK7pvUeKAM"; public final static String API_KEY="a7b0c96a-cfcd-474d-88c5-75c6277fedbf"; /** * 创建用户钱包地址 **/ public static Map createAddress() { // String url = http + "/wallet/generateaddress"; SignInterface sign = SignUtils.getGeneratedRandomSign(Utils.getRandom(), true); byte[] priKey = sign.getPrivateKey(); byte[] address = sign.getAddress(); String priKeyStr = Hex.encodeHexString(priKey); String base58check = WalletApi.encode58Check(address); String hexString = ByteArray.toHexString(address); Map jsonAddress = new HashMap<>(); jsonAddress.put("address", base58check); jsonAddress.put("hexAddress", hexString); jsonAddress.put("privateKey", priKeyStr); return jsonAddress; } /** * 转TRX * @param sendPrivateKey * @param receiveAddress * @param amount */ public static void sendTrx(String sendPrivateKey,String receiveAddress,BigDecimal amount) { TrxService service = new TrxService(); try { TransactionResult transactionResult = service.testSendTrxTransaction(sendPrivateKey, receiveAddress, amount,API_KEY); } catch (Exception e) { e.printStackTrace(); } } /** * 转TRC20 * @param sendPrivateKey * @param receiveAddress * @param amount */ public static void sendTrc20(String sendPrivateKey,String receiveAddress,BigDecimal amount){ TrxService service = new TrxService(); try { TransactionResult transactionResult = service.sendTrc20TransactionTest(sendPrivateKey, receiveAddress, amount,API_KEY); } catch (Exception e) { e.printStackTrace(); } } public static BigDecimal getTrxBalance(String address){ TrxService service = new TrxService(); try { BigDecimal trxBalanceTest = service.getTrxBalanceTest(address,API_KEY); return trxBalanceTest; } catch (Exception e) { e.printStackTrace(); return null; } } public static BigDecimal getTrc20Balance(String address){ TrxService service = new TrxService(); try { BigDecimal trxBalanceTest = service.trc20BalanceOfTest(address,API_KEY); return trxBalanceTest; } catch (Exception e) { e.printStackTrace(); return null; } } public static void main(String[] args) { System.out.println(createAddress()); } }