Documentation ¶
Overview ¶
DONTCOVER
Index ¶
- Constants
- Variables
- func ConvertDuplicateVoteEvidence(dupVote abci.Evidence) exported.Evidence
- func RegisterCodec(cdc *codec.Codec)
- func RegisterInterfaces(registry types.InterfaceRegistry)
- type Equivocation
- func (*Equivocation) Descriptor() ([]byte, []int)
- func (this *Equivocation) Equal(that interface{}) bool
- func (e Equivocation) GetConsensusAddress() sdk.ConsAddress
- func (e Equivocation) GetHeight() int64
- func (e Equivocation) GetTime() time.Time
- func (e Equivocation) GetTotalPower() int64
- func (e Equivocation) GetValidatorPower() int64
- func (e *Equivocation) Hash() tmbytes.HexBytes
- func (m *Equivocation) Marshal() (dAtA []byte, err error)
- func (m *Equivocation) MarshalTo(dAtA []byte) (int, error)
- func (m *Equivocation) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*Equivocation) ProtoMessage()
- func (m *Equivocation) Reset()
- func (e *Equivocation) Route() string
- func (m *Equivocation) Size() (n int)
- func (e *Equivocation) String() string
- func (e *Equivocation) Type() string
- func (m *Equivocation) Unmarshal(dAtA []byte) error
- func (e *Equivocation) ValidateBasic() error
- func (m *Equivocation) XXX_DiscardUnknown()
- func (m *Equivocation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Equivocation) XXX_Merge(src proto.Message)
- func (m *Equivocation) XXX_Size() int
- func (m *Equivocation) XXX_Unmarshal(b []byte) error
- type GenesisState
- type Handler
- type MsgSubmitEvidence
- func (*MsgSubmitEvidence) Descriptor() ([]byte, []int)
- func (this *MsgSubmitEvidence) Equal(that interface{}) bool
- func (m MsgSubmitEvidence) GetEvidence() exported.Evidence
- func (m MsgSubmitEvidence) GetSignBytes() []byte
- func (m MsgSubmitEvidence) GetSigners() []sdk.AccAddress
- func (m MsgSubmitEvidence) GetSubmitter() sdk.AccAddress
- func (m *MsgSubmitEvidence) Marshal() (dAtA []byte, err error)
- func (m *MsgSubmitEvidence) MarshalTo(dAtA []byte) (int, error)
- func (m *MsgSubmitEvidence) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*MsgSubmitEvidence) ProtoMessage()
- func (m *MsgSubmitEvidence) Reset()
- func (m MsgSubmitEvidence) Route() string
- func (m *MsgSubmitEvidence) Size() (n int)
- func (m *MsgSubmitEvidence) String() string
- func (m MsgSubmitEvidence) Type() string
- func (m *MsgSubmitEvidence) Unmarshal(dAtA []byte) error
- func (m MsgSubmitEvidence) UnpackInterfaces(ctx types.AnyUnpacker) error
- func (m MsgSubmitEvidence) ValidateBasic() error
- func (m *MsgSubmitEvidence) XXX_DiscardUnknown()
- func (m *MsgSubmitEvidence) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *MsgSubmitEvidence) XXX_Merge(src proto.Message)
- func (m *MsgSubmitEvidence) XXX_Size() int
- func (m *MsgSubmitEvidence) XXX_Unmarshal(b []byte) error
- type QueryAllEvidenceParams
- type QueryEvidenceParams
- type Router
- type SlashingKeeper
- type StakingKeeper
Constants ¶
const ( EventTypeSubmitEvidence = "submit_evidence" AttributeValueCategory = "evidence" AttributeKeyEvidenceHash = "evidence_hash" )
evidence module events
const ( RouteEquivocation = "equivocation" TypeEquivocation = "equivocation" )
Evidence type constants
const ( // ModuleName defines the module name ModuleName = "evidence" // StoreKey defines the primary module store key StoreKey = ModuleName // RouterKey defines the module's message routing key RouterKey = ModuleName // QuerierRoute defines the module's query routing key QuerierRoute = ModuleName )
const ( QueryEvidence = "evidence" QueryAllEvidence = "all_evidence" )
Querier routes for the evidence module
const (
TypeMsgSubmitEvidence = "submit_evidence"
)
Message types for the evidence module
Variables ¶
var ( ErrNoEvidenceHandlerExists = sdkerrors.Register(ModuleName, 2, "unregistered handler for evidence type") ErrInvalidEvidence = sdkerrors.Register(ModuleName, 3, "invalid evidence") ErrNoEvidenceExists = sdkerrors.Register(ModuleName, 4, "evidence does not exist") ErrEvidenceExists = sdkerrors.Register(ModuleName, 5, "evidence already exists") )
x/evidence module sentinel errors
var ( ErrInvalidLengthTypes = fmt.Errorf("proto: negative length found during unmarshaling") ErrIntOverflowTypes = fmt.Errorf("proto: integer overflow") ErrUnexpectedEndOfGroupTypes = fmt.Errorf("proto: unexpected end of group") )
var DoubleSignJailEndTime = time.Unix(253402300799, 0)
The Double Sign Jail period ends at Max Time supported by Amino (Dec 31, 9999 - 23:59:59 GMT).
var (
KeyPrefixEvidence = []byte{0x00}
)
KVStore key prefixes
var ( // ModuleCdc references the global x/evidence module codec. Note, the codec should // ONLY be used in certain instances of tests and for JSON encoding as Amino is // still used for that purpose. // // The actual codec used for serialization should be provided to x/evidence and // defined at the application level. ModuleCdc = codec.NewHybridCodec(amino, types.NewInterfaceRegistry()) )
Functions ¶
func ConvertDuplicateVoteEvidence ¶
ConvertDuplicateVoteEvidence converts a Tendermint concrete Evidence type to SDK Evidence using Equivocation as the concrete type.
func RegisterCodec ¶
RegisterCodec registers all the necessary types and interfaces for the evidence module.
func RegisterInterfaces ¶
func RegisterInterfaces(registry types.InterfaceRegistry)
Types ¶
type Equivocation ¶
type Equivocation struct { Height int64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` Time time.Time `protobuf:"bytes,2,opt,name=time,proto3,stdtime" json:"time"` Power int64 `protobuf:"varint,3,opt,name=power,proto3" json:"power,omitempty"` ConsensusAddress github_com_cosmos_cosmos_sdk_types.ConsAddress `` /* 190-byte string literal not displayed */ }
Equivocation implements the Evidence interface and defines evidence of double signing misbehavior.
func (*Equivocation) Descriptor ¶
func (*Equivocation) Descriptor() ([]byte, []int)
func (*Equivocation) Equal ¶
func (this *Equivocation) Equal(that interface{}) bool
func (Equivocation) GetConsensusAddress ¶
func (e Equivocation) GetConsensusAddress() sdk.ConsAddress
GetConsensusAddress returns the validator's consensus address at time of the Equivocation infraction.
func (Equivocation) GetHeight ¶
func (e Equivocation) GetHeight() int64
GetHeight returns the height at time of the Equivocation infraction.
func (Equivocation) GetTime ¶
func (e Equivocation) GetTime() time.Time
GetTime returns the time at time of the Equivocation infraction.
func (Equivocation) GetTotalPower ¶
func (e Equivocation) GetTotalPower() int64
GetTotalPower is a no-op for the Equivocation type.
func (Equivocation) GetValidatorPower ¶
func (e Equivocation) GetValidatorPower() int64
GetValidatorPower returns the validator's power at time of the Equivocation infraction.
func (*Equivocation) Hash ¶
func (e *Equivocation) Hash() tmbytes.HexBytes
Hash returns the hash of an Equivocation object.
func (*Equivocation) Marshal ¶
func (m *Equivocation) Marshal() (dAtA []byte, err error)
func (*Equivocation) MarshalToSizedBuffer ¶
func (m *Equivocation) MarshalToSizedBuffer(dAtA []byte) (int, error)
func (*Equivocation) ProtoMessage ¶
func (*Equivocation) ProtoMessage()
func (*Equivocation) Reset ¶
func (m *Equivocation) Reset()
func (*Equivocation) Route ¶
func (e *Equivocation) Route() string
Route returns the Evidence Handler route for an Equivocation type.
func (*Equivocation) Size ¶
func (m *Equivocation) Size() (n int)
func (*Equivocation) String ¶
func (e *Equivocation) String() string
func (*Equivocation) Type ¶
func (e *Equivocation) Type() string
Type returns the Evidence Handler type for an Equivocation type.
func (*Equivocation) Unmarshal ¶
func (m *Equivocation) Unmarshal(dAtA []byte) error
func (*Equivocation) ValidateBasic ¶
func (e *Equivocation) ValidateBasic() error
ValidateBasic performs basic stateless validation checks on an Equivocation object.
func (*Equivocation) XXX_DiscardUnknown ¶
func (m *Equivocation) XXX_DiscardUnknown()
func (*Equivocation) XXX_Marshal ¶
func (m *Equivocation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*Equivocation) XXX_Merge ¶
func (m *Equivocation) XXX_Merge(src proto.Message)
func (*Equivocation) XXX_Size ¶
func (m *Equivocation) XXX_Size() int
func (*Equivocation) XXX_Unmarshal ¶
func (m *Equivocation) XXX_Unmarshal(b []byte) error
type GenesisState ¶
GenesisState defines the evidence module's genesis state.
func DefaultGenesisState ¶
func DefaultGenesisState() GenesisState
DefaultGenesisState returns the evidence module's default genesis state.
func NewGenesisState ¶
func NewGenesisState(e []exported.Evidence) GenesisState
func (GenesisState) Validate ¶
func (gs GenesisState) Validate() error
Validate performs basic gensis state validation returning an error upon any failure.
type Handler ¶
Handler defines an agnostic Evidence handler. The handler is responsible for executing all corresponding business logic necessary for verifying the evidence as valid. In addition, the Handler may execute any necessary slashing and potential jailing.
type MsgSubmitEvidence ¶
type MsgSubmitEvidence struct { Submitter github_com_cosmos_cosmos_sdk_types.AccAddress `` /* 126-byte string literal not displayed */ Evidence *types.Any `protobuf:"bytes,2,opt,name=evidence,proto3" json:"evidence,omitempty"` }
MsgSubmitEvidence defines an sdk.Msg type that supports submitting arbitrary Evidence.
func NewMsgSubmitEvidence ¶
func NewMsgSubmitEvidence(s sdk.AccAddress, evi exported.Evidence) (MsgSubmitEvidence, error)
NewMsgSubmitEvidence returns a new MsgSubmitEvidence with a signer/submitter.
func (*MsgSubmitEvidence) Descriptor ¶
func (*MsgSubmitEvidence) Descriptor() ([]byte, []int)
func (*MsgSubmitEvidence) Equal ¶
func (this *MsgSubmitEvidence) Equal(that interface{}) bool
func (MsgSubmitEvidence) GetEvidence ¶
func (m MsgSubmitEvidence) GetEvidence() exported.Evidence
func (MsgSubmitEvidence) GetSignBytes ¶
func (m MsgSubmitEvidence) GetSignBytes() []byte
GetSignBytes returns the raw bytes a signer is expected to sign when submitting a MsgSubmitEvidence message.
func (MsgSubmitEvidence) GetSigners ¶
func (m MsgSubmitEvidence) GetSigners() []sdk.AccAddress
GetSigners returns the single expected signer for a MsgSubmitEvidence.
func (MsgSubmitEvidence) GetSubmitter ¶
func (m MsgSubmitEvidence) GetSubmitter() sdk.AccAddress
func (*MsgSubmitEvidence) Marshal ¶
func (m *MsgSubmitEvidence) Marshal() (dAtA []byte, err error)
func (*MsgSubmitEvidence) MarshalTo ¶
func (m *MsgSubmitEvidence) MarshalTo(dAtA []byte) (int, error)
func (*MsgSubmitEvidence) MarshalToSizedBuffer ¶
func (m *MsgSubmitEvidence) MarshalToSizedBuffer(dAtA []byte) (int, error)
func (*MsgSubmitEvidence) ProtoMessage ¶
func (*MsgSubmitEvidence) ProtoMessage()
func (*MsgSubmitEvidence) Reset ¶
func (m *MsgSubmitEvidence) Reset()
func (MsgSubmitEvidence) Route ¶
func (m MsgSubmitEvidence) Route() string
Route returns the MsgSubmitEvidence's route.
func (*MsgSubmitEvidence) Size ¶
func (m *MsgSubmitEvidence) Size() (n int)
func (*MsgSubmitEvidence) String ¶
func (m *MsgSubmitEvidence) String() string
func (MsgSubmitEvidence) Type ¶
func (m MsgSubmitEvidence) Type() string
Type returns the MsgSubmitEvidence's type.
func (*MsgSubmitEvidence) Unmarshal ¶
func (m *MsgSubmitEvidence) Unmarshal(dAtA []byte) error
func (MsgSubmitEvidence) UnpackInterfaces ¶
func (m MsgSubmitEvidence) UnpackInterfaces(ctx types.AnyUnpacker) error
func (MsgSubmitEvidence) ValidateBasic ¶
func (m MsgSubmitEvidence) ValidateBasic() error
ValidateBasic performs basic (non-state-dependant) validation on a MsgSubmitEvidence.
func (*MsgSubmitEvidence) XXX_DiscardUnknown ¶
func (m *MsgSubmitEvidence) XXX_DiscardUnknown()
func (*MsgSubmitEvidence) XXX_Marshal ¶
func (m *MsgSubmitEvidence) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*MsgSubmitEvidence) XXX_Merge ¶
func (m *MsgSubmitEvidence) XXX_Merge(src proto.Message)
func (*MsgSubmitEvidence) XXX_Size ¶
func (m *MsgSubmitEvidence) XXX_Size() int
func (*MsgSubmitEvidence) XXX_Unmarshal ¶
func (m *MsgSubmitEvidence) XXX_Unmarshal(b []byte) error
type QueryAllEvidenceParams ¶
type QueryAllEvidenceParams struct { Page int `json:"page" yaml:"page"` Limit int `json:"limit" yaml:"limit"` }
QueryAllEvidenceParams defines the parameters necessary for querying for all Evidence.
func NewQueryAllEvidenceParams ¶
func NewQueryAllEvidenceParams(page, limit int) QueryAllEvidenceParams
type QueryEvidenceParams ¶
type QueryEvidenceParams struct {
EvidenceHash string `json:"evidence_hash" yaml:"evidence_hash"`
}
QueryEvidenceParams defines the parameters necessary for querying Evidence.
func NewQueryEvidenceParams ¶
func NewQueryEvidenceParams(hash string) QueryEvidenceParams
type Router ¶
type Router interface { AddRoute(r string, h Handler) Router HasRoute(r string) bool GetRoute(path string) Handler Seal() Sealed() bool }
Router defines a contract for which any Evidence handling module must implement in order to route Evidence to registered Handlers.
type SlashingKeeper ¶
type SlashingKeeper interface { GetPubkey(sdk.Context, crypto.Address) (crypto.PubKey, error) IsTombstoned(sdk.Context, sdk.ConsAddress) bool HasValidatorSigningInfo(sdk.Context, sdk.ConsAddress) bool Tombstone(sdk.Context, sdk.ConsAddress) Slash(sdk.Context, sdk.ConsAddress, sdk.Dec, int64, int64) SlashFractionDoubleSign(sdk.Context) sdk.Dec Jail(sdk.Context, sdk.ConsAddress) JailUntil(sdk.Context, sdk.ConsAddress, time.Time) }
SlashingKeeper defines the slashing module interface contract needed by the evidence module.
type StakingKeeper ¶
type StakingKeeper interface {
ValidatorByConsAddr(sdk.Context, sdk.ConsAddress) stakingexported.ValidatorI
}
StakingKeeper defines the staking module interface contract needed by the evidence module.