types

package
v0.0.0-...-8551cdf Latest Latest
Warning

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

Go to latest
Published: Jul 9, 2020 License: Apache-2.0 Imports: 24 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 = "kuevidence"

	// 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 (
	DefaultParamspace            = ModuleName
	DefaultMaxEvidenceAge        = 60 * 2 * time.Second
	DefaultDoblesignJailDuration = 60 * 60 * 24 * 14 * time.Second
)

Default parameter values

View Source
const (
	QueryParameters  = "parameters"
	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 (
	KeyMaxEvidenceAge         = []byte("MaxEvidenceAge")
	KeyDoubleSignJailDuration = []byte("DoubleSignJailDuration")

	// The Double Sign Jail period ends at Max Time supported by Amino
	// (Dec 31, 9999 - 23:59:59 GMT).
	DoubleSignJailEndTime = time.Unix(253402300799, 0)
)

Parameter store keys

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 (

	// 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.
	Evidence_Cdc = NewEveidenceCodec(amino)
)
View Source
var (
	KeyPrefixEvidence = []byte{0x00}
)

KVStore key prefixes

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 ParamKeyTable

func ParamKeyTable() external.ParamsKeyTable

ParamKeyTable returns the parameter key table.

func RegisterCodec

func RegisterCodec(cdc *codec.Codec)

RegisterCodec registers all the necessary types and interfaces for the evidence module.

Types

type Codec

type Codec interface {
	codec.Marshaler

	MarshalEvidence(exported.Evidence) ([]byte, error)
	UnmarshalEvidence([]byte) (exported.Evidence, error)
	MarshalEvidenceJSON(exported.Evidence) ([]byte, error)
	UnmarshalEvidenceJSON([]byte) (exported.Evidence, error)
}

Codec defines the interface required to serialize evidence

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) 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 Evidence

type Evidence struct {
	// sum defines a set of all acceptable concrete Evidence implementations.
	//
	// Types that are valid to be assigned to Sum:
	//	*Evidence_Equivocation
	Sum isEvidence_Sum `protobuf_oneof:"sum"`
}

Evidence defines the application-level allowed Evidence to be submitted via a MsgSubmitEvidence message.

func (*Evidence) Descriptor

func (*Evidence) Descriptor() ([]byte, []int)

func (*Evidence) Equal

func (this *Evidence) Equal(that interface{}) bool

func (*Evidence) GetEquivocation

func (m *Evidence) GetEquivocation() *Equivocation

func (*Evidence) GetSum

func (m *Evidence) GetSum() isEvidence_Sum

func (*Evidence) Marshal

func (m *Evidence) Marshal() (dAtA []byte, err error)

func (*Evidence) MarshalTo

func (m *Evidence) MarshalTo(dAtA []byte) (int, error)

func (*Evidence) MarshalToSizedBuffer

func (m *Evidence) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Evidence) ProtoMessage

func (*Evidence) ProtoMessage()

func (*Evidence) Reset

func (m *Evidence) Reset()

func (*Evidence) SetEvidence

func (*Evidence) Size

func (m *Evidence) Size() (n int)

func (*Evidence) String

func (m *Evidence) String() string

func (*Evidence) Unmarshal

func (m *Evidence) Unmarshal(dAtA []byte) error

func (*Evidence) XXX_DiscardUnknown

func (m *Evidence) XXX_DiscardUnknown()

func (*Evidence) XXX_Marshal

func (m *Evidence) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Evidence) XXX_Merge

func (m *Evidence) XXX_Merge(src proto.Message)

func (*Evidence) XXX_OneofWrappers

func (*Evidence) XXX_OneofWrappers() []interface{}

XXX_OneofWrappers is for the internal use of the proto package.

func (*Evidence) XXX_Size

func (m *Evidence) XXX_Size() int

func (*Evidence) XXX_Unmarshal

func (m *Evidence) XXX_Unmarshal(b []byte) error

type EvidenceCdc

type EvidenceCdc struct {
	codec.Marshaler
	// contains filtered or unexported fields
}

func NewEveidenceCodec

func NewEveidenceCodec(amino *codec.Codec) *EvidenceCdc

func (*EvidenceCdc) MarshalEvidence

func (c *EvidenceCdc) MarshalEvidence(evidenceI exported.Evidence) ([]byte, error)

MarshalEvidence marshals an Evidence interface. If the given type implements the Marshaler interface, it is treated as a Proto-defined message and serialized that way. Otherwise, it falls back on the internal Amino codec.

func (*EvidenceCdc) MarshalEvidenceJSON

func (c *EvidenceCdc) MarshalEvidenceJSON(evidence exported.Evidence) ([]byte, error)

MarshalEvidenceJSON JSON encodes an evidence object implementing the Evidence interface.

func (*EvidenceCdc) UnmarshalEvidence

func (c *EvidenceCdc) UnmarshalEvidence(bz []byte) (exported.Evidence, error)

UnmarshalEvidence returns an Evidence interface from raw encoded evidence bytes of a Proto-based Evidence type. An error is returned upon decoding failure.

func (*EvidenceCdc) UnmarshalEvidenceJSON

func (c *EvidenceCdc) UnmarshalEvidenceJSON(bz []byte) (exported.Evidence, error)

UnmarshalEvidenceJSON returns an Evidence from JSON encoded bytes

type Evidence_Equivocation

type Evidence_Equivocation struct {
	Equivocation *Equivocation `protobuf:"bytes,1,opt,name=equivocation,proto3,oneof" json:"equivocation,omitempty"`
}

func (*Evidence_Equivocation) Equal

func (this *Evidence_Equivocation) Equal(that interface{}) bool

func (*Evidence_Equivocation) MarshalTo

func (m *Evidence_Equivocation) MarshalTo(dAtA []byte) (int, error)

func (*Evidence_Equivocation) MarshalToSizedBuffer

func (m *Evidence_Equivocation) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Evidence_Equivocation) Size

func (m *Evidence_Equivocation) Size() (n int)

type GenesisState

type GenesisState struct {
	Params   Params              `json:"params" yaml:"params"`
	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(p Params, 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 {
	Evidence              *Evidence `protobuf:"bytes,1,opt,name=evidence,proto3" json:"evidence,omitempty"`
	MsgSubmitEvidenceBase `protobuf:"bytes,2,opt,name=base,proto3,embedded=base" json:"base"`
}

MsgSubmitEvidence defines the application-level message type for handling evidence submission.

func (*MsgSubmitEvidence) Descriptor

func (*MsgSubmitEvidence) Descriptor() ([]byte, []int)

func (*MsgSubmitEvidence) Equal

func (this *MsgSubmitEvidence) Equal(that interface{}) bool

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) Size

func (m *MsgSubmitEvidence) Size() (n int)

func (*MsgSubmitEvidence) String

func (m *MsgSubmitEvidence) String() string

func (*MsgSubmitEvidence) Unmarshal

func (m *MsgSubmitEvidence) Unmarshal(dAtA []byte) error

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 MsgSubmitEvidenceBase

type MsgSubmitEvidenceBase struct {
	Submitter types.AccountID `protobuf:"bytes,1,opt,name=submitter,proto3" json:"submitter" yaml:"submitter"`
}

MsgSubmitEvidenceBase defines an sdk.Msg type that supports submitting arbitrary Evidence.

Note, this message type provides the basis for which a true MsgSubmitEvidence can be constructed. Since the evidence submitted in the message can be arbitrary, assuming it fulfills the Evidence interface, it must be defined at the application-level and extend MsgSubmitEvidenceBase.

func NewMsgSubmitEvidenceBase

func NewMsgSubmitEvidenceBase(s types.AccountID) MsgSubmitEvidenceBase

NewMsgSubmitEvidenceBase returns a new MsgSubmitEvidenceBase with a signer/submitter. Note, the MsgSubmitEvidenceBase is not to be used as an actual message, but rather to be extended with Evidence.

func (*MsgSubmitEvidenceBase) Descriptor

func (*MsgSubmitEvidenceBase) Descriptor() ([]byte, []int)

func (*MsgSubmitEvidenceBase) Equal

func (this *MsgSubmitEvidenceBase) Equal(that interface{}) bool

func (MsgSubmitEvidenceBase) GetSignBytes

func (m MsgSubmitEvidenceBase) GetSignBytes() []byte

GetSignBytes returns the raw bytes a signer is expected to sign when submitting a MsgSubmitEvidenceBase message.

func (MsgSubmitEvidenceBase) GetSigners

func (m MsgSubmitEvidenceBase) GetSigners() []sdk.AccAddress

GetSigners returns the single expected signer for a MsgSubmitEvidenceBase.

func (*MsgSubmitEvidenceBase) GetSubmitter

func (m *MsgSubmitEvidenceBase) GetSubmitter() types.AccountID

func (*MsgSubmitEvidenceBase) Marshal

func (m *MsgSubmitEvidenceBase) Marshal() (dAtA []byte, err error)

func (*MsgSubmitEvidenceBase) MarshalTo

func (m *MsgSubmitEvidenceBase) MarshalTo(dAtA []byte) (int, error)

func (*MsgSubmitEvidenceBase) MarshalToSizedBuffer

func (m *MsgSubmitEvidenceBase) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*MsgSubmitEvidenceBase) ProtoMessage

func (*MsgSubmitEvidenceBase) ProtoMessage()

func (*MsgSubmitEvidenceBase) Reset

func (m *MsgSubmitEvidenceBase) Reset()

func (MsgSubmitEvidenceBase) Route

func (m MsgSubmitEvidenceBase) Route() string

Route returns the MsgSubmitEvidenceBase's route.

func (*MsgSubmitEvidenceBase) Size

func (m *MsgSubmitEvidenceBase) Size() (n int)

func (*MsgSubmitEvidenceBase) String

func (m *MsgSubmitEvidenceBase) String() string

func (MsgSubmitEvidenceBase) Type

func (m MsgSubmitEvidenceBase) Type() string

Type returns the MsgSubmitEvidenceBase's type.

func (*MsgSubmitEvidenceBase) Unmarshal

func (m *MsgSubmitEvidenceBase) Unmarshal(dAtA []byte) error

func (MsgSubmitEvidenceBase) ValidateBasic

func (m MsgSubmitEvidenceBase) ValidateBasic() error

ValidateBasic performs basic (non-state-dependant) validation on a MsgSubmitEvidenceBase.

func (*MsgSubmitEvidenceBase) XXX_DiscardUnknown

func (m *MsgSubmitEvidenceBase) XXX_DiscardUnknown()

func (*MsgSubmitEvidenceBase) XXX_Marshal

func (m *MsgSubmitEvidenceBase) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*MsgSubmitEvidenceBase) XXX_Merge

func (m *MsgSubmitEvidenceBase) XXX_Merge(src proto.Message)

func (*MsgSubmitEvidenceBase) XXX_Size

func (m *MsgSubmitEvidenceBase) XXX_Size() int

func (*MsgSubmitEvidenceBase) XXX_Unmarshal

func (m *MsgSubmitEvidenceBase) XXX_Unmarshal(b []byte) error

type Params

type Params struct {
	MaxEvidenceAge         time.Duration `` /* 131-byte string literal not displayed */
	DoubleSignJailDuration time.Duration `` /* 166-byte string literal not displayed */
}

Params defines the total set of parameters for the evidence module

func DefaultParams

func DefaultParams() Params

DefaultParams returns the default parameters for the evidence module.

func (*Params) Descriptor

func (*Params) Descriptor() ([]byte, []int)

func (*Params) Equal

func (this *Params) Equal(that interface{}) bool

func (*Params) GetDoubleSignJailDuration

func (m *Params) GetDoubleSignJailDuration() time.Duration

func (*Params) GetMaxEvidenceAge

func (m *Params) GetMaxEvidenceAge() time.Duration

func (*Params) Marshal

func (m *Params) Marshal() (dAtA []byte, err error)

func (*Params) MarshalTo

func (m *Params) MarshalTo(dAtA []byte) (int, error)

func (*Params) MarshalToSizedBuffer

func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Params) ParamSetPairs

func (p *Params) ParamSetPairs() external.ParamSetPairs

ParamSetPairs returns the parameter set pairs.

func (*Params) ProtoMessage

func (*Params) ProtoMessage()

func (*Params) Reset

func (m *Params) Reset()

func (*Params) Size

func (m *Params) Size() (n int)

func (Params) String

func (p Params) String() string

func (*Params) Unmarshal

func (m *Params) Unmarshal(dAtA []byte) error

func (*Params) XXX_DiscardUnknown

func (m *Params) XXX_DiscardUnknown()

func (*Params) XXX_Marshal

func (m *Params) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Params) XXX_Merge

func (m *Params) XXX_Merge(src proto.Message)

func (*Params) XXX_Size

func (m *Params) XXX_Size() int

func (*Params) XXX_Unmarshal

func (m *Params) 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) external.StakingValidatorl
}

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