Skip to content

Commit

Permalink
Allow market sorting using pool volume (#236)
Browse files Browse the repository at this point in the history
* Adapt to market schema changes

* Add market order `popular`

* Order using pool volume for popular type

* Add new ordering type to cli

* Adapt to poolId query changes
  • Loading branch information
saboonikhil committed Nov 25, 2022
1 parent 927b640 commit b7a6ff3
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 12 deletions.
2 changes: 1 addition & 1 deletion packages/cli/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -884,7 +884,7 @@ program
)
.addOption(
new Option("--order-by <string>", "Order markets by paramater")
.choices(["newest", "end"])
.choices(["newest", "end", "popular"])
.default("newest")
)
.action(
Expand Down
6 changes: 4 additions & 2 deletions packages/sdk/src/models/graphql/market.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ export const FRAGMENT_MARKET_DETAILS = gql`
status
scoringRule
resolvedOutcome
poolId
pool {
poolId
}
scalarType
metadata
marketType {
Expand Down Expand Up @@ -51,7 +53,7 @@ export const FRAGMENT_MARKET_DETAILS = gql`

export type MarketQueryData = {
marketId: number;
poolId: number;
pool: { poolId: number };
marketType: { categorical: string | null; scalar: string | null };
disputeMechanism: {
authorized: boolean | null;
Expand Down
18 changes: 10 additions & 8 deletions packages/sdk/src/models/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -448,7 +448,7 @@ export default class Models {
slug_contains: $marketSlugText
status_eq: "Active"
period: { end_gt: $timestamp }
poolId_gte: 0
pool: { poolId_gte: 0 }
marketId_in: $marketIds
}
orderBy: marketId_DESC
Expand Down Expand Up @@ -903,8 +903,8 @@ export default class Models {
this.api,
this.errorTable
);
if (data.poolId != null) {
market.poolId = data.poolId;
if (data.pool.poolId != null) {
market.poolId = data.pool.poolId;
}
return market;
}
Expand Down Expand Up @@ -982,7 +982,7 @@ export default class Models {
${whereCreatorOrOracle}
creator_eq: $creator
oracle_eq: $oracle
poolId_gte: $minPoolId
pool: { poolId_gte: $minPoolId }
marketId_in: $marketIds
outcomeAssets_containsAny: $assets
}`;
Expand Down Expand Up @@ -1126,13 +1126,15 @@ export default class Models {

const offset = pageSize ? (pageNumber - 1) * pageSize : 0;
let orderingStr = ordering.toUpperCase();
let orderByQuery = `period_end_${orderingStr}`;

if (orderBy === "newest") {
orderingStr = ordering === "asc" ? "DESC" : "ASC";
orderByQuery = `marketId_${orderingStr}`;
} else if (orderBy === "popular") {
orderingStr = ordering === "asc" ? "DESC" : "ASC";
orderByQuery = `pool_volume_${orderingStr}`;
}
const orderByQuery =
orderBy === "newest"
? `marketId_${orderingStr}`
: `period_end_${orderingStr}`;

const variables = {
statuses,
Expand Down
2 changes: 1 addition & 1 deletion packages/sdk/src/types/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ export type MarketStatusText =

export type MarketsOrdering = "asc" | "desc";

export type MarketsOrderBy = "newest" | "end";
export type MarketsOrderBy = "newest" | "end" | "popular";

export type MarketsFilteringOptions = {
statuses?: MarketStatusText[];
Expand Down

0 comments on commit b7a6ff3

Please sign in to comment.