Crate cuprate_rpc_types
source ·Expand description
Monero RPC types.
§What
This crate ports the types used in Monero’s RPC interface, including:
- JSON types
- Binary (epee) types
- Mixed types
- Other commonly used RPC types
§Modules
This crate’s types are split in the following manner:
This crate has 4 modules:
- The root module;
cuprate_rpc_types jsonmodule; JSON types from the/json_rpcendpointbinmodule; Binary types from the binary endpointsothermodule; Misc JSON types from other endpoints
Miscellaneous types are found in the root module, e.g. crate::Status.
Each type in {json,bin,other} come in pairs and have identical names, but are suffixed with either Request or Response. e.g. GetBlockCountRequest & GetBlockCountResponse.
§Documentation
The documentation for types within {json,bin,other} are omitted, as they can be found in Monero’s RPC documentation.
However, each type will document:
- Definition: the exact type definition location in
monerod - Documentation: the Monero RPC documentation link
- Request/response: the other side of this type, either the request or response
§Naming
The naming for types within {json,bin,other} follow the following scheme:
- Convert the endpoint or method name into
UpperCamelCase - Remove any suffix extension
For example:
| Endpoint/method | Crate location and name |
|---|---|
get_block_count | json::GetBlockCountRequest & json::GetBlockCountResponse |
/get_blocks.bin | bin::GetBlocksRequest & bin::GetBlocksResponse |
/get_height | other::GetHeightRequest & other::GetHeightResponse |
TODO: fix doc links when types are ready.
§Mixed types
Note that some types within other mix JSON & binary together, i.e.,
the message overall is JSON, however some fields contain binary
values inside JSON strings, for example:
{
"string": "",
"float": 30.0,
"integer": 30,
"binary": "<serialized binary>"
}
binary here is (de)serialized as a normal String. In order to be clear on which fields contain binary data, the struct fields that have them will use crate::BinaryString instead of String.
TODO: list the specific types.
Modules§
- The base data that appear in many RPC request/responses.
- Binary types from binary endpoints.
- JSON types from the
/json_rpcendpoint. - JSON types from the
otherendpoints.
Enums§
- RPC response status.
Constants§
- Custom
CORE_RPC_STATUSfor usage in Cuprate. - RPC version.
- RPC major version.
- RPC miror version.
Type Aliases§
- TODO