2025-12-15 14:54:55 +08:00
|
|
|
import requests
|
2025-12-28 17:07:55 +08:00
|
|
|
import json
|
2025-12-15 14:54:55 +08:00
|
|
|
|
2025-12-28 17:07:55 +08:00
|
|
|
GAMMA = "https://gamma-api.polymarket.com"
|
2025-12-15 14:54:55 +08:00
|
|
|
|
2025-12-28 17:07:55 +08:00
|
|
|
def parse_jsonish_list(v):
|
|
|
|
|
if isinstance(v, list):
|
|
|
|
|
return v
|
|
|
|
|
if isinstance(v, str):
|
|
|
|
|
return json.loads(v)
|
|
|
|
|
return []
|
2025-12-15 14:54:55 +08:00
|
|
|
|
2025-12-28 17:07:55 +08:00
|
|
|
def get_tokens_from_slug(slug: str):
|
|
|
|
|
r = requests.get(f"{GAMMA}/markets/slug/{slug}", timeout=20)
|
2025-12-15 15:50:35 +08:00
|
|
|
r.raise_for_status()
|
2025-12-28 17:07:55 +08:00
|
|
|
m = r.json()
|
|
|
|
|
|
|
|
|
|
outcomes = parse_jsonish_list(m.get("outcomes"))
|
|
|
|
|
token_ids = parse_jsonish_list(m.get("clobTokenIds"))
|
|
|
|
|
|
|
|
|
|
mapping = dict(zip(outcomes, token_ids))
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
"question": m.get("question"),
|
|
|
|
|
"market_id": m.get("id"),
|
|
|
|
|
"outcomes": outcomes,
|
|
|
|
|
"token_map": mapping, # {"Up": "...", "Down": "..."}
|
|
|
|
|
}
|
2025-12-15 14:54:55 +08:00
|
|
|
|
2025-12-15 15:50:35 +08:00
|
|
|
if __name__ == "__main__":
|
2025-12-28 17:07:55 +08:00
|
|
|
info = get_tokens_from_slug("eth-updown-15m-1766912400")
|
|
|
|
|
print(info)
|