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, ¶ms) 27 if err != nil { 28 return nil, sdkerrors.Wrap(sdkerrors.ErrJSONUnmarshal, err.Error()) 29 } 30 //delegationResps, err := k.DelegatorDelegations(ctx, ¶ms) 31 32 denomTracesResp, err := k.DenomTraces(sdk.WrapSDKContext(ctx), ¶ms) 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 }