diff --git a/app/app.go b/app/app.go index 69ccfe8e..d1cdefaa 100644 --- a/app/app.go +++ b/app/app.go @@ -175,12 +175,14 @@ func NewGaiaApp(logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest b staking.NewMultiStakingHooks(app.distrKeeper.Hooks(), app.slashingKeeper.Hooks()), ) + // NOTE: Any module instantiated in the module manager that is later modified + // must be passed by reference here. app.mm = module.NewManager( genaccounts.NewAppModule(app.accountKeeper), genutil.NewAppModule(app.accountKeeper, app.stakingKeeper, app.BaseApp.DeliverTx), auth.NewAppModule(app.accountKeeper), bank.NewAppModule(app.bankKeeper, app.accountKeeper), - crisis.NewAppModule(app.crisisKeeper), + crisis.NewAppModule(&app.crisisKeeper), supply.NewAppModule(app.supplyKeeper, app.accountKeeper), distr.NewAppModule(app.distrKeeper, app.supplyKeeper), gov.NewAppModule(app.govKeeper, app.supplyKeeper), @@ -194,13 +196,15 @@ func NewGaiaApp(logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest b // CanWithdrawInvariant invariant. app.mm.SetOrderBeginBlockers(mint.ModuleName, distr.ModuleName, slashing.ModuleName) - app.mm.SetOrderEndBlockers(gov.ModuleName, staking.ModuleName) + app.mm.SetOrderEndBlockers(crisis.ModuleName, gov.ModuleName, staking.ModuleName) - // genutils must occur after staking so that pools are properly - // initialized with tokens from genesis accounts. - app.mm.SetOrderInitGenesis(genaccounts.ModuleName, distr.ModuleName, - staking.ModuleName, auth.ModuleName, bank.ModuleName, slashing.ModuleName, - gov.ModuleName, mint.ModuleName, supply.ModuleName, crisis.ModuleName, genutil.ModuleName) + // NOTE: The genutils module must occur after staking so that pools are + // properly initialized with tokens from genesis accounts. + app.mm.SetOrderInitGenesis( + genaccounts.ModuleName, distr.ModuleName, staking.ModuleName, + auth.ModuleName, bank.ModuleName, slashing.ModuleName, gov.ModuleName, + mint.ModuleName, supply.ModuleName, crisis.ModuleName, genutil.ModuleName, + ) app.mm.RegisterInvariants(&app.crisisKeeper) app.mm.RegisterRoutes(app.Router(), app.QueryRouter()) diff --git a/app/sim_test.go b/app/sim_test.go index 73c0f03b..a844381f 100644 --- a/app/sim_test.go +++ b/app/sim_test.go @@ -377,7 +377,7 @@ func BenchmarkFullAppSimulation(b *testing.B) { db, _ = sdk.NewLevelDB("Simulation", dir) defer func() { db.Close() - os.RemoveAll(dir) + _ = os.RemoveAll(dir) }() app := NewGaiaApp(logger, db, nil, true, 0) @@ -446,7 +446,7 @@ func TestFullAppSimulation(t *testing.T) { defer func() { db.Close() - os.RemoveAll(dir) + _ = os.RemoveAll(dir) }() app := NewGaiaApp(logger, db, nil, true, 0, fauxMerkleModeOpt) @@ -504,7 +504,7 @@ func TestAppImportExport(t *testing.T) { defer func() { db.Close() - os.RemoveAll(dir) + _ = os.RemoveAll(dir) }() app := NewGaiaApp(logger, db, nil, true, 0, fauxMerkleModeOpt) @@ -565,11 +565,11 @@ func TestAppImportExport(t *testing.T) { panic(err) } - ctxB := newApp.NewContext(true, abci.Header{}) + ctxB := newApp.NewContext(true, abci.Header{Height: app.LastBlockHeight()}) newApp.mm.InitGenesis(ctxB, genesisState) fmt.Printf("Comparing stores...\n") - ctxA := app.NewContext(true, abci.Header{}) + ctxA := app.NewContext(true, abci.Header{Height: app.LastBlockHeight()}) type StoreKeysPrefixes struct { A sdk.StoreKey diff --git a/go.mod b/go.mod index 40188c91..81fb7ec2 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.12 require ( github.com/btcsuite/btcd v0.0.0-20190523000118-16327141da8c // indirect - github.com/cosmos/cosmos-sdk v0.28.2-0.20190805171329-cf1980273fac + github.com/cosmos/cosmos-sdk v0.28.2-0.20190806205118-0dcf1583878e github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d // indirect github.com/go-kit/kit v0.9.0 // indirect github.com/golang/mock v1.3.1 // indirect @@ -32,5 +32,6 @@ require ( golang.org/x/net v0.0.0-20190724013045-ca1201d0de80 // indirect golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa // indirect golang.org/x/text v0.3.2 // indirect + google.golang.org/appengine v1.4.0 // indirect google.golang.org/genproto v0.0.0-20190701230453-710ae3a149df // indirect ) diff --git a/go.sum b/go.sum index 4001c7ca..7f7386d1 100644 --- a/go.sum +++ b/go.sum @@ -37,8 +37,8 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cosmos/cosmos-sdk v0.28.2-0.20190805171329-cf1980273fac h1:e8SeYmlsfdizyFaENu1+X1IZSYQoXQhAybihWnsyOa4= -github.com/cosmos/cosmos-sdk v0.28.2-0.20190805171329-cf1980273fac/go.mod h1:RkWDqk5VawCuk6G+Mr7kWkE+1i5oHhxdOriaRibAvPg= +github.com/cosmos/cosmos-sdk v0.28.2-0.20190806205118-0dcf1583878e h1:Lq7i6tN5ay+1enr3BwYWmMOkmsmWuKGO+BlqYI7hsD4= +github.com/cosmos/cosmos-sdk v0.28.2-0.20190806205118-0dcf1583878e/go.mod h1:RkWDqk5VawCuk6G+Mr7kWkE+1i5oHhxdOriaRibAvPg= github.com/cosmos/go-bip39 v0.0.0-20180618194314-52158e4697b8/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d h1:49RLWk1j44Xu4fjHb6JFYmeUnDORVwHNkDxaQ0ctCVU= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= diff --git a/lcd_test/helpers.go b/lcd_test/helpers.go index 2eb0d4a5..40479dfd 100644 --- a/lcd_test/helpers.go +++ b/lcd_test/helpers.go @@ -29,7 +29,6 @@ import ( "github.com/cosmos/cosmos-sdk/x/mint" "github.com/cosmos/cosmos-sdk/x/staking" "github.com/cosmos/cosmos-sdk/x/supply" - "github.com/pkg/errors" "github.com/spf13/viper" @@ -225,25 +224,29 @@ func defaultGenesis(config *tmcfg.Config, nValidators int, initAddrs []sdk.AccAd accs = append(accs, acc) } + // distr data + distrDataBz := genesisState[distr.ModuleName] + var distrData distr.GenesisState + cdc.MustUnmarshalJSON(distrDataBz, &distrData) + + commPoolAmt := sdk.NewInt(10) + distrData.FeePool.CommunityPool = sdk.DecCoins{sdk.NewDecCoin(sdk.DefaultBondDenom, commPoolAmt)} + distrDataBz = cdc.MustMarshalJSON(distrData) + genesisState[distr.ModuleName] = distrDataBz + + // staking and genesis accounts + genesisState[staking.ModuleName] = cdc.MustMarshalJSON(stakingData) + genesisState[genaccounts.ModuleName] = cdc.MustMarshalJSON(accs) + // supply data supplyDataBz := genesisState[supply.ModuleName] var supplyData supply.GenesisState cdc.MustUnmarshalJSON(supplyDataBz, &supplyData) - supplyData.Supply = supplyData.Supply.SetTotal(sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, totalSupply))) + supplyData.Supply = sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, totalSupply.Add(commPoolAmt))) supplyDataBz = cdc.MustMarshalJSON(supplyData) genesisState[supply.ModuleName] = supplyDataBz - // distr data - distrDataBz := genesisState[distr.ModuleName] - var distrData distr.GenesisState - cdc.MustUnmarshalJSON(distrDataBz, &distrData) - distrData.FeePool.CommunityPool = sdk.DecCoins{sdk.DecCoin{Denom: "test", Amount: sdk.NewDecFromInt(sdk.NewInt(10))}} - distrDataBz = cdc.MustMarshalJSON(distrData) - genesisState[distr.ModuleName] = distrDataBz - genesisState[staking.ModuleName] = cdc.MustMarshalJSON(stakingData) - genesisState[genaccounts.ModuleName] = cdc.MustMarshalJSON(accs) - // mint genesis (none set within genesisState) mintData := mint.DefaultGenesisState() inflationMin := sdk.ZeroDec() diff --git a/lcd_test/helpers_test.go b/lcd_test/helpers_test.go index 05044f29..d9dcbdf9 100644 --- a/lcd_test/helpers_test.go +++ b/lcd_test/helpers_test.go @@ -809,7 +809,7 @@ func doSubmitCommunityPoolSpendProposal( Proposer: proposerAddr, Recipient: proposerAddr, Deposit: sdk.Coins{sdk.NewCoin(sdk.DefaultBondDenom, amount)}, - Amount: sdk.Coins{sdk.NewCoin("test", sdk.NewInt(5))}, + Amount: sdk.Coins{sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(5))}, } req, err := cdc.MarshalJSON(pr)