def get_workers(): workers_count = tusc_ws_client.request('database', 'get_worker_count', []) workers = tusc_ws_client.request( 'database', 'get_objects', [['1.11.{}'.format(i) for i in range(0, workers_count)]]) result = [] for worker in workers: if worker: worker["worker_account_name"] = get_account_name( worker["worker_account"]) result.append([worker]) result = result[::-1] # Reverse list. return result
def _get_account_id(account_name): if not _is_object(account_name): account = tusc_ws_client.request('database', 'lookup_account_names', [[account_name], 0]) return account[0]['id'] else: return account_name
def _get_accounts_by_chunks_via_ws(account_ids, chunk_size=1000): all_accounts = [] for i in range(0, len(account_ids), chunk_size): accounts = tusc_ws_client.request('database', 'get_accounts', [account_ids[i:i + chunk_size]]) all_accounts.extend(accounts) return all_accounts
def get_workers_votes(): proxies = get_top_proxies() proxies = proxies[:10] proxies = tusc_ws_client.request('database', 'get_objects', [[p['id'] for p in proxies]]) workers = get_workers() workers = workers[:30] workers_votes = [] for worker in workers: vote_id = worker[0]["vote_for"] id_worker = worker[0]["id"] worker_account_name = worker[0]["worker_account_name"] worker_name = worker[0]["name"] proxy_votes = _get_formatted_proxy_votes(proxies, vote_id) workers_votes.append({ 'worker_account_name': worker_account_name, 'worker_id': id_worker, 'worker_name': worker_name, 'top_proxy_votes': proxy_votes }) return workers_votes
def get_witnesses(): witnesses_count = tusc_ws_client.request('database', 'get_witness_count', []) witnesses = tusc_ws_client.request( 'database', 'get_objects', [['1.5.{}'.format(w) for w in range(0, witnesses_count)]]) result = [] for witness in witnesses: if witness: witness["witness_account_name"] = get_account_name( witness["witness_account"]) result.append(witness) result = sorted(result, key=lambda k: int(k['total_votes'])) result = result[::-1] # Reverse list. return result
def get_committee_members(): committee_count = tusc_ws_client.request('database', 'get_committee_count', []) committee_members = tusc_ws_client.request( 'database', 'get_objects', [['1.4.{}'.format(i) for i in range(0, committee_count)]]) result = [] for committee_member in committee_members: if committee_member: committee_member[ "committee_member_account_name"] = get_account_name( committee_member["committee_member_account"]) result.append([committee_member]) result = sorted(result, key=lambda k: int(k[0]['total_votes'])) result = result[::-1] # this reverses array return result
def get_asset(asset_id): asset = None if not _is_object(asset_id): asset = tusc_ws_client.request('database', 'lookup_asset_symbols', [[asset_id], 0])[0] else: asset = tusc_ws_client.request('database', 'get_assets', [[asset_id], 0])[0] dynamic_asset_data = tusc_ws_client.get_object( asset["dynamic_asset_data_id"]) asset["current_supply"] = dynamic_asset_data["current_supply"] asset["confidential_supply"] = dynamic_asset_data["confidential_supply"] asset["accumulated_fees"] = dynamic_asset_data["accumulated_fees"] asset["fee_pool"] = dynamic_asset_data["fee_pool"] issuer = tusc_ws_client.get_object(asset["issuer"]) asset["issuer_name"] = issuer["name"] return asset
def get_grouped_limit_orders(quote, base, group=10, limit=False): limit = _ensure_safe_limit(limit) base = _ensure_asset_id(base) quote = _ensure_asset_id(quote) grouped_limit_orders = tusc_ws_client.request( 'orders', 'get_grouped_limit_orders', [base, quote, group, None, limit]) return grouped_limit_orders
def get_witnesses_votes(): proxies = get_top_proxies() proxies = proxies[:10] proxies = tusc_ws_client.request('database', 'get_objects', [[p['id'] for p in proxies]]) witnesses = get_witnesses() witnesses = witnesses[:25] # FIXME: Witness number is variable. witnesses_votes = [] for witness in witnesses: vote_id = witness["vote_id"] id_witness = witness["id"] witness_account_name = witness["witness_account_name"] proxy_votes = _get_formatted_proxy_votes(proxies, vote_id) witnesses_votes.append({ 'witness_account_name': witness_account_name, 'witness_id': id_witness, 'top_proxy_votes': proxy_votes }) return witnesses_votes
def get_committee_votes(): proxies = get_top_proxies() proxies = proxies[:10] proxies = tusc_ws_client.request('database', 'get_objects', [[p['id'] for p in proxies]]) committee_members = get_committee_members() committee_members = committee_members[:11] committee_votes = [] for committee_member in committee_members: vote_id = committee_member[0]["vote_id"] id_committee = committee_member[0]["id"] committee_account_name = committee_member[0][ "committee_member_account_name"] proxy_votes = _get_formatted_proxy_votes(proxies, vote_id) committee_votes.append({ 'committee_account_name': committee_account_name, 'committee_id': id_committee, 'top_proxy_votes': proxy_votes }) return committee_votes
def get_block(block_num): block = tusc_ws_client.request('database', 'get_block', [block_num, 0]) return block
def get_account(account_id): return tusc_ws_client.request('database', 'get_accounts', [[account_id]])[0]
def _get_volume(base, quote): return tusc_ws_client.request('database', 'get_24_volume', [base, quote])
def get_ticker(base, quote): return tusc_ws_client.request('database', 'get_ticker', [base, quote])
def get_asset_holders_count(asset_id): asset_id = _ensure_asset_id(asset_id) return tusc_ws_client.request('asset', 'get_asset_holders_count', [asset_id])
def get_header(): response = tusc_ws_client.request('database', 'get_dynamic_global_properties', []) return _add_global_informations(response, tusc_ws_client)
def get_asset_holders(asset_id, start=0, limit=20): asset_id = _ensure_asset_id(asset_id) asset_holders = tusc_ws_client.request('asset', 'get_asset_holders', [asset_id, start, limit]) return asset_holders
def lookup_accounts(start): accounts = tusc_ws_client.request('database', 'lookup_accounts', [start, 1000]) return accounts
def get_last_block_time(): dynamic_global_properties = tusc_ws_client.request( 'database', 'get_dynamic_global_properties', []) return dynamic_global_properties["time"]
def get_last_block_number(): dynamic_global_properties = tusc_ws_client.request( 'database', 'get_dynamic_global_properties', []) return dynamic_global_properties["head_block_number"]
def get_order_book(base, quote, limit=False): limit = _ensure_safe_limit(limit) order_book = tusc_ws_client.request('database', 'get_order_book', [base, quote, limit]) return order_book
def get_fill_order_history(base, quote): fill_order_history = tusc_ws_client.request('history', 'get_fill_order_history', [base, quote, 100]) return fill_order_history
def get_margin_positions(account_id): margin_positions = tusc_ws_client.request('database', 'get_margin_positions', [account_id]) return margin_positions
def get_full_account(account_id): account = tusc_ws_client.request('database', 'get_full_accounts', [[account_id], 0])[0][1] return account
def _get_asset_id_and_precision(asset_name): asset = tusc_ws_client.request('database', 'lookup_asset_symbols', [[asset_name], 0])[0] return (asset["id"], 10**asset["precision"])