When the market closes, I will find the total amount of potential YES and NO payouts that would go to users with a net worth of less than Ṁ25,000, and resolve the market to the option with the greater sum.
I will use net worths at the time of market close. In the unlikely event of a tie, the market will resolve N/A.
Clarification: bots are excluded from the count.
🏅 Top traders
# | Name | Total profit |
---|---|---|
1 | Ṁ2,669 | |
2 | Ṁ1,113 | |
3 | Ṁ875 | |
4 | Ṁ257 | |
5 | Ṁ240 |
People are also trading
It's stabilized at NO (12302.09537785651 vs 15644.566183576379).
@ii @FernandoIrarrazaval are you getting the same?
@Dilon running, tho i added the modification to change Gray Reid to BASE (also am using Firefox):
```
import requests
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
browser = webdriver.Firefox()
# Gets an element by xpath after waiting for it to appear
def get(xpath):
WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.XPATH, xpath)))
return browser.find_element(By.XPATH, xpath)
slug = "this-market-will-resolve-in-order-t"
# Get market id using the API
market_data = requests.get(f"https://manifold.markets/api/v0/slug/{slug}""").json()
market_id = market_data["id"]
# Get current payouts from market id using the API
market_payouts = requests.get(f"https://manifold.markets/api/v0/market/{market_id}/positions").json()
# Transforms a payout dict to a positive (yes) or negative (no) number
def parse(payout):
return sum((2 int(p == "YES") - 1) payout[p] for p in payout.keys())
# Associate payouts with users
user_payouts = []
for payout in market_payouts:
if payout["userUsername"] == 'GrayReid':
payout["userUsername"] = 'BASE'
user_payouts.append({"name": payout["userUsername"], "payout": parse(payout["totalShares"])})
# Determine if users are bots and find net worths
users = []
for user in user_payouts:
# Determine if a user is a bot using the API
user_data = requests.get(f"https://manifold.markets/api/v0/user/{user['name']}").json()
user["isBot"] = user_data["isBot"]
# Scrape the user's net worth
if not user["isBot"]:
user_profile = browser.get(f"https://manifold.markets/{user['name']}")
# Net worth defaults to "---" until updated by javascript
net_worth = "---"
while net_worth == "---":
net_worth = get("//*[@id='__next']/div/div[3]/div[2]/main/div/div[3]/div[2]/div[2]/div[2]/div[2]").text
# Remove leading Ṁ and commas
user["net worth"] = int(net_worth[1:].replace(",", ""))
users.append(user)
# Filter out bots and users with a net worth > 25K
users = [u for u in users if u["isBot"] == False and u["net worth"] < 25000]
# Determine total valid payouts on yes and no
yespayouts = sum(u["payout"] for u in users if u["payout"] > 0)
nopayouts = sum(-u["payout"] for u in users if u["payout"] < 0)
# Final decision
if yespayouts == nopayouts:
print("N/A (payouts equal)")
elif yespayouts > nopayouts:
print(f"YES ({yespayouts} vs {nopayouts})")
else:
print(f"NO ({yespayouts} vs {nopayouts})")
```
Hopefully this code block works
@Dilon Now I got NO (15315.906268116805 vs 15644.566183576382). I think it is because @cloe net worth changed.
@ii @FernandoIrarrazaval Yeah I see that on my end as well now. But at market close their net worth was above 25K, so I think it's safe to resolve NO with that big of a cushion.
@Dilon Well technically their net worth updated 3 minutes after market close. Still, it probably wouldn't matter as NO was winning anyway, though it is close. Is there a list of net worths exactly at market close (or maybe just the net worths that are close to or above 25000)?
@ii I have no way to prove this, but my comment was made before the spike in my net worth? I should have claimed the manalink around 11:50 iirc
@cloe then it depends on if you count the official net worth on your profile or the theoretical? net worth
@ii From my logs, the traders with a net worth > 25K a few minutes after close were: cloe, evergreenemily, and Odoacre.
At close, the script only logged evergreenemily and Odoacre, but for @cloe's net worth to update only a few minutes after that, and based on when they commented, I think it's very probable that their net worth was greater than 25K at close.
Based on what I put in the description, "I will use net worths at the time of market close," I think it makes sense to use the theoretical net worth, as the displayed one did not show the true value at the time of market close.
Luckily we're also in a position where it didn't change the outcome.
Is @cloe a @KyleWan alt? https://manifold.markets/KyleWan/will-riley-change-her-discord-pfp-w#l78imM4yVVILHm8pVyjE this seems suspicious since cloe got above 25000 in net worth at the last second
@ii even if it is, it's a skill issue to not implement stuff of this form. cheating is worth extra points
@ii definitely not lol this was just carefully planned (EDIT: here's some proof counterevidencehttps://manifold.markets/cloe/test-a3f1a2bc6a1b)
@BASE Manifold guidelines prohibit alts for manipulating self-resolving markets. whether this counts as manipulation is debatable but would qualify for a YES or N/A resolution