github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/params/querier.go (about) 1 package params 2 3 import ( 4 "fmt" 5 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/codec" 6 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 7 sdkerrors "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types/errors" 8 abci "github.com/fibonacci-chain/fbc/libs/tendermint/abci/types" 9 10 "github.com/fibonacci-chain/fbc/x/params/types" 11 ) 12 13 // NewQuerier returns all query handlers 14 func NewQuerier(keeper Keeper) sdk.Querier { 15 return func(ctx sdk.Context, path []string, req abci.RequestQuery) ([]byte, sdk.Error) { 16 switch path[0] { 17 case types.QueryParams: 18 return queryParams(ctx, req, keeper) 19 case types.QueryUpgrade: 20 if len(path) != 2 { 21 keeper.Logger(ctx).Error("invalid query path", "path", path) 22 } 23 return queryUpgrade(ctx, path[1], keeper) 24 default: 25 return nil, sdk.ErrUnknownRequest("unknown params query endpoint") 26 } 27 } 28 } 29 30 func queryUpgrade(ctx sdk.Context, name string, keeper Keeper) ([]byte, sdk.Error) { 31 infos := make([]types.UpgradeInfo, 0) 32 33 if len(name) == 0 { 34 // query all upgrade info 35 err := keeper.iterateAllUpgradeInfo(ctx, func(info types.UpgradeInfo) (stop bool) { 36 infos = append(infos, info) 37 return false 38 }) 39 if err != nil { 40 return nil, err 41 } 42 } else { 43 info, err := keeper.readUpgradeInfo(ctx, name) 44 if err != nil { 45 return nil, sdk.ErrInternal(err.Error()) 46 } 47 infos = append(infos, info) 48 } 49 50 bz, err := codec.MarshalJSONIndent(keeper.cdc, infos) 51 if err != nil { 52 return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, fmt.Sprintf("could not marshal result to JSON %s", err.Error())) 53 } 54 return bz, nil 55 } 56 57 func queryParams(ctx sdk.Context, _ abci.RequestQuery, keeper Keeper) ([]byte, sdk.Error) { 58 bz, err := codec.MarshalJSONIndent(keeper.cdc, keeper.GetParams(ctx)) 59 if err != nil { 60 return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, fmt.Sprintf("could not marshal result to JSON %s", err.Error())) 61 } 62 return bz, nil 63 }