eth_subscribe("pendingLogs") silently accepted but never delivers events
C-bugS-needs-triage
### Describe the bug
`eth_subscribe("pendingLogs", ...)` is accepted by reth and a valid subscriptionId is returned but no events are ever delivered. The client has no way to distinguish this from "no activity" and waits indefinitely. Additionally, `eth_subscribe("logs", {fromBlock: "pending", toBlock: "pending"})` is also silently accepted, but the pending params are discarded and the subscription behaves as a standard logs subscription, delivering mined block logs instead.
### Steps to reproduce
Tested against reth v2.3.0 (reth/v2.3.0-9384bc5/x86_64-unknown-linux-gnu):
> 1. "pendingLogs" type, accepted, zero events forever
```
$ wscat -c "wss://optimism.publicnode.com"
{"id":1,"jsonrpc":"2.0","method":"eth_subscribe","params":["pendingLogs",{"address":"0x4200000000000000000000000000000000000006","topi
cs":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"]}]}
```
> ↑ Subscription accepted. No events ever arrive.
`{"jsonrpc":"2.0","result":"0x43e42c3aca8759c0a2295256f9e0f162","id":1}`
> 2. "logs" with fromBlock/toBlock "pending" , accepted, delivers mined logs
```
{"id":1,"jsonrpc":"2.0","method":"eth_subscribe","params":["logs",{"fromBlock":"pending","toBlock":"pending","address":"0x420000000000
0000000000000000000000000006"}]}
{"jsonrpc":"2.0","result":"0x17fb022d6755b639685871cf77b215d7"}
{"jsonrpc":"2.0","method":"eth_subscription","params":{"result":{"address":"0x4200...","blockNumber":"0x...","removed":false,...}}}
```
> ↑ Events stream in, but these are mined block logs, "pending" params silently ignored.
### Node logs
```text
```
### Platform(s)
_No response_
### Container Type
Other
### What version/commit are you on?
`reth v2.3.0 (reth/v2.3.0-9384bc5/x86_64-unknown-linux-gnu)`
### What database version are you on?
Tested against a public reth v2.3.0 node (publicnode.com), db version not accessible.
### Which chain / network are you on?
Optimism
### What type of node are you running?
Full via --full flag
### What prune config do you use, if any?
prune config unknown in publicnode
### If you've built Reth from source, provide the full command you used
_No response_
### Code of Conduct
- [x] I agree to follow the Code of Conduct
1 条评论