Skip to content
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

transactionWatch: Limit the number of active subscriptions and clarify error codes #146

Merged
merged 4 commits into from
Apr 2, 2024

Conversation

lexnv
Copy link
Contributor

@lexnv lexnv commented Mar 21, 2024

This PR ensures that the server accepts at least 4 transactionWatch subscriptions, similar to the transactionBroadcast API.

While at it, have defined the error codes returned by this API

  • -38000 - more than 4 transactionWatch subscriptions are created (identical error code with chainHead_follow)
  • -32602 - Invalid Parameter from the rpc spec

Have also added a mention wrt invalid decoded transaction bytes in the Invalid event.

cc @paritytech/subxt-team @tomaka

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
jsdw
jsdw previously approved these changes Mar 21, 2024
Copy link
Collaborator

@jsdw jsdw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM; is consistent with chainHead_follow :)

Co-authored-by: James Wilson <james@jsdw.me>
@jsdw jsdw merged commit bef3ab5 into main Apr 2, 2024
3 checks passed
@jsdw jsdw deleted the lexnv/limit-tx-watch branch April 2, 2024 16:41
@tomaka
Copy link
Contributor

tomaka commented Apr 3, 2024

This can't be guaranteed, because transactions stay in the pool when a JSON-RPC client disconnects.

github-merge-queue bot pushed a commit to paritytech/polkadot-sdk that referenced this pull request Apr 9, 2024
This PR ensures that the transaction API generates an `Invalid` events
for transaction bytes that fail to decode.

The spec mentioned the `Invalid` event at the jsonrpc error section,
however this spec PR makes things clearer:
- paritytech/json-rpc-interface-spec#146

While at it have discovered an inconsistency with the generated events.
The drop event from the transaction pool was incorrectly mapped to the
`invalid` event.

Added tests for the API stabilize the API soon:
- paritytech/json-rpc-interface-spec#144


Closes: #3083


cc @paritytech/subxt-team

---------

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants