def wallet_showutxos(wallet, showprivkey):
    unsp = {}
    max_tries = jm_single().config.getint("POLICY", "taker_utxo_retries")
    for u, av in wallet.unspent.iteritems():
        key = wallet.get_key_from_addr(av['address'])
        tries = podle.get_podle_tries(u, key, max_tries)
        tries_remaining = max(0, max_tries - tries)
        unsp[u] = {
            'address': av['address'],
            'value': av['value'],
            'tries': tries,
            'tries_remaining': tries_remaining,
            'external': False
        }
        if showprivkey:
            wifkey = btc.wif_compressed_privkey(key, vbyte=get_p2pk_vbyte())
            unsp[u]['privkey'] = wifkey

    used_commitments, external_commitments = podle.get_podle_commitments()
    for u, ec in external_commitments.iteritems():
        tries = podle.get_podle_tries(utxo=u,
                                      max_tries=max_tries,
                                      external=True)
        tries_remaining = max(0, max_tries - tries)
        unsp[u] = {
            'tries': tries,
            'tries_remaining': tries_remaining,
            'external': True
        }

    return json.dumps(unsp, indent=4)
def wallet_showutxos(wallet, showprivkey):
    unsp = {}
    max_tries = jm_single().config.getint("POLICY", "taker_utxo_retries")
    utxos = wallet.get_utxos_by_mixdepth()
    for md in utxos:
        for u, av in utxos[md].items():
            key = wallet.get_key_from_addr(av['address'])
            tries = podle.get_podle_tries(u, key, max_tries)
            tries_remaining = max(0, max_tries - tries)
            unsp[u] = {
                'address': av['address'],
                'value': av['value'],
                'tries': tries,
                'tries_remaining': tries_remaining,
                'external': False
            }
            if showprivkey:
                unsp[u]['privkey'] = wallet.get_wif_path(av['path'])

    used_commitments, external_commitments = podle.get_podle_commitments()
    for u, ec in iteritems(external_commitments):
        tries = podle.get_podle_tries(utxo=u,
                                      max_tries=max_tries,
                                      external=True)
        tries_remaining = max(0, max_tries - tries)
        unsp[u] = {
            'tries': tries,
            'tries_remaining': tries_remaining,
            'external': True
        }

    return json.dumps(unsp, indent=4)