Search Apps Documentation Source Content File Folder Download Copy Actions Download

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}