Skip to main content

EvmQueryBuilder

Build queries for Portal API.
class EvmQueryBuilder {
  addFields(fields: FieldSelection): this;
  addLog(config: LogRequest): this;
  addTransaction(config: TransactionRequest): this;
  addTrace(config: TraceRequest): this;
  addStateDiff(config: StateDiffRequest): this;
}

addFields

Select fields to return.
queryBuilder.addFields({
  block: { number: true, hash: true, timestamp: true },
  log: { address: true, topics: true, data: true },
  transaction: { hash: true, from: true, to: true, value: true },
});
Block number and hash fields are required.

addLog

Filter event logs.
queryBuilder.addLog({
  request: {
    address: ["0x..."],
    topic0: ["0x..."],
    topic1: ["0x..."], // optional
  },
  range: { from: 20000000, to: 20000100 },
});

addTransaction

Filter transactions.
queryBuilder.addTransaction({
  request: {
    from: ["0x..."],
    to: ["0x..."],
    sighash: ["0xa9059cbb"],
  },
  range: { from: 20000000 },
});

addTrace

Filter traces.
queryBuilder.addTrace({
  request: {
    from: ["0x..."],
    to: ["0x..."],
    callType: ["call", "staticcall"],
  },
  range: { from: 20000000 },
});

addStateDiff

Filter state diffs (storage changes).
queryBuilder.addStateDiff({
  request: {
    address: ["0x..."],
  },
  range: { from: 20000000 },
});

Next Steps