kleros-escrow-data-service
Version:
Data service for interacting with Kleros Escrow
123 lines (122 loc) • 4.96 kB
TypeScript
import { ethers } from "ethers";
import { KlerosEscrowConfig } from "../types/config";
import { BaseService } from "../base/BaseService";
import { BaseEvent, PaymentEvent, HasToPayFeeEvent, DisputeEvent, EvidenceEvent, RulingEvent, MetaEvidenceEvent } from "../types/events";
/**
* Service for retrieving events from the Kleros Escrow contract
*/
export declare class EventService extends BaseService {
/**
* Creates a new EventService instance
* @param config The Kleros Escrow configuration
* @param provider Optional provider for read operations
*/
constructor(config: KlerosEscrowConfig, provider?: ethers.providers.Provider);
/**
* Normalizes a block parameter to ensure it's in the correct format for ethers.js
* @param blockParam The block parameter (number, string, or undefined)
* @returns The normalized block parameter
*/
private normalizeBlockParam;
/**
* Gets all events for a specific transaction
* @param transactionId The ID of the transaction
* @param options Optional filter options including fromBlock and toBlock
* @returns All events related to the transaction
*/
getEventsForTransaction(transactionId: string, options?: {
fromBlock?: number | string;
toBlock?: number | string;
}): Promise<BaseEvent[]>;
/**
* Gets transaction creation events
* @param options Optional filter options including fromBlock and toBlock
* @returns An array of transaction creation events
*/
getTransactionCreationEvents(options?: {
fromBlock?: number | string;
toBlock?: number | string;
}): Promise<ethers.Event[]>;
/**
* Gets MetaEvidence events for a transaction with extended search capability
* @param transactionId The ID of the transaction
* @param options Optional filter options including fromBlock and toBlock
* @returns Array of MetaEvidence events
*/
getMetaEvidenceEvents(transactionId: string, options?: {
fromBlock?: number | string;
toBlock?: number | string;
}): Promise<MetaEvidenceEvent[]>;
/**
* Extended search for MetaEvidence events
* Searches multiple block ranges until it finds at least one matching event
* @param transactionId The ID of the transaction
* @returns Array of MetaEvidence events
*/
private getMetaEvidenceEventsExtended;
/**
* Helper method to search for MetaEvidence events in a specific block range
* @param transactionId The ID of the transaction
* @param fromBlock The starting block number
* @param toBlock The ending block number
* @returns Array of MetaEvidence events
*/
private searchMetaEvidenceInRange;
/**
* Process raw MetaEvidence events into structured format
* @param events Raw ethers.js events
* @param transactionId The transaction ID
* @returns Processed MetaEvidence events
*/
private processMetaEvidenceEvents;
/**
* Gets payment events
* @param transactionId The ID of the transaction
* @param options Optional filter options including fromBlock and toBlock
* @returns An array of payment events
*/
getPaymentEvents(transactionId?: string, options?: {
fromBlock?: number | string;
toBlock?: number | string;
}): Promise<PaymentEvent[]>;
/**
* Gets HasToPayFee events for a transaction
* @param transactionId The ID of the transaction
* @param options Optional filter options including fromBlock and toBlock
* @returns Array of HasToPayFee events
*/
getHasToPayFeeEvents(transactionId?: string, options?: {
fromBlock?: number | string;
toBlock?: number | string;
}): Promise<HasToPayFeeEvent[]>;
/**
* Gets dispute creation events
* @param transactionId The ID of the transaction
* @param options Optional filter options including fromBlock and toBlock
* @returns An array of dispute creation events
*/
getDisputeEvents(transactionId?: string, options?: {
fromBlock?: number | string;
toBlock?: number | string;
}): Promise<DisputeEvent[]>;
/**
* Gets evidence submission events
* @param transactionId The ID of the transaction
* @param options Optional filter options including fromBlock and toBlock
* @returns An array of evidence submission events
*/
getEvidenceEvents(transactionId?: string, options?: {
fromBlock?: number | string;
toBlock?: number | string;
}): Promise<EvidenceEvent[]>;
/**
* Gets ruling events
* @param transactionId The ID of the transaction
* @param options Optional filter options including fromBlock and toBlock
* @returns An array of ruling events
*/
getRulingEvents(transactionId?: string, options?: {
fromBlock?: number | string;
toBlock?: number | string;
}): Promise<RulingEvent[]>;
}