mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2025-01-08 10:41:19 +00:00
db687bf56d
* Startinb builder service and interface * Get header from builder * Add get builder block * Single validator registration * Add mev-builder http cli flag * Add method to verify registration signature * Add builder registration * Add submit validator registration * suporting yaml * fix yaml unmarshaling * rolling back some changes from unmarshal from file * adding yaml support * adding register validator support * added new validator requests into client/validator * fixing gofmt * updating flags and including gas limit, unit tests are still broken * fixing bazel * more name changes and fixing unit tests * fixing unit tests and renaming functions * fixing unit tests and renaming to match changes * adding new test for yaml * fixing bazel linter * reverting change on validator service proto * adding clarifying logs * renaming function name to be more descriptive * renaming variable * rolling back some files that will be added from the builder-1 branch * reverting more * more reverting * need placeholder * need placeholder * fixing unit test * fixing unit test * fixing unit test * fixing unit test * fixing more unit tests * fixing more unit tests * rolling back mockgen * fixing bazel * rolling back changes * removing duplicate function * fixing client mock * removing unused type * fixing missing brace * fixing bad field name * fixing bazel * updating naming * fixing bazel * fixing unit test * fixing bazel linting * unhandled err * fixing gofmt * simplifying name based on feedback * using corrected function * moving default fee recipient and gaslimit to beaconconfig * missing a few constant changes * fixing bazel * fixing more missed default renames * fixing more constants in tests * fixing bazel * adding update proposer setting per epoch * refactoring to reduce complexity * adding unit test for proposer settings * Update validator/client/validator.go Co-authored-by: terencechain <terence@prysmaticlabs.com> * trying out renaming based on feedback * adjusting based on review comments * making tests more appropriate * fixing bazel * updating flag description based on review feedback * addressing review feedback * switching to pushing at start of epoch for more time * adding new unit test and properly throwing error * switching keys in error to count * fixing log variable * resolving conflict * resolving more conflicts * adjusting error message Co-authored-by: terence tsao <terence@prysmaticlabs.com> Co-authored-by: Kasey Kirkham <kasey@users.noreply.github.com>
83 lines
2.6 KiB
Go
83 lines
2.6 KiB
Go
package mock
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
|
|
"github.com/prysmaticlabs/prysm/async/event"
|
|
"github.com/prysmaticlabs/prysm/beacon-chain/core/signing"
|
|
fieldparams "github.com/prysmaticlabs/prysm/config/fieldparams"
|
|
"github.com/prysmaticlabs/prysm/crypto/bls"
|
|
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
|
ethpbservice "github.com/prysmaticlabs/prysm/proto/eth/service"
|
|
validatorpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/validator-client"
|
|
"github.com/prysmaticlabs/prysm/testing/util"
|
|
"github.com/prysmaticlabs/prysm/time/slots"
|
|
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
|
)
|
|
|
|
// MockKeymanager --
|
|
type MockKeymanager struct {
|
|
PublicKeys [][fieldparams.BLSPubkeyLength]byte
|
|
ReloadPublicKeysChan chan [][fieldparams.BLSPubkeyLength]byte
|
|
ReloadPublicKeysCalled bool
|
|
accountsChangedFeed *event.Feed
|
|
}
|
|
|
|
func NewMock() MockKeymanager {
|
|
return MockKeymanager{
|
|
accountsChangedFeed: new(event.Feed),
|
|
ReloadPublicKeysChan: make(chan [][fieldparams.BLSPubkeyLength]byte, 1),
|
|
}
|
|
}
|
|
|
|
// FetchValidatingPublicKeys --
|
|
func (m *MockKeymanager) FetchValidatingPublicKeys(context.Context) ([][fieldparams.BLSPubkeyLength]byte, error) {
|
|
return m.PublicKeys, nil
|
|
}
|
|
|
|
// Sign --
|
|
func (*MockKeymanager) Sign(_ context.Context, s *validatorpb.SignRequest) (bls.Signature, error) {
|
|
key, err := bls.RandKey()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
st, _ := util.DeterministicGenesisState(nil, 1)
|
|
e := slots.ToEpoch(st.Slot())
|
|
byteValue, err := signing.ComputeDomainAndSign(st, e, s.SigningSlot, bytesutil.ToBytes4(s.SignatureDomain), key)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return bls.SignatureFromBytes(byteValue)
|
|
}
|
|
|
|
// SubscribeAccountChanges --
|
|
func (m *MockKeymanager) SubscribeAccountChanges(chan [][fieldparams.BLSPubkeyLength]byte) event.Subscription {
|
|
return m.accountsChangedFeed.Subscribe(m.ReloadPublicKeysChan)
|
|
}
|
|
|
|
// ReloadPublicKeys --
|
|
func (m *MockKeymanager) ReloadPublicKeys(context.Context) ([][fieldparams.BLSPubkeyLength]byte, error) {
|
|
m.ReloadPublicKeysCalled = true
|
|
m.ReloadPublicKeysChan <- m.PublicKeys
|
|
return m.PublicKeys, nil
|
|
}
|
|
|
|
// ExtractKeystores --
|
|
func (*MockKeymanager) ExtractKeystores(
|
|
ctx context.Context, publicKeys []bls.PublicKey, password string,
|
|
) ([]*keymanager.Keystore, error) {
|
|
return nil, errors.New("extracting keys not supported for a remote keymanager")
|
|
}
|
|
|
|
// ListKeymanagerAccounts --
|
|
func (*MockKeymanager) ListKeymanagerAccounts(
|
|
context.Context, keymanager.ListKeymanagerAccountConfig) error {
|
|
return nil
|
|
}
|
|
|
|
func (*MockKeymanager) DeleteKeystores(context.Context, [][]byte,
|
|
) ([]*ethpbservice.DeletedKeystoreStatus, error) {
|
|
return nil, nil
|
|
}
|