@elephant-xyz/cli
Version:
CLI tool for Elephant Network
29 lines • 1.55 kB
TypeScript
import { BlockchainService } from './blockchain.service.js';
import { ABI } from '../types/index.js';
export declare class ChainStateService extends BlockchainService {
private submitContract;
private userSubmissionsCache;
private consensusDataCache;
constructor(rpcUrl: string, contractAddress: string, submitContractAddress: string, abi: ABI, submitAbi?: ABI);
prepopulateConsensusCache(): Promise<void>;
/**
* Gets the current data CID for a given property and data group.
* @param propertyCid The property CID.
* @param dataGroupCid The data group CID.
* @returns The current data CID or null if not found or invalid.
*/
getCurrentDataCid(propertyCid: string, dataGroupCid: string): Promise<string | null>;
/**
* Checks if a specific user has already submitted data for the given CIDs combination
* by querying all historical 'DataSubmitted' events for that user once and caching the results.
* @param userAddress The user's wallet address.
* @param propertyCid The property CID.
* @param dataGroupCid The data group CID.
* @param dataCid The data CID.
* @returns True if the user has already submitted this data according to event logs, false otherwise or on error.
*/
hasUserSubmittedData(userAddress: string, propertyCid: string, dataGroupCid: string, dataCid: string): Promise<boolean>;
getUserSubmissions(userAddress: string): Promise<Set<string>>;
private _queryEventsInChunks;
}
//# sourceMappingURL=chain-state.service.d.ts.map