Fix leaderboard (#3)

This commit is contained in:
Oda
2024-07-20 20:38:40 +07:00
committed by GitHub
parent 029ba5f40e
commit a43e560d3a
8 changed files with 235 additions and 71 deletions

View File

@@ -11,10 +11,28 @@ public class Row
{
public string user { get; set; }
public string pnl { get; set; }
public string fee { get; set; }
public string roi { get; set; }
public string longSize { get; set; }
public string shortSize { get; set; }
public string openLatestCollateralSum { get; set; }
public string chainId { get; set; }
public int tradeTimes { get; set; }
public int lastTrade { get; set; }
public decimal volume { get; set; }
public int winTime { get; set; }
public int lossTime { get; set; }
public List<string> indexTokens { get; set; }
public TradaoBacktest backtest { get; set; }
}
public class TradaoBacktest
{
public string roi { get; set; }
public string pnl { get; set; }
public string winRate { get; set; }
public string liquidate { get; set; }
public string maxDrawdown { get; set; }
public int initialBalance { get; set; }
public int updateTime { get; set; }
}

View File

@@ -1,49 +1,174 @@
namespace Managing.Infrastructure.Evm.Models;
using System.Text.Json.Serialization;
namespace Managing.Infrastructure.Evm.Models;
public class TradaoUserDetails
{
public int updatetime { get; set; }
public Summary summary { get; set; }
public IList<Preference> preference { get; set; }
public IList<OpenPositions> openPositions { get; set; }
[JsonPropertyName("gmxv2_42161")] public Gmxv242161 gmxv2_42161 { get; set; }
}
public class Summary
{
public string pnl { get; set; }
public string roi { get; set; }
public double winRate { get; set; }
public int trades { get; set; }
public int winTrades { get; set; }
public int lossTrades { get; set; }
public string averageWin { get; set; }
public string averageLoss { get; set; }
public string openCollateralSum { get; set; }
public string fee { get; set; }
[JsonPropertyName("pnl")] public decimal pnl { get; set; }
[JsonPropertyName("roi")] public decimal roi { get; set; }
[JsonPropertyName("winRate")] public decimal winRate { get; set; }
[JsonPropertyName("trades")] public int trades { get; set; }
[JsonPropertyName("winTrades")] public int winTrades { get; set; }
[JsonPropertyName("lossTrades")] public int lossTrades { get; set; }
[JsonPropertyName("averageWin")] public decimal averageWin { get; set; }
[JsonPropertyName("averageLoss")] public decimal averageLoss { get; set; }
[JsonPropertyName("fee")] public decimal fee { get; set; }
[JsonPropertyName("tradingVolume")] public decimal tradingVolume { get; set; }
[JsonPropertyName("lastTradeTime")] public int lastTradeTime { get; set; }
[JsonPropertyName("maxIncreaseTimes")] public int maxIncreaseTimes { get; set; }
}
// GMX v1
public class Gmx42161
{
[JsonPropertyName("updatetime")] public int updatetime { get; set; }
[JsonPropertyName("summary")] public Summary summary { get; set; }
[JsonPropertyName("preference")] public List<object> preference { get; set; }
[JsonPropertyName("records")] public List<Record> records { get; set; }
}
public class Gmx43114
{
[JsonPropertyName("updatetime")] public int updatetime { get; set; }
[JsonPropertyName("summary")] public Summary summary { get; set; }
[JsonPropertyName("preference")] public List<object> preference { get; set; }
[JsonPropertyName("records")] public List<object> records { get; set; }
}
public class Gmxv242161
{
[JsonPropertyName("updatetime")] public int updatetime { get; set; }
[JsonPropertyName("summary")] public Summary summary { get; set; }
[JsonPropertyName("preference")] public List<Preference> preference { get; set; }
[JsonPropertyName("records")] public List<Record> records { get; set; }
[JsonPropertyName("prices")] public Dictionary<string, string> prices { get; set; }
}
public class Record
{
[JsonPropertyName("indexToken")] public string indexToken { get; set; }
[JsonPropertyName("collateralToken")] public string collateralToken { get; set; }
[JsonPropertyName("isLong")] public bool isLong { get; set; }
[JsonPropertyName("isOpen")] public bool isOpen { get; set; }
[JsonPropertyName("positionId")] public string positionId { get; set; }
[JsonPropertyName("records")] public List<RecordDetail> records { get; set; }
[JsonPropertyName("averagePrice")] public string averagePrice { get; set; }
[JsonPropertyName("liqPrice")] public string liqPrice { get; set; }
[JsonPropertyName("borrowFee")] public string borrowFee { get; set; }
[JsonPropertyName("closeFee")] public string closeFee { get; set; }
[JsonPropertyName("fundingFee")] public string fundingFee { get; set; }
}
public class RecordDetail
{
[JsonPropertyName("timestamp")] public int timestamp { get; set; }
[JsonPropertyName("indexToken")] public string indexToken { get; set; }
[JsonPropertyName("collateralToken")] public string collateralToken { get; set; }
[JsonPropertyName("isLong")] public bool isLong { get; set; }
[JsonPropertyName("sizeDelta")] public double sizeDelta { get; set; }
[JsonPropertyName("collateralDelta")] public double collateralDelta { get; set; }
[JsonPropertyName("price")] public double price { get; set; }
[JsonPropertyName("fee")] public double fee { get; set; }
[JsonPropertyName("isLiquidation")] public bool isLiquidation { get; set; }
[JsonPropertyName("eventType")] public int eventType { get; set; }
[JsonPropertyName("pnlDelta")] public double pnlDelta { get; set; }
[JsonPropertyName("averagePrice")] public double averagePrice { get; set; }
[JsonPropertyName("positionId")] public string positionId { get; set; }
[JsonPropertyName("status")] public string status { get; set; }
[JsonPropertyName("blocknum")] public int blocknum { get; set; }
[JsonPropertyName("transactionIndex")] public int transactionIndex { get; set; }
}
public class Gmxv243114
{
[JsonPropertyName("updatetime")] public int updatetime { get; set; }
[JsonPropertyName("summary")] public Summary summary { get; set; }
[JsonPropertyName("preference")] public List<object> preference { get; set; }
[JsonPropertyName("records")] public List<object> records { get; set; }
}
public class Kwenta10
{
[JsonPropertyName("updatetime")] public int updatetime { get; set; }
[JsonPropertyName("summary")] public Summary summary { get; set; }
[JsonPropertyName("preference")] public List<object> preference { get; set; }
[JsonPropertyName("records")] public List<object> records { get; set; }
}
public class Polynomial10
{
[JsonPropertyName("updatetime")] public int updatetime { get; set; }
[JsonPropertyName("summary")] public Summary summary { get; set; }
[JsonPropertyName("preference")] public List<object> preference { get; set; }
[JsonPropertyName("records")] public List<object> records { get; set; }
}
public class Preference
{
public string tokenAddress { get; set; }
public int winTrades { get; set; }
public int lossTrades { get; set; }
public string pnl { get; set; }
}
[JsonPropertyName("tokenAddress")] public string tokenAddress { get; set; }
public class OpenPositions
{
public string indexTokenAddress { get; set; }
public string collateralTokenAddress { get; set; }
public bool isLong { get; set; }
public string position { get; set; }
public string collateral { get; set; }
public string realizedPnl { get; set; }
public string averagePrice { get; set; }
public string totalFee { get; set; }
public string entryFundingRate { get; set; }
public string borrowFee { get; set; }
public string closeFee { get; set; }
public string liqPrice { get; set; }
[JsonPropertyName("winTrades")] public int winTrades { get; set; }
}
[JsonPropertyName("lossTrades")] public int lossTrades { get; set; }
[JsonPropertyName("pnl")] public double pnl { get; set; }
}