Skip to content

Commit

Permalink
Impose upgrade proposal with restrictions
Browse files Browse the repository at this point in the history
  • Loading branch information
MrXJC committed Nov 23, 2018
1 parent 5ac6110 commit 03f202b
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 11 deletions.
12 changes: 6 additions & 6 deletions app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ func NewIrisApp(logger log.Logger, db dbm.DB, traceStore io.Writer, baseAppOptio
app.cdc,
app.keyStake, app.tkeyStake,
app.bankKeeper, app.paramsKeeper.Subspace(stake.DefaultParamspace),
app.RegisterCodespace(stake.DefaultCodespace),
stake.DefaultCodespace,
)
app.mintKeeper = mint.NewKeeper(app.cdc, app.keyMint,
app.paramsKeeper.Subspace(mint.DefaultParamspace),
Expand All @@ -150,32 +150,32 @@ func NewIrisApp(logger log.Logger, db dbm.DB, traceStore io.Writer, baseAppOptio
app.keyDistr,
app.paramsKeeper.Subspace(distr.DefaultParamspace),
app.bankKeeper, &stakeKeeper, app.feeCollectionKeeper,
app.RegisterCodespace(stake.DefaultCodespace),
distr.DefaultCodespace,
)
app.slashingKeeper = slashing.NewKeeper(
app.cdc,
app.keySlashing,
&stakeKeeper, app.paramsKeeper.Subspace(slashing.DefaultParamspace),
app.RegisterCodespace(slashing.DefaultCodespace),
slashing.DefaultCodespace,
)

app.govKeeper = gov.NewKeeper(
app.cdc,
app.keyGov,
app.bankKeeper, &stakeKeeper,
app.RegisterCodespace(gov.DefaultCodespace),
gov.DefaultCodespace,
)

app.recordKeeper = record.NewKeeper(
app.cdc,
app.keyRecord,
app.RegisterCodespace(record.DefaultCodespace),
record.DefaultCodespace,
)
app.serviceKeeper = service.NewKeeper(
app.cdc,
app.keyService,
app.bankKeeper,
app.RegisterCodespace(service.DefaultCodespace),
service.DefaultCodespace,
)

// register the staking hooks
Expand Down
5 changes: 5 additions & 0 deletions modules/gov/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ const (
//////////////////// iris begin ///////////////////////////
CodeInvalidParam sdk.CodeType = 12
CodeInvalidParamOp sdk.CodeType = 13
CodeSwitchPeriodInProcess sdk.CodeType = 14
//////////////////// iris end /////////////////////////////
)

Expand Down Expand Up @@ -78,4 +79,8 @@ func ErrInvalidParam(codespace sdk.CodespaceType) sdk.Error {
func ErrInvalidParamOp(codespace sdk.CodespaceType, opStr string) sdk.Error {
return sdk.NewError(codespace, CodeInvalidParamOp, fmt.Sprintf("Op '%s' is not valid", opStr))
}

func ErrSwitchPeriodInProcess(codespace sdk.CodespaceType) sdk.Error {
return sdk.NewError(codespace, CodeSwitchPeriodInProcess, fmt.Sprintf("Software Upgrade Switch Period is in process."))
}
//////////////////// iris end /////////////////////////////
7 changes: 6 additions & 1 deletion modules/gov/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"strconv"
"encoding/json"
"github.com/irisnet/irishub/modules/gov/params"
"github.com/irisnet/irishub/modules/upgrade/params"
)

// Handle all "gov" type messages.
Expand All @@ -30,9 +31,13 @@ func NewHandler(keeper Keeper) sdk.Handler {
func handleMsgSubmitProposal(ctx sdk.Context, keeper Keeper, msg MsgSubmitProposal) sdk.Result {
//////////////////// iris begin ///////////////////////////
proposal := keeper.NewProposal(ctx, msg.Title, msg.Description, msg.ProposalType,msg.Param)
if msg.ProposalType == ProposalTypeSoftwareUpgrade {
if upgradeparams.GetCurrentUpgradeProposalId(ctx) != 0 {
return ErrSwitchPeriodInProcess(keeper.codespace).Result()
}
}
//////////////////// iris end /////////////////////////////


err, votingStarted := keeper.AddDeposit(ctx, proposal.GetProposalID(), msg.Proposer, msg.InitialDeposit)
if err != nil {
return err.Result()
Expand Down
10 changes: 7 additions & 3 deletions modules/gov/proposal_upgrade.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,14 @@ type SoftwareUpgradeProposal struct {

func (sp *SoftwareUpgradeProposal) Execute(ctx sdk.Context, k Keeper) error {
logger := ctx.Logger().With("module", "x/gov")
logger.Info("Execute SoftwareProposal begin", "info", fmt.Sprintf("current height:%d", ctx.BlockHeight()))

upgradeparams.SetCurrentUpgradeProposalId(ctx,sp.ProposalID)
upgradeparams.SetProposalAcceptHeight(ctx,ctx.BlockHeight())
if upgradeparams.GetCurrentUpgradeProposalId(ctx) == 0 {
upgradeparams.SetCurrentUpgradeProposalId(ctx,sp.ProposalID)
upgradeparams.SetProposalAcceptHeight(ctx,ctx.BlockHeight())
logger.Info("Execute SoftwareProposal begin", "info", fmt.Sprintf("current height:%d", ctx.BlockHeight()))
} else {
logger.Info("Software Upgrade Switch Period is in process.", "info", fmt.Sprintf("current height:%d", ctx.BlockHeight()))
}

return nil
}
2 changes: 1 addition & 1 deletion modules/service/error.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
)

const (
DefaultCodespace sdk.CodespaceType = 6
DefaultCodespace sdk.CodespaceType = 8

CodeInvalidIDL sdk.CodeType = 100
CodeSvcDefExists sdk.CodeType = 101
Expand Down

0 comments on commit 03f202b

Please sign in to comment.