rpcserver: Support named and null parameters, Review optionals on rpc internal methods, Stronger Response and Error codes#831
Conversation
|
cc @csgui Why i cant alter the name of the PR 😭 |
766648c to
5cd9007
Compare
|
Can someone with permission to alter the pr title fix it for me ? rpcserver: Support named and null parameters, Review optionals on rpc internal methods, Stronger Response and Error codes. |
|
5cd9007 Unrelated test fail |
|
@jaoleal double check if you can use That would makes more sense and allows the remove of |
c13b68a to
0e160f5
Compare
|
top commit: 0e160f5
Thanks for the suggestions @csgui |
|
I think the commit descriptions are missing because they only have titles. |
0e160f5 to
781ea91
Compare
|
[781ea91 Rebased and extended commit message with descriptions. |
|
Added formal |
781ea91 to
994e4b7
Compare
This comment was marked as outdated.
This comment was marked as outdated.
2d230a8 to
bd4d7a1
Compare
|
gaddamit these conflicts |
bd4d7a1 to
d18e6dd
Compare
|
unrelated fail on functional tests d18e6dd |
784bf23 to
0f040b6
Compare
|
Rebased |
|
Rebased 4dc5b8a |
|
Ok, I remade the commit structure, theyre more concentrated now but i think its better. Fixed the marked found by @moisesPompilio |
|
Needs rebase. |
|
Rebased |
2 similar comments
|
Rebased |
|
Rebased |
|
Removed unwrap from getdifficulty |
|
Done @moisesPompilio |
Yeah, it certainly changed because of the removal of I found another issues while trying to test it. I see this problem as something more focused on how Given that, ill open a follow-up pr fixing |
Yes, it works @jaoleal . Please open an issue about what need to be tackled on |
We could focus some time and work to test and assert on what we current have, to find a problem that way is literally a punch in the stomach. |
Sure thing. Hardening the tests is on the table for the next plans. That might be our focus soon. |
|
Needs more rebase 😢 |
… calls - Move JsonRpcError into a jsonrpc_interface submodule with structured RpcError/Response types, HTTP status code mapping, and named constants for floresta-specific RPC error codes (TX_NOT_FOUND, BLOCK_NOT_FOUND, PEER_NOT_FOUND, etc.) - Add From<BlockchainError> for JsonRpcError conversion - Rewrite arg_parser with generic get_at(), get_with_default(), and try_into_optional() functions supporting both positional (array) and named (object) parameters - Change RpcRequest.params from Vec<Value> to Option<Value> - Split method dispatch into no-param methods and param methods - Replace all .unwrap() calls - Apply #[deny(clippy::unwrap_used)] lint to the json_rpc module - Change ScriptPubKeyJson.address to Option<String> for nonstandard scripts (matching Bitcoin Core behavior) - Add module-level documentation for JSON-RPC 1.0/2.0 version support
- Add JSON-RPC error code (JSONRPC_ERRCODE_*) and message (JSONRPC_ERRMSG_*) constants to test_framework/constants.py - Add make_raw_request, make_raw_data_request, make_request, assert_rpc_success, and assert_rpc_error to test_framework/rpc/base.py - Extract _create_logger helper to deduplicate fixture logging setup - Add class-scoped shared_florestad_node, shared_bitcoind_node, and shared_utreexod_node fixtures to conftest.py - Switch xdist to loadscope distribution for class-scoped fixture safety
- Add comprehensive tests covering positional and named parameters, null/omitted params, optional defaults, error codes and messages, and response structure validation - Add JSON-RPC 1.0 and 2.0 version acceptance tests (explicit version, omitted field, and response format verification) - Add content-type handling tests (application/json, text/plain, and non-JSON body rejection)
|
Re based |
|
last review round guys @csgui @Davidson-Souza @lorenzolfm @moisesPompilio |
Description and Notes
Some time ago i was messing with the server trying to fix some pains that i had developing methods on it and i encountered some points to upgrade.
4839dc6 - fixes #827 by matching errors and returning constant values, i also mapped some custom error codes to internal errors as I understood that were allowed by the spec.
29220da- Adds named and null parameters support, I also reviewed some
Options in internal rpc methods that actually had internal defaults, created a getter for that case.fix #827
fix #704
How to verify the changes you have done?
Pushed some extensive tests regarding request and result parsing and behavior, checking that calls are accepted when expected and when refused we assert the error response.
Contributor Checklist
just pcc(recommended but slower)just lint-features '-- -D warnings' && cargo test --releaseFinally, you are encouraged to sign all your commits (it proves authorship and guards against tampering—see How (and why) to sign Git commits and GitHub's guide to signing commits).