mirror of
https://github.com/cerc-io/watcher-ts
synced 2026-09-08 16:54:08 +00:00
CLI to compare eden-watcher entities and fix mapping code (#149)
* Make sumStaked variable local in eden network mapping * Implement compare CLI to fetch and query by ids * Set filterLogs to true for eden-watcher * Use varchar for bigint array type in eden-watcher * Store subgraph entities by id in IPLD state * Store bigint vales as string in IPLD state * Update eden watcher hook to store single Block entity in IPLD checkpoint * Fix entity enum type property * Fix parsing big numbers in event params * Fix event bigint params parsing in all watchers * Set default limit to query result and process block after events
This commit is contained in:
@@ -52,6 +52,7 @@ import { {{subgraphEntity.className}} } from './entity/{{subgraphEntity.classNam
|
||||
{{/each}}
|
||||
|
||||
const log = debug('vulcanize:indexer');
|
||||
const JSONbigNative = JSONbig({ useNativeBigInt: true });
|
||||
|
||||
{{#each contracts as | contract |}}
|
||||
const KIND_{{capitalize contract.contractName}} = '{{contract.contractKind}}';
|
||||
@@ -177,8 +178,8 @@ export class Indexer implements IPLDIndexerInterface {
|
||||
|
||||
getResultEvent (event: Event): ResultEvent {
|
||||
const block = event.block;
|
||||
const eventFields = JSONbig.parse(event.eventInfo);
|
||||
const { tx, eventSignature } = JSON.parse(event.extraInfo);
|
||||
const eventFields = JSONbigNative.parse(event.eventInfo);
|
||||
const { tx, eventSignature } = JSONbigNative.parse(event.extraInfo);
|
||||
|
||||
return {
|
||||
block: {
|
||||
@@ -288,7 +289,7 @@ export class Indexer implements IPLDIndexerInterface {
|
||||
{{/if}}
|
||||
|
||||
await this._db.{{query.saveQueryName}}({ blockHash, blockNumber, contractAddress
|
||||
{{~#each query.params}}, {{this.name~}} {{/each}}, value: result.value, proof: JSONbig.stringify(result.proof) });
|
||||
{{~#each query.params}}, {{this.name~}} {{/each}}, value: result.value, proof: JSONbigNative.stringify(result.proof) });
|
||||
|
||||
{{#if query.stateVariableType}}
|
||||
{{#if (compare query.stateVariableType 'Mapping')}}
|
||||
@@ -441,13 +442,15 @@ export class Indexer implements IPLDIndexerInterface {
|
||||
async processBlock (blockHash: string, blockNumber: number): Promise<void> {
|
||||
// Call a function to create initial state for contracts.
|
||||
await this._baseIndexer.createInit(this, blockHash, blockNumber);
|
||||
{{#if (subgraphPath)}}
|
||||
|
||||
// Call subgraph handler for block.
|
||||
await this._graphWatcher.handleBlock(blockHash);
|
||||
{{/if}}
|
||||
}
|
||||
|
||||
{{#if (subgraphPath)}}
|
||||
async processBlockAfterEvents (blockHash: string): Promise<void> {
|
||||
// Call subgraph handler for block.
|
||||
await this._graphWatcher.handleBlock(blockHash);
|
||||
}
|
||||
|
||||
{{/if}}
|
||||
parseEventNameAndArgs (kind: string, logObj: any): any {
|
||||
const { topics, data } = logObj;
|
||||
|
||||
@@ -770,10 +773,10 @@ export class Indexer implements IPLDIndexerInterface {
|
||||
txHash,
|
||||
contract,
|
||||
eventName,
|
||||
eventInfo: JSONbig.stringify(eventInfo),
|
||||
extraInfo: JSONbig.stringify(extraInfo),
|
||||
proof: JSONbig.stringify({
|
||||
data: JSONbig.stringify({
|
||||
eventInfo: JSONbigNative.stringify(eventInfo),
|
||||
extraInfo: JSONbigNative.stringify(extraInfo),
|
||||
proof: JSONbigNative.stringify({
|
||||
data: JSONbigNative.stringify({
|
||||
blockHash,
|
||||
receiptCID,
|
||||
log: {
|
||||
|
||||
Reference in New Issue
Block a user