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