diff --git a/txpool/fetch_test.go b/txpool/fetch_test.go index c10eaf21c..82cb9aafc 100644 --- a/txpool/fetch_test.go +++ b/txpool/fetch_test.go @@ -76,7 +76,7 @@ func TestSendTxPropagate(t *testing.T) { defer cancelFn() t.Run("few remote txs", func(t *testing.T) { m := NewMockSentry(ctx) - send := NewSend(ctx, []sentry.SentryClient{direct.NewSentryClientDirect(direct.ETH66, m)}, nil, logger) + send := NewSend(ctx, []SentryClient{direct.NewSentryClientDirect(direct.ETH66, m)}, nil, logger) send.BroadcastRemotePooledTxs(toHashes([32]byte{1}, [32]byte{42})) calls := m.SendMessageToRandomPeersCalls() @@ -87,7 +87,7 @@ func TestSendTxPropagate(t *testing.T) { }) t.Run("much remote txs", func(t *testing.T) { m := NewMockSentry(ctx) - send := NewSend(ctx, []sentry.SentryClient{direct.NewSentryClientDirect(direct.ETH66, m)}, nil, logger) + send := NewSend(ctx, []SentryClient{direct.NewSentryClientDirect(direct.ETH66, m)}, nil, logger) list := make(Hashes, p2pTxPacketLimit*3) for i := 0; i < len(list); i += 32 { b := []byte(fmt.Sprintf("%x", i)) @@ -107,7 +107,7 @@ func TestSendTxPropagate(t *testing.T) { m.SendMessageToAllFunc = func(contextMoqParam context.Context, outboundMessageData *sentry.OutboundMessageData) (*sentry.SentPeers, error) { return &sentry.SentPeers{Peers: make([]*types.H512, 5)}, nil } - send := NewSend(ctx, []sentry.SentryClient{direct.NewSentryClientDirect(direct.ETH66, m)}, nil, logger) + send := NewSend(ctx, []SentryClient{direct.NewSentryClientDirect(direct.ETH66, m)}, nil, logger) send.BroadcastLocalPooledTxs(toHashes([32]byte{1}, [32]byte{42})) calls := m.SendMessageToAllCalls() diff --git a/txpool/send.go b/txpool/send.go index 9e8234f3a..41a0a61ef 100644 --- a/txpool/send.go +++ b/txpool/send.go @@ -27,18 +27,23 @@ import ( "google.golang.org/grpc" ) +type SentryClient interface { + sentry.SentryClient + Protocol() uint +} + // Send - does send concrete P2P messages to Sentry. Same as Fetch but for outbound traffic // does not initiate any messages by self type Send struct { ctx context.Context - sentryClients []sentry.SentryClient // sentry clients that will be used for accessing the network + sentryClients []SentryClient // sentry clients that will be used for accessing the network pool Pool logger *zap.SugaredLogger wg *sync.WaitGroup } -func NewSend(ctx context.Context, sentryClients []sentry.SentryClient, pool Pool, logger *zap.SugaredLogger) *Send { +func NewSend(ctx context.Context, sentryClients []SentryClient, pool Pool, logger *zap.SugaredLogger) *Send { return &Send{ ctx: ctx, pool: pool, @@ -91,9 +96,7 @@ func (f *Send) BroadcastLocalPooledTxs(txs Hashes) (sentToPeers int) { //if !sentryClient.Ready() { // continue //} - //protocol:=sentryClient.Protocol() - protocol := direct.ETH66 - switch protocol { + switch sentryClient.Protocol() { case direct.ETH65: if req65 == nil { req65 = &sentry.OutboundMessageData{ @@ -155,9 +158,7 @@ func (f *Send) BroadcastRemotePooledTxs(txs Hashes) { // continue //} - //protocol:=sentryClient.Protocol() - protocol := direct.ETH66 - switch protocol { + switch sentryClient.Protocol() { case direct.ETH65: if req65 == nil { req65 = &sentry.SendMessageToRandomPeersRequest{ @@ -220,9 +221,7 @@ func (f *Send) PropagatePooledTxsToPeersList(peers []*types.H512, txs []byte) { //} for _, peer := range peers { - //protocol:=sentryClient.Protocol() - protocol := direct.ETH66 - switch protocol { + switch sentryClient.Protocol() { case direct.ETH65: req65 := &sentry.SendMessageByIdRequest{ PeerId: peer,