Change limit prob validation to be only on Binary markets (not numeric)

This commit is contained in:
James Grugett 2022-08-16 15:44:58 -05:00
parent 62728e52b7
commit 814c4aa01d

View File

@ -30,15 +30,7 @@ const bodySchema = z.object({
const binarySchema = z.object({
outcome: z.enum(['YES', 'NO']),
limitProb: z
.number()
.gte(0.001)
.lte(0.999)
.refine(
(p) => Math.round(p * 100) === p * 100,
'limitProb must be in increments of 0.01 (i.e. whole percentage points)'
)
.optional(),
limitProb: z.number().gte(0.001).lte(0.999).optional(),
})
const freeResponseSchema = z.object({
@ -92,6 +84,15 @@ export const placebet = newEndpoint({}, async (req, auth) => {
) {
const { outcome, limitProb } = validate(binarySchema, req.body)
if (limitProb !== undefined && outcomeType === 'BINARY') {
const isRounded = Math.round(limitProb * 100) === limitProb * 100
if (!isRounded)
throw new APIError(
400,
'limitProb must be in increments of 0.01 (i.e. whole percentage points)'
)
}
const unfilledBetsSnap = await trans.get(
getUnfilledBetsQuery(contractDoc)
)