Skip to main content

Crate unswp

Crate unswp 

Source
Expand description

§unswp

Unofficial Rust client for Uniswap V2, V3, and V4, combining on-chain lens queries and subgraph historical data.

§Features

  • Multi-version support - V2, V3, and V4 protocols
  • On-chain queries via ephemeral lens contracts (no API key required)
  • Historical data via The Graph subgraph (optional, requires API key)
  • Unified client that combines both data sources

§Quick Start

§On-chain only (no API key needed)

use unswp::Client;
use unswp::lens::pools;

let client = Client::mainnet("https://eth.llamarpc.com")?;

// Get current pool state
let state = client.get_pool_state(pools::MAINNET_WETH_USDC_005).await?;
println!("Current tick: {}", state.tick);
println!("Liquidity: {}", client.get_liquidity(pools::MAINNET_WETH_USDC_005).await?);

§With historical data (requires The Graph API key)

use unswp::Client;

let client = Client::mainnet_with_subgraph(
    "https://eth.llamarpc.com",
    "your-graph-api-key"
)?;

// On-chain query
let block = client.get_block_number().await?;
println!("Current block: {}", block);

// Historical query (requires API key)
let eth_price = client.get_eth_price().await?;
println!("ETH price: ${:.2}", eth_price);

let top_pools = client.get_top_pools(10).await?;
for pool in top_pools {
    println!("{}/{}: ${}", pool.token0.symbol, pool.token1.symbol, pool.total_value_locked_usd);
}

§Module Organization

  • client - Unified client combining on-chain and subgraph
  • lens - On-chain queries via ephemeral contracts
  • subgraph - Historical data via The Graph
  • types - Data types for pools, swaps, etc.
  • error - Error types

Re-exports§

pub use client::Client;
pub use client::Config;
pub use error::Error;
pub use error::Result;
pub use types::PairDataV2;
pub use types::Pool;
pub use types::PoolData;
pub use types::PoolDataV4;
pub use types::PoolDayData;
pub use types::PoolState;
pub use types::Quote;
pub use types::Swap;
pub use types::Token;
pub use lens::factories;
pub use lens::pools;
pub use lens::tokens;
pub use lens::LensClient;
pub use subgraph::subgraph_ids;
pub use subgraph::SubgraphClient;
pub use subgraph::SubgraphConfig;
pub use subgraph::UniswapVersion;
pub use uniswap_sdk_core as sdk_core;
pub use uniswap_v2_sdk as v2_sdk;
pub use uniswap_v3_sdk as v3_sdk;
pub use uniswap_v4_sdk as v4_sdk;

Modules§

client
Unified Uniswap client combining on-chain and subgraph queries
error
Error types for the Uniswap client
lens
On-chain lens queries for real-time Uniswap data
subgraph
Subgraph client for historical Uniswap data
types
Types for Uniswap data