- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否可以使用 web3J 监听 infura 事件?我正在尝试获取事件,但出现错误
Caused by: org.web3j.protocol.core.filters.FilterException: Invalid request: The method eth_newFilter does not exist/is not available
at org.web3j.protocol.core.filters.Filter.throwException(Filter.java:172)
at org.web3j.protocol.core.filters.Filter.run(Filter.java:53)
at org.web3j.protocol.rx.JsonRpc2_0Rx.run(JsonRpc2_0Rx.java:73)
at org.web3j.protocol.rx.JsonRpc2_0Rx.lambda$ethLogFlowable$2(JsonRpc2_0Rx.java:65)
at io.reactivex.internal.operators.flowable.FlowableCreate.subscribeActual(FlowableCreate.java:71)
... 9 more```
# This is java wrappeer function generated by web3j maven plugin
public Flowable<PunkOfferedEventResponse> punkOfferedEventFlowable(DefaultBlockParameter startBlock, DefaultBlockParameter endBlock) {
EthFilter filter = new EthFilter(startBlock, endBlock, getContractAddress());
filter.addSingleTopic(EventEncoder.encode(PUNKOFFERED_EVENT));
return punkOfferedEventFlowable(filter);
}
public static class PunkOfferedEventResponse {
public Log log;
public BigInteger punkIndex;
public String toAddress;
public BigInteger minValue;
}
# This is the caller which subscribe to punkOfferedEventFlowable andd it should iddeally return events in stream fashion
Web3j web3j = Web3j.build(new HttpService(""));
Web3ClientVersion web3ClientVersion = web3j.web3ClientVersion().send();
Credentials credentials = Credentials.create("");
CryptoPunksMarket contract = CryptoPunksMarket.load("",web3j,credentials,new DefaultGasProvider()); contract.punkOfferedEventFlowable(null)
.doOnError(error -> error.printStackTrace())
.subscribe(event -> {
BigInteger index = event.punkIndex;
System.out.println("Index:"+index);
}).dispose();
我在不同的博客中读到,不可能使用 web3J 获取过滤的事件,那么使用 web3J 和 infura 来获取过滤的事件有哪些替代方案?
最佳答案
您必须从日志中读取事件。 Web3j 提供了一个方法 ethGetLogs
,该方法将 ethFilter 对象作为参数并响应事件日志列表。
对于您的请求,它会是这样的:
EthFilter ethFilter = new EthFilter(DefaultBlockParameterName.EARLIEST, DefaultBlockParameterName.LATEST, contract.getContractAddress());
ethFilter.addSingleTopic(EventEncoder.encode(CryptoPunksMarket.PUNK_OFFERED_EVENT));
EthLog ethLog = web3j.ethGetLogs(ethFilter).send();
关于java - web3J 与 infura 的兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57835680/
是否可以使用 web3J 监听 infura 事件?我正在尝试获取事件,但出现错误 Caused by: org.web3j.protocol.core.filters.FilterException
Web3j web3 = Web3j.build(new HttpService());//默认为http://localhost:8545/ 凭证凭证 = WalletUtils.loadCrede
我目前正在尝试为我的 Typescript/Node 项目实现一个以太坊 Node 连接。 我正在连接到“Infura” Node 服务器,我需要在其中签署我的本地交易。好吧,无论如何。我正在使用 n
我使用示例 solidity 代码教程创建了一个合约代币。它有一个名为 transfer 的功能,可以在账户之间发送代币: function transfer(address _to, uint256
我在 Node js 中使用 web3 来创建新的 Web3.providers.HttpProvider 与 infura 项目,其中配置为“要求所有请求的项目 secret ” 在英法拉: htt
web3py 5.3.0 最新文档给出了 eventFilter 的示例 -- https://web3py.readthedocs.io/en/latest/contracts.html#event
我想通过 Web3.py 查看以太坊 txpool 中的实时待处理交易。我不运行本地节点,而是使用 Infura。 根据 Web3.py 的文档,显然一个有三个不同的选项: 使用 TX Pool AP
我不能在我的契约(Contract)上调用创建过滤器,这是我下面的代码。我能够获得契约(Contract)并在其上运行功能,但我无法收听事件: myContract = w3.eth.contract
我使用 infura API 和 ipfs-http-client 在 ipfs 上上传了 jpg 图像。该文件取自 type=file 的输入。事件监听器是 onchange。 // imports
我是一名优秀的程序员,十分优秀!