Esperaba que, en el caso de que getFromAddress() devuelva una dirección, transactioninput.getConnectedOutput().getAddressFromP2SH(networkparameter)) debería devolver la misma dirección. Pero, a veces, transactioninput.getConnectedOutput() devuelve un valor nulo, a pesar de que getFromAddress() devuelve una dirección adecuada. ¿Cuál es la razón?
Si estos dos métodos son diferentes, ¿cómo podría devolver el valor del campo "addr" del objeto "prev_out" de los elementos de la matriz "input" en el objeto JSON devuelto sin el uso de blockchain.info-api? (por ejemplo, para este https://blockchain.info/address/1LoD9DeUeCfnZueSVPzFaFkfFcx8mG1Add?format=json ).
Después de revisar la documentación de la API de bitcoinj con respecto a los métodos sobre los que ha preguntado, la forma en que hace que funcione el segundo método, se supone que debe conectar la transacción de entrada para obtener el resultado de ese tx en particular. Puede ir a través del enlace que he dado arriba e informar si es necesario.
La respuesta de Shabahat es buena, pero así es como funciona cada método para obtener una dirección:
getFromAddress()
toma el último elemento de scriptSig y lo procesa para encontrar la dirección P2SH. Si la transacción es válida y P2SH, esta siempre será correcta. Puede hacer algo similar para P2PKH, pero no puede hacer esto para P2PK. (P2PK no incluye la clave pública en scriptSig).transactioninput.getConnectedOutput().getAddressFromP2SH()
mira el scriptPubKey de la transacción anterior e intenta convertirlo en una dirección. No todas las scriptPubKey válidas se pueden representar con un formato de dirección estándar, por lo que no siempre funcionará. (Sin embargo, funcionará para los casos comunes de P2PKH, P2SH y P2PK).Ya revisé el enlace con respecto a mis propósitos y creo que conecté la transacción de entrada para obtener la salida de ese tx en particular con el código que se muestra.
¿Está comprobando el valor de retorno de connect
?
aqqqq
Shabahat M. Ayubi
aqqqq