admin
.uverse.addressValue
<gnolang.StringValue>
publisher
.uverse.addressValue
<gnolang.StringValue>
caller
func() .uverse.address- OID
- 0f2c7f…b7e1:4
caller details
requirePublisher
func()- OID
- 0f2c7f…b7e1:6
requirePublisher details
isCanonicalAddress
func(s string) boolisCanonicalAddress accepts only a lowercase, checksummed g1 address.
- OID
- 0f2c7f…b7e1:7
isCanonicalAddress details
SetPublisher
func(addr .uverse.address)SetPublisher replaces the publisher. Admin only.
- OID
- 0f2c7f…b7e1:8
SetPublisher details
GetAdmin
func() stringGetAdmin returns the admin address, for post-deployment checks.
- OID
- 0f2c7f…b7e1:9
GetAdmin details
GetPublisher
func() stringGetPublisher returns the current publisher address.
- OID
- 0f2c7f…b7e1:10
GetPublisher details
edition
typeAn edition keeps each candidate as its validated payload line, in the order added. One string per candidate costs about 160 bytes of storage deposit; a struct in an AVL tree cost about 3,700 bytes (measured on gnodev at the gnoland-1 runtime).
Value
validator_scores.edition
editions
[]*validator_scores.editioneditions holds the sealed editions in order, then at most one open edition, always last.
- OID
- 0f2c7f…b7e1:46
editions details
operatorLen
untyped bigintoperatorLen is the length of a canonical g1 address, the prefix of a line.
Value
(40 <untyped> bigint)
openEdition
func() *validator_scores.edition- OID
- 0f2c7f…b7e1:12
openEdition details
requireOpen
func(number int) *validator_scores.edition- OID
- 0f2c7f…b7e1:14
requireOpen details
OpenEdition
func(computedAt string, scorecardSHA256 string, arenas string) intOpenEdition starts a new edition and returns its number. Publisher only. arenas is a comma-separated list, for example "challenge,test13,firedrill".
- OID
- 0f2c7f…b7e1:15
OpenEdition details
AddCandidates
func(number int, payload string)AddCandidates adds one candidate per payload line to the open edition. Publisher only. The whole payload is validated before anything is stored.
- OID
- 0f2c7f…b7e1:16
AddCandidates details
Seal
func(number int, expectedCount int)Seal closes the open edition for good. Publisher only. It fails unless the edition holds exactly expectedCount candidates (at least one).
- OID
- 0f2c7f…b7e1:17
Seal details
DiscardOpen
func()DiscardOpen drops the open edition. Publisher only. Its number is reused by the next OpenEdition. The slot is cleared first so the backing array does not keep the discarded edition stored.
- OID
- 0f2c7f…b7e1:18
DiscardOpen details
hexDigits
untyped stringValue
"0123456789abcdef"
quoteSafe
func(s string) stringquoteSafe quotes a string the realm validated to need no JSON escaping (addresses, dates, hashes, arena names). Concatenation is cheap in gas; per-byte loops are not.
- OID
- 0f2c7f…b7e1:19
quoteSafe details
quoteMoniker
func(s string) stringquoteMoniker quotes a validated moniker (valid UTF-8, no control characters): only '"' and '\\' need escaping.
- OID
- 0f2c7f…b7e1:21
quoteMoniker details
writeJSONString
func(b *strings.Builder, s string)writeJSONString writes any string as a JSON string. Invalid UTF-8 bytes become U+FFFD. It costs gas per rune: use it only for short or unvalidated input.
- OID
- 0f2c7f…b7e1:22
writeJSONString details
writeStrings
func(b *strings.Builder, list []string)- OID
- 0f2c7f…b7e1:23
writeStrings details
candidate
typecandidate is a stored line split into its fields. Numbers stay in their canonical decimal text, which is valid JSON.
Value
validator_scores.candidate
decode
func(line string) validator_scores.candidate- OID
- 0f2c7f…b7e1:24
decode details
byRank
typeValue
validator_scores.byRank
sortedCandidates
func(e *validator_scores.edition) []validator_scores.candidatesortedCandidates lists an edition's candidates by rank, then moniker (byte order), then operator.
- OID
- 0f2c7f…b7e1:25
sortedCandidates details
latestSealed
func() *validator_scores.edition- OID
- 0f2c7f…b7e1:26
latestSealed details
scoreFields
func(c validator_scores.candidate) stringscoreFields is \`"moniker":M,"total":T,"rank":R,"github":G\`, shared by both JSON shapes.
- OID
- 0f2c7f…b7e1:27
scoreFields details
editionJSON
func(e *validator_scores.edition) string- OID
- 0f2c7f…b7e1:28
editionJSON details
LatestJSON
func() stringLatestJSON returns the latest sealed edition, or "null".
- OID
- 0f2c7f…b7e1:29
LatestJSON details
EditionJSON
func(n int) stringEditionJSON returns sealed edition n, or "null".
- OID
- 0f2c7f…b7e1:30
EditionJSON details
CandidateJSON
func(operator string) stringCandidateJSON returns the operator's entries across sealed editions, in edition order; "entries" is \[] for an unknown address.
- OID
- 0f2c7f…b7e1:31
CandidateJSON details
OpenEditionJSON
func() stringOpenEditionJSON returns the open edition (number, scorecard hash and the operators already added, in the order added), or "null".
- OID
- 0f2c7f…b7e1:32
OpenEditionJSON details
initialPublisher
.uverse.addressValue
<gnolang.StringValue>
formatHundredths
func(s string) stringformatHundredths renders the canonical decimal "8743" as "87.43".
- OID
- 0f2c7f…b7e1:33
formatHundredths details
mdEscape
func(s string) stringmdEscape backslash-escapes every ASCII punctuation character, so a moniker renders as plain text and never as an author-chosen link, image or HTML. gnoweb still turns a g1 address that follows a space into a link to its /u/ page, with the address itself as the link text.
- OID
- 0f2c7f…b7e1:35
mdEscape details
Render
func(string) stringRender shows the latest sealed edition as a Markdown table. The path is ignored.
- OID
- 0f2c7f…b7e1:36
Render details
maxMonikerBytes
untyped bigintValue
(64 <untyped> bigint)
maxArenas
untyped bigintValue
(16 <untyped> bigint)
maxArenaName
untyped bigintValue
(32 <untyped> bigint)
maxScore
untyped bigint// 100.00 in hundredths: total and each arena score
Value
(10000 <untyped> bigint)
maxGithub
untyped bigint// 10.00 in hundredths: the GitHub bonus
Value
(1000 <untyped> bigint)
maxRank
untyped bigintValue
(100000 <untyped> bigint)
isComputedAt
func(s string) boolisComputedAt accepts a UTC date ("2026-10-13") or a UTC RFC 3339 time without fraction ("2026-10-13T09:00:00Z").
- OID
- 0f2c7f…b7e1:37
isComputedAt details
isSHA256Hex
func(s string) bool- OID
- 0f2c7f…b7e1:39
isSHA256Hex details
parseArenas
func(s string) []stringparseArenas splits a comma-separated list of 1 to 16 distinct names made of \[a-z0-9\_-], each 1 to 32 bytes.
- OID
- 0f2c7f…b7e1:40
parseArenas details
isMoniker
func(s string) boolisMoniker rejects empty or oversized monikers, invalid UTF-8, ASCII and C1 control characters (U+0000-U+001F, U+007F, U+0080-U+009F), bidirectional control characters (U+202A-U+202E, U+2066-U+2069), surrounding spaces, and the separator and contact characters '|' and '@'. Zero-width and directional marks (U+200B-U+200F) stay allowed: emoji monikers use U+200D.
- OID
- 0f2c7f…b7e1:41
isMoniker details
parseNat
func(s string, max int) (int, bool)parseNat parses a canonical non-negative decimal (no sign, no leading zero) not above max.
- OID
- 0f2c7f…b7e1:42
parseNat details
lineError
func(n int, msg string) string- OID
- 0f2c7f…b7e1:43
lineError details
checkLine
func(line string, arenaCount int, n int) stringcheckLine validates "operator|moniker|total|rank|github|s1,...,sN" and returns the operator. Every number must be canonical, so a stored line can be copied into JSON as is.
- OID
- 0f2c7f…b7e1:44