Adds investmentValue to group leaderboard calculation
This commit is contained in:
parent
59f3936dad
commit
3b626bccc4
|
@ -11,6 +11,11 @@ const computeInvestmentValue = (
|
||||||
) => {
|
) => {
|
||||||
return sumBy(bets, (bet) => {
|
return sumBy(bets, (bet) => {
|
||||||
const contract = contractsDict[bet.contractId]
|
const contract = contractsDict[bet.contractId]
|
||||||
|
return computeInvestmentValueForBet(bet, contract)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export const computeInvestmentValueForBet = (bet: Bet, contract: Contract) => {
|
||||||
if (!contract || contract.isResolved) return 0
|
if (!contract || contract.isResolved) return 0
|
||||||
if (bet.sale || bet.isSold) return 0
|
if (bet.sale || bet.isSold) return 0
|
||||||
|
|
||||||
|
@ -18,7 +23,6 @@ const computeInvestmentValue = (
|
||||||
const value = payout - (bet.loanAmount ?? 0)
|
const value = payout - (bet.loanAmount ?? 0)
|
||||||
if (isNaN(value)) return 0
|
if (isNaN(value)) return 0
|
||||||
return value
|
return value
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const computeTotalPool = (userContracts: Contract[], startTime = 0) => {
|
const computeTotalPool = (userContracts: Contract[], startTime = 0) => {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import { groupBy, sumBy, mapValues, partition } from 'lodash'
|
import { groupBy, sumBy, mapValues, partition } from 'lodash'
|
||||||
|
|
||||||
import { Bet } from './bet'
|
import { Bet } from './bet'
|
||||||
|
import { computeInvestmentValueForBet } from './calculate-metrics'
|
||||||
import { Contract } from './contract'
|
import { Contract } from './contract'
|
||||||
import { getPayouts } from './payouts'
|
import { getPayouts } from './payouts'
|
||||||
|
|
||||||
|
@ -62,7 +63,18 @@ export function scoreUsersByContract(contract: Contract, bets: Bet[]) {
|
||||||
return { userId, payout }
|
return { userId, payout }
|
||||||
})
|
})
|
||||||
|
|
||||||
const netPayouts = [...resolvePayouts, ...salePayouts, ...investments]
|
const investmentValues = openBets.map((bet) => {
|
||||||
|
const { userId } = bet
|
||||||
|
const investmentValue = computeInvestmentValueForBet(bet, contract)
|
||||||
|
return { userId, payout: investmentValue }
|
||||||
|
})
|
||||||
|
|
||||||
|
const netPayouts = [
|
||||||
|
...resolvePayouts,
|
||||||
|
...salePayouts,
|
||||||
|
...investments,
|
||||||
|
...investmentValues,
|
||||||
|
]
|
||||||
|
|
||||||
const userScore = mapValues(
|
const userScore = mapValues(
|
||||||
groupBy(netPayouts, (payout) => payout.userId),
|
groupBy(netPayouts, (payout) => payout.userId),
|
||||||
|
|
Loading…
Reference in New Issue
Block a user