Type Alias: ChainContext
ChainContext =
WithLogger& {abort?:AbortSignal;apiClient?:CCIPAPIClient|string|null;apiRetryConfig?:ApiRetryConfig; } &WithCantonConfig
Defined in: chain.ts:119
Context for Chain class initialization. Extends WithLogger with optional API client configuration.
Type Declaration
abort?
optionalabort?:AbortSignal
Abort signal for cancelling in-flight requests and watch loops on this chain. When the signal fires, the provider is destroyed and all active getLogs watch loops exit.
apiClient?
optionalapiClient?:CCIPAPIClient|string|null
CCIP API client instance for lane information queries.
undefined(default): Creates CCIPAPIClient with DEFAULT_API_BASE_URLstring: Creates CCIPAPIClient with provided URLCCIPAPIClient: Uses provided instance (allows custom URL, fetch, etc.)null: Disables API client entirely (getLaneLatency() will throw)
Default: undefined (auto-create with production endpoint)
apiRetryConfig?
optionalapiRetryConfig?:ApiRetryConfig
Retry configuration for API fallback operations. Controls exponential backoff behavior for transient errors. Default: DEFAULT_API_RETRY_CONFIG
Examples
const chain = await EVMChain.fromUrl(rpcUrl, { logger })
await chain.getLaneLatency(destSelector) // Works - uses production API
const api = CCIPAPIClient.fromUrl('https://staging-api.example.com', { logger })
const chain = await EVMChain.fromUrl(rpcUrl, { apiClient: api, logger })
const chain = await EVMChain.fromUrl(rpcUrl, { apiClient: null, logger })
await chain.getLaneLatency(destSelector) // Throws CCIPApiClientNotAvailableError