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
22pub(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}