Kind Realm (renderable)
Name v1
Namespace gnoswap / gov / governance
Exported functions n/a — Gnoland RPC unavailable (functions): rpc abci_query: HTTP 500
Module gno.land/r/gnoswap/gov/governance/v1
gno 0.9 init.gno gno
⧉
1 package governance 2 3 import ( 4 "strconv" 5 6 "gno.land/r/gnoswap/gov/governance" 7 ) 8 9 Gnoland RPC unavailable (functions): rpc abci_query: HTTP 500
Signatures reconstructed verbatim from vm/qfuncs — interface params keep their inline definitions.
Render unavailable
rate limit exceeded — the render query is served by the Gnoland archive RPC.
vm/qrender output, sanitized (docs/render-security.md) and displayed in an empty-sandbox iframe — scripts, forms and popups cannot run. Links stay inert in-preview; right-click to open.
func init(cur realm) {
10 registerGovernanceV1(cur)
11 }
12
13 func registerGovernanceV1(cur realm) {
14 governance.RegisterInitializer(cross(cur), func (_ int , rlm realm, governanceStore governance.IGovernanceStore, stakerAccessor governance.GovStakerAccessor) governance.IGovernance {
15 // `rlm` here is the governance proxy realm threaded in by
16 // governance.RegisterInitializer. Per-version store bootstrap
17 // writes therefore pass the proxy's KV-store ACL.
18 err := initStoreData( 0 , rlm, governanceStore)
19 if err != nil {
20 panic(err)
21 }
22
23 return NewGovernanceV1(governanceStore, stakerAccessor)
24 })
25 }
26
27 func initStoreData(_ int , rlm realm, governanceStore governance.IGovernanceStore) error {
28 // Initialize counters if not already set
29 if !governanceStore.HasConfigCounterStoreKey() {
30 err := governanceStore.SetConfigCounter( 0 , rlm, governance.NewCounter())
31 if err != nil {
32 return err
33 }
34 }
35
36 if !governanceStore.HasProposalCounterStoreKey() {
37 err := governanceStore.SetProposalCounter( 0 , rlm, governance.NewCounter())
38 if err != nil {
39 return err
40 }
41 }
42
43 // Initialize Configs with default configuration if not already set
44 if !governanceStore.HasConfigsStoreKey() {
45 configs := governance.NewConfigTree()
46 counter := governanceStore.GetConfigCounter()
47 nextConfigVersion := counter.Next()
48
49 configs.Set(formatConfigKey(nextConfigVersion), governance.NewDefaultConfig())
50
51 err := governanceStore.SetConfigs( 0 , rlm, configs)
52 if err != nil {
53 return err
54 }
55 // Persist the mutated counter so the bumped version survives the
56 // boundary into the proxy's KV store.
57 if err := governanceStore.SetConfigCounter( 0 , rlm, counter); err != nil {
58 return err
59 }
60 }
61
62 if !governanceStore.HasProposalsStoreKey() {
63 err := governanceStore.SetProposals( 0 , rlm, governance.NewProposalTree())
64 if err != nil {
65 return err
66 }
67 }
68
69 if !governanceStore.HasActiveProposalsBySnapshotStoreKey() {
70 if err := governanceStore.SetActiveProposalsBySnapshot( 0 , rlm, governance.NewProposalTree()); err != nil {
71 return err
72 }
73 }
74
75 if !governanceStore.HasProposalUserVotingInfosStoreKey() {
76 err := governanceStore.SetProposalUserVotingInfos( 0 , rlm, governance.NewProposalUserVotingInfoTree())
77 if err != nil {
78 return err
79 }
80 }
81
82 if !governanceStore.HasUserProposalsStoreKey() {
83 err := governanceStore.SetUserProposals( 0 , rlm, governance.NewUserProposalTree())
84 if err != nil {
85 return err
86 }
87 }
88
89 return nil
90 }
91
92 func formatConfigKey(version int64 ) string {
93 return strconv.FormatInt(version, 10 )
94 }
95