github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/x/gov/legacy/v0_36/migrate.go (about) 1 package v0_36 2 3 import ( 4 v034gov "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/gov/legacy/v0_34" 5 ) 6 7 // Migrate accepts exported genesis state from v0.34 and migrates it to v0.36 8 // genesis state. This migration flattens the deposits and votes and updates the 9 // proposal content to the new 10 func Migrate(oldGenState v034gov.GenesisState) GenesisState { 11 deposits := make(v034gov.Deposits, len(oldGenState.Deposits)) 12 for i, deposit := range oldGenState.Deposits { 13 deposits[i] = deposit.Deposit 14 } 15 16 votes := make(v034gov.Votes, len(oldGenState.Votes)) 17 for i, vote := range oldGenState.Votes { 18 votes[i] = vote.Vote 19 } 20 21 proposals := make([]Proposal, len(oldGenState.Proposals)) 22 for i, proposal := range oldGenState.Proposals { 23 proposals[i] = Proposal{ 24 Content: migrateContent(proposal.ProposalContent), 25 ProposalID: proposal.ProposalID, 26 Status: proposal.Status, 27 FinalTallyResult: proposal.FinalTallyResult, 28 SubmitTime: proposal.SubmitTime, 29 DepositEndTime: proposal.DepositEndTime, 30 TotalDeposit: proposal.TotalDeposit, 31 VotingStartTime: proposal.VotingStartTime, 32 VotingEndTime: proposal.VotingEndTime, 33 } 34 } 35 36 return NewGenesisState( 37 oldGenState.StartingProposalID, deposits, votes, proposals, 38 oldGenState.DepositParams, oldGenState.VotingParams, oldGenState.TallyParams, 39 ) 40 } 41 42 func migrateContent(proposalContent v034gov.ProposalContent) (content Content) { 43 switch proposalContent.ProposalType() { 44 case v034gov.ProposalTypeText: 45 return NewTextProposal(proposalContent.GetTitle(), proposalContent.GetDescription()) 46 default: 47 return nil 48 } 49 }