keeper

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: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewQuerier

func NewQuerier(k Keeper) sdk.Querier

Types

type Keeper

type Keeper struct {
	// contains filtered or unexported fields
}

Keeper defines the evidence module's keeper. The keeper is responsible for managing persistence, state transitions and query handling for the evidence module.

func NewKeeper

func NewKeeper(
	cdc codec.Marshaler, storeKey sdk.StoreKey, stakingKeeper types.StakingKeeper,
	slashingKeeper types.SlashingKeeper,
) *Keeper

func (Keeper) GetAllEvidence

func (k Keeper) GetAllEvidence(ctx sdk.Context) (evidence []exported.Evidence)

GetAllEvidence returns all stored Evidence objects.

func (Keeper) GetEvidence

func (k Keeper) GetEvidence(ctx sdk.Context, hash tmbytes.HexBytes) (exported.Evidence, bool)

GetEvidence retrieves Evidence by hash if it exists. If no Evidence exists for the given hash, (nil, false) is returned.

func (Keeper) GetEvidenceHandler

func (k Keeper) GetEvidenceHandler(evidenceRoute string) (types.Handler, error)

GetEvidenceHandler returns a registered Handler for a given Evidence type. If no handler exists, an error is returned.

func (Keeper) HandleDoubleSign

func (k Keeper) HandleDoubleSign(ctx sdk.Context, evidence *types.Equivocation)

HandleDoubleSign implements an equivocation evidence handler. Assuming the evidence is valid, the validator committing the misbehavior will be slashed, jailed and tombstoned. Once tombstoned, the validator will not be able to recover. Note, the evidence contains the block time and height at the time of the equivocation.

The evidence is considered invalid if: - the evidence is too old - the validator is unbonded or does not exist - the signing info does not exist (will panic) - is already tombstoned

TODO: Some of the invalid constraints listed above may need to be reconsidered in the case of a lunatic attack.

func (Keeper) IterateEvidence

func (k Keeper) IterateEvidence(ctx sdk.Context, cb func(exported.Evidence) bool)

IterateEvidence provides an interator over all stored Evidence objects. For each Evidence object, cb will be called. If the cb returns true, the iterator will close and stop.

func (Keeper) Logger

func (k Keeper) Logger(ctx sdk.Context) log.Logger

Logger returns a module-specific logger.

func (Keeper) MarshalEvidence

func (k Keeper) 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 (Keeper) MarshalEvidenceJSON

func (k Keeper) MarshalEvidenceJSON(evidence exported.Evidence) ([]byte, error)

MarshalEvidenceJSON JSON encodes an evidence object implementing the Evidence interface.

func (Keeper) MustMarshalEvidence

func (k Keeper) MustMarshalEvidence(evidence exported.Evidence) []byte

MustMarshalEvidence attempts to encode an Evidence object and returns the raw encoded bytes. It panics on error.

func (Keeper) MustUnmarshalEvidence

func (k Keeper) MustUnmarshalEvidence(bz []byte) exported.Evidence

MustUnmarshalEvidence attempts to decode and return an Evidence object from raw encoded bytes. It panics on error.

func (Keeper) SetEvidence

func (k Keeper) SetEvidence(ctx sdk.Context, evidence exported.Evidence)

SetEvidence sets Evidence by hash in the module's KVStore.

func (*Keeper) SetRouter

func (k *Keeper) SetRouter(rtr types.Router)

SetRouter sets the Evidence Handler router for the x/evidence module. Note, we allow the ability to set the router after the Keeper is constructed as a given Handler may need access the Keeper before being constructed. The router may only be set once and will be sealed if it's not already sealed.

func (Keeper) SubmitEvidence

func (k Keeper) SubmitEvidence(ctx sdk.Context, evidence exported.Evidence) error

SubmitEvidence attempts to match evidence against the keepers router and execute the corresponding registered Evidence Handler. An error is returned if no registered Handler exists or if the Handler fails. Otherwise, the evidence is persisted.

func (Keeper) UnmarshalEvidence

func (k Keeper) 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 (Keeper) UnmarshalEvidenceJSON

func (k Keeper) UnmarshalEvidenceJSON(bz []byte) (exported.Evidence, error)

UnmarshalEvidenceJSON returns an Evidence from JSON encoded bytes

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL