/
handle_genesis.go
43 lines (34 loc) · 1.06 KB
/
handle_genesis.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package posts
import (
"encoding/json"
poststypes "github.com/desmos-labs/desmos/v7/x/posts/types"
"github.com/desmos-labs/athena/v2/types"
tmtypes "github.com/cometbft/cometbft/types"
)
// HandleGenesis implements modules.GenesisModule
func (m *Module) HandleGenesis(doc *tmtypes.GenesisDoc, appState map[string]json.RawMessage) error {
var genState poststypes.GenesisState
m.cdc.MustUnmarshalJSON(appState[poststypes.ModuleName], &genState)
// Save posts
for _, post := range genState.Posts {
err := m.db.SavePost(types.NewPost(post, doc.InitialHeight))
if err != nil {
return err
}
}
// Save attachments
for _, attachment := range genState.Attachments {
err := m.db.SavePostAttachment(types.NewPostAttachment(attachment, doc.InitialHeight))
if err != nil {
return err
}
}
// Save poll answers
for _, answer := range genState.UserAnswers {
err := m.db.SavePollAnswer(types.NewPollAnswer(answer, doc.InitialHeight))
if err != nil {
return err
}
}
return m.db.SavePostsParams(types.NewPostsParams(genState.Params, doc.InitialHeight))
}