def get_operation(operation_id):
    operation = bitshares_ws_client.get_object(operation_id)
    if not operation:
        operation = {} 

    operation = _enrich_operation(operation, bitshares_ws_client)
    return [ operation ]
def get_asset(asset_id):
    asset = None
    if not _is_object(asset_id):
        asset = bitshares_ws_client.request('database', 'lookup_asset_symbols', [[asset_id], 0])[0]
    else:
        asset = bitshares_ws_client.request('database', 'get_assets', [[asset_id], 0])[0]
    
    dynamic_asset_data = bitshares_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 = bitshares_ws_client.get_object(asset["issuer"])
    asset["issuer_name"] = issuer["name"]

    return asset
def get_last_network_ops():
    con = psycopg2.connect(**config.POSTGRES)
    cur = con.cursor()

    query = "SELECT * FROM ops ORDER BY block_num DESC LIMIT 10"
    cur.execute(query)
    results = cur.fetchall()
    con.close()

    # add operation data
    for o in range(0, len(results)):
        operation_id = results[o][2]
        object = bitshares_ws_client.get_object(operation_id)
        results[o] = results[o] + tuple(object["op"])

    return results
def get_workers():
    workers_count = bitshares_ws_client.request('database', 'get_worker_count', [])
    workers = bitshares_ws_client.request('database', 'get_objects', [ [ '1.14.{}'.format(i) for i in range(0, workers_count) ] ])

    # get the votes of worker 1.14.0 - refund 400k
    refund400k = bitshares_ws_client.get_object("1.14.0")
    thereshold =  int(refund400k["total_votes_for"])

    result = []
    for worker in workers:
        if worker:
            worker["worker_account_name"] = get_account_name(worker["worker_account"])
            current_votes = int(worker["total_votes_for"])
            perc = (current_votes*100)/thereshold
            worker["perc"] = perc
            result.append([worker])

    result = result[::-1] # Reverse list.
    return result
def get_object(object):
    return bitshares_ws_client.get_object(object)