z_1_prop2_filetest.gno

5.09 Kb ยท 262 lines
  1package main
  2
  3// SEND: 1000000ugnot
  4
  5import (
  6	"std"
  7
  8	"gno.land/p/demo/dao"
  9	"gno.land/p/demo/testutils"
 10
 11	users "gno.land/r/gnoland/users/v1"
 12	_ "gno.land/r/gov/dao/init" // so that the govdao.GovDAO initializer is executed
 13	govdao "gno.land/r/gov/dao/v2"
 14	susers "gno.land/r/sys/users"
 15)
 16
 17// Test updating a name via GovDAO
 18
 19func init() {
 20	c := std.OriginCaller()
 21	alice := testutils.TestAddress("alice")
 22
 23	// Register alice
 24	std.TestSetOriginCaller(alice)
 25	std.TestSetRealm(std.NewUserRealm(alice))
 26	users.Register("alice123")
 27
 28	// Prop to change name
 29	std.TestSetOriginCaller(c)
 30	std.TestSetRealm(std.NewUserRealm(c))
 31	ex := users.ProposeDeleteUser(alice)
 32
 33	// Create a proposal
 34	prop := dao.ProposalRequest{
 35		Title:       "Change alice's name!",
 36		Description: "",
 37		Executor:    ex,
 38	}
 39
 40	govdao.GovDAO.Propose(prop)
 41}
 42
 43func main() {
 44	println("--")
 45	println(govdao.Render(""))
 46	println("--")
 47	println(govdao.Render("0"))
 48	println("--")
 49	govdao.GovDAO.VoteOnProposal(0, "YES")
 50	println("--")
 51	println(govdao.Render("0"))
 52	println("--")
 53	govdao.GovDAO.ExecuteProposal(0)
 54	println("--")
 55	println(govdao.Render("0"))
 56
 57	data, _ := susers.ResolveName("alice123")
 58	if data == nil {
 59		println("Successfully deleted alice")
 60	}
 61}
 62
 63// Output:
 64// --
 65// # GovDAO Proposals
 66//
 67// ## [Prop #0 - Change alice's name!](/r/gov/dao/v2:0)
 68//
 69// **Status: ACTIVE**
 70//
 71// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**
 72//
 73//
 74// --
 75// # Proposal #0 - Change alice's name!
 76//
 77// ## Description
 78//
 79// No description provided.
 80//
 81// ## Proposal information
 82//
 83// **Status: ACTIVE**
 84//
 85// **Voting stats:**
 86// - YES 0 (0%)
 87// - NO 0 (0%)
 88// - ABSTAIN 0 (0%)
 89// - MISSING VOTES 10 (100%)
 90//
 91//
 92// **Threshold met: FALSE**
 93//
 94// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**
 95//
 96// ### Actions
 97//
 98// #### [[Vote YES](/r/gov/dao/v2$help&func=VoteOnProposal&id=0&option=YES)] - [[Vote NO](/r/gov/dao/v2$help&func=VoteOnProposal&id=0&option=NO)] - [[Vote ABSTAIN](/r/gov/dao/v2$help&func=VoteOnProposal&id=0&option=ABSTAIN)]
 99//
100//
101// --
102// --
103// # Proposal #0 - Change alice's name!
104//
105// ## Description
106//
107// No description provided.
108//
109// ## Proposal information
110//
111// **Status: ACCEPTED**
112//
113// **Voting stats:**
114// - YES 10 (100%)
115// - NO 0 (0%)
116// - ABSTAIN 0 (0%)
117// - MISSING VOTES 0 (0%)
118//
119//
120// **Threshold met: TRUE**
121//
122// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**
123//
124// ### Actions
125//
126// The voting period for this proposal is over.
127//
128//
129// --
130// --
131// # Proposal #0 - Change alice's name!
132//
133// ## Description
134//
135// No description provided.
136//
137// ## Proposal information
138//
139// **Status: EXECUTION SUCCESSFUL**
140//
141// **Voting stats:**
142// - YES 10 (100%)
143// - NO 0 (0%)
144// - ABSTAIN 0 (0%)
145// - MISSING VOTES 0 (0%)
146//
147//
148// **Threshold met: TRUE**
149//
150// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**
151//
152// ### Actions
153//
154// The voting period for this proposal is over.
155//
156//
157// Successfully deleted alice
158
159// Events:
160// [
161//   {
162//     "type": "Registered",
163//     "attrs": [
164//       {
165//         "key": "name",
166//         "value": "alice123"
167//       },
168//       {
169//         "key": "address",
170//         "value": "g1v9kxjcm9ta047h6lta047h6lta047h6lzd40gh"
171//       }
172//     ],
173//     "pkg_path": "gno.land/r/sys/users",
174//     "func": "RegisterUser"
175//   },
176//   {
177//     "type": "Registeration",
178//     "attrs": [
179//       {
180//         "key": "address",
181//         "value": "g1v9kxjcm9ta047h6lta047h6lta047h6lzd40gh"
182//       },
183//       {
184//         "key": "name",
185//         "value": "alice123"
186//       }
187//     ],
188//     "pkg_path": "gno.land/r/gnoland/users/v1",
189//     "func": "Register"
190//   },
191//   {
192//     "type": "ProposalAdded",
193//     "attrs": [
194//       {
195//         "key": "proposal-id",
196//         "value": "0"
197//       },
198//       {
199//         "key": "proposal-author",
200//         "value": "g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm"
201//       }
202//     ],
203//     "pkg_path": "gno.land/r/gov/dao/v2",
204//     "func": "EmitProposalAdded"
205//   },
206//   {
207//     "type": "VoteAdded",
208//     "attrs": [
209//       {
210//         "key": "proposal-id",
211//         "value": "0"
212//       },
213//       {
214//         "key": "author",
215//         "value": "g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm"
216//       },
217//       {
218//         "key": "option",
219//         "value": "YES"
220//       }
221//     ],
222//     "pkg_path": "gno.land/r/gov/dao/v2",
223//     "func": "EmitVoteAdded"
224//   },
225//   {
226//     "type": "ProposalAccepted",
227//     "attrs": [
228//       {
229//         "key": "proposal-id",
230//         "value": "0"
231//       }
232//     ],
233//     "pkg_path": "gno.land/r/gov/dao/v2",
234//     "func": "EmitProposalAccepted"
235//   },
236//   {
237//     "type": "Deleted",
238//     "attrs": [
239//       {
240//         "key": "address",
241//         "value": "g1v9kxjcm9ta047h6lta047h6lta047h6lzd40gh"
242//       }
243//     ],
244//     "pkg_path": "gno.land/r/sys/users",
245//     "func": "Delete"
246//   },
247//   {
248//     "type": "ProposalExecuted",
249//     "attrs": [
250//       {
251//         "key": "proposal-id",
252//         "value": "0"
253//       },
254//       {
255//         "key": "exec-status",
256//         "value": "accepted"
257//       }
258//     ],
259//     "pkg_path": "gno.land/r/gov/dao/v2",
260//     "func": "ExecuteProposal"
261//   }
262// ]