diff --git a/common/contract.ts b/common/contract.ts index 17c4918e..65aefadb 100644 --- a/common/contract.ts +++ b/common/contract.ts @@ -1,3 +1,5 @@ +import { Answer } from './answer' + export type Contract = { id: string slug: string // auto-generated; must be unique @@ -15,6 +17,7 @@ export type Contract = { outcomeType: 'BINARY' | 'MULTI' | 'FREE_RESPONSE' multiOutcomes?: string[] // Used for outcomeType 'MULTI'. + answers?: Answer[] // Used for outcomeType 'FREE_RESPONSE'. mechanism: 'dpm-2' phantomShares?: { [outcome: string]: number } diff --git a/common/new-contract.ts b/common/new-contract.ts index 263877f1..cc742f2f 100644 --- a/common/new-contract.ts +++ b/common/new-contract.ts @@ -72,6 +72,7 @@ const getFreeAnswerProps = (ante: number) => { pool: { '0': ante }, totalShares: { '0': ante }, totalBets: { '0': ante }, + answers: [], } } diff --git a/functions/src/create-answer.ts b/functions/src/create-answer.ts index 6c28b245..bcb25b03 100644 --- a/functions/src/create-answer.ts +++ b/functions/src/create-answer.ts @@ -99,6 +99,7 @@ export const createAnswer = functions.runWith({ minInstances: 1 }).https.onCall( pool: newPool, totalShares: newTotalShares, totalBets: newTotalBets, + answers: [...(contract.answers ?? []), answer], }) transaction.update(userDoc, { balance: newBalance })