Currently, a lot of the types used by the eth-rpc are defined in pallet-revive. For example, types such as BlockNumberOrTag, TracingConfig, SubscriptionKind, and many other types are defined in pallet-revive but never used in there in any of the execution paths. They're purely being used by the eth-rpc.
This makes some of the versioning work more difficult as the types are tangled together and the boundaries between them are hard to distinguish.
If a type is only being used by the eth-rpc then it should be defined in the eth-rpc and not in pallet-revive.
Currently, a lot of the types used by the eth-rpc are defined in pallet-revive. For example, types such as
BlockNumberOrTag,TracingConfig,SubscriptionKind, and many other types are defined in pallet-revive but never used in there in any of the execution paths. They're purely being used by the eth-rpc.This makes some of the versioning work more difficult as the types are tangled together and the boundaries between them are hard to distinguish.
If a type is only being used by the eth-rpc then it should be defined in the eth-rpc and not in pallet-revive.