/** * Crossbar API types */ import type { IOracleJob } from '../protos.js'; import type { FeedEvalResponse } from './gateway.js'; /** * Crossbar feed fetch response */ export type CrossbarFetchResponse = { feedHash: string; queueHex: string; jobs: IOracleJob[]; }; /** * Crossbar oracle feed fetch response */ export type CrossbarOracleFeedFetchResponse = { cid: string; data: string; size: number; version: string; }; /** * Crossbar simulation response (V1) */ export type CrossbarSimulateResponse = { feedHash: string; results: (number | string)[] | null; receipts: unknown[] | null; error?: string; }; /** * Crossbar simulation response (V2) */ export type CrossbarSimulateV2Response = { feedHash: string; feedName?: string; results: unknown[] | null; receipts: unknown[] | null; error?: string; variableOverrides?: Record; network?: string; }; /** * Crossbar simulation response for protobuf feeds */ export type CrossbarSimulateProtoResponse = { feedId: string; feedName?: string; results: unknown[] | null; receipts: unknown[] | null; error?: string; variableOverrides?: Record; network?: string; }; /** * Request to simulate oracle jobs */ export type SimulateJobsRequest = { jobs: IOracleJob[]; includeReceipts?: boolean; variableOverrides?: Record; }; /** * Response from job simulation */ export type SimulateJobsResponse = { results: unknown[] | null; receipts?: unknown[] | null; error?: string; }; /** * Oracle information */ export type OracleInfo = { pubkey: string; secp256k1Key: string; signingAddress?: string; authority: string; queue: string; mrEnclave: string; /** Crossbar inventory/discovery freshness timestamp, not enclave quote expiry. */ expirationTime: number; gatewayUrl?: string; restricted?: boolean; version?: string; }; /** * Request to fetch signatures for a feed */ export type FetchSignaturesRequest = { feedHash: string; numSignatures: number; /** Maximum variance already scaled by 1e9 (1_000_000_000 = 1%). */ maxVariance: number; /** Minimum number of job responses required, unscaled. */ minResponses: number; useTimestamp?: boolean; gateway?: string; recentHash?: string; }; /** * CrossbarClient's internal FeedRequest type for API communication * Note: This is different from Gateway's FeedRequest type */ export type FeedRequest = { jobsB64Encoded?: string[]; /** Maximum variance already scaled by 1e9 (1_000_000_000 = 1%). */ maxVariance?: number; /** Minimum number of job responses required, unscaled. */ minResponses?: number; feedProtoB64?: string; }; /** * Request to fetch consensus signatures */ export type FetchSignaturesConsensusRequest = { apiVersion: string; recentHash?: string; signatureScheme: string; hashScheme: string; feedRequests: FeedRequest[]; numOracles: number; useTimestamp?: boolean; /** Request-scoped task variable overrides, including customer API keys. */ variableOverrides?: Record; }; /** * Response from consensus signature fetch */ export type FetchSignaturesConsensusResponse = { medianResponses: { value: string; feedHash: string; numOracles: number; }[]; oracleResponses: { oraclePublickey: string; ethAddress: string; signature: string; checksum: string; recoveryId: number; feedResponses: FeedEvalResponse[]; errors: (string | null)[]; }[]; timestamp?: number; }; /** * Query parameters for V2 update endpoint */ export interface V2UpdateQuery { network?: string; signature_scheme?: string; hash_scheme?: string; num_oracles?: number; use_timestamp?: boolean; recent_hash?: string; gateway?: string; chain?: string; } /** * Response structure for V2 update endpoint */ export interface V2UpdateResponse { medianResponses: V2MedianResponse[]; oracleResponses: V2ConsensusOracleResponse[]; timestamp: number; slot: number; recentHash: string; queue?: string; encoded?: string; } /** * Median response structure for V2 update */ export interface V2MedianResponse { value: string; feedHash: string; numOracles: number; } /** * Oracle response structure for V2 update with consensus */ export interface V2ConsensusOracleResponse { oraclePubkey: string; ethAddress: string; signature: string; checksum: string; recoveryId?: number; oracleId?: string; feedResponses: FeedEvalResponse[]; errors: (string | null)[]; } //# sourceMappingURL=crossbar.d.ts.map