* 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
* 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
* 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
* 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
* 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 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
* 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
* 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
* 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>
* 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>
* Track amount paid on payment channels and charge as per query cost
* Add payments manager config
* Fix received payment checks
* Separate out payment not received and amount insufficient errors
* Serve a query for free if its rate is not configured
* Load open payment channels from the stored state
* Take list of free queries from config
* Take mutation rates from config
* Rename query rates config fields
* Take cache settings and request timeout from config
* Upgrade ts-nitro packages
* Upgrade package versions
* Add client address field to payments manager
* Use a single payment header in payments plugin
* Upgrade ts-nitro packages
* Rename method to authenticateVoucherForSender
* Upgrade package versions
---------
Co-authored-by: Nabarun <nabarun@deepstacksoft.com>
* Wait for receiving voucher on GQL query
* Add timeout while authenticating voucher and remove listener channel
* Clear timeout after payment received
* Rename variable to paymentListener
* Upgrade package versions
* Add rpcSupportsBlockHashParam flag in config
* Add a custom payments plugin in server process
* Fix voucher channel read in voucher subscription
* Use voucher hash and signature for payment authentication
* Use a LRU hash map for storing received vouchers
* Avoid hoisting level types to resolve build errors
* Upgrade ts-nitro packages
* Add payments related logs
* Upgrade package versions
* Always allow latestBlock query
* Upgrade ts-nitro packages
* Block connections from blacklisted multiaddrs in relay node
* Block connections from blacklisted multiaddrs in peer nodes
* Block dials for blacklisted multiaddrs
* Update package version
* Generate indexer and entities with DB caching for multiple return types
* Generate database file code for multiple return types
* Remove returnType from client codegen as not required
* Changes for fixing lint warnings
* Handle mapping type values in storage mode
* Generate entities for array return type queries
* Refactor visitor for DB caching of array return types
* Fix saving bigint array type in DB
* Fix ValueTransformers to check for undefined value
* Create Result types if needed
* Update codegen to include array return type queries in schema
* Update codegen to include array return type queries in resolvers
* Update codegen to include array return type queries in indexers
* Codegen skip db caching methods for queries returning unhandled types
* Codegen handle bigint array in indexer
* Update codegen to handle basic array types
* Remove redundant code and refactor
* Codegen map Solidity types directly to GraphQL types
* Codegen get TS from GQL types
* Codegen handle ethers BigNumber array in indexer template
* Fix GQL type returned in client queries
* Codegen unused method isElementaryType should not be exported
* Codegen update README with solc version in config
* Codegen update README with continue-on-error flag
* Codegen add continue-on-error flag for storage mode
* Codegen generate gitignore and license for watchers
* Codegen refactor gitignore and license generation utils
---------
Co-authored-by: Dhruv Srivastava <dhruvdhs.ds@gmail.com>
* Add --continue-on-error flag to codegen for skipping unhandled data types
* Use solc version defined in config
* Fix codegen log for unhandled array types
* Log solc compilation errors
---------
Co-authored-by: Dhruv Srivastava <dhruvdhs.ds@gmail.com>
* Initial implementation of class and discoving other peers
* Implement peer connection and sending messages between peers
* Add react app and use peer package for broadcasting
* Maintain stream for each remote peer
* Refactor code in peer package
* Add serve package for react-app
* Add readme for running react app
* Add peer package readme
* Add logs for events with details
* Add a chat CLI using peer package (#280)
* Add a flag to instantiate Peer for nodejs
* Add a basic chat CLI using peer
* Add a signal server arg to chat CLI
* Add instructions for chat CLI
* Fix typescript and ESM issues after adding peer package (#282)
* Fix build issues in util package
* Update eslint TS plugins
* Scope react app package name
* Convert cli package back to CJS and dynamically import ESM
* Upgrade ts-node version
* Fix tests
* Setup a relay node and pubsub based discovery (#284)
* Add a script to setup a relay node
* Use pubsub based peer discovery
* Add peer multiaddr to connection log
* Catch relay node dial errors
* Increase discovery interval and dial all mutiaddr
* Add UI to display self peer ID and multiaddrs
* Add UI for displaying live remote connections
* Send js objects in peer broadcast messages
* Add react-peer package for using peer in react app
* Reduce disconnect frequency between peers (#287)
* Restrict number of max concurrent dials per peer
* Increase hop relay timeout to 1 day
* Self review changes
* Review changes
* Increase pubsub discovery interval and add steps to create a peer id (#290)
* Increase pubsub discovery interval
* Disable autodial to avoid peer dials without protocol on a reconnect
* Add steps to create a peer id and use for relay node
* Add back dependency to run signalling server
* Avoid bootstrapping and dial to relay node directly
Co-authored-by: prathamesh0 <42446521+prathamesh0@users.noreply.github.com>
Co-authored-by: prathamesh0 <prathamesh.musale0@gmail.com>