answerbond.gno
0.63 Kb · 22 lines
1package kourt
2func settleAnswerBond(c *Court, cs *claimState) {
3 c.coin.Transfer(c.escrow, cs.answerer, cs.answerBond)
4 cs.answerBond = 0
5}
6func (cs *claimState) sideConv(side int) (hi, lo uint64) {
7 if side == sideYES {
8 return cs.yesConvHi, cs.yesConvLo
9 }
10 return cs.noConvHi, cs.noConvLo
11}
12func bondFloorAt(xbar int64, convHi, convLo uint64) int64 {
13 flat := xbar * bondFloorFlatBps / 10000
14 if draw := mulDiv128(convToCC(convHi, convLo), bondFloorConvBps, 10000); draw > flat {
15 return draw
16 }
17 return flat
18}
19func bondFloorFor(cs *claimState) int64 {
20 hi, lo := cs.sideConv(int(cs.answer))
21 return bondFloorAt(cs.xBarFrozen, hi, lo)
22}