Make bet calculations less wrong

This commit is contained in:
Marshall Polaris 2022-08-28 01:31:42 -07:00
parent 6202fdfc95
commit be62b9c519
3 changed files with 17 additions and 21 deletions

View File

@ -394,13 +394,11 @@ export function BetsSummary(props: {
const { hasShares, invested, profitPercent, payout, profit, totalShares } = const { hasShares, invested, profitPercent, payout, profit, totalShares } =
getContractBetMetrics(contract, bets) getContractBetMetrics(contract, bets)
const excludeSalesAndAntes = bets.filter( const excludeSales = bets.filter((b) => !b.isSold && !b.sale)
(b) => !b.isAnte && !b.isSold && !b.sale const yesWinnings = sumBy(excludeSales, (bet) =>
)
const yesWinnings = sumBy(excludeSalesAndAntes, (bet) =>
calculatePayout(contract, bet, 'YES') calculatePayout(contract, bet, 'YES')
) )
const noWinnings = sumBy(excludeSalesAndAntes, (bet) => const noWinnings = sumBy(excludeSales, (bet) =>
calculatePayout(contract, bet, 'NO') calculatePayout(contract, bet, 'NO')
) )

View File

@ -30,17 +30,15 @@ export function ContractTabs(props: {
const { contract, user, tips } = props const { contract, user, tips } = props
const { outcomeType } = contract const { outcomeType } = contract
const updatedBets = useBets(contract.id, { const bets = useBets(contract.id) ?? props.bets
filterChallenges: false, const lps = useLiquidity(contract.id) ?? []
filterRedemptions: true,
}) const userBets =
const bets = updatedBets ?? props.bets user && bets.filter((bet) => !bet.isAnte && bet.userId === user.id)
const userBets = user && bets.filter((bet) => bet.userId === user.id)
const visibleBets = bets.filter( const visibleBets = bets.filter(
(bet) => !bet.isAnte && !bet.isRedemption && bet.amount !== 0 (bet) => !bet.isAnte && !bet.isRedemption && bet.amount !== 0
) )
const liquidityProvisions = const visibleLps = lps.filter((l) => !l.isAnte && l.amount > 0)
useLiquidity(contract.id)?.filter((l) => !l.isAnte && l.amount > 0) ?? []
// Load comments here, so the badge count will be correct // Load comments here, so the badge count will be correct
const updatedComments = useComments(contract.id) const updatedComments = useComments(contract.id)
@ -50,7 +48,7 @@ export function ContractTabs(props: {
<ContractBetsActivity <ContractBetsActivity
contract={contract} contract={contract}
bets={visibleBets} bets={visibleBets}
liquidityProvisions={liquidityProvisions} lps={visibleLps}
/> />
) )

View File

@ -16,9 +16,9 @@ import { Col } from 'web/components/layout/col'
export function ContractBetsActivity(props: { export function ContractBetsActivity(props: {
contract: Contract contract: Contract
bets: Bet[] bets: Bet[]
liquidityProvisions: LiquidityProvision[] lps: LiquidityProvision[]
}) { }) {
const { contract, bets, liquidityProvisions } = props const { contract, bets, lps } = props
const items = [ const items = [
...bets.map((bet) => ({ ...bets.map((bet) => ({
@ -26,10 +26,10 @@ export function ContractBetsActivity(props: {
id: bet.id + '-' + bet.isSold, id: bet.id + '-' + bet.isSold,
bet, bet,
})), })),
...liquidityProvisions.map((liquidity) => ({ ...lps.map((lp) => ({
type: 'liquidity' as const, type: 'liquidity' as const,
id: liquidity.id, id: lp.id,
liquidity, lp,
})), })),
] ]
@ -37,7 +37,7 @@ export function ContractBetsActivity(props: {
item.type === 'bet' item.type === 'bet'
? -item.bet.createdTime ? -item.bet.createdTime
: item.type === 'liquidity' : item.type === 'liquidity'
? -item.liquidity.createdTime ? -item.lp.createdTime
: undefined : undefined
) )
@ -47,7 +47,7 @@ export function ContractBetsActivity(props: {
item.type === 'bet' ? ( item.type === 'bet' ? (
<FeedBet key={item.id} contract={contract} bet={item.bet} /> <FeedBet key={item.id} contract={contract} bet={item.bet} />
) : ( ) : (
<FeedLiquidity key={item.id} liquidity={item.liquidity} /> <FeedLiquidity key={item.id} liquidity={item.lp} />
) )
)} )}
</Col> </Col>