¿Obtener dirección de entrada usando VIN txid?

He escrito el siguiente script para obtener la dirección Vin de Vin txids.

#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests,json
url="http://asd:asdf@localhost:2332"
payload={}
payload = {"jsonrpc":1,"id":"curltext"}
 txid= "10ff6ff5bdc73d7bb6d711c6896618a05479d061e67f576a0950328c1389035f"
addresses = []

payload["method"]="getrawtransaction"
payload["params"]=[txid,1]
response = requests.post(url,json.dumps(payload))
response =response.json()
response= response["result"]["vin"]

for data in response:
    raw_tx1=data["txid"]
    vout_int=data["vout"]
    payload["params"]=[raw_tx1,1]
    response_ = requests.post(url,json.dumps(payload))
    response_= response_.json()
    data_ =response_["result"]["vout"]
    for item in data_:
        if item["n"] == vout_int:
            json_data ={}
            json_data[item["scriptPubKey"]["addresses"][0]] = item["value"]
            addresses.append(json_data)

print addresses

para algunos txid obtengo o/p adecuado, por ejemplo:

[{u'MKHWXiX9Xm37jdCM8EzWMWNRJPhuwUxWiN': 50.0},{u'MVTpa2h3DGFWxkcmEkYLv4cYGggVprjjDZ': 300.0}]

pero para otros dice

    response= response["result"]["vin"]
TypeError: 'NoneType' object has no attribute '__getitem__'

¿Por qué se comporta así? ¿No se supone que tiene una salida uniforme independientemente de los txids? Si mi enfoque es incorrecto, ¿cómo me estaba volviendo correcto para algunas identificaciones de tx nuevamente?

Respuestas (1)

Ese error significa que responseo response['result']es Nonelo que significa que getrawtransactionprobablemente no pueda encontrar la identificación de transacción que está proporcionando.

Antes de intentar leer datos de la respuesta, asegúrese de que no lo sea Noney que realmente tenga un resultado.

Supongo que el problema se debió a que no mencioné el indicador txindex en mi archivo .conf. Ahora cuando pongo txindex=1 parece estar funcionando bien