github.com/cosmos/cosmos-sdk@v0.50.10/x/group/keeper/genesis.go (about) 1 package keeper 2 3 import ( 4 "encoding/json" 5 6 abci "github.com/cometbft/cometbft/abci/types" 7 8 "cosmossdk.io/errors" 9 10 "github.com/cosmos/cosmos-sdk/codec" 11 "github.com/cosmos/cosmos-sdk/types" 12 "github.com/cosmos/cosmos-sdk/x/group" 13 ) 14 15 // InitGenesis initializes the group module's genesis state. 16 func (k Keeper) InitGenesis(ctx types.Context, cdc codec.JSONCodec, data json.RawMessage) []abci.ValidatorUpdate { 17 var genesisState group.GenesisState 18 cdc.MustUnmarshalJSON(data, &genesisState) 19 20 if err := k.groupTable.Import(ctx.KVStore(k.key), genesisState.Groups, genesisState.GroupSeq); err != nil { 21 panic(errors.Wrap(err, "groups")) 22 } 23 24 if err := k.groupMemberTable.Import(ctx.KVStore(k.key), genesisState.GroupMembers, 0); err != nil { 25 panic(errors.Wrap(err, "group members")) 26 } 27 28 if err := k.groupPolicyTable.Import(ctx.KVStore(k.key), genesisState.GroupPolicies, 0); err != nil { 29 panic(errors.Wrap(err, "group policies")) 30 } 31 32 if err := k.groupPolicySeq.InitVal(ctx.KVStore(k.key), genesisState.GroupPolicySeq); err != nil { 33 panic(errors.Wrap(err, "group policy account seq")) 34 } 35 36 if err := k.proposalTable.Import(ctx.KVStore(k.key), genesisState.Proposals, genesisState.ProposalSeq); err != nil { 37 panic(errors.Wrap(err, "proposals")) 38 } 39 40 if err := k.voteTable.Import(ctx.KVStore(k.key), genesisState.Votes, 0); err != nil { 41 panic(errors.Wrap(err, "votes")) 42 } 43 44 return []abci.ValidatorUpdate{} 45 } 46 47 // ExportGenesis returns the group module's exported genesis. 48 func (k Keeper) ExportGenesis(ctx types.Context, _ codec.JSONCodec) *group.GenesisState { 49 genesisState := group.NewGenesisState() 50 51 var groups []*group.GroupInfo 52 53 groupSeq, err := k.groupTable.Export(ctx.KVStore(k.key), &groups) 54 if err != nil { 55 panic(errors.Wrap(err, "groups")) 56 } 57 genesisState.Groups = groups 58 genesisState.GroupSeq = groupSeq 59 60 var groupMembers []*group.GroupMember 61 _, err = k.groupMemberTable.Export(ctx.KVStore(k.key), &groupMembers) 62 if err != nil { 63 panic(errors.Wrap(err, "group members")) 64 } 65 genesisState.GroupMembers = groupMembers 66 67 var groupPolicies []*group.GroupPolicyInfo 68 _, err = k.groupPolicyTable.Export(ctx.KVStore(k.key), &groupPolicies) 69 if err != nil { 70 panic(errors.Wrap(err, "group policies")) 71 } 72 genesisState.GroupPolicies = groupPolicies 73 genesisState.GroupPolicySeq = k.groupPolicySeq.CurVal(ctx.KVStore(k.key)) 74 75 var proposals []*group.Proposal 76 proposalSeq, err := k.proposalTable.Export(ctx.KVStore(k.key), &proposals) 77 if err != nil { 78 panic(errors.Wrap(err, "proposals")) 79 } 80 genesisState.Proposals = proposals 81 genesisState.ProposalSeq = proposalSeq 82 83 var votes []*group.Vote 84 _, err = k.voteTable.Export(ctx.KVStore(k.key), &votes) 85 if err != nil { 86 panic(errors.Wrap(err, "votes")) 87 } 88 genesisState.Votes = votes 89 90 return genesisState 91 }