github.com/prysmaticlabs/prysm@v1.4.4/validator/keymanager/remote/mock_keymanager.go (about)

     1  package remote
     2  
     3  import (
     4  	"context"
     5  
     6  	validatorpb "github.com/prysmaticlabs/prysm/proto/validator/accounts/v2"
     7  	"github.com/prysmaticlabs/prysm/shared/bls"
     8  	"github.com/prysmaticlabs/prysm/shared/event"
     9  )
    10  
    11  // MockKeymanager --
    12  type MockKeymanager struct {
    13  	PublicKeys             [][48]byte
    14  	ReloadPublicKeysChan   chan [][48]byte
    15  	ReloadPublicKeysCalled bool
    16  	accountsChangedFeed    *event.Feed
    17  }
    18  
    19  func NewMock() MockKeymanager {
    20  	return MockKeymanager{
    21  		accountsChangedFeed:  new(event.Feed),
    22  		ReloadPublicKeysChan: make(chan [][48]byte, 1),
    23  	}
    24  }
    25  
    26  // FetchValidatingPublicKeys --
    27  func (m *MockKeymanager) FetchValidatingPublicKeys(context.Context) ([][48]byte, error) {
    28  	return m.PublicKeys, nil
    29  }
    30  
    31  // Sign --
    32  func (*MockKeymanager) Sign(context.Context, *validatorpb.SignRequest) (bls.Signature, error) {
    33  	panic("implement me")
    34  }
    35  
    36  // SubscribeAccountChanges --
    37  func (m *MockKeymanager) SubscribeAccountChanges(chan [][48]byte) event.Subscription {
    38  	return m.accountsChangedFeed.Subscribe(m.ReloadPublicKeysChan)
    39  }
    40  
    41  // ReloadPublicKeys --
    42  func (m *MockKeymanager) ReloadPublicKeys(context.Context) ([][48]byte, error) {
    43  	m.ReloadPublicKeysCalled = true
    44  	m.ReloadPublicKeysChan <- m.PublicKeys
    45  	return m.PublicKeys, nil
    46  }