So erhalten Sie die Eingabeadresse von vin, wo nur eine txid angegeben ist (Insight-Api)

Ich finde gerne die Eingabeadresse und den Betrag für einen Vin wie folgt:

"vin": [
    {
        "txid": "e3f0e88ce224d342a0189c1b9d2fd488d8bda2f303dbe1e1dbbaa5f51d9f4a53",
        "vout": 1,
        "scriptSig": {
            "asm": "3044022036c454ee41d67ee7c00fade55d57b573794916c1e1d9f301a038547daa5fcc0502202c99917b5590adf2ede1b8e3a6773369690a268c7b445664223ec8f92288e81e010272491cc9c405bfdc35f766bd849ddc58268088c202425cec224aa05cbf8547be"
        },
        "sequence": 4294967295,
        "n": 0,
        "unconfirmedInput": 1
    }
]

Dies ist von txid: f4f2ddb44a8d155bc795e3e7497714fd6a1f035a6438b22403a7faa67012b9ec

Vielen Dank

Antworten (2)

Verwenden Sie zunächst die API, um die Informationen über die txid.

/api/tx/e3f0e88ce224d342a0189c1b9d2fd488d8bda2f303dbe1e1dbbaa5f51d9f4a53

Dieses Ergebnis enthält alle Details, nach denen Sie suchen. Hier sind die Teile, nach denen Sie fragen. Das nHier entspricht der voutobigen Zahl, glaube ich, und die Werte valueund addressessind die Eingabemenge und die Adresse.

"value": "2405.38864196",
"n": 1,
"scriptPubKey": {
    ...
    "addresses": [
        "1NG1nT2ZuFw47f41mGjYpPp7J837yTQZhB"
    ]
},
...
Wenn ich also Block 255 145 lese und wissen möchte, woher die Eingabe stammt, muss ich den gesamten vorherigen Block erneut scannen, um nach diesem TX zu suchen? :o (Ich parse die Blockchain manuell)
@sliders_alpha Ja, möglicherweise. Wenn Sie effizienter sein möchten, führen Sie beim Scannen der Blockchain eine Liste der Transaktions-IDs und des Blocks, in dem sie eingegangen sind.

Sie können es codieren, Python 2.7-Implementierung für dasselbe ist:

#!/usr/bin/python
# -*- coding: utf-8 -*-
__author__ ="cryptoKTM"

import requests,json
url="http://username:password@server:PORT"
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