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  }