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 = "2fa67736b33f0140acc30321b3b3663f91619ab7719d91d80f7ebdc050524b68";
|
public final static String TRX_ADDRESS = "TLZG1vhjeErKncAoCc9atv8262rNbQk4Vq";
|
public final static String POOL_ADDRESS = "TLf7K5mD1HejZbPVXcKRxJgAW96tRNt4Yu";
|
|
public final static String API_KEY="a7b0c96a-cfcd-474d-88c5-75c6277fedbf";
|
|
|
/**
|
* 创建用户钱包地址
|
**/
|
public static Map<String,String> 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<String,String> 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());
|
}
|
|
}
|