kba / routes /fairness.js
ShieldX's picture
Upload 24 files
e14bacb verified
const router = require('express').Router();
const StrikeHistory = require('../models/StrikeHistory');
const crypto = require('crypto');
// PUBLIC — no verify middleware
router.get('/verify/:date', async (req, res) => {
try {
const dayStart = new Date(req.params.date);
dayStart.setHours(0,0,0,0);
const dayEnd = new Date(dayStart);
dayEnd.setHours(23,59,59,999);
const strike = await StrikeHistory.findOne({
date: { $gte: dayStart, $lte: dayEnd }
}).lean();
if (!strike) {
return res.status(404).json({ error: 'No strike found for this date' });
}
// Recompute hash
const recomputedHash = crypto
.createHash('sha256')
.update(JSON.stringify(strike.audit_payload))
.digest('hex');
res.json({
date: strike.date,
target_price: strike.target_price,
winning_digits: strike.winning_digits,
audit_hash: strike.audit_hash,
recomputed_hash: recomputedHash,
is_valid: recomputedHash === strike.audit_hash,
audit_payload: strike.audit_payload,
winners: strike.winners.map(w => ({
tier: w.tier,
amount: w.amount,
rank: w.rank,
kus_id: w.kus_id
}))
});
} catch (err) {
console.log(err);
res.status(500).json({ error: 'Verification failed' });
}
});
module.exports = router;