From e0cc71b3014cea8bc7fc434636b6e763ce694988 Mon Sep 17 00:00:00 2001 From: Fisca Facile Date: Sat, 5 Jun 2021 11:25:32 +0200 Subject: [PATCH] CdC Ex : implement Spot Trade CSV --- README.md | 4 ++++ cfg/config.go | 1 + cryptocom/cryptocom.go | 8 ++++++++ main.go | 10 ++++++++++ 4 files changed, 23 insertions(+) diff --git a/README.md b/README.md index b908430..b85736e 100644 --- a/README.md +++ b/README.md @@ -324,6 +324,8 @@ Cette méthode vous permet de récupérer les `Deposits` et `Withdrawals`, les ` - Exchange avec CSV: ``` + --cdc-ex-spot-trade + Crypto.com Exchange Spot Trade CSV file --cdc-ex-transfer Crypto.com Exchange Deposit/Withdrawal CSV file ``` @@ -331,6 +333,8 @@ Il faut fournir les CSV récupérés dans l'Exchange Crypto.com. Préférez la methode JS+JSON ci dessus, elle est plus complète. +Les colones du CSV de l'Exchange Spot Trade doivent être : `account_type,order_id,trade_id,create_time_utc,symbol,side,liquditiy_indicator,traded_price,traded_quantity,fee,fee_currency` + Les colones du CSV de l'Exchange Transfer doivent être : `create_time_utc,currency,amount,fee,address,status` - Exchange avec API: diff --git a/cfg/config.go b/cfg/config.go index afcce9b..432c176 100644 --- a/cfg/config.go +++ b/cfg/config.go @@ -213,6 +213,7 @@ func LoadConfig() (*Config, error) { pflag.StringVar(&config.Exchanges.CdcEx.API.Secret, "cdc-ex-api-secret", config.Exchanges.CdcEx.API.Secret, "Crypto.com Exchange Secret Key") pflag.StringVar(&config.Exchanges.CdcEx.JSON, "cdc-ex-exportjs", config.Exchanges.CdcEx.JSON, "Crypto.com Exchange JSON file from json-exporter.js") pflag.StringSliceVar(&config.Exchanges.CdcEx.CSV.Transfers, "cdc-ex-transfer", config.Exchanges.CdcEx.CSV.Transfers, "Crypto.com Exchange Deposit/Withdrawal CSV file") + pflag.StringSliceVar(&config.Exchanges.CdcEx.CSV.Trades, "cdc-ex-spot-trade", config.Exchanges.CdcEx.CSV.Trades, "Crypto.com Exchange Spot Trade CSV file") // pflag.StringSliceVar(&config.Exchanges.CdcEx.CSV.Staking, "cdc-ex-stake", config.Exchanges.CdcEx.CSV.Staking, "Crypto.com Exchange Stake CSV file") // pflag.StringSliceVar(&config.Exchanges.CdcEx.CSV.Supercharger, "cdc-ex-supercharger", config.Exchanges.CdcEx.CSV.Supercharger, "Crypto.com Exchange Supercharger CSV file") pflag.StringVar(&config.Exchanges.Kraken.API.Key, "kraken-api-key", config.Exchanges.Kraken.API.Key, "Kraken API key") diff --git a/cryptocom/cryptocom.go b/cryptocom/cryptocom.go index d4ff5d5..b4d1c20 100644 --- a/cryptocom/cryptocom.go +++ b/cryptocom/cryptocom.go @@ -10,11 +10,13 @@ import ( type CryptoCom struct { apiEx apiEx jsonEx jsonEx + csvSpotTrade csvSpotTrade csvStake csvStake csvSupercharger csvSupercharger csvTransfer csvTransfer csvAppCryptoTXs []csvAppCryptoTX csvExTransferTXs []csvExTransferTX + csvExSpotTradeTXs []csvExSpotTradeTX csvExStakeTXs []csvExStakeTX csvExSuperchargerTXs []csvExSuperchargerTX done chan error @@ -26,6 +28,11 @@ func New() *CryptoCom { cdc := &CryptoCom{} cdc.done = make(chan error) cdc.TXsByCategory = make(wallet.TXsByCategory) + cdc.jsonEx.txsByCategory = make(wallet.TXsByCategory) + cdc.csvSpotTrade.txsByCategory = make(wallet.TXsByCategory) + cdc.csvStake.txsByCategory = make(wallet.TXsByCategory) + cdc.csvSupercharger.txsByCategory = make(wallet.TXsByCategory) + cdc.csvTransfer.txsByCategory = make(wallet.TXsByCategory) cdc.Sources = make(source.Sources) return cdc } @@ -45,6 +52,7 @@ func (cdc *CryptoCom) MergeTXs() { cdc.TXsByCategory.AddUniq(cdc.apiEx.txsByCategory) cdc.TXsByCategory.AddUniq(cdc.csvStake.txsByCategory) cdc.TXsByCategory.AddUniq(cdc.csvSupercharger.txsByCategory) + cdc.TXsByCategory.AddUniq(cdc.csvSpotTrade.txsByCategory) cdc.TXsByCategory.AddUniq(cdc.csvTransfer.txsByCategory) } diff --git a/main.go b/main.go index 4e75abc..3eebfbc 100644 --- a/main.go +++ b/main.go @@ -254,6 +254,16 @@ func main() { log.Fatal("Error parsing Crypto.com Exchange Stake CSV file:", err) } } + for _, file := range config.Exchanges.CdcEx.CSV.Trades { + recordFile, err := os.Open(file) + if err != nil { + log.Fatal("Error opening Crypto.com Exchange Spot Trade CSV file:", err) + } + err = cdc.ParseCSVExchangeSpotTrade(recordFile) + if err != nil { + log.Fatal("Error parsing Crypto.com Exchange Spot Trade CSV file:", err) + } + } for _, file := range config.Exchanges.CdcEx.CSV.Supercharger { recordFile, err := os.Open(file) if err != nil {