UNPKG

openoracle-sdk-js

Version:

OpenOracle Node.js SDK - Intelligent Oracle Routing with Multiple LLM Providers

78 lines (76 loc) 2.41 kB
import { BaseOracleProvider, QueryRequest, QueryResponse, ProviderOptions } from './base'; import { OracleConfig } from '../core/config'; import { OracleClient } from '../core/client'; import { OracleProvider, DataCategory, OracleCapability, ChainId } from '../types/enums'; import { ProviderConfiguration, ChainlinkPriceFeed } from '../schemas/oracle-schemas'; export interface ChainlinkQueryOptions extends ProviderOptions { feedId?: string; chainId?: ChainId; includeHistorical?: boolean; decimals?: number; } export interface ChainlinkFeedInfo { feedId: string; name: string; pair: string; decimals: number; proxy: string; aggregator: string; phase: number; heartbeat: number; } export declare class ChainlinkProvider extends BaseOracleProvider { private readonly baseUrls; private readonly feedCache; constructor(config: OracleConfig, client: OracleClient, providerConfig: ProviderConfiguration); getProviderName(): OracleProvider; getProviderCapabilities(): OracleCapability[]; getSupportedCategories(): DataCategory[]; getEndpointUrl(): string; protected getCostPerQuery(): number; queryData(request: QueryRequest, options?: ChainlinkQueryOptions): Promise<QueryResponse>; /** * Query price data from Chainlink price feeds */ private queryPriceData; /** * Query sports data from Chainlink sports feeds */ private querySportsData; /** * Query weather data from Chainlink weather feeds */ private queryWeatherData; /** * Query generic data using Chainlink Functions or External Adapters */ private queryGenericData; /** * Find price feed for a given symbol */ private findPriceFeed; /** * Load feed directory for a specific chain */ private loadFeedDirectory; /** * Extract trading symbol from query */ private extractSymbol; /** * Get historical price data */ private getHistoricalPriceData; /** * Build Chainlink Function source code */ private buildFunctionSource; /** * Get available price feeds for a chain */ getAvailableFeeds(chainId?: ChainId): Promise<ChainlinkFeedInfo[]>; /** * Get real-time price updates via WebSocket */ subscribeToFeed(feedId: string, callback: (data: ChainlinkPriceFeed) => void): WebSocket; }