mirror of
https://github.com/hinto-janai/cuprate.git
synced 2025-02-04 12:16:36 +00:00
9923d8d69d
Some checks failed
CI / fmt (push) Has been cancelled
CI / typo (push) Has been cancelled
CI / ci (macos-latest, stable, bash) (push) Has been cancelled
CI / ci (ubuntu-latest, stable, bash) (push) Has been cancelled
CI / ci (windows-latest, stable-x86_64-pc-windows-gnu, msys2 {0}) (push) Has been cancelled
Doc / build (push) Has been cancelled
Doc / deploy (push) Has been cancelled
* add request methods * add p2p messages * add txpool msgs * add blockchain_context msgs * add blockchain msgs * fmt * blockchain_manager msgs * blockchain manager msg types * add DB fn signatures * add statics module * p2p msg changes, docs * txpool docs/types * blockchain docs/types * `AlternateChains`, docs * fixes * remove blockchain write handle, fix docs * remove `BlockchainReadRequest::Difficulty` * remove `BlockchainReadRequest::MinerData` * fix p2p ban types * `CurrentRxVm` -> `CurrentRxVms` * storage: remove `Clone` off write handle * Update p2p/p2p-core/src/ban.rs Co-authored-by: Boog900 <boog900@tutanota.com> * fix merge --------- Co-authored-by: Boog900 <boog900@tutanota.com>
85 lines
2.5 KiB
Rust
85 lines
2.5 KiB
Rust
use anyhow::Error;
|
|
|
|
use cuprate_rpc_types::{
|
|
bin::{
|
|
BinRequest, BinResponse, GetBlocksByHeightRequest, GetBlocksByHeightResponse,
|
|
GetBlocksRequest, GetBlocksResponse, GetHashesRequest, GetHashesResponse,
|
|
GetOutputIndexesRequest, GetOutputIndexesResponse, GetOutsRequest, GetOutsResponse,
|
|
GetTransactionPoolHashesRequest, GetTransactionPoolHashesResponse,
|
|
},
|
|
json::{GetOutputDistributionRequest, GetOutputDistributionResponse},
|
|
};
|
|
|
|
use crate::rpc::CupratedRpcHandler;
|
|
|
|
/// Map a [`BinRequest`] to the function that will lead to a [`BinResponse`].
|
|
pub(super) async fn map_request(
|
|
state: CupratedRpcHandler,
|
|
request: BinRequest,
|
|
) -> Result<BinResponse, Error> {
|
|
use BinRequest as Req;
|
|
use BinResponse as Resp;
|
|
|
|
Ok(match request {
|
|
Req::GetBlocks(r) => Resp::GetBlocks(get_blocks(state, r).await?),
|
|
Req::GetBlocksByHeight(r) => Resp::GetBlocksByHeight(get_blocks_by_height(state, r).await?),
|
|
Req::GetHashes(r) => Resp::GetHashes(get_hashes(state, r).await?),
|
|
Req::GetOutputIndexes(r) => Resp::GetOutputIndexes(get_output_indexes(state, r).await?),
|
|
Req::GetOuts(r) => Resp::GetOuts(get_outs(state, r).await?),
|
|
Req::GetTransactionPoolHashes(r) => {
|
|
Resp::GetTransactionPoolHashes(get_transaction_pool_hashes(state, r).await?)
|
|
}
|
|
Req::GetOutputDistribution(r) => {
|
|
Resp::GetOutputDistribution(get_output_distribution(state, r).await?)
|
|
}
|
|
})
|
|
}
|
|
|
|
async fn get_blocks(
|
|
state: CupratedRpcHandler,
|
|
request: GetBlocksRequest,
|
|
) -> Result<GetBlocksResponse, Error> {
|
|
todo!()
|
|
}
|
|
|
|
async fn get_blocks_by_height(
|
|
state: CupratedRpcHandler,
|
|
request: GetBlocksByHeightRequest,
|
|
) -> Result<GetBlocksByHeightResponse, Error> {
|
|
todo!()
|
|
}
|
|
|
|
async fn get_hashes(
|
|
state: CupratedRpcHandler,
|
|
request: GetHashesRequest,
|
|
) -> Result<GetHashesResponse, Error> {
|
|
todo!()
|
|
}
|
|
|
|
async fn get_output_indexes(
|
|
state: CupratedRpcHandler,
|
|
request: GetOutputIndexesRequest,
|
|
) -> Result<GetOutputIndexesResponse, Error> {
|
|
todo!()
|
|
}
|
|
|
|
async fn get_outs(
|
|
state: CupratedRpcHandler,
|
|
request: GetOutsRequest,
|
|
) -> Result<GetOutsResponse, Error> {
|
|
todo!()
|
|
}
|
|
|
|
async fn get_transaction_pool_hashes(
|
|
state: CupratedRpcHandler,
|
|
request: GetTransactionPoolHashesRequest,
|
|
) -> Result<GetTransactionPoolHashesResponse, Error> {
|
|
todo!()
|
|
}
|
|
|
|
async fn get_output_distribution(
|
|
state: CupratedRpcHandler,
|
|
request: GetOutputDistributionRequest,
|
|
) -> Result<GetOutputDistributionResponse, Error> {
|
|
todo!()
|
|
}
|