Open
Description
Hi, I'm trying to subscribe to events in a contract:
let ws = web3::transports::WebSocket::new("mynode").await?;
let web3 = web3::Web3::new(ws);
let contract = Contract::from_json(
web3.eth(),
hex!("4e68Ccd3E89f51C3074ca5072bbAC773960dFa36").into(),
include_bytes!("../contracts/uniswap_v3_pool.json"),
)?;
filter = FilterBuilder::default()
.address(vec![contract.address()])
.from_block(BlockNumber::Latest)
.build();
let mut evsub = web3ws.eth_subscribe().subscribe_logs(filter).await?;
println!("Sub id {:?}", evsub.id());
loop {
let r = evsub.next().await;
match r {
Some(ev) => println!("{:?}", ev?),
None => ()
}
}
And everytime an event happens (checking on etherscan) I receive a response from unknown request
[2021-11-05T08:14:40Z DEBUG web3::transports::ws] [1] Calling: {"jsonrpc":"2.0","method":"eth_subscribe","params":["logs",{"address":"0x4e68ccd3e89f51c3074ca5072bbac773960dfa36","fromBlock":"latest"}],"id":1}
Sub id SubscriptionId("0x10ff0e1299f046edb86e5c774741102fa889ab7e15dd")
[2021-11-05T08:14:58Z WARN web3::transports::ws] Got response for unknown request (id: 0)
[2021-11-05T08:15:32Z WARN web3::transports::ws] Got response for unknown request (id: 0)
The same is happening when I try to run the examples subscribing to new heads.
I know my node connection is working because I can fetch past events and I receive the correct data
let logs = web3ws.eth().logs(filter).await?;
println!("Got {:?} logs", logs.len());
for l in logs {
let event: (Address, Address, U256, U256, U256, u128, i32) = Detokenize::from_tokens(
contract
.abi()
.event("Swap")?
.parse_log(ethabi::RawLog {topics: l.topics.clone(), data: l.data.0.clone()})?
.params
.into_iter()
.map(|x| x.value)
.collect::<Vec<_>>())?;
println!("event {:?} ", event);
}
event (0xe592427a0aece92de3edee1f18e0157c05861564, 0xe592427a0aece92de3edee1f18e0157c05861564, 320000000000000000, 115792089237316195423570985008687907853269984665640564039457584007911902018681, 4914607075100445747082281, 10392763788743888306, -193768)
Any idea of what could be happening?
Thanks.
Metadata
Metadata
Assignees
Labels
No labels