mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2024-12-25 21:07:18 +00:00
f4a6864343
* prepare validator for web usage * wallet exists func in rpc server * only initialize wallet if feed exists and wallet also exists * enabling web via a feed * wallet creation works but needs to be able to recover from mnemonic via api * ensure logic works * Merge branch 'master' into validator-web * fix up tests * test file * wallet rpc tests * add all tests to create wallet * Merge branch 'master' into validator-web * imports * Merge branch 'validator-web' of github.com:prysmaticlabs/prysm into validator-web * Merge refs/heads/master into validator-web * Merge refs/heads/master into validator-web
179 lines
5.1 KiB
Go
179 lines
5.1 KiB
Go
package client
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
ethpb "github.com/prysmaticlabs/ethereumapis/eth/v1alpha1"
|
|
"github.com/prysmaticlabs/prysm/shared/roughtime"
|
|
)
|
|
|
|
var _ = Validator(&FakeValidator{})
|
|
|
|
// FakeValidator for mocking.
|
|
type FakeValidator struct {
|
|
DoneCalled bool
|
|
WaitForWalletInitializationCalled bool
|
|
WaitForActivationCalled bool
|
|
WaitForChainStartCalled bool
|
|
WaitForSyncCalled bool
|
|
WaitForSyncedCalled bool
|
|
SlasherReadyCalled bool
|
|
NextSlotCalled bool
|
|
CanonicalHeadSlotCalled bool
|
|
UpdateDutiesCalled bool
|
|
UpdateProtectionsCalled bool
|
|
RoleAtCalled bool
|
|
AttestToBlockHeadCalled bool
|
|
ProposeBlockCalled bool
|
|
LogValidatorGainsAndLossesCalled bool
|
|
SaveProtectionsCalled bool
|
|
SlotDeadlineCalled bool
|
|
ProposeBlockArg1 uint64
|
|
AttestToBlockHeadArg1 uint64
|
|
RoleAtArg1 uint64
|
|
UpdateDutiesArg1 uint64
|
|
NextSlotRet <-chan uint64
|
|
PublicKey string
|
|
UpdateDutiesRet error
|
|
RolesAtRet []ValidatorRole
|
|
Balances map[[48]byte]uint64
|
|
IndexToPubkeyMap map[uint64][48]byte
|
|
PubkeyToIndexMap map[[48]byte]uint64
|
|
PubkeysToStatusesMap map[[48]byte]ethpb.ValidatorStatus
|
|
}
|
|
|
|
// Done for mocking.
|
|
func (fv *FakeValidator) Done() {
|
|
fv.DoneCalled = true
|
|
}
|
|
|
|
// WaitForWalletInitialization for mocking.
|
|
func (fv *FakeValidator) WaitForWalletInitialization(_ context.Context) error {
|
|
fv.WaitForWalletInitializationCalled = true
|
|
return nil
|
|
}
|
|
|
|
// WaitForChainStart for mocking.
|
|
func (fv *FakeValidator) WaitForChainStart(_ context.Context) error {
|
|
fv.WaitForChainStartCalled = true
|
|
return nil
|
|
}
|
|
|
|
// WaitForActivation for mocking.
|
|
func (fv *FakeValidator) WaitForActivation(_ context.Context) error {
|
|
fv.WaitForActivationCalled = true
|
|
return nil
|
|
}
|
|
|
|
// WaitForSync for mocking.
|
|
func (fv *FakeValidator) WaitForSync(_ context.Context) error {
|
|
fv.WaitForSyncCalled = true
|
|
return nil
|
|
}
|
|
|
|
// WaitForSynced for mocking.
|
|
func (fv *FakeValidator) WaitForSynced(_ context.Context) error {
|
|
fv.WaitForSyncedCalled = true
|
|
return nil
|
|
}
|
|
|
|
// SlasherReady for mocking.
|
|
func (fv *FakeValidator) SlasherReady(_ context.Context) error {
|
|
fv.SlasherReadyCalled = true
|
|
return nil
|
|
}
|
|
|
|
// CanonicalHeadSlot for mocking.
|
|
func (fv *FakeValidator) CanonicalHeadSlot(_ context.Context) (uint64, error) {
|
|
fv.CanonicalHeadSlotCalled = true
|
|
return 0, nil
|
|
}
|
|
|
|
// SlotDeadline for mocking.
|
|
func (fv *FakeValidator) SlotDeadline(_ uint64) time.Time {
|
|
fv.SlotDeadlineCalled = true
|
|
return roughtime.Now()
|
|
}
|
|
|
|
// NextSlot for mocking.
|
|
func (fv *FakeValidator) NextSlot() <-chan uint64 {
|
|
fv.NextSlotCalled = true
|
|
return fv.NextSlotRet
|
|
}
|
|
|
|
// UpdateDuties for mocking.
|
|
func (fv *FakeValidator) UpdateDuties(_ context.Context, slot uint64) error {
|
|
fv.UpdateDutiesCalled = true
|
|
fv.UpdateDutiesArg1 = slot
|
|
return fv.UpdateDutiesRet
|
|
}
|
|
|
|
// UpdateProtections for mocking.
|
|
func (fv *FakeValidator) UpdateProtections(_ context.Context, slot uint64) error {
|
|
fv.UpdateProtectionsCalled = true
|
|
return nil
|
|
}
|
|
|
|
// LogValidatorGainsAndLosses for mocking.
|
|
func (fv *FakeValidator) LogValidatorGainsAndLosses(_ context.Context, slot uint64) error {
|
|
fv.LogValidatorGainsAndLossesCalled = true
|
|
return nil
|
|
}
|
|
|
|
// SaveProtections for mocking.
|
|
func (fv *FakeValidator) SaveProtections(_ context.Context) error {
|
|
fv.SaveProtectionsCalled = true
|
|
return nil
|
|
}
|
|
|
|
// RolesAt for mocking.
|
|
func (fv *FakeValidator) RolesAt(_ context.Context, slot uint64) (map[[48]byte][]ValidatorRole, error) {
|
|
fv.RoleAtCalled = true
|
|
fv.RoleAtArg1 = slot
|
|
vr := make(map[[48]byte][]ValidatorRole)
|
|
vr[[48]byte{1}] = fv.RolesAtRet
|
|
return vr, nil
|
|
}
|
|
|
|
// SubmitAttestation for mocking.
|
|
func (fv *FakeValidator) SubmitAttestation(_ context.Context, slot uint64, pubKey [48]byte) {
|
|
fv.AttestToBlockHeadCalled = true
|
|
fv.AttestToBlockHeadArg1 = slot
|
|
}
|
|
|
|
// ProposeBlock for mocking.
|
|
func (fv *FakeValidator) ProposeBlock(_ context.Context, slot uint64, pubKey [48]byte) {
|
|
fv.ProposeBlockCalled = true
|
|
fv.ProposeBlockArg1 = slot
|
|
}
|
|
|
|
// SubmitAggregateAndProof for mocking.
|
|
func (fv *FakeValidator) SubmitAggregateAndProof(_ context.Context, slot uint64, pubKey [48]byte) {}
|
|
|
|
// LogAttestationsSubmitted for mocking.
|
|
func (fv *FakeValidator) LogAttestationsSubmitted() {}
|
|
|
|
// UpdateDomainDataCaches for mocking.
|
|
func (fv *FakeValidator) UpdateDomainDataCaches(context.Context, uint64) {}
|
|
|
|
// BalancesByPubkeys for mocking.
|
|
func (fv *FakeValidator) BalancesByPubkeys(ctx context.Context) map[[48]byte]uint64 {
|
|
return fv.Balances
|
|
}
|
|
|
|
// IndicesToPubkeys for mocking.
|
|
func (fv *FakeValidator) IndicesToPubkeys(ctx context.Context) map[uint64][48]byte {
|
|
return fv.IndexToPubkeyMap
|
|
}
|
|
|
|
// PubkeysToIndices for mocking.
|
|
func (fv *FakeValidator) PubkeysToIndices(ctx context.Context) map[[48]byte]uint64 {
|
|
return fv.PubkeyToIndexMap
|
|
}
|
|
|
|
// PubkeysToStatuses for mocking.
|
|
func (fv *FakeValidator) PubkeysToStatuses(ctx context.Context) map[[48]byte]ethpb.ValidatorStatus {
|
|
return fv.PubkeysToStatusesMap
|
|
}
|