From 7bb7844e80b0ab86d9e4958b148f821ab36fd487 Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Date: Thu, 8 Dec 2022 09:37:32 +0100 Subject: [PATCH 1/8] Update release-tracker.md --- .github/ISSUE_TEMPLATE/release-tracker.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/release-tracker.md b/.github/ISSUE_TEMPLATE/release-tracker.md index d0ecc255709..85c2aaa32b9 100644 --- a/.github/ISSUE_TEMPLATE/release-tracker.md +++ b/.github/ISSUE_TEMPLATE/release-tracker.md @@ -26,10 +26,11 @@ v without deliberation -- [ ] Fungible token transfers over a non-incentivised channel works with a counterparty chain running each previous major version. -- [ ] Fungible token transfers over an incentivised channel works with a counterparty chain running each previous major version that supports ICS-29 Fee Middleware. -- [ ] Interchain Accounts over a non-incentivised channel works with a counterparty chain running each previous major version that supports ICS-27 Interchain Accounts over non-incentivised channels. -- [ ] Interchain Accounts over an incentivised channel works with a counterparty chain running each previous major version that supports ICS-27 Interchain Accounts over incentivised channels. +- [ ] [Compatibility tests](https://github.com/cosmos/ibc-go/actions/workflows/e2e-compatibility.yaml) pass for the release branch. +- [ ] [Upgrade tests](https://github.com/cosmos/ibc-go/actions/workflows/e2e-upgrade.yaml) pass. +- [ ] [Interchain Accounts inter-tx tests](https://github.com/cosmos/interchain-accounts-demo/actions/workflows/e2e-compatibility.yaml) pass. + +### Other testing ## Migration @@ -57,6 +58,7 @@ versions of ibc-go to guarantee that no regression is introduced --> - [ ] Add new release branch to [`docs/versions`](https://github.com/cosmos/ibc-go/blob/main/docs/versions) file. - [ ] Add `label` and `key` to `versions` array in [`config.js`](https://github.com/cosmos/ibc-go/blob/main/docs/.vuepress/config.js#L62). - [ ] After changes to docs site are deployed, check [ibc.cosmos.network](https://ibc.cosmos.network) is updated. +- [ ] Open issue in [SDK tutorials repo](https://github.com/cosmos/sdk-tutorials) to update tutorials to the released version of ibc-go. ____ From efd73b11374bd23b568fa97a98ab5a3ea4d1832c Mon Sep 17 00:00:00 2001 From: Ruslan Akhtariev Date: Thu, 8 Dec 2022 16:44:23 +0700 Subject: [PATCH 2/8] fix appExport --- testing/simapp/simd/cmd/root.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing/simapp/simd/cmd/root.go b/testing/simapp/simd/cmd/root.go index b5bbd7ad0bb..8ec9f95e44a 100644 --- a/testing/simapp/simd/cmd/root.go +++ b/testing/simapp/simd/cmd/root.go @@ -319,5 +319,5 @@ func (a appCreator) appExport( simApp = simapp.NewSimApp(logger, db, traceStore, true, map[int64]bool{}, homePath, uint(1), a.encCfg, appOpts) } - return simApp.ExportAppStateAndValidators(forZeroHeight, jailAllowedAddrs) + return simApp.ExportAppStateAndValidators(forZeroHeight, jailAllowedAddrs, modulesToExport) } From dd14fe943e36661c8e608654d96c975daf9f0192 Mon Sep 17 00:00:00 2001 From: Ruslan Akhtariev Date: Thu, 8 Dec 2022 16:53:37 +0700 Subject: [PATCH 3/8] fix signature of NewSimApp --- testing/simapp/app_v2.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/testing/simapp/app_v2.go b/testing/simapp/app_v2.go index eeac4cf228b..b3543b354e3 100644 --- a/testing/simapp/app_v2.go +++ b/testing/simapp/app_v2.go @@ -88,7 +88,6 @@ import ( upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" ibcfeetypes "github.com/cosmos/ibc-go/v6/modules/apps/29-fee/types" ibcmock "github.com/cosmos/ibc-go/v6/testing/mock" - simappparams "github.com/cosmos/ibc-go/v6/testing/simapp/params" ) // IBC application testing ports @@ -192,9 +191,12 @@ func init() { // NewSimApp returns a reference to an initialized SimApp. func NewSimApp( - logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest bool, skipUpgradeHeights map[int64]bool, - homePath string, invCheckPeriod uint, encodingConfig simappparams.EncodingConfig, - appOpts servertypes.AppOptions, baseAppOptions ...func(*baseapp.BaseApp), + logger log.Logger, + db dbm.DB, + traceStore io.Writer, + loadLatest bool, + appOpts servertypes.AppOptions, + baseAppOptions ...func(*baseapp.BaseApp), ) *SimApp { var ( app = &SimApp{} From 38b9531ff6dde99605a5f128a7937aff0bbec7ea Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Date: Thu, 8 Dec 2022 10:55:58 +0100 Subject: [PATCH 4/8] docs: v6 ICA migration docs improvements --- docs/assets/auth-module-decision-tree.png | Bin 0 -> 80522 bytes docs/migrations/v5-to-v6.md | 100 ++++++++++++++++++++-- 2 files changed, 93 insertions(+), 7 deletions(-) create mode 100644 docs/assets/auth-module-decision-tree.png diff --git a/docs/assets/auth-module-decision-tree.png b/docs/assets/auth-module-decision-tree.png new file mode 100644 index 0000000000000000000000000000000000000000..dc2c98e6618328d7b0d9e49f0f41fee310cdd873 GIT binary patch literal 80522 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

D+XCvL^C9DzEhQiAH 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 z zuW4V(MkHguB|n5!yh$jp)%^&6dkpLnN@5Kn2%^^mzCH#_piE+l#(_!r(%ocQlzcyy z9^Cf`>X*gl5%p7+V+Y!v4np}~jAx7)f3ZKJFRqngYye`?`YQa)?A6tnFLu6rdC4d9 zAojiZ*TRCM=i&>Im-Zl(*D(Cp@LfWQd$en*j|v`JtE04w7|0~Hn6qa>UQBRffV@JC z?v>|_MPH3(v57eCYUDda2p;Ogn}bj;_%u%5BUq=LVSoDc>4V*6DP?#<_-?K9z1#QP z{Ol+ZNt+bo{($#^flWf0&LuXmqjVsBz{@ePHQYNm=(W?I;n+V@G)pY~C-AO+uOM?I;mS2j%Y- zwusQzs_UgmdCC7;J>OH?w(9!Qc5UUg=cgQm6445${g!1TlyyCzzf^qWPIeCmN7z0F zG9EH#;@(g7{z4H->#noXNH*SIEx*4S?Gj2~u6Y$8gffHhHE6o`0KRvAFKrv#7}$G1 zaqLpmIp(y-FXnq`+e>kB&ve9~z6eAp-x^3zTt^|!3!%Kn*njJKzqkC2UwC`uIDTYV z_r!PVZH$xT`5j~Ko)~^zUc0MK2xVP@?NTh@Zvh5Ge)7)%SxsSf6?Lh%f9_JTSSeVXj~tpqOhiK*-f26hH_;%u4H#GgIs_RL8rQ%3S(0(nlD@vh~a{Fy{N zITJyIaI!Jk{lei+(?pItc5c5}7j<0St6#!n&UUc}e{aoUr~J~E(|6xyTi$ByuWkLO zxr5V}wrd^dYd+V)6aUtDi9gNPq)k41c?k0}kK8aYAFX57rUTvw26hRhyGkw=m*$Ut zvyk}9f{~8h>ip@Kc$%uy5jA%*4F;xPX#zR>#m)=?G+-={%C&G=#7#c#Ea=Sjmj!>u z$->VxD5slU{+Ik_SnM&k7SZ4#CLF}RXKsb@n+!mRfBaT+G6`!K_w>VTU^McxbBkSA ze)`JS&!s0+Q(gt7KeGvu9a|~fZmET_M$FI59XWMT*HZcQ;fEi7=$GnAIN;;83-De8 zEL23VpFe;8-~zfg9Mwgc>7SW?%TM^0|LXS~_l!I3vo5i}6hALXr!MBVc{)w@>7L=! zo;cG_p4>BU?)+w&nQkk5#@({VZ_Av1?0dhIJ?qYo+b`<`Ge7t?-k8=ZYoiScg$0y} zfS2@1#=&9U2LqdgQpZ>rh+OR^OA~+p?o;ITTs%B$5zRtsG4U&_K;p;bAA8KiWoB?sKlT}yJ?>15Ot5wG#2qt}D(PazKa*@NbGlRZtVis7X4;lX z%S4FaSvu}5Gkyt=J7($@_slL-fpKll1~Q)0H~jU1cwo+h;NK>pl)QiUN?sa4@8s_b6?QsV=h-=wzRM;w)Kt}r z1^siu-9!$g!@1dK$D7E0nfT&l5KRIw{Ss&TCGIp6Z<^Dd^wV$JuZ4>XX1rV6;shtb z$8-JG^wXWZrr(}j*c!g)cPZ|gCJVq;{JCh%c!{eG&jISi>b=6=X(LiQhD*eT_TAR{Je(aW2JE z)&Wm3V9W$xPeTsZBQbE1P+qEp#p-}>8v|c!;=Q!o5SW*y|F(PU`>K8VTC1o1`@+J1 zTWh=@WBz^g{4SxK1NG>z_t9ZTEgpk`Irbk@;y=HXbq#^z)$gB=g`B${{u=tgp2a+rLzD4002ovPDHLkV1g8U9+v Date: Thu, 8 Dec 2022 16:56:05 +0700 Subject: [PATCH 5/8] fix setup() --- testing/simapp/test_helpers.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/testing/simapp/test_helpers.go b/testing/simapp/test_helpers.go index 79f0241e6a3..acbd36b3a9b 100644 --- a/testing/simapp/test_helpers.go +++ b/testing/simapp/test_helpers.go @@ -44,12 +44,11 @@ var DefaultConsensusParams = &tmproto.ConsensusParams{ func setup(withGenesis bool, invCheckPeriod uint) (*SimApp, GenesisState) { db := dbm.NewMemDB() - encCdc := MakeTestEncodingConfig() appOptions := make(simtestutil.AppOptionsMap, 0) appOptions[flags.FlagHome] = DefaultNodeHome appOptions[server.FlagInvCheckPeriod] = invCheckPeriod - app := NewSimApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, DefaultNodeHome, invCheckPeriod, encCdc, simtestutil.EmptyAppOptions{}) + app := NewSimApp(log.NewNopLogger(), db, nil, true, simtestutil.EmptyAppOptions{}) if withGenesis { return app, NewDefaultGenesisState(app.AppCodec()) } From ea4bdca12d01d2c2f6f8586f073c83e6b15339d1 Mon Sep 17 00:00:00 2001 From: Ruslan Akhtariev Date: Thu, 8 Dec 2022 16:57:26 +0700 Subject: [PATCH 6/8] move ModuleAccountAddrs --- testing/simapp/app.go | 14 -------------- testing/simapp/sim_bench_test.go | 2 +- testing/simapp/test_helpers.go | 17 +++++++++++++++++ 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/testing/simapp/app.go b/testing/simapp/app.go index 5862fc876e0..b47666cce77 100644 --- a/testing/simapp/app.go +++ b/testing/simapp/app.go @@ -706,21 +706,7 @@ func (app *SimApp) LoadHeight(height int64) error { return app.LoadVersion(height) } -// ModuleAccountAddrs returns all the app's module account addresses. -func (app *SimApp) ModuleAccountAddrs() map[string]bool { - modAccAddrs := make(map[string]bool) - for acc := range maccPerms { - // do not add the following modules to blocked addresses - // this is only used for testing - if acc == ibcmock.ModuleName { - continue - } - modAccAddrs[authtypes.NewModuleAddress(acc).String()] = true - } - - return modAccAddrs -} // GetModuleManager returns the app module manager // NOTE: used for testing purposes diff --git a/testing/simapp/sim_bench_test.go b/testing/simapp/sim_bench_test.go index be8b97ca3be..6283f8a47ec 100644 --- a/testing/simapp/sim_bench_test.go +++ b/testing/simapp/sim_bench_test.go @@ -44,7 +44,7 @@ func BenchmarkFullAppSimulation(b *testing.B) { AppStateFn(app.AppCodec(), app.SimulationManager()), simtypes.RandomAccounts, // Replace with own random account function if using keys other than secp256k1 SimulationOperations(app, app.AppCodec(), config), - app.ModuleAccountAddrs(), + ModuleAccountAddrs(), config, app.AppCodec(), ) diff --git a/testing/simapp/test_helpers.go b/testing/simapp/test_helpers.go index acbd36b3a9b..6522903163d 100644 --- a/testing/simapp/test_helpers.go +++ b/testing/simapp/test_helpers.go @@ -21,6 +21,7 @@ import ( dbm "github.com/tendermint/tm-db" "github.com/cosmos/ibc-go/v6/testing/mock" + ibcmock "github.com/cosmos/ibc-go/v6/testing/mock" ) // DefaultConsensusParams defines the default Tendermint consensus params used in @@ -42,6 +43,22 @@ var DefaultConsensusParams = &tmproto.ConsensusParams{ }, } +// ModuleAccountAddrs returns all the app's module account addresses. +func (app *SimApp) ModuleAccountAddrs() map[string]bool { + modAccAddrs := make(map[string]bool) + for acc := range maccPerms { + // do not add the following modules to blocked addresses + // this is only used for testing + if acc == ibcmock.ModuleName { + continue + } + + modAccAddrs[authtypes.NewModuleAddress(acc).String()] = true + } + + return modAccAddrs +} + func setup(withGenesis bool, invCheckPeriod uint) (*SimApp, GenesisState) { db := dbm.NewMemDB() appOptions := make(simtestutil.AppOptionsMap, 0) From bde8fc81f019f23e10249d031fcfbb969761aa80 Mon Sep 17 00:00:00 2001 From: Ruslan Akhtariev Date: Thu, 8 Dec 2022 17:00:15 +0700 Subject: [PATCH 7/8] fix ExportAppStateAndValidators signature --- testing/simapp/sim_test.go | 4 ++-- testing/simapp/types.go | 2 +- testing/simapp/utils.go | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/testing/simapp/sim_test.go b/testing/simapp/sim_test.go index c12319f8d83..fab186bcf78 100644 --- a/testing/simapp/sim_test.go +++ b/testing/simapp/sim_test.go @@ -144,7 +144,7 @@ func TestAppImportExport(t *testing.T) { fmt.Printf("exporting genesis...\n") - exported, err := app.ExportAppStateAndValidators(false, []string{}) + exported, err := app.ExportAppStateAndValidators(false, []string{}, []string{}) require.NoError(t, err) fmt.Printf("importing genesis...\n") @@ -252,7 +252,7 @@ func TestAppSimulationAfterImport(t *testing.T) { fmt.Printf("exporting genesis...\n") - exported, err := app.ExportAppStateAndValidators(true, []string{}) + exported, err := app.ExportAppStateAndValidators(true, []string{}, []string{}) require.NoError(t, err) fmt.Printf("importing genesis...\n") diff --git a/testing/simapp/types.go b/testing/simapp/types.go index fcb0b26b62d..a6fef68935f 100644 --- a/testing/simapp/types.go +++ b/testing/simapp/types.go @@ -32,7 +32,7 @@ type App interface { // Exports the state of the application for a genesis file. ExportAppStateAndValidators( - forZeroHeight bool, jailAllowedAddrs []string, + forZeroHeight bool, jailAllowedAddrs []string, modulesToExport []string, ) (types.ExportedApp, error) // All the registered module account addreses. diff --git a/testing/simapp/utils.go b/testing/simapp/utils.go index 92fda85a524..2a0b088e4ae 100644 --- a/testing/simapp/utils.go +++ b/testing/simapp/utils.go @@ -76,7 +76,7 @@ func CheckExportSimulation( ) error { if config.ExportStatePath != "" { fmt.Println("exporting app state...") - exported, err := app.ExportAppStateAndValidators(false, nil) + exported, err := app.ExportAppStateAndValidators(false, nil, nil) if err != nil { return err } From 4a5e4e664c6932e52041e80a5c68fa6c63467ce5 Mon Sep 17 00:00:00 2001 From: Ruslan Akhtariev Date: Thu, 8 Dec 2022 17:01:56 +0700 Subject: [PATCH 8/8] .GetBaseApp() to .BaseApp --- modules/apps/27-interchain-accounts/module_test.go | 4 ++-- testing/simapp/sim_test.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/apps/27-interchain-accounts/module_test.go b/modules/apps/27-interchain-accounts/module_test.go index 9e76635b4f3..da5108644cd 100644 --- a/modules/apps/27-interchain-accounts/module_test.go +++ b/modules/apps/27-interchain-accounts/module_test.go @@ -48,7 +48,7 @@ func (suite *InterchainAccountsTestSuite) TestInitModule() { Time: suite.coordinator.CurrentTime.UTC(), } - ctx := app.GetBaseApp().NewContext(true, header) + ctx := app.BaseApp.NewContext(true, header) // ensure params are not set suite.Require().Panics(func() { @@ -114,7 +114,7 @@ func (suite *InterchainAccountsTestSuite) TestInitModule() { Time: suite.coordinator.CurrentTime.UTC(), } - ctx := app.GetBaseApp().NewContext(true, header) + ctx := app.BaseApp.NewContext(true, header) tc.malleate() diff --git a/testing/simapp/sim_test.go b/testing/simapp/sim_test.go index fab186bcf78..e0dfc24f1ec 100644 --- a/testing/simapp/sim_test.go +++ b/testing/simapp/sim_test.go @@ -275,7 +275,7 @@ func TestAppSimulationAfterImport(t *testing.T) { _, _, err = simulation.SimulateFromSeed( t, os.Stdout, - newApp.GetBaseApp(), + newApp.BaseApp, AppStateFn(app.AppCodec(), app.SimulationManager()), simtypes.RandomAccounts, // Replace with own random account function if using keys other than secp256k1 SimulationOperations(newApp, newApp.AppCodec(), config),