-
Notifications
You must be signed in to change notification settings - Fork 211
/
interfaces.go
41 lines (34 loc) · 1.64 KB
/
interfaces.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package hare
import (
"context"
"github.com/spacemeshos/go-spacemesh/common/types"
"github.com/spacemeshos/go-spacemesh/sql"
)
//go:generate mockgen -package=mocks -destination=./mocks/mocks.go -source=./interfaces.go
type layerPatrol interface {
SetHareInCharge(types.LayerID)
}
// Rolacle is the roles oracle provider.
type Rolacle interface {
Validate(context.Context, types.LayerID, uint32, int, types.NodeID, []byte, uint16) (bool, error)
CalcEligibility(context.Context, types.LayerID, uint32, int, types.NodeID, types.VRFPostIndex, []byte) (uint16, error)
Proof(context.Context, types.VRFPostIndex, types.LayerID, uint32) ([]byte, error)
IsIdentityActiveOnConsensusView(context.Context, types.NodeID, types.LayerID) (bool, error)
}
// stateQuerier provides a query to check if an Ed public key is active on the current consensus view.
// It returns true if the identity is active and false otherwise.
// An error is set iff the identity could not be checked for activeness.
type stateQuerier interface {
IsIdentityActiveOnConsensusView(context.Context, types.NodeID, types.LayerID) (bool, error)
}
type mesh interface {
VRFNonce(types.NodeID, types.EpochID) (types.VRFPostIndex, error)
GetEpochAtx(types.EpochID, types.NodeID) (*types.ActivationTxHeader, error)
GetAtxHeader(types.ATXID) (*types.ActivationTxHeader, error)
Proposals(types.LayerID) ([]*types.Proposal, error)
Ballot(types.BallotID) (*types.Ballot, error)
SetWeakCoin(types.LayerID, bool) error
IsMalicious(types.NodeID) (bool, error)
AddMalfeasanceProof(types.NodeID, *types.MalfeasanceProof, *sql.Tx) error
GetMalfeasanceProof(nodeID types.NodeID) (*types.MalfeasanceProof, error)
}