From 8488e9aaee0782c88143e6bb6b18298297a0c6c6 Mon Sep 17 00:00:00 2001 From: Tom Robiquet Date: Mon, 25 Jul 2022 14:29:13 +0200 Subject: [PATCH] Type updates (#203) * Update dispute mechanism property to match runtime and correct authorised address type * Break out mdm types for ease of use and add type guard * add export from index file * fix --- packages/sdk/src/models/market.ts | 4 ++-- packages/sdk/src/types/guards.ts | 10 ++++++++++ packages/sdk/src/types/index.ts | 16 ++++++++++++---- 3 files changed, 24 insertions(+), 6 deletions(-) create mode 100644 packages/sdk/src/types/guards.ts diff --git a/packages/sdk/src/models/market.ts b/packages/sdk/src/models/market.ts index 4257a2d..6d55627 100644 --- a/packages/sdk/src/models/market.ts +++ b/packages/sdk/src/models/market.ts @@ -54,7 +54,7 @@ class Market { /** Timestamp at which market should end */ public end: BigInt; - public mdm: MarketDisputeMechanism; + public disputeMechanism: MarketDisputeMechanism; /** The description of the market. */ public description: string; /** The market question. */ @@ -93,7 +93,7 @@ class Market { status: this.status, report: this.report, resolvedOutcome: this.resolvedOutcome, - mdm: this.mdm, + disputeMechanism: this.disputeMechanism, outcomeAssets: this.outcomeAssets, end: this.end, } = market); diff --git a/packages/sdk/src/types/guards.ts b/packages/sdk/src/types/guards.ts new file mode 100644 index 0000000..cd99f12 --- /dev/null +++ b/packages/sdk/src/types/guards.ts @@ -0,0 +1,10 @@ +import { AuthorisedDisputeMechanism, MarketDisputeMechanism } from "."; + +export const isAuthorisedDisputeMechanism = ( + marketDisputeMechanism: MarketDisputeMechanism +): marketDisputeMechanism is AuthorisedDisputeMechanism => { + return ( + (marketDisputeMechanism as AuthorisedDisputeMechanism).authorized !== + undefined + ); +}; diff --git a/packages/sdk/src/types/index.ts b/packages/sdk/src/types/index.ts index 5f708d8..cbd38ab 100644 --- a/packages/sdk/src/types/index.ts +++ b/packages/sdk/src/types/index.ts @@ -122,7 +122,7 @@ export type MarketResponse = { status: string; report: Report | null; resolvedOutcome: OutcomeReport | null; - mdm: MarketDisputeMechanism; + disputeMechanism: MarketDisputeMechanism; outcomeAssets: Asset[]; end: BigInt; }; @@ -189,10 +189,16 @@ export type MarketTypeOf = { Categorical: number } | { Scalar: number[] }; export type ScoringRule = "CPMM" | "RikiddoSigmoidFeeMarketEma"; +export type AuthorisedDisputeMechanism = { authorized: string }; + +export type CourtDisputeMechanism = { Court: null }; + +export type SimpleDisputeMechanism = { SimpleDisputes: null }; + export type MarketDisputeMechanism = - | { Authorized: number } - | { Court: null } - | { SimpleDisputes: null }; + | AuthorisedDisputeMechanism + | CourtDisputeMechanism + | SimpleDisputeMechanism; export type MarketDispute = { at: number; @@ -314,3 +320,5 @@ export type ActiveAssetsResponse = { qty: string; price: number; }[]; + +export * from "./guards";