Estaba leyendo una respuesta popular que explica cómo encontrar la dirección de la persona que envió una transacción y el pseudocódigo en esa respuesta no tiene mucho sentido para mí.
txid = <relevant transaction id>
addresses = []
raw_tx = decoderawtransaction(getrawtransaction(txid))
for(input in raw_tx['vin']) {
input_raw_tx = decoderawtransaction(getrawtransaction(input['txid']))
addresses.push(input_raw_tx['vout'][input['vout']]['scriptPubKey']['addresses'][0])
}
Aquí está la parte que entendí. Una billetera creada txid
puede usar muchas entradas de diferentes direcciones para enviar esa cantidad de dinero. Es por eso que iteramos input in raw_tx['vin']
y creamos una lista de direcciones addresses = []
.
Aquí hay una parte que no me queda clara:
input_raw_tx['vout'][input['vout']]['scriptPubKey']['addresses'][0]
input_raw_tx['vout']
devuelve la lista. Entonces input['vout']
debería devolver el índice de esa lista. Pero también devuelve una lista. ¿Puede alguien explicar qué está pasando?
Además, esa respuesta se escribió en el antiguo 2013. ¿Ha cambiado algo en estos 4 años y hay una manera más fácil de encontrar la dirección de retorno a principios de 2918?
Repita conmigo: las transacciones de Bitcoin no tienen una dirección de retorno. Las transacciones de Bitcoin no tienen una dirección de retorno.
Como dices, una transacción puede tener múltiples entradas. Cada entrada gasta una moneda que previamente estaba controlada por una dirección/clave o secuencia de comandos en particular. Sin embargo, estos "destinatarios de entrada" no son direcciones de devolución, por varias razones:
En general, si desea reembolsar algo de dinero, solo hay una solución: solicite al remitente con anticipación una dirección de reembolso.