* 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
* Parse events for multiple contracts in the generated code
* Use contract wise artifacts in the generated indexer methods
* Update codegen docs to use config file to generate a watcher
* Add watcher generation config to eden-watcher
* Handle BigNumber event params in watchers
* Customize decimal according to limits of IEEE-754 decimal128
* Add definition for custom scalar BigDecimal
* Add subgraph schema types to the generated schema
* Add queries for subgraph entities
* Add entity generation for subgraph entities
* Call subgraph event handler in indexer
* Refactor subgraph schema and entity generation
* Add resolvers generation for subgraph entities
* Get event signature in the event
* Add NonNullType check for field type in entity generation
* Auto-diff based on store set
* Use contract address from data source in loader
* Change subgraph-schema arg to subgraph-path arg
* 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
* Remove checkpoint option for state param. to indexer methods
* Change state param. to indexer methods to boolean
* Use hierarchical query to get the last checkpoint of a contract
* Filter out blocks before prev checkpoint for a new checkpoint
* Add checkpointing job on completion of chain pruning
* Update codegen docs with reset commands
* Create initial checkpoint in the checkpoint queue
* Handle initial checkpoint along with other checkpoints
* Create initial checkpoint job in indexer
* Create IPLDBlocks only in the pruned region
* Create staged diff IPLDBlock for default state
* 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>
* Improvement TODOs
* Get parent and current block in single query
* Remove block progress queries and events query
* Reduce queries in fetching batch events by using query builder
* Implement changes in codegen package
* Avoid database query by passing event directly to job-queue
* Avoid block progress query by returning from update query
* Process batch of events for a block in a single job
* Fix smoke test for subscribed events and use teamSize for job queue
* Implement pull based watcher for uni-watcher
* Fix same block processed multiple times
* Implement wait time for fetching block from config
* Use blockProgress event to fetch and process next block
* Rename utils index to misc
* Implement clean jobs CLI in watchers
* Pull common code cleanJobs to util
* Implement commands for reset job-queue and state
* Reset command for job-queues and watcher state
* Reset sync status on reset state
* Fix using cli from built js
* Implement skipCheck to reset syncStatus table and skip complete handler on fail
* Check for block isComplete on reset state
* Set default value for force param to update syncStatus to false
* Reset tables in erc20 watcher
* Push job in fill after previos block is complete
* Add GQL client generation
* Add subscription, events, eventsInRange in client gen
* Add mutation in client gen and return event tx info from indexer
* Capitalize class names for storage-mode entities