refactor: Simplify node client stack (remove ConsensusSourceStorage
)
#554
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR removes the
ConsensusSourceStorage
interface and its only implementationConsensusClient
. Both of these were mostly thin wrappers aroundConsensusApiLite
(with which this PR replaces them) and have been slated for removal.ConsensusClient
had methods that fell into two categories:ConsensusApiLite
already provides). These make for a lot of boilerplate, as every RPC needed to be added in at least 4 layers:ConsensusApiLite
, its implemenation(s),ConsensusSourceStorage
, andConsensusClient
. I simply rerouted these calls directly toConsensusApiLite
.AllData()
and methods that it called in turn (StakingData
,GovernanceData
, etc). These methods rearrange data in small but convenient ways, e.g. they introduce new structs that encompass the height, epoch, and events-grouped-by-type, which makes analyzer code more streamlined and readable. It's a little verbose but not too bad. I simply moved these from thestorage
module into the consensus analyer, and made the types private (since they are inteded strictly for analyzer's internal consumption).