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

Method market

python/ccxt/binance.py:2863–2909  ·  view source on GitHub ↗
(self, symbol: str)

Source from the content-addressed store, hash-verified

2861 }
2862
2863 def market(self, symbol: str) -> MarketInterface:
2864 if self.markets is None:
2865 raise ExchangeError(self.id + ' markets not loaded')
2866 # defaultType has legacy support on binance
2867 defaultType = self.safe_string(self.options, 'defaultType')
2868 defaultSubType = self.safe_string(self.options, 'defaultSubType')
2869 isLegacyLinear = defaultType == 'future'
2870 isLegacyInverse = defaultType == 'delivery'
2871 isLegacy = isLegacyLinear or isLegacyInverse
2872 if isinstance(symbol, str):
2873 if symbol in self.markets:
2874 market = self.markets[symbol]
2875 # begin diff
2876 if isLegacy and market['spot']:
2877 settle = market['quote'] if isLegacyLinear else market['base']
2878 futuresSymbol = symbol + ':' + settle
2879 if futuresSymbol in self.markets:
2880 return self.markets[futuresSymbol]
2881 else:
2882 return market
2883 # end diff
2884 elif symbol in self.markets_by_id:
2885 markets = self.markets_by_id[symbol]
2886 # begin diff
2887 if isLegacyLinear:
2888 defaultType = 'linear'
2889 elif isLegacyInverse:
2890 defaultType = 'inverse'
2891 elif defaultType is None:
2892 defaultType = defaultSubType
2893 # end diff
2894 for i in range(0, len(markets)):
2895 market = markets[i]
2896 if market[defaultType]:
2897 return market
2898 return markets[0]
2899 elif (symbol.find('/') > -1) and (symbol.find(':') < 0):
2900 if (defaultType is not None) and (defaultType != 'spot'):
2901 # support legacy symbols
2902 base, quote = symbol.split('/')
2903 settle = base if (quote == 'USD') else quote
2904 futuresSymbol = symbol + ':' + settle
2905 if futuresSymbol in self.markets:
2906 return self.markets[futuresSymbol]
2907 elif (symbol.find('-C') > -1) or (symbol.find('-P') > -1): # both exchange-id and unified symbols are supported self way regardless of the defaultType
2908 return self.create_expired_option_market(symbol)
2909 raise BadSymbol(self.id + ' does not have market symbol ' + symbol)
2910
2911 def safe_market(self, marketId: Str = None, market: Market = None, delimiter: Str = None, marketType: Str = None) -> MarketInterface:
2912 isOption = (marketId is not None) and ((marketId.find('-C') > -1) or (marketId.find('-P') > -1))

Callers 15

fetch_order_bookMethod · 0.95
fetch_tickerMethod · 0.95
fetch_mark_priceMethod · 0.95
fetch_ohlcvMethod · 0.95
fetch_tradesMethod · 0.95
edit_spot_orderMethod · 0.95
edit_contract_orderMethod · 0.95
edit_orderMethod · 0.95
edit_ordersMethod · 0.95
create_ordersMethod · 0.95

Calls 7

ExchangeErrorClass · 0.90
BadSymbolClass · 0.90
safe_stringMethod · 0.80
findMethod · 0.80
splitMethod · 0.80
rangeFunction · 0.50

Tested by

no test coverage detected