* Avoid historical sync for block handlers and eth_getLogs without event handlers
* Stop processing after endBlock in watcher fill CLI
* Codegen changes for avoiding eth_getLogs when no subgraph event handlers exist
* Upgrade package version to 0.2.100
* Check for blockHandlerExists first before block processing
* Fix comments for historical block processing checks
* Update chain-head-exported CLI for running multiple instances
* Update upstream RPC for metrics with active endpoint
* Export metrics for watcher package version and commitHash
* Upgrade package versions
* 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
* 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
* 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>
* Support filtering by topics when fetching logs
* Include event signatures from all contracts in topics list
* Refactor common code
* Update package versions
* Upgrade nitro-node to v0.1.15
* Upgrade packages version to v0.2.66
* Add default value for Nitro node store path
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Upgrade @cerc-io/nitro-node dependency
* Add a separate config option for chain URL used by Nitro node
* Avoid adding ETH RPC method to request URL as no longer needed
* Update package versions
* Add config option for upstream RPC mutation endpoint
* Use mutation endpoint as chain URL for Nitro node
* Add a method to setup an upstream payment channel
* Add a method to send payments to upstream Nitro node
* Upgrade package versions
* Add support for setting gossipsub direct peers
* Use string array for direct peers config
* Handle empty nitro and consensus config
* Increase consensus write retry attempts
* Rename config option for watcher party peers file
* Handle directPeers array being passed undefined
* Upgrade package versions
---------
Co-authored-by: Shreerang Kale <shreerangkale@gmail.com>
* Add Consensus class with placeholders
* Implement Consensus constructor
* Move PubsubType to peer package
* Implement remaining methods in Consensus class
* Use existing consensus stream if it exists
* Setup send and receive pipes on consensus streams
* Refactor P2P and consensus setup in server command
* Add Nitro node initialization in server command
* Return objects from server initializations
* Use dynamic imports for ES modules in util package
* Fix util deps
* Change target to es6 to allow creating a Mokka instance
* Set moduleResolution to node16 in util for dynamic imports
* Upgrade @cerc-io/nitro-node package
* Implement retries while sending consensus messages
* Use bunyan for consensus logs and subscribe to state changes
* Use debug for logging state change events
* Handle empty watcher party file path
* Return object from initP2P
* Upgrade @cerc-io/nitro-node package
* Update package versions
* Replace floodsub with gossipsub
* Add a pubsub flag to support both floodsub and gossipsub
* Fix deps
* Handle empty string values
* Upgrade @cerc-io/libp2p dependency
* Upgrade package versions