Skip to main content
Version: 0.96.0

Type Alias: ChainContext

ChainContext = WithLogger & { apiClient?: CCIPAPIClient | null; apiRetryConfig?: ApiRetryConfig; }

Defined in: chain.ts:89

Context for Chain class initialization. Extends WithLogger with optional API client configuration.

Type Declaration

apiClient?

optional apiClient: CCIPAPIClient | null

CCIP API client instance for lane information queries.

  • undefined (default): Creates CCIPAPIClient with DEFAULT_API_BASE_URL
  • CCIPAPIClient: Uses provided instance (allows custom URL, fetch, etc.)
  • null: Disables API client entirely (getLaneLatency() will throw)

Default: undefined (auto-create with production endpoint)

apiRetryConfig?

optional apiRetryConfig: ApiRetryConfig

Retry configuration for API fallback operations. Controls exponential backoff behavior for transient errors. Default: DEFAULT_API_RETRY_CONFIG

Examples

TypeScript
const chain = await EVMChain.fromUrl(rpcUrl, { logger })
await chain.getLaneLatency(destSelector) // Works - uses production API
TypeScript
const api = new CCIPAPIClient('https://staging-api.example.com', { logger })
const chain = await EVMChain.fromUrl(rpcUrl, { apiClient: api, logger })
TypeScript
const chain = await EVMChain.fromUrl(rpcUrl, { apiClient: null, logger })
await chain.getLaneLatency(destSelector) // Throws CCIPApiClientNotAvailableError