49 lines
1002 B
TypeScript
49 lines
1002 B
TypeScript
|
import { calcStartPool } from "./antes";
|
||
|
import { Contract } from "./contract";
|
||
|
import { User } from "./user";
|
||
|
|
||
|
export function getNewContract(
|
||
|
id: string,
|
||
|
slug: string,
|
||
|
creator: User,
|
||
|
question: string,
|
||
|
description: string,
|
||
|
initialProb: number,
|
||
|
ante?: number,
|
||
|
closeTime?: number
|
||
|
) {
|
||
|
const { startYes, startNo, poolYes, poolNo } = calcStartPool(
|
||
|
initialProb,
|
||
|
ante
|
||
|
);
|
||
|
|
||
|
const contract: Contract = {
|
||
|
id,
|
||
|
slug,
|
||
|
outcomeType: "BINARY",
|
||
|
|
||
|
creatorId: creator.id,
|
||
|
creatorName: creator.name,
|
||
|
creatorUsername: creator.username,
|
||
|
|
||
|
question: question.trim(),
|
||
|
description: description.trim(),
|
||
|
|
||
|
startPool: { YES: startYes, NO: startNo },
|
||
|
pool: { YES: poolYes, NO: poolNo },
|
||
|
totalShares: { YES: 0, NO: 0 },
|
||
|
totalBets: { YES: 0, NO: 0 },
|
||
|
isResolved: false,
|
||
|
|
||
|
createdTime: Date.now(),
|
||
|
lastUpdatedTime: Date.now(),
|
||
|
|
||
|
volume24Hours: 0,
|
||
|
volume7Days: 0,
|
||
|
};
|
||
|
|
||
|
if (closeTime) contract.closeTime = closeTime;
|
||
|
|
||
|
return contract;
|
||
|
}
|