#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 или что-то в этом роде.