python - 405 客户端错误:url 不允许使用方法:https://rinkeby.infura.io PYTHON
问题描述
我不能在我的合同上调用创建过滤器,这是我下面的代码 - 我能够获取合同并在其上运行函数,但我无法监听事件:
myContract = w3.eth.contract(address="some_address",abi=contract_abi)
这是我遇到问题的地方:
myfilter_new= myContract.events.Transfer.createFilter(fromBlock=0, toBlock='latest')
这是我得到的问题:
HTTPError at /testing/
405 Client Error: Method Not Allowed for 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"))
推荐阅读
- java - Java JTable里面一个JFrame不同的类
- php - 使用 escapeshellarg() 保护用户输入
- php - ajax 从mysql 加载数据后datatables 刷新表 PHP
- chef-infra - Chef 执行资源 not_if 守卫返回 1;仍然跳过
- node.js - 具有虚拟路径的 Angular 通用 SSR
- android - 为什么 Android 单选按钮的 android:button 属性不适用于三星标签?
- node.js - 获取列表上的更改不起作用 pnp-js 节点 Azure 功能
- html - 背景图像中 CSS 中的负蒙版
- github - 当一个错误被修复并且报告在 github 上关闭时,我可以立即更新我的库以包含修复吗?
- javascript - Observable.subscribe() 在 IE 中无法在 Angular 7 中更改组件