¿Cómo obtener una tarifa en una transacción con entradas no confirmadas en bitcoinj?

Estoy tratando de obtener la tarifa de las transacciones entrantes en una billetera con bitcoinj. Por momentos era la comisión que usaba Transaction.getFee(), pero esto era tirar NullPointerException. Tuve que investigar un poco más y me di cuenta de que sucede cuando la transacción tiene entradas no confirmadas. Intenté sumar el valor de todas las entradas y restar el valor de todas las salidas, por lo que obtendría la tarifa, pero en estas ocasiones la suma de las entradas es 0 BTC. ¿Hay alguna otra forma de obtener la comisión?

Dejo un ejemplo de la salida de una de las transacciones (testnet):

04f570fdd0cb8c973d8c9b3adf09b803ef70941ec239685d479a93b089e4d621: Seen by 1 peer. Pending/unconfirmed.
   in   PUSHDATA(72)[3045022100fe750e43c3bc46eddb390dad98acd6ef0646e00386770de542e7e5c581f8118102206924cd243b459645ae8626e948e1d33404d29c651a8a59c24ed5cd902d7e939201] PUSHDATA(33)[02a40db91b59058375fe7f13810beb6609e63a8974ce355b76d01692058eaac9f9]
        outpoint:7cd4378560d2b36f53b3d492afa815c5ae615d18bff9611c3081f591a1c0c156:0
   out  DUP HASH160 PUSHDATA(20)[49d2661baf33597c6dc3dbdbb9e7a8835fdb76b4] EQUALVERIFY CHECKSIG 0.00126081 BTC
   out  DUP HASH160 PUSHDATA(20)[372fb0d8affe634b369af9722cc48c63ad90e9df] EQUALVERIFY CHECKSIG 0.001 BTC
   prps UNKNOWN

Respuestas (1)

En el caso de un nodo SPV, no tiene los valores de las entradas de una transacción, ya que no tiene la cadena de bloques completa y, por lo tanto, todos los UTXO.

¡La transacción en sí no tiene valores de las entradas!

Tienes las siguientes opciones:

  • Consultar un servidor de confianza para los UTXO (por ejemplo, servidores electrum)
  • Consultar un servicio web (por ejemplo, blockcypher)
  • por supuesto, tenga una copia completa de la cadena de bloques, puede usar enlaces Java para consultar un bitcoind local