incentive

package
v0.11.0-alpha.1 Latest Latest
Warning

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

Go to latest
Published: Aug 30, 2020 License: Apache-2.0 Imports: 18 Imported by: 1

Documentation

Overview

Package incentive implements a Cosmos SDK module, per ADR 009, that provides governance-controlled, on-chain incentives for users who open cdps and mint stablecoins (USDX).

For the background and motivation of this module, see the governance proposal that was voted on by KAVA token holders: https://ipfs.io/ipfs/QmSYedssC3nyQacDJmNcREtgmTPyaMx2JX7RNkMdAVkdkr/user-growth-fund-proposal.pdf

The 'Reward' parameter is used to control how much incentives are given. For example, the following reward:

Reward{
	Active: true,
	Denom: "bnb",
	AvailableRewards: sdk.NewCoin("ukava", 1000000000),
	Duration: time.Hour*7*24,
	TimeLock: time.Hour*24*365,
	ClaimDuration: time.Hour*7*24,
}

will distribute 1000 KAVA each week (Duration) to users who mint USDX using collateral bnb. That KAVA can be claimed by the user for one week (ClaimDuration) after the reward period expires, and all KAVA rewards will be timelocked for 1 year (TimeLock). If a user does not claim them during the claim duration period, they are forgone.

Rewards are accumulated by users continuously and proportionally - ie. if a user holds a CDP that has minted 10% of all USDX backed by bnb for the entire reward period, they will be eligible to claim 10% of rewards for that period.

Once a reward period ends, but not before, users can claim the rewards they have accumulated. Users claim rewards using a MsgClaimReward transaction. The following msg:

MsgClaimReward {
	"kava1..."
	"bnb"
}

will claim all outstanding rewards for minting USDX backed by bnb for the input user.

Index

Constants

View Source
const (
	EventTypeClaim             = types.EventTypeClaim
	EventTypeRewardPeriod      = types.EventTypeRewardPeriod
	EventTypeClaimPeriod       = types.EventTypeClaimPeriod
	EventTypeClaimPeriodExpiry = types.EventTypeClaimPeriodExpiry
	AttributeValueCategory     = types.AttributeValueCategory
	AttributeKeyClaimedBy      = types.AttributeKeyClaimedBy
	AttributeKeyClaimAmount    = types.AttributeKeyClaimAmount
	AttributeKeyRewardPeriod   = types.AttributeKeyRewardPeriod
	AttributeKeyClaimPeriod    = types.AttributeKeyClaimPeriod
	ModuleName                 = types.ModuleName
	StoreKey                   = types.StoreKey
	RouterKey                  = types.RouterKey
	DefaultParamspace          = types.DefaultParamspace
	QuerierRoute               = types.QuerierRoute
	QueryGetClaims             = types.QueryGetClaims
	RestClaimOwner             = types.RestClaimOwner
	RestClaimCollateralType    = types.RestClaimCollateralType
	QueryGetParams             = types.QueryGetParams
)

Variables

View Source
var (
	// functions aliases
	NewKeeper                   = keeper.NewKeeper
	NewQuerier                  = keeper.NewQuerier
	GetTotalVestingPeriodLength = types.GetTotalVestingPeriodLength
	RegisterCodec               = types.RegisterCodec
	NewGenesisState             = types.NewGenesisState
	DefaultGenesisState         = types.DefaultGenesisState
	BytesToUint64               = types.BytesToUint64
	GetClaimPeriodPrefix        = types.GetClaimPeriodPrefix
	GetClaimPrefix              = types.GetClaimPrefix
	NewMsgClaimReward           = types.NewMsgClaimReward
	NewParams                   = types.NewParams
	DefaultParams               = types.DefaultParams
	ParamKeyTable               = types.ParamKeyTable
	NewReward                   = types.NewReward
	NewPeriod                   = types.NewPeriod
	NewQueryClaimsParams        = types.NewQueryClaimsParams
	NewRewardPeriod             = types.NewRewardPeriod
	NewClaimPeriod              = types.NewClaimPeriod
	NewClaim                    = types.NewClaim
	NewRewardPeriodFromReward   = types.NewRewardPeriodFromReward

	// variable aliases
	ModuleCdc                        = types.ModuleCdc
	ErrClaimNotFound                 = types.ErrClaimNotFound
	ErrClaimPeriodNotFound           = types.ErrClaimPeriodNotFound
	ErrInvalidAccountType            = types.ErrInvalidAccountType
	ErrNoClaimsFound                 = types.ErrNoClaimsFound
	ErrInsufficientModAccountBalance = types.ErrInsufficientModAccountBalance
	RewardPeriodKeyPrefix            = types.RewardPeriodKeyPrefix
	ClaimPeriodKeyPrefix             = types.ClaimPeriodKeyPrefix
	ClaimKeyPrefix                   = types.ClaimKeyPrefix
	NextClaimPeriodIDPrefix          = types.NextClaimPeriodIDPrefix
	PreviousBlockTimeKey             = types.PreviousBlockTimeKey
	KeyActive                        = types.KeyActive
	KeyRewards                       = types.KeyRewards
	DefaultActive                    = types.DefaultActive
	DefaultRewards                   = types.DefaultRewards
	DefaultPreviousBlockTime         = types.DefaultPreviousBlockTime
	GovDenom                         = types.GovDenom
	PrincipalDenom                   = types.PrincipalDenom
	IncentiveMacc                    = types.IncentiveMacc
)

Functions

func BeginBlocker

func BeginBlocker(ctx sdk.Context, k keeper.Keeper)

BeginBlocker runs at the start of every block

func ExportGenesis

func ExportGenesis(ctx sdk.Context, k keeper.Keeper) types.GenesisState

ExportGenesis export genesis state for incentive module

func InitGenesis

func InitGenesis(ctx sdk.Context, k keeper.Keeper, supplyKeeper types.SupplyKeeper, gs types.GenesisState)

InitGenesis initializes the store state from a genesis state.

func NewHandler

func NewHandler(k keeper.Keeper) sdk.Handler

NewHandler creates an sdk.Handler for incentive module messages

Types

type AccountKeeper

type AccountKeeper = types.AccountKeeper

type AppModule

type AppModule struct {
	AppModuleBasic
	// contains filtered or unexported fields
}

AppModule implements the sdk.AppModule interface.

func NewAppModule

func NewAppModule(keeper Keeper, accountKeeper auth.AccountKeeper, supplyKeeper SupplyKeeper) AppModule

NewAppModule creates a new AppModule object

func (AppModule) BeginBlock

func (am AppModule) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock)

BeginBlock returns the begin blocker for the incentive module.

func (AppModule) EndBlock

EndBlock returns the end blocker for the incentive module. It returns no validator updates.

func (AppModule) ExportGenesis

func (am AppModule) ExportGenesis(ctx sdk.Context) json.RawMessage

ExportGenesis returns the exported genesis state as raw bytes for the incentive module

func (AppModule) InitGenesis

func (am AppModule) InitGenesis(ctx sdk.Context, data json.RawMessage) []abci.ValidatorUpdate

InitGenesis performs genesis initialization for the incentive module. It returns no validator updates.

func (AppModule) Name

func (AppModule) Name() string

Name returns the incentive module's name.

func (AppModule) NewHandler

func (am AppModule) NewHandler() sdk.Handler

NewHandler returns an sdk.Handler for the incentive module.

func (AppModule) NewQuerierHandler

func (am AppModule) NewQuerierHandler() sdk.Querier

NewQuerierHandler returns the incentive module sdk.Querier.

func (AppModule) QuerierRoute

func (AppModule) QuerierRoute() string

QuerierRoute returns the incentive module's querier route name.

func (AppModule) RegisterInvariants

func (am AppModule) RegisterInvariants(_ sdk.InvariantRegistry)

RegisterInvariants registers the incentive module invariants.

func (AppModule) Route

func (AppModule) Route() string

Route returns the message routing key for the incentive module.

func (AppModule) WeightedOperations

func (am AppModule) WeightedOperations(simState module.SimulationState) []sim.WeightedOperation

WeightedOperations returns the all the bep3 module operations with their respective weights.

type AppModuleBasic

type AppModuleBasic struct{}

AppModuleBasic defines the basic application module used by the incentive module.

func (AppModuleBasic) DefaultGenesis

func (AppModuleBasic) DefaultGenesis() json.RawMessage

DefaultGenesis returns default genesis state as raw bytes for the incentive module.

func (AppModuleBasic) GenerateGenesisState

func (AppModuleBasic) GenerateGenesisState(simState *module.SimulationState)

GenerateGenesisState creates a randomized GenState of the incentive module

func (AppModuleBasic) GetQueryCmd

func (AppModuleBasic) GetQueryCmd(cdc *codec.Codec) *cobra.Command

GetQueryCmd returns no root query command for the incentive module.

func (AppModuleBasic) GetTxCmd

func (AppModuleBasic) GetTxCmd(cdc *codec.Codec) *cobra.Command

GetTxCmd returns the root tx command for the incentive module.

func (AppModuleBasic) Name

func (AppModuleBasic) Name() string

Name returns the incentive module's name.

func (AppModuleBasic) ProposalContents

ProposalContents doesn't return any content functions for governance proposals.

func (AppModuleBasic) RandomizedParams

func (AppModuleBasic) RandomizedParams(r *rand.Rand) []sim.ParamChange

RandomizedParams creates randomized incentive param changes for the simulator.

func (AppModuleBasic) RegisterCodec

func (AppModuleBasic) RegisterCodec(cdc *codec.Codec)

RegisterCodec registers the incentive module's types for the given codec.

func (AppModuleBasic) RegisterRESTRoutes

func (AppModuleBasic) RegisterRESTRoutes(ctx context.CLIContext, rtr *mux.Router)

RegisterRESTRoutes registers the REST routes for the incentive module.

func (AppModuleBasic) RegisterStoreDecoder

func (AppModuleBasic) RegisterStoreDecoder(sdr sdk.StoreDecoderRegistry)

RegisterStoreDecoder registers a decoder for incentive module's types

func (AppModuleBasic) ValidateGenesis

func (AppModuleBasic) ValidateGenesis(bz json.RawMessage) error

ValidateGenesis performs genesis state validation for the incentive module.

type CdpKeeper

type CdpKeeper = types.CdpKeeper

type Claim

type Claim = types.Claim

type ClaimPeriod

type ClaimPeriod = types.ClaimPeriod

type ClaimPeriods

type ClaimPeriods = types.ClaimPeriods

type Claims

type Claims = types.Claims

type GenesisClaimPeriodID

type GenesisClaimPeriodID = types.GenesisClaimPeriodID

type GenesisClaimPeriodIDs

type GenesisClaimPeriodIDs = types.GenesisClaimPeriodIDs

type GenesisState

type GenesisState = types.GenesisState

type Keeper

type Keeper = keeper.Keeper

type MsgClaimReward

type MsgClaimReward = types.MsgClaimReward

type Params

type Params = types.Params

type PostClaimReq

type PostClaimReq = types.PostClaimReq

type QueryClaimsParams

type QueryClaimsParams = types.QueryClaimsParams

type Reward

type Reward = types.Reward

type RewardPeriod

type RewardPeriod = types.RewardPeriod

type RewardPeriods

type RewardPeriods = types.RewardPeriods

type Rewards

type Rewards = types.Rewards

type SupplyKeeper

type SupplyKeeper = types.SupplyKeeper

Directories

Path Synopsis
client
cli

Jump to

Keyboard shortcuts

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