Search Apps Documentation Source Content File Folder Download Copy Actions Download State String Boolean Number Struct Map Slice Pointer Function Closure Reference Nil Package Type Interface Unknown

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