mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-12-24 23:35:19 +00:00
Harvest Migration (#672)
* add harvest to kava-4 migration * add mainnet harvest incentive schedules * fix: check for 0 lockup instead of assuming small in always 0
This commit is contained in:
parent
056f9c0cf0
commit
ed7ce81e30
@ -9,6 +9,7 @@ import (
|
|||||||
v0_9bep3 "github.com/kava-labs/kava/x/bep3/legacy/v0_9"
|
v0_9bep3 "github.com/kava-labs/kava/x/bep3/legacy/v0_9"
|
||||||
v0_11cdp "github.com/kava-labs/kava/x/cdp"
|
v0_11cdp "github.com/kava-labs/kava/x/cdp"
|
||||||
v0_9cdp "github.com/kava-labs/kava/x/cdp/legacy/v0_9"
|
v0_9cdp "github.com/kava-labs/kava/x/cdp/legacy/v0_9"
|
||||||
|
v0_11harvest "github.com/kava-labs/kava/x/harvest"
|
||||||
v0_11incentive "github.com/kava-labs/kava/x/incentive"
|
v0_11incentive "github.com/kava-labs/kava/x/incentive"
|
||||||
v0_9incentive "github.com/kava-labs/kava/x/incentive/legacy/v0_9"
|
v0_9incentive "github.com/kava-labs/kava/x/incentive/legacy/v0_9"
|
||||||
v0_11pricefeed "github.com/kava-labs/kava/x/pricefeed"
|
v0_11pricefeed "github.com/kava-labs/kava/x/pricefeed"
|
||||||
@ -72,6 +73,30 @@ func MigrateBep3(oldGenState v0_9bep3.GenesisState) v0_11bep3.GenesisState {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MigrateHarvest initializes the harvest genesis state for kava-4
|
||||||
|
func MigrateHarvest() v0_11harvest.GenesisState {
|
||||||
|
// total HARD per second for lps (week one): 633761
|
||||||
|
// HARD per second for delegators (week one): 1267522
|
||||||
|
incentiveGoLiveDate := time.Date(2020, 10, 16, 14, 0, 0, 0, time.UTC)
|
||||||
|
incentiveEndDate := time.Date(2024, 10, 16, 14, 0, 0, 0, time.UTC)
|
||||||
|
claimEndDate := time.Date(2025, 10, 16, 14, 0, 0, 0, time.UTC)
|
||||||
|
harvestGS := v0_11harvest.NewGenesisState(v0_11harvest.NewParams(
|
||||||
|
true,
|
||||||
|
v0_11harvest.DistributionSchedules{
|
||||||
|
v0_11harvest.NewDistributionSchedule(true, "usdx", incentiveGoLiveDate, incentiveEndDate, sdk.NewCoin("hard", sdk.NewInt(310543)), claimEndDate, v0_11harvest.Multipliers{v0_11harvest.NewMultiplier(v0_11harvest.Small, 1, sdk.MustNewDecFromStr("0.33")), v0_11harvest.NewMultiplier(v0_11harvest.Large, 12, sdk.OneDec())}),
|
||||||
|
v0_11harvest.NewDistributionSchedule(true, "hard", incentiveGoLiveDate, incentiveEndDate, sdk.NewCoin("hard", sdk.NewInt(285193)), claimEndDate, v0_11harvest.Multipliers{v0_11harvest.NewMultiplier(v0_11harvest.Small, 1, sdk.MustNewDecFromStr("0.33")), v0_11harvest.NewMultiplier(v0_11harvest.Large, 12, sdk.OneDec())}),
|
||||||
|
v0_11harvest.NewDistributionSchedule(true, "bnb", incentiveGoLiveDate, incentiveEndDate, sdk.NewCoin("hard", sdk.NewInt(12675)), claimEndDate, v0_11harvest.Multipliers{v0_11harvest.NewMultiplier(v0_11harvest.Small, 1, sdk.MustNewDecFromStr("0.33")), v0_11harvest.NewMultiplier(v0_11harvest.Large, 12, sdk.OneDec())}),
|
||||||
|
v0_11harvest.NewDistributionSchedule(true, "ukava", incentiveGoLiveDate, incentiveEndDate, sdk.NewCoin("hard", sdk.NewInt(25350)), claimEndDate, v0_11harvest.Multipliers{v0_11harvest.NewMultiplier(v0_11harvest.Small, 1, sdk.MustNewDecFromStr("0.33")), v0_11harvest.NewMultiplier(v0_11harvest.Large, 12, sdk.OneDec())}),
|
||||||
|
},
|
||||||
|
v0_11harvest.DelegatorDistributionSchedules{v0_11harvest.NewDelegatorDistributionSchedule(
|
||||||
|
v0_11harvest.NewDistributionSchedule(true, "ukava", incentiveGoLiveDate, incentiveEndDate, sdk.NewCoin("hard", sdk.NewInt(1267522)), claimEndDate, v0_11harvest.Multipliers{v0_11harvest.NewMultiplier(v0_11harvest.Small, 1, sdk.MustNewDecFromStr("0.33")), v0_11harvest.NewMultiplier(v0_11harvest.Large, 12, sdk.OneDec())}),
|
||||||
|
time.Hour*24,
|
||||||
|
),
|
||||||
|
},
|
||||||
|
), v0_11harvest.DefaultPreviousBlockTime, v0_11harvest.DefaultDistributionTimes)
|
||||||
|
return harvestGS
|
||||||
|
}
|
||||||
|
|
||||||
// MigrateCDP migrates from a v0.9 (or v0.10) cdp genesis state to a v0.11 cdp genesis state
|
// MigrateCDP migrates from a v0.9 (or v0.10) cdp genesis state to a v0.11 cdp genesis state
|
||||||
func MigrateCDP(oldGenState v0_9cdp.GenesisState) v0_11cdp.GenesisState {
|
func MigrateCDP(oldGenState v0_9cdp.GenesisState) v0_11cdp.GenesisState {
|
||||||
var newCDPs v0_11cdp.CDPs
|
var newCDPs v0_11cdp.CDPs
|
||||||
|
@ -39,6 +39,11 @@ func TestMigrateBep3(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestMigrateHarvest(t *testing.T) {
|
||||||
|
newGenState := MigrateHarvest()
|
||||||
|
err := newGenState.Validate()
|
||||||
|
require.NoError(t, err)
|
||||||
|
}
|
||||||
func TestMigrateCdp(t *testing.T) {
|
func TestMigrateCdp(t *testing.T) {
|
||||||
bz, err := ioutil.ReadFile(filepath.Join("testdata", "cdp-v09.json"))
|
bz, err := ioutil.ReadFile(filepath.Join("testdata", "cdp-v09.json"))
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -61,10 +61,11 @@ func (k Keeper) ClaimReward(ctx sdk.Context, claimHolder sdk.AccAddress, receive
|
|||||||
// note that pay dates are always the 1st or 15th of the month at 14:00UTC.
|
// note that pay dates are always the 1st or 15th of the month at 14:00UTC.
|
||||||
func (k Keeper) GetPeriodLength(ctx sdk.Context, multiplier types.Multiplier) (int64, error) {
|
func (k Keeper) GetPeriodLength(ctx sdk.Context, multiplier types.Multiplier) (int64, error) {
|
||||||
|
|
||||||
switch multiplier.Name {
|
if multiplier.MonthsLockup == 0 {
|
||||||
case types.Small:
|
|
||||||
return 0, nil
|
return 0, nil
|
||||||
case types.Medium, types.Large:
|
}
|
||||||
|
switch multiplier.Name {
|
||||||
|
case types.Small, types.Medium, types.Large:
|
||||||
currentDay := ctx.BlockTime().Day()
|
currentDay := ctx.BlockTime().Day()
|
||||||
payDay := BeginningOfMonth
|
payDay := BeginningOfMonth
|
||||||
monthOffset := int64(1)
|
monthOffset := int64(1)
|
||||||
|
Loading…
Reference in New Issue
Block a user