diff --git a/x/staking/keeper/grpc_query.go b/x/staking/keeper/grpc_query.go index 777c1e877..435b7e107 100644 --- a/x/staking/keeper/grpc_query.go +++ b/x/staking/keeper/grpc_query.go @@ -133,9 +133,13 @@ func (k Querier) ValidatorUnbondingDelegations(c context.Context, req *types.Que ctx := sdk.UnwrapSDKContext(c) store := ctx.KVStore(k.storeKey) - ubdStore := prefix.NewStore(store, types.GetUBDsByValIndexKey(req.ValidatorAddr)) + srcValPrefix := types.GetUBDsByValIndexKey(req.ValidatorAddr) + ubdStore := prefix.NewStore(store, srcValPrefix) pageRes, err := query.Paginate(ubdStore, req.Pagination, func(key []byte, value []byte) error { - ubd, err := types.UnmarshalUBD(k.cdc, value) + storeKey := types.GetUBDKeyFromValIndexKey(append(srcValPrefix, key...)) + storeValue := store.Get(storeKey) + + ubd, err := types.UnmarshalUBD(k.cdc, storeValue) if err != nil { return err } diff --git a/x/staking/keeper/grpc_query_test.go b/x/staking/keeper/grpc_query_test.go index 7fd2ee7dd..f6fa93694 100644 --- a/x/staking/keeper/grpc_query_test.go +++ b/x/staking/keeper/grpc_query_test.go @@ -706,6 +706,7 @@ func (suite *KeeperTestSuite) TestGRPCQueryValidatorUnbondingDelegations() { suite.NoError(err) suite.Equal(uint64(1), res.Pagination.Total) suite.Equal(1, len(res.UnbondingResponses)) + suite.Equal(res.UnbondingResponses[0].ValidatorAddress, val1.GetOperator()) } else { suite.Error(err) suite.Nil(res)