* Refactor reset CLIs to cli package
* Use reset CLIs from cli package in watchers
* Fix method to canonicalize latest entities
* Use composition with common code for refactored CLIs
* Refactor watch-contract CLI to cli package
* Use watch-contract from cli in eden and erc721 watchers
* Use watch-contract from cli in all watchers
* Pass an object containing clients to refactored CLI
Co-authored-by: nabarun <nabarun@deepstacksoft.com>
* Ignore watch contract jobs in event processing complete handler
* Update job-queue config and handle errors on job completion hook
* Update graph decimal implementation
* Return generic type from method to read watcher config
* Export fill prefetch batch size default value
* Upgrade apollo server to v3 in eden-watcher
* Upgrade apollo server to v3 in other watchers and codegen
* Refactor common server code to util
* Pass express application object in the method to create server
* Remove unnecessary import
* Reset watcher to previous indexed block before start
* Implement changes in other watchers
* Save successfully fetched blocks and events to prefetch cache
* Add unique query for transaction table
* Check db for blocks before fetching from eth-server
* Show all mismatches at a block
Co-authored-by: prathamesh0 <prathamesh.musale0@gmail.com>
* Avoid refetching block while fetching events
* Prefetch a batch of blocks with events while indexing
* Update mock indexer used in graph-node testing
* Process available blocks while prefetching
* Refactor events fetching to a method in util
* Move method to get GQL event query result to util
* Remove support for pushing state to IPFS
* Move job handlers for state creation to util
* Rename state creation related methods and objects
* Update mock indexer used in graph-node testing
* Fetch and merge diffs in batches while creating a state checkpoint
* Fix timing logs while for state checkpoint creation
* Refactor method to get state query result to util
* Accept contracts for state verification in compare CLI config
* Make method to update state status map synchronous
* Changes to use util from uniswap-watcher
* Refactor ResultIPLDBlock to util
* Verify state in compare CLI for uniswap multiple queries
* Prepare watcher-ts for publishing packages
* Fix verify state in compare CLI for multiple entities query
* Fix codegen util imports
* 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
* Add export-watcher CLI generation
* Export snapshot block and add import-watcher CLI gen
* Update codegen docs with export and import commands
* Use different function to get latest checkpoint in export CLI
* Update generated watcher docs with import state instructions
* Push IPLDBlocks to IPFS
* Change ts type for data column to Buffer
* Add checkpoint hook
* Push CLI checkpoint to IPFS
* Fix latest IPLDBlock query to filter out irrelevant blocks
* Add CLI to inspect a CID
* Decode data before exporting
* Encode data in JSON for getState GQL API
* Use go-ipfs and export cbor-encoded buffer
* Remove empty post-block methods from existing watchers
* Call hooks and checkpoint job complete handlers in fill
* Remove subscription to hooks queue from existing watchers
* Generate default derived state for Mapping type variables
* Update IPLDBlock in storage methods instead of using a private class variable
* Default state flag for indexer storage methods
* Helper functions to update state objects
* Add checkpoint flag in Contract table and corresponding changes in existing watchers
* Update codegen docs
* Add examples to generated docs
* Turn default state off by default
* Make state parameter to indexer storage methods default to none
* Add method to get prev. state in indexer
* Subscribe to hooks queue in existing watchers
* Change naming strategy for generated get and save functions
* Push checkpointing job after post-block hook job completed
* Using hooks status to ensure their chronological execution
* Add default indices to IPLDBlock table
* Add kind parameter to getState GQL API
* Add checkpoint CLI
* Add blockHash arg to checkpoint CLI and update codegen docs
* Print out block hash for checkpoint CLI
* Use log from debug for logging
* Filter using contract at start in hierarchical query
* Make kind argument to prepare IPLDBlock required
* Add ipld-blocks entity generation
* Populate ipld-blocks table
* Rename ipld-block entity and update after each event
* Move ipld-hook to hooks.ts
* Change IPLD block structure
* Add cid field in blocks
* Fetch prev. IPLDBlock for a contract
* GQL API to query IPLDBlock by CID
* Save cid in blocks in existing watchers
* Update codegen docs
* GQL API for getting last derived state (#3)
* GQL API for getting last derived state
* Rename query to getState
* Change query names to getState and getStateByCid
* Save BigInt as string
* Move function to prepare IPLDBlock to indexer
* Refactor IPLDBlock hook
* Add genesis hook
* Call post-block hook after a block is marked as complete
* Add IPLDBlock checkpointing
* Use queryRunner instead of a new repo for queries
* Add a query to get block in ipld-eth-client
* Get latest checkpoints for all contracts for checkpointing.
* Call post-block hook in a queue
* Pass server config to Indexer in watch-contract cli
Co-authored-by: nikugogoi <nabarun@deepstacksoft.com>
* Fix fill cli to work with watcher server
* Add createdAt column and insert events in batches
* Implement prefetch to fill block and events in parallel
* Fix getPrevEntity and increase fill prefetch default batch size
* Fix watcher creating mulitple jobs for a block