mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-12-25 15:55:18 +00:00
102cc0fff3
* add new field upgrade_time_set_staking_rewards_per_second with intention of integrating into the disable inflation logic to set an initial staking reward time * when the disable inflation upgrade time occurs, set the staking rewards per second to the value specified by the new upgrade_time_set_staking_rewards_per_second. This will allow a decoupled implementation between the ugprade switching logic, and the core functionality of paying staking rewards from the pool * add staking rewards state to community keeper and community module genesis that is required to calculate and track staking reward payouts accross blocks * add implementation of staking reward payouts * remove unused error * touch up tests and add a test case that fully tests behavior when pool is drained * add function comments * refactor and pull out main calculation to private pure function with no dependence on keeper * zero out default parameters -- these are too chain specific to have useful defaults * small touch ups on comments, test cases * use correct Int from sdkmath, not old sdk types; update protonet genesis for new parmater * fix copy pasta comment * use bond denom from staking keeper instead of referncing ukava directly * add staking reward state for valid genesis * update kvtool genesis for new params and rewards state
51 lines
1.1 KiB
Go
51 lines
1.1 KiB
Go
package v2_test
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
sdkmath "cosmossdk.io/math"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/cosmos/cosmos-sdk/testutil"
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
"github.com/kava-labs/kava/app"
|
|
v2 "github.com/kava-labs/kava/x/community/migrations/v2"
|
|
"github.com/kava-labs/kava/x/community/types"
|
|
)
|
|
|
|
func TestMigrateStore(t *testing.T) {
|
|
tApp := app.NewTestApp()
|
|
cdc := tApp.AppCodec()
|
|
storeKey := sdk.NewKVStoreKey("community")
|
|
ctx := testutil.DefaultContext(storeKey, sdk.NewTransientStoreKey("transient_test"))
|
|
store := ctx.KVStore(storeKey)
|
|
|
|
require.Nil(
|
|
t,
|
|
store.Get(types.ParamsKey),
|
|
"params shouldn't exist in store before migration",
|
|
)
|
|
|
|
require.NoError(t, v2.Migrate(ctx, store, cdc))
|
|
|
|
paramsBytes := store.Get(types.ParamsKey)
|
|
require.NotNil(t, paramsBytes, "params should be in store after migration")
|
|
|
|
var params types.Params
|
|
cdc.MustUnmarshal(paramsBytes, ¶ms)
|
|
|
|
t.Logf("params: %+v", params)
|
|
|
|
require.Equal(
|
|
t,
|
|
types.NewParams(
|
|
time.Time{},
|
|
sdkmath.LegacyNewDec(0),
|
|
sdkmath.LegacyNewDec(0),
|
|
),
|
|
params,
|
|
"params should be correct after migration",
|
|
)
|
|
}
|