We’re quickly entering a multichain world, and the average wallet is connecting to several evm-compatible blockchains at once.
However, with EIP-1559, we’re also creating a wider gap between the behaviors of different EVM chains.
It would be nice if Ethereum wallets maintained “plug and play” interoperability with a trusted node if possible, but since a node may require (or at least support) signatures of different formats, it’s important that nodes provide wallets a method to learn about their varying requirements.
There are lots of ways this could be done, so I’m opening this thread to gather opinions on how, before we present & promote an approach across the client teams.
I’ll note initially that the current pattern is to have one method per variable parameter. We see this with eth_chainId
, for example. Maybe that’s fine! I’m actually not completely against the one-feature-one-method approach. Maybe the right answer is to add a eth_1559SupportBlock
method that returns the activation block number for that feature (null for unplanned).
Alternatively, we could provide “all the info a signer should need” under a single method. Maybe eth_getSignerInfo
could return relevant state:
{
chainId: 1,
1559SupportBlock: 155_BLOCK
}
Or maybe some of you will feel that if we’re going to batch data on the RPC, maybe we should batch it all, and have some super-metadata method, like eth_getNodeInfo
.
I don’t have a strong opinion at all, but hoping with a period of open discussion we’ll get any ideas for improvements integrated into the eventual proposal.
Pinging @MicahZoltu because I know he has some opinions on this and I want to get the record started.