Skip to content

Instantly share code, notes, and snippets.

@chrisjbillington
Created May 1, 2024 09:35
Show Gist options
  • Save chrisjbillington/338d98f3aaa12e014ada8c29b1e3dcdc to your computer and use it in GitHub Desktop.
Save chrisjbillington/338d98f3aaa12e014ada8c29b1e3dcdc to your computer and use it in GitHub Desktop.
import time
import requests
SUPABASE_URL = "https://pxidrgkatumlvfqaxcll.supabase.co"
SUPABASE_ANON_KEY = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InB4aWRyZ2thdHVtbHZmcWF4Y2xsIiwicm9sZSI6ImFub24iLCJpYXQiOjE2Njg5OTUzOTgsImV4cCI6MTk4NDU3MTM5OH0.d_yYtASLzAoIIGdXUBIgRAGLBnNow7JG2SoaNMQ8ySg"
HEADERS = {"Apikey": SUPABASE_ANON_KEY}
def get_creator_markets(creator_id, limit=1000):
endpoint = f"{SUPABASE_URL}/rest/v1/contracts"
params = {
"select": "*",
"order": "created_time.desc",
"limit": str(limit),
"creator_id": f"eq.{creator_id}",
}
response = requests.get(endpoint, headers=HEADERS, params=params, timeout=30)
if response.status_code == 200:
return response.json()
else:
raise ValueError(f"Error {response.status_code}: {response.text}")
def get_market_bets(
contract_id,
limit=10000,
before_time=None,
include_redemptions=False,
):
endpoint = f"{SUPABASE_URL}/rest/v1/contract_bets"
params = {
"select": "*",
"order": "created_time.desc",
"limit": str(limit),
"contract_id": f"eq.{contract_id}",
}
if before_time is not None:
params["created_time"] = f"lt.{before_time}"
if not include_redemptions:
params["data->>isRedemption"] = "eq.false"
response = requests.get(endpoint, headers=HEADERS, params=params, timeout=30)
if response.status_code == 200:
return response.json()
else:
raise ValueError(f"Error {response.status_code}: {response.text}")
total_traders = 0
MANIFOLD_POLITICS = "vuI5upWB8yU00rP7yxj95J2zd952"
markets = get_creator_markets(MANIFOLD_POLITICS)
for i, market in enumerate(markets):
bets = get_market_bets(market['id'])
n_traders = len(set(bet['user_id'] for bet in bets))
total_traders += n_traders
print(f"{i+1}/{len(markets)}: {n_traders} traders ({total_traders} total traders)")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment