Comprobación/sondeo del saldo de una dirección en Electrum a través de la línea de comando/RPC

Supongamos que dinámicamente, a través de la línea de comandos/RPC, he creado una dirección o una consulta de pago en Electrum. Y guardé sus detalles en una base de datos junto con la cantidad de bitcoins que espero recibir.

¿Cómo se puede verificar/sondear si esa cantidad de bitcoins ha llegado a esa dirección? También a través de la línea de comandos/RPC.

No quiero que Electrum me notifique, sino que quiero sondear a Electrum daemon yo mismo. Por lo tanto, una devolución de llamada de solicitud http que Electrum puede enviar a una URL no es una opción que estoy buscando. Además, por el momento, no tengo una cadena de bloques localmente. Quizás más tarde lo añada, sin embargo.

Me gustaría saber esto también. Si obtienes algo, actualiza este hilo.

Respuestas (3)

Hay varias formas dependiendo de lo que estés usando. Si desea consultar el daemon, debe asumir que está ejecutando una caja de Linux o VPS

No desea ni necesita un "saldo de dirección": necesita el saldo de SU billetera

Esta pregunta ya ha sido respondida parcialmente aquí => ¿Cómo se monitorearía una dirección para una transacción y 1 confirmación en PHP?

Sin embargo, la mejor manera es usar lo que recomiendan los documentos de Electrum: una llamada curl como esta =>curl --data-binary '{"id":"curltext","method":"getbalance","params":{"funded":true}}' http://127.0.0.1:7777

Si está utilizando PHP, se vería así:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://127.0.0.1:7777");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"id\":\"curltext\",\"method\":\"getbalance\",\"params\":{\"funded\":true}}");
curl_setopt($ch, CURLOPT_POST, 1);

$headers = array();
$headers[] = "Content-Type: application/x-www-form-urlencoded";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close ($ch);

Puede hacer esto dentro de un intento de captura y activarlo mediante un trabajo cron que se ejecuta en cualquier intervalo que desee verificar

Lo que regresa es un archivo JSON-RPC que puede decodificar en una matriz

$result =  json_decode($response, true);

y conéctelo a otra variable para la única cosa o cosas en las que desea trabajar desde allí

$wanted = $result["result"]["xxxxxxxxx"];

cualquiera de los parámetros se puede pasar como una variable a la llamada curl

por ejemplo, para agregar una solicitud sería así:

curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"id\":\"curltext\",\"method\":\"addrequest\",\"params\":{\"amount\":\"$how_much\",\"memo\":\"$your_memo->some_data_field\"}}");

Solo necesita ejecutar un comando "obtener saldo", o cualquier otro, para ver qué devuelve y ajustar su código para extraer el valor devuelto de "resultado". a otra billetera y esperar el próximo pago

Luego podría usar esos datos para activar un "hacer algo" como el ejemplo de correo electrónico en el enlace anterior del ejemplo del medio allí.

Resulta que electrum no tiene que estar en modo daemon para recibir solicitudes de API, pero tiene que estar en modo daemon antes de admitirlas.

Acabo de descubrir cómo buscar un saldo de dirección usando Electrum RPC:

{"id":"myquery","method":"getaddressbalance","params":["14vuRY354EaxDu4WrgjtvoDEwntDNwMVbx"]}
Hola, tengo un servidor electrum (electrs by blockstream) ejecutándose con este parámetro --cookie=mynode:mypassword, ¿sería posible compartir el comando curl, agregando también esta autenticación de cookies para enviar la solicitud? Sería grandioso.

La respuesta de Jirico es la correcta. Debe asegurarse de poner la dirección que está consultando en params.

Si necesita más profundidad que solo un balance, también puede obtener el historial de direcciones

{"id":"myquery","method":"getaddresshistory","params":["14vuRY354EaxDu4WrgjtvoDEwntDNwMVbx"]}

Puede encontrar una lista de comandos aquí: Introducción a la consola Electrum Python

Lo acabo de probar y obtuve: {"resultado": [], "id": "curltext", "error": nulo} ya que lo probé en una dirección vacía. ¿Qué versión de Electrum estás usando?