* 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
* Reset to latest processed block on restarting job-runner
* Update sync status during historical processing in job-runner
* Codegen changes
* Use sync status latest processed block for subgraph _meta GQL query
* Set job per interval for subscribing events queue to 1
* Fix events processing skipped for blocks after template create
* Move method to apply block filter to base database
* Handle nested entity sorting
* Handle nested entity sorting for distinct on type queries
* Handle nested entity sorting for all query types
* Add a method to get meta data for watcher indexing status
* Add a flag indicating indexing error to sync status
* Codegen changes
* Clear indexing error on job-runner startup
* Fix lint errors
* Wait for events queue to be empty before continuing historical processing
* Make historicalLogsBlockRange and historicalMaxFetchAhead configurable
* Perform single RPC request for multiple addresses
* Handle logical operators in where input
* Handle logical filter operators while building the database query
* Refactor code to build where clause for database query
* Handle subgraph template create when filterLogsByAddresses set to true
* Fix historical processing stopping after running for multiple batches
* Add new method in graph-node test dummy indexer
* Handle nested filters for array type fields
* Transform Decimal param values to strings for db queries
* Handle nested filters for derived fields
* Handle filters for array type fields
* Handle nested filters while building the database query
* Build nested filters for relational fields
* Avoid queries to get canonical block hashes for loading relations
* Handle nested filters in all query types
* Give precedence to block hash over number in time travel queries
* Fix async block size caching for missing blocks in historical processing
* Start historical block processing only if filter logs is set to true
* Fetch filtered logs by topics and save required blocks
* Fix realtime processing start block after historical processing
* Avoid publishing events and blocks in historical processing
* Add new method to graph-node test indexer
* Get full block data for subgraph block handler only if configured
* Add useBlockRanges flag for switching between historical and realtime processing
* Fix bigint values transformation
* Fix starts and ends filter operator resolution
* Support case insensitive filters for string fields
* Add support for global filter _change_block
* Handle _change_block filter in all query types
* Add TODOs for historical blocks processing
* Add new job for historical blocks processing
* Handle historical job completion
* Fetch latest block in chain and start historical block processing
* Fix starting realtime block processing from latest canonical block
* Refactor historical block processing method and add logs
* Add dummy indexer methods in graph-node to pass test
* Changes in codegen for historical processing in generated watcher
* Support filtering by topics when fetching logs
* Include event signatures from all contracts in topics list
* Refactor common code
* Update package versions
* Skip log index order in events processing
* Use json-bigint stringify in processBatchEvents
* Set eventSignature in event processing for contracts watched later
* Check for null block in async caching of block sizes
* Handle null blocks in chain pruning
* Skip FEVM null blocks while prefetching
* Fix BaseFee assignment while fetching block in rpc-eth-client
* Convert blockNumber field to number type before saving block to db
* Avoid saving blocks after null block twice
* Update subgraph readme to run fill before job-runner
* Fix getContractEntitiesMap incase of template data sources
* Use rpcSupportsBlockHashParam flag to use blockNumber for rpc client eth_call
* Fix optional baseFeePerGas in rpc-eth-client
* Fix graph-node tests after changes
* Remove completed TODO
* Support fetching logs for a block range in rpc-eth-client
* Add a method to fetch block events for multiple blocks at once
* Add a method to save blocks with fetched events in a block range
* Fix transactions destructuring
* Fix get logs call args
* Add a separate ETH client method to get logs in a block range
* Codegen changes
* 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>
* Add validation for config file
* Add support for websocket endpoints to be checked for contract deployment
* Add flag to toggle validation
* Update log message for paid rpc method validation
* Update log message for validation
* Rename enableValidation to enableConfigValidation
* Check deployment only if contract address is in a valid format
* Update httpValidateEndpoint method to check if endpoint is up instead of response as ok
* Update log messages
* Update log messages
---------
Co-authored-by: Shreerang Kale <shreerangkale@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
* Avoid gasPrice while serializing tx in getRawTransaction
* Convert base fee to bigint when fetching block data
* Fix methods to get block data in rpc-eth-client
* Fix error checking in rpc-eth-client
* Continue processig after missing null block in FEVM
* Self review fix
* Upgrade package versions
---------
Co-authored-by: Nabarun <nabarun@deepstacksoft.com>