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 }