github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/x/mint/internal/keeper/querier.go (about) 1 package keeper 2 3 import ( 4 abci "github.com/fibonacci-chain/fbc/libs/tendermint/abci/types" 5 6 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/codec" 7 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 8 sdkerrors "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types/errors" 9 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/mint/internal/types" 10 ) 11 12 // NewQuerier returns a minting Querier handler. 13 func NewQuerier(k Keeper) 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) 18 case types.QueryTreasures: 19 return queryTreasures(ctx, k) 20 case types.QueryBlockRewards: 21 return queryBlockRewards(ctx, k) 22 default: 23 return nil, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unknown query path: %s", path[0]) 24 } 25 } 26 } 27 28 func queryTreasures(ctx sdk.Context, k Keeper) ([]byte, error) { 29 treasures := k.GetTreasures(ctx) 30 res, err := codec.MarshalJSONIndent(k.cdc, treasures) 31 if err != nil { 32 return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) 33 } 34 35 return res, nil 36 } 37 func queryParams(ctx sdk.Context, k Keeper) ([]byte, error) { 38 params := k.GetParams(ctx) 39 40 res, err := codec.MarshalJSONIndent(k.cdc, params) 41 if err != nil { 42 return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) 43 } 44 45 return res, nil 46 } 47 48 func queryBlockRewards(ctx sdk.Context, k Keeper) ([]byte, error) { 49 minter := k.GetMinterCustom(ctx) 50 params := k.GetParams(ctx) 51 52 farmingAmount := minter.MintedPerBlock.MulDecTruncate(params.FarmProportion) 53 blockAmount := minter.MintedPerBlock.Sub(farmingAmount) 54 55 res, err := codec.MarshalJSONIndent(k.cdc, types.MinterCustom{ 56 MintedPerBlock: blockAmount, 57 NextBlockToUpdate: minter.NextBlockToUpdate, 58 }) 59 if err != nil { 60 return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) 61 } 62 63 return res, nil 64 } 65 66 func queryInflation(ctx sdk.Context, k Keeper) ([]byte, error) { 67 minter := k.GetMinter(ctx) 68 69 res, err := codec.MarshalJSONIndent(k.cdc, minter.Inflation) 70 if err != nil { 71 return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) 72 } 73 74 return res, nil 75 } 76 77 func queryAnnualProvisions(ctx sdk.Context, k Keeper) ([]byte, error) { 78 minter := k.GetMinter(ctx) 79 80 res, err := codec.MarshalJSONIndent(k.cdc, minter.AnnualProvisions) 81 if err != nil { 82 return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) 83 } 84 85 return res, nil 86 }