From 94b7d8f4677d162ea6e2b77939d0d2e11dda98c4 Mon Sep 17 00:00:00 2001 From: Alexander Bezobchuk Date: Wed, 10 Apr 2019 13:08:50 -0400 Subject: [PATCH] Fix queryDelegatorTotalRewards (#4078) Return [] instead of null by making the initial value an empty slice literal opposed to nil. Closes: #3705 --- ...tead-of-null-when-querying-delegator-rewards | 1 + x/distribution/alias.go | 17 +++++++++++++++++ x/distribution/client/common/common.go | 16 ++++++++-------- x/distribution/keeper/querier.go | 2 +- 4 files changed, 27 insertions(+), 9 deletions(-) create mode 100644 .pending/bugfixes/sdk/3705-Return-instead-of-null-when-querying-delegator-rewards diff --git a/.pending/bugfixes/sdk/3705-Return-instead-of-null-when-querying-delegator-rewards b/.pending/bugfixes/sdk/3705-Return-instead-of-null-when-querying-delegator-rewards new file mode 100644 index 000000000..39497c209 --- /dev/null +++ b/.pending/bugfixes/sdk/3705-Return-instead-of-null-when-querying-delegator-rewards @@ -0,0 +1 @@ +#3705 Return `[]` instead of `null` when querying delegator rewards. diff --git a/x/distribution/alias.go b/x/distribution/alias.go index 2b4bad2db..b78f39909 100644 --- a/x/distribution/alias.go +++ b/x/distribution/alias.go @@ -71,4 +71,21 @@ var ( DefaultGenesisState = types.DefaultGenesisState ValidateGenesis = types.ValidateGenesis InitialFeePool = types.InitialFeePool + + // Query types + QueryParams = keeper.QueryParams + QueryValidatorOutstandingRewards = keeper.QueryValidatorOutstandingRewards + QueryValidatorCommission = keeper.QueryValidatorCommission + QueryValidatorSlashes = keeper.QueryValidatorSlashes + QueryDelegationRewards = keeper.QueryDelegationRewards + QueryDelegatorTotalRewards = keeper.QueryDelegatorTotalRewards + QueryDelegatorValidators = keeper.QueryDelegatorValidators + QueryWithdrawAddr = keeper.QueryWithdrawAddr + QueryCommunityPool = keeper.QueryCommunityPool + + // Param types + ParamCommunityTax = keeper.ParamCommunityTax + ParamBaseProposerReward = keeper.ParamBaseProposerReward + ParamBonusProposerReward = keeper.ParamBonusProposerReward + ParamWithdrawAddrEnabled = keeper.ParamWithdrawAddrEnabled ) diff --git a/x/distribution/client/common/common.go b/x/distribution/client/common/common.go index de78a9bf2..2f2f6b38b 100644 --- a/x/distribution/client/common/common.go +++ b/x/distribution/client/common/common.go @@ -11,26 +11,26 @@ import ( // QueryParams actually queries distribution params. func QueryParams(cliCtx context.CLIContext, queryRoute string) (PrettyParams, error) { - route := fmt.Sprintf("custom/%s/params/community_tax", queryRoute) + route := fmt.Sprintf("custom/%s/params/%s", queryRoute, distr.ParamCommunityTax) retCommunityTax, err := cliCtx.QueryWithData(route, []byte{}) if err != nil { return PrettyParams{}, err } - route = fmt.Sprintf("custom/%s/params/base_proposer_reward", queryRoute) + route = fmt.Sprintf("custom/%s/params/%s", queryRoute, distr.ParamBaseProposerReward) retBaseProposerReward, err := cliCtx.QueryWithData(route, []byte{}) if err != nil { return PrettyParams{}, err } - route = fmt.Sprintf("custom/%s/params/bonus_proposer_reward", queryRoute) + route = fmt.Sprintf("custom/%s/params/%s", queryRoute, distr.ParamBonusProposerReward) retBonusProposerReward, err := cliCtx.QueryWithData(route, []byte{}) if err != nil { return PrettyParams{}, err } - route = fmt.Sprintf("custom/%s/params/withdraw_addr_enabled", queryRoute) + route = fmt.Sprintf("custom/%s/params/%s", queryRoute, distr.ParamWithdrawAddrEnabled) retWithdrawAddrEnabled, err := cliCtx.QueryWithData(route, []byte{}) if err != nil { return PrettyParams{}, err @@ -50,7 +50,7 @@ func QueryDelegatorTotalRewards(cliCtx context.CLIContext, cdc *codec.Codec, } return cliCtx.QueryWithData( - fmt.Sprintf("custom/%s/delegator_total_rewards", queryRoute), + fmt.Sprintf("custom/%s/%s", queryRoute, distr.QueryDelegatorTotalRewards), cdc.MustMarshalJSON(distr.NewQueryDelegatorParams(delegatorAddr)), ) } @@ -69,7 +69,7 @@ func QueryDelegationRewards(cliCtx context.CLIContext, cdc *codec.Codec, } return cliCtx.QueryWithData( - fmt.Sprintf("custom/%s/delegation_rewards", queryRoute), + fmt.Sprintf("custom/%s/%s", queryRoute, distr.QueryDelegationRewards), cdc.MustMarshalJSON(distr.NewQueryDelegationRewardsParams(delegatorAddr, validatorAddr)), ) } @@ -80,7 +80,7 @@ func QueryDelegatorValidators(cliCtx context.CLIContext, cdc *codec.Codec, queryRoute string, delegatorAddr sdk.AccAddress) ([]byte, error) { return cliCtx.QueryWithData( - fmt.Sprintf("custom/%s/delegator_validators", queryRoute), + fmt.Sprintf("custom/%s/%s", queryRoute, distr.QueryDelegatorValidators), cdc.MustMarshalJSON(distr.NewQueryDelegatorParams(delegatorAddr)), ) } @@ -90,7 +90,7 @@ func QueryValidatorCommission(cliCtx context.CLIContext, cdc *codec.Codec, queryRoute string, validatorAddr sdk.ValAddress) ([]byte, error) { return cliCtx.QueryWithData( - fmt.Sprintf("custom/%s/validator_commission", queryRoute), + fmt.Sprintf("custom/%s/%s", queryRoute, distr.QueryValidatorCommission), cdc.MustMarshalJSON(distr.NewQueryValidatorCommissionParams(validatorAddr)), ) } diff --git a/x/distribution/keeper/querier.go b/x/distribution/keeper/querier.go index ac40700c5..6b7ca4ae5 100644 --- a/x/distribution/keeper/querier.go +++ b/x/distribution/keeper/querier.go @@ -241,7 +241,7 @@ func queryDelegatorTotalRewards(ctx sdk.Context, _ []string, req abci.RequestQue // cache-wrap context as to not persist state changes during querying ctx, _ = ctx.CacheContext() - var totalRewards sdk.DecCoins + totalRewards := sdk.DecCoins{} k.stakingKeeper.IterateDelegations( ctx, params.DelegatorAddress,