* 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
* 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
* 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