package com.jxy.marketall.controller;

import com.jxy.common.core.web.Result.AjaxResult;
import com.jxy.common.security.annotation.RequiresLogin;
import com.jxy.marketall.service.ETHService;
import com.jxy.marketall.service.EthBigTxService;
import com.jxy.marketall.vo.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @Description eth查询
 * @Date 2022/6/21 11:54
 * @Author 杜懿
 */
@RestController
@RequestMapping(value = {"/eth","/ETH"})
@Api(tags = "ETH查询接口")
public class ETHController {


    @Autowired
    private EthBigTxService ethBigTxService;

    @Autowired
    private ETHService ethService;

    @GetMapping(value = {"/ethVolume","/ETHVolume"})
    @ApiOperation(value = "eth每日交易量")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "start", value = "开始时间  可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query", required = false),
            @ApiImplicitParam(name = "end", value = "结束时间 可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query", required = false) })
    public AjaxResult ethVolume(QueryVo vo){

        return  ethBigTxService.getETHVolumeList(vo);
    }

    @GetMapping(value = {"/ethFees","/ETHFees"})
    @ApiOperation(value = "eth每日交易费")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "start", value = "开始时间  可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query", required = false),
            @ApiImplicitParam(name = "end", value = "结束时间 可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query", required = false) })
    public AjaxResult ethFees(QueryVo vo){

        return  ethBigTxService.getETHFeesList(vo);
    }

        @GetMapping(value = {"/ethbigtx","/ETHbigtx","/ETHBigTx"})
    @ApiOperation(value = "eth大额交易条件查询查询接口",response = List.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "amount", value = "最大交易额", dataType = "double", paramType = "query"),
            @ApiImplicitParam(name = "address", value = "交易发起地址", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "total", value = "模糊查询 值可以是amount、address、txId", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "txId", value = "交易id", dataType = "string", paramType = "query")})
   public AjaxResult ethbigtx(ETHVo ethVo){
        return  ethBigTxService.findEthBigTxByETHVo(ethVo);
    }

    @GetMapping(value = {"/ethbigtxcount","/ETHbigtxcount","/ethBigTxCount","/ETHBigTxCount"})
    @ApiOperation(value = "eth大额交易数量查询接口",response = List.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "start", value = "开始时间  可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "type", value = "返回类型  根据时间查询时，返回值的类型 具体值为day、week、month、year", dataType = "string", paramType = "query",defaultValue = "day"),
            @ApiImplicitParam(name = "end", value = "结束时间 可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query") })
    public AjaxResult ethbigtxcount(ETHBigTxCountVo vo){
        return  ethBigTxService.findEthBigTxByTime(vo);
    }

    @GetMapping(value = {"/usdtbigtx","/USDTbigtx","/USDTBigTx"})
    @ApiOperation(value = "usdt大额交易条件查询查询接口",response = List.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "amount", value = "最大交易额", dataType = "double", paramType = "query"),
            @ApiImplicitParam(name = "address", value = "交易发起地址", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "total", value = "模糊查询 值可以是amount、address、txId", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "txId", value = "交易id", dataType = "string", paramType = "query")})
    //@RequiresLogin
    public AjaxResult usdtbigtx(ETHVo ethVo){
        return  ethBigTxService.findUSDTBigTxByUSDTVo(ethVo);
    }

    @GetMapping(value = {"/usdtbigtxcount","/USDTbigtxcount","/usdtBigTxCount","/USDTBigTxCount"})
    @ApiOperation(value = "usdt大额交易数量查询接口",response = List.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "start", value = "开始时间  可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "end", value = "结束时间 可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query") })
    //@RequiresLogin
    public AjaxResult usdtbigtxcount(ETHBigTxCountVo vo){
        return  ethBigTxService.findUSDTBigTxByTime(vo);
    }

    @GetMapping(value = {"/usdcbigtx","/USDCbigtx","/USDCBigTx"})
    @ApiOperation(value = "usdc大额交易条件查询查询接口",response = List.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "amount", value = "最大交易额", dataType = "double", paramType = "query"),
            @ApiImplicitParam(name = "address", value = "交易发起地址", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "total", value = "模糊查询 值可以是amount、address、txId", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "txId", value = "交易id", dataType = "string", paramType = "query")})
    //@RequiresLogin
    public AjaxResult usdcbigtx(ETHVo ethVo){
        return  ethBigTxService.findUSDCBigTxByUSDCVo(ethVo);
    }

    @GetMapping(value = {"/usdcbigtxcount","/USDCbigtxcount","/usdcBigTxCount","/USDCBigTxCount"})
    @ApiOperation(value = "usdc大额交易数量查询接口",response = List.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "start", value = "开始时间  可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "end", value = "结束时间 可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query") })
    //@RequiresLogin
    public AjaxResult usdcbigtxcount(ETHBigTxCountVo vo){
        return  ethBigTxService.findUSDCBigTxByTime(vo);
    }

    @GetMapping(value = {"/busdbigtx","/BUSDbigtx","/BUSDBigTx"})
    @ApiOperation(value = "busd大额交易条件查询查询接口",response = List.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "amount", value = "最大交易额", dataType = "double", paramType = "query"),
            @ApiImplicitParam(name = "address", value = "交易发起地址", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "total", value = "模糊查询 值可以是amount、address、txId", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "txId", value = "交易id", dataType = "string", paramType = "query")})
    //@RequiresLogin
    public AjaxResult busdbigtx(ETHVo ethVo){
        return  ethBigTxService.findBUSDBigTxByUSDTVo(ethVo);
    }

    @GetMapping(value = {"/busdbigtxcount","/BUSDbigtxcount","/busdBigTxCount","/BUSDBigTxCount"})
    @ApiOperation(value = "busd大额交易数量查询接口",response = List.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "start", value = "开始时间  可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "end", value = "结束时间 可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query") })
    //@RequiresLogin
    public AjaxResult busdbigtxcount(ETHBigTxCountVo vo){
        return  ethBigTxService.findBUSDBigTxByTime(vo);
    }


    @GetMapping(value = {"/usdtVolume","/USDTVolume"})
    @ApiOperation(value = "eth USDT 每日总交易量")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "start", value = "开始时间  可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query", required = false),
            @ApiImplicitParam(name = "end", value = "结束时间 可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query", required = false) })
    public AjaxResult usdtVolume(QueryVo queryVo){

        return  ethBigTxService.getUSDTVolumeList(queryVo);
    }

    @GetMapping(value = {"/usdcVolume","/USDCVolume"})
    @ApiOperation(value = "eth USDC 每日总交易量")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "start", value = "开始时间  可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query", required = false),
            @ApiImplicitParam(name = "end", value = "结束时间 可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query", required = false) })
    public AjaxResult usdcVolume(QueryVo queryVo){

        return  ethBigTxService.getUSDCVolumeList(queryVo);
    }

    @GetMapping(value = {"/busdVolume","/BUSDVolume"})
    @ApiOperation(value = "BUSD 每日总交易量")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "start", value = "开始时间  可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query", required = false),
            @ApiImplicitParam(name = "end", value = "结束时间 可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query", required = false) })
    public AjaxResult busdVolume(QueryVo queryVo){

        return  ethBigTxService.getBUSDVolumeList(queryVo);
    }

    @GetMapping(value = {"/tronUsdcVolume","/tronUSDCVolume"})
    @ApiOperation(value = "eth USDC 每日总交易量监控")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "start", value = "开始时间  可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query", required = false),
            @ApiImplicitParam(name = "end", value = "结束时间 可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query", required = false) })
    public AjaxResult tronUsdcVolume(QueryVo queryVo){

        return  ethBigTxService.getTronUSDCVolumeList(queryVo);
    }

    @GetMapping(value = {"/tronUsdtVolume","/tronUSDTVolume"})
    @ApiOperation(value = "eth USDT 每日总交易量监控")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "start", value = "开始时间  可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query", required = false),
            @ApiImplicitParam(name = "end", value = "结束时间 可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query", required = false) })
    public AjaxResult tronUsdtVolume(QueryVo queryVo){

        return  ethBigTxService.getTronUSDTVolumeList(queryVo);
    }


    @GetMapping(value = {"/tronUSDTBigTx"})
    @ApiOperation(value = "usdt大额交易监控条件查询查询接口",response = List.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "amount", value = "最大交易额", dataType = "double", paramType = "query"),
            @ApiImplicitParam(name = "address", value = "交易发起地址", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "tag", value = "地址标记", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "total", value = "模糊查询 值可以是amount、address、txId", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "txId", value = "交易id", dataType = "string", paramType = "query")})
    //@RequiresLogin
    public AjaxResult tronusdtbigtx(ETHVo ethVo){
        return  ethBigTxService.findTronUSDTBigTxByVo(ethVo);
    }

    @GetMapping(value = {"/tronUSDTBigTxCount"})
    @ApiOperation(value = "usdt大额交易监控数量查询接口",response = List.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "start", value = "开始时间  可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "end", value = "结束时间 可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query") })
    //@RequiresLogin
    public AjaxResult tronusdtbigtxcount(QueryVo vo){
        return  ethBigTxService.findTronUSDTBigTxByTime(vo);
    }


    @GetMapping(value = {"/tronUSDCBigTx"})
    @ApiOperation(value = "usdc大额交易监控条件查询查询接口",response = List.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "amount", value = "最大交易额", dataType = "double", paramType = "query"),
            @ApiImplicitParam(name = "address", value = "交易发起地址", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "tag", value = "地址标记", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "total", value = "模糊查询 值可以是amount、address、txId", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "txId", value = "交易id", dataType = "string", paramType = "query")})
    //@RequiresLogin
    public AjaxResult tronusdcbigtx(ETHVo ethVo){
        return  ethBigTxService.findTronUSDCBigTxByVo(ethVo);
    }

    @GetMapping(value = {"/tronUSDCBigTxCount"})
    @ApiOperation(value = "usdc大额交易监控数量查询接口",response = List.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "start", value = "开始时间  可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "end", value = "结束时间 可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query") })
    //@RequiresLogin
    public AjaxResult tronusdcbigtxcount(QueryVo vo){
        return  ethBigTxService.findTronUSDCBigTxByTime(vo);
    }


    @GetMapping(value = {"/ethTopAddrList"})
    @ApiOperation(value = "eth 巨鲸列表")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "page", value = "页数 从1开始 默认为第一页", dataType = "int", paramType = "query", required = false),
            @ApiImplicitParam(name = "address", value = "按地址查询", dataType = "string", paramType = "query", required = false),
            @ApiImplicitParam(name = "balance", value = "余额 查询大于该值的数据", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "total", value = "模糊查询 值可以是balance、address", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "limit", value = "每页数据条数 默认50", dataType = "int", paramType = "query", required = false) })
    public AjaxResult ethTopAddrList(ETHTopAddrVo vo){
        return ethService.getETHTopAddrByPage(vo);
    }

    @GetMapping(value = {"/ethTopAddrMonitorList"})
    @ApiOperation(value = "eth 巨鲸地址跟踪  Top address Monitor")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "page", value = "页数 从1开始 默认为第一页", dataType = "int", paramType = "query", required = false),
            @ApiImplicitParam(name = "address", value = "按地址查询", dataType = "string", paramType = "query", required = false),
            @ApiImplicitParam(name = "balance", value = "余额 查询大于该值的数据", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "total", value = "模糊查询 值可以是balance、address", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "limit", value = "每页数据条数 默认50", dataType = "int", paramType = "query", required = false),
            @ApiImplicitParam(name = "start", value = "开始时间  可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "end", value = "结束时间 可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query")})
    //@RequiresLogin
    public AjaxResult ethTopAddrMonitorList(ETHVo vo){
        return ethBigTxService.findEthTopAddrChangeByETHVo(vo);
    }


    @GetMapping(value = {"/newContract"})
    @ApiOperation(value = "eth 新合约地址  New Contract")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "page", value = "页数 从1开始 默认为第一页", dataType = "int", paramType = "query", required = false),
            @ApiImplicitParam(name = "address", value = "按地址查询", dataType = "string", paramType = "query", required = false),
            @ApiImplicitParam(name = "total", value = "模糊查询 值可以是balance、address", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "limit", value = "每页数据条数 默认50", dataType = "int", paramType = "query", required = false),
            @ApiImplicitParam(name = "start", value = "开始时间  可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "end", value = "结束时间 可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query")})
    //@RequiresLogin
    public AjaxResult newContract(ETHVo vo){
        return ethBigTxService.getETHNewContractByPage(vo);
    }

    @GetMapping(value = {"/ethTags"})
    @ApiOperation(value = "eth 地址对应标记持有者名称关系列表")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "page", value = "页数 从1开始 默认为第一页", dataType = "int", paramType = "query", required = false),
            @ApiImplicitParam(name = "limit", value = "每页数据条数 默认50", dataType = "int", paramType = "query", required = false) })
    //@RequiresLogin
    public AjaxResult ethTags(PageVo vo){
        return ethService.getETHTagsByPage(vo);
    }

    @GetMapping(value = {"/ETHTokenVolume/query"})
    @ApiOperation(value = "eth erc20 token每日交易量 条件查询")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "address", value = "合约地址", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "abbr", value = "缩写名", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "start", value = "开始时间  可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query", required = false),
            @ApiImplicitParam(name = "end", value = "结束时间 可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query", required = false) })
    //@RequiresLogin
    public AjaxResult ETHTokenVolumeQuery(ETHTokenVolumeVo vo){

        return  ethBigTxService.getETHTokenVolumeList(vo);
    }

    //@GetMapping(value = {"/ETHTokenVolume"})
    //@ApiOperation(value = "eth erc20 token每日交易量abbr列表")
    ////@RequiresLogin
    //public AjaxResult ETHTokenVolume(ETHTokenVolumeVo vo){
    //
    //    return  ethBigTxService.getETHTokenVolumeAbbrList(vo);
    //}

    @PostMapping(value = {"/ETHTokenVolume"})
    @ApiOperation(value = "eth erc20 token每日交易量abbr列表")
    //@RequiresLogin
    public AjaxResult ETHTokenVolume2(@RequestBody(required = false) ETHTokenVolumeVo vo){

        return  ethBigTxService.getETHTokenVolumeAbbrList(vo);
    }


    @GetMapping(value = {"/ETHTokenBigtx"})
    @ApiOperation(value = "eth erc20 token大额交易",response = List.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "amount", value = "最大交易额", dataType = "double", paramType = "query"),
            @ApiImplicitParam(name = "address", value = "交易发起地址", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "total", value = "模糊查询 值可以是amount、address、txId", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "txId", value = "交易id", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "start", value = "开始时间 ", dataType = "string", paramType = "query", required = false),
            @ApiImplicitParam(name = "end", value = "结束时间 ", dataType = "string", paramType = "query", required = false)})
    //@RequiresLogin
    public AjaxResult ETHTokenBigtx(ETHTokenVo vo){
        System.out.println("收到前端请求");
        long t1 = System.currentTimeMillis();
        AjaxResult result = ethBigTxService.getETHTokenBigtxList(vo);
        long t2 = System.currentTimeMillis();
        System.out.println("大额交易业务耗时"+(t2-t1));
        return  result;
    }

    @GetMapping(value = {"/ETHTokenAbbrs"})
    @ApiOperation(value = "eth erc20 token abbr列表",response = List.class)
    //@RequiresLogin
    public AjaxResult ETHTokenAbbrs(){
        return  ethBigTxService.getETHTokenAbbrList();
    }

    @GetMapping(value = {"/ETHTokenBigtxcount"})
    @ApiOperation(value = "eth erc20 token大额交易每日数量查询",response = List.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "start", value = "开始时间  可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "end", value = "结束时间 可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query") })
    //@RequiresLogin
    public AjaxResult ETHTokenBigtxcount(QueryVo vo){
        return  ethBigTxService.findETHTokenBigtxByTime(vo);
    }


    @GetMapping("/jzr60")
    @ApiOperation(value = "江卓尔近60天数据",response = List.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "start", value = "开始时间", dataType = "string", paramType = "query", required = false),
            @ApiImplicitParam(name = "end", value = "结束时间", dataType = "string", paramType = "query", required = false) })
    //@RequiresLogin
    public AjaxResult jzr60(QueryVo queryVo){
        return  ethService.getJzr60ByTime(queryVo);
    }

    @GetMapping("/jzr60day")
    @ApiOperation(value = "江卓尔最近24小时每分钟数据",response = List.class)
    //@RequiresLogin
    public AjaxResult jzr60day(){

        return  ethService.getJzr60Day();
    }

    @GetMapping("/ma730")
    @ApiOperation(value = "ma730",response = List.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "start", value = "开始时间", dataType = "string", paramType = "query", required = false),
            @ApiImplicitParam(name = "end", value = "结束时间", dataType = "string", paramType = "query", required = false) })
    //@RequiresLogin
    public AjaxResult ma730(QueryVo queryVo){
        return  ethService.getMa730ByTime(queryVo);
    }

    @GetMapping("/ma730day")
    @ApiOperation(value = "ma730近24小时每分钟数据",response = List.class)
    //@RequiresLogin
    public AjaxResult ma730day(){

        return  ethService.geMa730Day();
    }

    @GetMapping(value = {"/csupply"})
    @ApiOperation(value = "流通供应量 Circulating Supply")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "start", value = "开始时间", dataType = "string", paramType = "query", required = false),
            @ApiImplicitParam(name = "end", value = "结束时间", dataType = "string", paramType = "query", required = false) })
    public AjaxResult csupply(QueryVo vo){

        return  ethBigTxService.getCSupplyList(vo);
    }

    @GetMapping(value = {"/reward"})
    @ApiOperation(value = "抵押奖励 ETH2 Staking rewards")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "start", value = "开始时间", dataType = "string", paramType = "query", required = false),
            @ApiImplicitParam(name = "end", value = "结束时间", dataType = "string", paramType = "query", required = false) })
    public AjaxResult reward(QueryVo vo){

        return  ethBigTxService.getRewardList(vo);
    }

    @GetMapping(value = {"/address"})
    @ApiOperation(value = "ETH 地址数据")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "start", value = "开始时间", dataType = "string", paramType = "query", required = false),
            @ApiImplicitParam(name = "end", value = "结束时间", dataType = "string", paramType = "query", required = false) })
    public AjaxResult address(QueryVo vo){

        return  ethBigTxService.getAddressList(vo);
    }

    @GetMapping(value = {"/volume"})
    @ApiOperation(value = "交易量 Transaction Volume")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "start", value = "开始时间", dataType = "string", paramType = "query", required = false),
            @ApiImplicitParam(name = "end", value = "结束时间", dataType = "string", paramType = "query", required = false) })
    public AjaxResult volume(QueryVo vo){

        return  ethBigTxService.getVolumeList(vo);
    }

    @GetMapping(value = {"/cnew"})
    @ApiOperation(value = "新合约数 Number of New Contract")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "start", value = "开始时间", dataType = "string", paramType = "query", required = false),
            @ApiImplicitParam(name = "end", value = "结束时间", dataType = "string", paramType = "query", required = false) })
    //@RequiresLogin
    public AjaxResult cnew(QueryVo vo){

        return  ethBigTxService.getCnewList(vo);
    }


    @GetMapping(value = {"/csusdt",})
    @ApiOperation(value = "Circulating Supply (USDT) USDT 流通量")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "start", value = "开始时间  可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query", required = false),
            @ApiImplicitParam(name = "end", value = "结束时间 可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query", required = false) })
    public AjaxResult csusdt(QueryVo queryVo){

        return  ethService.getCSUSDTList(queryVo);
    }

    @GetMapping(value = {"/csusdc"})
    @ApiOperation(value = "Circulating Supply (USDC) USDC 流通量")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "start", value = "开始时间  可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query", required = false),
            @ApiImplicitParam(name = "end", value = "结束时间 可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query", required = false) })
    public AjaxResult csusdc(QueryVo queryVo){

        return  ethService.getCSUSDCList(queryVo);
    }

    @GetMapping(value = {"csbusd"})
    @ApiOperation(value = "Circulating Supplyn (BUSD) BUSD 流通量")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "start", value = "开始时间  可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query", required = false),
            @ApiImplicitParam(name = "end", value = "结束时间 可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query", required = false) })
    public AjaxResult csbusd(QueryVo queryVo){

        return  ethService.getCSBUSDList(queryVo);
    }

    @GetMapping(value = {"totalCSupply"})
    @ApiOperation(value = "Circulating Supplyn (Total) 总流通量")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "start", value = "开始时间  可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query", required = false),
            @ApiImplicitParam(name = "end", value = "结束时间 可以只传开始时间，表示查询大于这个时间的值", dataType = "string", paramType = "query", required = false) })
    public AjaxResult totalCSupply(QueryVo queryVo){

        return  ethService.getTotalCSupplyList(queryVo);
    }
}
