¿Cómo puedo ejecutar un comando de consola Electrum desde fuera de Electrum (en Linux)?

Quiero usar el saldo de mi billetera electrum en mi otra aplicación de python. ¿Cómo hago una llamada a la función getbalance()?

Debería ser algo como electrum daemon start; electrum getbalance, pero no puedo hacer que funcione en mi máquina.

Respuestas (2)

Puede que le resulte más fácil consultar un servidor electrum directamente. Stratum es un buen protocolo en el sentido de que es fácil de usar de manera ad-hoc.

Si está utilizando python3, es casi seguro que esta también es la solución más fácil.

def get_from_electrum(method, params=[]):
    params = [params] if type(params) is not list else params
    s = socket.create_connection(('ecdsa.net', 50001))
    s.send(json.dumps({"id": 0, "method": method, "params": params}).encode() + b'\n')
    return json.loads(s.recv(99999)[:-1].decode())

get_from_electrum('blockchain.address.get_balance', '1MaxKayeQg4YhFkzFz4x6NDeeNv1bwKKVA')

Resultado:

{
    "result": {
        "unconfirmed": 0,
        "confirmed": 237093847
    },
    "id": 0
}

Documentación: https://electrum.orain.org/wiki/Stratum_protocol_specification

Esto ya no funciona porque the target machine actively refused the connection(tal vez ahora usa otro host o puerto), y también ese enlace está roto.

Puede usar electrum como una biblioteca en sus scripts.

Hay un directorio de scripts en el repositorio de github, con ejemplos para aprender.