Layr-Labs / eigensdk-go

Go SDK for building AVSs on Eigenlayer
https://www.eigenlayer.xyz/
Other
63 stars 42 forks source link

ChainID method in HttpBackend and WsBackend interfaces #359

Open pablodeymo opened 1 week ago

pablodeymo commented 1 week ago

For the point of view of the user of the SDK, it's better to have the ChainID method in HttpBackend and WsBackend interfaces.

The idea behind instrumentedClient is to wrap a Eth Client, so the user can use both clients the same way. However, there are some methods missing from the common interfaces.

It would be good to review if there are other methods missing on that interfaces, for future PRs.

What Changed?

Reviewer Checklist

samlaf commented 1 week ago

Hey @pablodeymo , if chainid is not used anywhere, why add it? I prefer keeping interfaces to only what is needed, not bloating them just in case.

pablodeymo commented 6 days ago

Hey @pablodeymo , if chainid is not used anywhere, why add it? I prefer keeping interfaces to only what is needed, not bloating them just in case.

This method is used in the Incredible Squaring example (here). Since its removal, it's difficult to have optionally-enabled metrics since restricting the type to the xxBackend interface would also restrict the functionality unnecessarily.

samlaf commented 6 days ago

@pablodeymo I see. I guess it’s fine to add, but this makes me think we haven’t found the right abstractions yes :/ Perhaps inc-sq should define the interface it needs in this case. Since we return structs in the constructors everything should work.