rango_sdk/client/
meta.rs

1use crate::{
2    error::SdkErr,
3    meta::{
4        blockchains::BlockchainMeta, messaging_protocols::MessagingProtocols, meta::Meta,
5        swappers::SwapperMeta,
6    },
7};
8
9impl super::Client {
10    /// All the essential data needed for a client, including list of support blockchains, tokens and protocols (DEXs & Bridges).
11    pub async fn meta(&self) -> Result<Meta, SdkErr> {
12        let url = format!(
13            "{}/{}?apiKey={}",
14            self.config.api_url, "basic/meta", self.config.api_key
15        );
16
17        println!("url: {:?}", url);
18
19        let body: Meta = ureq::get(&url).call()?.into_json()?;
20        Ok(body)
21    }
22
23    /// List of supported chains by Rango
24    pub async fn chains(&self) -> Result<Vec<BlockchainMeta>, SdkErr> {
25        let url = format!(
26            "{}/{}?apiKey={}",
27            self.config.api_url, "basic/meta/blockchains", self.config.api_key
28        );
29
30        let body: Vec<BlockchainMeta> = ureq::get(&url).call()?.into_json()?;
31        Ok(body)
32    }
33
34    /// List of supported swappers by Rango
35    pub async fn swappers(&self) -> Result<Vec<SwapperMeta>, SdkErr> {
36        let url = format!(
37            "{}/{}?apiKey={}",
38            self.config.api_url, "basic/meta/swappers", self.config.api_key
39        );
40
41        let body: Vec<SwapperMeta> = ureq::get(&url).call()?.into_json()?;
42        Ok(body)
43    }
44
45    /// List of supported messaging protocols by Rango
46    pub async fn messaging_protocols(&self) -> Result<MessagingProtocols, SdkErr> {
47        let url = format!(
48            "{}/{}?apiKey={}",
49            self.config.api_url, "basic/meta/messaging-protocols", self.config.api_key
50        );
51
52        let body: MessagingProtocols = ureq::get(&url).call()?.into_json()?;
53        Ok(body)
54    }
55}