cuprated/rpc/
other.rs

1use anyhow::Error;
2
3use cuprate_rpc_types::other::{
4    GetAltBlocksHashesRequest, GetAltBlocksHashesResponse, GetHeightRequest, GetHeightResponse,
5    GetLimitRequest, GetLimitResponse, GetNetStatsRequest, GetNetStatsResponse, GetOutsRequest,
6    GetOutsResponse, GetPeerListRequest, GetPeerListResponse, GetPublicNodesRequest,
7    GetPublicNodesResponse, GetTransactionPoolHashesRequest, GetTransactionPoolHashesResponse,
8    GetTransactionPoolRequest, GetTransactionPoolResponse, GetTransactionPoolStatsRequest,
9    GetTransactionPoolStatsResponse, GetTransactionsRequest, GetTransactionsResponse,
10    InPeersRequest, InPeersResponse, IsKeyImageSpentRequest, IsKeyImageSpentResponse,
11    MiningStatusRequest, MiningStatusResponse, OtherRequest, OtherResponse, OutPeersRequest,
12    OutPeersResponse, PopBlocksRequest, PopBlocksResponse, SaveBcRequest, SaveBcResponse,
13    SendRawTransactionRequest, SendRawTransactionResponse, SetBootstrapDaemonRequest,
14    SetBootstrapDaemonResponse, SetLimitRequest, SetLimitResponse, SetLogCategoriesRequest,
15    SetLogCategoriesResponse, SetLogHashRateRequest, SetLogHashRateResponse, SetLogLevelRequest,
16    SetLogLevelResponse, StartMiningRequest, StartMiningResponse, StopDaemonRequest,
17    StopDaemonResponse, StopMiningRequest, StopMiningResponse, UpdateRequest, UpdateResponse,
18};
19
20use crate::rpc::CupratedRpcHandler;
21
22/// Map a [`OtherRequest`] to the function that will lead to a [`OtherResponse`].
23pub(super) async fn map_request(
24    state: CupratedRpcHandler,
25    request: OtherRequest,
26) -> Result<OtherResponse, Error> {
27    use OtherRequest as Req;
28    use OtherResponse as Resp;
29
30    Ok(match request {
31        Req::GetHeight(r) => Resp::GetHeight(get_height(state, r).await?),
32        Req::GetTransactions(r) => Resp::GetTransactions(get_transactions(state, r).await?),
33        Req::GetAltBlocksHashes(r) => {
34            Resp::GetAltBlocksHashes(get_alt_blocks_hashes(state, r).await?)
35        }
36        Req::IsKeyImageSpent(r) => Resp::IsKeyImageSpent(is_key_image_spent(state, r).await?),
37        Req::SendRawTransaction(r) => {
38            Resp::SendRawTransaction(send_raw_transaction(state, r).await?)
39        }
40        Req::StartMining(r) => Resp::StartMining(start_mining(state, r).await?),
41        Req::StopMining(r) => Resp::StopMining(stop_mining(state, r).await?),
42        Req::MiningStatus(r) => Resp::MiningStatus(mining_status(state, r).await?),
43        Req::SaveBc(r) => Resp::SaveBc(save_bc(state, r).await?),
44        Req::GetPeerList(r) => Resp::GetPeerList(get_peer_list(state, r).await?),
45        Req::SetLogHashRate(r) => Resp::SetLogHashRate(set_log_hash_rate(state, r).await?),
46        Req::SetLogLevel(r) => Resp::SetLogLevel(set_log_level(state, r).await?),
47        Req::SetLogCategories(r) => Resp::SetLogCategories(set_log_categories(state, r).await?),
48        Req::SetBootstrapDaemon(r) => {
49            Resp::SetBootstrapDaemon(set_bootstrap_daemon(state, r).await?)
50        }
51        Req::GetTransactionPool(r) => {
52            Resp::GetTransactionPool(get_transaction_pool(state, r).await?)
53        }
54        Req::GetTransactionPoolStats(r) => {
55            Resp::GetTransactionPoolStats(get_transaction_pool_stats(state, r).await?)
56        }
57        Req::StopDaemon(r) => Resp::StopDaemon(stop_daemon(state, r).await?),
58        Req::GetLimit(r) => Resp::GetLimit(get_limit(state, r).await?),
59        Req::SetLimit(r) => Resp::SetLimit(set_limit(state, r).await?),
60        Req::OutPeers(r) => Resp::OutPeers(out_peers(state, r).await?),
61        Req::InPeers(r) => Resp::InPeers(in_peers(state, r).await?),
62        Req::GetNetStats(r) => Resp::GetNetStats(get_net_stats(state, r).await?),
63        Req::GetOuts(r) => Resp::GetOuts(get_outs(state, r).await?),
64        Req::Update(r) => Resp::Update(update(state, r).await?),
65        Req::PopBlocks(r) => Resp::PopBlocks(pop_blocks(state, r).await?),
66        Req::GetTransactionPoolHashes(r) => {
67            Resp::GetTransactionPoolHashes(get_transaction_pool_hashes(state, r).await?)
68        }
69        Req::GetPublicNodes(r) => Resp::GetPublicNodes(get_public_nodes(state, r).await?),
70    })
71}
72
73async fn get_height(
74    state: CupratedRpcHandler,
75    request: GetHeightRequest,
76) -> Result<GetHeightResponse, Error> {
77    todo!()
78}
79
80async fn get_transactions(
81    state: CupratedRpcHandler,
82    request: GetTransactionsRequest,
83) -> Result<GetTransactionsResponse, Error> {
84    todo!()
85}
86
87async fn get_alt_blocks_hashes(
88    state: CupratedRpcHandler,
89    request: GetAltBlocksHashesRequest,
90) -> Result<GetAltBlocksHashesResponse, Error> {
91    todo!()
92}
93
94async fn is_key_image_spent(
95    state: CupratedRpcHandler,
96    request: IsKeyImageSpentRequest,
97) -> Result<IsKeyImageSpentResponse, Error> {
98    todo!()
99}
100
101async fn send_raw_transaction(
102    state: CupratedRpcHandler,
103    request: SendRawTransactionRequest,
104) -> Result<SendRawTransactionResponse, Error> {
105    todo!()
106}
107
108async fn start_mining(
109    state: CupratedRpcHandler,
110    request: StartMiningRequest,
111) -> Result<StartMiningResponse, Error> {
112    todo!()
113}
114
115async fn stop_mining(
116    state: CupratedRpcHandler,
117    request: StopMiningRequest,
118) -> Result<StopMiningResponse, Error> {
119    todo!()
120}
121
122async fn mining_status(
123    state: CupratedRpcHandler,
124    request: MiningStatusRequest,
125) -> Result<MiningStatusResponse, Error> {
126    todo!()
127}
128
129async fn save_bc(
130    state: CupratedRpcHandler,
131    request: SaveBcRequest,
132) -> Result<SaveBcResponse, Error> {
133    todo!()
134}
135
136async fn get_peer_list(
137    state: CupratedRpcHandler,
138    request: GetPeerListRequest,
139) -> Result<GetPeerListResponse, Error> {
140    todo!()
141}
142
143async fn set_log_hash_rate(
144    state: CupratedRpcHandler,
145    request: SetLogHashRateRequest,
146) -> Result<SetLogHashRateResponse, Error> {
147    todo!()
148}
149
150async fn set_log_level(
151    state: CupratedRpcHandler,
152    request: SetLogLevelRequest,
153) -> Result<SetLogLevelResponse, Error> {
154    todo!()
155}
156
157async fn set_log_categories(
158    state: CupratedRpcHandler,
159    request: SetLogCategoriesRequest,
160) -> Result<SetLogCategoriesResponse, Error> {
161    todo!()
162}
163
164async fn set_bootstrap_daemon(
165    state: CupratedRpcHandler,
166    request: SetBootstrapDaemonRequest,
167) -> Result<SetBootstrapDaemonResponse, Error> {
168    todo!()
169}
170
171async fn get_transaction_pool(
172    state: CupratedRpcHandler,
173    request: GetTransactionPoolRequest,
174) -> Result<GetTransactionPoolResponse, Error> {
175    todo!()
176}
177
178async fn get_transaction_pool_stats(
179    state: CupratedRpcHandler,
180    request: GetTransactionPoolStatsRequest,
181) -> Result<GetTransactionPoolStatsResponse, Error> {
182    todo!()
183}
184
185async fn stop_daemon(
186    state: CupratedRpcHandler,
187    request: StopDaemonRequest,
188) -> Result<StopDaemonResponse, Error> {
189    todo!()
190}
191
192async fn get_limit(
193    state: CupratedRpcHandler,
194    request: GetLimitRequest,
195) -> Result<GetLimitResponse, Error> {
196    todo!()
197}
198
199async fn set_limit(
200    state: CupratedRpcHandler,
201    request: SetLimitRequest,
202) -> Result<SetLimitResponse, Error> {
203    todo!()
204}
205
206async fn out_peers(
207    state: CupratedRpcHandler,
208    request: OutPeersRequest,
209) -> Result<OutPeersResponse, Error> {
210    todo!()
211}
212
213async fn in_peers(
214    state: CupratedRpcHandler,
215    request: InPeersRequest,
216) -> Result<InPeersResponse, Error> {
217    todo!()
218}
219
220async fn get_net_stats(
221    state: CupratedRpcHandler,
222    request: GetNetStatsRequest,
223) -> Result<GetNetStatsResponse, Error> {
224    todo!()
225}
226
227async fn get_outs(
228    state: CupratedRpcHandler,
229    request: GetOutsRequest,
230) -> Result<GetOutsResponse, Error> {
231    todo!()
232}
233
234async fn update(
235    state: CupratedRpcHandler,
236    request: UpdateRequest,
237) -> Result<UpdateResponse, Error> {
238    todo!()
239}
240
241async fn pop_blocks(
242    state: CupratedRpcHandler,
243    request: PopBlocksRequest,
244) -> Result<PopBlocksResponse, Error> {
245    todo!()
246}
247
248async fn get_transaction_pool_hashes(
249    state: CupratedRpcHandler,
250    request: GetTransactionPoolHashesRequest,
251) -> Result<GetTransactionPoolHashesResponse, Error> {
252    todo!()
253}
254
255async fn get_public_nodes(
256    state: CupratedRpcHandler,
257    request: GetPublicNodesRequest,
258) -> Result<GetPublicNodesResponse, Error> {
259    todo!()
260}