PythonWeb3获得最大持有者

2024-10-05 13:19:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用web35.14.0Infura

我正试图得到一些硬币的最大持有者(例如现在的链环)。为此,我认为我需要遍历所有传输事件,并创建一个包含所有接收传输的字典。除非有更直接的解决方案

因此,我写了以下内容:

from web3 import Web3

ABI_REQUEST_ENDPOINT = 'https://api.etherscan.io/api?module=contract&action=getabi&address='
def etherscan_fetch_abi(addr):
    response = requests.get('%s%s'%(ABI_REQUEST_ENDPOINT, addr))
    response_json = response.json()
    abi = json.loads(response_json['result'])
    return abi

web3 = Web3(Web3.HTTPProvider(url))
address = web3.toChecksumAddress('0x514910771AF9Ca656af840dff83E8264EcF986CA')
abi = etherscan_fetch_abi(address)
contract = web3.eth.contract(address=address, abi=abi)
latest = web3.eth.blockNumber
transferEvents = contract.events.Transfer.createFilter(fromBlock=latest-100, toBlock=latest)
transferEvents.get_all_entries()

这总是返回一个空列表。你知道我怎样才能避开这个麻烦吗

谢谢


Tags: apijsonaddressresponserequestfetchlatestendpoint

热门问题