UNPKG

@covalenthq/client-sdk

Version:

<div align="center"> <a href="https://goldrush.dev/" target="_blank" rel="noopener noreferrer"> <img alt="GoldRush TS SDK Logo" src="../../repo-static/ts-sdk-banner.png" style="max-width: 100%;"/> </a> </div>

338 lines (337 loc) 8.76 kB
import type { ContractMetadata } from "./Generic.types"; /** * Common enums and types for Streaming API */ export declare enum StreamingChain { BASE_MAINNET = "BASE_MAINNET", SOLANA_MAINNET = "SOLANA_MAINNET", SONIC_MAINNET = "SONIC_MAINNET", ETH_MAINNET = "ETH_MAINNET", BSC_MAINNET = "BSC_MAINNET", HYPERCORE_MAINNET = "HYPERCORE_MAINNET", HYPEREVM_MAINNET = "HYPEREVM_MAINNET", MONAD_MAINNET = "MONAD_MAINNET", POLYGON_MAINNET = "POLYGON_MAINNET", MEGAETH_MAINNET = "MEGAETH_MAINNET" } export declare enum StreamingInterval { ONE_SECOND = "ONE_SECOND", FIVE_SECONDS = "FIVE_SECONDS", FIFTEEN_SECONDS = "FIFTEEN_SECONDS", ONE_MINUTE = "ONE_MINUTE", FIVE_MINUTES = "FIVE_MINUTES", FIFTEEN_MINUTES = "FIFTEEN_MINUTES", ONE_HOUR = "ONE_HOUR", FOUR_HOURS = "FOUR_HOURS", ONE_DAY = "ONE_DAY" } export declare enum StreamingTimeframe { ONE_MINUTE = "ONE_MINUTE", FIVE_MINUTES = "FIVE_MINUTES", FIFTEEN_MINUTES = "FIFTEEN_MINUTES", ONE_HOUR = "ONE_HOUR", FOUR_HOURS = "FOUR_HOURS", ONE_DAY = "ONE_DAY", SEVEN_DAYS = "SEVEN_DAYS" } export declare enum StreamingProtocol { UNISWAP_V2 = "UNISWAP_V2", UNISWAP_V3 = "UNISWAP_V3", VIRTUALS_V2 = "VIRTUALS_V2", CLANKER_V3 = "CLANKER", RAYDIUM_AMM = "RAYDIUM_AMM", RAYDIUM_CLMM = "RAYDIUM_CLMM", RAYDIUM_CPMM = "RAYDIUM_CPMM", PUMP_DOT_FUN = "PUMP_DOT_FUN", PUMP_FUN_AMM = "PUMP_FUN_AMM", MOONSHOT = "MOONSHOT", RAYDIUM_LAUNCH_LAB = "RAYDIUM_LAUNCH_LAB", METEORA_DAMM = "METEORA_DAMM", METEORA_DLMM = "METEORA_DLMM", METEORA_DBC = "METEORA_DBC", PANCAKESWAP_V2 = "PANCAKESWAP_V2", PANCAKESWAP_V3 = "PANCAKESWAP_V3", SHADOW_V2 = "SHADOW_V2", SHADOW_V3 = "SHADOW_V3", OCTOSWAP_V2 = "OCTOSWAP_V2", OCTOSWAP_V3 = "OCTOSWAP_V3", QUICKSWAP_V2 = "QUICKSWAP_V2", QUICKSWAP_V3 = "QUICKSWAP_V3", SUSHISWAP_V2 = "SUSHISWAP_V2", PROJECT_X = "PROJECT_X", KUMBAYA_V1 = "KUMBAYA_V1", JOE_V2 = "JOE_V2" } /** * OHLCV Pairs Stream Types */ export interface OHLCVPairsStreamParams { chain_name: StreamingChain; pair_addresses: string[]; interval: StreamingInterval; timeframe: StreamingTimeframe; limit?: number; } export interface OHLCVPairsStreamResponse { chain_name: StreamingChain; pair_address: string; interval: StreamingInterval; timeframe: StreamingTimeframe; timestamp: string; open: number; high: number; low: number; close: number; volume: number; volume_usd: number; quote_rate: number; quote_rate_usd: number; base_token: ContractMetadata; quote_token: ContractMetadata; } /** * OHLCV Tokens Stream Types */ export interface OHLCVTokensStreamParams { chain_name: StreamingChain; token_addresses: string[]; interval: StreamingInterval; timeframe: StreamingTimeframe; limit?: number; } export interface OHLCVTokensStreamResponse { chain_name: StreamingChain; pair_address: string; interval: StreamingInterval; timeframe: StreamingTimeframe; timestamp: string; open: number; high: number; low: number; close: number; volume: number; volume_usd: number; quote_rate: number; quote_rate_usd: number; base_token: ContractMetadata; quote_token: ContractMetadata; } /** * New DEX Pairs Stream Types */ export interface NewPairsStreamParams { chain_name: StreamingChain; protocols: StreamingProtocol[]; } export interface PriceMetrics { last_5m: number; last_1hr: number; last_6hr: number; last_24hr: number; } export interface SwapMetrics { last_5m: number; last_1hr: number; last_6hr: number; last_24hr: number; } export interface NewPairsStreamResponse { chain_name: string; protocol: string; protocol_version: string; pair_address: string; deployer_address: string; tx_hash: string; block_signed_at: string; liquidity: number; supply: number; market_cap: number; event_name: string; quote_rate: number; quote_rate_usd: number; base_token: ContractMetadata; quote_token: ContractMetadata; pair: ContractMetadata; } /** * Update Pairs Stream Types */ export interface UpdatePairsStreamParams { chain_name: StreamingChain; pair_addresses: string[]; } export interface UpdatePairsStreamResponse { chain_name: string; pair_address: string; timestamp: string; quote_rate: number; quote_rate_usd: number; volume: number; volume_usd: number; market_cap: number; liquidity: number; base_token: ContractMetadata; quote_token: ContractMetadata; price_deltas: PriceMetrics; swap_counts: SwapMetrics; } /** * Wallet Activity Stream Types */ export interface WalletActivityStreamParams { chain_name: StreamingChain; wallet_addresses: string[]; } export interface WalletActivityLogItem { emitter_address: string; log_offset: number; data: string; topics: string[]; } /** * Decoded transaction detail types for wallet activity */ export interface TransferTransaction { from: string; to: string; amount: string; quote_usd: number; quote_rate_usd: number; contract_metadata: ContractMetadata; } export interface SwapTransaction { token_in: string; token_out: string; amount_in: string; amount_out: string; } export interface BridgeTransaction { type: string; typeString: string; from: string; to: string; amount: string; quote_usd: number; quote_rate_usd: number; contract_metadata: ContractMetadata; } export interface DepositTransaction { from: string; to: string; amount: string; quote_usd: number; quote_rate_usd: number; contract_metadata: ContractMetadata; } export interface WithdrawTransaction { from: string; to: string; amount: string; quote_usd: number; quote_rate_usd: number; contract_metadata: ContractMetadata; } export interface ApproveTransaction { spender: string; amount: string; quote_usd: number; quote_rate_usd: number; contract_metadata: ContractMetadata; } export interface ErrorDetails { message: string; } export type DecodedTransactionDetails = TransferTransaction | SwapTransaction | BridgeTransaction | DepositTransaction | WithdrawTransaction | ApproveTransaction | ErrorDetails; export interface WalletActivityStreamResponse { tx_hash: string; from_address: string; to_address: string; value: number; chain_name: string; block_signed_at: string; block_height: number; block_hash: string; miner_address: string; gas_used: number; tx_offset: number; successful: boolean; decoded_type: string; decoded_details?: DecodedTransactionDetails; logs: WalletActivityLogItem[]; } /** * Token Search Query Types */ export interface TokenSearchParams { query: string; chain_name?: StreamingChain; } export interface TokenSearchResponse { pair_address: string; chain_name: string; quote_rate: number; quote_rate_usd: number; volume: number; volume_usd: number; market_cap: number; base_token: ContractMetadata; quote_token: ContractMetadata; } /** * Unrealized PnL for Token Query Types */ export interface UPnLForTokenParams { chain_name: StreamingChain; token_address: string; } export interface UPnLForTokenResponse { token_address: string; wallet_address: string; volume: string; transactions_count: number; pnl_realized_usd: number; balance: string; balance_pretty: string; pnl_unrealized_usd: number; contract_metadata: ContractMetadata; } /** * Unrealized PnL for Wallet Query Types */ export interface UPnLForWalletParams { chain_name: StreamingChain; wallet_address: string; } export interface UPnLForWalletResponse { token_address: string; cost_basis: number; current_price: number; pnl_realized_usd: number | null; pnl_unrealized_usd: number; net_balance_change: string; marketcap_usd: string; contract_metadata: ContractMetadata; } /** * Streaming service configuration */ export interface StreamingServiceConfig { shouldRetry?: (retries: number) => boolean; maxReconnectAttempts?: number; onConnecting?: () => void; onOpened?: () => void; onClosed?: () => void; onError?: (error: unknown) => void; } /** * Stream subscription options */ export interface StreamSubscriptionOptions<T = Array<object>> { next: (payload: T) => void; error?: (error: unknown) => void; complete?: () => void; } /** * Unsubscribe function type */ export type UnsubscribeFunction = () => void;