diff --git a/common/calculate-metrics.ts b/common/calculate-metrics.ts index a4028153..3aad1a9c 100644 --- a/common/calculate-metrics.ts +++ b/common/calculate-metrics.ts @@ -11,20 +11,16 @@ const computeInvestmentValue = ( ) => { return sumBy(bets, (bet) => { const contract = contractsDict[bet.contractId] - return computeInvestmentValueForBet(bet, contract) + if (!contract || contract.isResolved) return 0 + if (bet.sale || bet.isSold) return 0 + + const payout = calculatePayout(contract, bet, 'MKT') + const value = payout - (bet.loanAmount ?? 0) + if (isNaN(value)) return 0 + return value }) } -export const computeInvestmentValueForBet = (bet: Bet, contract: Contract) => { - if (!contract || contract.isResolved) return 0 - if (bet.sale || bet.isSold) return 0 - - const payout = calculatePayout(contract, bet, 'MKT') - const value = payout - (bet.loanAmount ?? 0) - if (isNaN(value)) return 0 - return value -} - const computeTotalPool = (userContracts: Contract[], startTime = 0) => { const periodFilteredContracts = userContracts.filter( (contract) => contract.createdTime >= startTime diff --git a/common/scoring.ts b/common/scoring.ts index 397a204b..8e197e71 100644 --- a/common/scoring.ts +++ b/common/scoring.ts @@ -1,7 +1,7 @@ import { groupBy, sumBy, mapValues, partition } from 'lodash' import { Bet } from './bet' -import { computeInvestmentValueForBet } from './calculate-metrics' +import { getContractBetMetrics } from './calculate' import { Contract } from './contract' import { getPayouts } from './payouts' @@ -63,17 +63,24 @@ export function scoreUsersByContract(contract: Contract, bets: Bet[]) { return { userId, payout } }) - const investmentValues = openBets.map((bet) => { + const profits = openBets.map((bet) => { const { userId } = bet - const investmentValue = computeInvestmentValueForBet(bet, contract) - return { userId, payout: investmentValue } + if (contract.isResolved) { + return { userId: userId, payout: 0 } + } + const payout = getContractBetMetrics(contract, [bet]).payout + console.log({ + userId: userId, + metrics: getContractBetMetrics(contract, [bet]), + }) + return { userId: userId, payout: payout } }) const netPayouts = [ ...resolvePayouts, ...salePayouts, ...investments, - ...investmentValues, + ...profits, ] const userScore = mapValues(