ctx with the structure {store, blocks, isHead}; ctx.blocks is an array of Block objects containing the data to be processed, aligned at the block level. Portal-native handlers do not receive ctx.log — create a logger explicitly if the handler needs one.
The Block interface is defined as follows:
F here is the type of the argument of the setFields() method of DataSourceBuilder.
Block.header contains the block header data. Note that block.header.number is the Solana slot number — there is no separate slot field. The rest of the fields are iterables containing the six kinds of blockchain data. Canonical ordering within each iterable depends on the data kind:
transactionsare ordered in the same way as they are within blocks;instructionsfollow the order of transactions that gave rise to them;tokenBalancesare ordered in a deterministic but otherwise unspecified way.
setFields() call argument. They are documented on the field selection page: