Skip to content

Commit

Permalink
added function to get a single aggregated value
Browse files Browse the repository at this point in the history
  • Loading branch information
scottburch committed Mar 18, 2021
1 parent c4b0176 commit f2d3c1f
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 3 deletions.
8 changes: 8 additions & 0 deletions x/aggregator/keeper/keeper.go
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,14 @@ func (k Keeper) SearchAggValueBatchKeys(ctx sdk.Context, previousKey string, lim
return batches
}

func (k Keeper) GetAggregatedValue(ctx sdk.Context, batch string, pair string) AggregatorValue {
store := k.GetAggValueStore(ctx)
bz := store.Get(MakeAggStoreKey(batch, pair))
var value AggregatorValue
k.cdc.MustUnmarshalBinaryBare(bz, &value)
return value
}

func (k Keeper) SearchValues(ctx sdk.Context, prefix string, page uint, limit uint, reverse bool) []AggregatorValue {
if page == 0 {
page = 1
Expand Down
9 changes: 9 additions & 0 deletions x/aggregator/keeper/querier.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ func NewQuerier(k Keeper) sdk.Querier {
return querySearchValues(ctx, req, k)
case types.QuerySearchBatchKeys:
return querySearchBatchKeys(ctx, req, k)
case types.QueryGetAggregatedValue:
return queryGetAggregatedValue(ctx, req, k)
default:
return nil, sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "unknown aggregator query endpoint")
}
Expand All @@ -35,6 +37,13 @@ func querySearchValues(ctx sdk.Context, req abci.RequestQuery, k Keeper) ([]byte
return x, nil
}

func queryGetAggregatedValue(ctx sdk.Context, req abci.RequestQuery, k Keeper) ([]byte, error) {
var query types.QueryReqGetAggregatorValue
k.cdc.MustUnmarshalJSON(req.Data, &query)
results := k.GetAggregatedValue(ctx, query.Batch, query.Pair)
return k.cdc.MustMarshalJSON(results), nil
}

func querySearchBatchKeys(ctx sdk.Context, req abci.RequestQuery, k Keeper) ([]byte, error) {
var query types.QueryReqSearchBatches
k.cdc.MustUnmarshalJSON(req.Data, &query)
Expand Down
12 changes: 9 additions & 3 deletions x/aggregator/types/querier.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@ package types

// Query endpoints supported by the aggregator querier
const (
QueryParams = "queryParams"
QuerySearchValues = "searchValues"
QuerySearchBatchKeys = "searchBatchKeys"
QueryParams = "queryParams"
QuerySearchValues = "searchValues"
QuerySearchBatchKeys = "searchBatchKeys"
QueryGetAggregatedValue = "getAggregatedValue"
)

type QueryReqSearchValues struct {
Expand All @@ -14,6 +15,11 @@ type QueryReqSearchValues struct {
Limit uint
}

type QueryReqGetAggregatorValue struct {
Batch string
Pair string
}

type QueryReqSearchBatches struct {
PreviousBatch string
Reverse bool
Expand Down

0 comments on commit f2d3c1f

Please sign in to comment.