prysm-pulse/validator/db/iface/interface.go

25 lines
967 B
Go
Raw Normal View History

// Package iface exists to prevent circular dependencies when implementing the database interface.
package iface
import (
"context"
"io"
slashpb "github.com/prysmaticlabs/prysm/proto/slashing"
)
// ValidatorDB defines the necessary methods for a Prysm validator DB.
type ValidatorDB interface {
io.Closer
DatabasePath() string
ClearDB() error
// Proposer protection related methods.
ProposalHistory(ctx context.Context, publicKey []byte) (*slashpb.ProposalHistory, error)
SaveProposalHistory(ctx context.Context, publicKey []byte, history *slashpb.ProposalHistory) error
DeleteProposalHistory(ctx context.Context, publicKey []byte) error
// Attester protection related methods.
AttestationHistory(ctx context.Context, publicKey []byte) (*slashpb.AttestationHistory, error)
SaveAttestationHistory(ctx context.Context, publicKey []byte, history *slashpb.AttestationHistory) error
DeleteAttestationHistory(ctx context.Context, publicKey []byte) error
}