Skip to main content

Module dex

Module dex 

Source
Expand description

§DEX Aggregator Client

This module provides a client for fetching token price and volume data from DEX aggregator APIs like DexScreener.

§Supported APIs

  • DexScreener (primary): Free API, no key required
    • Token data: GET https://api.dexscreener.com/latest/dex/tokens/{address}
    • Pair data: GET https://api.dexscreener.com/latest/dex/pairs/{chain}/{pair}
    • Token search: GET https://api.dexscreener.com/latest/dex/search?q={query}

§Features

  • Comprehensive token data aggregation across all DEX pairs
  • Native token price lookups for USD valuation (ETH, SOL, BNB, MATIC, etc.)
  • Individual token price lookups by contract address
  • Token search with chain filtering
  • Historical price and volume data interpolation

§Usage

use scope::chains::DexClient;

#[tokio::main]
async fn main() -> scope::Result<()> {
    let client = DexClient::new();
     
    // Fetch token data by address
    let data = client.get_token_data("ethereum", "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48").await?;
    println!("Price: ${}", data.price_usd);
     
    // Get native token price for USD valuation
    if let Some(eth_price) = client.get_native_token_price("ethereum").await {
        println!("ETH: ${:.2}", eth_price);
    }
     
    Ok(())
}

Structs§

DexClient
Client for fetching DEX aggregator data.
DexTokenData
Aggregated token data from DEX sources.
DiscoverLink
DiscoverToken
A discovered token from DexScreener (profiles, boosts, etc.)
TokenSearchResult
A token search result from DEX aggregator.
TokenSocial
Social media link for a token.

Traits§

DexDataSource
Trait for DEX data providers (prices, token data, search).