claimhead.gno
2.21 Kb · 99 lines
1package kourt
2import (
3 "strconv"
4 "strings"
5)
6func ClaimHead(courtSlug string, claimID uint64, window int64) string {
7 c := mustCourt(courtSlug)
8 mustClaim(c, claimID)
9 b := strings.Builder{}
10 n := func(v int64) { b.WriteString(strconv.FormatInt(v, 10) + "\t") }
11 i := func(v int) { b.WriteString(strconv.Itoa(v) + "\t") }
12 f := func(v bool) { b.WriteString(boolDigit(v) + "\t") }
13 t := func(v string) { b.WriteString(v + "\t") }
14 yes, no := StakePools(courtSlug, claimID)
15 cy, cn := PoolConviction(courtSlug, claimID)
16 oi, oiM := TrailingOI(courtSlug, claimID, window)
17 ty, tyM := TrailingYes(courtSlug, claimID, window)
18 n(yes)
19 n(no)
20 n(cy)
21 n(cn)
22 n(oi)
23 f(oiM)
24 n(ty)
25 f(tyM)
26 answered := HasAnswer(courtSlug, claimID)
27 settled := Settled(courtSlug, claimID)
28 disputeOpen := DisputeOpen(courtSlug, claimID)
29 provClose := ProvClose(courtSlug, claimID)
30 f(answered)
31 f(disputeOpen)
32 f(settled)
33 f(provClose)
34 i(Provisional(courtSlug, claimID))
35 f(ClaimClosed(courtSlug, claimID))
36 if answered {
37 who := Answerer(courtSlug, claimID)
38 i(AnswerVerdict(courtSlug, claimID))
39 n(AnswerBond(courtSlug, claimID))
40 n(SettleDeadline(courtSlug, claimID))
41 t(who.String())
42 i(AnswerRecord(courtSlug, who))
43 } else {
44 i(-1)
45 n(0)
46 n(0)
47 t("")
48 i(0)
49 }
50 if answered && !settled {
51 n(FailedRounds(courtSlug, claimID))
52 n(DisputeBondNext(courtSlug, claimID))
53 n(EscrowUntil(courtSlug, claimID))
54 if disputeOpen {
55 n(QuorumFloorOf(courtSlug, claimID))
56 n(DisputeVoteCloses(courtSlug, claimID))
57 } else {
58 n(0)
59 n(0)
60 }
61 } else {
62 n(0)
63 n(0)
64 n(0)
65 n(0)
66 n(0)
67 }
68 if settled && !provClose {
69 i(Verdict(courtSlug, claimID))
70 t(VerdictRoute(courtSlug, claimID))
71 } else {
72 i(-1)
73 t("")
74 }
75 cryst := RewardsOpened(courtSlug, claimID)
76 f(cryst)
77 if cryst {
78 w, au, an, ca := DrawSlices(courtSlug, claimID)
79 n(w)
80 n(au)
81 n(an)
82 n(ca)
83 } else {
84 n(0)
85 n(0)
86 n(0)
87 n(0)
88 }
89 t(ClaimAuthor(courtSlug, claimID).String())
90 f(HiddenFromListing(courtSlug, claimID))
91 f(TextRedacted(courtSlug, claimID))
92 f(ClaimPurged(courtSlug, claimID))
93 f(ClaimSeeded(courtSlug, claimID))
94 n(CourtStakeOpenDelay(courtSlug))
95 i(BoardSize(courtSlug, claimID))
96 f(BoardOpen(courtSlug, claimID))
97 return strings.TrimSuffix(b.String(), "\t")
98}
99const claimHeadFields = 39