跳转到主要内容

etherscan-python

项目描述

etherscan-python

Build Status codecov Codacy Badge Maintainability CodeFactor

PyPI PyPI - Downloads GitHub Python 3.8 DOI

一个最小化且完整的针对Etherscan.io的Python API。

提供了所有标准和专业端点。支持Kovan、Rinkeby和Ropsten测试网。

可在PyPI上找到。由Etherscan.io API提供支持。


端点

以下提供了以下端点

账户 (来源)

  • get_eth_balance
  • get_eth_balance_multiple
  • get_normal_txs_by_address
  • get_normal_txs_by_address_paginated
  • get_internal_txs_by_address
  • get_internal_txs_by_address_paginated
  • get_internal_txs_by_txhash
  • get_internal_txs_by_block_range_paginated
  • get_erc20_token_transfer_events_by_address
  • get_erc20_token_transfer_events_by_contract_address_paginated
  • get_erc20_token_transfer_events_by_address_and_contract_paginated
  • get_erc721_token_transfer_events_by_address
  • get_erc721_token_transfer_events_by_contract_address_paginated
  • get_erc721_token_transfer_events_by_address_and_contract_paginated
  • get_mined_blocks_by_address
  • get_mined_blocks_by_address_paginated
合约 (来源)

  • get_contract_abi
  • get_contract_source_code
交易 (来源)

  • get_contract_execution_status
  • get_tx_receipt_status
区块 (来源)

  • get_block_reward_by_block_number
  • get_est_block_countdown_time_by_block_number
  • get_block_number_by_timestamp
GETH/Parity 代理 (来源)

  • get_proxy_block_number
  • get_proxy_block_by_number
  • get_proxy_uncle_by_block_number_and_index
  • get_proxy_block_transaction_count_by_number
  • get_proxy_transaction_by_hash
  • get_proxy_transaction_by_block_number_and_index
  • 获取代理交易计数
  • 获取代理交易收据
  • 获取代理调用
  • 获取代理代码在
  • 获取代理存储位置在
  • 获取代理燃气价格
  • 获取代理估计燃气
代币 (来源)

  • 按合约地址获取总供应量
  • 按代币和合约地址获取账户余额
燃气追踪器 (来源)

  • 获取估计确认时间
  • 获取燃气预言机
统计 (来源)

  • 获取总以太币供应量
  • 获取以太币最后价格
  • 获取以太币节点大小
专业版(需要PRO API密钥) (来源)

  • 按区块编号获取地址历史以太币余额
  • 获取每日平均区块大小
  • 获取每日区块数量和奖励
  • 获取每日区块奖励
  • 获取每日平均区块时间
  • 获取每日叔父区块数量和奖励
  • 按合约地址和区块编号获取ERC20代币总供应量历史记录
  • 按区块编号获取ERC20代币账户余额历史记录
  • 按合约地址获取代币信息
  • 获取每日平均燃气限制
  • 获取以太币每日总燃气使用量
  • 获取以太币每日平均燃气价格
  • 获取以太币每日网络交易费
  • 获取每日新地址数量
  • 获取每日网络利用率
  • 获取每日平均网络算力
  • 获取每日交易数量
  • 获取每日平均网络难度
  • 获取以太币历史每日市值
  • 获取以太币历史价格

如果您认为缺少了一个新添加的方法,请友好地打开一个 问题 作为功能请求,我会尽力添加。

安装

在继续之前,您应在 Etherscan.io 上注册一个账户并 生成一个个人API密钥 以供使用。

如果您希望访问PRO端点,您应通过Etherscan的订阅服务获得提升权限。

从源安装

pip install git+https://github.com/pcko1/etherscan-python.git

或者,从 PyPI 安装

pip install etherscan-python

单元测试

bash 中,在继续之前使用您的 YOUR_API_KEY(不带引号)测试一切是否正常

bash run_tests.sh YOUR_API_KEY

这将在 logs/ 下重新生成日志,包括最新的结果和执行时间戳。

测试还包括PRO端点,所以如果您的密钥不是PRO,相应的测试可能会失败。

用法

python 中,使用您的个人 Etherscan.io API密钥创建一个客户端

from etherscan import Etherscan
eth = Etherscan(YOUR_API_KEY) # key in quotation marks

然后您可以调用所有可用的方法,例如。

eth.get_eth_balance(address="0xddbd2b932c763ba5b1b7ae3b362eac3e8d40121a")

> '40891631566070000000000'

您也可以选择其他测试网

eth = Etherscan(YOUR_API_KEY, net="ropsten") # net name is case-insensitive, default is main

示例

所有方法的示例(参数和结果)可以作为JSON文件在此处找到 这里。例如,如果您想使用方法 get_block_number_by_timestamp,您可以在其各自的 JSON文件 中找到支持的参数及其输出格式

{
  "method": "get_block_number_by_timestamp",
  "module": "blocks",
  "kwargs": {
    "timestamp": "1578638524",
    "closest": "before"
  },
  "log_timestamp": "2020-10-28-12:34:44",
  "res": "9251482"
}

其中 kwargs 指的是必需的命名参数,res 指的是您运行时的预期结果

eth.get_block_number_by_timestamp(timestamp="1578638524", closest="before")

> '9251482'

免责声明:这些示例盲目使用原本在此处展示的参数,并且选择的钱包/合约不代表任何个人偏好。您应参考相同来源以获取有关特定参数值的其他信息。

问题

有关安装或使用软件包的问题,请打开一个 问题。请避免泄露可能敏感的信息,如您的API密钥或您的钱包地址。

引用

Kotsias, P. C., pcko1/etherscan-python. https://github.com/pcko1/etherscan-python (2020). doi:10.5281/zenodo.4306855

或者以 bibtex 格式

@misc{Kotsias2020,
  author = {Kotsias, P.C.},
  title = {pcko1/etherscan-python},
  year = {2020},
  publisher = {Zenodo},
  url = {https://github.com/pcko1/etherscan-python},
  doi = {10.5281/zenodo.4306855}
}

如果您觉得这个包很有用,请随意留下一个 :star:


Etherscan.io API 提供支持。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

rstms-etherscan-python-2.1.11.tar.gz (850.0 kB 查看哈希值)

上传时间 源代码

构建分发

rstms_etherscan_python-2.1.11-py2.py3-none-any.whl (26.8 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持