Commit Graph
105 Commits
Author SHA1 Message Date
prathamesh0 05fdf85af8 Handle where clause on nested GQL query selections (#531)
* Handle where clause on nested GQL query selections

* Handle variables for arguments on nested selections

* Handle args on nested GQL query selections for plural queries

* Update package versions
2024-08-02 13:42:47 +05:30
prathamesh0 d53fbcf731 Add support for args on nested GQL query selections in subgraph watchers (#530)
* Add support for arguments on nested GQL query selections

* Update package versions
2024-08-01 19:01:54 +05:30
nabarun 37885c64eb Watch contract for multiple data sources from subgraph config (#529)
* Watch contract for multiple data sources from subgraph config

* Upgrade package versions
2024-07-19 17:58:20 +05:30
nabarun 42cb688921 Export metric for total ETH RPC count (#528)
* Export metric for total ETH RPC count by methods

* Fix endpoint switch on max retries of new block

* Upgrade package versions
2024-07-12 16:59:23 +05:30
nabarun 2217cd3ffb Support events handlers in multiple data sources for a contract address (#526)
* Support processing events in multiple subgraph datasources for a single contract address

* Fix parsing event topic in graph-node watcher

* Update codegen templates

* Fix dummy indexer method in graph-node test

* Upgrade package versions to 0.2.102
2024-06-26 17:56:37 +05:30
nabarunandprathamesh b9a899aec1 Implement switching endpoints after slow eth_getLogs RPC requests (#525)
* Switch upstream endpoint if getLogs requests are too slow

* Refactor methods for switching client to indexer

* Update codegen indexer template

* Add dummy methods in graph-node test Indexer

* Upgrade package versions to 0.2.101

---------

Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
2024-06-20 17:57:01 +05:30
nabarun ff471da287 If subgraph block handlers exist force realtime processing in watcher (#524)
* 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
2024-06-20 10:05:53 +05:30
nabarun 981f70ec9b Replace null values when converting bytes to string in graph-node host API (#523)
* Replace null value in strings for postgres text data type

* Upgrade package versions to 0.2.99
2024-06-14 13:47:54 +05:30
nabarun 467c173a0d Use blockHash filter in eth_getLogs query for FEVM (#521)
* Fetch logs by blockHash at head for FEVM

* Upgrade watcher package versions to 0.2.98
2024-06-11 19:07:55 +05:30
prathamesh0 acf69dd554 Add a config option for block processing offset (#520)
* Add config option for block processing offset

* Upgrade package versions
2024-06-10 15:09:33 +05:30
nabarun 52082fc874 Process block with MAX_REORG_DEPTH delay from head (#519)
* Process block behind latest head by reorg height

* Upgrade package versions
2024-06-07 21:12:03 +05:30
nabarun 4d81c14597 Fix order of events processing for FEVM (#518)
* Fix events processing order for FEVM

* Upgrade watcher package version

* Fix getResultEvent for eventsInRange GQL query

* Fix eventFields parsing
2024-06-07 17:23:55 +05:30
nabarunandprathamesh 8d052add2d Log GQL requests in watcher (#517)
* Update config for server GQL

* Add winston logger for GQL requests

* Fix codegen templates for resolver and package

* Update package versions

---------

Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
2024-06-06 16:54:49 +05:30
nabarun 7cc61579d8 Use ethers.js replace util for errors in bytesToString host API (#515)
* Use replacement strategy for ethers.utils.toUtf8String in graph-node host API

* Upgrade package versions
2024-06-04 11:41:54 +05:30
nabarun 3b67fa1827 Use module read-pkg for reading package.json (#513)
* Use module read-pkg for reading package.json

* Upgrade package versions
2024-05-30 15:42:57 +05:30
nabarun f00f6d2998 Update chain head exporter CLI to support running multiple instances (#512)
* 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
2024-05-30 14:37:35 +05:30
nabarun 4fd6bf4ad7 [WIP] Handle GQL query fragment for single entity query (#511)
* Handle GQL query fragment for single entity query

* Upgrade package versions
2024-05-17 18:47:15 +05:30
nabarunandprathamesh b57aa76d9f Support fragments in GQL queries for subgraph watchers (#510)
* Avoid updating latest block metrics on RPC errors

* Handle fragments in subgraph GQL queries

* Upgrade package versions

* Move private method in util graph database

---------

Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
2024-05-17 17:20:29 +05:30
nabarun 20fa6ceaa6 Remove check for isFEVM flag when filtering event logs by topics (#508)
* Remove check for FEVM flag when filtering logs by topics

* Update package versions
2024-05-16 11:24:41 +05:30
prathamesh0 c7e6baa263 Add metrics to monitor errors and duration for ETH RPC requests (#507)
* 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
2024-05-15 19:11:22 +05:30
nabarun c9696c3d9f Implement failover for RPC endpoints in watcher (#506)
* Handle RPC endpoint server errors and switch failover endpoints

* Add config maxNewBlockRetries for switching to failover endpoint

* Upgrade package versions

* Move unknown events removal after event processing for historical sync

* Rename doFailOverEndpoints to switchClients
2024-05-09 16:03:06 +05:30
nabarun 6d837dc824 Fix address filter param in eth_getLogs request (#505)
* Fix eth_getLogs address filter param

* Upgrade package versions
2024-05-03 14:24:05 +05:30
nabarun edaec5a028 Fetch logs filtered by block number instead of block hash for FEVM (#504)
* Fetch logs by block number for FEVM and use node-fetch for eth_getLogs

* Upgrade package versions
2024-05-02 16:04:31 +05:30
prathamesh0 67425690e9 [WIP] Skip contract events if no match found in ABI (#503)
* Skip contract events if no match found in ABI

* Update package versions
2024-03-19 17:52:00 +05:30
prathamesh0 59edc178c9 Fix for generating nested filters and loading subgraph entities from db (#502)
* 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
2024-03-14 11:21:52 +05:30
prathamesh0andnabarun ff44fd8717 Fix event processing and entities query for filecoin watchers (#501)
* 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>
2024-03-06 11:10:41 +05:30
nabarun 1cf1a3baa2 Upgrade package versions to 0.2.80 (#500) 2023-12-28 15:17:06 +05:30
prathamesh0 78e43bc088 Export metrics for watcher config and upstream and external chain heads (#497)
* 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
2023-12-19 15:23:25 +05:30
prathamesh0 37732d1b1e Upgrade package versions (#496) 2023-12-05 18:27:09 +05:30
nabarun 220f3ddf24 Fix events processing error check in historical processing (#491)
* Fix events queue error check in historical processing

* Upgrade package version
2023-11-26 12:42:43 +05:30
nabarun 3fa3cc7068 Upgrade package versions to 0.2.76 (#490) 2023-11-24 12:04:11 +05:30
nabarun 937aed139f Fix sync status update in historical processing job (#488)
* 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
2023-11-23 20:25:39 +05:30
nabarun 729d862aac Fix fetching blocks near chain head in job-runner (#485)
* Fix null blocks check in job-runner when fetching near chain head

* Upgrade package versions
2023-11-21 17:44:54 +05:30
nabarun c2070a80cb Handle null block error in rpc-eth-client (#477)
* Remove block-size-cache util methods as full block with size fetched already

* Handle null block error in rpc-eth-client

* Upgrade package versions
2023-11-17 11:58:43 +05:30
nabarunandprathamesh 3e898914ba Add GQL where filter and nested order by params based on entity fields (#472)
* 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>
2023-11-16 12:38:47 +05:30
nabarun 6ce8d4746d Upgrade package versions before release (#469) 2023-11-14 15:01:52 +05:30
nabarun 7b5fbf3d13 Implement new graph-node host API for BigDecimal exponentiation (#467)
* Implement host API for BigDecimal pow

* Handle FEVM future block error in rpc-eth-client getFullBlocks

* Handle future block error in rpc-eth-client getBlockWithTransactions

* Upgrade package versions
2023-11-13 12:22:23 +05:30
nabarun 66d613767e Upgrade version to 0.2.69 (#466) 2023-11-10 19:36:21 +05:30
prathamesh0 be24166ea7 Update package versions (#463) 2023-11-10 14:48:35 +05:30
prathamesh0 a8e59eb6b9 Support filtering by topics when fetching logs in rpc-eth-client (#441)
* Support filtering by topics when fetching logs

* Include event signatures from all contracts in topics list

* Refactor common code

* Update package versions
2023-10-26 17:25:56 +05:30
prathamesh0andneeraj 72ccaa0381 Upgrade nitro-node dependency (#430)
* 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>
2023-10-17 18:39:08 +05:30
prathamesh0andShreerang Kale e6767c3aca Pass vouchers for RPC requests in header (#429)
* Send voucher in request header instead of url params

* Handle review changes

* Update package versions

---------

Co-authored-by: Shreerang Kale <shreerangkale@gmail.com>
2023-10-12 17:42:19 +05:30
nabarun 2b83f38ab6 Upgrade package version to 0.2.64 (#427)
* Upgrade package version to 0.2.64

* Comment CI workflow to publish docker image

* Update CI workflow names
2023-10-12 11:43:17 +05:30
prathamesh0 caa8da7090 Upgrade nitro-node and add Nitro config option for chain URL (#424)
* 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
2023-10-05 11:28:13 +05:30
prathamesh0andShreerang Kale ae60bbe1ce Setup config for paid RPC methods and funding amounts with upstream ETH server (#423)
* Add config option for paid RPC methods

* Change rpcProviderNitroNode to nitro

* Add config option for funding amounts

* Handle review changes

* Refactor config and add a method to setup provider with payments

* Upgrade package versions

---------

Co-authored-by: Shreerang Kale <shreerangkale@gmail.com>
2023-10-04 16:10:54 +05:30
prathamesh0 e203154ac7 Support payments to upstream ETH server for RPC requests (#418)
* 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
2023-09-28 15:24:45 +05:30
prathamesh0andShreerang Kale 32c78a907c Add a config option to set gossipub direct peers (#414)
* 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>
2023-09-22 13:46:20 +05:30
prathamesh0 48e7785367 Upgrade nitro-node package (#415)
* Upgrade nitro-node package

* Update package versions
2023-09-21 18:32:03 +05:30
nabarunandneeraj 77312a2f95 Add yamux stream multiplexer in peer package (#413)
* Add yamux muxer to peer

* Upgrade version to 0.2.58

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2023-09-15 12:19:51 +05:30
prathamesh0 bd73dae1b1 Implement consensus mechanism using mokka (#412)
* 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
2023-09-14 13:47:31 +05:30