github.com/diadata-org/diadata@v1.4.593/pkg/dia/Config.go (about) 1 package dia 2 3 import ( 4 "errors" 5 "os/user" 6 "strings" 7 8 "github.com/diadata-org/diadata/pkg/utils" 9 "github.com/tkanos/gonfig" 10 ) 11 12 const ( 13 ArthswapExchange = "Arthswap" 14 DiffusionExchange = "Diffusion" 15 OmniDexExchange = "OmniDex" 16 NetswapExchange = "Netswap" 17 TethysExchange = "Tethys" 18 HermesExchange = "Hermes" 19 AnyswapExchange = "Anyswap" 20 BalancerExchange = "Balancer" 21 BalancerV2Exchange = "BalancerV2" 22 BalancerV2ExchangeArbitrum = "BalancerV2-Arbitrum" 23 BalancerV2ExchangePolygon = "BalancerV2-Polygon" 24 BalancerV3Exchange = "BalancerV3" 25 BeetsExchange = "Beets" 26 KrakenExchange = "Kraken" 27 BitfinexExchange = "Bitfinex" 28 BitforexExchange = "Bitforex" 29 BinanceExchange = "Binance" 30 Binance2Exchange = "Binance2" 31 Binance3Exchange = "Binance3" 32 BinanceExchangeUS = "BinanceUS" 33 BitstampExchange = "Bitstamp" 34 CryptoDotComExchange = "Crypto.com" 35 FTXExchange = "FTX" 36 Opyn = "OPYN" 37 Premia = "Premia" 38 BitBayExchange = "BitBay" 39 CoinBaseExchange = "CoinBase" 40 HitBTCExchange = "HitBTC" 41 HuckleberryExchange = "Huckleberry" 42 TraderJoeExchange = "TraderJoe" 43 TraderJoeExchangeV2_1 = "TraderJoeV2.1" 44 TraderJoeExchangeV2_1Arbitrum = "TraderJoeV2.1-Arbitrum" 45 TraderJoeExchangeV2_1Avalanche = "TraderJoeV2.1-Avalanche" 46 TraderJoeExchangeV2_1BNB = "TraderJoeV2.1-BNB" 47 TraderJoeExchangeV2_2Avalanche = "TraderJoeV2.2-Avalanche" 48 PangolinExchange = "Pangolin" 49 PlatypusExchange = "PlatypusFinance" 50 SimexExchange = "Simex" 51 OKExExchange = "OKEx" 52 HuobiExchange = "Huobi" 53 LBankExchange = "LBank" 54 GateIOExchange = "GateIO" 55 ZBExchange = "ZB" 56 QuoineExchange = "Quoine" 57 UnknownExchange = "Unknown" 58 BlockSizeSeconds = 120 59 FilterKing = "MAIR120" 60 BancorExchange = "Bancor" 61 UniswapExchange = "Uniswap" 62 UniswapExchangeBase = "Uniswap-Base" 63 UniswapExchangeV3 = "UniswapV3" 64 UniswapExchangeV3Polygon = "UniswapV3-polygon" 65 UniswapExchangeV3Arbitrum = "UniswapV3-Arbitrum" 66 UniswapExchangeV3Base = "UniswapV3-Base" 67 UniswapExchangeV3Celo = "UniswapV3-Celo" 68 UniswapExchangeV4 = "UniswapV4" 69 LoopringExchange = "Loopring" 70 CamelotExchange = "Camelot" 71 CamelotExchangeV3 = "CamelotV3" 72 CurveFIExchange = "Curvefi" 73 CurveFIExchangeFantom = "Curvefi-Fantom" 74 CurveFIExchangeMoonbeam = "Curvefi-Moonbeam" 75 CurveFIExchangePolygon = "Curvefi-Polygon" 76 CurveFIExchangeArbitrum = "Curvefi-Arbitrum" 77 MakerExchange = "Maker" 78 KuCoinExchange = "KuCoin" 79 SushiSwapExchange = "SushiSwap" 80 SushiSwapExchangeArbitrum = "SushiSwap-arbitrum" 81 SushiSwapExchangePolygon = "SushiSwap-polygon" 82 SushiSwapExchangeFantom = "SushiSwap-fantom" 83 PanCakeSwap = "PanCakeSwap" 84 PanCakeSwapExchangeV3 = "PanCakeSwapV3" 85 ApeswapExchange = "Apeswap" 86 BiswapExchange = "Biswap" 87 DforceExchange = "Dforce" 88 ZeroxExchange = "0x" 89 KyberExchange = "Kyber" 90 BitMartExchange = "BitMart" 91 BitMaxExchange = "Bitmax" 92 MEXCExchange = "MEXC" 93 BKEXExchange = "BKEX" 94 BKEX2Exchange = "BKEX2" 95 CREX24Exchange = "CREX24" 96 STEXExchange = "STEX" 97 Deribit = "Deribit" 98 DfynNetwork = "DFYN" 99 UbeswapExchange = "Ubeswap" 100 SpookyswapExchange = "Spookyswap" 101 SpiritswapExchange = "Spiritswap" 102 QuickswapExchange = "Quickswap" 103 SerumExchange = "Serum" 104 OrcaExchange = "Orca" 105 SolarbeamExchange = "Solarbeam" 106 TrisolarisExchange = "Trisolaris" 107 ByBitExchange = "ByBit" 108 BitMexExchange = "BitMex" 109 MultiChain = "MultiChain" 110 StellaswapExchange = "Stellaswap" 111 WanswapExchange = "Wanswap" 112 OsmosisExchange = "Osmosis" 113 ZenlinkswapExchange = "Zenlink" 114 ZenlinkswapExchangeBifrostPolkadot = "Zenlink-bifrost-polkadot" 115 VelodromeExchange = "Velodrome" 116 VelodromeSlipstreamExchange = "VelodromeSlipstream" 117 MaverickExchange = "Maverick" 118 MaverickExchangeZKSync = "Maverick-zksync" 119 MaverickExchangeBNB = "Maverick-bnb" 120 PearlfiExchangeTestnet = "Pearlfi-Testnet" 121 PearlfiExchange = "Pearlfi" 122 PearlfiStableswapExchange = "PearlfiStableswap" 123 RamsesV1Exchange = "RamsesV1" 124 RamsesV2Exchange = "RamsesV2" 125 NileV1Exchange = "NileV1" 126 NileV2Exchange = "NileV2" 127 ThenaExchange = "Thena" 128 ThenaV3Exchange = "ThenaV3" 129 AyinExchange = "Ayin" 130 BitflowExchange = "Bitflow" 131 BitgetExchange = "Bitget" 132 VelarExchange = "Velar" 133 AerodromeSlipstreamExchange = "AerodromeSlipstream" 134 AerodromeV1Exchange = "AerodromeV1" 135 BifrostExchange = "Bifrost" 136 HydrationExchange = "Hydration" 137 VelodromeExchangeSwellchain = "Velodrome-Swellchain" 138 CoinExExchange = "CoinEx" 139 // FinageForex = "FinageForex" 140 ) 141 142 const ( 143 SCRAPER_TYPE_ASSETCOLLECTOR = "assetcollector" 144 SCRAPER_TYPE_LIQUIDITYSCRAPER = "liquidityscraper" 145 INDEX_TYPE_BLOCKNUMBER = "blocknumber" 146 INDEX_TYPE_INDEX = "index" 147 ) 148 149 type ConfigApi struct { 150 ApiKey string 151 SecretKey string 152 } 153 154 type ConfigConnector struct { 155 Coins []ExchangePair 156 } 157 158 func GetConfig(exchange string) (*ConfigApi, error) { 159 if utils.Getenv("USE_ENV", "false") == "true" { 160 return GetConfigFromEnv(exchange) 161 } 162 var configApi ConfigApi 163 usr, _ := user.Current() 164 dir := usr.HomeDir 165 configFileApi := dir + "/config/secrets/api_" + strings.ToLower(exchange) 166 err := gonfig.GetConf(configFileApi, &configApi) 167 return &configApi, err 168 } 169 170 func GetConfigFromEnv(exchange string) (*ConfigApi, error) { 171 if utils.Getenv("USE_ENV", "false") != "true" { 172 return nil, errors.New("use of config by env without env activation ") 173 } 174 175 configApi := ConfigApi{ 176 ApiKey: utils.Getenv("API_"+strings.ToUpper(exchange)+"_APIKEY", ""), 177 SecretKey: utils.Getenv("API_"+strings.ToUpper(exchange)+"_SECRETKEY", ""), 178 } 179 return &configApi, nil 180 }