waterpump_evm_uniswap_api_client/lib.rs
1//! Uniswap API Client
2//!
3//! A Rust client for interacting with the Uniswap Labs API.
4//!
5//! # Example
6//!
7//! ```no_run
8//! use waterpump_evm_uniswap_api_client::{UniswapApiClient, QuoteRequest, QuoteType};
9//! use alloy_primitives::Address;
10//!
11//! # async fn example() -> Result<(), Box<dyn std::error::Error>> {
12//! let client = UniswapApiClient::new();
13//!
14//! // Get a quote
15//! let request = QuoteRequest {
16//! token_in: Address::from_str("0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48")?,
17//! token_out: Address::from_str("0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2")?,
18//! amount: "1000000".to_string(),
19//! quote_type: QuoteType::ExactIn,
20//! protocols: None,
21//! recipient: None,
22//! deadline: None,
23//! slippage_tolerance: Some("0.5".to_string()),
24//! };
25//!
26//! let quote = client.get_quote(request).await?;
27//! println!("Quote: {}", quote.quote);
28//!
29//! // Get token list
30//! let tokens = client.get_tokens().await?;
31//! println!("Found {} tokens", tokens.tokens.len());
32//!
33//! // Get pools
34//! let pools = client.get_pools(None, None).await?;
35//! println!("Found {} pools", pools.pools.len());
36//! # Ok(())
37//! # }
38//! ```
39
40pub mod client;
41pub mod error;
42pub mod types;
43
44pub use client::UniswapApiClient;
45pub use error::{Result, UniswapApiError};
46pub use types::{
47 Chain, ListPositionsRequest, ListPositionsResponse, PoolInfo, PoolListResponse, Position,
48 PositionStatus, PositionToken, ProtocolVersion, QuoteRequest, QuoteResponse, QuoteType,
49 TokenInfo, TokenListResponse, V3Position, V4PoolPosition, V4Position,
50};