render.gno
1.04 Kb · 35 lines
1package staker
2
3import (
4 "strings"
5
6 "gno.land/p/moul/md/v0"
7 "gno.land/p/moul/mdtable/v0"
8 ufmt "gno.land/p/nt/ufmt/v0"
9 "gno.land/r/gnoswap/gov/staker"
10)
11
12func (g *govStakerV1) Render(path string) string {
13 if path != "" {
14 return "404\n"
15 }
16
17 implementation := staker.GetImplementationPackagePath()
18
19 out := md.H1("Gnoswap Governance Staker")
20 out += md.H2("Staking overview")
21 overviewTable := mdtable.Table{
22 Headers: []string{"Field", "Value"},
23 Rows: [][]string{
24 {"Active implementation", md.Link(implementation, strings.TrimPrefix(implementation, "gno.land"))},
25 {"Total xGNS supply", ufmt.Sprintf("%d", staker.GetTotalxGnsSupply())},
26 {"Total delegated GNS", ufmt.Sprintf("%d", staker.GetTotalDelegated())},
27 {"Total locked GNS", ufmt.Sprintf("%d", staker.GetTotalLockedAmount())},
28 {"Undelegation lockup period", ufmt.Sprintf("%d", staker.GetUnDelegationLockupPeriod())},
29 {"Protocol-fee accumulation timestamp", ufmt.Sprintf("%d", staker.GetProtocolFeeAccumulatedTimestamp())},
30 },
31 }
32 out += overviewTable.String()
33
34 return out
35}