prop_requests.gno
0.71 Kb · 35 lines
1package memberstore
2
3import (
4 "chain/runtime"
5
6 "gno.land/p/nt/avl/v0"
7
8 "gno.land/r/gov/dao"
9)
10
11func NewChangeTiersRequest(tiers map[string]Tier) dao.ProposalRequest {
12 if len(tiers) == 0 {
13 panic("tiers list is empty")
14 }
15
16 member, _ := Get().GetMember(runtime.OriginCaller())
17 if member == nil {
18 panic("proposer is not a member")
19 }
20
21 newTiers := TiersByName{avl.NewTree()}
22 for name, tier := range tiers {
23 newTiers.Set(name, tier)
24 }
25
26 callback := func(cur realm) error {
27 setTiers(newTiers)
28
29 return nil
30 }
31
32 e := dao.NewSimpleExecutor(callback, "New set of tiers proposed.")
33
34 return dao.NewProposalRequest("Change Tiers Proposal", "This proposal is looking to change the existing Tiers in memberstore", e)
35}