0g-chain/x/incentive/spec
Ruaridh c7962e45c0
Swaps accumulate global rewards (#947)
* add get set methods for swap reward indexes

* add get set methods for swap accrual time

* tidy up location of multi periods

* add swap reward periods to params

* add initial legacy types for incentive

* minor refactor of migration code

* add incentive migration for swap params

* minor incentive test refactors

* add math methods to RewardIndexes

* add keeper method to increment global indexes

* add swap keeper to incentive keeper

* indicate if pool shares were found or not

* add accumulator to compute new rewards each block

* accumulate swap rewards globally

* remove unecessary keeper method

* expand doc comments on accumulator methods

* test precision not lost in accumulation

* minor fixes from merge

* rename storeGlobalDelegatorFactor to match others

* fix migration from merge

* fix bug in app setup

* fix accumulation bug when starting with no state

* rename swap files to match others

* add swap accumulation times to genesis

* remove old migration refactor

* minor updates to spec

* add high level description of how rewards work
2021-07-07 14:23:06 +01:00
..
01_concepts.md Swaps accumulate global rewards (#947) 2021-07-07 14:23:06 +01:00
02_state.md Add hard and incentive spec updates (#817) 2021-02-19 17:14:48 +01:00
03_messages.md refactor to MsgClaimHardReward (#879) 2021-03-15 12:03:15 -06:00
04_events.md refactor to MsgClaimHardReward (#879) 2021-03-15 12:03:15 -06:00
05_params.md Add hard and incentive spec updates (#817) 2021-02-19 17:14:48 +01:00
06_hooks.md Add hard and incentive spec updates (#817) 2021-02-19 17:14:48 +01:00
07_begin_block.md Add hard and incentive spec updates (#817) 2021-02-19 17:14:48 +01:00
README.md Swaps accumulate global rewards (#947) 2021-07-07 14:23:06 +01:00

incentive

  1. Concepts
  2. State
  3. Messages
  4. Events
  5. Params
  6. Hooks
  7. BeginBlock

Abstract

x/incentive is an implementation of a Cosmos SDK Module that allows for governance controlled user incentives for users who take certain actions, such as opening a collateralized debt position (CDP). Governance proposes an array of rewards, with each item representing a collateral type that will be eligible for rewards. Each collateral reward specifies the number of coins awarded per second, the length of rewards periods. Governance can alter the collateral rewards using parameter change proposals as well as adding or removing collateral types. All changes to parameters would take place in the next period. User rewards are opt in, ie. users must claim rewards in order to receive them. If users fail to claim rewards before the claim period expiry, they are no longer eligible for rewards.

Dependencies

This module uses hooks to update user rewards. Currently, incentive implements hooks from the cdp, hard, and staking (comsos-sdk) modules. All rewards are paid out from the kavadist module account.