77 lines
2.1 KiB
Go
77 lines
2.1 KiB
Go
package v036
|
|
|
|
import (
|
|
v034gov "github.com/cosmos/cosmos-sdk/x/gov/legacy/v034"
|
|
)
|
|
|
|
func MigrateGovernance(initialState v034gov.GenesisState) GenesisState {
|
|
targetGov := GenesisState{
|
|
StartingProposalID: initialState.StartingProposalID,
|
|
DepositParams: DepositParams{
|
|
MinDeposit: initialState.DepositParams.MinDeposit,
|
|
MaxDepositPeriod: initialState.DepositParams.MaxDepositPeriod,
|
|
},
|
|
TallyParams: TallyParams{
|
|
Quorum: initialState.TallyParams.Quorum,
|
|
Threshold: initialState.TallyParams.Threshold,
|
|
Veto: initialState.TallyParams.Veto,
|
|
},
|
|
VotingParams: VotingParams{
|
|
VotingPeriod: initialState.VotingParams.VotingPeriod,
|
|
},
|
|
}
|
|
|
|
var deposits Deposits
|
|
for _, p := range initialState.Deposits {
|
|
deposits = append(deposits, Deposit{
|
|
ProposalID: p.Deposit.ProposalID,
|
|
Amount: p.Deposit.Amount,
|
|
Depositor: p.Deposit.Depositor,
|
|
})
|
|
}
|
|
|
|
targetGov.Deposits = deposits
|
|
|
|
var votes Votes
|
|
for _, p := range initialState.Votes {
|
|
votes = append(votes, Vote{
|
|
ProposalID: p.Vote.ProposalID,
|
|
Option: VoteOption(p.Vote.Option),
|
|
Voter: p.Vote.Voter,
|
|
})
|
|
}
|
|
|
|
targetGov.Votes = votes
|
|
|
|
var proposals Proposals
|
|
for _, p := range initialState.Proposals {
|
|
proposal := Proposal{
|
|
Content: migrateContent(p.ProposalContent),
|
|
ProposalID: p.ProposalID,
|
|
Status: ProposalStatus(p.Status),
|
|
FinalTallyResult: TallyResult(p.FinalTallyResult),
|
|
SubmitTime: p.SubmitTime,
|
|
DepositEndTime: p.DepositEndTime,
|
|
TotalDeposit: p.TotalDeposit,
|
|
VotingStartTime: p.VotingStartTime,
|
|
VotingEndTime: p.VotingEndTime,
|
|
}
|
|
|
|
proposals = append(proposals, proposal)
|
|
}
|
|
|
|
targetGov.Proposals = proposals
|
|
return targetGov
|
|
}
|
|
|
|
func migrateContent(proposalContent v034gov.ProposalContent) (content Content) {
|
|
switch proposalContent.ProposalType() {
|
|
case v034gov.ProposalTypeText:
|
|
return NewTextProposal(proposalContent.GetTitle(), proposalContent.GetDescription())
|
|
case v034gov.ProposalTypeSoftwareUpgrade:
|
|
return NewSoftwareUpgradeProposal(proposalContent.GetTitle(), proposalContent.GetDescription())
|
|
default:
|
|
return nil
|
|
}
|
|
}
|