github.com/Finschia/finschia-sdk@v0.48.1/x/foundation/keeper/internal/genesis.go (about) 1 package internal 2 3 import ( 4 sdk "github.com/Finschia/finschia-sdk/types" 5 "github.com/Finschia/finschia-sdk/x/foundation" 6 ) 7 8 func (k Keeper) InitGenesis(ctx sdk.Context, data *foundation.GenesisState) error { 9 k.SetParams(ctx, data.Params) 10 11 k.SetFoundationInfo(ctx, data.Foundation) 12 13 k.setPreviousProposalID(ctx, data.PreviousProposalId) 14 15 for _, member := range data.Members { 16 if err := validateMetadata(member.Metadata, k.config); err != nil { 17 return err 18 } 19 20 k.SetMember(ctx, member) 21 } 22 23 for _, proposal := range data.Proposals { 24 if err := validateMetadata(proposal.Metadata, k.config); err != nil { 25 return err 26 } 27 28 k.setProposal(ctx, proposal) 29 k.addProposalToVPEndQueue(ctx, proposal) 30 } 31 32 for _, vote := range data.Votes { 33 if err := validateMetadata(vote.Metadata, k.config); err != nil { 34 return err 35 } 36 37 k.setVote(ctx, vote) 38 } 39 40 for _, censorship := range data.Censorships { 41 k.SetCensorship(ctx, censorship) 42 } 43 44 for _, ga := range data.Authorizations { 45 grantee := sdk.MustAccAddressFromBech32(ga.Grantee) 46 k.setAuthorization(ctx, grantee, ga.GetAuthorization()) 47 } 48 49 k.SetPool(ctx, data.Pool) 50 51 return nil 52 } 53 54 func (k Keeper) ExportGenesis(ctx sdk.Context) *foundation.GenesisState { 55 info := k.GetFoundationInfo(ctx) 56 proposals := k.GetProposals(ctx) 57 58 var votes []foundation.Vote 59 for _, proposal := range proposals { 60 votes = append(votes, k.GetVotes(ctx, proposal.Id)...) 61 } 62 63 return &foundation.GenesisState{ 64 Params: k.GetParams(ctx), 65 Foundation: info, 66 Members: k.GetMembers(ctx), 67 PreviousProposalId: k.getPreviousProposalID(ctx), 68 Proposals: proposals, 69 Votes: votes, 70 Censorships: k.GetCensorships(ctx), 71 Authorizations: k.GetGrants(ctx), 72 Pool: k.GetPool(ctx), 73 } 74 } 75 76 func (k Keeper) GetCensorships(ctx sdk.Context) []foundation.Censorship { 77 var censorships []foundation.Censorship 78 k.iterateCensorships(ctx, func(censorship foundation.Censorship) (stop bool) { 79 censorships = append(censorships, censorship) 80 81 return false 82 }) 83 return censorships 84 } 85 86 func (k Keeper) GetGrants(ctx sdk.Context) []foundation.GrantAuthorization { 87 var grantAuthorizations []foundation.GrantAuthorization 88 k.iterateAuthorizations(ctx, func(grantee sdk.AccAddress, authorization foundation.Authorization) (stop bool) { 89 grantAuthorization := foundation.GrantAuthorization{ 90 Grantee: grantee.String(), 91 } 92 if err := grantAuthorization.SetAuthorization(authorization); err != nil { 93 panic(err) 94 } 95 grantAuthorizations = append(grantAuthorizations, grantAuthorization) 96 97 return false 98 }) 99 return grantAuthorizations 100 }