mirror of
https://github.com/cerc-io/watcher-ts
synced 2025-12-08 04:24:06 +00:00
* Batch diff creation for subgraph entities updated in mapping code * Propagate changes to graph-test-watcher and codegen
68 lines
2.0 KiB
TypeScript
68 lines
2.0 KiB
TypeScript
//
|
|
// Copyright 2021 Vulcanize, Inc.
|
|
//
|
|
|
|
import assert from 'assert';
|
|
|
|
import { Indexer, ResultEvent } from './indexer';
|
|
|
|
/**
|
|
* Hook function to store an initial state.
|
|
* @param indexer Indexer instance.
|
|
* @param blockHash Hash of the concerned block.
|
|
* @param contractAddress Address of the concerned contract.
|
|
* @returns Data block to be stored.
|
|
*/
|
|
export async function createInitialState (indexer: Indexer, contractAddress: string, blockHash: string): Promise<any> {
|
|
assert(indexer);
|
|
assert(blockHash);
|
|
assert(contractAddress);
|
|
|
|
// Store an empty state in an IPLDBlock.
|
|
const ipldBlockData: any = {
|
|
state: {}
|
|
};
|
|
|
|
// Return initial state data to be saved.
|
|
return ipldBlockData;
|
|
}
|
|
|
|
/**
|
|
* Hook function to create state diff.
|
|
* @param indexer Indexer instance that contains methods to fetch the contract varaiable values.
|
|
* @param blockHash Block hash of the concerned block.
|
|
*/
|
|
export async function createStateDiff (indexer: Indexer, blockHash: string): Promise<void> {
|
|
assert(indexer);
|
|
assert(blockHash);
|
|
|
|
// Use indexer.createDiff() method to save custom state diff(s).
|
|
}
|
|
|
|
/**
|
|
* Hook function to create state checkpoint
|
|
* @param indexer Indexer instance.
|
|
* @param contractAddress Address of the concerned contract.
|
|
* @param blockHash Block hash of the concerned block.
|
|
* @returns Whether to disable default checkpoint. If false, the state from this hook is updated with that from default checkpoint.
|
|
*/
|
|
export async function createStateCheckpoint (indexer: Indexer, contractAddress: string, blockHash: string): Promise<boolean> {
|
|
assert(indexer);
|
|
assert(blockHash);
|
|
assert(contractAddress);
|
|
|
|
// Use indexer.createStateCheckpoint() method to create a custom checkpoint.
|
|
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* Event hook function.
|
|
* @param indexer Indexer instance that contains methods to fetch and update the contract values in the database.
|
|
* @param eventData ResultEvent object containing event information.
|
|
*/
|
|
export async function handleEvent (indexer: Indexer, eventData: ResultEvent): Promise<void> {
|
|
assert(indexer);
|
|
assert(eventData);
|
|
}
|