recuperar toda la transacción entre dos direcciones

He usado esta consulta para tratar de obtener todas las transacciones entre dos direcciones:

https://blockchain.info/multiaddr?active=1EipJdYVJbqsTSQhj1icK424AkMbyjvgBm|1LWwLvKWbcpiZYqCcwfuQ3gjjNJkxftmEJ

pero la cuestión es que, según mi billetera, hay muchas más transacciones que no aparecen en el resultado json aquí .

¿Porqué es eso?

¿Cómo puedo ver realmente todas las transacciones?

Pensé que tal vez blockexplorer sería mejor que blockchain.info, pero en realidad, no es así.

Lo tienen así:

https://blockexplorer.com/api/addrs/1EipJdYVJbqsTSQhj1icK424AkMbyjvgBm,1LWwLvKWbcpiZYqCcwfuQ3gjjNJkxftmEJ/txs?from=0&to=50

¿Quizás sería mejor simplemente consultar por txid?

Cuando dice "todas las transacciones entre dos direcciones", ¿quiere decir que solo desea transacciones en las que ambas direcciones estén involucradas, o solo desea todas las transacciones de ambas direcciones?
los que están entre ellos, pero también aquellos que no son solo bidireccionales, sino que también incluyen tal vez como 1 a muchos otros también, pero al menos esos dos

Respuestas (2)

No creo que puedas hacer esto con una sola llamada a la API. Devolvería todas las transacciones de una de las direcciones, recorrería todas las entradas y salidas y, si coinciden con la otra dirección, mostraría los datos tx.

No estoy seguro de qué idioma está usando, pero la lógica debería ser la misma.

<?php
$addr1 = "1EipJdYVJbqsTSQhj1icK424AkMbyjvgBm";
$addr2 = "1LWwLvKWbcpiZYqCcwfuQ3gjjNJkxftmEJ";

$url = "https://blockchain.info/address/".$addr1."?format=json";
$fgc = json_decode(file_get_contents($url), true);

//num of txs
$txs = count($fgc["txs"]);

//loop through all txs
for($i=0;$i<$txs;$i++){
    //check all inputs & outputs for the other address
    //inputs
    $numinputs = count($fgc["txs"][$i]["inputs"]);
    for($ii=0;$ii<$numinputs;$ii++){
        if($fgc["txs"][$i]["inputs"][$ii]["prev_out"]["addr"] == $addr2){
            //found a corresponding tx
            print_r($fgc["txs"][$i]);
        }
    }//end inputs loop

    $numoutputs = count($fgc["txs"][$i]["out"]);
    for($iii=0;$iii<$numoutputs;$iii++){
        if($fgc["txs"][$i]["out"][$iii]["addr"] == $addr2){
            //found a corresponding tx
            print_r($fgc["txs"][$i]);
        }
    }//end outputs loop
}

?>

http://phpfiddle.org/main/code/8imw-ardy

¿Por qué es así que esto no es una cosa fácil de consultar?

Yo también tuve problemas. La documentación no está clara. Este enlace funciona a través del navegador: https://blockchain.info/multiaddr?address=641ad5051edd97029a003fe9efb29359fcee409d&address=1A8JiWcwvpY7tAopUkSnGuEYHmzGYfZPiq