use serde::Deserialize;
#[derive(Deserialize, Debug)]
struct PriceRoute {
#[serde(rename = "destAmount")]
dest_amount: String,
#[serde(rename = "gasCostUSD")]
gas_cost_usd: String,
}
#[derive(Deserialize, Debug)]
struct PricesResponse {
#[serde(rename = "priceRoute")]
price_route: PriceRoute,
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let params = [
("srcToken", "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"), // ETH
("destToken", "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"), // USDC
("amount", "1000000000000000000"), // 1 ETH
("srcDecimals", "18"),
("destDecimals", "6"),
("side", "SELL"),
("network", "1"),
("userAddress", "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"),
("partner", "my-app-name"),
("version", "6.2"),
];
let res = reqwest::Client::new()
.get("https://api.velora.xyz/prices")
.query(¶ms)
.send()
.await?
.error_for_status()?
.json::<PricesResponse>()
.await?;
println!("destAmount: {}", res.price_route.dest_amount);
println!("gasCostUSD: {}", res.price_route.gas_cost_usd);
Ok(())
}