UNPKG

dexscreener-wrapper

Version:

A lightweight TypeScript wrapper for the DexScreener API

135 lines (134 loc) 4.61 kB
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>; }