def get_assets(): results = [] # Get all assets active the last 24h. markets = bitshares_es_client.get_markets('now-1d', 'now', quote=config.CORE_ASSET_ID) bts_volume = 0.0 # BTS volume is the sum of all the others. for asset_id in itertools.chain(markets.keys(), [config.CORE_ASSET_ID]): asset = get_asset_and_volume(asset_id) holders_count = get_asset_holders_count(asset_id) bts_volume += float(asset['volume']) results.append({ 'asset_name': asset['symbol'], # asset name 'asset_id': asset_id, # asset id 'latest_price': asset['latest_price'], # price in bts '24h_volume': float(asset['volume']) if asset_id != config.CORE_ASSET_ID else bts_volume, # 24h volume #float(markets[asset_id][config.CORE_ASSET_ID]['volume']), # 24h volume (from ES) / should be divided by core asset precision 'market_cap': asset['mcap'], # market cap 'asset_type': _get_asset_type(asset), # type: Core Asset / Smart Asset / User Issued Asset 'current_supply': int(asset['current_supply']), # Supply 'holders_count': holders_count, #Number of holders 'precision': asset['precision'] # Asset precision }) results.sort(key=lambda a : -a['24h_volume']) # sort by volume return results
def get_most_active_markets(): markets = bitshares_es_client.get_markets('now-1d', 'now') flatten_markets = [] for (base, quotes) in markets.items(): for (quote, data) in quotes.items(): flatten_markets.append({ 'base': base, 'quote': quote, 'volume': data['volume'], 'nb_operations': data['nb_operations'] }) flatten_markets.sort(key=lambda m: -m['nb_operations']) top_markets = flatten_markets[:100] results = [] for m in top_markets: base_asset = get_asset(m['base']) quote_asset = get_asset(m['quote']) ticker = get_ticker(m['base'], m['quote']) latest_price = float(ticker['latest']) results.append({ 'pair': '{}/{}'.format(quote_asset['symbol'], base_asset['symbol']), 'latest_price': latest_price, '24h_volume': m['volume'] / 10**quote_asset['precision'], 'quote_id': m['quote'], 'base_id': m['base'] }) return results
def get_assets(): results = [] # Get all assets active the last 24h. markets = bitshares_es_client.get_markets('now-1d', 'now', quote=config.CORE_ASSET_ID) bts_volume = 0.0 # BTS volume is the sum of all the others. for asset_id in itertools.chain(markets.keys(), [config.CORE_ASSET_ID]): asset = get_asset_and_volume(asset_id)[0] holders_count = get_asset_holders_count(asset_id) bts_volume += float(asset['volume']) results.append([ None, # db id (legacy, no purpose) asset['symbol'], # asset name asset_id, # asset id asset['latest_price'], # price in bts float(asset['volume']) if asset_id != config.CORE_ASSET_ID else bts_volume, # 24h volume #float(markets[asset_id][config.CORE_ASSET_ID]['volume']), # 24h volume (from ES) / should be divided by core asset precision asset['mcap'], # market cap _get_asset_type( asset), # type: Core Asset / Smart Asset / User Issued Asset int(asset['current_supply']), # Supply holders_count, #Number of holders '', # Wallet Type (useless value) asset['precision'] # Asset precision ]) results.sort(key=lambda a: -a[4]) # sort by volume return results
def _get_market_pairs(): markets = bitshares_es_client.get_markets('now-1d', 'now') result = [] for base_id, quotes in markets.items(): base = api.explorer._get_asset(base_id)['symbol'] for quote_id, _ in quotes.items(): quote = api.explorer._get_asset(quote_id)['symbol'] result.append((base, quote)) return result
def _get_markets(asset_id): markets = bitshares_es_client.get_markets('now-1d', 'now', quote=asset_id) results = [] for (base_id, quotes) in markets.items(): base_asset = get_asset(base_id) for (quote_id, data) in quotes.items(): quote_asset = get_asset(quote_id) ticker = get_ticker(base_id, quote_id) latest_price = float(ticker['latest']) results.append({ 'pair': '{}/{}'.format(quote_asset['symbol'], base_asset['symbol']), 'latest_price': latest_price, '24h_volume': data['volume'] / 10**quote_asset['precision'], 'quote_id': quote_id, 'base_id': base_id }) return results
def _get_markets(asset_id): markets = bitshares_es_client.get_markets('now-1d', 'now', quote=asset_id) results = [] for (base_id, quotes) in markets.items(): base_asset = _get_asset(base_id) for (quote_id, data) in quotes.items(): quote_asset = _get_asset(quote_id) ticker = get_ticker(base_id, quote_id) latest_price = float(ticker['latest']) results.append([ 0, # db_id '{}/{}'.format(quote_asset['symbol'], base_asset['symbol']), # pair 0, # quote_asset_db_id latest_price, # price data['volume'] / 10**quote_asset['precision'], # volume quote_id # quote_id ]) return results