diff --git a/app/sim_test.go b/app/sim_test.go index f23741a5e..eb929b9f4 100644 --- a/app/sim_test.go +++ b/app/sim_test.go @@ -10,6 +10,7 @@ import ( "testing" capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" coinswaptypes "mods.irisnet.org/modules/coinswap/types" htlctypes "mods.irisnet.org/modules/htlc/types" @@ -33,7 +34,6 @@ import ( dbm "github.com/cosmos/cosmos-db" "github.com/cosmos/cosmos-sdk/baseapp" simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims" - sdk "github.com/cosmos/cosmos-sdk/types" simtypes "github.com/cosmos/cosmos-sdk/types/simulation" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" @@ -46,7 +46,6 @@ import ( slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" ibctransfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" - ibcexported "github.com/cosmos/ibc-go/v8/modules/core/exported" ) // AppChainID hardcoded chainID for simulation @@ -129,8 +128,6 @@ func TestAppImportExport(t *testing.T) { config := simcli.NewConfigFromFlags() config.ChainID = AppChainID - sdk.DefaultBondDenom = iristypes.NativeToken.Symbol - db, dir, logger, skip, err := simtestutil.SetupSimulation( config, "goleveldb-app-sim", @@ -216,8 +213,17 @@ func TestAppImportExport(t *testing.T) { ctxA := app.NewContextLegacy(true, tmproto.Header{Height: app.LastBlockHeight()}) ctxB := newApp.NewContextLegacy(true, tmproto.Header{Height: app.LastBlockHeight()}) - newApp.mm.InitGenesis(ctxB, app.AppCodec(), genesisState) - newApp.StoreConsensusParams(ctxB, exported.ConsensusParams) + _, err = newApp.mm.InitGenesis(ctxB, app.AppCodec(), genesisState) + if err != nil { + if strings.Contains(err.Error(), "validator set is empty after InitGenesis") { + logger.Info("Skipping simulation as all validators have been unbonded") + logger.Info("err", err, "stacktrace", string(debug.Stack())) + return + } + } + require.NoError(t, err) + err = newApp.StoreConsensusParams(ctxB, exported.ConsensusParams) + require.NoError(t, err) fmt.Printf("comparing stores...\n") @@ -227,10 +233,11 @@ func TestAppImportExport(t *testing.T) { app.AppKeepers.KvStoreKeys()[stakingtypes.StoreKey], newApp.AppKeepers.KvStoreKeys()[stakingtypes.StoreKey], [][]byte{ stakingtypes.UnbondingQueueKey, stakingtypes.RedelegationQueueKey, stakingtypes.ValidatorQueueKey, - stakingtypes.HistoricalInfoKey, + stakingtypes.HistoricalInfoKey, stakingtypes.UnbondingIDKey, stakingtypes.UnbondingIndexKey, + stakingtypes.UnbondingTypeKey, stakingtypes.ValidatorUpdatesKey, }, }, // ordering may change but it doesn't matter - {app.AppKeepers.KvStoreKeys()[slashingtypes.StoreKey], newApp.AppKeepers.KvStoreKeys()[slashingtypes.StoreKey], [][]byte{}}, + {app.AppKeepers.KvStoreKeys()[slashingtypes.StoreKey], newApp.AppKeepers.KvStoreKeys()[slashingtypes.StoreKey], [][]byte{slashingtypes.ValidatorMissedBlockBitmapKeyPrefix}}, {app.AppKeepers.KvStoreKeys()[minttypes.StoreKey], newApp.AppKeepers.KvStoreKeys()[minttypes.StoreKey], [][]byte{}}, {app.AppKeepers.KvStoreKeys()[distrtypes.StoreKey], newApp.AppKeepers.KvStoreKeys()[distrtypes.StoreKey], [][]byte{}}, { @@ -242,7 +249,6 @@ func TestAppImportExport(t *testing.T) { {app.AppKeepers.KvStoreKeys()[govtypes.StoreKey], newApp.AppKeepers.KvStoreKeys()[govtypes.StoreKey], [][]byte{}}, {app.AppKeepers.KvStoreKeys()[evidencetypes.StoreKey], newApp.AppKeepers.KvStoreKeys()[evidencetypes.StoreKey], [][]byte{}}, {app.AppKeepers.KvStoreKeys()[capabilitytypes.StoreKey], newApp.AppKeepers.KvStoreKeys()[capabilitytypes.StoreKey], [][]byte{}}, - {app.AppKeepers.KvStoreKeys()[ibcexported.StoreKey], newApp.AppKeepers.KvStoreKeys()[ibcexported.StoreKey], [][]byte{}}, {app.AppKeepers.KvStoreKeys()[ibctransfertypes.StoreKey], newApp.AppKeepers.KvStoreKeys()[ibctransfertypes.StoreKey], [][]byte{}}, // check irismod module @@ -278,17 +284,12 @@ func TestAppImportExport(t *testing.T) { skp.A, skp.B, ) - require.Equal( - t, - len(failedKVAs), - 0, - simtestutil.GetSimulationLog( - skp.A.Name(), - app.SimulationManager().StoreDecoders, - failedKVAs, - failedKVBs, - ), - ) + if !assert.Equal(t, 0, len(failedKVAs), simtestutil.GetSimulationLog(skp.A.Name(), app.SimulationManager().StoreDecoders, failedKVAs, failedKVBs)) { + for _, v := range failedKVAs { + t.Logf("store missmatch: %q\n", v) + } + t.FailNow() + } } } @@ -396,7 +397,6 @@ func TestAppStateDeterminism(t *testing.T) { if !simcli.FlagEnabledValue { t.Skip("skipping application simulation") } - sdk.DefaultBondDenom = iristypes.NativeToken.Symbol config := simcli.NewConfigFromFlags() config.InitialBlockHeight = 1 diff --git a/go.mod b/go.mod index c131c5db4..07d8516ba 100644 --- a/go.mod +++ b/go.mod @@ -11,16 +11,16 @@ require ( github.com/cosmos/gogoproto v1.7.0 github.com/cosmos/iavl v1.2.0 // indirect github.com/evmos/ethermint v0.22.0 - mods.irisnet.org/modules/coinswap v0.0.0-20241217080151-0ad41be03ac6 - mods.irisnet.org/modules/farm v0.0.0-20241217080151-0ad41be03ac6 - mods.irisnet.org/modules/htlc v0.0.0-20241217080151-0ad41be03ac6 - mods.irisnet.org/modules/mt v0.0.0-20241217080151-0ad41be03ac6 - mods.irisnet.org/modules/nft v0.0.0-20241217080151-0ad41be03ac6 - mods.irisnet.org/modules/oracle v0.0.0-20241217080151-0ad41be03ac6 - mods.irisnet.org/modules/random v0.0.0-20241217080151-0ad41be03ac6 - mods.irisnet.org/modules/record v0.0.0-20241217080151-0ad41be03ac6 - mods.irisnet.org/modules/service v0.0.0-20241217080151-0ad41be03ac6 - mods.irisnet.org/modules/token v0.0.0-20241217080151-0ad41be03ac6 + mods.irisnet.org/modules/coinswap v0.0.0-20241219091434-96f998e7149d + mods.irisnet.org/modules/farm v0.0.0-20241219091434-96f998e7149d + mods.irisnet.org/modules/htlc v0.0.0-20241219091434-96f998e7149d + mods.irisnet.org/modules/mt v0.0.0-20241219091434-96f998e7149d + mods.irisnet.org/modules/nft v0.0.0-20241219091434-96f998e7149d + mods.irisnet.org/modules/oracle v0.0.0-20241219091434-96f998e7149d + mods.irisnet.org/modules/random v0.0.0-20241219091434-96f998e7149d + mods.irisnet.org/modules/record v0.0.0-20241219091434-96f998e7149d + mods.irisnet.org/modules/service v0.0.0-20241219091434-96f998e7149d + mods.irisnet.org/modules/token v0.0.0-20241219091434-96f998e7149d ) require ( diff --git a/go.sum b/go.sum index 559452dc1..5c8a06429 100644 --- a/go.sum +++ b/go.sum @@ -2065,26 +2065,26 @@ honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= mods.irisnet.org/api v0.0.0-20241121030837-903540d1123f h1:tJoTbTqFBZUnCLL+juHEuQLNNdftSXwSlqGoKa8OOxw= mods.irisnet.org/api v0.0.0-20241121030837-903540d1123f/go.mod h1:TpMaRRYSpqsXdeX4gDVFRj9ggedQ60Zcjs4iE2DIhsc= -mods.irisnet.org/modules/coinswap v0.0.0-20241217080151-0ad41be03ac6 h1:8QnufoVSKUdiLPqJwByZF6yz5zt9qyhSaT08No50pMA= -mods.irisnet.org/modules/coinswap v0.0.0-20241217080151-0ad41be03ac6/go.mod h1:nv52g5ZDWv/C1ydtxLygP2wSYz6M4OuF6BygKy7RqGA= -mods.irisnet.org/modules/farm v0.0.0-20241217080151-0ad41be03ac6 h1:SA28lvYjEgOylkZJyuRVDIK4uGBHmtMGJvyAshUJJFk= -mods.irisnet.org/modules/farm v0.0.0-20241217080151-0ad41be03ac6/go.mod h1:yYrnhmxDCnvI45u1cpeRZ2GPJUmRK+8KFXDtOJGpENE= -mods.irisnet.org/modules/htlc v0.0.0-20241217080151-0ad41be03ac6 h1:JPzUkLdXY/0YzlgQ4wsmiI35Karrssb77dopt67qvqU= -mods.irisnet.org/modules/htlc v0.0.0-20241217080151-0ad41be03ac6/go.mod h1:2pWkSnxVKCzB3WH+q47rKffY4Plma+mRTGSWd4jfbp8= -mods.irisnet.org/modules/mt v0.0.0-20241217080151-0ad41be03ac6 h1:DyW+fBjjzJ4/h60sfvL0nkewudIZFRFPGvAZPj+8a+c= -mods.irisnet.org/modules/mt v0.0.0-20241217080151-0ad41be03ac6/go.mod h1:Dw1zm350HiRuNjrnwZnV4XGB8PNf1SXmjGJA5Xslg0Q= -mods.irisnet.org/modules/nft v0.0.0-20241217080151-0ad41be03ac6 h1:RHgx9ggA5/lsNKXvQ7ezJpCfJBhKjlBBAfoaOTKNMnU= -mods.irisnet.org/modules/nft v0.0.0-20241217080151-0ad41be03ac6/go.mod h1:VjySqJfECBW8cApFB8W66Yk6tMR2oJEc7FTDaHfeg8I= -mods.irisnet.org/modules/oracle v0.0.0-20241217080151-0ad41be03ac6 h1:1Xj4j7f639GMZ+MAbwNljQb0DZ5IdXDqQYNoDlppVXk= -mods.irisnet.org/modules/oracle v0.0.0-20241217080151-0ad41be03ac6/go.mod h1:XAGzG55xpV01PwvryVPeaHtARZIqEUJcMv/vxaVcVC0= -mods.irisnet.org/modules/random v0.0.0-20241217080151-0ad41be03ac6 h1:ScX6qHG3V49eQHkeQmJ5awp7I8ixou+obxxWd4/wTcU= -mods.irisnet.org/modules/random v0.0.0-20241217080151-0ad41be03ac6/go.mod h1:1ele5fpZ/rFMbwu1LTz2MwDg3sJDYcCtDW5SDfYRpTg= -mods.irisnet.org/modules/record v0.0.0-20241217080151-0ad41be03ac6 h1:PJu+56Be8F+mPj35jqeMvXl/bRZDtwrF9GL6j0w5ivQ= -mods.irisnet.org/modules/record v0.0.0-20241217080151-0ad41be03ac6/go.mod h1:n8gRooDvJ5B44EJRZ+UlDz0GcXQeNwjH2tjpnVx7nd8= -mods.irisnet.org/modules/service v0.0.0-20241217080151-0ad41be03ac6 h1:U6IzrFgN8GXhdNHXxA5isDgQX7DeSfeVDqvLzs6cc4o= -mods.irisnet.org/modules/service v0.0.0-20241217080151-0ad41be03ac6/go.mod h1:B1nKRNYn1VLqpvNbmbDSYagqL56sj0MIceXJi/DKg6s= -mods.irisnet.org/modules/token v0.0.0-20241217080151-0ad41be03ac6 h1:hlzR6ghnSujPC9VCwrpBVU6cBb+M9KyfbJz5SrnIef8= -mods.irisnet.org/modules/token v0.0.0-20241217080151-0ad41be03ac6/go.mod h1:fHJzeEBPhE9vaa4aye90+WFtHjZyGRvkWRpJeBSc9/k= +mods.irisnet.org/modules/coinswap v0.0.0-20241219091434-96f998e7149d h1:9ZYTaFkjlWlNU3+CJSr7GlC+7ym03/Yktuvk2oyWbqQ= +mods.irisnet.org/modules/coinswap v0.0.0-20241219091434-96f998e7149d/go.mod h1:nv52g5ZDWv/C1ydtxLygP2wSYz6M4OuF6BygKy7RqGA= +mods.irisnet.org/modules/farm v0.0.0-20241219091434-96f998e7149d h1:nfIpN3UdLLSKlT6yjDusPFk5d5btLuDR80wattHN6/o= +mods.irisnet.org/modules/farm v0.0.0-20241219091434-96f998e7149d/go.mod h1:yYrnhmxDCnvI45u1cpeRZ2GPJUmRK+8KFXDtOJGpENE= +mods.irisnet.org/modules/htlc v0.0.0-20241219091434-96f998e7149d h1:nJ9QTBaVEY32ll7fFuhBDCaCeZX3zlnr8f4Q7rijIU4= +mods.irisnet.org/modules/htlc v0.0.0-20241219091434-96f998e7149d/go.mod h1:2pWkSnxVKCzB3WH+q47rKffY4Plma+mRTGSWd4jfbp8= +mods.irisnet.org/modules/mt v0.0.0-20241219091434-96f998e7149d h1:BibcvFarK2gl+38ABWc82mBRzDXHTonSaMOjWrsF7qs= +mods.irisnet.org/modules/mt v0.0.0-20241219091434-96f998e7149d/go.mod h1:Dw1zm350HiRuNjrnwZnV4XGB8PNf1SXmjGJA5Xslg0Q= +mods.irisnet.org/modules/nft v0.0.0-20241219091434-96f998e7149d h1:4QA5IADh0E5s13xipzHQjmvCiTh+rwTjYkcHp5FcfoY= +mods.irisnet.org/modules/nft v0.0.0-20241219091434-96f998e7149d/go.mod h1:VjySqJfECBW8cApFB8W66Yk6tMR2oJEc7FTDaHfeg8I= +mods.irisnet.org/modules/oracle v0.0.0-20241219091434-96f998e7149d h1:TJ9ChS7i3eqJvysgB0xsA3f/nZNyDK+3R0581a5xQA8= +mods.irisnet.org/modules/oracle v0.0.0-20241219091434-96f998e7149d/go.mod h1:XAGzG55xpV01PwvryVPeaHtARZIqEUJcMv/vxaVcVC0= +mods.irisnet.org/modules/random v0.0.0-20241219091434-96f998e7149d h1:WrKK3faOWgye3850G4XT3RhcB2kvVmkjlNppf4hU3xc= +mods.irisnet.org/modules/random v0.0.0-20241219091434-96f998e7149d/go.mod h1:1ele5fpZ/rFMbwu1LTz2MwDg3sJDYcCtDW5SDfYRpTg= +mods.irisnet.org/modules/record v0.0.0-20241219091434-96f998e7149d h1:j77bqsJJi0unnUO80sBtHjbAUZlgJ3rPDT7FWQAxegk= +mods.irisnet.org/modules/record v0.0.0-20241219091434-96f998e7149d/go.mod h1:n8gRooDvJ5B44EJRZ+UlDz0GcXQeNwjH2tjpnVx7nd8= +mods.irisnet.org/modules/service v0.0.0-20241219091434-96f998e7149d h1:se/nr3FZXSrqfqozKyFUldjiI0b9koNkNxo2HX0ce8Y= +mods.irisnet.org/modules/service v0.0.0-20241219091434-96f998e7149d/go.mod h1:B1nKRNYn1VLqpvNbmbDSYagqL56sj0MIceXJi/DKg6s= +mods.irisnet.org/modules/token v0.0.0-20241219091434-96f998e7149d h1:hAKlXF0vYjQUkYz/fFz0c7pGPcYYPYFlrsp5l5Mf5nw= +mods.irisnet.org/modules/token v0.0.0-20241219091434-96f998e7149d/go.mod h1:fHJzeEBPhE9vaa4aye90+WFtHjZyGRvkWRpJeBSc9/k= mods.irisnet.org/simapp v0.0.0-20241125071105-d76ae25d05d2 h1:9AGZYpMjpk1gItviL31vsehmen119HtcuOKwv8WWpZo= mods.irisnet.org/simapp v0.0.0-20241125071105-d76ae25d05d2/go.mod h1:t7FSQJkJOgXq1/LdhpBeOu7TS8hLQkAMMx9fL5w53PY= nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k=