вызовите web3.eth.get_transaction (), но он показывает, что «не имеет атрибута «get_transaction»»

#ethereum #web3py

Вопрос:

Я новичок в web3. Недавно я пытаюсь расшифровать некоторые журналы в Ethereum в соответствии с этой статьей. Но когда я пытаюсь использовать такой код, как receipt=web3.eth.get_transaction(transaction_hash) . Это продолжает показывать мне это module 'web3.eth' has no attribute 'get_transaction' . Но, по-видимому, на моем компьютере есть этот файл. И разве такое утверждение не означает «Я пытаюсь вызвать функцию в web3.eth»? Почему это рассматривается как «вызов атрибута»?

Вот мои коды:

 import json
import requests
from web3 import Web3

w3=Web3(Web3.HTTPProvider(infura_project))
receipt=web3.eth.get_transcation(transaction Hash) //always show error "web3.eth has no attribute get_transaction"
log=receipt["logs"][2]
smart_contract=log["address"]
mykey="MY API Key of Etherscan" 
adi_endpoint=f"https://api.etherscan.io/api?module=contractamp;action=getabiamp;address={smart_contract} amp; apikey={mykey}" //problem (2)
abi=json.load(requests.get(adi_endpoint).text)
//decode info
 

И если я напрямую помещу свой API-ключ Etherscan в конце строки 10, pycharm отметит там ошибку. Поэтому я заключаю ключ API в двойные кавычки и назначаю его переменной «mykey». Честно говоря, я не думаю, что это сработает. Как решить эту проблему?

Ответ №1:

введите описание изображения здесь

Что ж, это работает для моего кода :

 from web3 import Web3

web3 = Web3(Web3.HTTPProvider('https://bsc-dataseed.binance.org/'))

result = web3.eth.get_transaction('0x690ffe41506456a3936aa2d4dd05de6601f1fbe7eb3fe23c2bcc4d17714ea617')

print(result)
 

Убедитесь, Что Ниже Перечислены Вещи

1: Библиотека web3 обновлена 2: В вашей системе нет файла с именем web3.py или Web3.py или что-то в этом роде.