mirror of
				https://github.com/0glabs/0g-chain.git
				synced 2025-10-31 14:47:29 +00:00 
			
		
		
		
	Add CLI Command to Query Kavadist Balance (#590)
* add command to view balance of kavadist module account Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									bfb9f7e20a
								
							
						
					
					
						commit
						dda84c79ab
					
				| @ -36,6 +36,8 @@ Ref: https://keepachangelog.com/en/1.0.0/ | ||||
| 
 | ||||
| ## [Unreleased] | ||||
| 
 | ||||
| [\#590](https://github.com/Kava-Labs/kava/pull/590) Add CLI query to return kavadist module account balance | ||||
| 
 | ||||
| [\#584](https://github.com/Kava-Labs/kava/pulls/584) Add REST client and CLI queries for `kavadist` module | ||||
| 
 | ||||
| [\#578](https://github.com/Kava-Labs/kava/pulls/578) Add v0.3 compatible REST client that supports | ||||
|  | ||||
| @ -1,56 +1,56 @@ | ||||
| package kavadist | ||||
| 
 | ||||
| // DO NOT EDIT - generated by aliasgen tool (github.com/rhuairahrighairidh/aliasgen)
 | ||||
| 
 | ||||
| import ( | ||||
| 	"github.com/kava-labs/kava/x/kavadist/keeper" | ||||
| 	"github.com/kava-labs/kava/x/kavadist/types" | ||||
| ) | ||||
| 
 | ||||
| // autogenerated code using github.com/rigelrozanski/multitool
 | ||||
| // aliases generated for the following subdirectories:
 | ||||
| // ALIASGEN: github.com/kava-labs/kava/x/kavadist/keeper
 | ||||
| // ALIASGEN: github.com/kava-labs/kava/x/kavadist/types
 | ||||
| 
 | ||||
| // nolint
 | ||||
| const ( | ||||
| 	EventTypeKavaDist     = types.EventTypeKavaDist | ||||
| 	AttributeKeyInflation = types.AttributeKeyInflation | ||||
| 	ModuleName            = types.ModuleName | ||||
| 	StoreKey              = types.StoreKey | ||||
| 	RouterKey             = types.RouterKey | ||||
| 	QuerierRoute          = types.QuerierRoute | ||||
| 	DefaultParamspace     = types.DefaultParamspace | ||||
| 	KavaDistMacc          = types.KavaDistMacc | ||||
| 	QueryGetParams        = types.QueryGetParams | ||||
| 	AttributeKeyInflation  = types.AttributeKeyInflation | ||||
| 	AttributeKeyStatus     = types.AttributeKeyStatus | ||||
| 	AttributeValueInactive = types.AttributeValueInactive | ||||
| 	DefaultParamspace      = types.DefaultParamspace | ||||
| 	EventTypeKavaDist      = types.EventTypeKavaDist | ||||
| 	KavaDistMacc           = types.KavaDistMacc | ||||
| 	ModuleName             = types.ModuleName | ||||
| 	QuerierRoute           = types.QuerierRoute | ||||
| 	QueryGetBalance        = types.QueryGetBalance | ||||
| 	QueryGetParams         = types.QueryGetParams | ||||
| 	RouterKey              = types.RouterKey | ||||
| 	StoreKey               = types.StoreKey | ||||
| ) | ||||
| 
 | ||||
| // nolint
 | ||||
| var ( | ||||
| 	// functions aliases
 | ||||
| 	// function aliases
 | ||||
| 	NewKeeper           = keeper.NewKeeper | ||||
| 	RegisterCodec       = types.RegisterCodec | ||||
| 	NewGenesisState     = types.NewGenesisState | ||||
| 	NewQuerier          = keeper.NewQuerier | ||||
| 	DefaultGenesisState = types.DefaultGenesisState | ||||
| 	NewParams           = types.NewParams | ||||
| 	DefaultParams       = types.DefaultParams | ||||
| 	NewGenesisState     = types.NewGenesisState | ||||
| 	NewParams           = types.NewParams | ||||
| 	NewPeriod           = types.NewPeriod | ||||
| 	ParamKeyTable       = types.ParamKeyTable | ||||
| 	RegisterCodec       = types.RegisterCodec | ||||
| 
 | ||||
| 	// variable aliases
 | ||||
| 	ModuleCdc                = types.ModuleCdc | ||||
| 	CurrentDistPeriodKey     = types.CurrentDistPeriodKey | ||||
| 	PreviousBlockTimeKey     = types.PreviousBlockTimeKey | ||||
| 	KeyActive                = types.KeyActive | ||||
| 	KeyPeriods               = types.KeyPeriods | ||||
| 	DefaultActive            = types.DefaultActive | ||||
| 	DefaultPeriods           = types.DefaultPeriods | ||||
| 	DefaultPreviousBlockTime = types.DefaultPreviousBlockTime | ||||
| 	GovDenom                 = types.GovDenom | ||||
| 	KeyActive                = types.KeyActive | ||||
| 	KeyPeriods               = types.KeyPeriods | ||||
| 	ModuleCdc                = types.ModuleCdc | ||||
| 	PreviousBlockTimeKey     = types.PreviousBlockTimeKey | ||||
| ) | ||||
| 
 | ||||
| // nolint
 | ||||
| type ( | ||||
| 	Keeper       = keeper.Keeper | ||||
| 	GenesisState = types.GenesisState | ||||
| 	Params       = types.Params | ||||
| 	Period       = types.Period | ||||
| 	Periods      = types.Periods | ||||
| 	SupplyKeeper = types.SupplyKeeper | ||||
| ) | ||||
|  | ||||
| @ -8,6 +8,7 @@ import ( | ||||
| 	"github.com/cosmos/cosmos-sdk/client/context" | ||||
| 	"github.com/cosmos/cosmos-sdk/client/flags" | ||||
| 	"github.com/cosmos/cosmos-sdk/codec" | ||||
| 	sdk "github.com/cosmos/cosmos-sdk/types" | ||||
| 
 | ||||
| 	"github.com/kava-labs/kava/x/kavadist/types" | ||||
| ) | ||||
| @ -21,6 +22,7 @@ func GetQueryCmd(queryRoute string, cdc *codec.Codec) *cobra.Command { | ||||
| 
 | ||||
| 	kavadistQueryCmd.AddCommand(flags.GetCommands( | ||||
| 		queryParamsCmd(queryRoute, cdc), | ||||
| 		queryBalanceCmd(queryRoute, cdc), | ||||
| 	)...) | ||||
| 
 | ||||
| 	return kavadistQueryCmd | ||||
| @ -53,3 +55,28 @@ func queryParamsCmd(queryRoute string, cdc *codec.Codec) *cobra.Command { | ||||
| 		}, | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func queryBalanceCmd(queryRoute string, cdc *codec.Codec) *cobra.Command { | ||||
| 	return &cobra.Command{ | ||||
| 		Use:   "balance", | ||||
| 		Short: "get the kavadist module balance", | ||||
| 		Long:  "Get the current kavadist module account balance.", | ||||
| 		Args:  cobra.NoArgs, | ||||
| 		RunE: func(cmd *cobra.Command, args []string) error { | ||||
| 			cliCtx := context.NewCLIContext().WithCodec(cdc) | ||||
| 
 | ||||
| 			route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryGetBalance) | ||||
| 			res, height, err := cliCtx.QueryWithData(route, nil) | ||||
| 			if err != nil { | ||||
| 				return err | ||||
| 			} | ||||
| 			cliCtx = cliCtx.WithHeight(height) | ||||
| 
 | ||||
| 			var coins sdk.Coins | ||||
| 			if err := cdc.UnmarshalJSON(res, &coins); err != nil { | ||||
| 				return fmt.Errorf("failed to unmarshal coin balance: %w", err) | ||||
| 			} | ||||
| 			return cliCtx.PrintOutput(coins) | ||||
| 		}, | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @ -16,6 +16,8 @@ func NewQuerier(k Keeper) sdk.Querier { | ||||
| 		switch path[0] { | ||||
| 		case types.QueryGetParams: | ||||
| 			return queryGetParams(ctx, req, k) | ||||
| 		case types.QueryGetBalance: | ||||
| 			return queryGetBalance(ctx, req, k) | ||||
| 		default: | ||||
| 			return nil, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unknown %s query endpoint", types.ModuleName) | ||||
| 		} | ||||
| @ -34,3 +36,15 @@ func queryGetParams(ctx sdk.Context, req abci.RequestQuery, k Keeper) ([]byte, e | ||||
| 	} | ||||
| 	return bz, nil | ||||
| } | ||||
| 
 | ||||
| // queryGetBalance returns current balance of kavadist module account
 | ||||
| func queryGetBalance(ctx sdk.Context, req abci.RequestQuery, k Keeper) ([]byte, error) { | ||||
| 	acc := k.supplyKeeper.GetModuleAccount(ctx, types.KavaDistMacc) | ||||
| 	bz, err := codec.MarshalJSONIndent(k.cdc, acc.GetCoins()) | ||||
| 
 | ||||
| 	if err != nil { | ||||
| 		return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) | ||||
| 	} | ||||
| 
 | ||||
| 	return bz, nil | ||||
| } | ||||
|  | ||||
| @ -1,13 +1,14 @@ | ||||
| package keeper_test | ||||
| 
 | ||||
| import ( | ||||
| 	sdk "github.com/cosmos/cosmos-sdk/types" | ||||
| 	abci "github.com/tendermint/tendermint/abci/types" | ||||
| 
 | ||||
| 	"github.com/kava-labs/kava/x/kavadist/keeper" | ||||
| 	"github.com/kava-labs/kava/x/kavadist/types" | ||||
| ) | ||||
| 
 | ||||
| func (suite *KeeperTestSuite) TestQuerier() { | ||||
| func (suite *KeeperTestSuite) TestQuerierGetParams() { | ||||
| 	querier := keeper.NewQuerier(suite.keeper) | ||||
| 	bz, err := querier(suite.ctx, []string{types.QueryGetParams}, abci.RequestQuery{}) | ||||
| 	suite.Require().NoError(err) | ||||
| @ -18,3 +19,18 @@ func (suite *KeeperTestSuite) TestQuerier() { | ||||
| 	suite.Nil(types.ModuleCdc.UnmarshalJSON(bz, &p)) | ||||
| 	suite.Require().Equal(testParams, p) | ||||
| } | ||||
| 
 | ||||
| func (suite *KeeperTestSuite) TestQuerierGetBalance() { | ||||
| 	sk := suite.supplyKeeper | ||||
| 
 | ||||
| 	sk.MintCoins(suite.ctx, types.KavaDistMacc, sdk.NewCoins(sdk.NewCoin("ukava", sdk.NewInt(100e6)))) | ||||
| 
 | ||||
| 	querier := keeper.NewQuerier(suite.keeper) | ||||
| 	bz, err := querier(suite.ctx, []string{types.QueryGetBalance}, abci.RequestQuery{}) | ||||
| 	suite.Require().NoError(err) | ||||
| 	suite.Require().NotNil(bz) | ||||
| 
 | ||||
| 	var coins sdk.Coins | ||||
| 	types.ModuleCdc.UnmarshalJSON(bz, &coins) | ||||
| 	suite.Require().Equal(sdk.NewInt(100e6), coins.AmountOf("ukava")) | ||||
| } | ||||
|  | ||||
| @ -2,5 +2,6 @@ package types | ||||
| 
 | ||||
| // Querier routes for the kavadist module
 | ||||
| const ( | ||||
| 	QueryGetParams = "params" | ||||
| 	QueryGetParams  = "params" | ||||
| 	QueryGetBalance = "balance" | ||||
| ) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Nick DeLuca
						Nick DeLuca