Skip to main content

createTransformer

Transform data in pipes.
createTransformer<I, O>(config: TransformerConfig<I, O>): Transformer<I, O>
Parameters:
  • transform: Transform function async (data: I, ctx) => O (required)
  • query: Query callback ({queryBuilder, portal, logger}) => void (optional)
Example:
const transformer = createTransformer({
  query: ({ queryBuilder }) => {
    queryBuilder.addLog({
      request: { address: ["0x..."] },
      range: { from: 20000000 },
    });
  },
  transform: async (data) => {
    return data.blocks.map((b) => b.logs);
  },
});

Types

EvmPortalData

Structure of raw blockchain data from the Portal API.
interface EvmPortalData<Q> {
  blocks: Array<{
    header: { number: number; hash: string; timestamp: number; /* ... */ };
    logs: Array<{
      address: string;
      topics: string[];
      data: string;
      transactionHash: string;
      logIndex: number;
    }>;
    transactions: Array<{ hash: string; from: string; to: string; value: bigint; /* ... */ }>;
  }>;
}