solana_trader_client_rust/provider/grpc/
quote.rs1use anyhow::Result;
2use solana_trader_proto::api;
3use tonic::Request;
4
5use super::GrpcClient;
6
7impl GrpcClient {
8 pub async fn get_raydium_quotes(
9 &mut self,
10 request: &api::GetRaydiumQuotesRequest,
11 ) -> Result<api::GetRaydiumQuotesResponse> {
12 let response = self
13 .client
14 .get_raydium_quotes(Request::new(request.clone()))
15 .await
16 .map_err(|e| anyhow::anyhow!("GetRaydiumQuotes error: {}", e))?;
17
18 Ok(response.into_inner())
19 }
20
21 pub async fn get_raydium_cpmm_quotes(
22 &mut self,
23 request: &api::GetRaydiumCpmmQuotesRequest,
24 ) -> Result<api::GetRaydiumCpmmQuotesResponse> {
25 let response = self
26 .client
27 .get_raydium_cpmm_quotes(Request::new(request.clone()))
28 .await
29 .map_err(|e| anyhow::anyhow!("GetRaydiumCPMMQuotes error: {}", e))?;
30
31 Ok(response.into_inner())
32 }
33
34 pub async fn get_raydium_clmm_quotes(
35 &mut self,
36 request: &api::GetRaydiumClmmQuotesRequest,
37 ) -> Result<api::GetRaydiumClmmQuotesResponse> {
38 let response = self
39 .client
40 .get_raydium_clmm_quotes(Request::new(request.clone()))
41 .await
42 .map_err(|e| anyhow::anyhow!("GetRaydiumCLMMQuotes error: {}", e))?;
43
44 Ok(response.into_inner())
45 }
46
47 pub async fn get_raydium_clmm_pools(
48 &mut self,
49 request: &api::GetRaydiumClmmPoolsRequest,
50 ) -> Result<api::GetRaydiumClmmPoolsResponse> {
51 let response = self
52 .client
53 .get_raydium_clmm_pools(Request::new(request.clone()))
54 .await
55 .map_err(|e| anyhow::anyhow!("GetRaydiumClmmPools error: {}", e))?;
56
57 Ok(response.into_inner())
58 }
59
60 pub async fn get_raydium_pool_reserve(
61 &mut self,
62 request: &api::GetRaydiumPoolReserveRequest,
63 ) -> Result<api::GetRaydiumPoolReserveResponse> {
64 let response = self
65 .client
66 .get_raydium_pool_reserve(Request::new(request.clone()))
67 .await
68 .map_err(|e| anyhow::anyhow!("GetRaydiumPoolReserve error: {}", e))?;
69
70 Ok(response.into_inner())
71 }
72
73 pub async fn get_raydium_pools(
74 &mut self,
75 request: &api::GetRaydiumPoolsRequest,
76 ) -> Result<api::GetRaydiumPoolsResponse> {
77 let response = self
78 .client
79 .get_raydium_pools(Request::new(request.clone()))
80 .await
81 .map_err(|e| anyhow::anyhow!("GetRaydiumPools error: {}", e))?;
82
83 Ok(response.into_inner())
84 }
85
86 pub async fn get_pump_fun_quotes(
87 &mut self,
88 request: &api::GetPumpFunQuotesRequest,
89 ) -> Result<api::GetPumpFunQuotesResponse> {
90 let response = self
91 .client
92 .get_pump_fun_quotes(Request::new(request.clone()))
93 .await
94 .map_err(|e| anyhow::anyhow!("GetPumpFunQuotes error: {}", e))?;
95
96 Ok(response.into_inner())
97 }
98
99 pub async fn get_jupiter_quotes(
101 &mut self,
102 request: &api::GetJupiterQuotesRequest,
103 ) -> Result<api::GetJupiterQuotesResponse> {
104 let req = Request::new(request.clone());
105
106 let response = self
107 .client
108 .get_jupiter_quotes(req)
109 .await
110 .map_err(|e| anyhow::anyhow!("GetJupiterQuotes error: {}", e))?;
111
112 Ok(response.into_inner())
113 }
114
115 pub async fn get_quotes(
116 &mut self,
117 request: &api::GetQuotesRequest,
118 ) -> Result<api::GetQuotesResponse> {
119 let response = self
120 .client
121 .get_quotes(Request::new(request.clone()))
122 .await
123 .map_err(|e| anyhow::anyhow!("GetQuotes error: {}", e))?;
124
125 Ok(response.into_inner())
126 }
127
128 pub async fn get_raydium_prices(
129 &mut self,
130 tokens: Vec<String>,
131 ) -> Result<api::GetRaydiumPricesResponse> {
132 let request = Request::new(api::GetRaydiumPricesRequest { tokens });
133
134 let response = self
135 .client
136 .get_raydium_prices(request)
137 .await
138 .map_err(|e| anyhow::anyhow!("GetRaydiumPrices error: {}", e))?;
139
140 Ok(response.into_inner())
141 }
142
143 pub async fn get_jupiter_prices(
144 &mut self,
145 tokens: Vec<String>,
146 ) -> Result<api::GetJupiterPricesResponse> {
147 let request = Request::new(api::GetJupiterPricesRequest { tokens });
148
149 let response = self
150 .client
151 .get_jupiter_prices(request)
152 .await
153 .map_err(|e| anyhow::anyhow!("GetJupiterPrices error: {}", e))?;
154
155 Ok(response.into_inner())
156 }
157}