* Implement graceful shutdown in job-runner
* Improve reset CLI delete query
* Exit job-runner immediately in development
* Implement changes in other watchers
* Update fill prefetch CLI to accept env variables
* Clean up assets before building util package
* Accomodate change in other watchers and codegen
* Add logs for debugging failing test in CI
* Implement query for multiple entities in eden-watcher
* Implement nested relation queries
* Implement GQL query params first, skip, orderBy, orderDirection
* Add blockNumber index to subgraph entities
* Add logs for timing eth-calls and storage calls
* Add prometheus metrics to monitor GQL queries
* Fix default limit and order of 1-N related field in GQL entitiy query
* Add timer logs for block processing
* Run transpiled js in all watchers
Co-authored-by: prathamesh0 <prathamesh.musale0@gmail.com>
* Compare IPLD state entity without derived fields
* Apply default limit to array relation fields in IPLD state entity
* Mark block as complete after processing of block handler
* Avoid re processing of block handler
* Use LIMIT 1 in the query to get latest IPLD block
* Replace eth_calls in eden-watcher with getStorageValue
* Add checkpoint verification to export state CLI
* Fix get diff blocks query when creating checkpoint
* Fix subgraph staker sort and remove entities sequentially in reset CLI
Co-authored-by: prathamesh0 <prathamesh.musale0@gmail.com>
* Implement storage call in subgraph mapping code
* Add test for mapping type variable storage call
* Use vulcanize graph-ts
* Revert to graph-ts version 0.22.1
* Make sumStaked variable local in eden network mapping
* Implement compare CLI to fetch and query by ids
* Set filterLogs to true for eden-watcher
* Use varchar for bigint array type in eden-watcher
* Store subgraph entities by id in IPLD state
* Store bigint vales as string in IPLD state
* Update eden watcher hook to store single Block entity in IPLD checkpoint
* Fix entity enum type property
* Fix parsing big numbers in event params
* Fix event bigint params parsing in all watchers
* Set default limit to query result and process block after events
* Add prometheus metrics endpoint in watcher
* Add event, sync status and DB size metrics
* Fix subgraph watchers DB entities directory path
* Make watcher metrics optional using config
* Update codegen with index-block CLI and remove graph-node
* Add filter logs by contract flag
* Skip generating GQL API for immutable variables
* Add config for maxEventsBlockRange
* Add new flags in existing watchers
* Remove using graph-node from mobymask-watcher
* Parse batched transactions for MobyMask events
* Update to use same ethers package version
* Add CLI for processing block out of order
* Fix job-runner for already processed blocks out of order
* Implement data source templates
* Remove optional param from wasm instantiate
* Add all types for solidity to typescript mapping
* Set contract address in context for data source templates
* Implement block handlers for data source templates
* Test case for wasm out of memory error
* Restart wasm instance after N blocks
* Handle out of memory error and re instantiate WASM
* Remove old instance from map before reinstantiating WASM
* Avoid fetching contracts while creating a checkpoint
* Use enum for state kind and cache ipld status
* Avoid fetching block twice while finalizing a staged diff IPLDBlock
* Create checkpoints at fixed block numbers and refactor checkpointing code
* Avoid calling block handler until start block is reached
* Use delete while finalizing staged diff IPLDBlocks
* Add a check to ensure hooks job is created only once
* Avoid check for initial state while creating a checkpoint
* Process hooks for the first block in the watchers
* Store initial state from a hook in an IPLDBlock for eden-watcher
* Extract watcher method to prepare IPLDBlocks in util
* Extract common IPLDBlocks related code in util
* Move IPFSClient to util
* Use constants for state kind
* Use typeof to distinguish between BigInt and BigDecimal in store get API
* Use entity column type map to create entity in store get API
* Add entity column type map in eden-watcher
* Handle BigNumber event params in watchers
* Customize decimal according to limits of IEEE-754 decimal128
* Add definition for custom scalar BigDecimal
* Handle subgraph schema field with derivedFrom directive
* Handle derivedFrom directive in eden-watcher
* Fix 1 to N relation error by removing limit from query
* Order by id for derivedFrom relations to match graph-node
* Refactor example subgraph schema entities
* Fix watcher queries to return correct relation field values
* Fix hierarchical query for getting two entities at same block
* Create checkpoint using CLI after the hooks have been processed
* Push checkpoints created while exporting state to IPFS
* Clear subgraph entities on reset state
* Remove unnecessary staged IPLD blocks created while importing state
* Add CLI to compare entities from two GQL endpoints
* Print out result diffs in compare-entity CLI
* Get the colorized result diff in compare-entity CLI
* Read query dir from config file or as an arg
* Make config file arg required
* Make queries in Example schema similar to that in graph-node
* Get non-colorized output on choosing raw-json diff option
* Make queries in eden-watcher similar to that in graph-node
* Add implementation for one to one relation
* Implement one to many relation in gql queries
* Make changes for gql relation queries in eden-watcher
* Implement subgraph gql relation queries with joins
* Handle relation entities in subgraph
* Modify eden-watcher entities to handle subgraph schema data types
* Modify schema gql to match eden subgraph gql shape
* Handle array type fields in subgraph schema
* Fix store get api for array type fields in subgraph entities
* Handle array type in eden-watcher and format await used in params
* Fix packages build
* Add support for boolean type in subgraph schema
* Add BigDecimal fromString and toString implementation
* Add implementation for subgraph Bytes type
* Implement enum type for subgraph schema
* Add implementation for subgraph schema BigDecimal type
* JSON stringify and parse entity data for auto-diff
* Add a test case to eden test to call the block handler
* Add a block handler in example subgraph and call it in a watcher
* Use an array map to call all the block handlers for a contract
* Await on all the promises returned by block handlers map
* Implement store get api without blockHash and blockNumber
* Pass database instance to GraphWatcher
* Implement store set without block data
* Store blockHash and blockNumber in database entity table
* Implement getting entity in subgraph from store.get
* Add block data present in postgraphile
* Pass db and context to instantiate method in tests
* GQL API in graph-test-watcher to test store.set
* Remove contract address from subgraph file
* Fix block in dummy event data
* Pass just blockHash to get an entity from the database
* Review changes and add TODOs
Co-authored-by: prathamesh <prathamesh.musale0@gmail.com>
* Invoke subgraph handler in watcher event processing
* Fix error when invoking subgraph handler
* Parse events using event signature specified in subgraph yaml
* Use contract abi to parse event params
* Invoke event handler based on event signature
* Fill event with block and transaction data
* Comment missing fields in block and transaction data
* Invoke handlers based on watcher-ts events
* Read subgraph yaml and listen to events from watcher-ts
* Create GraphWatcher class to use in generated example contract watcher
* Call graph-node event handler from generated watcher