dedust_api_client 0.7.3

API client for Dedust
Documentation
use anyhow::Result;
use api_clients_core::Executor;
use dedust_api_client::api_client::DedustApiClient;
use dedust_api_client::api_client::DEFAULT_API_V2_URL;
use dedust_api_client::unwrap_response;
use dedust_api_client::v2::{RoutingPlanParams, V2Request};
use std::sync::Arc;
use std::time::Duration;

fn init_env() -> Result<DedustApiClient> {
    let _ = env_logger::builder().filter_level(log::LevelFilter::Debug).try_init();
    let executor = Executor::builder(DEFAULT_API_V2_URL).with_timeout(Duration::from_secs(60)).build()?;
    Ok(DedustApiClient::builder().with_executor(Arc::new(executor)).build()?)
}

#[tokio::test]
async fn test_assets() -> Result<()> {
    let client = init_env()?;
    let request = V2Request::Assets;
    let response = unwrap_response!(Assets, client.v2.exec(&request).await?)?;
    assert!(!response.is_empty());
    Ok(())
}

#[tokio::test]
async fn test_pools() -> Result<()> {
    let client = init_env()?;
    let request = V2Request::Pools;
    let response = unwrap_response!(Pools, client.v2.exec(&request).await?)?;
    assert!(!response.is_empty());
    Ok(())
}

#[tokio::test]
async fn test_pools_lite() -> Result<()> {
    let client = init_env()?;
    let request = V2Request::PoolsLite;
    let response = unwrap_response!(PoolsLite, client.v2.exec(&request).await?)?;
    assert!(!response.is_empty());
    Ok(())
}

#[tokio::test]
async fn test_pool_trades() -> Result<()> {
    let client = init_env()?;
    let request = V2Request::PoolTrades("EQAADLqcF3lNb1O_GQLowwky8vvUGXuzPRNGvKBwBxjsHR7s".to_string());
    let response = unwrap_response!(PoolTrades, client.v2.exec(&request).await?)?;
    assert!(!response.is_empty());
    Ok(())
}

#[tokio::test]
async fn test_routing_plan() -> Result<()> {
    let client = init_env()?;
    let usdt_addr = "0:b113a994b5024a16719f69139328eb759596c38a25f59028b146fecdc3621dfe";
    let ton_addr = "0:0000000000000000000000000000000000000000000000000000000000000000";
    let params = RoutingPlanParams::new(usdt_addr, ton_addr, &10.to_string());
    let response = unwrap_response!(RoutingPlan, client.v2.exec(params).await?)?;
    assert!(!response.is_empty());
    assert!(!response[0].is_empty());
    Ok(())
}