dexscreener-wrapper
Version:
A lightweight TypeScript wrapper for the DexScreener API
135 lines (134 loc) • 4.61 kB
TypeScript
import { TokenProfile, TokenBoost, TokenOrder, DexScreenerPair } from './types';
/**
* DexScreener API wrapper
* Provides methods to interact with the DexScreener API for retrieving token and pair information
*
* @example
* ```typescript
* const dexscreener = new DexScreener();
*
* // Search for pairs
* const pairs = await dexscreener.searchPairs('SOL', 'solana');
*
* // Get specific pair
* const pair = await dexscreener.getPair('pairAddress', 'solana');
*
* // Get token profiles
* const profiles = await dexscreener.getTokenProfiles();
* ```
*/
export declare class DexScreener {
private readonly baseUrl;
constructor();
/**
* Get the latest token profiles
* Rate limit: 60 requests per minute
*
* @returns Promise<TokenProfile[]> Array of token profiles
* @throws Error if the API request fails
*
* @example
* ```typescript
* const profiles = await dexscreener.getTokenProfiles();
* console.log(profiles[0].header); // "Solana (SOL)"
* ```
*/
getTokenProfiles(): Promise<TokenProfile[]>;
/**
* Get the latest boosted tokens
* Rate limit: 60 requests per minute
*
* @returns Promise<TokenBoost[]> Array of token boosts
* @throws Error if the API request fails
*
* @example
* ```typescript
* const boosts = await dexscreener.getLatestBoosts();
* console.log(boosts[0].totalAmount); // 1000
* ```
*/
getLatestBoosts(): Promise<TokenBoost[]>;
/**
* Get the tokens with most active boosts
* Rate limit: 60 requests per minute
*
* @returns Promise<TokenBoost[]> Array of token boosts
* @throws Error if the API request fails
*
* @example
* ```typescript
* const topBoosts = await dexscreener.getTopBoosts();
* console.log(topBoosts[0].totalAmount); // 5000
* ```
*/
getTopBoosts(): Promise<TokenBoost[]>;
/**
* Check orders paid for of token
* Rate limit: 60 requests per minute
*
* @param chainId The chain ID (e.g., 'solana', 'ethereum')
* @param tokenAddress The token address to get orders for
* @returns Promise<TokenOrder[]> Array of token orders
* @throws Error if the API request fails
*
* @example
* ```typescript
* const orders = await dexscreener.getTokenOrders('solana', 'So11111111111111111111111111111111111111112');
* console.log(orders[0].status); // "processing"
* ```
*/
getTokenOrders(chainId: string, tokenAddress: string): Promise<TokenOrder[]>;
/**
* Search for pairs matching query
* Rate limit: 300 requests per minute
*
* @param query The search query (token address, symbol, or name)
* @param chainId Optional chain ID to filter results
* @returns Promise<DexScreenerPair[]> Array of matching pairs
* @throws Error if the API request fails
*
* @example
* ```typescript
* // Search by token symbol
* const solPairs = await dexscreener.searchPairs('SOL', 'solana');
*
* // Search by token address
* const pairs = await dexscreener.searchPairs('So11111111111111111111111111111111111111112');
* ```
*/
searchPairs(query: string, chainId?: string): Promise<DexScreenerPair[]>;
/**
* Get pairs by token address
* Rate limit: 300 requests per minute
*
* @param tokenAddress The token address to get pairs for
* @param chainId The chain ID (required)
* @returns Promise<DexScreenerPair[]> Array of pairs
* @throws Error if the API request fails or chainId is not provided
*
* @example
* ```typescript
* const pairs = await dexscreener.getPairs('So11111111111111111111111111111111111111112', 'solana');
* console.log(pairs[0].priceUsd); // "20.50"
* ```
*/
getPairs(tokenAddress: string, chainId: string): Promise<DexScreenerPair[]>;
/**
* Get a specific pair by its address
* Rate limit: 300 requests per minute
*
* @param pairAddress The pair address to get
* @param chainId The chain ID (required)
* @returns Promise<DexScreenerPair | null> The pair information or null if not found
*
* @example
* ```typescript
* const pair = await dexscreener.getPair('JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN', 'solana');
* if (pair) {
* console.log(pair.baseToken.symbol); // "SOL"
* console.log(pair.quoteToken.symbol); // "USDC"
* }
* ```
*/
getPair(pairAddress: string, chainId: string): Promise<DexScreenerPair | null>;
}