Currently alloy-consensus contains Any types for Receipt and Header that are then bubbled up through alloy-rpc-types-eth to alloy-network. These types are not eth types and it is somewhat messy to put them alongside the eth types. We have a standard pattern for adding networks to alloy, that AnyNetwork is currently not following, which is to create consensus-* and rpc-types-* crates
Approximate steps to take:
create alloy-consensus-any, depending on alloy-consensus
create alloy-rpc-types-any, depending on alloy-rpc-types-eth
move AnyReceipt and AnyHeader from alloy-consensus to alloy-consensus-any
move AnyTxEnvelope from alloy-network to alloy-consensus-any
create type aliases for AnyRpcHeader and AnyRpcBlock in alloy-rpc-types-any
change alloy-network to depend on alloy-consensus-any and alloy-rpc-types-any
Alternate approach would be to create only a single crate that contains both consensus and rpc types
Component
consensus, eips, genesis, network, json-rpc
What version of Alloy are you on?
No response
Operating System
None
Describe the bug
per discussion here: https://github.com/alloy-rs/alloy/pull/1460#discussion_r1824406025
Currently
alloy-consensus
containsAny
types forReceipt
andHeader
that are then bubbled up throughalloy-rpc-types-eth
toalloy-network
. These types are noteth
types and it is somewhat messy to put them alongside the eth types. We have a standard pattern for adding networks to alloy, thatAnyNetwork
is currently not following, which is to createconsensus-*
andrpc-types-*
cratesApproximate steps to take:
alloy-consensus-any
, depending onalloy-consensus
alloy-rpc-types-any
, depending onalloy-rpc-types-eth
AnyReceipt
andAnyHeader
fromalloy-consensus
toalloy-consensus-any
AnyTxEnvelope
fromalloy-network
toalloy-consensus-any
AnyRpcHeader
andAnyRpcBlock
inalloy-rpc-types-any
alloy-network
to depend onalloy-consensus-any
andalloy-rpc-types-any
Alternate approach would be to create only a single crate that contains both consensus and rpc types