mirror of
https://github.com/status-im/status-console-client.git
synced 2025-02-24 00:28:18 +00:00
Add mailservers to transport object
This commit is contained in:
parent
59b95d5420
commit
f881f1d81f
@ -10,8 +10,8 @@ import (
|
||||
|
||||
"github.com/pkg/errors"
|
||||
|
||||
"github.com/ethereum/go-ethereum/p2p"
|
||||
gethnode "github.com/ethereum/go-ethereum/node"
|
||||
"github.com/ethereum/go-ethereum/p2p"
|
||||
|
||||
"github.com/status-im/status-go/services/shhext"
|
||||
whisper "github.com/status-im/whisper/whisperv6"
|
||||
@ -19,6 +19,11 @@ import (
|
||||
"github.com/status-im/status-console-client/protocol/subscription"
|
||||
)
|
||||
|
||||
var (
|
||||
// ErrNoMailservers returned if there is no configured mailservers that can be used.
|
||||
ErrNoMailservers = errors.New("no configured mailservers")
|
||||
)
|
||||
|
||||
type WhisperServiceKeysManager struct {
|
||||
shh *whisper.Whisper
|
||||
|
||||
@ -64,10 +69,10 @@ func (m *WhisperServiceKeysManager) GetRawSymKey(id string) ([]byte, error) {
|
||||
type WhisperServiceTransport struct {
|
||||
node StatusNode // TODO: replace with an interface
|
||||
shh *whisper.Whisper
|
||||
shhextAPI *shhext.PublicAPI
|
||||
shhextAPI *shhext.PublicAPI
|
||||
keysManager *WhisperServiceKeysManager
|
||||
|
||||
mailservers []string
|
||||
mailservers []string
|
||||
selectedMailServerEnode string
|
||||
}
|
||||
|
||||
@ -87,9 +92,10 @@ func NewWhisperServiceTransport(
|
||||
privateKey *ecdsa.PrivateKey,
|
||||
) *WhisperServiceTransport {
|
||||
return &WhisperServiceTransport{
|
||||
node: node,
|
||||
shh: shh,
|
||||
shhextAPI: shhext.NewPublicAPI(shhextService),
|
||||
node: node,
|
||||
shh: shh,
|
||||
mailservers: mailservers,
|
||||
shhextAPI: shhext.NewPublicAPI(shhextService),
|
||||
keysManager: &WhisperServiceKeysManager{
|
||||
shh: shh,
|
||||
privateKey: privateKey,
|
||||
@ -184,6 +190,9 @@ func (a *WhisperServiceTransport) selectAndAddMailServer() (string, error) {
|
||||
if a.selectedMailServerEnode != "" {
|
||||
return a.selectedMailServerEnode, nil
|
||||
}
|
||||
if len(a.mailservers) == 0 {
|
||||
return "", ErrNoMailservers
|
||||
}
|
||||
|
||||
enode := randomItem(a.mailservers)
|
||||
errCh := waitForPeerAsync(
|
||||
|
14
protocol/transport/whisper_service_test.go
Normal file
14
protocol/transport/whisper_service_test.go
Normal file
@ -0,0 +1,14 @@
|
||||
package transport
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestSelectAndAddNoMailservers(t *testing.T) {
|
||||
svc := &WhisperServiceTransport{}
|
||||
rst, err := svc.selectAndAddMailServer()
|
||||
require.Empty(t, rst)
|
||||
require.EqualError(t, ErrNoMailservers, err.Error())
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user