feat: implement comprehensive Polymarket weather analysis service with frontend dashboard and market scanning capabilities
This commit is contained in:
@@ -303,6 +303,7 @@ export const dashboardClient = {
|
||||
cityName: string,
|
||||
options?: {
|
||||
force?: boolean;
|
||||
lite?: boolean;
|
||||
marketSlug?: string | null;
|
||||
targetDate?: string | null;
|
||||
},
|
||||
@@ -318,9 +319,13 @@ export const dashboardClient = {
|
||||
if (options?.marketSlug) {
|
||||
params.set("market_slug", options.marketSlug);
|
||||
}
|
||||
if (options?.lite) {
|
||||
params.set("lite", "true");
|
||||
}
|
||||
const requestKey = [
|
||||
cityName,
|
||||
force ? "force" : "cached",
|
||||
options?.lite ? "lite" : "full",
|
||||
options?.targetDate || "",
|
||||
options?.marketSlug || "",
|
||||
].join("::");
|
||||
|
||||
@@ -369,23 +369,34 @@ export interface MarketScan {
|
||||
temperature_bucket?: ProbabilityBucket | null;
|
||||
model_probability?: number | null;
|
||||
market_price?: number | null;
|
||||
midpoint?: number | null;
|
||||
spread?: number | null;
|
||||
edge_percent?: number | null;
|
||||
signal_label?: string | null;
|
||||
confidence?: string | null;
|
||||
probability_engine?: string | null;
|
||||
probability_calibration_mode?: string | null;
|
||||
yes_token?: MarketToken | null;
|
||||
no_token?: MarketToken | null;
|
||||
yes_buy?: number | null;
|
||||
yes_sell?: number | null;
|
||||
yes_midpoint?: number | null;
|
||||
yes_spread?: number | null;
|
||||
no_buy?: number | null;
|
||||
no_sell?: number | null;
|
||||
no_midpoint?: number | null;
|
||||
no_spread?: number | null;
|
||||
last_trade_price?: number | null;
|
||||
liquidity?: number | null;
|
||||
volume?: number | null;
|
||||
quote_source?: string | null;
|
||||
quote_age_ms?: number | null;
|
||||
price_analysis?: MarketPriceAnalysis | null;
|
||||
sparkline?: number[];
|
||||
top_buckets?: MarketTopBucket[] | null;
|
||||
all_buckets?: MarketTopBucket[] | null;
|
||||
recent_trades?: unknown[];
|
||||
scan_scope?: "lite" | "full" | string | null;
|
||||
websocket?: Record<string, unknown>;
|
||||
}
|
||||
|
||||
|
||||
@@ -283,18 +283,28 @@ export interface MarketScan {
|
||||
temperature_bucket: any | null;
|
||||
model_probability: number | null;
|
||||
market_price: number | null;
|
||||
midpoint?: number | null;
|
||||
spread?: number | null;
|
||||
edge_percent: number | null;
|
||||
signal_label: "BUY YES" | "BUY NO" | "MONITOR";
|
||||
confidence: "low" | "medium" | "high";
|
||||
probability_engine?: string | null;
|
||||
probability_calibration_mode?: string | null;
|
||||
yes_token: MarketToken | null;
|
||||
no_token: MarketToken | null;
|
||||
yes_buy: number | null;
|
||||
yes_sell: number | null;
|
||||
yes_midpoint?: number | null;
|
||||
yes_spread?: number | null;
|
||||
no_buy: number | null;
|
||||
no_sell: number | null;
|
||||
no_midpoint?: number | null;
|
||||
no_spread?: number | null;
|
||||
last_trade_price: number | null;
|
||||
liquidity: number | null;
|
||||
volume: number | null;
|
||||
quote_source?: string | null;
|
||||
quote_age_ms?: number | null;
|
||||
sparkline: number[];
|
||||
top_buckets?: Array<{
|
||||
label?: string | null;
|
||||
@@ -311,6 +321,7 @@ export interface MarketScan {
|
||||
is_primary?: boolean;
|
||||
}>;
|
||||
recent_trades: Trade[];
|
||||
scan_scope?: "lite" | "full" | string | null;
|
||||
websocket: any;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user