* 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
* Implement rpc-eth-client with getStorageAt method
* Add test for comparing RPC and GQL eth-client getStorageAt method
* Add getBlockWithTransactions and getBlocks method
* Implement getFullBlocks with RLP encoded data
* Implement getFullTransaction method with raw tx
* Implement getBlockByHash and getLogs methods
* Add flag and interface to switch between RPC and GQL eth clients
* Fix getBlocks to return empty array when block not present
* Return empty array in getBlocks for missing block and use blockNumber in getLogs
* Fix getRawTransaction method for zero signature.v value
* Remove duplicate util from rpc-eth-client
* 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>
* 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
* 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>
* 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
* Remove fields no longer present in schema.
* Refactor code to work with log_cids change in eth-server.
* Refactor process event to save events from logs.
* Use constants for erc20 event names.
* Implement watch blocks in erc20-watcher similar to uni-watcher.
* Moved common methods to util.
* Implement eventsInRange query in erc20-watcher.
* Filter unknown event in database query.
* Change dependencies version to be same in all packages.
Co-authored-by: nabarun <nabarun@deepstacksoft.com>
* Refactor common code in uni-watcher and uni-info-watcher.
* Implement client.ts in uni-info-watcher for queries and use in smoke-test.
* Disable cache in graphql client.
Co-authored-by: nabarun <nabarun@deepstacksoft.com>
* Implement transaction from to set entity origin field.
* Add all transaction fields specified in schema and add delay in uni-info block processing.
Co-authored-by: nabarun <nabarun@deepstacksoft.com>
* Implement eth_call for ERC20 totalSupply.
* Use eth_call for erc20-watcher.
* Implement fallback for ERC20 symbol method call.
* Implement fallback for ERC20 name and totalSupply.
* implement fallback for erc20 decimals method.
* Lint fixes.
Co-authored-by: nabarun <nabarun@deepstacksoft.com>
* Watch all blocks and fetch events for each block.
* Implement getPrevVersionEntity in database.
* Implement getPrevVersionEntity for PoolCreated event.
* Implement getPrevEntityVersion for Pool events.
* Implement getPrevEntityVersion for NFPM events.
Co-authored-by: nabarun <nabarun@deepstacksoft.com>
* Extra info in events for downstream processing.
* Changes in uni-info-watcher after change in uni-watcher event schema.
Co-authored-by: nabarun <nabarun@deepstacksoft.com>
* eth-client API to get transaction in block.
* Job queue to process tracing requests.
* Request traces from job queue runner.
* Max trace completion lag time config for downstream events.
* Tests for mapping with value type keys.
* Add test for mapping with string type keys.
* Add test for mapping with dynamically-sized byte array as keys.
* Add tests for nested mapping.
Co-authored-by: nikugogoi <95nikass@gmail.com>
* Update mock server and tests for additional ERC20 state vars.
* Refactor eth-client getStorageAt, impl totalSupply.
* Impl ERC20 API for name, symbol.