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  }