github.com/cosmos/cosmos-sdk@v0.50.10/x/distribution/client/common/common.go (about)

     1  package common
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/cosmos/cosmos-sdk/client"
     7  	sdk "github.com/cosmos/cosmos-sdk/types"
     8  	"github.com/cosmos/cosmos-sdk/x/distribution/types"
     9  )
    10  
    11  // QueryDelegationRewards queries a delegation rewards between a delegator and a
    12  // validator.
    13  func QueryDelegationRewards(clientCtx client.Context, delAddr, valAddr string) ([]byte, int64, error) {
    14  	delegatorAddr, err := sdk.AccAddressFromBech32(delAddr)
    15  	if err != nil {
    16  		return nil, 0, err
    17  	}
    18  
    19  	validatorAddr, err := sdk.ValAddressFromBech32(valAddr)
    20  	if err != nil {
    21  		return nil, 0, err
    22  	}
    23  
    24  	params := types.NewQueryDelegationRewardsParams(delegatorAddr, validatorAddr)
    25  	bz, err := clientCtx.LegacyAmino.MarshalJSON(params)
    26  	if err != nil {
    27  		return nil, 0, fmt.Errorf("failed to marshal params: %w", err)
    28  	}
    29  
    30  	route := fmt.Sprintf("custom/%s/%s", types.ModuleName, types.QueryDelegationRewards)
    31  	return clientCtx.QueryWithData(route, bz)
    32  }