feat(rpc): Decouple v07
from v06
types and methods
#2408
Merged
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 is part of #2220
Summary
This PR removes the existing dependencies the current RPC versions (v07 and beyond) have on the legacy v06 RPC version, effectively decoupling the two.
Key changes include:
Migration of types: All relevant types, methods and tests from v06 have been migrated to common modules, allowing for reusability on newer RPC versions.
DTO Removal: A number of data transfer objects (DTOs) from the v06 version have been removed and replaced with the actual types they were wrapping. This simplifies the code by eliminating unnecessary abstraction. The
SerializeForVersion
is implemented in theInput
andOutput
DTO types for every method.V06 Module Disabled: The v06 module is now fully disabled and will no longer be built as part of the project. This sets the stage for its future removal. The
V06
variant from the multipleRpcVersion
enums has been removed, as well as version-specific routing tests.This PR helps streamline the codebase and ensures future versions of the RPC system are independent of the outdated v06 implementation.
Next steps
V06 Module Deletion: The v06 module will be deleted in an upcoming PR to keep this one focused and avoid making it too large.
Move
SerializeForVersion
into the super module so it can be implemented oncommon
types #2181DTO cleanup, review of leftover
serde
derives anddeserialize_serde
calls