init.gno
1.28 Kb · 57 lines
1package launchpad
2
3import "gno.land/r/gnoswap/launchpad"
4
5func init(cur realm) {
6 registerLaunchpadV1(cur)
7}
8
9func registerLaunchpadV1(cur realm) {
10 launchpad.RegisterInitializer(cross(cur), func(_ int, rlm realm, launchpadStore launchpad.ILaunchpadStore) launchpad.ILaunchpad {
11 err := initStoreData(0, rlm, launchpadStore)
12 if err != nil {
13 panic(err)
14 }
15
16 return NewLaunchpadV1(launchpadStore)
17 })
18}
19
20func initStoreData(_ int, rlm realm, launchpadStore launchpad.ILaunchpadStore) error {
21 if !launchpadStore.HasProjectsKey() {
22 err := launchpadStore.SetProjects(0, rlm, launchpad.NewBPTreeN(16))
23 if err != nil {
24 return err
25 }
26 }
27
28 if !launchpadStore.HasProjectTierRewardManagersKey() {
29 err := launchpadStore.SetProjectTierRewardManagers(0, rlm, launchpad.NewBPTreeN(16))
30 if err != nil {
31 return err
32 }
33 }
34
35 if !launchpadStore.HasDepositCounterStoreKey() {
36 err := launchpadStore.SetDepositCounter(0, rlm, launchpad.NewCounter())
37 if err != nil {
38 return err
39 }
40 }
41
42 if !launchpadStore.HasDepositsKey() {
43 err := launchpadStore.SetDeposits(0, rlm, launchpad.NewBPTreeN(16))
44 if err != nil {
45 return err
46 }
47 }
48
49 if !launchpadStore.HasTotalGNSStakedAmountKey() {
50 err := launchpadStore.SetTotalGNSStakedAmount(0, rlm, 0)
51 if err != nil {
52 return err
53 }
54 }
55
56 return nil
57}