Closed pedropombeiro closed 4 years ago
@cammellos / @adambabik status-console-client seems quite out of date (master
is 2 months old). There is an upgrade-status-protocol-go
but that one also points to a non-existing status-protocol-go commit.
OK, I've updated it to the latest status-protocol-go and pushed it to a branch
Yeah, NewMessenger
is called from anything that wants to use status-protocol-go. Generally, any public interface changes in the main package of status-protocol-go can potentially break something at this point.
Currently, there are areas in the code that leak Geth types, making it impossible to have status-protocol-go work with e.g. Nimbus.
Issues
NewMessenger
is receiving a Geth type*whisper.Whisper
;whisper.BytesToTopic
needs to be encapsulated;WhisperServiceTransport.RetrieveAllMessages
is returning a Geth type (*whisper.ReceivedMessage
), tying the consuming classMessenger
to Geth;messageProcessor.Process
receives*whisper.ReceivedMessage
.Implementation
To fix that we need to create interfaces/wrappers for:
whisper.Whisper
whisper.PublicWhisperAPI
whisper.Filter
Filter
wrapper object instanceswhisper.NewMessage
whisper.ReceivedMessage
whisper.MessageStore
whisper.BytesToTopic
envelopesMonitorConfig
Next steps
cc @adambabik @cammellos