Search Apps Documentation Source Content File Folder Download Copy Actions Download

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}