mirror of
https://github.com/Cuprate/cuprate.git
synced 2024-12-22 19:49:28 +00:00
rpc: implement .bin
types (#220)
* `serde/epee` feature flags * modify type generator macros * add `defaults.rs` * add `free.rs` * add `misc` module * modify `base.rs`, `contants.rs` * remove `binary_string.rs`, `status.rs` * fix macro usage * impl `bin.rs` * base: re-add `AccessRequestBase` * fix default functions * tx_entry: fix link * bin: fix default functions
This commit is contained in:
parent
ecbb5ad3dc
commit
303c165df7
1 changed files with 114 additions and 1 deletions
|
@ -1,8 +1,121 @@
|
|||
//! Binary types from [binary](https://www.getmonero.org/resources/developer-guides/daemon-rpc.html#get_blocksbin) endpoints.
|
||||
//! Binary types from [`.bin` endpoints](https://www.getmonero.org/resources/developer-guides/daemon-rpc.html#get_blocksbin).
|
||||
//!
|
||||
//! All types are originally defined in [`rpc/core_rpc_server_commands_defs.h`](https://github.com/monero-project/monero/blob/cc73fe71162d564ffda8e549b79a350bca53c454/src/rpc/core_rpc_server_commands_defs.h).
|
||||
|
||||
//---------------------------------------------------------------------------------------------------- Import
|
||||
use crate::{
|
||||
base::{AccessResponseBase, ResponseBase},
|
||||
defaults::{default_false, default_height, default_string, default_vec, default_zero},
|
||||
free::{is_one, is_zero},
|
||||
macros::define_request_and_response,
|
||||
misc::{
|
||||
AuxPow, BlockCompleteEntry, BlockHeader, BlockOutputIndices, ChainInfo, ConnectionInfo,
|
||||
GetBan, GetOutputsOut, HardforkEntry, HistogramEntry, OutKeyBin, OutputDistributionData,
|
||||
Peer, PoolTxInfo, SetBan, Span, Status, TxBacklogEntry,
|
||||
},
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------------------------------- TODO
|
||||
define_request_and_response! {
|
||||
get_blocksbin,
|
||||
cc73fe71162d564ffda8e549b79a350bca53c454 =>
|
||||
core_rpc_server_commands_defs.h => 162..=262,
|
||||
GetBlocks,
|
||||
Request {
|
||||
#[cfg_attr(feature = "serde", serde(default = "default_zero"))]
|
||||
requested_info: u8 = default_zero(),
|
||||
// TODO: This is a `std::list` in `monerod` because...?
|
||||
block_ids: Vec<[u8; 32]>,
|
||||
start_height: u64,
|
||||
prune: bool,
|
||||
#[cfg_attr(feature = "serde", serde(default = "default_false"))]
|
||||
no_miner_tx: bool = default_false(),
|
||||
#[cfg_attr(feature = "serde", serde(default = "default_zero"))]
|
||||
pool_info_since: u64 = default_zero(),
|
||||
},
|
||||
// TODO: this has custom epee (de)serialization.
|
||||
// <https://github.com/monero-project/monero/blob/cc73fe71162d564ffda8e549b79a350bca53c454/src/rpc/core_rpc_server_commands_defs.h#L242-L259>
|
||||
ResponseBase {
|
||||
blocks: Vec<BlockCompleteEntry>,
|
||||
start_height: u64,
|
||||
current_height: u64,
|
||||
output_indices: Vec<BlockOutputIndices>,
|
||||
daemon_time: u64,
|
||||
pool_info_extent: u8,
|
||||
added_pool_txs: Vec<PoolTxInfo>,
|
||||
remaining_added_pool_txids: Vec<[u8; 32]>,
|
||||
removed_pool_txids: Vec<[u8; 32]>,
|
||||
}
|
||||
}
|
||||
|
||||
define_request_and_response! {
|
||||
get_blocks_by_heightbin,
|
||||
cc73fe71162d564ffda8e549b79a350bca53c454 =>
|
||||
core_rpc_server_commands_defs.h => 264..=286,
|
||||
GetBlocksByHeight,
|
||||
Request {
|
||||
heights: Vec<u64>,
|
||||
},
|
||||
AccessResponseBase {
|
||||
blocks: Vec<BlockCompleteEntry>,
|
||||
}
|
||||
}
|
||||
|
||||
define_request_and_response! {
|
||||
get_hashesbin,
|
||||
cc73fe71162d564ffda8e549b79a350bca53c454 =>
|
||||
core_rpc_server_commands_defs.h => 309..=338,
|
||||
GetHashes,
|
||||
Request {
|
||||
block_ids: Vec<[u8; 32]>,
|
||||
start_height: u64,
|
||||
},
|
||||
AccessResponseBase {
|
||||
m_blocks_ids: Vec<[u8; 32]>,
|
||||
start_height: u64,
|
||||
current_height: u64,
|
||||
}
|
||||
}
|
||||
|
||||
define_request_and_response! {
|
||||
get_o_indexesbin,
|
||||
cc73fe71162d564ffda8e549b79a350bca53c454 =>
|
||||
core_rpc_server_commands_defs.h => 487..=510,
|
||||
GetOutputIndexes,
|
||||
#[derive(Copy)]
|
||||
Request {
|
||||
txid: [u8; 32],
|
||||
},
|
||||
AccessResponseBase {
|
||||
o_indexes: Vec<u64>,
|
||||
}
|
||||
}
|
||||
|
||||
define_request_and_response! {
|
||||
get_outsbin,
|
||||
cc73fe71162d564ffda8e549b79a350bca53c454 =>
|
||||
core_rpc_server_commands_defs.h => 512..=565,
|
||||
GetOuts,
|
||||
Request {
|
||||
outputs: Vec<GetOutputsOut>,
|
||||
#[cfg_attr(feature = "serde", serde(default = "default_false"))]
|
||||
get_txid: bool = default_false(),
|
||||
},
|
||||
AccessResponseBase {
|
||||
outs: Vec<OutKeyBin>,
|
||||
}
|
||||
}
|
||||
|
||||
define_request_and_response! {
|
||||
get_transaction_pool_hashesbin,
|
||||
cc73fe71162d564ffda8e549b79a350bca53c454 =>
|
||||
core_rpc_server_commands_defs.h => 1593..=1613,
|
||||
GetTransactionPoolHashes,
|
||||
Request {},
|
||||
AccessResponseBase {
|
||||
tx_hashes: Vec<[u8; 32]>,
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------- Tests
|
||||
#[cfg(test)]
|
||||
|
|
Loading…
Reference in a new issue