prysm-pulse/validator/db/iface/interface.go
Ivan Martinez a4db560e55 Prepare validator DB for attester protection implementation (#4584)
* Add flag for attester protection
* Merge branch 'master' of https://github.com/prysmaticlabs/Prysm into protecc-attester-db
* Merge branch 'master' of https://github.com/prysmaticlabs/Prysm into protecc-attester-db
* Remove flags
* Add attestation history DB functions to validator client
* Fix comments
* Update interface to new funcs
* Merge branch 'master' of https://github.com/prysmaticlabs/Prysm into protecc-attester-db
* Fix test
* Merge branch 'master' into protecc-attester-db
2020-01-19 22:05:48 +00:00

25 lines
967 B
Go

// 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
}