[PYTHON] Ausgabeadressentransaktionen mit der Explorer (Etherscan) API (Etherium) von Ethereum

Dieser Artikel verwendet Mac OS Sierra 10.12.4. Die Python-Version ist 3.5.0.

Einführung

Virtuelle Währungen wie Bitcoin verfügen über einen Explorer zum Überprüfen von Adressen und Transaktionen. Etherscan ist als Explorer für Ethereum verfügbar. Und Etherscan hat auch eine API. Wenn Sie dies verwenden, können Sie Transaktionen einfach extrahieren, ohne direkt aus der Blockchain zu gehen. Also werde ich es benutzen.

Etherscan API Registrierung

Um die Etherscan-API verwenden zu können, müssen Sie Etherscan registrieren und API-KEY erhalten. Das Registrierungs- und Erwerbsverfahren ist auf der offiziellen Etherscan API-Seite beschrieben. Sie können API-KEY erhalten, indem Sie sich neu bei Etherscan registrieren und ClientPortal-> MyApiKey aufrufen.

Installation von py-etherscan-api

Dieses Mal werden wir die API von Etherscan mit Python verwenden. Gehen Sie dazu zur Seite py-etherscan-api github (https://github.com/corpetty/py-etherscan-api/tree/cebc169dfca7d4fea5eec01c875550216de67039) und klonen Sie sie.

git-clone


git clone https://github.com/corpetty/py-etherscan-api.git

python


cd py-etherscan-api

Nach dem Klonen lokal installieren.

python


python setup.py install

Geben Sie die Transaktion der angegebenen Adresse aus

Etherscan ALL-Konto Erhalten Sie oben im Betrag eine entsprechende Adresse und bestätigen Sie die Transaktion.

get_tx_values.py(2019/2/7 Versionen)


from etherscan import accounts
import pandas as pd
import datetime as dt
API_KEY = 'API_KEY' # change API_KEY 
ADDRESS = '0xb794f5ea0ba39494ce839613fffba74279579268' # change address 

def get_tx_value(page_no, address, api_key):
    ac = accounts.Account(address=address,api_key=api_key)
#     txes = ac.get_all_transactions()
    txes = ac.get_transaction_page(page_no)
    
    ret = []
    for t in txes:
        tmp = []
        tmp.append(t.get('from'))
        tmp.append(t.get('to'))
        tmp.append(int(t.get('value')) / 1000000000000000000 )
        tmp.append(dt.datetime.fromtimestamp(int(t.get('timeStamp'))))
        ret.append(tmp)
    return ret

ret = get_tx_value(page_no=1, address=ADDRESS,api_key=API_KEY)
df = pd.DataFrame(ret,columns=['from','to','value','datetime'])
df.to_csv('txes.tsv',sep='\t')

get_tx_values.py(Vorherige Versionen. Funktioniert nicht mit Fehler)


from etherscan import accounts
import pandas as pd
import datetime as dt
API_KEY = 'API_KEY' # change API_KEY 
ADDRESS = '0xb794f5ea0ba39494ce839613fffba74279579268' # change address 

def get_tx_value(address,api_key):
    ac = accounts.Account(address=address,api_key=api_key)
    txes = ac.get_all_transactions()
    ret = []
    for t in txes:
        tmp = []
        tmp.append(t.get('from'))
        tmp.append(t.get('to'))
        tmp.append(int(t.get('value')) / 1000000000000000000 )
        tmp.append(dt.datetime.fromtimestamp(int(t.get('timeStamp'))))
        ret.append(tmp)
    return ret

ret = get_tx_value(address=ADDRESS,api_key=API_KEY)
df = pd.DataFrame(ret,columns=['from','to','value','datetime'])

Ergebnis

	from	to	value	datetime
0	0x32be343b94f860124dc4fee278fdcbd38c102d88	0xb794f5ea0ba39494ce839613fffba74279579268	100.000000	2015-08-09 07:47:35
1	0xb794f5ea0ba39494ce839613fffba74279579268	0x32be343b94f860124dc4fee278fdcbd38c102d88	99.000000	2015-08-09 07:53:13
2	0x32be343b94f860124dc4fee278fdcbd38c102d88	0xb794f5ea0ba39494ce839613fffba74279579268	99.001192	2015-08-09 07:55:43
3	0x32be343b94f860124dc4fee278fdcbd38c102d88	0xb794f5ea0ba39494ce839613fffba74279579268	900.000000	2015-08-09 07:58:23
4	0x32be343b94f860124dc4fee278fdcbd38c102d88	0xb794f5ea0ba39494ce839613fffba74279579268	9000.000000	2015-08-09 07:59:15

Es entspricht der Transaktion auf Etherscan. (Da Python vom ältesten ausgegeben wird, wird es in umgekehrter Reihenfolge wie Etherscan ausgegeben.)

eth.png

Die Explorer-API scheint bei der Analyse von Adresstransaktionen hilfreich zu sein.

Recommended Posts

Ausgabeadressentransaktionen mit der Explorer (Etherscan) API (Etherium) von Ethereum
Probleme mit den Ausgabeergebnissen mit der Cloud Vision-API von Google