Search Apps Documentation Source Content File Folder Download Copy Actions Download

prop_requests.gno

0.75 Kb · 35 lines
 1package memberstore
 2
 3import (
 4	"chain/runtime/unsafe"
 5
 6	"gno.land/p/nt/bptree/v0"
 7
 8	"gno.land/r/gov/dao"
 9)
10
11func NewChangeTiersRequest(cur realm, tiers map[string]Tier) dao.ProposalRequest {
12	if len(tiers) == 0 {
13		panic("tiers list is empty")
14	}
15
16	member, _ := Get(0, cur).GetMember(unsafe.OriginCaller())
17	if member == nil {
18		panic("proposer is not a member")
19	}
20
21	newTiers := TiersByName{bptree.NewBPTree32()}
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(0, cur, 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}