Skip to main content

Etherscan Loader(以太坊浏览器加载器)

概述(Overview)

以太坊浏览器加载器使用以太坊主网上的etherscan api来加载特定账户的交易历史记录。

您需要一个以太坊浏览器的api密钥才能继续。免费的api密钥每秒有5个调用配额。

该加载器支持以下六个功能:

  • 获取以太坊主网上特定账户的普通交易
  • 获取以太坊主网上特定账户的内部交易
  • 获取以太坊主网上特定账户的erc20交易
  • 获取以太坊主网上特定账户的erc721交易
  • 获取以太坊主网上特定账户的erc1155交易
  • 获取以太坊主网上特定账户的以太币余额(以wei为单位)

如果账户没有相应的交易,加载器将返回一个包含一个文档的列表。文档的内容为空。

您可以通过向加载器传递不同的过滤器来访问上述不同的功能:

  • "normal_transaction"(普通交易)
  • "internal_transaction"(内部交易)
  • "erc20_transaction"(erc20交易)
  • "eth_balance"(以太币余额)
  • "erc721_transaction"(erc721交易)
  • "erc1155_transaction"(erc1155交易) 过滤器默认为"normal_transaction"(普通交易)

如果您有任何问题,您可以访问Etherscan API文档或通过i@inevitable.tech与我联系。

由于Etherscan的限制,与交易历史记录相关的所有函数最多只能返回1000条历史记录。您可以使用以下参数来查找您需要的交易历史记录:

  • offset:默认为20。一次显示20条交易记录。
  • page:默认为1。这控制分页。
  • start_block:默认为0。交易历史记录从0区块开始。
  • end_block:默认为99999999。交易历史记录从99999999区块开始。
  • sort:"desc"或"asc"。默认设置为"desc"以获取最新的交易。

设置(Setup)

%pip install langchain -q  



from langchain.document_loaders import EtherscanLoader
import os

API参考:

  • EtherscanLoader 来自 langchain.document_loaders

    os.environ["ETHERSCAN_API_KEY"] = etherscanAPIKey

创建一个ERC20交易加载器

account_address = "0x9dd134d14d1e65f84b706d6f205cd5b1cd03a46b"  
loader = EtherscanLoader(account_address, filter="erc20_transaction")
result = loader.load()
eval(result[0].page_content)



{'blockNumber': '13242975',
'timeStamp': '1631878751',
'hash': '0x366dda325b1a6570928873665b6b418874a7dedf7fee9426158fa3536b621788',
'nonce': '28',
'blockHash': '0x5469dba1b1e1372962cf2be27ab2640701f88c00640c4d26b8cc2ae9ac256fb6',
'from': '0x2ceee24f8d03fc25648c68c8e6569aa0512f6ac3',
'contractAddress': '0x2ceee24f8d03fc25648c68c8e6569aa0512f6ac3',
'to': '0x9dd134d14d1e65f84b706d6f205cd5b1cd03a46b',
'value': '298131000000000',
'tokenName': 'ABCHANGE.io',
'tokenSymbol': 'XCH',
'tokenDecimal': '9',
'transactionIndex': '71',
'gas': '15000000',
'gasPrice': '48614996176',
'gasUsed': '5712724',
'cumulativeGasUsed': '11507920',
'input': 'deprecated',
'confirmations': '4492277'}

创建一个具有自定义参数的普通交易加载器

loader = EtherscanLoader(  
account_address,
page=2,
offset=20,
start_block=10000,
end_block=8888888888,
sort="asc",
)
result = loader.load()
result