-
Notifications
You must be signed in to change notification settings - Fork 177
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(rpc module): unsubscribe according ethereum pubsub spec #693
Conversation
let err = to_json_raw_value(&format!( | ||
"Invalid subscription ID={}", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The only downside to this PR is that we loose this information (I think?).
With this PR, when an unsubscribe call fails, what do users get back?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah, unfortunately they will just receive a bool
set to false and then the client(s) have to figure it on their own :(
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
another route is to actually require users to customize their unsubscribe impl as jsonrpc
does but probably not worth the effort we still only support String
and u64
as subscription ID.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's document this properly in the macro docs (and on this method): "When attempting to unsubscribe with an unknown subscription ID this call will return false
" or something along those lines?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess it's better to document that we implement the ethereum pubsub specification
when we refer to subscriptions and it's possible to provide custom subscription IDs but that's it.
Sure, we could add some documentation to both RpcModule::register_subscription
and the macros.
As we already have adopted the ethereum pubsub spec for subscriptions let's stick to it completely.