Skip to main content
Version: 1.4.2

Function: getMessagesInRange()

getMessagesInRange(source: Chain, opts: LogFilter): AsyncIterableIterator<CCIPRequest<CCIPVersion>>

Defined in: requests.ts:441

Discover and decode CCIP messages within a block/slot/checkpoint range.

This is the range-scanning equivalent of getMessagesInTx. It composes Chain.getLogs and ChainStatic.decodeMessage to yield CCIP requests in discovery order without requiring transaction hashes upfront.

Results are yielded in native log order: (blockNumber, logIndex) ascending for EVM, slot order for Solana. Non-CCIP logs in the range are silently skipped.

Parameters

ParameterTypeDescription
sourceChainSource chain to scan logs from
optsLogFilterLogFilter options. Key fields: - startBlock / endBlock — block/slot range (endBlock supports 'finalized' and 'latest') - address — onRamp/router address (optional on EVM, required on Solana) - topics — defaults to both CCIP message event names - page — batch size for log pagination

Returns

AsyncIterableIterator<CCIPRequest<CCIPVersion>>

Async iterator of CCIPRequest objects in native log order

Throws

CCIPChainFamilyUnsupportedError if a pre-v1.6 message is found on a non-EVM chain

Throws

CCIPLogsAddressRequiredError on Solana if address is not provided

Examples

TypeScript
const chain = await EVMChain.fromUrl('https://rpc.sepolia.org')
for await (const request of getMessagesInRange(chain, {
startBlock: 1000000,
endBlock: 1001000,
address: '0xOnRampAddress...', // optional on EVM, but recommended for public RPCs
})) {
console.log(`seqNr=${request.message.sequenceNumber} dest=${request.lane.destChainSelector}`)
}
TypeScript
const chain = await SolanaChain.fromUrl('https://api.devnet.solana.com')
for await (const request of getMessagesInRange(chain, {
startBlock: 450000000,
endBlock: 450100000,
address: 'Ccip842gzYHh...', // router program address (required on Solana)
})) {
console.log(`seqNr=${request.message.sequenceNumber}`)
}

See

  • getMessagesInTx - Per-transaction message discovery
  • getMessagesInBatch - Batch discovery by sequence number range