* Add metrics to monitor errors and duration for ETH RPC requests
* Check for server error
* Add a metric with configured upstream ETH RPC endpoints
* Use Gauge for RPC requests duration metric
* Filter out unknown events while loading event count on start
* Update package versions
* Rethrow errors in overridden send provider method
* Handle ThunkComposer field types when generating nested filters
* Fix type setting for relational fields when loading a subgraph entity from db
* Fix loading nullable relational fields in GQL queries
* Update package versions
* Filter out pruned subgraph entities while fetching from db
* Sort events by tx index first incase upstream is FEVM
* Upgrade package versions
---------
Co-authored-by: Nabarun <nabarun@deepstacksoft.com>
* Add a cli to export chain head block numbers
* Use ETH RPC endpoint and allow env overrides
* Use ethers provider
* Export upstream chain head block number in watcher metrics
* Remove unnecessary exports
* Upgrade package versions
* Fix defaults usage
* Export watcher config in metrics
* Add metric for watcher sync mode
* Remove cache flag from watcher config metrics
* Update watcher config field names
* Update subgraph watcher demo readme
* Pass extra block data required in subgraph block handler (#486)
* Use codegen config directory name instead of file path
* Get block data from extra event data
* Add extra event data in processBlockAfterEvents
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Update example subgraph mapping code for graph-cli upgrade
* Return 0 value for block size in ipld-eth-client
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
* Fill watcher start block only in active mode
* Fix sync status update in historical processing
* Upgrade package versions
* Upgrade package versions in codegen template
* Fix graph-node test indexer
* Instantiate a new wasm string to convert JSON value to BigInt
* Implement remaining json host APIs
* Upgrade graph-ts and graph-cli in test example subgraph
* Handle null context for dataSource context host API
* Use JSONBig for parsing JSON strings
* Add check for from and to block in eventsInRange query
* Update sync status query for more fields
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Skip generating meta query if non subgraph watcher
* Fix linting errors in generated watcher
* Add space for meta query
* Add meta query types after adding block height type
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Find minimum start block number
* Perform fill if db is empty
* Make getStartBlock method public in GraphWatcher
* Use dataSources property
* Update server template to fill block on start
* Avoid passing graphWatcher from generated watcher
* Ensure block filling for non-subgraph watchers as well
* Remove getStartBlock method from GraphWatcher
* Remove graphWatcher property from ServerCmd
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Use shelljs to run graph-cli codegen command
* Replace graph-cli and graph-ts with cerc-io forks
* Add steps to build subgraph
* Add config packageManager for different subgraph repo setup
* Copy over the subgraph build to generated watcher
* Remove TODO
* Change subgraph path in generated watcher config
* Implement createWithContext graph-node dataSource host API
* Parse individual context entries
* Implement graph-node dataSource context host API
* Handle array type fields and refactor code
* Resolve all values when parsing an array field
* Fix wasm entity creation with array type fields
* Required codegen changes
* Implement host api for big decimal equals
* Add test cases for big decimal equals
* Use boolean type conversion
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Add where filter equals fields based on entity fields
* Add different where filter operations for entity fields
* Add nested where filter for relation fields and filter params or & and
* Remove filters not required for derived fields
* Add nested order by params in schema
* Throw error on trying to sort by array or derived type fields
* Handle array fields while generating order by and where clauses
* Upgrade package versions
---------
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
* Use topic hash of events from config file
* Add eventSignaturesMap field in IndexerInterface
* Add eventSignaturesMap property in Indexer class
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Add lower case method for camel case entity names
* Add BlockChangedFilter required in where filter
* Use lower camel case in resolvers and fix lower case transformation
* Throw error in job-runner events processing queue for retry
* Restart block processing after completion of retried events queue job
* Check events queue size in retry state from active historical processing job
* Clear watched contracts from memory map on reset
* Update sync status with zero hash during historical processing
* Update codegen for changes
* Add clearProcessedBlockData in graph-node test dummy indexer
* Fix duplicate historical processing jobs created on template create
* Fix switch from historical to realtime processing when template create block is near head
* Keep return value for singular subgraph entity queries nullable
* Prioritize block hash over number in time travel queries
* Throw error when block with given hash doesn't exist in db
* Set gzip true in ethersjs provider
* Add timer logs and use StaticJsonRpcProvider
* Fetch block data in historical processing and cache in map
* Fetch txs required for event logs in historical processing
* Process events with prefetched block and txs data in realtime processing
* Clear old TODOs