github.com/okex/exchain@v1.8.0/libs/ibc-go/modules/apps/transfer/keeper/querier.go (about)

     1  package keeper
     2  
     3  import (
     4  	"github.com/okex/exchain/libs/cosmos-sdk/codec"
     5  	sdk "github.com/okex/exchain/libs/cosmos-sdk/types"
     6  	sdkerrors "github.com/okex/exchain/libs/cosmos-sdk/types/errors"
     7  	"github.com/okex/exchain/libs/ibc-go/modules/apps/transfer/types"
     8  	abci "github.com/okex/exchain/libs/tendermint/abci/types"
     9  )
    10  
    11  // NewQuerier creates a querier for staking REST endpoints
    12  func NewQuerier(k Keeper) sdk.Querier {
    13  	return func(ctx sdk.Context, path []string, req abci.RequestQuery) (res []byte, err error) {
    14  		switch path[0] {
    15  		case types.QueryDenomTraces:
    16  			return queryDenomTraces(ctx, req, k)
    17  		default:
    18  			return nil, types.ErrUnexpectedEndOfGroupTransfer
    19  		}
    20  	}
    21  }
    22  
    23  func queryDenomTraces(ctx sdk.Context, req abci.RequestQuery, k Keeper) ([]byte, error) {
    24  	var params types.QueryDenomTracesRequest
    25  
    26  	err := types.ModuleCdc.UnmarshalJSON(req.Data, &params)
    27  	if err != nil {
    28  		return nil, sdkerrors.Wrap(sdkerrors.ErrJSONUnmarshal, err.Error())
    29  	}
    30  	//delegationResps, err := k.DelegatorDelegations(ctx, &params)
    31  
    32  	denomTracesResp, err := k.DenomTraces(sdk.WrapSDKContext(ctx), &params)
    33  	if denomTracesResp == nil {
    34  		denomTracesResp = &types.QueryDenomTracesResponse{}
    35  	}
    36  	res, err := codec.MarshalJSONIndent(types.ModuleCdc, denomTracesResp)
    37  	if err != nil {
    38  		return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error())
    39  	}
    40  	return res, nil
    41  }