Transactions d'adresse de sortie avec l'API d'Ethereum Explorer (Etherscan) (Etherium)

Cet article utilise Mac OS Sierra 10.12.4. La version python est 3.5.0.

introduction

Les monnaies virtuelles telles que Bitcoin ont un explorateur pour vérifier les adresses et les transactions. Etherscan est disponible en tant qu'explorateur pour Ethereum. Et Etherscan dispose également d'une API. Si vous l'utilisez, vous pouvez facilement extraire des transactions sans passer directement de la blockchain. Alors je vais l'utiliser.

Enregistrement de l'API Etherscan

Pour utiliser l'API Etherscan, vous devez enregistrer Etherscan et obtenir l'API-KEY. La procédure d'enregistrement et d'acquisition est décrite sur la [page API] officielle d'Etherscan (https://etherscan.io/apis). Vous pouvez obtenir API-KEY en vous inscrivant nouvellement sur Etherscan et en consultant ClientPortal-> MyApiKey.

Installation de py-etherscan-api

Cette fois, nous utiliserons l'API d'Etherscan en utilisant python. Pour ce faire, accédez à la page github py-etherscan-api (https://github.com/corpetty/py-etherscan-api/tree/cebc169dfca7d4fea5eec01c875550216de67039) et git le cloner.

git-clone


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

python


cd py-etherscan-api

Installez localement après le clonage.

python


python setup.py install

Sortie de la transaction de l'adresse spécifiée

Compte Etherscan ALL Obtenez une adresse appropriée en haut du montant et confirmez la transaction.

get_tx_values.py(2019/2/7 versions)


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(ancienne version. Ne fonctionne pas avec une erreur)


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'])

résultat

	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

Il correspond à la transaction sur Etherscan. (Puisque python sort du plus ancien, il sort dans l'ordre inverse d'Etherscan)

eth.png

L'API d'Explorer semble être utile lors de l'analyse des transactions d'adresse.

Recommended Posts

Transactions d'adresse de sortie avec l'API d'Ethereum Explorer (Etherscan) (Etherium)
Problèmes avec les résultats de sortie avec l'API Cloud Vision de Google