1. Improve logging to include API method, user ID, etc in the output. We do this by intercepting the request details in the "middleware" and adding them to the request context, as well as adding a wrapper to logrus that simplifies including the fields in the output.
2. Breakdown API metrics by method. This will allow us to differentiate call counts and durations by API method (eg, eth_call vs eth_getStorageAt).
* Implement getSlice API for state nodes
* Implement getSlice API for storage nodes
* Fix the helper function to create a slice of required paths
* Fix query to get state leaf key for given storage root
* Add a test to get state slice for root path
* Add checks in queries to get canonical data
* Add tests to get state slice
* Add a todo for using an iterator
* Avoid filtering out removed nodes
* Add tests to get storage slice
* Remove logs
* Populate extra contract leaves field in the response
* Update tests
* Avoid EOAs in additional data in response
* Use iterator based approach for getSlice
* Skip undesired nodes from stem and head iterators
* Update storage slice tests
* Fix meta data updates
* Use state trie to get stem nodes directly using paths
* Bugfix - Continue processing other trie nodes on encountering a leaf
* Remove unnecessary TODO
* update geth statediff to version v1.9.25-statediff-0.0.14
run integration tests in github actions
* fix goose install issue
* fix unit test bug.
Added sorting by tx index for transactions and receipts queries