github.com/KiraCore/sekai@v0.3.43/x/basket/keeper/grpc_query.go (about) 1 package keeper 2 3 import ( 4 "context" 5 6 "github.com/KiraCore/sekai/x/basket/types" 7 sdk "github.com/cosmos/cosmos-sdk/types" 8 ) 9 10 type Querier struct { 11 keeper Keeper 12 } 13 14 func NewQuerier(keeper Keeper) types.QueryServer { 15 return &Querier{keeper: keeper} 16 } 17 18 var _ types.QueryServer = Querier{} 19 20 func (q Querier) TokenBasketById(c context.Context, request *types.QueryTokenBasketByIdRequest) (*types.QueryTokenBasketByIdResponse, error) { 21 ctx := sdk.UnwrapSDKContext(c) 22 basket, err := q.keeper.GetBasketById(ctx, request.Id) 23 if err != nil { 24 return nil, err 25 } 26 return &types.QueryTokenBasketByIdResponse{ 27 Basket: &basket, 28 }, nil 29 } 30 31 func (q Querier) TokenBasketByDenom(c context.Context, request *types.QueryTokenBasketByDenomRequest) (*types.QueryTokenBasketByDenomResponse, error) { 32 ctx := sdk.UnwrapSDKContext(c) 33 basket, err := q.keeper.GetBasketByDenom(ctx, request.Denom) 34 if err != nil { 35 return nil, err 36 } 37 return &types.QueryTokenBasketByDenomResponse{ 38 Basket: &basket, 39 }, nil 40 } 41 42 func (q Querier) TokenBaskets(c context.Context, request *types.QueryTokenBasketsRequest) (*types.QueryTokenBasketsResponse, error) { 43 ctx := sdk.UnwrapSDKContext(c) 44 45 // if `tokens` flag is set (comma separated array of strings) return 46 // list of all `id`'s of all the baskets that accept any of the specified `denom`’s as deposit 47 baskets := q.keeper.GetAllBaskets(ctx) 48 49 if len(request.Tokens) > 0 { 50 filtered := []types.Basket{} 51 for _, basket := range baskets { 52 if basket.DenomExists(request.Tokens) { 53 if request.DerivativesOnly && !basket.DerivativeBasket() { 54 continue 55 } 56 filtered = append(filtered, basket) 57 } 58 } 59 return &types.QueryTokenBasketsResponse{ 60 Baskets: filtered, 61 }, nil 62 } 63 64 return &types.QueryTokenBasketsResponse{ 65 Baskets: baskets, 66 }, nil 67 } 68 69 func (q Querier) BaksetHistoricalMints(c context.Context, request *types.QueryBasketHistoricalMintsRequest) (*types.QueryBasketHistoricalMintsResponse, error) { 70 ctx := sdk.UnwrapSDKContext(c) 71 basket, err := q.keeper.GetBasketById(ctx, request.BasketId) 72 if err != nil { 73 return nil, err 74 } 75 76 return &types.QueryBasketHistoricalMintsResponse{ 77 Amount: q.keeper.GetLimitsPeriodMintAmount(ctx, request.BasketId, basket.LimitsPeriod), 78 }, nil 79 } 80 81 func (q Querier) BaksetHistoricalBurns(c context.Context, request *types.QueryBasketHistoricalBurnsRequest) (*types.QueryBasketHistoricalBurnsResponse, error) { 82 ctx := sdk.UnwrapSDKContext(c) 83 basket, err := q.keeper.GetBasketById(ctx, request.BasketId) 84 if err != nil { 85 return nil, err 86 } 87 88 return &types.QueryBasketHistoricalBurnsResponse{ 89 Amount: q.keeper.GetLimitsPeriodBurnAmount(ctx, request.BasketId, basket.LimitsPeriod), 90 }, nil 91 } 92 93 func (q Querier) BaksetHistoricalSwaps(c context.Context, request *types.QueryBasketHistoricalSwapsRequest) (*types.QueryBasketHistoricalSwapsResponse, error) { 94 ctx := sdk.UnwrapSDKContext(c) 95 basket, err := q.keeper.GetBasketById(ctx, request.BasketId) 96 if err != nil { 97 return nil, err 98 } 99 100 return &types.QueryBasketHistoricalSwapsResponse{ 101 Amount: q.keeper.GetLimitsPeriodSwapAmount(ctx, request.BasketId, basket.LimitsPeriod), 102 }, nil 103 }