package com.jxy.marketall.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jxy.common.core.web.Result.AjaxResult;
import com.jxy.marketall.entity.Holder;
import com.jxy.marketall.vo.EBalanceVo;
import com.jxy.marketall.vo.ETHMintedVo;
import com.jxy.marketall.vo.QueryVo;

/**
 * @Description 地址查询服务类
 * @Date 2022/5/20 11:40
 * @Author 杜懿
 */
public interface ETHV2Service{

    /**
     * 查询PI周期顶指标Pi Cycle Top Indicator
     * @param vo
     * @return
     */
    public AjaxResult getPiCycleTIList(QueryVo vo);

    /**
     * 查询黄金比例乘数Golden Ratio Multiplier
     * @param sma
     * @return
     */
    public AjaxResult getGoldenRatioMultList(int sma);

    /**
     * 查询币天销毁量 Coin Days Destroyed
     * @param sma
     * @return
     */
    public AjaxResult getCDDList(int sma);

    /**
     * 查询已花费输出休眠平均天数 Average Coin Dormancy
     * @param sma
     * @return
     */
    public AjaxResult getAverageCoinDormancyList(int sma);

    /**
     * 查询已花费输出平均寿命 Average Spent Output Lifespan
     * @param vo
     * @return
     */
    public AjaxResult getASOLList(QueryVo vo);

    /**
     * 查询币天销毁量分布  Distribution of Coin Days Destroyed
     * @param sma
     * @return
     */
    public AjaxResult getCDDWaveList(int sma);

    /**
     * 查询按余额分段的地址数分布 Distribution of Address
     * @param sma
     * @return
     */
    public AjaxResult getAddressBalanceList(int sma);


    /**
     * 查询持有者地址的供应分布 Distribution of Address Supply
     * @param sma
     * @return
     */
    public AjaxResult getAddressSupplyList(int sma);

    /**
     * 查询盈利地址百分比 Percent of Addresses in Profit
     * @param sma
     * @return
     */
    public AjaxResult getAddressProfitPercentList(int sma);

    /**
     * 查询盈利地址数 Number of Addresses in Profit
     * @param sma
     * @return
     */
    public AjaxResult getAddressProfitList(int sma);

    /**
     * 查询亏损地址数 Number of Addresses in Loss
     * @param sma
     * @return
     */
    public AjaxResult getAddressLossList(int sma);

    /**
     * 查询通货膨胀率 Inflation Rate
     * @param sma
     * @return
     */
    public AjaxResult getInflationRateList(int sma);

    /**
     * 查询新币发行量 issuance
     * @param sma
     * @return
     */
    public AjaxResult getIssuanceList(int sma);

    /**
     * 查询已花费输出盈利比 Spent Output Profit Ratio
     * @param vo
     * @return
     */
    public AjaxResult getSOPRList(QueryVo vo);

    /**
     * 查询
     * @param sma
     * @return
     */
    public AjaxResult getVelocityList(int sma);

    /**
     * 查询市值/交易价值比 Network Value to Transactions Ratio
     * @param sma
     * @return
     */
    public AjaxResult getNVTRatioList(int sma);


    /**
     * 查询市值/交易价值信号 Network Value to Transactions Ratio
     * @param sma
     * @return
     */
    public AjaxResult getNVTSignList(int sma);


    /**
     * 查询活跃度 liveliness
     * @param sma
     * @return
     */
    public AjaxResult getLiveLinessList(int sma);

    /**
     * 查询交易费率乘数 Fee Ratio Multiple (FRM)
     * @param sma
     * @return
     */
    public AjaxResult getFRMList(int sma);

    /**
     * 查询盈利百分比 Percent Supply in Profit
     * @param sma
     * @return
     */
    public AjaxResult getSupplyProfitPercentList(int sma);

    /**
     * 查询盈利供应量 Total Supply in Profit
     * @param sma
     * @return
     */
    public AjaxResult getTotalSupplyProfitList(int sma);


    /**
     * 查询盈利亏损量 Total Supply in Loss
     * @param sma
     * @return
     */
    public AjaxResult getTotalSupplyLossList(int sma);


    /**
     * 查询未实现的净收益损失比 Net Unrealized Profit/Loss
     * @param sma
     * @return
     */
    public AjaxResult getNUPLList(int sma);

    /**
     * 查询未实现的净收益量 Relative Unrealized Profit
     * @param sma
     * @return
     */
    public AjaxResult getRelativeUProfitList(int sma);

    /**
     * 查询未实现的净亏损量 Relative Unrealized Loss
     * @param sma
     * @return
     */
    public AjaxResult getRelativeULossList(int sma);

    /**
     * 查询长持者未实现的净收益量 Long Term Holder NUPL
     * @param sma
     * @return
     */
    public AjaxResult getLTHNUPLList(int sma);

    /**
     * 查询短持者未实现的净亏损量 Short Term Holder NUPL
     * @param sma
     * @return
     */
    public AjaxResult getSTHNUPLList(int sma);

    /**
     * 查询流通市值 Market Cap
     * @param vo
     * @return
     */
    public AjaxResult getMarketCapList(QueryVo vo);

    /**
     * 查询已实现流通市值 Realized Cap
     * @param sma
     * @return
     */
    public AjaxResult getRealizedCapList(int sma);

    /**
     * 查询已实现价格 Realized Price
     * @param sma
     * @return
     */
    public AjaxResult getRealizedPriceList(int sma);

    /**
     * 查询流通市值-已实现流通市值比 Market Value to Realized Value Ratio
     * @param sma
     * @return
     */
    public AjaxResult getMVRVRatioList(int sma);

    /**
     * 查询
     * @param sma
     * @return
     */
    public AjaxResult getBurnedSupplyList(int sma);

    /**
     * 查询
     * @param sma
     * @return
     */
    public AjaxResult getMintedSupplyList(int sma);

    public AjaxResult getExchanges();

    public AjaxResult getExchangeBalance(EBalanceVo vo);

    public AjaxResult getPrice(QueryVo vo);

}
