mirror of
				https://github.com/0glabs/0g-chain.git
				synced 2025-11-04 06:07:26 +00:00 
			
		
		
		
	Add kava modules to TestAppImportExport (#472)
* add kava modules to TestAppImportExport
This commit is contained in:
		
							parent
							
								
									ae4aee46ff
								
							
						
					
					
						commit
						c175e9e856
					
				@ -8,9 +8,9 @@ const (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// Default simulation operation weights for messages and gov proposals
 | 
					// Default simulation operation weights for messages and gov proposals
 | 
				
			||||||
const (
 | 
					const (
 | 
				
			||||||
	DefaultWeightMsgPlaceBid         int = 100
 | 
						DefaultWeightMsgPlaceBid         int = 75
 | 
				
			||||||
	DefaultWeightMsgCreateAtomicSwap int = 100
 | 
						DefaultWeightMsgCreateAtomicSwap int = 50
 | 
				
			||||||
	DefaultWeightMsgUpdatePrices     int = 100
 | 
						DefaultWeightMsgUpdatePrices     int = 50
 | 
				
			||||||
	DefaultWeightMsgCdp              int = 100
 | 
						DefaultWeightMsgCdp              int = 100
 | 
				
			||||||
	DefaultWeightMsgClaimReward      int = 100
 | 
						DefaultWeightMsgClaimReward      int = 50
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
				
			|||||||
@ -6,11 +6,6 @@ import (
 | 
				
			|||||||
	"os"
 | 
						"os"
 | 
				
			||||||
	"testing"
 | 
						"testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/stretchr/testify/require"
 | 
					 | 
				
			||||||
	abci "github.com/tendermint/tendermint/abci/types"
 | 
					 | 
				
			||||||
	"github.com/tendermint/tendermint/libs/log"
 | 
					 | 
				
			||||||
	dbm "github.com/tendermint/tm-db"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"github.com/cosmos/cosmos-sdk/baseapp"
 | 
						"github.com/cosmos/cosmos-sdk/baseapp"
 | 
				
			||||||
	"github.com/cosmos/cosmos-sdk/simapp"
 | 
						"github.com/cosmos/cosmos-sdk/simapp"
 | 
				
			||||||
	"github.com/cosmos/cosmos-sdk/simapp/helpers"
 | 
						"github.com/cosmos/cosmos-sdk/simapp/helpers"
 | 
				
			||||||
@ -25,6 +20,17 @@ import (
 | 
				
			|||||||
	"github.com/cosmos/cosmos-sdk/x/slashing"
 | 
						"github.com/cosmos/cosmos-sdk/x/slashing"
 | 
				
			||||||
	"github.com/cosmos/cosmos-sdk/x/staking"
 | 
						"github.com/cosmos/cosmos-sdk/x/staking"
 | 
				
			||||||
	"github.com/cosmos/cosmos-sdk/x/supply"
 | 
						"github.com/cosmos/cosmos-sdk/x/supply"
 | 
				
			||||||
 | 
						"github.com/kava-labs/kava/x/auction"
 | 
				
			||||||
 | 
						"github.com/kava-labs/kava/x/bep3"
 | 
				
			||||||
 | 
						"github.com/kava-labs/kava/x/cdp"
 | 
				
			||||||
 | 
						"github.com/kava-labs/kava/x/incentive"
 | 
				
			||||||
 | 
						"github.com/kava-labs/kava/x/kavadist"
 | 
				
			||||||
 | 
						"github.com/kava-labs/kava/x/pricefeed"
 | 
				
			||||||
 | 
						validatorvesting "github.com/kava-labs/kava/x/validator-vesting"
 | 
				
			||||||
 | 
						"github.com/stretchr/testify/require"
 | 
				
			||||||
 | 
						abci "github.com/tendermint/tendermint/abci/types"
 | 
				
			||||||
 | 
						"github.com/tendermint/tendermint/libs/log"
 | 
				
			||||||
 | 
						dbm "github.com/tendermint/tm-db"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type StoreKeysPrefixes struct {
 | 
					type StoreKeysPrefixes struct {
 | 
				
			||||||
@ -162,6 +168,13 @@ func TestAppImportExport(t *testing.T) {
 | 
				
			|||||||
		{app.keys[supply.StoreKey], newApp.keys[supply.StoreKey], [][]byte{}},
 | 
							{app.keys[supply.StoreKey], newApp.keys[supply.StoreKey], [][]byte{}},
 | 
				
			||||||
		{app.keys[params.StoreKey], newApp.keys[params.StoreKey], [][]byte{}},
 | 
							{app.keys[params.StoreKey], newApp.keys[params.StoreKey], [][]byte{}},
 | 
				
			||||||
		{app.keys[gov.StoreKey], newApp.keys[gov.StoreKey], [][]byte{}},
 | 
							{app.keys[gov.StoreKey], newApp.keys[gov.StoreKey], [][]byte{}},
 | 
				
			||||||
 | 
							{app.keys[auction.StoreKey], newApp.keys[auction.StoreKey], [][]byte{}},
 | 
				
			||||||
 | 
							{app.keys[bep3.StoreKey], newApp.keys[bep3.StoreKey], [][]byte{}},
 | 
				
			||||||
 | 
							{app.keys[cdp.StoreKey], newApp.keys[cdp.StoreKey], [][]byte{}},
 | 
				
			||||||
 | 
							{app.keys[incentive.StoreKey], newApp.keys[incentive.StoreKey], [][]byte{}},
 | 
				
			||||||
 | 
							{app.keys[kavadist.StoreKey], newApp.keys[kavadist.StoreKey], [][]byte{}},
 | 
				
			||||||
 | 
							{app.keys[pricefeed.StoreKey], newApp.keys[pricefeed.StoreKey], [][]byte{}},
 | 
				
			||||||
 | 
							{app.keys[validatorvesting.StoreKey], newApp.keys[validatorvesting.StoreKey], [][]byte{}},
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for _, skp := range storeKeysPrefixes {
 | 
						for _, skp := range storeKeysPrefixes {
 | 
				
			||||||
@ -170,8 +183,9 @@ func TestAppImportExport(t *testing.T) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		failedKVAs, failedKVBs := sdk.DiffKVStores(storeA, storeB, skp.Prefixes)
 | 
							failedKVAs, failedKVBs := sdk.DiffKVStores(storeA, storeB, skp.Prefixes)
 | 
				
			||||||
		require.Equal(t, len(failedKVAs), len(failedKVBs), "unequal sets of key-values to compare")
 | 
							require.Equal(t, len(failedKVAs), len(failedKVBs), "unequal sets of key-values to compare")
 | 
				
			||||||
 | 
							if len(failedKVAs) != 0 {
 | 
				
			||||||
		fmt.Printf("compared %d key/value pairs between %s and %s\n", len(failedKVAs), skp.A, skp.B)
 | 
								fmt.Printf("found %d non-equal key/value pairs between %s and %s\n", len(failedKVAs), skp.A, skp.B)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		require.Equal(t, len(failedKVAs), 0, simapp.GetSimulationLog(skp.A.Name(), app.SimulationManager().StoreDecoders, app.Codec(), failedKVAs, failedKVBs))
 | 
							require.Equal(t, len(failedKVAs), 0, simapp.GetSimulationLog(skp.A.Name(), app.SimulationManager().StoreDecoders, app.Codec(), failedKVAs, failedKVBs))
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -142,8 +142,6 @@ type (
 | 
				
			|||||||
	AugmentedCDPs          = types.AugmentedCDPs
 | 
						AugmentedCDPs          = types.AugmentedCDPs
 | 
				
			||||||
	Deposit                = types.Deposit
 | 
						Deposit                = types.Deposit
 | 
				
			||||||
	Deposits               = types.Deposits
 | 
						Deposits               = types.Deposits
 | 
				
			||||||
	SupplyKeeper           = types.SupplyKeeper
 | 
					 | 
				
			||||||
	PricefeedKeeper        = types.PricefeedKeeper
 | 
					 | 
				
			||||||
	GenesisState           = types.GenesisState
 | 
						GenesisState           = types.GenesisState
 | 
				
			||||||
	MsgCreateCDP           = types.MsgCreateCDP
 | 
						MsgCreateCDP           = types.MsgCreateCDP
 | 
				
			||||||
	MsgDeposit             = types.MsgDeposit
 | 
						MsgDeposit             = types.MsgDeposit
 | 
				
			||||||
 | 
				
			|||||||
@ -4,10 +4,11 @@ import (
 | 
				
			|||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	sdk "github.com/cosmos/cosmos-sdk/types"
 | 
						sdk "github.com/cosmos/cosmos-sdk/types"
 | 
				
			||||||
 | 
						"github.com/kava-labs/kava/x/cdp/types"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// InitGenesis sets initial genesis state for cdp module
 | 
					// InitGenesis sets initial genesis state for cdp module
 | 
				
			||||||
func InitGenesis(ctx sdk.Context, k Keeper, pk PricefeedKeeper, sk SupplyKeeper, gs GenesisState) {
 | 
					func InitGenesis(ctx sdk.Context, k Keeper, pk types.PricefeedKeeper, sk types.SupplyKeeper, gs GenesisState) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if err := gs.Validate(); err != nil {
 | 
						if err := gs.Validate(); err != nil {
 | 
				
			||||||
		panic(fmt.Sprintf("failed to validate %s genesis state: %s", ModuleName, err))
 | 
							panic(fmt.Sprintf("failed to validate %s genesis state: %s", ModuleName, err))
 | 
				
			||||||
@ -61,12 +62,13 @@ func InitGenesis(ctx sdk.Context, k Keeper, pk PricefeedKeeper, sk SupplyKeeper,
 | 
				
			|||||||
		k.IndexCdpByOwner(ctx, cdp)
 | 
							k.IndexCdpByOwner(ctx, cdp)
 | 
				
			||||||
		ratio := k.CalculateCollateralToDebtRatio(ctx, cdp.Collateral, cdp.Principal.Add(cdp.AccumulatedFees))
 | 
							ratio := k.CalculateCollateralToDebtRatio(ctx, cdp.Collateral, cdp.Principal.Add(cdp.AccumulatedFees))
 | 
				
			||||||
		k.IndexCdpByCollateralRatio(ctx, cdp.Collateral.Denom, cdp.ID, ratio)
 | 
							k.IndexCdpByCollateralRatio(ctx, cdp.Collateral.Denom, cdp.ID, ratio)
 | 
				
			||||||
		k.IncrementTotalPrincipal(ctx, cdp.Collateral.Denom, cdp.Principal)
 | 
							k.IncrementTotalPrincipal(ctx, cdp.Collateral.Denom, cdp.Principal.Add(cdp.AccumulatedFees))
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	k.SetNextCdpID(ctx, gs.StartingCdpID)
 | 
						k.SetNextCdpID(ctx, gs.StartingCdpID)
 | 
				
			||||||
	k.SetDebtDenom(ctx, gs.DebtDenom)
 | 
						k.SetDebtDenom(ctx, gs.DebtDenom)
 | 
				
			||||||
	k.SetGovDenom(ctx, gs.GovDenom)
 | 
						k.SetGovDenom(ctx, gs.GovDenom)
 | 
				
			||||||
 | 
						k.SetPreviousSavingsDistribution(ctx, gs.PreviousDistributionTime)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for _, d := range gs.Deposits {
 | 
						for _, d := range gs.Deposits {
 | 
				
			||||||
		k.SetDeposit(ctx, d)
 | 
							k.SetDeposit(ctx, d)
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,6 @@
 | 
				
			|||||||
package keeper
 | 
					package keeper
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"bytes"
 | 
					 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/cosmos/cosmos-sdk/store/prefix"
 | 
						"github.com/cosmos/cosmos-sdk/store/prefix"
 | 
				
			||||||
@ -151,8 +150,7 @@ func (k Keeper) GetCdpID(ctx sdk.Context, owner sdk.AccAddress, denom string) (u
 | 
				
			|||||||
func (k Keeper) GetCdpIdsByOwner(ctx sdk.Context, owner sdk.AccAddress) ([]uint64, bool) {
 | 
					func (k Keeper) GetCdpIdsByOwner(ctx sdk.Context, owner sdk.AccAddress) ([]uint64, bool) {
 | 
				
			||||||
	store := prefix.NewStore(ctx.KVStore(k.key), types.CdpIDKeyPrefix)
 | 
						store := prefix.NewStore(ctx.KVStore(k.key), types.CdpIDKeyPrefix)
 | 
				
			||||||
	bz := store.Get(owner)
 | 
						bz := store.Get(owner)
 | 
				
			||||||
	// TODO figure out why this is necessary
 | 
						if bz == nil {
 | 
				
			||||||
	if bz == nil || bytes.Equal(bz, []byte{0}) {
 | 
					 | 
				
			||||||
		return []uint64{}, false
 | 
							return []uint64{}, false
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	var cdpIDs []uint64
 | 
						var cdpIDs []uint64
 | 
				
			||||||
@ -272,13 +270,8 @@ func (k Keeper) IndexCdpByOwner(ctx sdk.Context, cdp types.CDP) {
 | 
				
			|||||||
		store.Set(cdp.Owner, idBytes)
 | 
							store.Set(cdp.Owner, idBytes)
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	for _, id := range cdpIDs {
 | 
						cdpIDs = append(cdpIDs, cdp.ID)
 | 
				
			||||||
		if id == cdp.ID {
 | 
						store.Set(cdp.Owner, k.cdc.MustMarshalBinaryLengthPrefixed(cdpIDs))
 | 
				
			||||||
			return
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		cdpIDs = append(cdpIDs, cdp.ID)
 | 
					 | 
				
			||||||
		store.Set(cdp.Owner, k.cdc.MustMarshalBinaryLengthPrefixed(cdpIDs))
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// RemoveCdpOwnerIndex deletes the cdp id from the store's index of cdps by owner
 | 
					// RemoveCdpOwnerIndex deletes the cdp id from the store's index of cdps by owner
 | 
				
			||||||
@ -296,9 +289,9 @@ func (k Keeper) RemoveCdpOwnerIndex(ctx sdk.Context, cdp types.CDP) {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	if len(updatedCdpIds) == 0 {
 | 
						if len(updatedCdpIds) == 0 {
 | 
				
			||||||
		store.Delete(cdp.Owner)
 | 
							store.Delete(cdp.Owner)
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	store.Set(cdp.Owner, k.cdc.MustMarshalBinaryLengthPrefixed(updatedCdpIds))
 | 
						store.Set(cdp.Owner, k.cdc.MustMarshalBinaryLengthPrefixed(updatedCdpIds))
 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// IndexCdpByCollateralRatio sets the cdp id in the store, indexed by the collateral type and collateral to debt ratio
 | 
					// IndexCdpByCollateralRatio sets the cdp id in the store, indexed by the collateral type and collateral to debt ratio
 | 
				
			||||||
 | 
				
			|||||||
@ -66,7 +66,7 @@ func (suite *SavingsTestSuite) TestGetSetPreviousDistributionTime() {
 | 
				
			|||||||
	now := tmtime.Now()
 | 
						now := tmtime.Now()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	_, f := suite.keeper.GetPreviousSavingsDistribution(suite.ctx)
 | 
						_, f := suite.keeper.GetPreviousSavingsDistribution(suite.ctx)
 | 
				
			||||||
	suite.False(f)
 | 
						suite.True(f)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	suite.NotPanics(func() { suite.keeper.SetPreviousSavingsDistribution(suite.ctx, now) })
 | 
						suite.NotPanics(func() { suite.keeper.SetPreviousSavingsDistribution(suite.ctx, now) })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -11,13 +11,13 @@ import (
 | 
				
			|||||||
	"github.com/cosmos/cosmos-sdk/codec"
 | 
						"github.com/cosmos/cosmos-sdk/codec"
 | 
				
			||||||
	sdk "github.com/cosmos/cosmos-sdk/types"
 | 
						sdk "github.com/cosmos/cosmos-sdk/types"
 | 
				
			||||||
	"github.com/cosmos/cosmos-sdk/types/module"
 | 
						"github.com/cosmos/cosmos-sdk/types/module"
 | 
				
			||||||
	"github.com/cosmos/cosmos-sdk/x/auth"
 | 
					 | 
				
			||||||
	sim "github.com/cosmos/cosmos-sdk/x/simulation"
 | 
						sim "github.com/cosmos/cosmos-sdk/x/simulation"
 | 
				
			||||||
	abci "github.com/tendermint/tendermint/abci/types"
 | 
						abci "github.com/tendermint/tendermint/abci/types"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/kava-labs/kava/x/cdp/client/cli"
 | 
						"github.com/kava-labs/kava/x/cdp/client/cli"
 | 
				
			||||||
	"github.com/kava-labs/kava/x/cdp/client/rest"
 | 
						"github.com/kava-labs/kava/x/cdp/client/rest"
 | 
				
			||||||
	"github.com/kava-labs/kava/x/cdp/simulation"
 | 
						"github.com/kava-labs/kava/x/cdp/simulation"
 | 
				
			||||||
 | 
						"github.com/kava-labs/kava/x/cdp/types"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var (
 | 
					var (
 | 
				
			||||||
@ -76,13 +76,13 @@ type AppModule struct {
 | 
				
			|||||||
	AppModuleBasic
 | 
						AppModuleBasic
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	keeper          Keeper
 | 
						keeper          Keeper
 | 
				
			||||||
	accountKeeper   auth.AccountKeeper
 | 
						accountKeeper   types.AccountKeeper
 | 
				
			||||||
	pricefeedKeeper PricefeedKeeper
 | 
						pricefeedKeeper types.PricefeedKeeper
 | 
				
			||||||
	supplyKeeper    SupplyKeeper
 | 
						supplyKeeper    types.SupplyKeeper
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// NewAppModule creates a new AppModule object
 | 
					// NewAppModule creates a new AppModule object
 | 
				
			||||||
func NewAppModule(keeper Keeper, accountKeeper auth.AccountKeeper, pricefeedKeeper PricefeedKeeper, supplyKeeper SupplyKeeper) AppModule {
 | 
					func NewAppModule(keeper Keeper, accountKeeper types.AccountKeeper, pricefeedKeeper types.PricefeedKeeper, supplyKeeper types.SupplyKeeper) AppModule {
 | 
				
			||||||
	return AppModule{
 | 
						return AppModule{
 | 
				
			||||||
		AppModuleBasic:  AppModuleBasic{},
 | 
							AppModuleBasic:  AppModuleBasic{},
 | 
				
			||||||
		keeper:          keeper,
 | 
							keeper:          keeper,
 | 
				
			||||||
 | 
				
			|||||||
@ -7,7 +7,6 @@ import (
 | 
				
			|||||||
	"github.com/cosmos/cosmos-sdk/codec"
 | 
						"github.com/cosmos/cosmos-sdk/codec"
 | 
				
			||||||
	"github.com/cosmos/cosmos-sdk/simapp/helpers"
 | 
						"github.com/cosmos/cosmos-sdk/simapp/helpers"
 | 
				
			||||||
	sdk "github.com/cosmos/cosmos-sdk/types"
 | 
						sdk "github.com/cosmos/cosmos-sdk/types"
 | 
				
			||||||
	"github.com/cosmos/cosmos-sdk/x/auth"
 | 
					 | 
				
			||||||
	authexported "github.com/cosmos/cosmos-sdk/x/auth/exported"
 | 
						authexported "github.com/cosmos/cosmos-sdk/x/auth/exported"
 | 
				
			||||||
	"github.com/cosmos/cosmos-sdk/x/simulation"
 | 
						"github.com/cosmos/cosmos-sdk/x/simulation"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -23,7 +22,7 @@ const (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// WeightedOperations returns all the operations from the module with their respective weights
 | 
					// WeightedOperations returns all the operations from the module with their respective weights
 | 
				
			||||||
func WeightedOperations(
 | 
					func WeightedOperations(
 | 
				
			||||||
	appParams simulation.AppParams, cdc *codec.Codec, ak auth.AccountKeeper,
 | 
						appParams simulation.AppParams, cdc *codec.Codec, ak types.AccountKeeper,
 | 
				
			||||||
	k keeper.Keeper, pfk types.PricefeedKeeper,
 | 
						k keeper.Keeper, pfk types.PricefeedKeeper,
 | 
				
			||||||
) simulation.WeightedOperations {
 | 
					) simulation.WeightedOperations {
 | 
				
			||||||
	var weightMsgCdp int
 | 
						var weightMsgCdp int
 | 
				
			||||||
@ -43,7 +42,7 @@ func WeightedOperations(
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// SimulateMsgCdp generates a MsgCreateCdp or MsgDepositCdp with random values.
 | 
					// SimulateMsgCdp generates a MsgCreateCdp or MsgDepositCdp with random values.
 | 
				
			||||||
func SimulateMsgCdp(ak auth.AccountKeeper, k keeper.Keeper, pfk types.PricefeedKeeper) simulation.Operation {
 | 
					func SimulateMsgCdp(ak types.AccountKeeper, k keeper.Keeper, pfk types.PricefeedKeeper) simulation.Operation {
 | 
				
			||||||
	return func(
 | 
						return func(
 | 
				
			||||||
		r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simulation.Account, chainID string,
 | 
							r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simulation.Account, chainID string,
 | 
				
			||||||
	) (simulation.OperationMsg, []simulation.FutureOperation, error) {
 | 
						) (simulation.OperationMsg, []simulation.FutureOperation, error) {
 | 
				
			||||||
@ -125,12 +124,12 @@ func SimulateMsgCdp(ak auth.AccountKeeper, k keeper.Keeper, pfk types.PricefeedK
 | 
				
			|||||||
				simAccount.PrivKey,
 | 
									simAccount.PrivKey,
 | 
				
			||||||
			)
 | 
								)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			_, result, err := app.Deliver(tx)
 | 
								_, _, err := app.Deliver(tx)
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				return simulation.NoOpMsg(types.ModuleName), nil, err
 | 
									return simulation.NoOpMsg(types.ModuleName), nil, err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			return simulation.NewOperationMsg(msg, true, result.Log), nil, nil
 | 
								return simulation.NewOperationMsg(msg, true, ""), nil, nil
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// a cdp already exists, deposit to it, draw debt from it, or repay debt to it
 | 
							// a cdp already exists, deposit to it, draw debt from it, or repay debt to it
 | 
				
			||||||
@ -149,12 +148,12 @@ func SimulateMsgCdp(ak auth.AccountKeeper, k keeper.Keeper, pfk types.PricefeedK
 | 
				
			|||||||
				simAccount.PrivKey,
 | 
									simAccount.PrivKey,
 | 
				
			||||||
			)
 | 
								)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			_, result, err := app.Deliver(tx)
 | 
								_, _, err := app.Deliver(tx)
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				return simulation.NoOpMsg(types.ModuleName), nil, err
 | 
									return simulation.NoOpMsg(types.ModuleName), nil, err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			return simulation.NewOperationMsg(msg, true, result.Log), nil, nil
 | 
								return simulation.NewOperationMsg(msg, true, ""), nil, nil
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// deposit 25% of the time
 | 
							// deposit 25% of the time
 | 
				
			||||||
@ -172,12 +171,12 @@ func SimulateMsgCdp(ak auth.AccountKeeper, k keeper.Keeper, pfk types.PricefeedK
 | 
				
			|||||||
				simAccount.PrivKey,
 | 
									simAccount.PrivKey,
 | 
				
			||||||
			)
 | 
								)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			_, result, err := app.Deliver(tx)
 | 
								_, _, err := app.Deliver(tx)
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				return simulation.NoOpMsg(types.ModuleName), nil, err
 | 
									return simulation.NoOpMsg(types.ModuleName), nil, err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			return simulation.NewOperationMsg(msg, true, result.Log), nil, nil
 | 
								return simulation.NewOperationMsg(msg, true, ""), nil, nil
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// draw debt 25% of the time
 | 
							// draw debt 25% of the time
 | 
				
			||||||
@ -215,12 +214,13 @@ func SimulateMsgCdp(ak auth.AccountKeeper, k keeper.Keeper, pfk types.PricefeedK
 | 
				
			|||||||
				simAccount.PrivKey,
 | 
									simAccount.PrivKey,
 | 
				
			||||||
			)
 | 
								)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			_, result, err := app.Deliver(tx)
 | 
								_, _, err := app.Deliver(tx)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				return simulation.NoOpMsg(types.ModuleName), nil, err
 | 
									return simulation.NoOpMsg(types.ModuleName), nil, err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			return simulation.NewOperationMsg(msg, true, result.Log), nil, nil
 | 
								return simulation.NewOperationMsg(msg, true, ""), nil, nil
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// repay debt 25% of the time
 | 
							// repay debt 25% of the time
 | 
				
			||||||
@ -248,12 +248,12 @@ func SimulateMsgCdp(ak auth.AccountKeeper, k keeper.Keeper, pfk types.PricefeedK
 | 
				
			|||||||
				simAccount.PrivKey,
 | 
									simAccount.PrivKey,
 | 
				
			||||||
			)
 | 
								)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			_, result, err := app.Deliver(tx)
 | 
								_, _, err := app.Deliver(tx)
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				return simulation.NoOpMsg(types.ModuleName), nil, err
 | 
									return simulation.NoOpMsg(types.ModuleName), nil, err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			return simulation.NewOperationMsg(msg, true, result.Log), nil, nil
 | 
								return simulation.NewOperationMsg(msg, true, ""), nil, nil
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		return simulation.NoOpMsg(types.ModuleName), nil, nil
 | 
							return simulation.NoOpMsg(types.ModuleName), nil, nil
 | 
				
			||||||
 | 
				
			|||||||
@ -9,7 +9,7 @@ import (
 | 
				
			|||||||
	pftypes "github.com/kava-labs/kava/x/pricefeed/types"
 | 
						pftypes "github.com/kava-labs/kava/x/pricefeed/types"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// SupplyKeeper defines the expected supply keeper for module accounts
 | 
					// SupplyKeeper defines the expected supply keeper for module accounts  (noalias)
 | 
				
			||||||
type SupplyKeeper interface {
 | 
					type SupplyKeeper interface {
 | 
				
			||||||
	GetModuleAddress(name string) sdk.AccAddress
 | 
						GetModuleAddress(name string) sdk.AccAddress
 | 
				
			||||||
	GetModuleAccount(ctx sdk.Context, name string) supplyexported.ModuleAccountI
 | 
						GetModuleAccount(ctx sdk.Context, name string) supplyexported.ModuleAccountI
 | 
				
			||||||
@ -25,7 +25,7 @@ type SupplyKeeper interface {
 | 
				
			|||||||
	GetSupply(ctx sdk.Context) (supply supplyexported.SupplyI)
 | 
						GetSupply(ctx sdk.Context) (supply supplyexported.SupplyI)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// PricefeedKeeper defines the expected interface for the pricefeed
 | 
					// PricefeedKeeper defines the expected interface for the pricefeed  (noalias)
 | 
				
			||||||
type PricefeedKeeper interface {
 | 
					type PricefeedKeeper interface {
 | 
				
			||||||
	GetCurrentPrice(sdk.Context, string) (pftypes.CurrentPrice, error)
 | 
						GetCurrentPrice(sdk.Context, string) (pftypes.CurrentPrice, error)
 | 
				
			||||||
	GetParams(sdk.Context) pftypes.Params
 | 
						GetParams(sdk.Context) pftypes.Params
 | 
				
			||||||
@ -45,4 +45,5 @@ type AuctionKeeper interface {
 | 
				
			|||||||
// AccountKeeper expected interface for the account keeper (noalias)
 | 
					// AccountKeeper expected interface for the account keeper (noalias)
 | 
				
			||||||
type AccountKeeper interface {
 | 
					type AccountKeeper interface {
 | 
				
			||||||
	IterateAccounts(ctx sdk.Context, cb func(account authexported.Account) (stop bool))
 | 
						IterateAccounts(ctx sdk.Context, cb func(account authexported.Account) (stop bool))
 | 
				
			||||||
 | 
						GetAccount(ctx sdk.Context, addr sdk.AccAddress) authexported.Account
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -6,7 +6,7 @@ import (
 | 
				
			|||||||
	"time"
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/cosmos/cosmos-sdk/codec"
 | 
						"github.com/cosmos/cosmos-sdk/codec"
 | 
				
			||||||
	"github.com/cosmos/cosmos-sdk/x/auth/exported"
 | 
						sdk "github.com/cosmos/cosmos-sdk/types"
 | 
				
			||||||
	"github.com/kava-labs/kava/x/validator-vesting/types"
 | 
						"github.com/kava-labs/kava/x/validator-vesting/types"
 | 
				
			||||||
	"github.com/tendermint/tendermint/libs/kv"
 | 
						"github.com/tendermint/tendermint/libs/kv"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@ -15,9 +15,9 @@ import (
 | 
				
			|||||||
func DecodeStore(cdc *codec.Codec, kvA, kvB kv.Pair) string {
 | 
					func DecodeStore(cdc *codec.Codec, kvA, kvB kv.Pair) string {
 | 
				
			||||||
	switch {
 | 
						switch {
 | 
				
			||||||
	case bytes.Equal(kvA.Key[:1], types.ValidatorVestingAccountPrefix):
 | 
						case bytes.Equal(kvA.Key[:1], types.ValidatorVestingAccountPrefix):
 | 
				
			||||||
		var accA, accB exported.Account
 | 
							var accA, accB sdk.AccAddress
 | 
				
			||||||
		cdc.MustUnmarshalBinaryBare(kvA.Value, &accA)
 | 
							accA = sdk.AccAddress(kvA.Key[1:])
 | 
				
			||||||
		cdc.MustUnmarshalBinaryBare(kvB.Value, &accB)
 | 
							accB = sdk.AccAddress(kvB.Key[1:])
 | 
				
			||||||
		return fmt.Sprintf("%v\n%v", accA, accB)
 | 
							return fmt.Sprintf("%v\n%v", accA, accB)
 | 
				
			||||||
	case bytes.Equal(kvA.Key, types.BlocktimeKey):
 | 
						case bytes.Equal(kvA.Key, types.BlocktimeKey):
 | 
				
			||||||
		var btA, btB time.Time
 | 
							var btA, btB time.Time
 | 
				
			||||||
 | 
				
			|||||||
@ -5,14 +5,18 @@ import (
 | 
				
			|||||||
	"testing"
 | 
						"testing"
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/stretchr/testify/require"
 | 
					 | 
				
			||||||
	"github.com/tendermint/tendermint/libs/kv"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"github.com/cosmos/cosmos-sdk/codec"
 | 
						"github.com/cosmos/cosmos-sdk/codec"
 | 
				
			||||||
	sdk "github.com/cosmos/cosmos-sdk/types"
 | 
						sdk "github.com/cosmos/cosmos-sdk/types"
 | 
				
			||||||
	"github.com/cosmos/cosmos-sdk/x/auth"
 | 
						"github.com/cosmos/cosmos-sdk/x/auth"
 | 
				
			||||||
 | 
					 | 
				
			||||||
	"github.com/kava-labs/kava/x/validator-vesting/types"
 | 
						"github.com/kava-labs/kava/x/validator-vesting/types"
 | 
				
			||||||
 | 
						"github.com/stretchr/testify/require"
 | 
				
			||||||
 | 
						"github.com/tendermint/tendermint/crypto/ed25519"
 | 
				
			||||||
 | 
						"github.com/tendermint/tendermint/libs/kv"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var (
 | 
				
			||||||
 | 
						pk1   = ed25519.GenPrivKey().PubKey()
 | 
				
			||||||
 | 
						addr1 = sdk.AccAddress(pk1.Address())
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func makeTestCodec() (cdc *codec.Codec) {
 | 
					func makeTestCodec() (cdc *codec.Codec) {
 | 
				
			||||||
@ -28,11 +32,10 @@ func makeTestCodec() (cdc *codec.Codec) {
 | 
				
			|||||||
func TestDecodeDistributionStore(t *testing.T) {
 | 
					func TestDecodeDistributionStore(t *testing.T) {
 | 
				
			||||||
	cdc := makeTestCodec()
 | 
						cdc := makeTestCodec()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	acc := types.ValidatorVestingAccount{SigningThreshold: 1}
 | 
					 | 
				
			||||||
	now := time.Now().UTC()
 | 
						now := time.Now().UTC()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	kvPairs := kv.Pairs{
 | 
						kvPairs := kv.Pairs{
 | 
				
			||||||
		kv.Pair{Key: types.ValidatorVestingAccountPrefix, Value: cdc.MustMarshalBinaryBare(acc)},
 | 
							kv.Pair{Key: append(types.ValidatorVestingAccountPrefix, addr1.Bytes()...), Value: []byte{0}},
 | 
				
			||||||
		kv.Pair{Key: types.BlocktimeKey, Value: cdc.MustMarshalBinaryLengthPrefixed(now)},
 | 
							kv.Pair{Key: types.BlocktimeKey, Value: cdc.MustMarshalBinaryLengthPrefixed(now)},
 | 
				
			||||||
		kv.Pair{Key: []byte{0x99}, Value: []byte{0x99}},
 | 
							kv.Pair{Key: []byte{0x99}, Value: []byte{0x99}},
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@ -41,7 +44,7 @@ func TestDecodeDistributionStore(t *testing.T) {
 | 
				
			|||||||
		name        string
 | 
							name        string
 | 
				
			||||||
		expectedLog string
 | 
							expectedLog string
 | 
				
			||||||
	}{
 | 
						}{
 | 
				
			||||||
		{"ValidatorVestingAccount", fmt.Sprintf("%v\n%v", acc, acc)},
 | 
							{"ValidatorVestingAccount", fmt.Sprintf("%v\n%v", addr1, addr1)},
 | 
				
			||||||
		{"BlockTime", fmt.Sprintf("%s\n%s", now, now)},
 | 
							{"BlockTime", fmt.Sprintf("%s\n%s", now, now)},
 | 
				
			||||||
		{"other", ""},
 | 
							{"other", ""},
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
				
			|||||||
@ -73,6 +73,8 @@ func RandomizedGenState(simState *module.SimulationState) {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	newAuthGenesis := authtypes.NewGenesisState(authGenState.Params, newGenesisAccs)
 | 
						newAuthGenesis := authtypes.NewGenesisState(authGenState.Params, newGenesisAccs)
 | 
				
			||||||
	simState.GenState[authtypes.ModuleName] = simState.Cdc.MustMarshalJSON(newAuthGenesis)
 | 
						simState.GenState[authtypes.ModuleName] = simState.Cdc.MustMarshalJSON(newAuthGenesis)
 | 
				
			||||||
 | 
						vestGenState := types.DefaultGenesisState()
 | 
				
			||||||
 | 
						simState.GenState[types.ModuleName] = simState.Cdc.MustMarshalJSON(vestGenState)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func getRandomValidatorConsAddr(simState *module.SimulationState, rint int) sdk.ConsAddress {
 | 
					func getRandomValidatorConsAddr(simState *module.SimulationState, rint int) sdk.ConsAddress {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user