405 客户端错误: 方法不允许 对于 url: https://rinkeby.infura.io



我不能在我的合约上调用创建过滤器,这是我下面的代码。我能够获取合约并在其上运行函数,但我无法侦听事件:

myContract = w3.eth.contract(address="some_address",abi=contract_abi) 

这是我遇到问题的地方:

myfilter_new= myContract.events.Transfer.createFilter(fromBlock=0, toBlock='latest')

这是我得到的问题:

HTTPError at/testing/
405 客户端错误:方法不允许 url: https://rinkeby.infura.io/my_api_key

正如@smarx所说,INFURA不支持通过HTTP的过滤器。他们确实对套接字有一些支持,但我相信它还没有准备好生产。不过,值得一试。

Web3.py 有一种内置的方式来使用 websocket 进行连接,您可以像这样初始化:

from web3 import Web3
w3 = Web3(Web3.WebsocketProvider("wss://mainnet.infura.io/ws"))

相关内容

最新更新