types

package
Version: v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 14, 2020 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Overview

DONTCOVER

Index

Constants

View Source
const (
	EventTypeSubmitEvidence = "submit_evidence"

	AttributeValueCategory   = "evidence"
	AttributeKeyEvidenceHash = "evidence_hash"
)

evidence module events

View Source
const (
	RouteEquivocation = "equivocation"
	TypeEquivocation  = "equivocation"
)

Evidence type constants

View Source
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
)
View Source
const (
	QueryEvidence    = "evidence"
	QueryAllEvidence = "all_evidence"
)

Querier routes for the evidence module

View Source
const (
	TypeMsgSubmitEvidence = "submit_evidence"
)

Message types for the evidence module

Variables

View Source
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

View Source
var (
	ErrInvalidLengthTypes        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowTypes          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupTypes = fmt.Errorf("proto: unexpected end of group")
)
View Source
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).

View Source
var (
	KeyPrefixEvidence = []byte{0x00}
)

KVStore key prefixes

View Source
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

func ConvertDuplicateVoteEvidence(dupVote abci.Evidence) exported.Evidence

ConvertDuplicateVoteEvidence converts a Tendermint concrete Evidence type to SDK Evidence using Equivocation as the concrete type.

func RegisterCodec

func RegisterCodec(cdc *codec.Codec)

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 `` /* 192-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) MarshalTo

func (m *Equivocation) MarshalTo(dAtA []byte) (int, 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

type GenesisState struct {
	Evidence []exported.Evidence `json:"evidence" yaml:"evidence"`
}

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

type Handler func(sdk.Context, exported.Evidence) error

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 `` /* 128-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.

func NewRouter

func NewRouter() Router

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL