github.com/Finschia/finschia-sdk@v0.48.1/x/mint/keeper/querier.go (about)

     1  package keeper
     2  
     3  import (
     4  	abci "github.com/tendermint/tendermint/abci/types"
     5  
     6  	"github.com/Finschia/finschia-sdk/codec"
     7  	sdk "github.com/Finschia/finschia-sdk/types"
     8  	sdkerrors "github.com/Finschia/finschia-sdk/types/errors"
     9  	"github.com/Finschia/finschia-sdk/x/mint/types"
    10  )
    11  
    12  // NewQuerier returns a minting Querier handler.
    13  func NewQuerier(k Keeper, legacyQuerierCdc *codec.LegacyAmino) sdk.Querier {
    14  	return func(ctx sdk.Context, path []string, _ abci.RequestQuery) ([]byte, error) {
    15  		switch path[0] {
    16  		case types.QueryParameters:
    17  			return queryParams(ctx, k, legacyQuerierCdc)
    18  
    19  		case types.QueryInflation:
    20  			return queryInflation(ctx, k, legacyQuerierCdc)
    21  
    22  		case types.QueryAnnualProvisions:
    23  			return queryAnnualProvisions(ctx, k, legacyQuerierCdc)
    24  
    25  		default:
    26  			return nil, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unknown query path: %s", path[0])
    27  		}
    28  	}
    29  }
    30  
    31  func queryParams(ctx sdk.Context, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ([]byte, error) {
    32  	params := k.GetParams(ctx)
    33  
    34  	res, err := codec.MarshalJSONIndent(legacyQuerierCdc, params)
    35  	if err != nil {
    36  		return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error())
    37  	}
    38  
    39  	return res, nil
    40  }
    41  
    42  func queryInflation(ctx sdk.Context, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ([]byte, error) {
    43  	minter := k.GetMinter(ctx)
    44  
    45  	res, err := codec.MarshalJSONIndent(legacyQuerierCdc, minter.Inflation)
    46  	if err != nil {
    47  		return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error())
    48  	}
    49  
    50  	return res, nil
    51  }
    52  
    53  func queryAnnualProvisions(ctx sdk.Context, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ([]byte, error) {
    54  	minter := k.GetMinter(ctx)
    55  
    56  	res, err := codec.MarshalJSONIndent(legacyQuerierCdc, minter.AnnualProvisions)
    57  	if err != nil {
    58  		return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error())
    59  	}
    60  
    61  	return res, nil
    62  }