MCPcopy Create free account
hub / github.com/ccxt/ccxt / fetch_markets_from_api

Method fetch_markets_from_api

python/ccxt/gemini.py:648–701  ·  view source on GitHub ↗
(self, params={})

Source from the content-addressed store, hash-verified

646 return result
647
648 def fetch_markets_from_api(self, params={}):
649 marketIdsRaw = self.publicGetV1Symbols(params)
650 #
651 # [
652 # "btcusd",
653 # "linkusd",
654 # ...
655 # ]
656 #
657 result = []
658 options = self.safe_dict(self.options, 'fetchMarketsFromAPI', {})
659 brokenPairs = self.safe_list(self.options, 'brokenPairs', [])
660 marketIds = []
661 for i in range(0, len(marketIdsRaw)):
662 if not self.in_array(marketIdsRaw[i], brokenPairs):
663 marketIds.append(marketIdsRaw[i])
664 if self.safe_bool(options, 'fetchDetailsForAllSymbols', False):
665 promises = []
666 for i in range(0, len(marketIds)):
667 marketId = marketIds[i]
668 request = {
669 'symbol': marketId,
670 }
671 promises.append(self.publicGetV1SymbolsDetailsSymbol(self.extend(request, params)))
672 #
673 # {
674 # "symbol": "BTCUSD",
675 # "base_currency": "BTC",
676 # "quote_currency": "USD",
677 # "tick_size": 1E-8,
678 # "quote_increment": 0.01,
679 # "min_order_size": "0.00001",
680 # "status": "open",
681 # "wrap_enabled": False
682 # }
683 #
684 responses = promises
685 for i in range(0, len(responses)):
686 result.append(self.parse_market(responses[i]))
687 else:
688 # use trading-pairs info, if it was fetched
689 tradingPairs = self.safe_list(self.options, 'tradingPairs')
690 if tradingPairs is not None:
691 indexedTradingPairs = self.index_by(tradingPairs, 0)
692 for i in range(0, len(marketIds)):
693 marketId = marketIds[i]
694 pairInfo = self.safe_list(indexedTradingPairs, marketId.upper())
695 if pairInfo is not None and not self.in_array(marketId, brokenPairs):
696 result.append(self.parse_market(pairInfo))
697 else:
698 for i in range(0, len(marketIds)):
699 if not self.in_array(marketIds[i], brokenPairs):
700 result.append(self.parse_market(marketIds[i]))
701 return result
702
703 def parse_market(self, response) -> Market:
704 #

Callers 1

fetch_marketsMethod · 0.95

Calls 11

parse_marketMethod · 0.95
safe_dictMethod · 0.80
safe_listMethod · 0.80
in_arrayMethod · 0.80
safe_boolMethod · 0.80
index_byMethod · 0.80
publicGetV1SymbolsMethod · 0.65
rangeFunction · 0.50
appendMethod · 0.45
extendMethod · 0.45

Tested by

no test coverage detected