Unverified Commit b8bd715d authored by Niklas Adolfsson's avatar Niklas Adolfsson Committed by GitHub
Browse files

[client] batch requests (#216)



* feat(http client): batch requests

* fix(http batch request): request in any order.

* Update src/types/jsonrpc/id.rs

* tests(batch out-of-order): make it less confusing.

* fix nit: `cloned` -> `copied`

* fix bad merge

* [client]: batch request generic response

* wait with impl

* [ws client]: add template for batch requests

* remove jsonvalue

* naive impl

* fix make it work,

The implemenation is quite inefficient because the responses might be unordered.
Currently, a "digest" of a BTreeSet is stored to sort the requestIDs
and don't have to try all combinations of requestIDs in the response.

* fix nits

* error handling

* fix nits

* more nits

* use error msg pattern

* add batch requests to client trait

Keep it simple by require `Vec<(Method, Params)>` could be improved.

* address review comments: use swap_remove

Replace read values with `Vec::swap_remove` instead inserting dummy value.
The reason is that `Vec::remove` is O(n)

* address review grumbles: batch trait bound Default

* don't be clever

* [http client]: faster lookup for batch request.

* fix: distguish request_id and batch_id

* thanks clippy

* fix: clarify bad response with a separate error

* fix tests

* add issue link to todo

* Update types/src/error.rs

Co-authored-by: default avatarDavid <[email protected]>

Co-authored-by: default avatarDavid <[email protected]>
parent 7abcb1e9
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment