From c4413c5877f9ef883494da1721cb18caaba7f7f5 Mon Sep 17 00:00:00 2001 From: mmsqe Date: Mon, 22 Apr 2024 19:50:20 +0800 Subject: [PATCH 01/62] fix: avoid panic when migrate param for newly added host (#6167) * fix: avoid panic when migrate param for newly added host * keep default params * Apply suggestions from code review * allow use default params when set nil legacySubspace * Update CHANGELOG.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update CHANGELOG.md * cleanup * refactor: rm setter in icahost migrator and adjust test case * chore: update changelog * Apply suggestions from code review * Apply suggestions from code review * Apply suggestions from code review --------- Co-authored-by: Carlos Rodriguez Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Damian Nolan --- CHANGELOG.md | 2 ++ .../controller/keeper/migrations.go | 7 +++--- .../controller/keeper/migrations_test.go | 17 ++++++++++++++ .../host/keeper/migrations.go | 7 +++--- .../host/keeper/migrations_test.go | 22 +++++++++++++++++++ .../types/expected_keepers.go | 1 + 6 files changed, 50 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d94e357b2d..7d88d921e18 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -60,6 +60,8 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### Bug Fixes +* (apps/27-interchain-accounts) [\#6167](https://github.com/cosmos/ibc-go/pull/6167) Fixed an edge case bug where migrating params for a pre-existing ica module which implemented controller functionality only could panic when migrating params for newly added host, and align controller param migration with host. + ## [v8.2.0](https://github.com/cosmos/ibc-go/releases/tag/v8.2.0) - 2024-04-05 ### Dependencies diff --git a/modules/apps/27-interchain-accounts/controller/keeper/migrations.go b/modules/apps/27-interchain-accounts/controller/keeper/migrations.go index 705d93cb4b4..77f62a73c5d 100644 --- a/modules/apps/27-interchain-accounts/controller/keeper/migrations.go +++ b/modules/apps/27-interchain-accounts/controller/keeper/migrations.go @@ -55,9 +55,10 @@ func (m Migrator) AssertChannelCapabilityMigrations(ctx sdk.Context) error { // MigrateParams migrates the controller submodule's parameters from the x/params to self store. func (m Migrator) MigrateParams(ctx sdk.Context) error { if m.keeper != nil { - var params controllertypes.Params - m.keeper.legacySubspace.GetParamSet(ctx, ¶ms) - + params := controllertypes.DefaultParams() + if m.keeper.legacySubspace != nil { + m.keeper.legacySubspace.GetParamSetIfExists(ctx, ¶ms) + } m.keeper.SetParams(ctx, params) m.keeper.Logger(ctx).Info("successfully migrated ica/controller submodule to self-manage params") } diff --git a/modules/apps/27-interchain-accounts/controller/keeper/migrations_test.go b/modules/apps/27-interchain-accounts/controller/keeper/migrations_test.go index da5be84b6f5..f0011439d14 100644 --- a/modules/apps/27-interchain-accounts/controller/keeper/migrations_test.go +++ b/modules/apps/27-interchain-accounts/controller/keeper/migrations_test.go @@ -92,6 +92,23 @@ func (suite *KeeperTestSuite) TestMigratorMigrateParams() { }, icacontrollertypes.DefaultParams(), }, + { + "success: no legacy params pre-migration", + func() { + suite.chainA.GetSimApp().ICAControllerKeeper = icacontrollerkeeper.NewKeeper( + suite.chainA.Codec, + suite.chainA.GetSimApp().GetKey(icacontrollertypes.StoreKey), + nil, // assign a nil legacy param subspace + suite.chainA.GetSimApp().IBCKeeper.ChannelKeeper, + suite.chainA.GetSimApp().IBCKeeper.ChannelKeeper, + suite.chainA.GetSimApp().IBCKeeper.PortKeeper, + suite.chainA.GetSimApp().ScopedICAControllerKeeper, + suite.chainA.GetSimApp().MsgServiceRouter(), + suite.chainA.GetSimApp().ICAControllerKeeper.GetAuthority(), + ) + }, + icacontrollertypes.DefaultParams(), + }, } for _, tc := range testCases { diff --git a/modules/apps/27-interchain-accounts/host/keeper/migrations.go b/modules/apps/27-interchain-accounts/host/keeper/migrations.go index 894018606c7..992027d92f1 100644 --- a/modules/apps/27-interchain-accounts/host/keeper/migrations.go +++ b/modules/apps/27-interchain-accounts/host/keeper/migrations.go @@ -21,9 +21,10 @@ func NewMigrator(k *Keeper) Migrator { // MigrateParams migrates the host submodule's parameters from the x/params to self store. func (m Migrator) MigrateParams(ctx sdk.Context) error { if m.keeper != nil { - var params types.Params - m.keeper.legacySubspace.GetParamSet(ctx, ¶ms) - + params := types.DefaultParams() + if m.keeper.legacySubspace != nil { + m.keeper.legacySubspace.GetParamSetIfExists(ctx, ¶ms) + } if err := params.Validate(); err != nil { return err } diff --git a/modules/apps/27-interchain-accounts/host/keeper/migrations_test.go b/modules/apps/27-interchain-accounts/host/keeper/migrations_test.go index e47e40f100f..1f15f947aab 100644 --- a/modules/apps/27-interchain-accounts/host/keeper/migrations_test.go +++ b/modules/apps/27-interchain-accounts/host/keeper/migrations_test.go @@ -3,6 +3,9 @@ package keeper_test import ( "fmt" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + icahostkeeper "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host/keeper" icahosttypes "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host/types" ) @@ -22,6 +25,25 @@ func (suite *KeeperTestSuite) TestMigratorMigrateParams() { }, icahosttypes.DefaultParams(), }, + { + "success: no legacy params pre-migration", + func() { + suite.chainA.GetSimApp().ICAHostKeeper = icahostkeeper.NewKeeper( + suite.chainA.Codec, + suite.chainA.GetSimApp().GetKey(icahosttypes.StoreKey), + nil, // assign a nil legacy param subspace + suite.chainA.GetSimApp().IBCFeeKeeper, + suite.chainA.GetSimApp().IBCKeeper.ChannelKeeper, + suite.chainA.GetSimApp().IBCKeeper.PortKeeper, + suite.chainA.GetSimApp().AccountKeeper, + suite.chainA.GetSimApp().ScopedICAHostKeeper, + suite.chainA.GetSimApp().MsgServiceRouter(), + suite.chainA.GetSimApp().GRPCQueryRouter(), + authtypes.NewModuleAddress(govtypes.ModuleName).String(), + ) + }, + icahosttypes.DefaultParams(), + }, } for _, tc := range testCases { diff --git a/modules/apps/27-interchain-accounts/types/expected_keepers.go b/modules/apps/27-interchain-accounts/types/expected_keepers.go index de2eb9de245..7ea7bc795d7 100644 --- a/modules/apps/27-interchain-accounts/types/expected_keepers.go +++ b/modules/apps/27-interchain-accounts/types/expected_keepers.go @@ -37,4 +37,5 @@ type PortKeeper interface { // ParamSubspace defines the expected Subspace interface for module parameters. type ParamSubspace interface { GetParamSet(ctx sdk.Context, ps paramtypes.ParamSet) + GetParamSetIfExists(ctx sdk.Context, ps paramtypes.ParamSet) } From 6ceba47cfa6e22aa275b351420f6a61aee53458a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 21:09:08 +0300 Subject: [PATCH 02/62] build(deps): Bump github.com/cosmos/cosmos-sdk from 0.50.5 to 0.50.6 (#6193) * build(deps): Bump github.com/cosmos/cosmos-sdk in /modules/capability Bumps [github.com/cosmos/cosmos-sdk](https://github.com/cosmos/cosmos-sdk) from 0.50.5 to 0.50.6. - [Release notes](https://github.com/cosmos/cosmos-sdk/releases) - [Changelog](https://github.com/cosmos/cosmos-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/cosmos/cosmos-sdk/compare/v0.50.5...v0.50.6) --- updated-dependencies: - dependency-name: github.com/cosmos/cosmos-sdk dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * chore: make tidy-all * chore: add changelogs * chore: update more changelogs * deps: bump evidence to 0.1.1 * deps: bump feegrant to 0.1.1 * deps: bump upgrade to 0.1.2 * deps: bump circuit to 0.1.1 * deps: bump tx to 0.13.3 --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Damian Nolan Co-authored-by: DimitrisJim --- CHANGELOG.md | 3 + e2e/go.mod | 36 ++++---- e2e/go.sum | 72 ++++++++-------- go.mod | 36 ++++---- go.sum | 80 +++++++++--------- modules/apps/callbacks/CHANGELOG.md | 3 + modules/apps/callbacks/go.mod | 36 ++++---- modules/apps/callbacks/go.sum | 80 +++++++++--------- modules/capability/CHANGELOG.md | 17 ++++ modules/capability/go.mod | 48 +++++------ modules/capability/go.sum | 96 +++++++++++----------- modules/light-clients/08-wasm/CHANGELOG.md | 3 +- modules/light-clients/08-wasm/go.mod | 36 ++++---- modules/light-clients/08-wasm/go.sum | 80 +++++++++--------- 14 files changed, 325 insertions(+), 301 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d88d921e18..fedaa25a195 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,9 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### Dependencies +* [\#6193](https://github.com/cosmos/ibc-go/pull/6193) Bump Cosmos SDK to v0.50.6. +* [\#6193](https://github.com/cosmos/ibc-go/pull/6193) Bump `cosmossdk.io/store` to v1.1.0. + ### API Breaking * (core/02-client, light-clients) [\#5806](https://github.com/cosmos/ibc-go/pull/5806) Decouple light client routing from their encoding structure. diff --git a/e2e/go.mod b/e2e/go.mod index 91e6d9d6bbe..37ea0225a87 100644 --- a/e2e/go.mod +++ b/e2e/go.mod @@ -5,9 +5,9 @@ go 1.21 require ( cosmossdk.io/errors v1.0.1 cosmossdk.io/math v1.3.0 - cosmossdk.io/x/upgrade v0.1.1 + cosmossdk.io/x/upgrade v0.1.2 github.com/cometbft/cometbft v0.38.6 - github.com/cosmos/cosmos-sdk v0.50.5 + github.com/cosmos/cosmos-sdk v0.50.6 github.com/cosmos/gogoproto v1.4.12 github.com/cosmos/ibc-go/modules/light-clients/08-wasm v0.0.0-00010101000000-000000000000 github.com/cosmos/ibc-go/v8 v8.1.0 @@ -32,11 +32,11 @@ require ( cosmossdk.io/core v0.11.0 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect cosmossdk.io/log v1.3.1 // indirect - cosmossdk.io/store v1.0.2 // indirect - cosmossdk.io/x/circuit v0.1.0 // indirect - cosmossdk.io/x/evidence v0.1.0 // indirect - cosmossdk.io/x/feegrant v0.1.0 // indirect - cosmossdk.io/x/tx v0.13.2 // indirect + cosmossdk.io/store v1.1.0 // indirect + cosmossdk.io/x/circuit v0.1.1 // indirect + cosmossdk.io/x/evidence v0.1.1 // indirect + cosmossdk.io/x/feegrant v0.1.1 // indirect + cosmossdk.io/x/tx v0.13.3 // indirect filippo.io/edwards25519 v1.1.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.2 // indirect @@ -60,7 +60,7 @@ require ( github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect github.com/cenkalti/backoff/v4 v4.2.1 // indirect github.com/cespare/xxhash v1.1.0 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/chzyer/readline v1.5.1 // indirect github.com/cockroachdb/apd/v2 v2.0.2 // indirect github.com/cockroachdb/errors v1.11.1 // indirect @@ -74,7 +74,7 @@ require ( github.com/cosmos/cosmos-proto v1.0.0-beta.5 // indirect github.com/cosmos/go-bip39 v1.0.0 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect - github.com/cosmos/iavl v1.0.1 // indirect + github.com/cosmos/iavl v1.1.2 // indirect github.com/cosmos/ibc-go/modules/capability v1.0.0 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect @@ -158,7 +158,7 @@ require ( github.com/lib/pq v1.10.9 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect github.com/libp2p/go-libp2p v0.32.1 // indirect - github.com/linxGnu/grocksdb v1.8.12 // indirect + github.com/linxGnu/grocksdb v1.8.14 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/manifoldco/promptui v0.9.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect @@ -189,10 +189,10 @@ require ( github.com/pierrec/xxHash v0.1.5 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/client_golang v1.18.0 // indirect - github.com/prometheus/client_model v0.6.0 // indirect - github.com/prometheus/common v0.47.0 // indirect - github.com/prometheus/procfs v0.12.0 // indirect + github.com/prometheus/client_golang v1.19.0 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.52.2 // indirect + github.com/prometheus/procfs v0.13.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect @@ -226,15 +226,15 @@ require ( go.opentelemetry.io/otel/trace v1.22.0 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.22.0 // indirect - golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect + golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0 // indirect golang.org/x/net v0.24.0 // indirect - golang.org/x/oauth2 v0.17.0 // indirect - golang.org/x/sync v0.6.0 // indirect + golang.org/x/oauth2 v0.18.0 // indirect + golang.org/x/sync v0.7.0 // indirect golang.org/x/sys v0.19.0 // indirect golang.org/x/term v0.19.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.18.0 // indirect + golang.org/x/tools v0.20.0 // indirect golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect google.golang.org/api v0.162.0 // indirect google.golang.org/appengine v1.6.8 // indirect diff --git a/e2e/go.sum b/e2e/go.sum index 8bd6f8c61c0..197692586b6 100644 --- a/e2e/go.sum +++ b/e2e/go.sum @@ -200,18 +200,18 @@ cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= -cosmossdk.io/store v1.0.2 h1:lSg5BTvJBHUDwswNNyeh4K/CbqiHER73VU4nDNb8uk0= -cosmossdk.io/store v1.0.2/go.mod h1:EFtENTqVTuWwitGW1VwaBct+yDagk7oG/axBMPH+FXs= -cosmossdk.io/x/circuit v0.1.0 h1:IAej8aRYeuOMritczqTlljbUVHq1E85CpBqaCTwYgXs= -cosmossdk.io/x/circuit v0.1.0/go.mod h1:YDzblVE8+E+urPYQq5kq5foRY/IzhXovSYXb4nwd39w= -cosmossdk.io/x/evidence v0.1.0 h1:J6OEyDl1rbykksdGynzPKG5R/zm6TacwW2fbLTW4nCk= -cosmossdk.io/x/evidence v0.1.0/go.mod h1:hTaiiXsoiJ3InMz1uptgF0BnGqROllAN8mwisOMMsfw= -cosmossdk.io/x/feegrant v0.1.0 h1:c7s3oAq/8/UO0EiN1H5BIjwVntujVTkYs35YPvvrdQk= -cosmossdk.io/x/feegrant v0.1.0/go.mod h1:4r+FsViJRpcZif/yhTn+E0E6OFfg4n0Lx+6cCtnZElU= -cosmossdk.io/x/tx v0.13.2 h1:Kh90UH30bhnnUdJH+CmWLyaH8IKdY6BBGY3EkdOk82o= -cosmossdk.io/x/tx v0.13.2/go.mod h1:yhPokDCfXVIuAtyp49IFlWB5YAXUgD7Zek+ZHwsHzvU= -cosmossdk.io/x/upgrade v0.1.1 h1:aoPe2gNvH+Gwt/Pgq3dOxxQVU3j5P6Xf+DaUJTDZATc= -cosmossdk.io/x/upgrade v0.1.1/go.mod h1:MNLptLPcIFK9CWt7Ra//8WUZAxweyRDNcbs5nkOcQy0= +cosmossdk.io/store v1.1.0 h1:LnKwgYMc9BInn9PhpTFEQVbL9UK475G2H911CGGnWHk= +cosmossdk.io/store v1.1.0/go.mod h1:oZfW/4Fc/zYqu3JmQcQdUJ3fqu5vnYTn3LZFFy8P8ng= +cosmossdk.io/x/circuit v0.1.1 h1:KPJCnLChWrxD4jLwUiuQaf5mFD/1m7Omyo7oooefBVQ= +cosmossdk.io/x/circuit v0.1.1/go.mod h1:B6f/urRuQH8gjt4eLIXfZJucrbreuYrKh5CSjaOxr+Q= +cosmossdk.io/x/evidence v0.1.1 h1:Ks+BLTa3uftFpElLTDp9L76t2b58htjVbSZ86aoK/E4= +cosmossdk.io/x/evidence v0.1.1/go.mod h1:OoDsWlbtuyqS70LY51aX8FBTvguQqvFrt78qL7UzeNc= +cosmossdk.io/x/feegrant v0.1.1 h1:EKFWOeo/pup0yF0svDisWWKAA9Zags6Zd0P3nRvVvw8= +cosmossdk.io/x/feegrant v0.1.1/go.mod h1:2GjVVxX6G2fta8LWj7pC/ytHjryA6MHAJroBWHFNiEQ= +cosmossdk.io/x/tx v0.13.3 h1:Ha4mNaHmxBc6RMun9aKuqul8yHiL78EKJQ8g23Zf73g= +cosmossdk.io/x/tx v0.13.3/go.mod h1:I8xaHv0rhUdIvIdptKIqzYy27+n2+zBVaxO6fscFhys= +cosmossdk.io/x/upgrade v0.1.2 h1:O2FGb0mVSXl7P6BQm9uV3hRVKom1zBLDGhd4G8jysJg= +cosmossdk.io/x/upgrade v0.1.2/go.mod h1:P+e4/ZNd8km7lTAX5hC2pXz/042YDcB7gzKTHuY53nc= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= @@ -313,8 +313,8 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cheggaaa/pb v1.0.27/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/logex v1.2.1 h1:XHDu3E6q+gdHgsdTPH6ImJMIp436vR6MPtH8gP05QzM= @@ -376,8 +376,8 @@ github.com/cosmos/cosmos-db v1.0.2 h1:hwMjozuY1OlJs/uh6vddqnk9j7VamLv+0DBlbEXbAK github.com/cosmos/cosmos-db v1.0.2/go.mod h1:Z8IXcFJ9PqKK6BIsVOB3QXtkKoqUOp1vRvPT39kOXEA= github.com/cosmos/cosmos-proto v1.0.0-beta.5 h1:eNcayDLpip+zVLRLYafhzLvQlSmyab+RC5W7ZfmxJLA= github.com/cosmos/cosmos-proto v1.0.0-beta.5/go.mod h1:hQGLpiIUloJBMdQMMWb/4wRApmI9hjHH05nefC0Ojec= -github.com/cosmos/cosmos-sdk v0.50.5 h1:MOEi+DKYgW67YaPgB+Pf+nHbD3V9S/ayitRKJYLfGIA= -github.com/cosmos/cosmos-sdk v0.50.5/go.mod h1:oV/k6GJgXV9QPoM2fsYDPPsyPBgQbdotv532O6Mz1OQ= +github.com/cosmos/cosmos-sdk v0.50.6 h1:efR3MsvMHX5sxS3be+hOobGk87IzlZbSpsI2x/Vw3hk= +github.com/cosmos/cosmos-sdk v0.50.6/go.mod h1:lVkRY6cdMJ0fG3gp8y4hFrsKZqF4z7y0M2UXFb9Yt40= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= @@ -386,8 +386,8 @@ github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= github.com/cosmos/gogoproto v1.4.12 h1:vB6Lbe/rtnYGjQuFxkPiPYiCybqFT8QvLipDZP8JpFE= github.com/cosmos/gogoproto v1.4.12/go.mod h1:LnZob1bXRdUoqMMtwYlcR3wjiElmlC+FkjaZRv1/eLY= -github.com/cosmos/iavl v1.0.1 h1:D+mYbcRO2wptYzOM1Hxl9cpmmHU1ZEt9T2Wv5nZTeUw= -github.com/cosmos/iavl v1.0.1/go.mod h1:8xIUkgVvwvVrBu81scdPty+/Dx9GqwHnAvXz4cwF7RY= +github.com/cosmos/iavl v1.1.2 h1:zL9FK7C4L/P4IF1Dm5fIwz0WXCnn7Bp1M2FxH0ayM7Y= +github.com/cosmos/iavl v1.1.2/go.mod h1:jLeUvm6bGT1YutCaL2fIar/8vGUE8cPZvh/gXEWDaDM= github.com/cosmos/ibc-go/modules/capability v1.0.0 h1:r/l++byFtn7jHYa09zlAdSeevo8ci1mVZNO9+V0xsLE= github.com/cosmos/ibc-go/modules/capability v1.0.0/go.mod h1:D81ZxzjZAe0ZO5ambnvn1qedsFQ8lOwtqicG6liLBco= github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= @@ -798,8 +798,8 @@ github.com/libp2p/go-libp2p v0.32.1 h1:wy1J4kZIZxOaej6NveTWCZmHiJ/kY7GoAqXgqNCnP github.com/libp2p/go-libp2p v0.32.1/go.mod h1:hXXC3kXPlBZ1eu8Q2hptGrMB4mZ3048JUoS4EKaHW5c= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= -github.com/linxGnu/grocksdb v1.8.12 h1:1/pCztQUOa3BX/1gR3jSZDoaKFpeHFvQ1XrqZpSvZVo= -github.com/linxGnu/grocksdb v1.8.12/go.mod h1:xZCIb5Muw+nhbDK4Y5UJuOrin5MceOuiXkVUR7vp4WY= +github.com/linxGnu/grocksdb v1.8.14 h1:HTgyYalNwBSG/1qCQUIott44wU5b2Y9Kr3z7SK5OfGQ= +github.com/linxGnu/grocksdb v1.8.14/go.mod h1:QYiYypR2d4v63Wj1adOOfzglnoII0gLj3PNh4fZkcFA= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= @@ -959,32 +959,32 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= -github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= +github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= +github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos= -github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.47.0 h1:p5Cz0FNHo7SnWOmWmoRozVcjEp0bIVU8cV7OShpjL1k= -github.com/prometheus/common v0.47.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= +github.com/prometheus/common v0.52.2 h1:LW8Vk7BccEdONfrJBDffQGRtpSzi5CQaRZGtboOO2ck= +github.com/prometheus/common v0.52.2/go.mod h1:lrWtQx+iDfn2mbH5GUzlH9TSHyfZpHkSiG1W7y3sF2Q= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= -github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/prometheus/procfs v0.13.0 h1:GqzLlQyfsPbaEHaQkO7tbDlriv/4o5Hudv6OXHGKX7o= +github.com/prometheus/procfs v0.13.0/go.mod h1:cd4PFCR54QLnGKPaKGA6l+cfuNXtht43ZKY6tow0Y1g= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= @@ -1187,8 +1187,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ= -golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= +golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0 h1:985EYyeCOxTpcgOTJpflJUwOeEz0CQOdPt73OzpE9F8= +golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0/go.mod h1:/lliqkxwWAhPjf5oSOIJup2XcqJaw8RGS6k3TGEc7GI= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1303,8 +1303,8 @@ golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A= -golang.org/x/oauth2 v0.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ= -golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA= +golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= +golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1319,8 +1319,8 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= -golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1504,8 +1504,8 @@ golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.18.0 h1:k8NLag8AGHnn+PHbl7g43CtqZAwG60vZkLqgyZgIHgQ= -golang.org/x/tools v0.18.0/go.mod h1:GL7B4CwcLLeo59yx/9UWWuNOW1n3VZ4f5axWfML7Lcg= +golang.org/x/tools v0.20.0 h1:hz/CVckiOxybQvFw6h7b/q80NTr9IUQb4s1IIzW7KNY= +golang.org/x/tools v0.20.0/go.mod h1:WvitBU7JJf6A4jOdg4S1tviW9bhUxkgeCui/0JHctQg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/go.mod b/go.mod index b1bfa933e36..40ee6a30417 100644 --- a/go.mod +++ b/go.mod @@ -9,17 +9,17 @@ require ( cosmossdk.io/errors v1.0.1 cosmossdk.io/log v1.3.1 cosmossdk.io/math v1.3.0 - cosmossdk.io/store v1.0.2 + cosmossdk.io/store v1.1.0 cosmossdk.io/tools/confix v0.1.1 - cosmossdk.io/x/circuit v0.1.0 - cosmossdk.io/x/evidence v0.1.0 - cosmossdk.io/x/feegrant v0.1.0 - cosmossdk.io/x/tx v0.13.2 - cosmossdk.io/x/upgrade v0.1.1 + cosmossdk.io/x/circuit v0.1.1 + cosmossdk.io/x/evidence v0.1.1 + cosmossdk.io/x/feegrant v0.1.1 + cosmossdk.io/x/tx v0.13.3 + cosmossdk.io/x/upgrade v0.1.2 github.com/cometbft/cometbft v0.38.6 github.com/cosmos/cosmos-db v1.0.2 github.com/cosmos/cosmos-proto v1.0.0-beta.5 - github.com/cosmos/cosmos-sdk v0.50.5 + github.com/cosmos/cosmos-sdk v0.50.6 github.com/cosmos/gogoproto v1.4.12 github.com/cosmos/ibc-go/modules/capability v1.0.0 github.com/cosmos/ics23/go v0.10.0 @@ -57,7 +57,7 @@ require ( github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect github.com/cenkalti/backoff/v4 v4.1.3 // indirect github.com/cespare/xxhash v1.1.0 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/chzyer/readline v1.5.1 // indirect github.com/cockroachdb/apd/v2 v2.0.2 // indirect github.com/cockroachdb/errors v1.11.1 // indirect @@ -69,7 +69,7 @@ require ( github.com/cosmos/btcutil v1.0.5 // indirect github.com/cosmos/go-bip39 v1.0.0 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect - github.com/cosmos/iavl v1.0.1 // indirect + github.com/cosmos/iavl v1.1.2 // indirect github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect github.com/creachadair/atomicfile v0.3.1 // indirect github.com/creachadair/tomledit v0.0.24 // indirect @@ -133,7 +133,7 @@ require ( github.com/kr/text v0.2.0 // indirect github.com/lib/pq v1.10.7 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect - github.com/linxGnu/grocksdb v1.8.12 // indirect + github.com/linxGnu/grocksdb v1.8.14 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/manifoldco/promptui v0.9.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect @@ -146,13 +146,13 @@ require ( github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a // indirect github.com/oklog/run v1.1.0 // indirect github.com/pelletier/go-toml/v2 v2.1.0 // indirect - github.com/petermattis/goid v0.0.0-20230904192822-1876fd5063bc // indirect + github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/client_golang v1.18.0 // indirect - github.com/prometheus/client_model v0.6.0 // indirect - github.com/prometheus/common v0.47.0 // indirect - github.com/prometheus/procfs v0.12.0 // indirect + github.com/prometheus/client_golang v1.19.0 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.52.2 // indirect + github.com/prometheus/procfs v0.13.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rs/cors v1.8.3 // indirect @@ -179,10 +179,10 @@ require ( go.opentelemetry.io/otel/trace v1.22.0 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.22.0 // indirect - golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect + golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0 // indirect golang.org/x/net v0.24.0 // indirect - golang.org/x/oauth2 v0.17.0 // indirect - golang.org/x/sync v0.6.0 // indirect + golang.org/x/oauth2 v0.18.0 // indirect + golang.org/x/sync v0.7.0 // indirect golang.org/x/sys v0.19.0 // indirect golang.org/x/term v0.19.0 // indirect golang.org/x/text v0.14.0 // indirect diff --git a/go.sum b/go.sum index bacf62c8109..e2c68d093d3 100644 --- a/go.sum +++ b/go.sum @@ -200,20 +200,20 @@ cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= -cosmossdk.io/store v1.0.2 h1:lSg5BTvJBHUDwswNNyeh4K/CbqiHER73VU4nDNb8uk0= -cosmossdk.io/store v1.0.2/go.mod h1:EFtENTqVTuWwitGW1VwaBct+yDagk7oG/axBMPH+FXs= +cosmossdk.io/store v1.1.0 h1:LnKwgYMc9BInn9PhpTFEQVbL9UK475G2H911CGGnWHk= +cosmossdk.io/store v1.1.0/go.mod h1:oZfW/4Fc/zYqu3JmQcQdUJ3fqu5vnYTn3LZFFy8P8ng= cosmossdk.io/tools/confix v0.1.1 h1:aexyRv9+y15veH3Qw16lxQwo+ki7r2I+g0yNTEFEQM8= cosmossdk.io/tools/confix v0.1.1/go.mod h1:nQVvP1tHsGXS83PonPVWJtSbddIqyjEw99L4M3rPJyQ= -cosmossdk.io/x/circuit v0.1.0 h1:IAej8aRYeuOMritczqTlljbUVHq1E85CpBqaCTwYgXs= -cosmossdk.io/x/circuit v0.1.0/go.mod h1:YDzblVE8+E+urPYQq5kq5foRY/IzhXovSYXb4nwd39w= -cosmossdk.io/x/evidence v0.1.0 h1:J6OEyDl1rbykksdGynzPKG5R/zm6TacwW2fbLTW4nCk= -cosmossdk.io/x/evidence v0.1.0/go.mod h1:hTaiiXsoiJ3InMz1uptgF0BnGqROllAN8mwisOMMsfw= -cosmossdk.io/x/feegrant v0.1.0 h1:c7s3oAq/8/UO0EiN1H5BIjwVntujVTkYs35YPvvrdQk= -cosmossdk.io/x/feegrant v0.1.0/go.mod h1:4r+FsViJRpcZif/yhTn+E0E6OFfg4n0Lx+6cCtnZElU= -cosmossdk.io/x/tx v0.13.2 h1:Kh90UH30bhnnUdJH+CmWLyaH8IKdY6BBGY3EkdOk82o= -cosmossdk.io/x/tx v0.13.2/go.mod h1:yhPokDCfXVIuAtyp49IFlWB5YAXUgD7Zek+ZHwsHzvU= -cosmossdk.io/x/upgrade v0.1.1 h1:aoPe2gNvH+Gwt/Pgq3dOxxQVU3j5P6Xf+DaUJTDZATc= -cosmossdk.io/x/upgrade v0.1.1/go.mod h1:MNLptLPcIFK9CWt7Ra//8WUZAxweyRDNcbs5nkOcQy0= +cosmossdk.io/x/circuit v0.1.1 h1:KPJCnLChWrxD4jLwUiuQaf5mFD/1m7Omyo7oooefBVQ= +cosmossdk.io/x/circuit v0.1.1/go.mod h1:B6f/urRuQH8gjt4eLIXfZJucrbreuYrKh5CSjaOxr+Q= +cosmossdk.io/x/evidence v0.1.1 h1:Ks+BLTa3uftFpElLTDp9L76t2b58htjVbSZ86aoK/E4= +cosmossdk.io/x/evidence v0.1.1/go.mod h1:OoDsWlbtuyqS70LY51aX8FBTvguQqvFrt78qL7UzeNc= +cosmossdk.io/x/feegrant v0.1.1 h1:EKFWOeo/pup0yF0svDisWWKAA9Zags6Zd0P3nRvVvw8= +cosmossdk.io/x/feegrant v0.1.1/go.mod h1:2GjVVxX6G2fta8LWj7pC/ytHjryA6MHAJroBWHFNiEQ= +cosmossdk.io/x/tx v0.13.3 h1:Ha4mNaHmxBc6RMun9aKuqul8yHiL78EKJQ8g23Zf73g= +cosmossdk.io/x/tx v0.13.3/go.mod h1:I8xaHv0rhUdIvIdptKIqzYy27+n2+zBVaxO6fscFhys= +cosmossdk.io/x/upgrade v0.1.2 h1:O2FGb0mVSXl7P6BQm9uV3hRVKom1zBLDGhd4G8jysJg= +cosmossdk.io/x/upgrade v0.1.2/go.mod h1:P+e4/ZNd8km7lTAX5hC2pXz/042YDcB7gzKTHuY53nc= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -292,8 +292,8 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cheggaaa/pb v1.0.27/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/logex v1.2.1 h1:XHDu3E6q+gdHgsdTPH6ImJMIp436vR6MPtH8gP05QzM= @@ -353,8 +353,8 @@ github.com/cosmos/cosmos-db v1.0.2 h1:hwMjozuY1OlJs/uh6vddqnk9j7VamLv+0DBlbEXbAK github.com/cosmos/cosmos-db v1.0.2/go.mod h1:Z8IXcFJ9PqKK6BIsVOB3QXtkKoqUOp1vRvPT39kOXEA= github.com/cosmos/cosmos-proto v1.0.0-beta.5 h1:eNcayDLpip+zVLRLYafhzLvQlSmyab+RC5W7ZfmxJLA= github.com/cosmos/cosmos-proto v1.0.0-beta.5/go.mod h1:hQGLpiIUloJBMdQMMWb/4wRApmI9hjHH05nefC0Ojec= -github.com/cosmos/cosmos-sdk v0.50.5 h1:MOEi+DKYgW67YaPgB+Pf+nHbD3V9S/ayitRKJYLfGIA= -github.com/cosmos/cosmos-sdk v0.50.5/go.mod h1:oV/k6GJgXV9QPoM2fsYDPPsyPBgQbdotv532O6Mz1OQ= +github.com/cosmos/cosmos-sdk v0.50.6 h1:efR3MsvMHX5sxS3be+hOobGk87IzlZbSpsI2x/Vw3hk= +github.com/cosmos/cosmos-sdk v0.50.6/go.mod h1:lVkRY6cdMJ0fG3gp8y4hFrsKZqF4z7y0M2UXFb9Yt40= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= github.com/cosmos/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE= @@ -362,8 +362,8 @@ github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= github.com/cosmos/gogoproto v1.4.12 h1:vB6Lbe/rtnYGjQuFxkPiPYiCybqFT8QvLipDZP8JpFE= github.com/cosmos/gogoproto v1.4.12/go.mod h1:LnZob1bXRdUoqMMtwYlcR3wjiElmlC+FkjaZRv1/eLY= -github.com/cosmos/iavl v1.0.1 h1:D+mYbcRO2wptYzOM1Hxl9cpmmHU1ZEt9T2Wv5nZTeUw= -github.com/cosmos/iavl v1.0.1/go.mod h1:8xIUkgVvwvVrBu81scdPty+/Dx9GqwHnAvXz4cwF7RY= +github.com/cosmos/iavl v1.1.2 h1:zL9FK7C4L/P4IF1Dm5fIwz0WXCnn7Bp1M2FxH0ayM7Y= +github.com/cosmos/iavl v1.1.2/go.mod h1:jLeUvm6bGT1YutCaL2fIar/8vGUE8cPZvh/gXEWDaDM= github.com/cosmos/ibc-go/modules/capability v1.0.0 h1:r/l++byFtn7jHYa09zlAdSeevo8ci1mVZNO9+V0xsLE= github.com/cosmos/ibc-go/modules/capability v1.0.0/go.mod h1:D81ZxzjZAe0ZO5ambnvn1qedsFQ8lOwtqicG6liLBco= github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= @@ -763,8 +763,8 @@ github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6 github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= -github.com/linxGnu/grocksdb v1.8.12 h1:1/pCztQUOa3BX/1gR3jSZDoaKFpeHFvQ1XrqZpSvZVo= -github.com/linxGnu/grocksdb v1.8.12/go.mod h1:xZCIb5Muw+nhbDK4Y5UJuOrin5MceOuiXkVUR7vp4WY= +github.com/linxGnu/grocksdb v1.8.14 h1:HTgyYalNwBSG/1qCQUIott44wU5b2Y9Kr3z7SK5OfGQ= +github.com/linxGnu/grocksdb v1.8.14/go.mod h1:QYiYypR2d4v63Wj1adOOfzglnoII0gLj3PNh4fZkcFA= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= @@ -872,8 +872,8 @@ github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6 github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= -github.com/petermattis/goid v0.0.0-20230904192822-1876fd5063bc h1:8bQZVK1X6BJR/6nYUPxQEP+ReTsceJTKizeuwjWOPUA= -github.com/petermattis/goid v0.0.0-20230904192822-1876fd5063bc/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= +github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67 h1:jik8PHtAIsPlCRJjJzl4udgEf7hawInF9texMeO2jrU= +github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= @@ -894,32 +894,32 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= -github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= +github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= +github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos= -github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.47.0 h1:p5Cz0FNHo7SnWOmWmoRozVcjEp0bIVU8cV7OShpjL1k= -github.com/prometheus/common v0.47.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= +github.com/prometheus/common v0.52.2 h1:LW8Vk7BccEdONfrJBDffQGRtpSzi5CQaRZGtboOO2ck= +github.com/prometheus/common v0.52.2/go.mod h1:lrWtQx+iDfn2mbH5GUzlH9TSHyfZpHkSiG1W7y3sF2Q= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= -github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/prometheus/procfs v0.13.0 h1:GqzLlQyfsPbaEHaQkO7tbDlriv/4o5Hudv6OXHGKX7o= +github.com/prometheus/procfs v0.13.0/go.mod h1:cd4PFCR54QLnGKPaKGA6l+cfuNXtht43ZKY6tow0Y1g= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= @@ -1102,8 +1102,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ= -golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= +golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0 h1:985EYyeCOxTpcgOTJpflJUwOeEz0CQOdPt73OzpE9F8= +golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0/go.mod h1:/lliqkxwWAhPjf5oSOIJup2XcqJaw8RGS6k3TGEc7GI= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1130,8 +1130,8 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.15.0 h1:SernR4v+D55NyBH2QiEQrlBAnj1ECL6AGrA5+dPaMY8= -golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1218,8 +1218,8 @@ golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A= -golang.org/x/oauth2 v0.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ= -golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA= +golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= +golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1234,8 +1234,8 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= -golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1421,8 +1421,8 @@ golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.18.0 h1:k8NLag8AGHnn+PHbl7g43CtqZAwG60vZkLqgyZgIHgQ= -golang.org/x/tools v0.18.0/go.mod h1:GL7B4CwcLLeo59yx/9UWWuNOW1n3VZ4f5axWfML7Lcg= +golang.org/x/tools v0.20.0 h1:hz/CVckiOxybQvFw6h7b/q80NTr9IUQb4s1IIzW7KNY= +golang.org/x/tools v0.20.0/go.mod h1:WvitBU7JJf6A4jOdg4S1tviW9bhUxkgeCui/0JHctQg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/apps/callbacks/CHANGELOG.md b/modules/apps/callbacks/CHANGELOG.md index 7b11bdc0ac1..25047a3fa37 100644 --- a/modules/apps/callbacks/CHANGELOG.md +++ b/modules/apps/callbacks/CHANGELOG.md @@ -38,6 +38,9 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### Dependencies +* [\#6193](https://github.com/cosmos/ibc-go/pull/6193) Bump Cosmos SDK to v0.50.6. +* [\#6193](https://github.com/cosmos/ibc-go/pull/6193) Bump `cosmossdk.io/store` to v1.1.0. + ### API Breaking ### State Machine Breaking diff --git a/modules/apps/callbacks/go.mod b/modules/apps/callbacks/go.mod index 0b98279dc03..b636c1e29b4 100644 --- a/modules/apps/callbacks/go.mod +++ b/modules/apps/callbacks/go.mod @@ -15,16 +15,16 @@ require ( cosmossdk.io/errors v1.0.1 cosmossdk.io/log v1.3.1 cosmossdk.io/math v1.3.0 - cosmossdk.io/store v1.0.2 + cosmossdk.io/store v1.1.0 cosmossdk.io/tools/confix v0.1.1 - cosmossdk.io/x/circuit v0.1.0 - cosmossdk.io/x/evidence v0.1.0 - cosmossdk.io/x/feegrant v0.1.0 - cosmossdk.io/x/tx v0.13.2 - cosmossdk.io/x/upgrade v0.1.1 + cosmossdk.io/x/circuit v0.1.1 + cosmossdk.io/x/evidence v0.1.1 + cosmossdk.io/x/feegrant v0.1.1 + cosmossdk.io/x/tx v0.13.3 + cosmossdk.io/x/upgrade v0.1.2 github.com/cometbft/cometbft v0.38.6 github.com/cosmos/cosmos-db v1.0.2 - github.com/cosmos/cosmos-sdk v0.50.5 + github.com/cosmos/cosmos-sdk v0.50.6 github.com/cosmos/gogoproto v1.4.12 github.com/cosmos/ibc-go/modules/capability v1.0.0 github.com/cosmos/ibc-go/v8 v8.0.0 @@ -55,7 +55,7 @@ require ( github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect github.com/cenkalti/backoff/v4 v4.1.3 // indirect github.com/cespare/xxhash v1.1.0 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/chzyer/readline v1.5.1 // indirect github.com/cockroachdb/apd/v2 v2.0.2 // indirect github.com/cockroachdb/errors v1.11.1 // indirect @@ -68,7 +68,7 @@ require ( github.com/cosmos/cosmos-proto v1.0.0-beta.5 // indirect github.com/cosmos/go-bip39 v1.0.0 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect - github.com/cosmos/iavl v1.0.1 // indirect + github.com/cosmos/iavl v1.1.2 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect github.com/creachadair/atomicfile v0.3.1 // indirect @@ -136,7 +136,7 @@ require ( github.com/kr/text v0.2.0 // indirect github.com/lib/pq v1.10.7 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect - github.com/linxGnu/grocksdb v1.8.12 // indirect + github.com/linxGnu/grocksdb v1.8.14 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/manifoldco/promptui v0.9.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect @@ -149,13 +149,13 @@ require ( github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a // indirect github.com/oklog/run v1.1.0 // indirect github.com/pelletier/go-toml/v2 v2.1.0 // indirect - github.com/petermattis/goid v0.0.0-20230904192822-1876fd5063bc // indirect + github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/client_golang v1.18.0 // indirect - github.com/prometheus/client_model v0.6.0 // indirect - github.com/prometheus/common v0.47.0 // indirect - github.com/prometheus/procfs v0.12.0 // indirect + github.com/prometheus/client_golang v1.19.0 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.52.2 // indirect + github.com/prometheus/procfs v0.13.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rs/cors v1.8.3 // indirect @@ -182,10 +182,10 @@ require ( go.opentelemetry.io/otel/trace v1.22.0 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.22.0 // indirect - golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect + golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0 // indirect golang.org/x/net v0.24.0 // indirect - golang.org/x/oauth2 v0.17.0 // indirect - golang.org/x/sync v0.6.0 // indirect + golang.org/x/oauth2 v0.18.0 // indirect + golang.org/x/sync v0.7.0 // indirect golang.org/x/sys v0.19.0 // indirect golang.org/x/term v0.19.0 // indirect golang.org/x/text v0.14.0 // indirect diff --git a/modules/apps/callbacks/go.sum b/modules/apps/callbacks/go.sum index bacf62c8109..e2c68d093d3 100644 --- a/modules/apps/callbacks/go.sum +++ b/modules/apps/callbacks/go.sum @@ -200,20 +200,20 @@ cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= -cosmossdk.io/store v1.0.2 h1:lSg5BTvJBHUDwswNNyeh4K/CbqiHER73VU4nDNb8uk0= -cosmossdk.io/store v1.0.2/go.mod h1:EFtENTqVTuWwitGW1VwaBct+yDagk7oG/axBMPH+FXs= +cosmossdk.io/store v1.1.0 h1:LnKwgYMc9BInn9PhpTFEQVbL9UK475G2H911CGGnWHk= +cosmossdk.io/store v1.1.0/go.mod h1:oZfW/4Fc/zYqu3JmQcQdUJ3fqu5vnYTn3LZFFy8P8ng= cosmossdk.io/tools/confix v0.1.1 h1:aexyRv9+y15veH3Qw16lxQwo+ki7r2I+g0yNTEFEQM8= cosmossdk.io/tools/confix v0.1.1/go.mod h1:nQVvP1tHsGXS83PonPVWJtSbddIqyjEw99L4M3rPJyQ= -cosmossdk.io/x/circuit v0.1.0 h1:IAej8aRYeuOMritczqTlljbUVHq1E85CpBqaCTwYgXs= -cosmossdk.io/x/circuit v0.1.0/go.mod h1:YDzblVE8+E+urPYQq5kq5foRY/IzhXovSYXb4nwd39w= -cosmossdk.io/x/evidence v0.1.0 h1:J6OEyDl1rbykksdGynzPKG5R/zm6TacwW2fbLTW4nCk= -cosmossdk.io/x/evidence v0.1.0/go.mod h1:hTaiiXsoiJ3InMz1uptgF0BnGqROllAN8mwisOMMsfw= -cosmossdk.io/x/feegrant v0.1.0 h1:c7s3oAq/8/UO0EiN1H5BIjwVntujVTkYs35YPvvrdQk= -cosmossdk.io/x/feegrant v0.1.0/go.mod h1:4r+FsViJRpcZif/yhTn+E0E6OFfg4n0Lx+6cCtnZElU= -cosmossdk.io/x/tx v0.13.2 h1:Kh90UH30bhnnUdJH+CmWLyaH8IKdY6BBGY3EkdOk82o= -cosmossdk.io/x/tx v0.13.2/go.mod h1:yhPokDCfXVIuAtyp49IFlWB5YAXUgD7Zek+ZHwsHzvU= -cosmossdk.io/x/upgrade v0.1.1 h1:aoPe2gNvH+Gwt/Pgq3dOxxQVU3j5P6Xf+DaUJTDZATc= -cosmossdk.io/x/upgrade v0.1.1/go.mod h1:MNLptLPcIFK9CWt7Ra//8WUZAxweyRDNcbs5nkOcQy0= +cosmossdk.io/x/circuit v0.1.1 h1:KPJCnLChWrxD4jLwUiuQaf5mFD/1m7Omyo7oooefBVQ= +cosmossdk.io/x/circuit v0.1.1/go.mod h1:B6f/urRuQH8gjt4eLIXfZJucrbreuYrKh5CSjaOxr+Q= +cosmossdk.io/x/evidence v0.1.1 h1:Ks+BLTa3uftFpElLTDp9L76t2b58htjVbSZ86aoK/E4= +cosmossdk.io/x/evidence v0.1.1/go.mod h1:OoDsWlbtuyqS70LY51aX8FBTvguQqvFrt78qL7UzeNc= +cosmossdk.io/x/feegrant v0.1.1 h1:EKFWOeo/pup0yF0svDisWWKAA9Zags6Zd0P3nRvVvw8= +cosmossdk.io/x/feegrant v0.1.1/go.mod h1:2GjVVxX6G2fta8LWj7pC/ytHjryA6MHAJroBWHFNiEQ= +cosmossdk.io/x/tx v0.13.3 h1:Ha4mNaHmxBc6RMun9aKuqul8yHiL78EKJQ8g23Zf73g= +cosmossdk.io/x/tx v0.13.3/go.mod h1:I8xaHv0rhUdIvIdptKIqzYy27+n2+zBVaxO6fscFhys= +cosmossdk.io/x/upgrade v0.1.2 h1:O2FGb0mVSXl7P6BQm9uV3hRVKom1zBLDGhd4G8jysJg= +cosmossdk.io/x/upgrade v0.1.2/go.mod h1:P+e4/ZNd8km7lTAX5hC2pXz/042YDcB7gzKTHuY53nc= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -292,8 +292,8 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cheggaaa/pb v1.0.27/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/logex v1.2.1 h1:XHDu3E6q+gdHgsdTPH6ImJMIp436vR6MPtH8gP05QzM= @@ -353,8 +353,8 @@ github.com/cosmos/cosmos-db v1.0.2 h1:hwMjozuY1OlJs/uh6vddqnk9j7VamLv+0DBlbEXbAK github.com/cosmos/cosmos-db v1.0.2/go.mod h1:Z8IXcFJ9PqKK6BIsVOB3QXtkKoqUOp1vRvPT39kOXEA= github.com/cosmos/cosmos-proto v1.0.0-beta.5 h1:eNcayDLpip+zVLRLYafhzLvQlSmyab+RC5W7ZfmxJLA= github.com/cosmos/cosmos-proto v1.0.0-beta.5/go.mod h1:hQGLpiIUloJBMdQMMWb/4wRApmI9hjHH05nefC0Ojec= -github.com/cosmos/cosmos-sdk v0.50.5 h1:MOEi+DKYgW67YaPgB+Pf+nHbD3V9S/ayitRKJYLfGIA= -github.com/cosmos/cosmos-sdk v0.50.5/go.mod h1:oV/k6GJgXV9QPoM2fsYDPPsyPBgQbdotv532O6Mz1OQ= +github.com/cosmos/cosmos-sdk v0.50.6 h1:efR3MsvMHX5sxS3be+hOobGk87IzlZbSpsI2x/Vw3hk= +github.com/cosmos/cosmos-sdk v0.50.6/go.mod h1:lVkRY6cdMJ0fG3gp8y4hFrsKZqF4z7y0M2UXFb9Yt40= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= github.com/cosmos/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE= @@ -362,8 +362,8 @@ github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= github.com/cosmos/gogoproto v1.4.12 h1:vB6Lbe/rtnYGjQuFxkPiPYiCybqFT8QvLipDZP8JpFE= github.com/cosmos/gogoproto v1.4.12/go.mod h1:LnZob1bXRdUoqMMtwYlcR3wjiElmlC+FkjaZRv1/eLY= -github.com/cosmos/iavl v1.0.1 h1:D+mYbcRO2wptYzOM1Hxl9cpmmHU1ZEt9T2Wv5nZTeUw= -github.com/cosmos/iavl v1.0.1/go.mod h1:8xIUkgVvwvVrBu81scdPty+/Dx9GqwHnAvXz4cwF7RY= +github.com/cosmos/iavl v1.1.2 h1:zL9FK7C4L/P4IF1Dm5fIwz0WXCnn7Bp1M2FxH0ayM7Y= +github.com/cosmos/iavl v1.1.2/go.mod h1:jLeUvm6bGT1YutCaL2fIar/8vGUE8cPZvh/gXEWDaDM= github.com/cosmos/ibc-go/modules/capability v1.0.0 h1:r/l++byFtn7jHYa09zlAdSeevo8ci1mVZNO9+V0xsLE= github.com/cosmos/ibc-go/modules/capability v1.0.0/go.mod h1:D81ZxzjZAe0ZO5ambnvn1qedsFQ8lOwtqicG6liLBco= github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= @@ -763,8 +763,8 @@ github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6 github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= -github.com/linxGnu/grocksdb v1.8.12 h1:1/pCztQUOa3BX/1gR3jSZDoaKFpeHFvQ1XrqZpSvZVo= -github.com/linxGnu/grocksdb v1.8.12/go.mod h1:xZCIb5Muw+nhbDK4Y5UJuOrin5MceOuiXkVUR7vp4WY= +github.com/linxGnu/grocksdb v1.8.14 h1:HTgyYalNwBSG/1qCQUIott44wU5b2Y9Kr3z7SK5OfGQ= +github.com/linxGnu/grocksdb v1.8.14/go.mod h1:QYiYypR2d4v63Wj1adOOfzglnoII0gLj3PNh4fZkcFA= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= @@ -872,8 +872,8 @@ github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6 github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= -github.com/petermattis/goid v0.0.0-20230904192822-1876fd5063bc h1:8bQZVK1X6BJR/6nYUPxQEP+ReTsceJTKizeuwjWOPUA= -github.com/petermattis/goid v0.0.0-20230904192822-1876fd5063bc/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= +github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67 h1:jik8PHtAIsPlCRJjJzl4udgEf7hawInF9texMeO2jrU= +github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= @@ -894,32 +894,32 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= -github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= +github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= +github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos= -github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.47.0 h1:p5Cz0FNHo7SnWOmWmoRozVcjEp0bIVU8cV7OShpjL1k= -github.com/prometheus/common v0.47.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= +github.com/prometheus/common v0.52.2 h1:LW8Vk7BccEdONfrJBDffQGRtpSzi5CQaRZGtboOO2ck= +github.com/prometheus/common v0.52.2/go.mod h1:lrWtQx+iDfn2mbH5GUzlH9TSHyfZpHkSiG1W7y3sF2Q= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= -github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/prometheus/procfs v0.13.0 h1:GqzLlQyfsPbaEHaQkO7tbDlriv/4o5Hudv6OXHGKX7o= +github.com/prometheus/procfs v0.13.0/go.mod h1:cd4PFCR54QLnGKPaKGA6l+cfuNXtht43ZKY6tow0Y1g= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= @@ -1102,8 +1102,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ= -golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= +golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0 h1:985EYyeCOxTpcgOTJpflJUwOeEz0CQOdPt73OzpE9F8= +golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0/go.mod h1:/lliqkxwWAhPjf5oSOIJup2XcqJaw8RGS6k3TGEc7GI= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1130,8 +1130,8 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.15.0 h1:SernR4v+D55NyBH2QiEQrlBAnj1ECL6AGrA5+dPaMY8= -golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1218,8 +1218,8 @@ golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A= -golang.org/x/oauth2 v0.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ= -golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA= +golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= +golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1234,8 +1234,8 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= -golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1421,8 +1421,8 @@ golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.18.0 h1:k8NLag8AGHnn+PHbl7g43CtqZAwG60vZkLqgyZgIHgQ= -golang.org/x/tools v0.18.0/go.mod h1:GL7B4CwcLLeo59yx/9UWWuNOW1n3VZ4f5axWfML7Lcg= +golang.org/x/tools v0.20.0 h1:hz/CVckiOxybQvFw6h7b/q80NTr9IUQb4s1IIzW7KNY= +golang.org/x/tools v0.20.0/go.mod h1:WvitBU7JJf6A4jOdg4S1tviW9bhUxkgeCui/0JHctQg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/capability/CHANGELOG.md b/modules/capability/CHANGELOG.md index cf6d1b30cae..b18c6852ea3 100644 --- a/modules/capability/CHANGELOG.md +++ b/modules/capability/CHANGELOG.md @@ -31,6 +31,23 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### Dependencies +* [\#6193](https://github.com/cosmos/ibc-go/pull/6193) Bump Cosmos SDK to v0.50.6. +* [\#6193](https://github.com/cosmos/ibc-go/pull/6193) Bump `cosmossdk.io/store` to v1.1.0. + +### API Breaking + +### State Machine Breaking + +### Improvements + +### Features + +### Bug Fixes + +## [v1.0.0] + +### Dependencies + * [\#4068](https://github.com/cosmos/ibc-go/pull/4068) Upgrade capability module to cosmos-sdk v0.50 ### API Breaking diff --git a/modules/capability/go.mod b/modules/capability/go.mod index df01ed08a38..1552d3d1c6e 100644 --- a/modules/capability/go.mod +++ b/modules/capability/go.mod @@ -9,10 +9,10 @@ require ( cosmossdk.io/errors v1.0.1 cosmossdk.io/log v1.3.1 cosmossdk.io/math v1.3.0 - cosmossdk.io/store v1.0.2 + cosmossdk.io/store v1.1.0 github.com/cometbft/cometbft v0.38.6 github.com/cosmos/cosmos-db v1.0.2 - github.com/cosmos/cosmos-sdk v0.50.5 + github.com/cosmos/cosmos-sdk v0.50.6 github.com/cosmos/gogoproto v1.4.12 github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/stretchr/testify v1.9.0 @@ -20,10 +20,10 @@ require ( ) require ( - cosmossdk.io/api v0.7.3 // indirect + cosmossdk.io/api v0.7.4 // indirect cosmossdk.io/collections v0.4.0 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect - cosmossdk.io/x/tx v0.13.1 // indirect + cosmossdk.io/x/tx v0.13.2 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect @@ -34,7 +34,7 @@ require ( github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect github.com/cenkalti/backoff/v4 v4.1.3 // indirect github.com/cespare/xxhash v1.1.0 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cockroachdb/errors v1.11.1 // indirect github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect github.com/cockroachdb/pebble v1.1.0 // indirect @@ -42,10 +42,10 @@ require ( github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect github.com/cometbft/cometbft-db v0.9.1 // indirect github.com/cosmos/btcutil v1.0.5 // indirect - github.com/cosmos/cosmos-proto v1.0.0-beta.4 // indirect + github.com/cosmos/cosmos-proto v1.0.0-beta.5 // indirect github.com/cosmos/go-bip39 v1.0.0 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect - github.com/cosmos/iavl v1.0.1 // indirect + github.com/cosmos/iavl v1.1.2 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect github.com/danieljoos/wincred v1.1.2 // indirect @@ -83,7 +83,7 @@ require ( github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/hashicorp/go-hclog v1.5.0 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect - github.com/hashicorp/go-metrics v0.5.1 // indirect + github.com/hashicorp/go-metrics v0.5.3 // indirect github.com/hashicorp/go-plugin v1.5.2 // indirect github.com/hashicorp/go-uuid v1.0.2 // indirect github.com/hashicorp/golang-lru v1.0.2 // indirect @@ -99,7 +99,7 @@ require ( github.com/kr/pretty v0.3.1 // indirect github.com/kr/text v0.2.0 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect - github.com/linxGnu/grocksdb v1.8.12 // indirect + github.com/linxGnu/grocksdb v1.8.14 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect @@ -110,13 +110,13 @@ require ( github.com/oklog/run v1.1.0 // indirect github.com/onsi/ginkgo v1.16.4 // indirect github.com/pelletier/go-toml/v2 v2.1.0 // indirect - github.com/petermattis/goid v0.0.0-20230904192822-1876fd5063bc // indirect + github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/client_golang v1.18.0 // indirect - github.com/prometheus/client_model v0.6.0 // indirect - github.com/prometheus/common v0.47.0 // indirect - github.com/prometheus/procfs v0.12.0 // indirect + github.com/prometheus/client_golang v1.19.0 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.52.2 // indirect + github.com/prometheus/procfs v0.13.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rs/cors v1.8.3 // indirect @@ -139,17 +139,17 @@ require ( github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.8 // indirect go.uber.org/multierr v1.10.0 // indirect - golang.org/x/crypto v0.19.0 // indirect - golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect - golang.org/x/net v0.21.0 // indirect - golang.org/x/sync v0.6.0 // indirect - golang.org/x/sys v0.17.0 // indirect - golang.org/x/term v0.17.0 // indirect + golang.org/x/crypto v0.22.0 // indirect + golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0 // indirect + golang.org/x/net v0.24.0 // indirect + golang.org/x/sync v0.7.0 // indirect + golang.org/x/sys v0.19.0 // indirect + golang.org/x/term v0.19.0 // indirect golang.org/x/text v0.14.0 // indirect - google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240221002015-b0ce06bbee7c // indirect - google.golang.org/grpc v1.62.0 // indirect + google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect + google.golang.org/grpc v1.63.2 // indirect google.golang.org/protobuf v1.33.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/modules/capability/go.sum b/modules/capability/go.sum index f51698f069d..e0885fcd189 100644 --- a/modules/capability/go.sum +++ b/modules/capability/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cosmossdk.io/api v0.7.3 h1:V815i8YOwOAQa1rLCsSMjVG5Gnzs02JLq+l7ks8s1jk= -cosmossdk.io/api v0.7.3/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= +cosmossdk.io/api v0.7.4 h1:sPo8wKwCty1lht8kgL3J7YL1voJywP3YWuA5JKkBz30= +cosmossdk.io/api v0.7.4/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= cosmossdk.io/core v0.11.0 h1:vtIafqUi+1ZNAE/oxLOQQ7Oek2n4S48SWLG8h/+wdbo= @@ -14,10 +14,10 @@ cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= -cosmossdk.io/store v1.0.2 h1:lSg5BTvJBHUDwswNNyeh4K/CbqiHER73VU4nDNb8uk0= -cosmossdk.io/store v1.0.2/go.mod h1:EFtENTqVTuWwitGW1VwaBct+yDagk7oG/axBMPH+FXs= -cosmossdk.io/x/tx v0.13.1 h1:Mg+EMp67Pz+NukbJqYxuo8uRp7N/a9uR+oVS9pONtj8= -cosmossdk.io/x/tx v0.13.1/go.mod h1:CBCU6fsRVz23QGFIQBb1DNX2DztJCf3jWyEkHY2nJQ0= +cosmossdk.io/store v1.1.0 h1:LnKwgYMc9BInn9PhpTFEQVbL9UK475G2H911CGGnWHk= +cosmossdk.io/store v1.1.0/go.mod h1:oZfW/4Fc/zYqu3JmQcQdUJ3fqu5vnYTn3LZFFy8P8ng= +cosmossdk.io/x/tx v0.13.2 h1:Kh90UH30bhnnUdJH+CmWLyaH8IKdY6BBGY3EkdOk82o= +cosmossdk.io/x/tx v0.13.2/go.mod h1:yhPokDCfXVIuAtyp49IFlWB5YAXUgD7Zek+ZHwsHzvU= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -82,8 +82,8 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chzyer/readline v1.5.1 h1:upd/6fQk4src78LMRzh5vItIt361/o4uq553V8B5sGI= github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObkaSkeBlk= github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= @@ -125,10 +125,10 @@ github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= github.com/cosmos/cosmos-db v1.0.2 h1:hwMjozuY1OlJs/uh6vddqnk9j7VamLv+0DBlbEXbAKs= github.com/cosmos/cosmos-db v1.0.2/go.mod h1:Z8IXcFJ9PqKK6BIsVOB3QXtkKoqUOp1vRvPT39kOXEA= -github.com/cosmos/cosmos-proto v1.0.0-beta.4 h1:aEL7tU/rLOmxZQ9z4i7mzxcLbSCY48OdY7lIWTLG7oU= -github.com/cosmos/cosmos-proto v1.0.0-beta.4/go.mod h1:oeB+FyVzG3XrQJbJng0EnV8Vljfk9XvTIpGILNU/9Co= -github.com/cosmos/cosmos-sdk v0.50.5 h1:MOEi+DKYgW67YaPgB+Pf+nHbD3V9S/ayitRKJYLfGIA= -github.com/cosmos/cosmos-sdk v0.50.5/go.mod h1:oV/k6GJgXV9QPoM2fsYDPPsyPBgQbdotv532O6Mz1OQ= +github.com/cosmos/cosmos-proto v1.0.0-beta.5 h1:eNcayDLpip+zVLRLYafhzLvQlSmyab+RC5W7ZfmxJLA= +github.com/cosmos/cosmos-proto v1.0.0-beta.5/go.mod h1:hQGLpiIUloJBMdQMMWb/4wRApmI9hjHH05nefC0Ojec= +github.com/cosmos/cosmos-sdk v0.50.6 h1:efR3MsvMHX5sxS3be+hOobGk87IzlZbSpsI2x/Vw3hk= +github.com/cosmos/cosmos-sdk v0.50.6/go.mod h1:lVkRY6cdMJ0fG3gp8y4hFrsKZqF4z7y0M2UXFb9Yt40= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= github.com/cosmos/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE= @@ -136,8 +136,8 @@ github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= github.com/cosmos/gogoproto v1.4.12 h1:vB6Lbe/rtnYGjQuFxkPiPYiCybqFT8QvLipDZP8JpFE= github.com/cosmos/gogoproto v1.4.12/go.mod h1:LnZob1bXRdUoqMMtwYlcR3wjiElmlC+FkjaZRv1/eLY= -github.com/cosmos/iavl v1.0.1 h1:D+mYbcRO2wptYzOM1Hxl9cpmmHU1ZEt9T2Wv5nZTeUw= -github.com/cosmos/iavl v1.0.1/go.mod h1:8xIUkgVvwvVrBu81scdPty+/Dx9GqwHnAvXz4cwF7RY= +github.com/cosmos/iavl v1.1.2 h1:zL9FK7C4L/P4IF1Dm5fIwz0WXCnn7Bp1M2FxH0ayM7Y= +github.com/cosmos/iavl v1.1.2/go.mod h1:jLeUvm6bGT1YutCaL2fIar/8vGUE8cPZvh/gXEWDaDM= github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= github.com/cosmos/ledger-cosmos-go v0.13.3 h1:7ehuBGuyIytsXbd4MP43mLeoN2LTOEnk5nvue4rK+yM= @@ -353,8 +353,8 @@ github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVH github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-metrics v0.5.1 h1:rfPwUqFU6uZXNvGl4hzjY8LEBsqFVU4si1H9/Hqck/U= -github.com/hashicorp/go-metrics v0.5.1/go.mod h1:KEjodfebIOuBYSAe/bHTm+HChmKSxAOXPBieMLYozDE= +github.com/hashicorp/go-metrics v0.5.3 h1:M5uADWMOGCTUNU1YuC4hfknOeHNaX54LDm4oYSucoNE= +github.com/hashicorp/go-metrics v0.5.3/go.mod h1:KEjodfebIOuBYSAe/bHTm+HChmKSxAOXPBieMLYozDE= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-plugin v1.5.2 h1:aWv8eimFqWlsEiMrYZdPYl+FdHaBJSN4AWwGWfT1G2Y= @@ -442,8 +442,8 @@ github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6 github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= -github.com/linxGnu/grocksdb v1.8.12 h1:1/pCztQUOa3BX/1gR3jSZDoaKFpeHFvQ1XrqZpSvZVo= -github.com/linxGnu/grocksdb v1.8.12/go.mod h1:xZCIb5Muw+nhbDK4Y5UJuOrin5MceOuiXkVUR7vp4WY= +github.com/linxGnu/grocksdb v1.8.14 h1:HTgyYalNwBSG/1qCQUIott44wU5b2Y9Kr3z7SK5OfGQ= +github.com/linxGnu/grocksdb v1.8.14/go.mod h1:QYiYypR2d4v63Wj1adOOfzglnoII0gLj3PNh4fZkcFA= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= @@ -541,8 +541,8 @@ github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6 github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= -github.com/petermattis/goid v0.0.0-20230904192822-1876fd5063bc h1:8bQZVK1X6BJR/6nYUPxQEP+ReTsceJTKizeuwjWOPUA= -github.com/petermattis/goid v0.0.0-20230904192822-1876fd5063bc/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= +github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67 h1:jik8PHtAIsPlCRJjJzl4udgEf7hawInF9texMeO2jrU= +github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= @@ -563,32 +563,32 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= -github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= +github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= +github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos= -github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.47.0 h1:p5Cz0FNHo7SnWOmWmoRozVcjEp0bIVU8cV7OShpjL1k= -github.com/prometheus/common v0.47.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= +github.com/prometheus/common v0.52.2 h1:LW8Vk7BccEdONfrJBDffQGRtpSzi5CQaRZGtboOO2ck= +github.com/prometheus/common v0.52.2/go.mod h1:lrWtQx+iDfn2mbH5GUzlH9TSHyfZpHkSiG1W7y3sF2Q= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= -github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/prometheus/procfs v0.13.0 h1:GqzLlQyfsPbaEHaQkO7tbDlriv/4o5Hudv6OXHGKX7o= +github.com/prometheus/procfs v0.13.0/go.mod h1:cd4PFCR54QLnGKPaKGA6l+cfuNXtht43ZKY6tow0Y1g= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= @@ -725,13 +725,13 @@ golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo= -golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= +golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ= -golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= +golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0 h1:985EYyeCOxTpcgOTJpflJUwOeEz0CQOdPt73OzpE9F8= +golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0/go.mod h1:/lliqkxwWAhPjf5oSOIJup2XcqJaw8RGS6k3TGEc7GI= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -771,8 +771,8 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= -golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= +golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -783,8 +783,8 @@ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= -golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -839,12 +839,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= -golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= +golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.17.0 h1:mkTF7LCd6WGJNL3K1Ad7kwxNfYAW6a8a8QqtMblp/4U= -golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.19.0 h1:+ThwsDv+tYfnJFhF4L8jITxu1tdTWRTZpdsWgEgjL6Q= +golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -894,12 +894,12 @@ google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 h1:9+tzLLstTlPTRyJTh+ah5wIMsBW5c4tQwGTN3thOW9Y= -google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:mqHbVIp48Muh7Ywss/AD6I5kNVKZMmAa/QEW58Gxp2s= -google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014 h1:x9PwdEgd11LgK+orcck69WVRo7DezSO4VUMPI4xpc8A= -google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014/go.mod h1:rbHMSEDyoYX62nRVLOCc4Qt1HbsdytAYoVwgjiOhF3I= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240221002015-b0ce06bbee7c h1:NUsgEN92SQQqzfA+YtqYNqYmB3DMMYLlIwUZAQFVFbo= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240221002015-b0ce06bbee7c/go.mod h1:H4O17MA/PE9BsGx3w+a+W2VOLLD1Qf7oJneAoU6WktY= +google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= +google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= +google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de h1:jFNzHPIeuzhdRwVhbZdiym9q0ory/xY3sA+v2wPg8I0= +google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:5iCWqnniDlqZHrd3neWVTOwvh/v6s3232omMecelax8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda h1:LI5DOvAxUPMv/50agcLLoo+AdWc1irS9Rzz4vPuD1V4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -917,8 +917,8 @@ google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTp google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.62.0 h1:HQKZ/fa1bXkX1oFOvSjmZEUL8wLSaZTjCcLAlmZRtdk= -google.golang.org/grpc v1.62.0/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= +google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= +google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/modules/light-clients/08-wasm/CHANGELOG.md b/modules/light-clients/08-wasm/CHANGELOG.md index fedb7c66b32..e8f10e5432f 100644 --- a/modules/light-clients/08-wasm/CHANGELOG.md +++ b/modules/light-clients/08-wasm/CHANGELOG.md @@ -38,7 +38,8 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### Dependencies -* [#\5909](https://github.com/cosmos/ibc-go/pull/5909) Update wasmvm to v2.0.0. +* [\#6193](https://github.com/cosmos/ibc-go/pull/6193) Bump Cosmos SDK to v0.50.6. +* [\#6193](https://github.com/cosmos/ibc-go/pull/6193) Bump `cosmossdk.io/store` to v1.1.0. * [#\6097](https://github.com/cosmos/ibc-go/pull/6097) Update wasmvm to v2.0.1. ### API Breaking diff --git a/modules/light-clients/08-wasm/go.mod b/modules/light-clients/08-wasm/go.mod index 0a1c666ef8f..c8dcab27650 100644 --- a/modules/light-clients/08-wasm/go.mod +++ b/modules/light-clients/08-wasm/go.mod @@ -14,17 +14,17 @@ require ( cosmossdk.io/errors v1.0.1 cosmossdk.io/log v1.3.1 cosmossdk.io/math v1.3.0 - cosmossdk.io/store v1.0.2 + cosmossdk.io/store v1.1.0 cosmossdk.io/tools/confix v0.1.1 - cosmossdk.io/x/circuit v0.1.0 - cosmossdk.io/x/evidence v0.1.0 - cosmossdk.io/x/feegrant v0.1.0 - cosmossdk.io/x/tx v0.13.2 - cosmossdk.io/x/upgrade v0.1.1 + cosmossdk.io/x/circuit v0.1.1 + cosmossdk.io/x/evidence v0.1.1 + cosmossdk.io/x/feegrant v0.1.1 + cosmossdk.io/x/tx v0.13.3 + cosmossdk.io/x/upgrade v0.1.2 github.com/CosmWasm/wasmvm/v2 v2.0.1 github.com/cometbft/cometbft v0.38.6 github.com/cosmos/cosmos-db v1.0.2 - github.com/cosmos/cosmos-sdk v0.50.5 + github.com/cosmos/cosmos-sdk v0.50.6 github.com/cosmos/gogoproto v1.4.12 github.com/cosmos/ibc-go/modules/capability v1.0.0 github.com/cosmos/ibc-go/v8 v8.0.0 @@ -58,7 +58,7 @@ require ( github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect github.com/cenkalti/backoff/v4 v4.1.3 // indirect github.com/cespare/xxhash v1.1.0 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/chzyer/readline v1.5.1 // indirect github.com/cockroachdb/apd/v2 v2.0.2 // indirect github.com/cockroachdb/errors v1.11.1 // indirect @@ -71,7 +71,7 @@ require ( github.com/cosmos/cosmos-proto v1.0.0-beta.5 // indirect github.com/cosmos/go-bip39 v1.0.0 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect - github.com/cosmos/iavl v1.0.1 // indirect + github.com/cosmos/iavl v1.1.2 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect github.com/creachadair/atomicfile v0.3.1 // indirect @@ -137,7 +137,7 @@ require ( github.com/kr/text v0.2.0 // indirect github.com/lib/pq v1.10.7 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect - github.com/linxGnu/grocksdb v1.8.12 // indirect + github.com/linxGnu/grocksdb v1.8.14 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/manifoldco/promptui v0.9.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect @@ -150,13 +150,13 @@ require ( github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a // indirect github.com/oklog/run v1.1.0 // indirect github.com/pelletier/go-toml/v2 v2.1.0 // indirect - github.com/petermattis/goid v0.0.0-20230904192822-1876fd5063bc // indirect + github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/client_golang v1.18.0 // indirect - github.com/prometheus/client_model v0.6.0 // indirect - github.com/prometheus/common v0.47.0 // indirect - github.com/prometheus/procfs v0.12.0 // indirect + github.com/prometheus/client_golang v1.19.0 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.52.2 // indirect + github.com/prometheus/procfs v0.13.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rs/cors v1.8.3 // indirect @@ -183,10 +183,10 @@ require ( go.opentelemetry.io/otel/trace v1.22.0 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.22.0 // indirect - golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect + golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0 // indirect golang.org/x/net v0.24.0 // indirect - golang.org/x/oauth2 v0.17.0 // indirect - golang.org/x/sync v0.6.0 // indirect + golang.org/x/oauth2 v0.18.0 // indirect + golang.org/x/sync v0.7.0 // indirect golang.org/x/sys v0.19.0 // indirect golang.org/x/term v0.19.0 // indirect golang.org/x/text v0.14.0 // indirect diff --git a/modules/light-clients/08-wasm/go.sum b/modules/light-clients/08-wasm/go.sum index b9a22ad6f55..cf809f9a513 100644 --- a/modules/light-clients/08-wasm/go.sum +++ b/modules/light-clients/08-wasm/go.sum @@ -200,20 +200,20 @@ cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= -cosmossdk.io/store v1.0.2 h1:lSg5BTvJBHUDwswNNyeh4K/CbqiHER73VU4nDNb8uk0= -cosmossdk.io/store v1.0.2/go.mod h1:EFtENTqVTuWwitGW1VwaBct+yDagk7oG/axBMPH+FXs= +cosmossdk.io/store v1.1.0 h1:LnKwgYMc9BInn9PhpTFEQVbL9UK475G2H911CGGnWHk= +cosmossdk.io/store v1.1.0/go.mod h1:oZfW/4Fc/zYqu3JmQcQdUJ3fqu5vnYTn3LZFFy8P8ng= cosmossdk.io/tools/confix v0.1.1 h1:aexyRv9+y15veH3Qw16lxQwo+ki7r2I+g0yNTEFEQM8= cosmossdk.io/tools/confix v0.1.1/go.mod h1:nQVvP1tHsGXS83PonPVWJtSbddIqyjEw99L4M3rPJyQ= -cosmossdk.io/x/circuit v0.1.0 h1:IAej8aRYeuOMritczqTlljbUVHq1E85CpBqaCTwYgXs= -cosmossdk.io/x/circuit v0.1.0/go.mod h1:YDzblVE8+E+urPYQq5kq5foRY/IzhXovSYXb4nwd39w= -cosmossdk.io/x/evidence v0.1.0 h1:J6OEyDl1rbykksdGynzPKG5R/zm6TacwW2fbLTW4nCk= -cosmossdk.io/x/evidence v0.1.0/go.mod h1:hTaiiXsoiJ3InMz1uptgF0BnGqROllAN8mwisOMMsfw= -cosmossdk.io/x/feegrant v0.1.0 h1:c7s3oAq/8/UO0EiN1H5BIjwVntujVTkYs35YPvvrdQk= -cosmossdk.io/x/feegrant v0.1.0/go.mod h1:4r+FsViJRpcZif/yhTn+E0E6OFfg4n0Lx+6cCtnZElU= -cosmossdk.io/x/tx v0.13.2 h1:Kh90UH30bhnnUdJH+CmWLyaH8IKdY6BBGY3EkdOk82o= -cosmossdk.io/x/tx v0.13.2/go.mod h1:yhPokDCfXVIuAtyp49IFlWB5YAXUgD7Zek+ZHwsHzvU= -cosmossdk.io/x/upgrade v0.1.1 h1:aoPe2gNvH+Gwt/Pgq3dOxxQVU3j5P6Xf+DaUJTDZATc= -cosmossdk.io/x/upgrade v0.1.1/go.mod h1:MNLptLPcIFK9CWt7Ra//8WUZAxweyRDNcbs5nkOcQy0= +cosmossdk.io/x/circuit v0.1.1 h1:KPJCnLChWrxD4jLwUiuQaf5mFD/1m7Omyo7oooefBVQ= +cosmossdk.io/x/circuit v0.1.1/go.mod h1:B6f/urRuQH8gjt4eLIXfZJucrbreuYrKh5CSjaOxr+Q= +cosmossdk.io/x/evidence v0.1.1 h1:Ks+BLTa3uftFpElLTDp9L76t2b58htjVbSZ86aoK/E4= +cosmossdk.io/x/evidence v0.1.1/go.mod h1:OoDsWlbtuyqS70LY51aX8FBTvguQqvFrt78qL7UzeNc= +cosmossdk.io/x/feegrant v0.1.1 h1:EKFWOeo/pup0yF0svDisWWKAA9Zags6Zd0P3nRvVvw8= +cosmossdk.io/x/feegrant v0.1.1/go.mod h1:2GjVVxX6G2fta8LWj7pC/ytHjryA6MHAJroBWHFNiEQ= +cosmossdk.io/x/tx v0.13.3 h1:Ha4mNaHmxBc6RMun9aKuqul8yHiL78EKJQ8g23Zf73g= +cosmossdk.io/x/tx v0.13.3/go.mod h1:I8xaHv0rhUdIvIdptKIqzYy27+n2+zBVaxO6fscFhys= +cosmossdk.io/x/upgrade v0.1.2 h1:O2FGb0mVSXl7P6BQm9uV3hRVKom1zBLDGhd4G8jysJg= +cosmossdk.io/x/upgrade v0.1.2/go.mod h1:P+e4/ZNd8km7lTAX5hC2pXz/042YDcB7gzKTHuY53nc= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -294,8 +294,8 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cheggaaa/pb v1.0.27/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/logex v1.2.1 h1:XHDu3E6q+gdHgsdTPH6ImJMIp436vR6MPtH8gP05QzM= @@ -355,8 +355,8 @@ github.com/cosmos/cosmos-db v1.0.2 h1:hwMjozuY1OlJs/uh6vddqnk9j7VamLv+0DBlbEXbAK github.com/cosmos/cosmos-db v1.0.2/go.mod h1:Z8IXcFJ9PqKK6BIsVOB3QXtkKoqUOp1vRvPT39kOXEA= github.com/cosmos/cosmos-proto v1.0.0-beta.5 h1:eNcayDLpip+zVLRLYafhzLvQlSmyab+RC5W7ZfmxJLA= github.com/cosmos/cosmos-proto v1.0.0-beta.5/go.mod h1:hQGLpiIUloJBMdQMMWb/4wRApmI9hjHH05nefC0Ojec= -github.com/cosmos/cosmos-sdk v0.50.5 h1:MOEi+DKYgW67YaPgB+Pf+nHbD3V9S/ayitRKJYLfGIA= -github.com/cosmos/cosmos-sdk v0.50.5/go.mod h1:oV/k6GJgXV9QPoM2fsYDPPsyPBgQbdotv532O6Mz1OQ= +github.com/cosmos/cosmos-sdk v0.50.6 h1:efR3MsvMHX5sxS3be+hOobGk87IzlZbSpsI2x/Vw3hk= +github.com/cosmos/cosmos-sdk v0.50.6/go.mod h1:lVkRY6cdMJ0fG3gp8y4hFrsKZqF4z7y0M2UXFb9Yt40= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= github.com/cosmos/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE= @@ -364,8 +364,8 @@ github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= github.com/cosmos/gogoproto v1.4.12 h1:vB6Lbe/rtnYGjQuFxkPiPYiCybqFT8QvLipDZP8JpFE= github.com/cosmos/gogoproto v1.4.12/go.mod h1:LnZob1bXRdUoqMMtwYlcR3wjiElmlC+FkjaZRv1/eLY= -github.com/cosmos/iavl v1.0.1 h1:D+mYbcRO2wptYzOM1Hxl9cpmmHU1ZEt9T2Wv5nZTeUw= -github.com/cosmos/iavl v1.0.1/go.mod h1:8xIUkgVvwvVrBu81scdPty+/Dx9GqwHnAvXz4cwF7RY= +github.com/cosmos/iavl v1.1.2 h1:zL9FK7C4L/P4IF1Dm5fIwz0WXCnn7Bp1M2FxH0ayM7Y= +github.com/cosmos/iavl v1.1.2/go.mod h1:jLeUvm6bGT1YutCaL2fIar/8vGUE8cPZvh/gXEWDaDM= github.com/cosmos/ibc-go/modules/capability v1.0.0 h1:r/l++byFtn7jHYa09zlAdSeevo8ci1mVZNO9+V0xsLE= github.com/cosmos/ibc-go/modules/capability v1.0.0/go.mod h1:D81ZxzjZAe0ZO5ambnvn1qedsFQ8lOwtqicG6liLBco= github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= @@ -765,8 +765,8 @@ github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6 github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= -github.com/linxGnu/grocksdb v1.8.12 h1:1/pCztQUOa3BX/1gR3jSZDoaKFpeHFvQ1XrqZpSvZVo= -github.com/linxGnu/grocksdb v1.8.12/go.mod h1:xZCIb5Muw+nhbDK4Y5UJuOrin5MceOuiXkVUR7vp4WY= +github.com/linxGnu/grocksdb v1.8.14 h1:HTgyYalNwBSG/1qCQUIott44wU5b2Y9Kr3z7SK5OfGQ= +github.com/linxGnu/grocksdb v1.8.14/go.mod h1:QYiYypR2d4v63Wj1adOOfzglnoII0gLj3PNh4fZkcFA= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= @@ -874,8 +874,8 @@ github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6 github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= -github.com/petermattis/goid v0.0.0-20230904192822-1876fd5063bc h1:8bQZVK1X6BJR/6nYUPxQEP+ReTsceJTKizeuwjWOPUA= -github.com/petermattis/goid v0.0.0-20230904192822-1876fd5063bc/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= +github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67 h1:jik8PHtAIsPlCRJjJzl4udgEf7hawInF9texMeO2jrU= +github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= @@ -896,32 +896,32 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= -github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= +github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= +github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos= -github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.47.0 h1:p5Cz0FNHo7SnWOmWmoRozVcjEp0bIVU8cV7OShpjL1k= -github.com/prometheus/common v0.47.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= +github.com/prometheus/common v0.52.2 h1:LW8Vk7BccEdONfrJBDffQGRtpSzi5CQaRZGtboOO2ck= +github.com/prometheus/common v0.52.2/go.mod h1:lrWtQx+iDfn2mbH5GUzlH9TSHyfZpHkSiG1W7y3sF2Q= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= -github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/prometheus/procfs v0.13.0 h1:GqzLlQyfsPbaEHaQkO7tbDlriv/4o5Hudv6OXHGKX7o= +github.com/prometheus/procfs v0.13.0/go.mod h1:cd4PFCR54QLnGKPaKGA6l+cfuNXtht43ZKY6tow0Y1g= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= @@ -1104,8 +1104,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ= -golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= +golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0 h1:985EYyeCOxTpcgOTJpflJUwOeEz0CQOdPt73OzpE9F8= +golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0/go.mod h1:/lliqkxwWAhPjf5oSOIJup2XcqJaw8RGS6k3TGEc7GI= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1132,8 +1132,8 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.15.0 h1:SernR4v+D55NyBH2QiEQrlBAnj1ECL6AGrA5+dPaMY8= -golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1220,8 +1220,8 @@ golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A= -golang.org/x/oauth2 v0.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ= -golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA= +golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= +golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1236,8 +1236,8 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= -golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1423,8 +1423,8 @@ golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.18.0 h1:k8NLag8AGHnn+PHbl7g43CtqZAwG60vZkLqgyZgIHgQ= -golang.org/x/tools v0.18.0/go.mod h1:GL7B4CwcLLeo59yx/9UWWuNOW1n3VZ4f5axWfML7Lcg= +golang.org/x/tools v0.20.0 h1:hz/CVckiOxybQvFw6h7b/q80NTr9IUQb4s1IIzW7KNY= +golang.org/x/tools v0.20.0/go.mod h1:WvitBU7JJf6A4jOdg4S1tviW9bhUxkgeCui/0JHctQg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From 4efbc8a1c0bf756fad5c7155756dae60b6d49321 Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Date: Tue, 23 Apr 2024 13:25:01 +0200 Subject: [PATCH 03/62] chore: split key and path functions in separate files (#5670) --- modules/core/24-host/channel_keys.go | 45 --------------- modules/core/24-host/channel_paths.go | 46 +++++++++++++++ modules/core/24-host/client_keys.go | 44 --------------- modules/core/24-host/client_paths.go | 49 ++++++++++++++++ modules/core/24-host/connection_keys.go | 17 ------ modules/core/24-host/connection_paths.go | 18 ++++++ modules/core/24-host/packet_keys.go | 71 ----------------------- modules/core/24-host/packet_paths.go | 72 ++++++++++++++++++++++++ 8 files changed, 185 insertions(+), 177 deletions(-) create mode 100644 modules/core/24-host/channel_paths.go create mode 100644 modules/core/24-host/client_paths.go create mode 100644 modules/core/24-host/connection_paths.go create mode 100644 modules/core/24-host/packet_paths.go diff --git a/modules/core/24-host/channel_keys.go b/modules/core/24-host/channel_keys.go index b21666dd3b6..f4eb589993f 100644 --- a/modules/core/24-host/channel_keys.go +++ b/modules/core/24-host/channel_keys.go @@ -1,51 +1,15 @@ package host -import "fmt" - -const ( - KeyChannelEndPrefix = "channelEnds" - KeyChannelPrefix = "channels" - KeyChannelUpgradePrefix = "channelUpgrades" - KeyUpgradePrefix = "upgrades" - KeyUpgradeErrorPrefix = "upgradeError" - KeyCounterpartyUpgrade = "counterpartyUpgrade" - KeyChannelCapabilityPrefix = "capabilities" -) - -// ICS04 -// The following paths are the keys to the store as defined in https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#store-paths - -// ChannelPath defines the path under which channels are stored -func ChannelPath(portID, channelID string) string { - return fmt.Sprintf("%s/%s", KeyChannelEndPrefix, channelPath(portID, channelID)) -} - // ChannelKey returns the store key for a particular channel func ChannelKey(portID, channelID string) []byte { return []byte(ChannelPath(portID, channelID)) } -// ChannelCapabilityPath defines the path under which capability keys associated -// with a channel are stored -func ChannelCapabilityPath(portID, channelID string) string { - return fmt.Sprintf("%s/%s", KeyChannelCapabilityPrefix, channelPath(portID, channelID)) -} - -// ChannelUpgradeErrorPath defines the path under which the ErrorReceipt is stored in the case that a chain does not accept the proposed upgrade -func ChannelUpgradeErrorPath(portID, channelID string) string { - return fmt.Sprintf("%s/%s/%s", KeyChannelUpgradePrefix, KeyUpgradeErrorPrefix, channelPath(portID, channelID)) -} - // ChannelUpgradeErrorKey returns the store key for a particular channelEnd used to stor the ErrorReceipt in the case that a chain does not accept the proposed upgrade func ChannelUpgradeErrorKey(portID, channelID string) []byte { return []byte(ChannelUpgradeErrorPath(portID, channelID)) } -// ChannelUpgradePath defines the path which stores the information related to an upgrade attempt -func ChannelUpgradePath(portID, channelID string) string { - return fmt.Sprintf("%s/%s/%s", KeyChannelUpgradePrefix, KeyUpgradePrefix, channelPath(portID, channelID)) -} - // ChannelUpgradeKey returns the store key for a particular channel upgrade attempt func ChannelUpgradeKey(portID, channelID string) []byte { return []byte(ChannelUpgradePath(portID, channelID)) @@ -55,12 +19,3 @@ func ChannelUpgradeKey(portID, channelID string) []byte { func ChannelCounterpartyUpgradeKey(portID, channelID string) []byte { return []byte(ChannelCounterpartyUpgradePath(portID, channelID)) } - -// ChannelCounterpartyUpgradePath defines the path under which the upgrade used on the counterparty channel is stored. -func ChannelCounterpartyUpgradePath(portID, channelID string) string { - return fmt.Sprintf("%s/%s/%s", KeyChannelUpgradePrefix, KeyCounterpartyUpgrade, channelPath(portID, channelID)) -} - -func channelPath(portID, channelID string) string { - return fmt.Sprintf("%s/%s/%s/%s", KeyPortPrefix, portID, KeyChannelPrefix, channelID) -} diff --git a/modules/core/24-host/channel_paths.go b/modules/core/24-host/channel_paths.go new file mode 100644 index 00000000000..a4a7ba6461a --- /dev/null +++ b/modules/core/24-host/channel_paths.go @@ -0,0 +1,46 @@ +package host + +import "fmt" + +const ( + KeyChannelEndPrefix = "channelEnds" + KeyChannelPrefix = "channels" + KeyChannelUpgradePrefix = "channelUpgrades" + KeyUpgradePrefix = "upgrades" + KeyUpgradeErrorPrefix = "upgradeError" + KeyCounterpartyUpgrade = "counterpartyUpgrade" + KeyChannelCapabilityPrefix = "capabilities" +) + +// ICS04 +// The following paths are the keys to the store as defined in https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#store-paths + +// ChannelPath defines the path under which channels are stored +func ChannelPath(portID, channelID string) string { + return fmt.Sprintf("%s/%s", KeyChannelEndPrefix, channelPath(portID, channelID)) +} + +// ChannelCapabilityPath defines the path under which capability keys associated +// with a channel are stored +func ChannelCapabilityPath(portID, channelID string) string { + return fmt.Sprintf("%s/%s", KeyChannelCapabilityPrefix, channelPath(portID, channelID)) +} + +// ChannelUpgradeErrorPath defines the path under which the ErrorReceipt is stored in the case that a chain does not accept the proposed upgrade +func ChannelUpgradeErrorPath(portID, channelID string) string { + return fmt.Sprintf("%s/%s/%s", KeyChannelUpgradePrefix, KeyUpgradeErrorPrefix, channelPath(portID, channelID)) +} + +// ChannelUpgradePath defines the path which stores the information related to an upgrade attempt +func ChannelUpgradePath(portID, channelID string) string { + return fmt.Sprintf("%s/%s/%s", KeyChannelUpgradePrefix, KeyUpgradePrefix, channelPath(portID, channelID)) +} + +// ChannelCounterpartyUpgradePath defines the path under which the upgrade used on the counterparty channel is stored. +func ChannelCounterpartyUpgradePath(portID, channelID string) string { + return fmt.Sprintf("%s/%s/%s", KeyChannelUpgradePrefix, KeyCounterpartyUpgrade, channelPath(portID, channelID)) +} + +func channelPath(portID, channelID string) string { + return fmt.Sprintf("%s/%s/%s/%s", KeyPortPrefix, portID, KeyChannelPrefix, channelID) +} diff --git a/modules/core/24-host/client_keys.go b/modules/core/24-host/client_keys.go index 4b12bc63e5a..0142e82ea7a 100644 --- a/modules/core/24-host/client_keys.go +++ b/modules/core/24-host/client_keys.go @@ -1,38 +1,15 @@ package host import ( - "fmt" - "github.com/cosmos/ibc-go/v8/modules/core/exported" ) -// KeyClientStorePrefix defines the KVStore key prefix for IBC clients -var KeyClientStorePrefix = []byte("clients") - -const ( - KeyClientState = "clientState" - KeyConsensusStatePrefix = "consensusStates" -) - -// FullClientPath returns the full path of a specific client path in the format: -// "clients/{clientID}/{path}" as a string. -func FullClientPath(clientID string, path string) string { - return fmt.Sprintf("%s/%s/%s", KeyClientStorePrefix, clientID, path) -} - // FullClientKey returns the full path of specific client path in the format: // "clients/{clientID}/{path}" as a byte array. func FullClientKey(clientID string, path []byte) []byte { return []byte(FullClientPath(clientID, string(path))) } -// PrefixedClientStorePath returns a key path which can be used for prefixed -// key store iteration. The prefix may be a clientType, clientID, or any -// valid key prefix which may be concatenated with the client store constant. -func PrefixedClientStorePath(prefix []byte) string { - return fmt.Sprintf("%s/%s", KeyClientStorePrefix, prefix) -} - // PrefixedClientStoreKey returns a key which can be used for prefixed // key store iteration. The prefix may be a clientType, clientID, or any // valid key prefix which may be concatenated with the client store constant. @@ -40,15 +17,6 @@ func PrefixedClientStoreKey(prefix []byte) []byte { return []byte(PrefixedClientStorePath(prefix)) } -// ICS02 -// The following paths are the keys to the store as defined in https://github.com/cosmos/ibc/tree/master/spec/core/ics-002-client-semantics#path-space - -// FullClientStatePath takes a client identifier and returns a Path under which to store a -// particular client state -func FullClientStatePath(clientID string) string { - return FullClientPath(clientID, KeyClientState) -} - // FullClientStateKey takes a client identifier and returns a Key under which to store a // particular client state. func FullClientStateKey(clientID string) []byte { @@ -61,24 +29,12 @@ func ClientStateKey() []byte { return []byte(KeyClientState) } -// FullConsensusStatePath takes a client identifier and returns a Path under which to -// store the consensus state of a client. -func FullConsensusStatePath(clientID string, height exported.Height) string { - return FullClientPath(clientID, ConsensusStatePath(height)) -} - // FullConsensusStateKey returns the store key for the consensus state of a particular // client. func FullConsensusStateKey(clientID string, height exported.Height) []byte { return []byte(FullConsensusStatePath(clientID, height)) } -// ConsensusStatePath returns the suffix store key for the consensus state at a -// particular height stored in a client prefixed store. -func ConsensusStatePath(height exported.Height) string { - return fmt.Sprintf("%s/%s", KeyConsensusStatePrefix, height) -} - // ConsensusStateKey returns the store key for a the consensus state of a particular // client stored in a client prefixed store. func ConsensusStateKey(height exported.Height) []byte { diff --git a/modules/core/24-host/client_paths.go b/modules/core/24-host/client_paths.go new file mode 100644 index 00000000000..e0564fcc424 --- /dev/null +++ b/modules/core/24-host/client_paths.go @@ -0,0 +1,49 @@ +package host + +import ( + "fmt" + + "github.com/cosmos/ibc-go/v8/modules/core/exported" +) + +// KeyClientStorePrefix defines the KVStore key prefix for IBC clients +var KeyClientStorePrefix = []byte("clients") + +const ( + KeyClientState = "clientState" + KeyConsensusStatePrefix = "consensusStates" +) + +// FullClientPath returns the full path of a specific client path in the format: +// "clients/{clientID}/{path}" as a string. +func FullClientPath(clientID string, path string) string { + return fmt.Sprintf("%s/%s/%s", KeyClientStorePrefix, clientID, path) +} + +// PrefixedClientStorePath returns a key path which can be used for prefixed +// key store iteration. The prefix may be a clientType, clientID, or any +// valid key prefix which may be concatenated with the client store constant. +func PrefixedClientStorePath(prefix []byte) string { + return fmt.Sprintf("%s/%s", KeyClientStorePrefix, prefix) +} + +// ICS02 +// The following paths are the keys to the store as defined in https://github.com/cosmos/ibc/tree/master/spec/core/ics-002-client-semantics#path-space + +// FullClientStatePath takes a client identifier and returns a Path under which to store a +// particular client state +func FullClientStatePath(clientID string) string { + return FullClientPath(clientID, KeyClientState) +} + +// FullConsensusStatePath takes a client identifier and returns a Path under which to +// store the consensus state of a client. +func FullConsensusStatePath(clientID string, height exported.Height) string { + return FullClientPath(clientID, ConsensusStatePath(height)) +} + +// ConsensusStatePath returns the suffix store key for the consensus state at a +// particular height stored in a client prefixed store. +func ConsensusStatePath(height exported.Height) string { + return fmt.Sprintf("%s/%s", KeyConsensusStatePrefix, height) +} diff --git a/modules/core/24-host/connection_keys.go b/modules/core/24-host/connection_keys.go index fde9ee3b730..2b20e74f091 100644 --- a/modules/core/24-host/connection_keys.go +++ b/modules/core/24-host/connection_keys.go @@ -1,27 +1,10 @@ package host -import "fmt" - -const KeyConnectionPrefix = "connections" - -// ICS03 -// The following paths are the keys to the store as defined in https://github.com/cosmos/ibc/blob/master/spec/core/ics-003-connection-semantics#store-paths - -// ClientConnectionsPath defines a reverse mapping from clients to a set of connections -func ClientConnectionsPath(clientID string) string { - return FullClientPath(clientID, KeyConnectionPrefix) -} - // ClientConnectionsKey returns the store key for the connections of a given client func ClientConnectionsKey(clientID string) []byte { return []byte(ClientConnectionsPath(clientID)) } -// ConnectionPath defines the path under which connection paths are stored -func ConnectionPath(connectionID string) string { - return fmt.Sprintf("%s/%s", KeyConnectionPrefix, connectionID) -} - // ConnectionKey returns the store key for a particular connection func ConnectionKey(connectionID string) []byte { return []byte(ConnectionPath(connectionID)) diff --git a/modules/core/24-host/connection_paths.go b/modules/core/24-host/connection_paths.go new file mode 100644 index 00000000000..cd362e278a6 --- /dev/null +++ b/modules/core/24-host/connection_paths.go @@ -0,0 +1,18 @@ +package host + +import "fmt" + +const KeyConnectionPrefix = "connections" + +// ICS03 +// The following paths are the keys to the store as defined in https://github.com/cosmos/ibc/blob/master/spec/core/ics-003-connection-semantics#store-paths + +// ClientConnectionsPath defines a reverse mapping from clients to a set of connections +func ClientConnectionsPath(clientID string) string { + return FullClientPath(clientID, KeyConnectionPrefix) +} + +// ConnectionPath defines the path under which connection paths are stored +func ConnectionPath(connectionID string) string { + return fmt.Sprintf("%s/%s", KeyConnectionPrefix, connectionID) +} diff --git a/modules/core/24-host/packet_keys.go b/modules/core/24-host/packet_keys.go index d2eedcaa68f..2bde2a040ac 100644 --- a/modules/core/24-host/packet_keys.go +++ b/modules/core/24-host/packet_keys.go @@ -1,118 +1,47 @@ package host -import "fmt" - -const ( - KeySequencePrefix = "sequences" - KeyNextSeqSendPrefix = "nextSequenceSend" - KeyNextSeqRecvPrefix = "nextSequenceRecv" - KeyNextSeqAckPrefix = "nextSequenceAck" - KeyPacketCommitmentPrefix = "commitments" - KeyPacketAckPrefix = "acks" - KeyPacketReceiptPrefix = "receipts" - KeyPruningSequenceStart = "pruningSequenceStart" - KeyRecvStartSequence = "recvStartSequence" -) - -// ICS04 -// The following paths are the keys to the store as defined in https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#store-paths - -// NextSequenceSendPath defines the next send sequence counter store path -func NextSequenceSendPath(portID, channelID string) string { - return fmt.Sprintf("%s/%s", KeyNextSeqSendPrefix, channelPath(portID, channelID)) -} - // NextSequenceSendKey returns the store key for the send sequence of a particular // channel binded to a specific port. func NextSequenceSendKey(portID, channelID string) []byte { return []byte(NextSequenceSendPath(portID, channelID)) } -// NextSequenceRecvPath defines the next receive sequence counter store path. -func NextSequenceRecvPath(portID, channelID string) string { - return fmt.Sprintf("%s/%s", KeyNextSeqRecvPrefix, channelPath(portID, channelID)) -} - // NextSequenceRecvKey returns the store key for the receive sequence of a particular // channel binded to a specific port func NextSequenceRecvKey(portID, channelID string) []byte { return []byte(NextSequenceRecvPath(portID, channelID)) } -// NextSequenceAckPath defines the next acknowledgement sequence counter store path -func NextSequenceAckPath(portID, channelID string) string { - return fmt.Sprintf("%s/%s", KeyNextSeqAckPrefix, channelPath(portID, channelID)) -} - // NextSequenceAckKey returns the store key for the acknowledgement sequence of // a particular channel binded to a specific port. func NextSequenceAckKey(portID, channelID string) []byte { return []byte(NextSequenceAckPath(portID, channelID)) } -// PacketCommitmentPath defines the commitments to packet data fields store path -func PacketCommitmentPath(portID, channelID string, sequence uint64) string { - return fmt.Sprintf("%s/%d", PacketCommitmentPrefixPath(portID, channelID), sequence) -} - // PacketCommitmentKey returns the store key of under which a packet commitment // is stored func PacketCommitmentKey(portID, channelID string, sequence uint64) []byte { return []byte(PacketCommitmentPath(portID, channelID, sequence)) } -// PacketCommitmentPrefixPath defines the prefix for commitments to packet data fields store path. -func PacketCommitmentPrefixPath(portID, channelID string) string { - return fmt.Sprintf("%s/%s/%s", KeyPacketCommitmentPrefix, channelPath(portID, channelID), KeySequencePrefix) -} - -// PacketAcknowledgementPath defines the packet acknowledgement store path -func PacketAcknowledgementPath(portID, channelID string, sequence uint64) string { - return fmt.Sprintf("%s/%d", PacketAcknowledgementPrefixPath(portID, channelID), sequence) -} - // PacketAcknowledgementKey returns the store key of under which a packet // acknowledgement is stored func PacketAcknowledgementKey(portID, channelID string, sequence uint64) []byte { return []byte(PacketAcknowledgementPath(portID, channelID, sequence)) } -// PacketAcknowledgementPrefixPath defines the prefix for commitments to packet data fields store path. -func PacketAcknowledgementPrefixPath(portID, channelID string) string { - return fmt.Sprintf("%s/%s/%s", KeyPacketAckPrefix, channelPath(portID, channelID), KeySequencePrefix) -} - -// PacketReceiptPath defines the packet receipt store path -func PacketReceiptPath(portID, channelID string, sequence uint64) string { - return fmt.Sprintf("%s/%s/%s", KeyPacketReceiptPrefix, channelPath(portID, channelID), sequencePath(sequence)) -} - // PacketReceiptKey returns the store key of under which a packet // receipt is stored func PacketReceiptKey(portID, channelID string, sequence uint64) []byte { return []byte(PacketReceiptPath(portID, channelID, sequence)) } -// PruningSequenceStartPath defines the path under which the pruning sequence starting value is stored -func PruningSequenceStartPath(portID, channelID string) string { - return fmt.Sprintf("%s/%s", KeyPruningSequenceStart, channelPath(portID, channelID)) -} - // PruningSequenceStartKey returns the store key for the pruning sequence start of a particular channel func PruningSequenceStartKey(portID, channelID string) []byte { return []byte(PruningSequenceStartPath(portID, channelID)) } -// RecvStartSequencePath defines the path under which the recv start sequence is stored -func RecvStartSequencePath(portID, channelID string) string { - return fmt.Sprintf("%s/%s", KeyRecvStartSequence, channelPath(portID, channelID)) -} - // RecvStartSequenceKey returns the store key for the recv start sequence of a particular channel func RecvStartSequenceKey(portID, channelID string) []byte { return []byte(RecvStartSequencePath(portID, channelID)) } - -func sequencePath(sequence uint64) string { - return fmt.Sprintf("%s/%d", KeySequencePrefix, sequence) -} diff --git a/modules/core/24-host/packet_paths.go b/modules/core/24-host/packet_paths.go new file mode 100644 index 00000000000..99b8bf2e974 --- /dev/null +++ b/modules/core/24-host/packet_paths.go @@ -0,0 +1,72 @@ +package host + +import "fmt" + +const ( + KeySequencePrefix = "sequences" + KeyNextSeqSendPrefix = "nextSequenceSend" + KeyNextSeqRecvPrefix = "nextSequenceRecv" + KeyNextSeqAckPrefix = "nextSequenceAck" + KeyPacketCommitmentPrefix = "commitments" + KeyPacketAckPrefix = "acks" + KeyPacketReceiptPrefix = "receipts" + KeyPruningSequenceStart = "pruningSequenceStart" + KeyRecvStartSequence = "recvStartSequence" +) + +// ICS04 +// The following paths are the keys to the store as defined in https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#store-paths + +// NextSequenceSendPath defines the next send sequence counter store path +func NextSequenceSendPath(portID, channelID string) string { + return fmt.Sprintf("%s/%s", KeyNextSeqSendPrefix, channelPath(portID, channelID)) +} + +// NextSequenceRecvPath defines the next receive sequence counter store path. +func NextSequenceRecvPath(portID, channelID string) string { + return fmt.Sprintf("%s/%s", KeyNextSeqRecvPrefix, channelPath(portID, channelID)) +} + +// NextSequenceAckPath defines the next acknowledgement sequence counter store path +func NextSequenceAckPath(portID, channelID string) string { + return fmt.Sprintf("%s/%s", KeyNextSeqAckPrefix, channelPath(portID, channelID)) +} + +// PacketCommitmentPath defines the commitments to packet data fields store path +func PacketCommitmentPath(portID, channelID string, sequence uint64) string { + return fmt.Sprintf("%s/%d", PacketCommitmentPrefixPath(portID, channelID), sequence) +} + +// PacketCommitmentPrefixPath defines the prefix for commitments to packet data fields store path. +func PacketCommitmentPrefixPath(portID, channelID string) string { + return fmt.Sprintf("%s/%s/%s", KeyPacketCommitmentPrefix, channelPath(portID, channelID), KeySequencePrefix) +} + +// PacketAcknowledgementPath defines the packet acknowledgement store path +func PacketAcknowledgementPath(portID, channelID string, sequence uint64) string { + return fmt.Sprintf("%s/%d", PacketAcknowledgementPrefixPath(portID, channelID), sequence) +} + +// PacketAcknowledgementPrefixPath defines the prefix for commitments to packet data fields store path. +func PacketAcknowledgementPrefixPath(portID, channelID string) string { + return fmt.Sprintf("%s/%s/%s", KeyPacketAckPrefix, channelPath(portID, channelID), KeySequencePrefix) +} + +// PacketReceiptPath defines the packet receipt store path +func PacketReceiptPath(portID, channelID string, sequence uint64) string { + return fmt.Sprintf("%s/%s/%s", KeyPacketReceiptPrefix, channelPath(portID, channelID), sequencePath(sequence)) +} + +// PruningSequenceStartPath defines the path under which the pruning sequence starting value is stored +func PruningSequenceStartPath(portID, channelID string) string { + return fmt.Sprintf("%s/%s", KeyPruningSequenceStart, channelPath(portID, channelID)) +} + +// RecvStartSequencePath defines the path under which the recv start sequence is stored +func RecvStartSequencePath(portID, channelID string) string { + return fmt.Sprintf("%s/%s", KeyRecvStartSequence, channelPath(portID, channelID)) +} + +func sequencePath(sequence uint64) string { + return fmt.Sprintf("%s/%d", KeySequencePrefix, sequence) +} From 58635de7a0987bae6f9292e4e2b2264320230cc9 Mon Sep 17 00:00:00 2001 From: Hoa Nguyen Date: Wed, 24 Apr 2024 22:25:44 +0700 Subject: [PATCH 04/62] test: refactor transfer tests to use expected errors (#6217) --- modules/apps/transfer/ibc_module_test.go | 67 +++++++++++++----------- 1 file changed, 36 insertions(+), 31 deletions(-) diff --git a/modules/apps/transfer/ibc_module_test.go b/modules/apps/transfer/ibc_module_test.go index ee473377227..878c773d2d4 100644 --- a/modules/apps/transfer/ibc_module_test.go +++ b/modules/apps/transfer/ibc_module_test.go @@ -1,6 +1,7 @@ package transfer_test import ( + "errors" "math" "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" @@ -27,48 +28,48 @@ func (suite *TransferTestSuite) TestOnChanOpenInit() { testCases := []struct { name string malleate func() - expPass bool + expError error }{ { - "success", func() {}, true, + "success", func() {}, nil, }, { // connection hops is not used in the transfer application callback, // it is already validated in the core OnChanUpgradeInit. "success: invalid connection hops", func() { path.EndpointA.ConnectionID = "invalid-connection-id" - }, true, + }, nil, }, { "empty version string", func() { channel.Version = "" - }, true, + }, nil, }, { "max channels reached", func() { path.EndpointA.ChannelID = channeltypes.FormatChannelIdentifier(math.MaxUint32 + 1) - }, false, + }, types.ErrMaxTransferChannels, }, { "invalid order - ORDERED", func() { channel.Ordering = channeltypes.ORDERED - }, false, + }, channeltypes.ErrInvalidChannelOrdering, }, { "invalid port ID", func() { path.EndpointA.ChannelConfig.PortID = ibctesting.MockPort - }, false, + }, porttypes.ErrInvalidPort, }, { "invalid version", func() { channel.Version = "version" //nolint:goconst - }, false, + }, types.ErrInvalidVersion, }, { "capability already claimed", func() { err := suite.chainA.GetSimApp().ScopedTransferKeeper.ClaimCapability(suite.chainA.GetContext(), chanCap, host.ChannelCapabilityPath(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)) suite.Require().NoError(err) - }, false, + }, capabilitytypes.ErrOwnerClaimed, }, } @@ -101,12 +102,13 @@ func (suite *TransferTestSuite) TestOnChanOpenInit() { path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, chanCap, counterparty, channel.Version, ) - if tc.expPass { + expPass := tc.expError == nil + if expPass { suite.Require().NoError(err) suite.Require().Equal(types.Version, version) } else { suite.Require().Error(err) - suite.Require().Equal(version, "") + suite.Require().Contains(err.Error(), tc.expError.Error()) } }) } @@ -124,36 +126,36 @@ func (suite *TransferTestSuite) TestOnChanOpenTry() { testCases := []struct { name string malleate func() - expPass bool + expError error }{ { - "success", func() {}, true, + "success", func() {}, nil, }, { "max channels reached", func() { path.EndpointA.ChannelID = channeltypes.FormatChannelIdentifier(math.MaxUint32 + 1) - }, false, + }, types.ErrMaxTransferChannels, }, { "capability already claimed", func() { err := suite.chainA.GetSimApp().ScopedTransferKeeper.ClaimCapability(suite.chainA.GetContext(), chanCap, host.ChannelCapabilityPath(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)) suite.Require().NoError(err) - }, false, + }, capabilitytypes.ErrOwnerClaimed, }, { "invalid order - ORDERED", func() { channel.Ordering = channeltypes.ORDERED - }, false, + }, channeltypes.ErrInvalidChannelOrdering, }, { "invalid port ID", func() { path.EndpointA.ChannelConfig.PortID = ibctesting.MockPort - }, false, + }, porttypes.ErrInvalidPort, }, { "invalid counterparty version", func() { counterpartyVersion = "version" - }, false, + }, types.ErrInvalidVersion, }, } @@ -191,13 +193,13 @@ func (suite *TransferTestSuite) TestOnChanOpenTry() { version, err := cbs.OnChanOpenTry(suite.chainA.GetContext(), channel.Ordering, channel.ConnectionHops, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, chanCap, channel.Counterparty, counterpartyVersion, ) - - if tc.expPass { + expPass := tc.expError == nil + if expPass { suite.Require().NoError(err) suite.Require().Equal(types.Version, version) } else { suite.Require().Error(err) - suite.Require().Equal("", version) + suite.Require().Contains(err.Error(), tc.expError.Error()) } }) } @@ -209,15 +211,15 @@ func (suite *TransferTestSuite) TestOnChanOpenAck() { testCases := []struct { name string malleate func() - expPass bool + expError error }{ { - "success", func() {}, true, + "success", func() {}, nil, }, { "invalid counterparty version", func() { counterpartyVersion = "version" - }, false, + }, types.ErrInvalidVersion, }, } @@ -242,10 +244,12 @@ func (suite *TransferTestSuite) TestOnChanOpenAck() { err = cbs.OnChanOpenAck(suite.chainA.GetContext(), path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointA.Counterparty.ChannelID, counterpartyVersion) - if tc.expPass { + expPass := tc.expError == nil + if expPass { suite.Require().NoError(err) } else { suite.Require().Error(err) + suite.Require().Contains(err.Error(), tc.expError.Error()) } }) } @@ -481,7 +485,7 @@ func (suite *TransferTestSuite) TestPacketDataUnmarshalerInterface() { testCases := []struct { name string malleate func() - expPass bool + expError error }{ { "success: valid packet data with memo", @@ -495,7 +499,7 @@ func (suite *TransferTestSuite) TestPacketDataUnmarshalerInterface() { } data = expPacketData.GetBytes() }, - true, + nil, }, { "success: valid packet data without memo", @@ -509,14 +513,14 @@ func (suite *TransferTestSuite) TestPacketDataUnmarshalerInterface() { } data = expPacketData.GetBytes() }, - true, + nil, }, { "failure: invalid packet data", func() { data = []byte("invalid packet data") }, - false, + errors.New("invalid character 'i' looking for beginning of value"), }, } @@ -527,12 +531,13 @@ func (suite *TransferTestSuite) TestPacketDataUnmarshalerInterface() { packetData, err := transfer.IBCModule{}.UnmarshalPacketData(data) - if tc.expPass { + expPass := tc.expError == nil + if expPass { suite.Require().NoError(err) suite.Require().Equal(expPacketData, packetData) } else { suite.Require().Error(err) - suite.Require().Nil(packetData) + suite.Require().Contains(err.Error(), tc.expError.Error()) } }) } From ad1ecf6169c48c392242bebef1e14458059a5a4d Mon Sep 17 00:00:00 2001 From: goofylfg <165781272+goofylfg@users.noreply.github.com> Date: Thu, 25 Apr 2024 03:31:36 +0800 Subject: [PATCH 05/62] chore: remove repetitive words (#6222) * Update upgrades_test.go * Update base_test.go --- e2e/tests/interchain_accounts/base_test.go | 2 +- e2e/tests/interchain_accounts/upgrades_test.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/e2e/tests/interchain_accounts/base_test.go b/e2e/tests/interchain_accounts/base_test.go index a8ffa27c0e3..583061d6eee 100644 --- a/e2e/tests/interchain_accounts/base_test.go +++ b/e2e/tests/interchain_accounts/base_test.go @@ -301,7 +301,7 @@ func (s *InterchainAccountsTestSuite) TestMsgSendTx_SuccessfulTransfer_AfterReop t.Run("submit tx message with bank transfer message times out", func(t *testing.T) { t.Run("fund interchain account wallet", func(t *testing.T) { - // fund the host account account so it has some $$ to send + // fund the host account so it has some $$ to send err := chainB.SendFunds(ctx, interchaintest.FaucetAccountKeyName, ibc.WalletAmount{ Address: hostAccount, Amount: sdkmath.NewInt(testvalues.StartingTokenAmount), diff --git a/e2e/tests/interchain_accounts/upgrades_test.go b/e2e/tests/interchain_accounts/upgrades_test.go index 80045ab4954..cbc461c3c9e 100644 --- a/e2e/tests/interchain_accounts/upgrades_test.go +++ b/e2e/tests/interchain_accounts/upgrades_test.go @@ -88,7 +88,7 @@ func (s *InterchainAccountsChannelUpgradesTestSuite) TestMsgSendTx_SuccessfulTra }) t.Run("fund interchain account wallet", func(t *testing.T) { - // fund the host account account so it has some $$ to send + // fund the host account so it has some $$ to send err := chainB.SendFunds(ctx, interchaintest.FaucetAccountKeyName, ibc.WalletAmount{ Address: hostAccount, Amount: sdkmath.NewInt(testvalues.StartingTokenAmount), @@ -316,7 +316,7 @@ func (s *InterchainAccountsChannelUpgradesTestSuite) TestChannelUpgrade_ICAChann t.Run("submit tx message with bank transfer message that times out", func(t *testing.T) { t.Run("fund interchain account wallet", func(t *testing.T) { - // fund the host account account so it has some $$ to send + // fund the host account so it has some $$ to send err := chainB.SendFunds(ctx, interchaintest.FaucetAccountKeyName, ibc.WalletAmount{ Address: interchainAccount, Amount: sdkmath.NewInt(testvalues.StartingTokenAmount), From 5eb75b57849e13f53cf0e8ebc91873930c2e52a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Apr 2024 21:52:46 +0200 Subject: [PATCH 06/62] build(deps): Bump bufbuild/buf-setup-action from 1.30.1 to 1.31.0 (#6219) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [bufbuild/buf-setup-action](https://github.com/bufbuild/buf-setup-action) from 1.30.1 to 1.31.0. - [Release notes](https://github.com/bufbuild/buf-setup-action/releases) - [Commits](https://github.com/bufbuild/buf-setup-action/compare/v1.30.1...v1.31.0) --- updated-dependencies: - dependency-name: bufbuild/buf-setup-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> Co-authored-by: Carlos Rodriguez --- .github/workflows/proto-registry.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/proto-registry.yml b/.github/workflows/proto-registry.yml index cf101c14570..77c9b6766f2 100644 --- a/.github/workflows/proto-registry.yml +++ b/.github/workflows/proto-registry.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: bufbuild/buf-setup-action@v1.30.1 + - uses: bufbuild/buf-setup-action@v1.31.0 - uses: bufbuild/buf-push-action@v1 with: input: "proto" From c882b820e990f6ee991a2913d7ade5d8c813da05 Mon Sep 17 00:00:00 2001 From: DimitrisJim Date: Wed, 24 Apr 2024 23:54:13 +0300 Subject: [PATCH 07/62] chore!: remove duplicate non-hexlified event attributes. (#6023) * chore: remote duplicate non-hexlified event attributes. * temp: point to commit on fork. * deps: point to interchain test commit, add changelog. * Update CHANGELOG.md * Update 13-v8-to-v9.md --------- Co-authored-by: Carlos Rodriguez --- CHANGELOG.md | 1 + docs/docs/05-migrations/13-v8-to-v9.md | 1 + e2e/go.mod | 5 +++-- e2e/go.sum | 4 ++-- modules/core/04-channel/keeper/events.go | 4 ---- modules/core/04-channel/types/events.go | 5 ----- testing/events.go | 19 ++++++++++++++----- testing/events_test.go | 9 +++++---- 8 files changed, 26 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fedaa25a195..c25ce8d2ae1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -49,6 +49,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (core/02-client) [\#6084](https://github.com/cosmos/ibc-go/pull/6084) Removed `stakingKeeper` as an argument to `NewKeeper` and replaced with a `ConsensusHost` implementation. * (testing) [\#6070](https://github.com/cosmos/ibc-go/pull/6070) Remove `AssertEventsLegacy` function. * (core) [\#6138](https://github.com/cosmos/ibc-go/pull/6138) Remove `Router` reference from IBC core keeper and use instead the router on the existing `PortKeeper` reference. +* (core/04-channel) [\#6023](https://github.com/cosmos/ibc-go/pull/6023) Remove emission of non-hexlified event attributes `packet_data` and `packet_ack`. ### State Machine Breaking diff --git a/docs/docs/05-migrations/13-v8-to-v9.md b/docs/docs/05-migrations/13-v8-to-v9.md index b2c0380e3e5..0012683f295 100644 --- a/docs/docs/05-migrations/13-v8-to-v9.md +++ b/docs/docs/05-migrations/13-v8-to-v9.md @@ -85,6 +85,7 @@ func NewKeeper( ## Relayers - Renaming of event attribute keys in [#5603](https://github.com/cosmos/ibc-go/pull/5603). +- Removal of duplicate non-hexlified event attributes in [#6023](https://github.com/cosmos/ibc-go/pull/6023). ## IBC Light Clients diff --git a/e2e/go.mod b/e2e/go.mod index 37ea0225a87..17cacdf44f8 100644 --- a/e2e/go.mod +++ b/e2e/go.mod @@ -2,6 +2,8 @@ module github.com/cosmos/ibc-go/e2e go 1.21 +replace github.com/strangelove-ventures/interchaintest/v8 => github.com/DimitrisJim/interchaintest/v8 v8.0.0-20240419095404-2c9270423b9a + require ( cosmossdk.io/errors v1.0.1 cosmossdk.io/math v1.3.0 @@ -12,7 +14,7 @@ require ( github.com/cosmos/ibc-go/modules/light-clients/08-wasm v0.0.0-00010101000000-000000000000 github.com/cosmos/ibc-go/v8 v8.1.0 github.com/docker/docker v24.0.7+incompatible - github.com/strangelove-ventures/interchaintest/v8 v8.2.0 + github.com/strangelove-ventures/interchaintest/v8 v8.2.1-0.20240419152858-c8b741617cd8 github.com/stretchr/testify v1.9.0 go.uber.org/zap v1.27.0 golang.org/x/mod v0.17.0 @@ -235,7 +237,6 @@ require ( golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.20.0 // indirect - golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect google.golang.org/api v0.162.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/e2e/go.sum b/e2e/go.sum index 197692586b6..7092d131741 100644 --- a/e2e/go.sum +++ b/e2e/go.sum @@ -238,6 +238,8 @@ github.com/DataDog/datadog-go v4.8.3+incompatible h1:fNGaYSuObuQb5nzeTQqowRAd9bp github.com/DataDog/datadog-go v4.8.3+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/DimitrisJim/interchaintest/v8 v8.0.0-20240419095404-2c9270423b9a h1:Ecz2QGDNdO/Hej2Dd490Vyg1yy55/2Lt2bN81tWuSgo= +github.com/DimitrisJim/interchaintest/v8 v8.0.0-20240419095404-2c9270423b9a/go.mod h1:B1TjQjU1te0ek05LQGjDwEu1NwWpfmC3+eAEDtouY+0= github.com/FactomProject/basen v0.0.0-20150613233007-fe3947df716e h1:ahyvB3q25YnZWly5Gq1ekg6jcmWaGj/vG/MhF4aisoc= github.com/FactomProject/basen v0.0.0-20150613233007-fe3947df716e/go.mod h1:kGUqhHd//musdITWjFvNTHn90WG9bMLBEPQZ17Cmlpw= github.com/FactomProject/btcutilecc v0.0.0-20130527213604-d3a63a5752ec h1:1Qb69mGp/UtRPn422BH4/Y4Q3SLUrD9KHuDkm8iodFc= @@ -1052,8 +1054,6 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ= github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk= -github.com/strangelove-ventures/interchaintest/v8 v8.2.0 h1:EZXPvZXL1y/kvh9XI04A2stL+2UMvykhNUv28euRnL8= -github.com/strangelove-ventures/interchaintest/v8 v8.2.0/go.mod h1:pupV0YN3A56/u9kHj9U1F8MdDUEolBIn05F0W1q/0oI= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= diff --git a/modules/core/04-channel/keeper/events.go b/modules/core/04-channel/keeper/events.go index 7d2e9fe4a6a..102034aae84 100644 --- a/modules/core/04-channel/keeper/events.go +++ b/modules/core/04-channel/keeper/events.go @@ -125,7 +125,6 @@ func emitSendPacketEvent(ctx sdk.Context, packet types.Packet, channel types.Cha ctx.EventManager().EmitEvents(sdk.Events{ sdk.NewEvent( types.EventTypeSendPacket, - sdk.NewAttribute(types.AttributeKeyData, string(packet.GetData())), //nolint:staticcheck // DEPRECATED sdk.NewAttribute(types.AttributeKeyDataHex, hex.EncodeToString(packet.GetData())), sdk.NewAttribute(types.AttributeKeyTimeoutHeight, timeoutHeight.String()), sdk.NewAttribute(types.AttributeKeyTimeoutTimestamp, fmt.Sprintf("%d", packet.GetTimeoutTimestamp())), @@ -153,7 +152,6 @@ func emitRecvPacketEvent(ctx sdk.Context, packet types.Packet, channel types.Cha ctx.EventManager().EmitEvents(sdk.Events{ sdk.NewEvent( types.EventTypeRecvPacket, - sdk.NewAttribute(types.AttributeKeyData, string(packet.GetData())), //nolint:staticcheck // DEPRECATED sdk.NewAttribute(types.AttributeKeyDataHex, hex.EncodeToString(packet.GetData())), sdk.NewAttribute(types.AttributeKeyTimeoutHeight, packet.GetTimeoutHeight().String()), sdk.NewAttribute(types.AttributeKeyTimeoutTimestamp, fmt.Sprintf("%d", packet.GetTimeoutTimestamp())), @@ -180,7 +178,6 @@ func emitWriteAcknowledgementEvent(ctx sdk.Context, packet types.Packet, channel ctx.EventManager().EmitEvents(sdk.Events{ sdk.NewEvent( types.EventTypeWriteAck, - sdk.NewAttribute(types.AttributeKeyData, string(packet.GetData())), //nolint:staticcheck // DEPRECATED sdk.NewAttribute(types.AttributeKeyDataHex, hex.EncodeToString(packet.GetData())), sdk.NewAttribute(types.AttributeKeyTimeoutHeight, packet.GetTimeoutHeight().String()), sdk.NewAttribute(types.AttributeKeyTimeoutTimestamp, fmt.Sprintf("%d", packet.GetTimeoutTimestamp())), @@ -189,7 +186,6 @@ func emitWriteAcknowledgementEvent(ctx sdk.Context, packet types.Packet, channel sdk.NewAttribute(types.AttributeKeySrcChannel, packet.GetSourceChannel()), sdk.NewAttribute(types.AttributeKeyDstPort, packet.GetDestPort()), sdk.NewAttribute(types.AttributeKeyDstChannel, packet.GetDestChannel()), - sdk.NewAttribute(types.AttributeKeyAck, string(acknowledgement)), //nolint:staticcheck // DEPRECATED sdk.NewAttribute(types.AttributeKeyAckHex, hex.EncodeToString(acknowledgement)), // we only support 1-hop packets now, and that is the most important hop for a relayer // (is it going to a chain I am connected to) diff --git a/modules/core/04-channel/types/events.go b/modules/core/04-channel/types/events.go index 6e7c7e83ae7..3d5747a3ed1 100644 --- a/modules/core/04-channel/types/events.go +++ b/modules/core/04-channel/types/events.go @@ -31,11 +31,6 @@ const ( EventTypeAcknowledgePacket = "acknowledge_packet" EventTypeTimeoutPacket = "timeout_packet" - // Deprecated: in favor of AttributeKeyDataHex - AttributeKeyData = "packet_data" - // Deprecated: in favor of AttributeKeyAckHex - AttributeKeyAck = "packet_ack" - AttributeKeyDataHex = "packet_data_hex" AttributeKeyAckHex = "packet_ack_hex" AttributeKeyTimeoutHeight = "packet_timeout_height" diff --git a/testing/events.go b/testing/events.go index 96b9063759a..af585a87669 100644 --- a/testing/events.go +++ b/testing/events.go @@ -1,6 +1,7 @@ package ibctesting import ( + "encoding/hex" "fmt" "slices" "strconv" @@ -84,9 +85,12 @@ func ParsePacketsFromEvents(events []abci.Event) ([]channeltypes.Packet, error) var packet channeltypes.Packet for _, attr := range ev.Attributes { switch attr.Key { - case channeltypes.AttributeKeyData: //nolint:staticcheck // DEPRECATED - packet.Data = []byte(attr.Value) - + case channeltypes.AttributeKeyDataHex: + data, err := hex.DecodeString(attr.Value) + if err != nil { + return ferr(err) + } + packet.Data = data case channeltypes.AttributeKeySequence: seq, err := strconv.ParseUint(attr.Value, 10, 64) if err != nil { @@ -143,8 +147,13 @@ func ParseAckFromEvents(events []abci.Event) ([]byte, error) { for _, ev := range events { if ev.Type == channeltypes.EventTypeWriteAck { for _, attr := range ev.Attributes { - if attr.Key == channeltypes.AttributeKeyAck { //nolint:staticcheck // DEPRECATED - return []byte(attr.Value), nil + if attr.Key == channeltypes.AttributeKeyAckHex { + value, err := hex.DecodeString(attr.Value) + if err != nil { + return nil, err + } + + return value, nil } } } diff --git a/testing/events_test.go b/testing/events_test.go index 9ecb7d30f59..a9cf524c68a 100644 --- a/testing/events_test.go +++ b/testing/events_test.go @@ -1,6 +1,7 @@ package ibctesting_test import ( + "encoding/hex" "testing" "github.com/stretchr/testify/require" @@ -29,8 +30,8 @@ func TestParsePacketsFromEvents(t *testing.T) { Type: channeltypes.EventTypeSendPacket, Attributes: []abci.EventAttribute{ { - Key: channeltypes.AttributeKeyData, - Value: "data1", + Key: channeltypes.AttributeKeyDataHex, + Value: hex.EncodeToString([]byte("data1")), }, { Key: channeltypes.AttributeKeySequence, @@ -69,8 +70,8 @@ func TestParsePacketsFromEvents(t *testing.T) { Type: channeltypes.EventTypeSendPacket, Attributes: []abci.EventAttribute{ { - Key: channeltypes.AttributeKeyData, - Value: "data2", + Key: channeltypes.AttributeKeyDataHex, + Value: hex.EncodeToString([]byte("data2")), }, { Key: channeltypes.AttributeKeySequence, From f9336cc55f47584a20261ac84b78a980b2899ae5 Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Date: Thu, 25 Apr 2024 17:06:36 +0200 Subject: [PATCH 08/62] specify coverage files for modules (#6224) --- .github/workflows/callbacks.yml | 2 +- .github/workflows/capability.yml | 2 +- .github/workflows/wasm-client.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/callbacks.yml b/.github/workflows/callbacks.yml index 8294490b30b..385f6387c05 100644 --- a/.github/workflows/callbacks.yml +++ b/.github/workflows/callbacks.yml @@ -47,7 +47,7 @@ jobs: - name: Go Test run: | cd modules/apps/callbacks - go test -v -mod=readonly ./... + go test -v -mod=readonly ./... -coverprofile=coverage.out code-analysis: if: github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' diff --git a/.github/workflows/capability.yml b/.github/workflows/capability.yml index d368898f085..d950046ddc8 100644 --- a/.github/workflows/capability.yml +++ b/.github/workflows/capability.yml @@ -33,7 +33,7 @@ jobs: - name: Go Test run: | cd modules/capability - go test -v -mod=readonly ./... + go test -v -mod=readonly ./... -coverprofile=coverage.out code-analysis: if: github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' diff --git a/.github/workflows/wasm-client.yml b/.github/workflows/wasm-client.yml index a1fa7d976f7..a57a7dc8d36 100644 --- a/.github/workflows/wasm-client.yml +++ b/.github/workflows/wasm-client.yml @@ -54,7 +54,7 @@ jobs: - name: Go Test run: | cd modules/light-clients/08-wasm - go test -v -mod=readonly ./... + go test -v -mod=readonly ./... -coverprofile=coverage.out code-analysis: if: github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' From 038b24497241c51bf47aab1331120fd7d1934548 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 26 Apr 2024 13:26:20 +0200 Subject: [PATCH 09/62] build(deps): Bump golangci/golangci-lint-action from 4.0.0 to 5.0.0 (#6225) Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 4.0.0 to 5.0.0. - [Release notes](https://github.com/golangci/golangci-lint-action/releases) - [Commits](https://github.com/golangci/golangci-lint-action/compare/v4.0.0...v5.0.0) --- updated-dependencies: - dependency-name: golangci/golangci-lint-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/callbacks.yml | 2 +- .github/workflows/e2emodule.yml | 2 +- .github/workflows/golangci-feature.yml | 2 +- .github/workflows/golangci.yml | 2 +- .github/workflows/wasm-client.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/callbacks.yml b/.github/workflows/callbacks.yml index 385f6387c05..9266be7a75c 100644 --- a/.github/workflows/callbacks.yml +++ b/.github/workflows/callbacks.yml @@ -16,7 +16,7 @@ jobs: with: go-version: '1.21' - uses: actions/checkout@v4 - - uses: golangci/golangci-lint-action@v4.0.0 + - uses: golangci/golangci-lint-action@v5.0.0 with: version: v1.57.2 args: --timeout 5m diff --git a/.github/workflows/e2emodule.yml b/.github/workflows/e2emodule.yml index 2459b215ebf..e9ebe38ce19 100644 --- a/.github/workflows/e2emodule.yml +++ b/.github/workflows/e2emodule.yml @@ -14,7 +14,7 @@ jobs: with: go-version: '1.21' - uses: actions/checkout@v4 - - uses: golangci/golangci-lint-action@v4.0.0 + - uses: golangci/golangci-lint-action@v5.0.0 with: version: v1.57.2 args: --timeout 5m diff --git a/.github/workflows/golangci-feature.yml b/.github/workflows/golangci-feature.yml index 640a1d468be..9f1239f7e74 100644 --- a/.github/workflows/golangci-feature.yml +++ b/.github/workflows/golangci-feature.yml @@ -25,7 +25,7 @@ jobs: go-version: '1.21' - uses: actions/checkout@v4 - name: golangci-lint - uses: golangci/golangci-lint-action@v4.0.0 + uses: golangci/golangci-lint-action@v5.0.0 with: version: v1.57.2 args: --timeout 10m diff --git a/.github/workflows/golangci.yml b/.github/workflows/golangci.yml index 0ed9ca6959a..4a06826424f 100644 --- a/.github/workflows/golangci.yml +++ b/.github/workflows/golangci.yml @@ -20,7 +20,7 @@ jobs: go-version: '1.21' - uses: actions/checkout@v4 - name: golangci-lint - uses: golangci/golangci-lint-action@v4.0.0 + uses: golangci/golangci-lint-action@v5.0.0 with: version: v1.57.2 args: --timeout 10m diff --git a/.github/workflows/wasm-client.yml b/.github/workflows/wasm-client.yml index a57a7dc8d36..60cde721e6c 100644 --- a/.github/workflows/wasm-client.yml +++ b/.github/workflows/wasm-client.yml @@ -16,7 +16,7 @@ jobs: with: go-version: '1.21' - uses: actions/checkout@v4 - - uses: golangci/golangci-lint-action@v4.0.0 + - uses: golangci/golangci-lint-action@v5.0.0 with: version: v1.57.2 args: --timeout 10m From 34164efb37fe88eeb182a599915f3880e4e186b7 Mon Sep 17 00:00:00 2001 From: Kien Date: Mon, 29 Apr 2024 18:58:24 +0700 Subject: [PATCH 10/62] feat(08-wasm): expose migrate entry point for 08-wasm (#6231) * feat: expose migrate entry point for 08-wasm * add CLI documentation * add changelog * improve CLI inline docs * small fix * rename variable * remove gov flags * use double quotes * fix lint warning * Apply suggestions from code review Co-authored-by: Damian Nolan --------- Co-authored-by: Carlos Rodriguez Co-authored-by: Damian Nolan --- .../03-light-clients/04-wasm/08-client.md | 10 +++++ modules/light-clients/08-wasm/CHANGELOG.md | 1 + .../light-clients/08-wasm/client/cli/cli.go | 1 + .../light-clients/08-wasm/client/cli/tx.go | 40 ++++++++++++++++++- 4 files changed, 51 insertions(+), 1 deletion(-) diff --git a/docs/docs/03-light-clients/04-wasm/08-client.md b/docs/docs/03-light-clients/04-wasm/08-client.md index dd24108f2d0..1139d4e2510 100644 --- a/docs/docs/03-light-clients/04-wasm/08-client.md +++ b/docs/docs/03-light-clients/04-wasm/08-client.md @@ -29,6 +29,16 @@ simd tx ibc-wasm store-code [path/to/wasm-file] [flags] `path/to/wasm-file` is the path to the `.wasm` or `.wasm.gz` file. +#### `migrate-contract` + +The `migrate-contract` command allows users to broadcast a transaction with a `MsgMigrateContract` to migrate the contract for a given light client to a new byte code denoted by the given checksum. + +```shell +simd tx ibc-wasm migrate-contract [client-id] [checksum] [migrate-msg] +``` + +The migrate message must not be emptied and is expected to be a JSON-encoded string. + ### Query The `query` commands allow users to query `08-wasm` state. diff --git a/modules/light-clients/08-wasm/CHANGELOG.md b/modules/light-clients/08-wasm/CHANGELOG.md index e8f10e5432f..aae2b208d88 100644 --- a/modules/light-clients/08-wasm/CHANGELOG.md +++ b/modules/light-clients/08-wasm/CHANGELOG.md @@ -51,6 +51,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### Features * [#\5821](https://github.com/cosmos/ibc-go/pull/5821) feat: add `VerifyMembershipProof` RPC query (querier approach for conditional clients). +* [#\6231](https://github.com/cosmos/ibc-go/pull/6231) feat: add CLI to broadcast transaction with `MsgMigrateContract`. ### Bug Fixes diff --git a/modules/light-clients/08-wasm/client/cli/cli.go b/modules/light-clients/08-wasm/client/cli/cli.go index a40ea3ce48f..96e35b5c39a 100644 --- a/modules/light-clients/08-wasm/client/cli/cli.go +++ b/modules/light-clients/08-wasm/client/cli/cli.go @@ -36,6 +36,7 @@ func NewTxCmd() *cobra.Command { txCmd.AddCommand( newSubmitStoreCodeProposalCmd(), + newMigrateContractCmd(), ) return txCmd diff --git a/modules/light-clients/08-wasm/client/cli/tx.go b/modules/light-clients/08-wasm/client/cli/tx.go index 7e85a26b7e5..92c5a95c21c 100644 --- a/modules/light-clients/08-wasm/client/cli/tx.go +++ b/modules/light-clients/08-wasm/client/cli/tx.go @@ -27,7 +27,7 @@ func newSubmitStoreCodeProposalCmd() *cobra.Command { Use: "store-code [path/to/wasm-file]", Short: "Reads wasm code from the file and creates a proposal to store the wasm code", Long: "Reads wasm code from the file and creates a proposal to store the wasm code", - Example: fmt.Sprintf("%s tx %s wasm [path/to/wasm_file]", version.AppName, ibcexported.ModuleName), + Example: fmt.Sprintf("%s tx %s-wasm store-code [path/to/wasm_file]", version.AppName, ibcexported.ModuleName), Args: cobra.ExactArgs(1), RunE: func(cmd *cobra.Command, args []string) error { clientCtx, err := client.GetClientTxContext(cmd) @@ -82,3 +82,41 @@ func newSubmitStoreCodeProposalCmd() *cobra.Command { return cmd } + +func newMigrateContractCmd() *cobra.Command { + cmd := &cobra.Command{ + Use: "migrate-contract [client-id] [checksum] [migrate-msg]", + Short: "Migrates a contract to a new byte code", + Long: "Migrates the contract for the specified client ID to the byte code corresponding to checksum, passing the JSON-encoded migrate message to the contract", + Example: fmt.Sprintf("%s tx %s-wasm migrate-contract 08-wasm-0 b3a49b2914f5e6a673215e74325c1d153bb6776e079774e52c5b7e674d9ad3ab {}", version.AppName, ibcexported.ModuleName), + Args: cobra.ExactArgs(3), // Ensure exactly three arguments are passed + RunE: func(cmd *cobra.Command, args []string) error { + clientCtx, err := client.GetClientTxContext(cmd) + if err != nil { + return err + } + + clientID := args[0] + checksum := args[1] + migrateMsg := args[2] + + // Construct the message + msg := &types.MsgMigrateContract{ + Signer: clientCtx.GetFromAddress().String(), + ClientId: clientID, + Checksum: []byte(checksum), + Msg: []byte(migrateMsg), + } + + if err := msg.ValidateBasic(); err != nil { + return err + } + + // Generate or broadcast the transaction + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) + }, + } + + flags.AddTxFlagsToCmd(cmd) + return cmd +} From b0d21464e52c7d1680792a03dc271a41d3f3e3c4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Apr 2024 17:26:01 +0200 Subject: [PATCH 11/62] build(deps): Bump golangci/golangci-lint-action from 5.0.0 to 5.1.0 (#6244) Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 5.0.0 to 5.1.0. - [Release notes](https://github.com/golangci/golangci-lint-action/releases) - [Commits](https://github.com/golangci/golangci-lint-action/compare/v5.0.0...v5.1.0) --- updated-dependencies: - dependency-name: golangci/golangci-lint-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/callbacks.yml | 2 +- .github/workflows/e2emodule.yml | 2 +- .github/workflows/golangci-feature.yml | 2 +- .github/workflows/golangci.yml | 2 +- .github/workflows/wasm-client.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/callbacks.yml b/.github/workflows/callbacks.yml index 9266be7a75c..4dafe573838 100644 --- a/.github/workflows/callbacks.yml +++ b/.github/workflows/callbacks.yml @@ -16,7 +16,7 @@ jobs: with: go-version: '1.21' - uses: actions/checkout@v4 - - uses: golangci/golangci-lint-action@v5.0.0 + - uses: golangci/golangci-lint-action@v5.1.0 with: version: v1.57.2 args: --timeout 5m diff --git a/.github/workflows/e2emodule.yml b/.github/workflows/e2emodule.yml index e9ebe38ce19..8ac1f8cd389 100644 --- a/.github/workflows/e2emodule.yml +++ b/.github/workflows/e2emodule.yml @@ -14,7 +14,7 @@ jobs: with: go-version: '1.21' - uses: actions/checkout@v4 - - uses: golangci/golangci-lint-action@v5.0.0 + - uses: golangci/golangci-lint-action@v5.1.0 with: version: v1.57.2 args: --timeout 5m diff --git a/.github/workflows/golangci-feature.yml b/.github/workflows/golangci-feature.yml index 9f1239f7e74..0550ccc6bf0 100644 --- a/.github/workflows/golangci-feature.yml +++ b/.github/workflows/golangci-feature.yml @@ -25,7 +25,7 @@ jobs: go-version: '1.21' - uses: actions/checkout@v4 - name: golangci-lint - uses: golangci/golangci-lint-action@v5.0.0 + uses: golangci/golangci-lint-action@v5.1.0 with: version: v1.57.2 args: --timeout 10m diff --git a/.github/workflows/golangci.yml b/.github/workflows/golangci.yml index 4a06826424f..dcb3fb7057c 100644 --- a/.github/workflows/golangci.yml +++ b/.github/workflows/golangci.yml @@ -20,7 +20,7 @@ jobs: go-version: '1.21' - uses: actions/checkout@v4 - name: golangci-lint - uses: golangci/golangci-lint-action@v5.0.0 + uses: golangci/golangci-lint-action@v5.1.0 with: version: v1.57.2 args: --timeout 10m diff --git a/.github/workflows/wasm-client.yml b/.github/workflows/wasm-client.yml index 60cde721e6c..4eaf953450f 100644 --- a/.github/workflows/wasm-client.yml +++ b/.github/workflows/wasm-client.yml @@ -16,7 +16,7 @@ jobs: with: go-version: '1.21' - uses: actions/checkout@v4 - - uses: golangci/golangci-lint-action@v5.0.0 + - uses: golangci/golangci-lint-action@v5.1.0 with: version: v1.57.2 args: --timeout 10m From cf68eed722589ebfda122035a48303772a681ce6 Mon Sep 17 00:00:00 2001 From: seayyyy <163325936+seay404@users.noreply.github.com> Date: Thu, 2 May 2024 01:57:09 +0800 Subject: [PATCH 12/62] chore:fix export function name (#6247) --- testing/path.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/testing/path.go b/testing/path.go index cb1c968952a..7ee411ec88f 100644 --- a/testing/path.go +++ b/testing/path.go @@ -33,7 +33,7 @@ func NewPath(chainA, chainB *TestChain) *Path { } } -// NewPath constructs an endpoint for each chain using the default values +// NewPathWithFeeEnabled constructs an endpoint for each chain using the default values // for the endpoints. Each endpoint is updated to have a pointer to the // counterparty endpoint. It also enables fee on the path func NewPathWithFeeEnabled(chainA, chainB *TestChain) *Path { @@ -195,7 +195,7 @@ func (path *Path) CreateConnections() { } } -// CreateChannel constructs and executes channel handshake messages in order to create +// CreateChannels constructs and executes channel handshake messages in order to create // OPEN channels on chainA and chainB. The function expects the channels to be successfully // opened otherwise testing will fail. func (path *Path) CreateChannels() { From 95bacce19e6bcbf1b177466a0d5ab83e0bb3d191 Mon Sep 17 00:00:00 2001 From: seayyyy <163325936+seay404@users.noreply.github.com> Date: Thu, 2 May 2024 19:52:31 +0800 Subject: [PATCH 13/62] chore:fix export function name (#6249) * chore:fix export function name * perf(light-clients):use errors.New to replace fmt.Errorf with no parameters --- modules/apps/29-fee/keeper/keeper.go | 2 +- modules/apps/transfer/client/cli/query.go | 2 +- modules/core/ante/ante.go | 2 +- .../light-clients/08-wasm/testing/simapp/simd/cmd/root.go | 2 +- modules/light-clients/08-wasm/types/consensus_host.go | 6 +++--- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/apps/29-fee/keeper/keeper.go b/modules/apps/29-fee/keeper/keeper.go index f57a7155c69..b9316d8e001 100644 --- a/modules/apps/29-fee/keeper/keeper.go +++ b/modules/apps/29-fee/keeper/keeper.go @@ -297,7 +297,7 @@ func (k Keeper) GetAllForwardRelayerAddresses(ctx sdk.Context) []types.ForwardRe return forwardRelayerAddr } -// Deletes the forwardRelayerAddr associated with the packetID +// DeleteForwardRelayerAddress deletes the forwardRelayerAddr associated with the packetID func (k Keeper) DeleteForwardRelayerAddress(ctx sdk.Context, packetID channeltypes.PacketId) { store := ctx.KVStore(k.storeKey) key := types.KeyRelayerAddressForAsyncAck(packetID) diff --git a/modules/apps/transfer/client/cli/query.go b/modules/apps/transfer/client/cli/query.go index 20faa97cdb3..0e07febe833 100644 --- a/modules/apps/transfer/client/cli/query.go +++ b/modules/apps/transfer/client/cli/query.go @@ -112,7 +112,7 @@ func GetCmdParams() *cobra.Command { return cmd } -// GetCmdParams returns the command handler for ibc-transfer parameter querying. +// GetCmdQueryEscrowAddress returns the command handler for ibc-transfer parameter querying. func GetCmdQueryEscrowAddress() *cobra.Command { cmd := &cobra.Command{ Use: "escrow-address", diff --git a/modules/core/ante/ante.go b/modules/core/ante/ante.go index a64a5f0146a..6ab7e63d26e 100644 --- a/modules/core/ante/ante.go +++ b/modules/core/ante/ante.go @@ -16,7 +16,7 @@ func NewRedundantRelayDecorator(k *keeper.Keeper) RedundantRelayDecorator { return RedundantRelayDecorator{k: k} } -// RedundantRelayDecorator returns an error if a multiMsg tx only contains packet messages (Recv, Ack, Timeout) and additional update messages +// AnteHandle returns an error if a multiMsg tx only contains packet messages (Recv, Ack, Timeout) and additional update messages // and all packet messages are redundant. If the transaction is just a single UpdateClient message, or the multimsg transaction // contains some other message type, then the antedecorator returns no error and continues processing to ensure these transactions // are included. This will ensure that relayers do not waste fees on multiMsg transactions when another relayer has already submitted diff --git a/modules/light-clients/08-wasm/testing/simapp/simd/cmd/root.go b/modules/light-clients/08-wasm/testing/simapp/simd/cmd/root.go index 58d433f30ce..c7e3ac5a1bf 100644 --- a/modules/light-clients/08-wasm/testing/simapp/simd/cmd/root.go +++ b/modules/light-clients/08-wasm/testing/simapp/simd/cmd/root.go @@ -383,7 +383,7 @@ var tempDir = func() string { // Ref: https://github.com/cosmos/ibc-go/issues/4821#issuecomment-1747240445 func CheckLibwasmVersion(wasmExpectedVersion string) error { if wasmExpectedVersion == "" { - return fmt.Errorf("wasmvm module not exist") + return errors.New("wasmvm module not exist") } wasmVersion, err := wasmvm.LibwasmvmVersion() if err != nil { diff --git a/modules/light-clients/08-wasm/types/consensus_host.go b/modules/light-clients/08-wasm/types/consensus_host.go index fde71695656..c696190afe6 100644 --- a/modules/light-clients/08-wasm/types/consensus_host.go +++ b/modules/light-clients/08-wasm/types/consensus_host.go @@ -1,7 +1,7 @@ package types import ( - "fmt" + "errors" errorsmod "cosmossdk.io/errors" @@ -23,11 +23,11 @@ var _ clienttypes.ConsensusHost = (*WasmConsensusHost)(nil) // NewWasmConsensusHost creates and returns a new ConsensusHost for wasm wrapped consensus client state and consensus state self validation. func NewWasmConsensusHost(cdc codec.BinaryCodec, delegate clienttypes.ConsensusHost) (*WasmConsensusHost, error) { if cdc == nil { - return nil, fmt.Errorf("wasm consensus host codec is nil") + return nil, errors.New("wasm consensus host codec is nil") } if delegate == nil { - return nil, fmt.Errorf("wasm delegate consensus host is nil") + return nil, errors.New("wasm delegate consensus host is nil") } return &WasmConsensusHost{ From e046e750183042fe23db9b1fcb79451f31951670 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 14:53:01 +0200 Subject: [PATCH 14/62] build(deps): Bump github.com/cometbft/cometbft from 0.38.6 to 0.38.7 (#6239) * build(deps): Bump github.com/cometbft/cometbft from 0.38.6 to 0.38.7 Bumps [github.com/cometbft/cometbft](https://github.com/cometbft/cometbft) from 0.38.6 to 0.38.7. - [Release notes](https://github.com/cometbft/cometbft/releases) - [Changelog](https://github.com/cometbft/cometbft/blob/v0.38.7/CHANGELOG.md) - [Commits](https://github.com/cometbft/cometbft/compare/v0.38.6...v0.38.7) --- updated-dependencies: - dependency-name: github.com/cometbft/cometbft dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * bump cometbft in modules * add changelog entries --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Carlos Rodriguez --- CHANGELOG.md | 1 + e2e/go.mod | 2 +- e2e/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- modules/apps/callbacks/CHANGELOG.md | 1 + modules/apps/callbacks/go.mod | 2 +- modules/apps/callbacks/go.sum | 4 ++-- modules/capability/CHANGELOG.md | 1 + modules/capability/go.mod | 2 +- modules/capability/go.sum | 2 ++ modules/light-clients/08-wasm/CHANGELOG.md | 1 + modules/light-clients/08-wasm/go.mod | 2 +- modules/light-clients/08-wasm/go.sum | 4 ++-- 14 files changed, 19 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c25ce8d2ae1..a3080e4a0b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,6 +40,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * [\#6193](https://github.com/cosmos/ibc-go/pull/6193) Bump Cosmos SDK to v0.50.6. * [\#6193](https://github.com/cosmos/ibc-go/pull/6193) Bump `cosmossdk.io/store` to v1.1.0. +* [\#6239](https://github.com/cosmos/ibc-go/pull/6239) Bump CometBFT to v0.38.7. ### API Breaking diff --git a/e2e/go.mod b/e2e/go.mod index 17cacdf44f8..9f309d68352 100644 --- a/e2e/go.mod +++ b/e2e/go.mod @@ -8,7 +8,7 @@ require ( cosmossdk.io/errors v1.0.1 cosmossdk.io/math v1.3.0 cosmossdk.io/x/upgrade v0.1.2 - github.com/cometbft/cometbft v0.38.6 + github.com/cometbft/cometbft v0.38.7 github.com/cosmos/cosmos-sdk v0.50.6 github.com/cosmos/gogoproto v1.4.12 github.com/cosmos/ibc-go/modules/light-clients/08-wasm v0.0.0-00010101000000-000000000000 diff --git a/e2e/go.sum b/e2e/go.sum index 7092d131741..8fb92bd3f62 100644 --- a/e2e/go.sum +++ b/e2e/go.sum @@ -360,8 +360,8 @@ github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZ github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= -github.com/cometbft/cometbft v0.38.6 h1:QSgpCzrGWJ2KUq1qpw+FCfASRpE27T6LQbfEHscdyOk= -github.com/cometbft/cometbft v0.38.6/go.mod h1:8rSPxzUJYquCN8uuBgbUHOMg2KAwvr7CyUw+6ukO4nw= +github.com/cometbft/cometbft v0.38.7 h1:ULhIOJ9+LgSy6nLekhq9ae3juX3NnQUMMPyVdhZV6Hk= +github.com/cometbft/cometbft v0.38.7/go.mod h1:HIyf811dFMI73IE0F7RrnY/Fr+d1+HuJAgtkEpQjCMY= github.com/cometbft/cometbft-db v0.9.1 h1:MIhVX5ja5bXNHF8EYrThkG9F7r9kSfv8BX4LWaxWJ4M= github.com/cometbft/cometbft-db v0.9.1/go.mod h1:iliyWaoV0mRwBJoizElCwwRA9Tf7jZJOURcRZF9m60U= github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= diff --git a/go.mod b/go.mod index 40ee6a30417..31edbcf12ce 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( cosmossdk.io/x/feegrant v0.1.1 cosmossdk.io/x/tx v0.13.3 cosmossdk.io/x/upgrade v0.1.2 - github.com/cometbft/cometbft v0.38.6 + github.com/cometbft/cometbft v0.38.7 github.com/cosmos/cosmos-db v1.0.2 github.com/cosmos/cosmos-proto v1.0.0-beta.5 github.com/cosmos/cosmos-sdk v0.50.6 diff --git a/go.sum b/go.sum index e2c68d093d3..3a66fa0267e 100644 --- a/go.sum +++ b/go.sum @@ -335,8 +335,8 @@ github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZ github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= -github.com/cometbft/cometbft v0.38.6 h1:QSgpCzrGWJ2KUq1qpw+FCfASRpE27T6LQbfEHscdyOk= -github.com/cometbft/cometbft v0.38.6/go.mod h1:8rSPxzUJYquCN8uuBgbUHOMg2KAwvr7CyUw+6ukO4nw= +github.com/cometbft/cometbft v0.38.7 h1:ULhIOJ9+LgSy6nLekhq9ae3juX3NnQUMMPyVdhZV6Hk= +github.com/cometbft/cometbft v0.38.7/go.mod h1:HIyf811dFMI73IE0F7RrnY/Fr+d1+HuJAgtkEpQjCMY= github.com/cometbft/cometbft-db v0.9.1 h1:MIhVX5ja5bXNHF8EYrThkG9F7r9kSfv8BX4LWaxWJ4M= github.com/cometbft/cometbft-db v0.9.1/go.mod h1:iliyWaoV0mRwBJoizElCwwRA9Tf7jZJOURcRZF9m60U= github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= diff --git a/modules/apps/callbacks/CHANGELOG.md b/modules/apps/callbacks/CHANGELOG.md index 25047a3fa37..50becb7b18d 100644 --- a/modules/apps/callbacks/CHANGELOG.md +++ b/modules/apps/callbacks/CHANGELOG.md @@ -40,6 +40,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * [\#6193](https://github.com/cosmos/ibc-go/pull/6193) Bump Cosmos SDK to v0.50.6. * [\#6193](https://github.com/cosmos/ibc-go/pull/6193) Bump `cosmossdk.io/store` to v1.1.0. +* [\#6239](https://github.com/cosmos/ibc-go/pull/6239) Bump CometBFT to v0.38.7. ### API Breaking diff --git a/modules/apps/callbacks/go.mod b/modules/apps/callbacks/go.mod index b636c1e29b4..9e5f0231234 100644 --- a/modules/apps/callbacks/go.mod +++ b/modules/apps/callbacks/go.mod @@ -22,7 +22,7 @@ require ( cosmossdk.io/x/feegrant v0.1.1 cosmossdk.io/x/tx v0.13.3 cosmossdk.io/x/upgrade v0.1.2 - github.com/cometbft/cometbft v0.38.6 + github.com/cometbft/cometbft v0.38.7 github.com/cosmos/cosmos-db v1.0.2 github.com/cosmos/cosmos-sdk v0.50.6 github.com/cosmos/gogoproto v1.4.12 diff --git a/modules/apps/callbacks/go.sum b/modules/apps/callbacks/go.sum index e2c68d093d3..3a66fa0267e 100644 --- a/modules/apps/callbacks/go.sum +++ b/modules/apps/callbacks/go.sum @@ -335,8 +335,8 @@ github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZ github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= -github.com/cometbft/cometbft v0.38.6 h1:QSgpCzrGWJ2KUq1qpw+FCfASRpE27T6LQbfEHscdyOk= -github.com/cometbft/cometbft v0.38.6/go.mod h1:8rSPxzUJYquCN8uuBgbUHOMg2KAwvr7CyUw+6ukO4nw= +github.com/cometbft/cometbft v0.38.7 h1:ULhIOJ9+LgSy6nLekhq9ae3juX3NnQUMMPyVdhZV6Hk= +github.com/cometbft/cometbft v0.38.7/go.mod h1:HIyf811dFMI73IE0F7RrnY/Fr+d1+HuJAgtkEpQjCMY= github.com/cometbft/cometbft-db v0.9.1 h1:MIhVX5ja5bXNHF8EYrThkG9F7r9kSfv8BX4LWaxWJ4M= github.com/cometbft/cometbft-db v0.9.1/go.mod h1:iliyWaoV0mRwBJoizElCwwRA9Tf7jZJOURcRZF9m60U= github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= diff --git a/modules/capability/CHANGELOG.md b/modules/capability/CHANGELOG.md index b18c6852ea3..f0ee998d580 100644 --- a/modules/capability/CHANGELOG.md +++ b/modules/capability/CHANGELOG.md @@ -33,6 +33,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * [\#6193](https://github.com/cosmos/ibc-go/pull/6193) Bump Cosmos SDK to v0.50.6. * [\#6193](https://github.com/cosmos/ibc-go/pull/6193) Bump `cosmossdk.io/store` to v1.1.0. +* [\#6239](https://github.com/cosmos/ibc-go/pull/6239) Bump CometBFT to v0.38.7. ### API Breaking diff --git a/modules/capability/go.mod b/modules/capability/go.mod index 1552d3d1c6e..a1ebd56f413 100644 --- a/modules/capability/go.mod +++ b/modules/capability/go.mod @@ -10,7 +10,7 @@ require ( cosmossdk.io/log v1.3.1 cosmossdk.io/math v1.3.0 cosmossdk.io/store v1.1.0 - github.com/cometbft/cometbft v0.38.6 + github.com/cometbft/cometbft v0.38.7 github.com/cosmos/cosmos-db v1.0.2 github.com/cosmos/cosmos-sdk v0.50.6 github.com/cosmos/gogoproto v1.4.12 diff --git a/modules/capability/go.sum b/modules/capability/go.sum index e0885fcd189..ab4a2d16eb6 100644 --- a/modules/capability/go.sum +++ b/modules/capability/go.sum @@ -113,6 +113,8 @@ github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1: github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/cometbft/cometbft v0.38.6 h1:QSgpCzrGWJ2KUq1qpw+FCfASRpE27T6LQbfEHscdyOk= github.com/cometbft/cometbft v0.38.6/go.mod h1:8rSPxzUJYquCN8uuBgbUHOMg2KAwvr7CyUw+6ukO4nw= +github.com/cometbft/cometbft v0.38.7 h1:ULhIOJ9+LgSy6nLekhq9ae3juX3NnQUMMPyVdhZV6Hk= +github.com/cometbft/cometbft v0.38.7/go.mod h1:HIyf811dFMI73IE0F7RrnY/Fr+d1+HuJAgtkEpQjCMY= github.com/cometbft/cometbft-db v0.9.1 h1:MIhVX5ja5bXNHF8EYrThkG9F7r9kSfv8BX4LWaxWJ4M= github.com/cometbft/cometbft-db v0.9.1/go.mod h1:iliyWaoV0mRwBJoizElCwwRA9Tf7jZJOURcRZF9m60U= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= diff --git a/modules/light-clients/08-wasm/CHANGELOG.md b/modules/light-clients/08-wasm/CHANGELOG.md index aae2b208d88..d6172125d31 100644 --- a/modules/light-clients/08-wasm/CHANGELOG.md +++ b/modules/light-clients/08-wasm/CHANGELOG.md @@ -41,6 +41,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * [\#6193](https://github.com/cosmos/ibc-go/pull/6193) Bump Cosmos SDK to v0.50.6. * [\#6193](https://github.com/cosmos/ibc-go/pull/6193) Bump `cosmossdk.io/store` to v1.1.0. * [#\6097](https://github.com/cosmos/ibc-go/pull/6097) Update wasmvm to v2.0.1. +* [\#6239](https://github.com/cosmos/ibc-go/pull/6239) Bump CometBFT to v0.38.7. ### API Breaking diff --git a/modules/light-clients/08-wasm/go.mod b/modules/light-clients/08-wasm/go.mod index c8dcab27650..579f5d2bd87 100644 --- a/modules/light-clients/08-wasm/go.mod +++ b/modules/light-clients/08-wasm/go.mod @@ -22,7 +22,7 @@ require ( cosmossdk.io/x/tx v0.13.3 cosmossdk.io/x/upgrade v0.1.2 github.com/CosmWasm/wasmvm/v2 v2.0.1 - github.com/cometbft/cometbft v0.38.6 + github.com/cometbft/cometbft v0.38.7 github.com/cosmos/cosmos-db v1.0.2 github.com/cosmos/cosmos-sdk v0.50.6 github.com/cosmos/gogoproto v1.4.12 diff --git a/modules/light-clients/08-wasm/go.sum b/modules/light-clients/08-wasm/go.sum index cf809f9a513..dc6030ba9a9 100644 --- a/modules/light-clients/08-wasm/go.sum +++ b/modules/light-clients/08-wasm/go.sum @@ -337,8 +337,8 @@ github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZ github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= -github.com/cometbft/cometbft v0.38.6 h1:QSgpCzrGWJ2KUq1qpw+FCfASRpE27T6LQbfEHscdyOk= -github.com/cometbft/cometbft v0.38.6/go.mod h1:8rSPxzUJYquCN8uuBgbUHOMg2KAwvr7CyUw+6ukO4nw= +github.com/cometbft/cometbft v0.38.7 h1:ULhIOJ9+LgSy6nLekhq9ae3juX3NnQUMMPyVdhZV6Hk= +github.com/cometbft/cometbft v0.38.7/go.mod h1:HIyf811dFMI73IE0F7RrnY/Fr+d1+HuJAgtkEpQjCMY= github.com/cometbft/cometbft-db v0.9.1 h1:MIhVX5ja5bXNHF8EYrThkG9F7r9kSfv8BX4LWaxWJ4M= github.com/cometbft/cometbft-db v0.9.1/go.mod h1:iliyWaoV0mRwBJoizElCwwRA9Tf7jZJOURcRZF9m60U= github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= From edeefa8f01116774aee47a000e5c085cd76ad4dc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 3 May 2024 12:48:11 +0200 Subject: [PATCH 15/62] build(deps): Bump google.golang.org/protobuf from 1.33.0 to 1.34.0 (#6245) * build(deps): Bump google.golang.org/protobuf from 1.33.0 to 1.34.0 Bumps google.golang.org/protobuf from 1.33.0 to 1.34.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * go mod tidy --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Carlos Rodriguez --- e2e/go.mod | 2 +- e2e/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- modules/apps/callbacks/go.mod | 2 +- modules/apps/callbacks/go.sum | 4 ++-- modules/light-clients/08-wasm/go.mod | 2 +- modules/light-clients/08-wasm/go.sum | 4 ++-- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/e2e/go.mod b/e2e/go.mod index 9f309d68352..c6d207ba292 100644 --- a/e2e/go.mod +++ b/e2e/go.mod @@ -242,7 +242,7 @@ require ( google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect - google.golang.org/protobuf v1.33.0 // indirect + google.golang.org/protobuf v1.34.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/e2e/go.sum b/e2e/go.sum index 8fb92bd3f62..f3752830089 100644 --- a/e2e/go.sum +++ b/e2e/go.sum @@ -1749,8 +1749,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= +google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/go.mod b/go.mod index 31edbcf12ce..e4352f51ace 100644 --- a/go.mod +++ b/go.mod @@ -32,7 +32,7 @@ require ( github.com/stretchr/testify v1.9.0 google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de google.golang.org/grpc v1.63.2 - google.golang.org/protobuf v1.33.0 + google.golang.org/protobuf v1.34.0 gopkg.in/yaml.v2 v2.4.0 ) diff --git a/go.sum b/go.sum index 3a66fa0267e..d58148a5502 100644 --- a/go.sum +++ b/go.sum @@ -1664,8 +1664,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= +google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/modules/apps/callbacks/go.mod b/modules/apps/callbacks/go.mod index 9e5f0231234..863552939b3 100644 --- a/modules/apps/callbacks/go.mod +++ b/modules/apps/callbacks/go.mod @@ -196,7 +196,7 @@ require ( google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect google.golang.org/grpc v1.63.2 // indirect - google.golang.org/protobuf v1.33.0 // indirect + google.golang.org/protobuf v1.34.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/modules/apps/callbacks/go.sum b/modules/apps/callbacks/go.sum index 3a66fa0267e..d58148a5502 100644 --- a/modules/apps/callbacks/go.sum +++ b/modules/apps/callbacks/go.sum @@ -1664,8 +1664,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= +google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/modules/light-clients/08-wasm/go.mod b/modules/light-clients/08-wasm/go.mod index 579f5d2bd87..af3031e8d2a 100644 --- a/modules/light-clients/08-wasm/go.mod +++ b/modules/light-clients/08-wasm/go.mod @@ -195,7 +195,7 @@ require ( google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect - google.golang.org/protobuf v1.33.0 // indirect + google.golang.org/protobuf v1.34.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/modules/light-clients/08-wasm/go.sum b/modules/light-clients/08-wasm/go.sum index dc6030ba9a9..1002e5c96fb 100644 --- a/modules/light-clients/08-wasm/go.sum +++ b/modules/light-clients/08-wasm/go.sum @@ -1666,8 +1666,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= +google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 4f02df5a980b8b3b2bf477cc7f93e6c026107685 Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Date: Sun, 5 May 2024 22:34:56 +0200 Subject: [PATCH 16/62] docs: add list of module safe queries and link to SDK docs (#6246) * docs: add list of module safe queries and link to SDK docs * Update 05-messages.md --- .../02-interchain-accounts/05-messages.md | 51 ++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/docs/docs/02-apps/02-interchain-accounts/05-messages.md b/docs/docs/02-apps/02-interchain-accounts/05-messages.md index 0fabc21e094..53db5a65b6f 100644 --- a/docs/docs/02-apps/02-interchain-accounts/05-messages.md +++ b/docs/docs/02-apps/02-interchain-accounts/05-messages.md @@ -74,7 +74,56 @@ The packet `Sequence` is returned in the message response. ### Queries -It is possible to use [`MsgModuleQuerySafe`](https://github.com/cosmos/ibc-go/blob/eecfa5c09a4c38a5c9f2cc2a322d2286f45911da/proto/ibc/applications/interchain_accounts/host/v1/tx.proto#L41-L51) to execute a list of queries on the host chain. This message can be included in the list of encoded `sdk.Msg`s of `InterchainPacketData`. The host chain will return on the acknowledgment the responses for all the queries. Please note that only module safe queries can be executed. The following code block shows an example of how this message can be used to query the account balance of an account on the host chain. The resulting packet data variable is used to set the `PacketData` of `MsgSendTx`. +It is possible to use [`MsgModuleQuerySafe`](https://github.com/cosmos/ibc-go/blob/eecfa5c09a4c38a5c9f2cc2a322d2286f45911da/proto/ibc/applications/interchain_accounts/host/v1/tx.proto#L41-L51) to execute a list of queries on the host chain. This message can be included in the list of encoded `sdk.Msg`s of `InterchainPacketData`. The host chain will return on the acknowledgment the responses for all the queries. Please note that only module safe queries can be executed ([deterministic queries that are safe to be called from within the state machine](https://docs.cosmos.network/main/build/building-modules/query-services#calling-queries-from-the-state-machine)). + +The queries available from Cosmos SDK are: + +```plaintext +/cosmos.auth.v1beta1.Query/Accounts +/cosmos.auth.v1beta1.Query/Account +/cosmos.auth.v1beta1.Query/AccountAddressByID +/cosmos.auth.v1beta1.Query/Params +/cosmos.auth.v1beta1.Query/ModuleAccounts +/cosmos.auth.v1beta1.Query/ModuleAccountByName +/cosmos.auth.v1beta1.Query/AccountInfo +/cosmos.bank.v1beta1.Query/Balance +/cosmos.bank.v1beta1.Query/AllBalances +/cosmos.bank.v1beta1.Query/SpendableBalances +/cosmos.bank.v1beta1.Query/SpendableBalanceByDenom +/cosmos.bank.v1beta1.Query/TotalSupply +/cosmos.bank.v1beta1.Query/SupplyOf +/cosmos.bank.v1beta1.Query/Params +/cosmos.bank.v1beta1.Query/DenomMetadata +/cosmos.bank.v1beta1.Query/DenomMetadataByQueryString +/cosmos.bank.v1beta1.Query/DenomsMetadata +/cosmos.bank.v1beta1.Query/DenomOwners +/cosmos.bank.v1beta1.Query/SendEnabled +/cosmos.circuit.v1.Query/Account +/cosmos.circuit.v1.Query/Accounts +/cosmos.circuit.v1.Query/DisabledList +/cosmos.staking.v1beta1.Query/Validators +/cosmos.staking.v1beta1.Query/Validator +/cosmos.staking.v1beta1.Query/ValidatorDelegations +/cosmos.staking.v1beta1.Query/ValidatorUnbondingDelegations +/cosmos.staking.v1beta1.Query/Delegation +/cosmos.staking.v1beta1.Query/UnbondingDelegation +/cosmos.staking.v1beta1.Query/DelegatorDelegations +/cosmos.staking.v1beta1.Query/DelegatorUnbondingDelegations +/cosmos.staking.v1beta1.Query/Redelegations +/cosmos.staking.v1beta1.Query/DelegatorValidators +/cosmos.staking.v1beta1.Query/DelegatorValidator +/cosmos.staking.v1beta1.Query/HistoricalInfo +/cosmos.staking.v1beta1.Query/Pool +/cosmos.staking.v1beta1.Query/Params +``` + +And the query available from ibc-go is: + +```plaintext +/ibc.core.client.v1.Query/VerifyMembership +``` + +The following code block shows an example of how `MsgModuleQuerySafe` can be used to query the account balance of an account on the host chain. The resulting packet data variable is used to set the `PacketData` of `MsgSendTx`. ```go balanceQuery := banktypes.NewQueryBalanceRequest("cosmos1...", "uatom") From bbdcc8c6e965c8a2f607dfb2b61cd13712dd966a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 16:31:55 +0200 Subject: [PATCH 17/62] build(deps): Bump golangci/golangci-lint-action from 5.1.0 to 5.3.0 (#6258) Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 5.1.0 to 5.3.0. - [Release notes](https://github.com/golangci/golangci-lint-action/releases) - [Commits](https://github.com/golangci/golangci-lint-action/compare/v5.1.0...v5.3.0) --- updated-dependencies: - dependency-name: golangci/golangci-lint-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/callbacks.yml | 2 +- .github/workflows/e2emodule.yml | 2 +- .github/workflows/golangci-feature.yml | 2 +- .github/workflows/golangci.yml | 2 +- .github/workflows/wasm-client.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/callbacks.yml b/.github/workflows/callbacks.yml index 4dafe573838..ba5deb99eac 100644 --- a/.github/workflows/callbacks.yml +++ b/.github/workflows/callbacks.yml @@ -16,7 +16,7 @@ jobs: with: go-version: '1.21' - uses: actions/checkout@v4 - - uses: golangci/golangci-lint-action@v5.1.0 + - uses: golangci/golangci-lint-action@v5.3.0 with: version: v1.57.2 args: --timeout 5m diff --git a/.github/workflows/e2emodule.yml b/.github/workflows/e2emodule.yml index 8ac1f8cd389..5b03d2b7d4a 100644 --- a/.github/workflows/e2emodule.yml +++ b/.github/workflows/e2emodule.yml @@ -14,7 +14,7 @@ jobs: with: go-version: '1.21' - uses: actions/checkout@v4 - - uses: golangci/golangci-lint-action@v5.1.0 + - uses: golangci/golangci-lint-action@v5.3.0 with: version: v1.57.2 args: --timeout 5m diff --git a/.github/workflows/golangci-feature.yml b/.github/workflows/golangci-feature.yml index 0550ccc6bf0..f769b7384f3 100644 --- a/.github/workflows/golangci-feature.yml +++ b/.github/workflows/golangci-feature.yml @@ -25,7 +25,7 @@ jobs: go-version: '1.21' - uses: actions/checkout@v4 - name: golangci-lint - uses: golangci/golangci-lint-action@v5.1.0 + uses: golangci/golangci-lint-action@v5.3.0 with: version: v1.57.2 args: --timeout 10m diff --git a/.github/workflows/golangci.yml b/.github/workflows/golangci.yml index dcb3fb7057c..f24bb6f2abd 100644 --- a/.github/workflows/golangci.yml +++ b/.github/workflows/golangci.yml @@ -20,7 +20,7 @@ jobs: go-version: '1.21' - uses: actions/checkout@v4 - name: golangci-lint - uses: golangci/golangci-lint-action@v5.1.0 + uses: golangci/golangci-lint-action@v5.3.0 with: version: v1.57.2 args: --timeout 10m diff --git a/.github/workflows/wasm-client.yml b/.github/workflows/wasm-client.yml index 4eaf953450f..800b7757ed0 100644 --- a/.github/workflows/wasm-client.yml +++ b/.github/workflows/wasm-client.yml @@ -16,7 +16,7 @@ jobs: with: go-version: '1.21' - uses: actions/checkout@v4 - - uses: golangci/golangci-lint-action@v5.1.0 + - uses: golangci/golangci-lint-action@v5.3.0 with: version: v1.57.2 args: --timeout 10m From 3b3ecc5af1f4ad8d48685645bf996b69c9c494ad Mon Sep 17 00:00:00 2001 From: srdtrk <59252793+srdtrk@users.noreply.github.com> Date: Tue, 7 May 2024 11:55:34 +0800 Subject: [PATCH 18/62] imp(apps): allow one sided fee middleware handshakes to complete (#6253) * imp: added counter version proposal to try step * test: fixed tests * test: tested removing fee middleware * test: added ica onesided test * add changelog * imp: improved RemoveFeeMiddleware * nit: damian --------- Co-authored-by: Carlos Rodriguez --- CHANGELOG.md | 1 + .../host/keeper/handshake.go | 10 ++++- .../host/keeper/handshake_test.go | 3 +- modules/apps/29-fee/fee_test.go | 40 +++++++++++++++++++ modules/apps/29-fee/ibc_middleware.go | 7 ++-- modules/apps/29-fee/ica_test.go | 25 ++++++++++++ modules/apps/29-fee/transfer_test.go | 16 ++++++++ modules/apps/transfer/ibc_module.go | 10 +++-- modules/apps/transfer/ibc_module_test.go | 19 ++++----- testing/endpoint.go | 2 + 10 files changed, 115 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a3080e4a0b9..385550813bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -57,6 +57,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### Improvements * (apps/27-interchain-accounts) [\#5533](https://github.com/cosmos/ibc-go/pull/5533) ICA host sets the host connection ID on `OnChanOpenTry`, so that ICA controller implementations are not obliged to set the value on `OnChanOpenInit` if they are not able. +* (apps/27-interchain-accounts, apps/tranfer, apps/29-fee) [\#6253](https://github.com/cosmos/ibc-go/pull/6253) Allow channel handshake to succeed if fee middleware is wired up on one side, but not the other. ### Features diff --git a/modules/apps/27-interchain-accounts/host/keeper/handshake.go b/modules/apps/27-interchain-accounts/host/keeper/handshake.go index a9a62c55e75..2ec9dc8afbd 100644 --- a/modules/apps/27-interchain-accounts/host/keeper/handshake.go +++ b/modules/apps/27-interchain-accounts/host/keeper/handshake.go @@ -30,13 +30,21 @@ func (k Keeper) OnChanOpenTry( counterparty channeltypes.Counterparty, counterpartyVersion string, ) (string, error) { + logger := k.Logger(ctx) if portID != icatypes.HostPortID { return "", errorsmod.Wrapf(icatypes.ErrInvalidHostPort, "expected %s, got %s", icatypes.HostPortID, portID) } metadata, err := icatypes.MetadataFromVersion(counterpartyVersion) if err != nil { - return "", err + // Propose the default metadata if the counterparty version is invalid + connection, err := k.channelKeeper.GetConnection(ctx, connectionHops[0]) + if err != nil { + return "", errorsmod.Wrapf(err, "failed to retrieve connection %s", connectionHops[0]) + } + + logger.Debug("counterparty version is invalid, proposing default metadata") + metadata = icatypes.NewDefaultMetadata(connection.Counterparty.ConnectionId, connectionHops[0]) } // set here the HostConnectionId in case the controller did not set it diff --git a/modules/apps/27-interchain-accounts/host/keeper/handshake_test.go b/modules/apps/27-interchain-accounts/host/keeper/handshake_test.go index 90a5cb74874..46c653c8dc0 100644 --- a/modules/apps/27-interchain-accounts/host/keeper/handshake_test.go +++ b/modules/apps/27-interchain-accounts/host/keeper/handshake_test.go @@ -198,9 +198,10 @@ func (suite *KeeperTestSuite) TestOnChanOpenTry() { { "invalid metadata bytestring", func() { + // the try step will propose a new valid version path.EndpointA.ChannelConfig.Version = "invalid-metadata-bytestring" }, - false, + true, }, { "unsupported encoding format", diff --git a/modules/apps/29-fee/fee_test.go b/modules/apps/29-fee/fee_test.go index ea4a619a1e1..fa36aee8093 100644 --- a/modules/apps/29-fee/fee_test.go +++ b/modules/apps/29-fee/fee_test.go @@ -5,9 +5,16 @@ import ( testifysuite "github.com/stretchr/testify/suite" + icacontroller "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/controller" + icacontrollertypes "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/controller/types" + icahost "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host" + icahosttypes "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host/types" "github.com/cosmos/ibc-go/v8/modules/apps/29-fee/types" + "github.com/cosmos/ibc-go/v8/modules/apps/transfer" + transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" + porttypes "github.com/cosmos/ibc-go/v8/modules/core/05-port/types" ibctesting "github.com/cosmos/ibc-go/v8/testing" ibcmock "github.com/cosmos/ibc-go/v8/testing/mock" ) @@ -55,6 +62,39 @@ func (suite *FeeTestSuite) CreateMockPacket() channeltypes.Packet { ) } +// RemoveFeeMiddleware removes: +// - Fee middleware from transfer module +// - Fee middleware from icahost submodule +// - Fee middleware from icacontroller submodule +// - The entire mock-fee module +// +// It does this by overriding the IBC router with a new router. +func RemoveFeeMiddleware(chain *ibctesting.TestChain) { + channelKeeper := chain.GetSimApp().IBCKeeper.ChannelKeeper + + // Unseal the IBC router by force + chain.GetSimApp().IBCKeeper.PortKeeper.Router = nil + + newRouter := porttypes.NewRouter() // Create a new router + // Remove Fee middleware from transfer module + chain.GetSimApp().TransferKeeper.WithICS4Wrapper(channelKeeper) + transferStack := transfer.NewIBCModule(chain.GetSimApp().TransferKeeper) + newRouter.AddRoute(transfertypes.ModuleName, transferStack) + + // Remove Fee middleware from icahost submodule + chain.GetSimApp().ICAHostKeeper.WithICS4Wrapper(channelKeeper) + icaHostStack := icahost.NewIBCModule(chain.GetSimApp().ICAHostKeeper) + newRouter.AddRoute(icahosttypes.SubModuleName, icaHostStack) + + // Remove Fee middleware from icacontroller submodule + chain.GetSimApp().ICAControllerKeeper.WithICS4Wrapper(channelKeeper) + icaControllerStack := icacontroller.NewIBCMiddleware(nil, chain.GetSimApp().ICAControllerKeeper) + newRouter.AddRoute(icacontrollertypes.SubModuleName, icaControllerStack) + + // Override and seal the router + chain.GetSimApp().IBCKeeper.SetRouter(newRouter) +} + // helper function func lockFeeModule(chain *ibctesting.TestChain) { ctx := chain.GetContext() diff --git a/modules/apps/29-fee/ibc_middleware.go b/modules/apps/29-fee/ibc_middleware.go index 4ac1e7dd989..8f5b0dca759 100644 --- a/modules/apps/29-fee/ibc_middleware.go +++ b/modules/apps/29-fee/ibc_middleware.go @@ -139,12 +139,13 @@ func (im IBCMiddleware) OnChanOpenAck( counterpartyChannelID string, counterpartyVersion string, ) error { - // If handshake was initialized with fee enabled it must complete with fee enabled. - // If handshake was initialized with fee disabled it must complete with fee disabled. if im.keeper.IsFeeEnabled(ctx, portID, channelID) { versionMetadata, err := types.MetadataFromVersion(counterpartyVersion) if err != nil { - return errorsmod.Wrapf(err, "failed to unmarshal ICS29 counterparty version metadata: %s", counterpartyVersion) + // we pass the entire version string onto the underlying application. + // and disable fees for this channel + im.keeper.DeleteFeeEnabled(ctx, portID, channelID) + return im.app.OnChanOpenAck(ctx, portID, channelID, counterpartyChannelID, counterpartyVersion) } if versionMetadata.FeeVersion != types.Version { diff --git a/modules/apps/29-fee/ica_test.go b/modules/apps/29-fee/ica_test.go index b31ed816a21..ed121ae6e44 100644 --- a/modules/apps/29-fee/ica_test.go +++ b/modules/apps/29-fee/ica_test.go @@ -181,6 +181,31 @@ func (suite *FeeTestSuite) TestFeeInterchainAccounts() { suite.Require().Equal(preEscrowBalance.SubAmount(defaultRecvFee.AmountOf(sdk.DefaultBondDenom)), postDistBalance) } +func (suite *FeeTestSuite) TestOnesidedFeeMiddlewareICAHandshake() { + RemoveFeeMiddleware(suite.chainB) // remove fee middleware from chainB + + path := NewIncentivizedICAPath(suite.chainA, suite.chainB) + + path.SetupConnections() + + err := SetupPath(path, defaultOwnerAddress) + suite.Require().NoError(err) + + // assert the newly established channel is not fee enabled on chainB + interchainAccountAddr, found := suite.chainB.GetSimApp().ICAHostKeeper.GetInterchainAccountAddress(suite.chainB.GetContext(), ibctesting.FirstConnectionID, path.EndpointA.ChannelConfig.PortID) + suite.Require().True(found) + + expVersionMetadata, err := icatypes.MetadataFromVersion(defaultICAVersion) + suite.Require().NoError(err) + + expVersionMetadata.Address = interchainAccountAddr + + expVersion := string(icatypes.ModuleCdc.MustMarshalJSON(&expVersionMetadata)) + + suite.Require().Equal(path.EndpointA.ChannelConfig.Version, expVersion) + suite.Require().Equal(path.EndpointB.ChannelConfig.Version, expVersion) +} + func buildInterchainAccountsPacket(path *ibctesting.Path, data []byte, seq uint64) channeltypes.Packet { packet := channeltypes.NewPacket( data, diff --git a/modules/apps/29-fee/transfer_test.go b/modules/apps/29-fee/transfer_test.go index 79a0405fc0d..5281927d963 100644 --- a/modules/apps/29-fee/transfer_test.go +++ b/modules/apps/29-fee/transfer_test.go @@ -163,3 +163,19 @@ func (suite *FeeTestSuite) TestTransferFeeUpgrade() { }) } } + +func (suite *FeeTestSuite) TestOnesidedFeeMiddlewareTransferHandshake() { + RemoveFeeMiddleware(suite.chainB) // remove fee middleware from chainB + + path := ibctesting.NewPath(suite.chainA, suite.chainB) + feeTransferVersion := string(types.ModuleCdc.MustMarshalJSON(&types.Metadata{FeeVersion: types.Version, AppVersion: transfertypes.Version})) + path.EndpointA.ChannelConfig.Version = feeTransferVersion // this will be renegotiated by the Try step + path.EndpointB.ChannelConfig.Version = "" // this will be overwritten by the Try step + path.EndpointA.ChannelConfig.PortID = transfertypes.PortID + path.EndpointB.ChannelConfig.PortID = transfertypes.PortID + + path.Setup() + + suite.Require().Equal(path.EndpointA.ChannelConfig.Version, transfertypes.Version) + suite.Require().Equal(path.EndpointB.ChannelConfig.Version, transfertypes.Version) +} diff --git a/modules/apps/transfer/ibc_module.go b/modules/apps/transfer/ibc_module.go index 4cfd55ffdef..1424260f178 100644 --- a/modules/apps/transfer/ibc_module.go +++ b/modules/apps/transfer/ibc_module.go @@ -116,15 +116,17 @@ func (im IBCModule) OnChanOpenTry( return "", err } - if counterpartyVersion != types.Version { - return "", errorsmod.Wrapf(types.ErrInvalidVersion, "invalid counterparty version: expected %s, got %s", types.Version, counterpartyVersion) - } - // OpenTry must claim the channelCapability that IBC passes into the callback if err := im.keeper.ClaimCapability(ctx, chanCap, host.ChannelCapabilityPath(portID, channelID)); err != nil { return "", err } + if counterpartyVersion != types.Version { + // Propose the current version + im.keeper.Logger(ctx).Debug("invalid counterparty version, proposing current app version", "counterpartyVersion", counterpartyVersion, "version", types.Version) + return types.Version, nil + } + return types.Version, nil } diff --git a/modules/apps/transfer/ibc_module_test.go b/modules/apps/transfer/ibc_module_test.go index 878c773d2d4..4017134a999 100644 --- a/modules/apps/transfer/ibc_module_test.go +++ b/modules/apps/transfer/ibc_module_test.go @@ -132,31 +132,32 @@ func (suite *TransferTestSuite) TestOnChanOpenTry() { "success", func() {}, nil, }, { - "max channels reached", func() { + "success: invalid counterparty version proposes new version", func() { + // transfer module will propose the default version + counterpartyVersion = "version" + }, nil, + }, + { + "failure: max channels reached", func() { path.EndpointA.ChannelID = channeltypes.FormatChannelIdentifier(math.MaxUint32 + 1) }, types.ErrMaxTransferChannels, }, { - "capability already claimed", func() { + "failure: capability already claimed", func() { err := suite.chainA.GetSimApp().ScopedTransferKeeper.ClaimCapability(suite.chainA.GetContext(), chanCap, host.ChannelCapabilityPath(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)) suite.Require().NoError(err) }, capabilitytypes.ErrOwnerClaimed, }, { - "invalid order - ORDERED", func() { + "failure: invalid order - ORDERED", func() { channel.Ordering = channeltypes.ORDERED }, channeltypes.ErrInvalidChannelOrdering, }, { - "invalid port ID", func() { + "failure: invalid port ID", func() { path.EndpointA.ChannelConfig.PortID = ibctesting.MockPort }, porttypes.ErrInvalidPort, }, - { - "invalid counterparty version", func() { - counterpartyVersion = "version" - }, types.ErrInvalidVersion, - }, } for _, tc := range testCases { diff --git a/testing/endpoint.go b/testing/endpoint.go index e1adacafe0d..cf523ee8d38 100644 --- a/testing/endpoint.go +++ b/testing/endpoint.go @@ -342,6 +342,7 @@ func (endpoint *Endpoint) ChanOpenInit() error { // update version to selected app version // NOTE: this update must be performed after SendMsgs() endpoint.ChannelConfig.Version = endpoint.GetChannel().Version + endpoint.Counterparty.ChannelConfig.Version = endpoint.GetChannel().Version return nil } @@ -374,6 +375,7 @@ func (endpoint *Endpoint) ChanOpenTry() error { // update version to selected app version // NOTE: this update must be performed after the endpoint channelID is set endpoint.ChannelConfig.Version = endpoint.GetChannel().Version + endpoint.Counterparty.ChannelConfig.Version = endpoint.GetChannel().Version return nil } From f11db42e4d066077f9f6d0b986061956cd25c695 Mon Sep 17 00:00:00 2001 From: Damian Nolan Date: Tue, 7 May 2024 10:03:41 +0200 Subject: [PATCH 19/62] chore: disable failing grandpa tests due to hyperspace event attr parsing (#6259) --- .github/workflows/e2e-wasm.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/e2e-wasm.yaml b/.github/workflows/e2e-wasm.yaml index e75da52a156..c6cd042584d 100644 --- a/.github/workflows/e2e-wasm.yaml +++ b/.github/workflows/e2e-wasm.yaml @@ -65,3 +65,5 @@ jobs: chain-binary: 'simd' # only run the grandpa test suite for wasm tests. test-entry-point: 'TestGrandpaTestSuite' + # exclude transfer tests which rely on removed packet event attributes: # https://github.com/cosmos/ibc-go/issues/6243 + test-exclusions: 'TestMsgTransfer_Succeeds_GrandpaContract,TestMsgTransfer_TimesOut_GrandpaContract' From d34bf44b8636136cfdd559e87587b86a122b3409 Mon Sep 17 00:00:00 2001 From: Hoa Nguyen Date: Tue, 7 May 2024 15:13:47 +0700 Subject: [PATCH 20/62] chore: reduce allocations (#6233) * refactor: improve perf * review comment * rollback --------- Co-authored-by: Carlos Rodriguez Co-authored-by: Damian Nolan --- modules/apps/transfer/types/transfer_authorization.go | 2 +- modules/light-clients/08-wasm/keeper/keeper.go | 2 +- modules/light-clients/08-wasm/light_client_module.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/apps/transfer/types/transfer_authorization.go b/modules/apps/transfer/types/transfer_authorization.go index 242bc86e801..0683166cc8b 100644 --- a/modules/apps/transfer/types/transfer_authorization.go +++ b/modules/apps/transfer/types/transfer_authorization.go @@ -188,7 +188,7 @@ func validateMemo(ctx sdk.Context, memo string, allowedPacketDataList []string) } } - var keys []string + keys := make([]string, 0, len(jsonObject)) for k := range jsonObject { keys = append(keys, k) } diff --git a/modules/light-clients/08-wasm/keeper/keeper.go b/modules/light-clients/08-wasm/keeper/keeper.go index 69ac2e2a2cd..3c3995dafb9 100644 --- a/modules/light-clients/08-wasm/keeper/keeper.go +++ b/modules/light-clients/08-wasm/keeper/keeper.go @@ -213,7 +213,7 @@ func (k Keeper) GetAllChecksums(ctx context.Context) ([]types.Checksum, error) { return nil, err } - checksums := []types.Checksum{} + checksums := make([]types.Checksum, 0, len(keys)) for _, key := range keys { checksums = append(checksums, key) } diff --git a/modules/light-clients/08-wasm/light_client_module.go b/modules/light-clients/08-wasm/light_client_module.go index 1467a6834ed..8e44931ef15 100644 --- a/modules/light-clients/08-wasm/light_client_module.go +++ b/modules/light-clients/08-wasm/light_client_module.go @@ -205,7 +205,7 @@ func (l LightClientModule) UpdateState(ctx sdk.Context, clientID string, clientM panic(errorsmod.Wrap(types.ErrWasmInvalidResponseData, err.Error())) } - heights := []exported.Height{} + heights := make([]exported.Height, 0, len(result.Heights)) for _, height := range result.Heights { heights = append(heights, height) } From 7f274d5a4f1ddf998c3acf8fd822e5c4a1884f05 Mon Sep 17 00:00:00 2001 From: Tuan Tran Date: Tue, 7 May 2024 15:50:45 +0700 Subject: [PATCH 21/62] chore(api!): move additional methods to light client module (#6230) * move methods to light client module * remove status function from client state * update changelog + migration docs * godoc: update godoc of solomachine status method --------- Co-authored-by: Carlos Rodriguez Co-authored-by: Damian Nolan --- CHANGELOG.md | 1 + docs/docs/05-migrations/13-v8-to-v9.md | 2 +- .../06-solomachine/client_state.go | 22 ------------------ .../06-solomachine/light_client_module.go | 23 ++++++++++++++----- .../light-clients/06-solomachine/update.go | 8 ------- 5 files changed, 19 insertions(+), 37 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 385550813bf..34a61ca83da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -47,6 +47,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (core/02-client, light-clients) [\#5806](https://github.com/cosmos/ibc-go/pull/5806) Decouple light client routing from their encoding structure. * (core/04-channel) [\#5991](https://github.com/cosmos/ibc-go/pull/5991) The client CLI `QueryLatestConsensusState` has been removed. * (light-clients/06-solomachine) [\#6037](https://github.com/cosmos/ibc-go/pull/6037) Remove `Initialize` function from `ClientState` and move logic to `Initialize` function of `LightClientModule`. +* (light-clients/06-solomachine) [\#6230](https://github.com/cosmos/ibc-go/pull/6230) Remove `GetTimestampAtHeight`, `Status` and `UpdateStateOnMisbehaviour` functions from `ClientState` and move logic to functions of `LightClientModule`. * (core/02-client) [\#6084](https://github.com/cosmos/ibc-go/pull/6084) Removed `stakingKeeper` as an argument to `NewKeeper` and replaced with a `ConsensusHost` implementation. * (testing) [\#6070](https://github.com/cosmos/ibc-go/pull/6070) Remove `AssertEventsLegacy` function. * (core) [\#6138](https://github.com/cosmos/ibc-go/pull/6138) Remove `Router` reference from IBC core keeper and use instead the router on the existing `PortKeeper` reference. diff --git a/docs/docs/05-migrations/13-v8-to-v9.md b/docs/docs/05-migrations/13-v8-to-v9.md index 0012683f295..b3e03747167 100644 --- a/docs/docs/05-migrations/13-v8-to-v9.md +++ b/docs/docs/05-migrations/13-v8-to-v9.md @@ -118,7 +118,7 @@ Please check also the [Light client developer guide](../03-light-clients/01-deve ### 06-solomachine -The `Initialize` function in `ClientState` has been removed and all its logic has been moved to the implementation of the `LightClientModule` interface `Initialize` function. +The `Initialize`, `Status`, `GetTimestampAtHeight` and `UpdateStateOnMisbehaviour` functions in `ClientState` have been removed and all their logic has been moved to functions of the `LightClientModule`. ### 07-tendermint diff --git a/modules/light-clients/06-solomachine/client_state.go b/modules/light-clients/06-solomachine/client_state.go index 2b816a9dfb7..43d30fc4577 100644 --- a/modules/light-clients/06-solomachine/client_state.go +++ b/modules/light-clients/06-solomachine/client_state.go @@ -32,28 +32,6 @@ func (ClientState) ClientType() string { return exported.Solomachine } -// GetTimestampAtHeight returns the timestamp in nanoseconds of the consensus state at the given height. -func (cs ClientState) GetTimestampAtHeight( - _ sdk.Context, - clientStore storetypes.KVStore, - cdc codec.BinaryCodec, - height exported.Height, -) (uint64, error) { - return cs.ConsensusState.Timestamp, nil -} - -// Status returns the status of the solo machine client. -// The client may be: -// - Active: if frozen sequence is 0 -// - Frozen: otherwise solo machine is frozen -func (cs ClientState) Status(_ sdk.Context, _ storetypes.KVStore, _ codec.BinaryCodec) exported.Status { - if cs.IsFrozen { - return exported.Frozen - } - - return exported.Active -} - // Validate performs basic validation of the client state fields. func (cs ClientState) Validate() error { if cs.Sequence == 0 { diff --git a/modules/light-clients/06-solomachine/light_client_module.go b/modules/light-clients/06-solomachine/light_client_module.go index 35682f9b911..2e8f2d9fc99 100644 --- a/modules/light-clients/06-solomachine/light_client_module.go +++ b/modules/light-clients/06-solomachine/light_client_module.go @@ -95,7 +95,9 @@ func (l LightClientModule) CheckForMisbehaviour(ctx sdk.Context, clientID string return clientState.CheckForMisbehaviour(ctx, l.cdc, clientStore, clientMsg) } -// UpdateStateOnMisbehaviour obtains the client state associated with the client identifier and calls into the clientState.UpdateStateOnMisbehaviour method. +// UpdateStateOnMisbehaviour updates state upon misbehaviour, freezing the ClientState. +// This method should only be called when misbehaviour is detected as it does not perform +// any misbehaviour checks. // // CONTRACT: clientID is validated in 02-client router, thus clientID is assumed here to have the format 06-solomachine-{n}. func (l LightClientModule) UpdateStateOnMisbehaviour(ctx sdk.Context, clientID string, clientMsg exported.ClientMessage) { @@ -105,7 +107,8 @@ func (l LightClientModule) UpdateStateOnMisbehaviour(ctx sdk.Context, clientID s panic(errorsmod.Wrap(clienttypes.ErrClientNotFound, clientID)) } - clientState.UpdateStateOnMisbehaviour(ctx, l.cdc, clientStore, clientMsg) + clientState.IsFrozen = true + setClientState(clientStore, l.cdc, clientState) } // UpdateState obtains the client state associated with the client identifier and calls into the clientState.UpdateState method. @@ -164,7 +167,11 @@ func (l LightClientModule) VerifyNonMembership( return clientState.VerifyNonMembership(ctx, clientStore, l.cdc, height, delayTimePeriod, delayBlockPeriod, proof, path) } -// Status obtains the client state associated with the client identifier and calls into the clientState.Status method. +// Status returns the status of the solo machine client. +// The client may be: +// - Active: if `IsFrozen` is false. +// - Frozen: if `IsFrozen` is true. +// - Unknown: if the client state associated with the provided client identifier is not found. // // CONTRACT: clientID is validated in 02-client router, thus clientID is assumed here to have the format 06-solomachine-{n}. func (l LightClientModule) Status(ctx sdk.Context, clientID string) exported.Status { @@ -174,7 +181,11 @@ func (l LightClientModule) Status(ctx sdk.Context, clientID string) exported.Sta return exported.Unknown } - return clientState.Status(ctx, clientStore, l.cdc) + if clientState.IsFrozen { + return exported.Frozen + } + + return exported.Active } // LatestHeight returns the latest height for the client state for the given client identifier. @@ -193,7 +204,7 @@ func (l LightClientModule) LatestHeight(ctx sdk.Context, clientID string) export return clienttypes.NewHeight(0, clientState.Sequence) } -// TimestampAtHeight obtains the client state associated with the client identifier and calls into the clientState.GetTimestampAtHeight method. +// TimestampAtHeight obtains the client state associated with the client identifier and returns the timestamp in nanoseconds of the consensus state at the given height. // // CONTRACT: clientID is validated in 02-client router, thus clientID is assumed here to have the format 06-solomachine-{n}. func (l LightClientModule) TimestampAtHeight(ctx sdk.Context, clientID string, height exported.Height) (uint64, error) { @@ -203,7 +214,7 @@ func (l LightClientModule) TimestampAtHeight(ctx sdk.Context, clientID string, h return 0, errorsmod.Wrap(clienttypes.ErrClientNotFound, clientID) } - return clientState.GetTimestampAtHeight(ctx, clientStore, l.cdc, height) + return clientState.ConsensusState.Timestamp, nil } // RecoverClient asserts that the substitute client is a solo machine client. It obtains the client state associated with the diff --git a/modules/light-clients/06-solomachine/update.go b/modules/light-clients/06-solomachine/update.go index d013031ba48..359bb118be4 100644 --- a/modules/light-clients/06-solomachine/update.go +++ b/modules/light-clients/06-solomachine/update.go @@ -99,11 +99,3 @@ func (cs ClientState) UpdateState(ctx sdk.Context, cdc codec.BinaryCodec, client return []exported.Height{clienttypes.NewHeight(0, cs.Sequence)} } - -// UpdateStateOnMisbehaviour updates state upon misbehaviour. This method should only be called on misbehaviour -// as it does not perform any misbehaviour checks. -func (cs ClientState) UpdateStateOnMisbehaviour(ctx sdk.Context, cdc codec.BinaryCodec, clientStore storetypes.KVStore, _ exported.ClientMessage) { - cs.IsFrozen = true - - setClientState(clientStore, cdc, &cs) -} From fd2ec0dd702d62cfa2b57b475a095e53558e1918 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 May 2024 16:14:51 +0200 Subject: [PATCH 22/62] build(deps): Bump golangci/golangci-lint-action from 5.3.0 to 6.0.0 (#6266) Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 5.3.0 to 6.0.0. - [Release notes](https://github.com/golangci/golangci-lint-action/releases) - [Commits](https://github.com/golangci/golangci-lint-action/compare/v5.3.0...v6.0.0) --- updated-dependencies: - dependency-name: golangci/golangci-lint-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/callbacks.yml | 2 +- .github/workflows/e2emodule.yml | 2 +- .github/workflows/golangci-feature.yml | 2 +- .github/workflows/golangci.yml | 2 +- .github/workflows/wasm-client.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/callbacks.yml b/.github/workflows/callbacks.yml index ba5deb99eac..031c7cbd146 100644 --- a/.github/workflows/callbacks.yml +++ b/.github/workflows/callbacks.yml @@ -16,7 +16,7 @@ jobs: with: go-version: '1.21' - uses: actions/checkout@v4 - - uses: golangci/golangci-lint-action@v5.3.0 + - uses: golangci/golangci-lint-action@v6.0.0 with: version: v1.57.2 args: --timeout 5m diff --git a/.github/workflows/e2emodule.yml b/.github/workflows/e2emodule.yml index 5b03d2b7d4a..1c7c275c7a7 100644 --- a/.github/workflows/e2emodule.yml +++ b/.github/workflows/e2emodule.yml @@ -14,7 +14,7 @@ jobs: with: go-version: '1.21' - uses: actions/checkout@v4 - - uses: golangci/golangci-lint-action@v5.3.0 + - uses: golangci/golangci-lint-action@v6.0.0 with: version: v1.57.2 args: --timeout 5m diff --git a/.github/workflows/golangci-feature.yml b/.github/workflows/golangci-feature.yml index f769b7384f3..edc6650f3a7 100644 --- a/.github/workflows/golangci-feature.yml +++ b/.github/workflows/golangci-feature.yml @@ -25,7 +25,7 @@ jobs: go-version: '1.21' - uses: actions/checkout@v4 - name: golangci-lint - uses: golangci/golangci-lint-action@v5.3.0 + uses: golangci/golangci-lint-action@v6.0.0 with: version: v1.57.2 args: --timeout 10m diff --git a/.github/workflows/golangci.yml b/.github/workflows/golangci.yml index f24bb6f2abd..04419821bcb 100644 --- a/.github/workflows/golangci.yml +++ b/.github/workflows/golangci.yml @@ -20,7 +20,7 @@ jobs: go-version: '1.21' - uses: actions/checkout@v4 - name: golangci-lint - uses: golangci/golangci-lint-action@v5.3.0 + uses: golangci/golangci-lint-action@v6.0.0 with: version: v1.57.2 args: --timeout 10m diff --git a/.github/workflows/wasm-client.yml b/.github/workflows/wasm-client.yml index 800b7757ed0..a53ae22cb57 100644 --- a/.github/workflows/wasm-client.yml +++ b/.github/workflows/wasm-client.yml @@ -16,7 +16,7 @@ jobs: with: go-version: '1.21' - uses: actions/checkout@v4 - - uses: golangci/golangci-lint-action@v5.3.0 + - uses: golangci/golangci-lint-action@v6.0.0 with: version: v1.57.2 args: --timeout 10m From 9413b4e71ed3cd31de83cbea05925c08b9d1a403 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 May 2024 17:29:31 +0200 Subject: [PATCH 23/62] build(deps): Bump google.golang.org/protobuf from 1.34.0 to 1.34.1 (#6265) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build(deps): Bump google.golang.org/protobuf from 1.34.0 to 1.34.1 Bumps google.golang.org/protobuf from 1.34.0 to 1.34.1. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * chore: make tidy-all --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Damian Nolan Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> --- e2e/go.mod | 2 +- e2e/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- modules/apps/callbacks/go.mod | 2 +- modules/apps/callbacks/go.sum | 4 ++-- modules/capability/go.sum | 2 -- modules/light-clients/08-wasm/go.mod | 2 +- modules/light-clients/08-wasm/go.sum | 4 ++-- 9 files changed, 12 insertions(+), 14 deletions(-) diff --git a/e2e/go.mod b/e2e/go.mod index c6d207ba292..ee60f18d4d4 100644 --- a/e2e/go.mod +++ b/e2e/go.mod @@ -242,7 +242,7 @@ require ( google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect - google.golang.org/protobuf v1.34.0 // indirect + google.golang.org/protobuf v1.34.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/e2e/go.sum b/e2e/go.sum index f3752830089..fdbda98c386 100644 --- a/e2e/go.sum +++ b/e2e/go.sum @@ -1749,8 +1749,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= -google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= +google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/go.mod b/go.mod index e4352f51ace..213e9beef33 100644 --- a/go.mod +++ b/go.mod @@ -32,7 +32,7 @@ require ( github.com/stretchr/testify v1.9.0 google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de google.golang.org/grpc v1.63.2 - google.golang.org/protobuf v1.34.0 + google.golang.org/protobuf v1.34.1 gopkg.in/yaml.v2 v2.4.0 ) diff --git a/go.sum b/go.sum index d58148a5502..ac6eaaded6f 100644 --- a/go.sum +++ b/go.sum @@ -1664,8 +1664,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= -google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= +google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/modules/apps/callbacks/go.mod b/modules/apps/callbacks/go.mod index 863552939b3..9402fe75c6e 100644 --- a/modules/apps/callbacks/go.mod +++ b/modules/apps/callbacks/go.mod @@ -196,7 +196,7 @@ require ( google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect google.golang.org/grpc v1.63.2 // indirect - google.golang.org/protobuf v1.34.0 // indirect + google.golang.org/protobuf v1.34.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/modules/apps/callbacks/go.sum b/modules/apps/callbacks/go.sum index d58148a5502..ac6eaaded6f 100644 --- a/modules/apps/callbacks/go.sum +++ b/modules/apps/callbacks/go.sum @@ -1664,8 +1664,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= -google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= +google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/modules/capability/go.sum b/modules/capability/go.sum index ab4a2d16eb6..5cede605910 100644 --- a/modules/capability/go.sum +++ b/modules/capability/go.sum @@ -111,8 +111,6 @@ github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZ github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= -github.com/cometbft/cometbft v0.38.6 h1:QSgpCzrGWJ2KUq1qpw+FCfASRpE27T6LQbfEHscdyOk= -github.com/cometbft/cometbft v0.38.6/go.mod h1:8rSPxzUJYquCN8uuBgbUHOMg2KAwvr7CyUw+6ukO4nw= github.com/cometbft/cometbft v0.38.7 h1:ULhIOJ9+LgSy6nLekhq9ae3juX3NnQUMMPyVdhZV6Hk= github.com/cometbft/cometbft v0.38.7/go.mod h1:HIyf811dFMI73IE0F7RrnY/Fr+d1+HuJAgtkEpQjCMY= github.com/cometbft/cometbft-db v0.9.1 h1:MIhVX5ja5bXNHF8EYrThkG9F7r9kSfv8BX4LWaxWJ4M= diff --git a/modules/light-clients/08-wasm/go.mod b/modules/light-clients/08-wasm/go.mod index af3031e8d2a..449c23f731b 100644 --- a/modules/light-clients/08-wasm/go.mod +++ b/modules/light-clients/08-wasm/go.mod @@ -195,7 +195,7 @@ require ( google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect - google.golang.org/protobuf v1.34.0 // indirect + google.golang.org/protobuf v1.34.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/modules/light-clients/08-wasm/go.sum b/modules/light-clients/08-wasm/go.sum index 1002e5c96fb..1e3f204762a 100644 --- a/modules/light-clients/08-wasm/go.sum +++ b/modules/light-clients/08-wasm/go.sum @@ -1666,8 +1666,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= -google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= +google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 500765e43a2059a80ebac2d596adeaf12d1883c5 Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Date: Tue, 7 May 2024 23:12:23 +0200 Subject: [PATCH 24/62] fix: delete already refunded fees from state if some fee cannot be refunded on channel closure (#6255) * delete the refunded fees in case an error happens in the loop that refunds fees on channel closure * test simplifications * fix typo * clean up code * fix logic * add changelog --- CHANGELOG.md | 1 + modules/apps/29-fee/keeper/escrow.go | 12 ++-- modules/apps/29-fee/keeper/escrow_test.go | 86 +++++++++-------------- 3 files changed, 41 insertions(+), 58 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 34a61ca83da..9df5e0f62a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -68,6 +68,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### Bug Fixes * (apps/27-interchain-accounts) [\#6167](https://github.com/cosmos/ibc-go/pull/6167) Fixed an edge case bug where migrating params for a pre-existing ica module which implemented controller functionality only could panic when migrating params for newly added host, and align controller param migration with host. +* (app/29-fee) [\#6255](https://github.com/cosmos/ibc-go/pull/6255) Delete refunded fees from state if some fee(s) cannot be refunded on channel closure. ## [v8.2.0](https://github.com/cosmos/ibc-go/releases/tag/v8.2.0) - 2024-04-05 diff --git a/modules/apps/29-fee/keeper/escrow.go b/modules/apps/29-fee/keeper/escrow.go index c3bb9c8fefa..1ebbeb95caa 100644 --- a/modules/apps/29-fee/keeper/escrow.go +++ b/modules/apps/29-fee/keeper/escrow.go @@ -189,7 +189,7 @@ func (k Keeper) RefundFeesOnChannelClosure(ctx sdk.Context, portID, channelID st cacheCtx, writeFn := ctx.CacheContext() for _, identifiedPacketFee := range identifiedPacketFees { - var failedToSendCoins bool + var unRefundedFees []types.PacketFee for _, packetFee := range identifiedPacketFee.PacketFees { if !k.EscrowAccountHasBalance(cacheCtx, packetFee.Fee.Total()) { @@ -207,18 +207,22 @@ func (k Keeper) RefundFeesOnChannelClosure(ctx sdk.Context, portID, channelID st refundAddr, err := sdk.AccAddressFromBech32(packetFee.RefundAddress) if err != nil { - failedToSendCoins = true + unRefundedFees = append(unRefundedFees, packetFee) continue } // refund all fees to refund address if err = k.bankKeeper.SendCoinsFromModuleToAccount(cacheCtx, types.ModuleName, refundAddr, packetFee.Fee.Total()); err != nil { - failedToSendCoins = true + unRefundedFees = append(unRefundedFees, packetFee) continue } } - if !failedToSendCoins { + if len(unRefundedFees) > 0 { + // update packet fees to keep only the unrefunded fees + packetFees := types.NewPacketFees(unRefundedFees) + k.SetFeesInEscrow(cacheCtx, identifiedPacketFee.PacketId, packetFees) + } else { k.DeleteFeesInEscrow(cacheCtx, identifiedPacketFee.PacketId) } } diff --git a/modules/apps/29-fee/keeper/escrow_test.go b/modules/apps/29-fee/keeper/escrow_test.go index f0d6233d23f..8aa0840784c 100644 --- a/modules/apps/29-fee/keeper/escrow_test.go +++ b/modules/apps/29-fee/keeper/escrow_test.go @@ -395,19 +395,17 @@ func (suite *KeeperTestSuite) TestDistributePacketFeesOnTimeout() { func (suite *KeeperTestSuite) TestRefundFeesOnChannelClosure() { var ( - expIdentifiedPacketFees []types.IdentifiedPacketFees - expEscrowBal sdk.Coins - expRefundBal sdk.Coins - refundAcc sdk.AccAddress - fee types.Fee - locked bool - expectEscrowFeesToBeDeleted bool + expIdentifiedPacketFees []types.IdentifiedPacketFees + expEscrowBal sdk.Coins + expRefundBal sdk.Coins + refundAcc sdk.AccAddress + fee types.Fee ) testCases := []struct { name string malleate func() - expPass bool + locked bool }{ { "success", func() { @@ -415,16 +413,13 @@ func (suite *KeeperTestSuite) TestRefundFeesOnChannelClosure() { // store the fee in state & update escrow account balance packetID := channeltypes.NewPacketID(suite.path.EndpointA.ChannelConfig.PortID, suite.path.EndpointA.ChannelID, uint64(i)) packetFees := types.NewPacketFees([]types.PacketFee{types.NewPacketFee(fee, refundAcc.String(), nil)}) - identifiedPacketFees := types.NewIdentifiedPacketFees(packetID, packetFees.PacketFees) suite.chainA.GetSimApp().IBCFeeKeeper.SetFeesInEscrow(suite.chainA.GetContext(), packetID, packetFees) err := suite.chainA.GetSimApp().BankKeeper.SendCoinsFromAccountToModule(suite.chainA.GetContext(), refundAcc, types.ModuleName, fee.Total()) suite.Require().NoError(err) - - expIdentifiedPacketFees = append(expIdentifiedPacketFees, identifiedPacketFees) } - }, true, + }, false, }, { "success with undistributed packet fees on a different channel", func() { @@ -432,14 +427,10 @@ func (suite *KeeperTestSuite) TestRefundFeesOnChannelClosure() { // store the fee in state & update escrow account balance packetID := channeltypes.NewPacketID(suite.path.EndpointA.ChannelConfig.PortID, suite.path.EndpointA.ChannelID, uint64(i)) packetFees := types.NewPacketFees([]types.PacketFee{types.NewPacketFee(fee, refundAcc.String(), nil)}) - identifiedPacketFees := types.NewIdentifiedPacketFees(packetID, packetFees.PacketFees) - suite.chainA.GetSimApp().IBCFeeKeeper.SetFeesInEscrow(suite.chainA.GetContext(), packetID, packetFees) err := suite.chainA.GetSimApp().BankKeeper.SendCoinsFromAccountToModule(suite.chainA.GetContext(), refundAcc, types.ModuleName, fee.Total()) suite.Require().NoError(err) - - expIdentifiedPacketFees = append(expIdentifiedPacketFees, identifiedPacketFees) } // set packet fee for a different channel @@ -453,12 +444,10 @@ func (suite *KeeperTestSuite) TestRefundFeesOnChannelClosure() { expEscrowBal = fee.Total() expRefundBal = expRefundBal.Sub(fee.Total()...) - }, true, + }, false, }, { "escrow account empty, module should become locked", func() { - locked = true - // store the fee in state without updating escrow account balance packetID := channeltypes.NewPacketID(suite.path.EndpointA.ChannelConfig.PortID, suite.path.EndpointA.ChannelID, uint64(1)) packetFees := types.NewPacketFees([]types.PacketFee{types.NewPacketFee(fee, refundAcc.String(), nil)}) @@ -467,13 +456,10 @@ func (suite *KeeperTestSuite) TestRefundFeesOnChannelClosure() { suite.chainA.GetSimApp().IBCFeeKeeper.SetFeesInEscrow(suite.chainA.GetContext(), packetID, packetFees) expIdentifiedPacketFees = []types.IdentifiedPacketFees{identifiedPacketFees} - }, - true, + }, true, }, { "escrow account goes negative on second packet, module should become locked", func() { - locked = true - // store 2 fees in state packetID1 := channeltypes.NewPacketID(suite.path.EndpointA.ChannelConfig.PortID, suite.path.EndpointA.ChannelID, uint64(1)) packetID2 := channeltypes.NewPacketID(suite.path.EndpointA.ChannelConfig.PortID, suite.path.EndpointA.ChannelID, uint64(2)) @@ -494,42 +480,46 @@ func (suite *KeeperTestSuite) TestRefundFeesOnChannelClosure() { { "invalid refund acc address", func() { // store the fee in state & update escrow account balance - expectEscrowFeesToBeDeleted = false packetID := channeltypes.NewPacketID(suite.path.EndpointA.ChannelConfig.PortID, suite.path.EndpointA.ChannelID, uint64(1)) - packetFees := types.NewPacketFees([]types.PacketFee{types.NewPacketFee(fee, "invalid refund address", nil)}) - identifiedPacketFees := types.NewIdentifiedPacketFees(packetID, packetFees.PacketFees) - + packetFees := types.NewPacketFees([]types.PacketFee{ + types.NewPacketFee(fee, refundAcc.String(), nil), // this packet fee will be refunded, and will be deleted from state + types.NewPacketFee(fee, "invalid refund address", nil), + }) suite.chainA.GetSimApp().IBCFeeKeeper.SetFeesInEscrow(suite.chainA.GetContext(), packetID, packetFees) - err := suite.chainA.GetSimApp().BankKeeper.SendCoinsFromAccountToModule(suite.chainA.GetContext(), refundAcc, types.ModuleName, fee.Total()) + // escrow twice the fee amount to account for the packet to have been incentivized twice + err := suite.chainA.GetSimApp().BankKeeper.SendCoinsFromAccountToModule(suite.chainA.GetContext(), refundAcc, types.ModuleName, fee.Total().MulInt(sdkmath.NewInt(2))) suite.Require().NoError(err) - expIdentifiedPacketFees = []types.IdentifiedPacketFees{identifiedPacketFees} + // only the first packet fee should be refunded, the second should remain in state + expIdentifiedPacketFees = []types.IdentifiedPacketFees{types.NewIdentifiedPacketFees(packetID, packetFees.PacketFees[1:])} expEscrowBal = fee.Total() expRefundBal = expRefundBal.Sub(fee.Total()...) - }, true, + }, false, }, { "distributing to blocked address is skipped", func() { - expectEscrowFeesToBeDeleted = false blockedAddr := suite.chainA.GetSimApp().AccountKeeper.GetModuleAccount(suite.chainA.GetContext(), transfertypes.ModuleName).GetAddress().String() // store the fee in state & update escrow account balance packetID := channeltypes.NewPacketID(suite.path.EndpointA.ChannelConfig.PortID, suite.path.EndpointA.ChannelID, uint64(1)) - packetFees := types.NewPacketFees([]types.PacketFee{types.NewPacketFee(fee, blockedAddr, nil)}) - identifiedPacketFees := types.NewIdentifiedPacketFees(packetID, packetFees.PacketFees) - + packetFees := types.NewPacketFees([]types.PacketFee{ + types.NewPacketFee(fee, refundAcc.String(), nil), // this packet fee will be refunded, and will be deleted from state + types.NewPacketFee(fee, blockedAddr, nil), + }) suite.chainA.GetSimApp().IBCFeeKeeper.SetFeesInEscrow(suite.chainA.GetContext(), packetID, packetFees) - err := suite.chainA.GetSimApp().BankKeeper.SendCoinsFromAccountToModule(suite.chainA.GetContext(), refundAcc, types.ModuleName, fee.Total()) + // escrow twice the fee amount to account for the packet to have been incentivized twice + err := suite.chainA.GetSimApp().BankKeeper.SendCoinsFromAccountToModule(suite.chainA.GetContext(), refundAcc, types.ModuleName, fee.Total().MulInt(sdkmath.NewInt(2))) suite.Require().NoError(err) - expIdentifiedPacketFees = []types.IdentifiedPacketFees{identifiedPacketFees} + // only the first packet fee should be refunded, the second should remain in state + expIdentifiedPacketFees = []types.IdentifiedPacketFees{types.NewIdentifiedPacketFees(packetID, packetFees.PacketFees[1:])} expEscrowBal = fee.Total() expRefundBal = expRefundBal.Sub(fee.Total()...) - }, true, + }, false, }, } @@ -539,10 +529,8 @@ func (suite *KeeperTestSuite) TestRefundFeesOnChannelClosure() { suite.Run(tc.name, func() { suite.SetupTest() // reset suite.path.Setup() // setup channel - expIdentifiedPacketFees = []types.IdentifiedPacketFees{} + expIdentifiedPacketFees = []types.IdentifiedPacketFees(nil) expEscrowBal = sdk.Coins{} - locked = false - expectEscrowFeesToBeDeleted = true // setup refundAcc = suite.chainA.SenderAccount.GetAddress() @@ -565,32 +553,22 @@ func (suite *KeeperTestSuite) TestRefundFeesOnChannelClosure() { originalEscrowBal := suite.chainA.GetSimApp().BankKeeper.GetAllBalances(suite.chainA.GetContext(), moduleAcc) err := suite.chainA.GetSimApp().IBCFeeKeeper.RefundFeesOnChannelClosure(suite.chainA.GetContext(), suite.path.EndpointA.ChannelConfig.PortID, suite.path.EndpointA.ChannelID) + suite.Require().NoError(err) // refundAcc balance after RefundFeesOnChannelClosure refundBal := suite.chainA.GetSimApp().BankKeeper.GetAllBalances(suite.chainA.GetContext(), refundAcc) escrowBal := suite.chainA.GetSimApp().BankKeeper.GetAllBalances(suite.chainA.GetContext(), moduleAcc) - if tc.expPass { - suite.Require().NoError(err) - } else { - suite.Require().Error(err) - } + suite.Require().Equal(tc.locked, suite.chainA.GetSimApp().IBCFeeKeeper.IsLocked(suite.chainA.GetContext())) + suite.Require().Equal(expIdentifiedPacketFees, suite.chainA.GetSimApp().IBCFeeKeeper.GetIdentifiedPacketFeesForChannel(suite.chainA.GetContext(), suite.path.EndpointA.ChannelConfig.PortID, suite.path.EndpointA.ChannelID)) - suite.Require().Equal(locked, suite.chainA.GetSimApp().IBCFeeKeeper.IsLocked(suite.chainA.GetContext())) - - if locked || !tc.expPass { + if tc.locked { // refund account and escrow account balances should remain unchanged suite.Require().Equal(originalRefundBal, refundBal) suite.Require().Equal(originalEscrowBal, escrowBal) - - // ensure none of the fees were deleted - suite.Require().Equal(expIdentifiedPacketFees, suite.chainA.GetSimApp().IBCFeeKeeper.GetIdentifiedPacketFeesForChannel(suite.chainA.GetContext(), suite.path.EndpointA.ChannelConfig.PortID, suite.path.EndpointA.ChannelID)) } else { suite.Require().Equal(expEscrowBal, escrowBal) // escrow balance should be empty suite.Require().Equal(expRefundBal, refundBal) // all packets should have been refunded - - // all fees in escrow should be deleted if expected for this channel - suite.Require().Equal(expectEscrowFeesToBeDeleted, len(suite.chainA.GetSimApp().IBCFeeKeeper.GetIdentifiedPacketFeesForChannel(suite.chainA.GetContext(), suite.path.EndpointA.ChannelConfig.PortID, suite.path.EndpointA.ChannelID)) == 0) } }) } From 478f4c6068278c1e238a425aed5ba532eb397b50 Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Date: Wed, 8 May 2024 10:08:39 +0200 Subject: [PATCH 25/62] imp: check length of slices of messages (#6256) * imp: check length of slices of messages * add changelog * change test limits --- CHANGELOG.md | 1 + modules/apps/27-interchain-accounts/host/types/params.go | 6 ++++++ .../apps/27-interchain-accounts/host/types/params_test.go | 1 + modules/core/02-client/types/params.go | 7 +++++++ modules/core/02-client/types/params_test.go | 1 + modules/core/03-connection/types/msgs.go | 3 +++ modules/core/03-connection/types/msgs_test.go | 4 +++- modules/core/03-connection/types/version.go | 8 ++++++++ 8 files changed, 30 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9df5e0f62a6..ddd5a2a6210 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -58,6 +58,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### Improvements * (apps/27-interchain-accounts) [\#5533](https://github.com/cosmos/ibc-go/pull/5533) ICA host sets the host connection ID on `OnChanOpenTry`, so that ICA controller implementations are not obliged to set the value on `OnChanOpenInit` if they are not able. +* (core/02-client, core/03-connection, apps/27-interchain-accounts) [\#6256](https://github.com/cosmos/ibc-go/pull/6256) Add length checking of array fields in messages. * (apps/27-interchain-accounts, apps/tranfer, apps/29-fee) [\#6253](https://github.com/cosmos/ibc-go/pull/6253) Allow channel handshake to succeed if fee middleware is wired up on one side, but not the other. ### Features diff --git a/modules/apps/27-interchain-accounts/host/types/params.go b/modules/apps/27-interchain-accounts/host/types/params.go index 5c47fe65487..cb2fd40fa29 100644 --- a/modules/apps/27-interchain-accounts/host/types/params.go +++ b/modules/apps/27-interchain-accounts/host/types/params.go @@ -9,6 +9,8 @@ import ( const ( // DefaultHostEnabled is the default value for the host param (set to true) DefaultHostEnabled = true + // Maximum length of the allowlist + MaxAllowListLength = 500 ) // NewParams creates a new parameter configuration for the host submodule @@ -30,6 +32,10 @@ func (p Params) Validate() error { } func validateAllowlist(allowMsgs []string) error { + if len(allowMsgs) > MaxAllowListLength { + return fmt.Errorf("allow list length must not exceed %d items", MaxAllowListLength) + } + if slices.Contains(allowMsgs, AllowAllHostMsgs) && len(allowMsgs) > 1 { return fmt.Errorf("allow list must have only one element because the allow all host messages wildcard (%s) is present", AllowAllHostMsgs) } diff --git a/modules/apps/27-interchain-accounts/host/types/params_test.go b/modules/apps/27-interchain-accounts/host/types/params_test.go index 9cd7b46bc45..bc443707ba4 100644 --- a/modules/apps/27-interchain-accounts/host/types/params_test.go +++ b/modules/apps/27-interchain-accounts/host/types/params_test.go @@ -14,4 +14,5 @@ func TestValidateParams(t *testing.T) { require.Error(t, types.NewParams(true, []string{""}).Validate()) require.Error(t, types.NewParams(true, []string{" "}).Validate()) require.Error(t, types.NewParams(true, []string{"*", "/cosmos.bank.v1beta1.MsgSend"}).Validate()) + require.Error(t, types.NewParams(true, make([]string, types.MaxAllowListLength+1)).Validate()) } diff --git a/modules/core/02-client/types/params.go b/modules/core/02-client/types/params.go index da5ce32ff46..35001ea5cd9 100644 --- a/modules/core/02-client/types/params.go +++ b/modules/core/02-client/types/params.go @@ -6,6 +6,9 @@ import ( "strings" ) +// Maximum length of the allowed clients list +const MaxAllowedClientsLength = 200 + // DefaultAllowedClients are the default clients for the AllowedClients parameter. // By default it allows all client types. var DefaultAllowedClients = []string{AllowAllClients} @@ -46,6 +49,10 @@ func (p Params) IsAllowedClient(clientType string) bool { // validateClients checks that the given clients are not blank and there are no duplicates. // If AllowAllClients wildcard (*) is used, then there should no other client types in the allow list func validateClients(clients []string) error { + if len(clients) > MaxAllowedClientsLength { + return fmt.Errorf("allowed clients length must not exceed %d items", MaxAllowedClientsLength) + } + if slices.Contains(clients, AllowAllClients) && len(clients) > 1 { return fmt.Errorf("allow list must have only one element because the allow all clients wildcard (%s) is present", AllowAllClients) } diff --git a/modules/core/02-client/types/params_test.go b/modules/core/02-client/types/params_test.go index 347b913450f..7a80749b375 100644 --- a/modules/core/02-client/types/params_test.go +++ b/modules/core/02-client/types/params_test.go @@ -40,6 +40,7 @@ func TestValidateParams(t *testing.T) { {"blank client", NewParams(" "), false}, {"duplicate clients", NewParams(exported.Tendermint, exported.Tendermint), false}, {"allow all clients plus valid client", NewParams(AllowAllClients, exported.Tendermint), false}, + {"too many allowed clients", NewParams(make([]string, MaxAllowedClientsLength+1)...), false}, } for _, tc := range testCases { diff --git a/modules/core/03-connection/types/msgs.go b/modules/core/03-connection/types/msgs.go index 5b927af7347..43a45807ca6 100644 --- a/modules/core/03-connection/types/msgs.go +++ b/modules/core/03-connection/types/msgs.go @@ -129,6 +129,9 @@ func (msg MsgConnectionOpenTry) ValidateBasic() error { if len(msg.CounterpartyVersions) == 0 { return errorsmod.Wrap(ibcerrors.ErrInvalidVersion, "empty counterparty versions") } + if len(msg.CounterpartyVersions) > MaxCounterpartyVersionsLength { + return errorsmod.Wrapf(ibcerrors.ErrInvalidVersion, "counterparty versions must not exceed %d items", MaxCounterpartyVersionsLength) + } for i, version := range msg.CounterpartyVersions { if err := ValidateVersion(version); err != nil { return errorsmod.Wrapf(err, "basic validation failed on version with index %d", i) diff --git a/modules/core/03-connection/types/msgs_test.go b/modules/core/03-connection/types/msgs_test.go index 9106e3aa15f..e02b79db071 100644 --- a/modules/core/03-connection/types/msgs_test.go +++ b/modules/core/03-connection/types/msgs_test.go @@ -159,8 +159,10 @@ func (suite *MsgTestSuite) TestNewMsgConnectionOpenTry() { {"empty proofConsensus", types.NewMsgConnectionOpenTry("clienttotesta", "connectiontotest", "clienttotest", clientState, prefix, []*types.Version{ibctesting.ConnectionVersion}, 500, suite.proof, suite.proof, emptyProof, clientHeight, clientHeight, signer), false}, {"invalid consensusHeight", types.NewMsgConnectionOpenTry("clienttotesta", "connectiontotest", "clienttotest", clientState, prefix, []*types.Version{ibctesting.ConnectionVersion}, 500, suite.proof, suite.proof, suite.proof, clientHeight, clienttypes.ZeroHeight(), signer), false}, {"empty singer", types.NewMsgConnectionOpenTry("clienttotesta", "connectiontotest", "clienttotest", clientState, prefix, []*types.Version{ibctesting.ConnectionVersion}, 500, suite.proof, suite.proof, suite.proof, clientHeight, clientHeight, ""), false}, - {"success", types.NewMsgConnectionOpenTry("clienttotesta", "connectiontotest", "clienttotest", clientState, prefix, []*types.Version{ibctesting.ConnectionVersion}, 500, suite.proof, suite.proof, suite.proof, clientHeight, clientHeight, signer), true}, {"invalid version", types.NewMsgConnectionOpenTry("clienttotesta", "connectiontotest", "clienttotest", clientState, prefix, []*types.Version{{}}, 500, suite.proof, suite.proof, suite.proof, clientHeight, clientHeight, signer), false}, + {"too many counterparty versions", types.NewMsgConnectionOpenTry("clienttotesta", "connectiontotest", "clienttotest", clientState, prefix, make([]*types.Version, types.MaxCounterpartyVersionsLength+1), 500, suite.proof, suite.proof, suite.proof, clientHeight, clientHeight, signer), false}, + {"too many features in counterparty version", types.NewMsgConnectionOpenTry("clienttotesta", "connectiontotest", "clienttotest", clientState, prefix, []*types.Version{{"v1", make([]string, types.MaxFeaturesLength+1)}}, 500, suite.proof, suite.proof, suite.proof, clientHeight, clientHeight, signer), false}, + {"success", types.NewMsgConnectionOpenTry("clienttotesta", "connectiontotest", "clienttotest", clientState, prefix, []*types.Version{ibctesting.ConnectionVersion}, 500, suite.proof, suite.proof, suite.proof, clientHeight, clientHeight, signer), true}, } for _, tc := range testCases { diff --git a/modules/core/03-connection/types/version.go b/modules/core/03-connection/types/version.go index 00aadcb8682..c30c709277e 100644 --- a/modules/core/03-connection/types/version.go +++ b/modules/core/03-connection/types/version.go @@ -27,6 +27,11 @@ var ( allowNilFeatureSet = map[string]bool{ DefaultIBCVersionIdentifier: false, } + + // MaxVersionsLength is the maximum number of versions that can be supported + MaxCounterpartyVersionsLength = 100 + // MaxFeaturesLength is the maximum number of features that can be supported + MaxFeaturesLength = 100 ) // NewVersion returns a new instance of Version. @@ -56,6 +61,9 @@ func ValidateVersion(version *Version) error { if strings.TrimSpace(version.Identifier) == "" { return errorsmod.Wrap(ErrInvalidVersion, "version identifier cannot be blank") } + if len(version.Features) > MaxFeaturesLength { + return errorsmod.Wrapf(ErrInvalidVersion, "features length must not exceed %d items", MaxFeaturesLength) + } for i, feature := range version.Features { if strings.TrimSpace(feature) == "" { return errorsmod.Wrapf(ErrInvalidVersion, "feature cannot be blank, index %d", i) From edd41dab0e749ce89b2ddcb3cedabe01b3da89b1 Mon Sep 17 00:00:00 2001 From: srdtrk <59252793+srdtrk@users.noreply.github.com> Date: Wed, 8 May 2024 16:25:19 +0800 Subject: [PATCH 26/62] nit: remove needless logger definitions (#6262) Co-authored-by: Carlos Rodriguez --- .../27-interchain-accounts/controller/keeper/migrations.go | 7 +++---- modules/apps/27-interchain-accounts/host/ibc_module.go | 7 +++---- .../apps/27-interchain-accounts/host/keeper/handshake.go | 3 +-- modules/apps/transfer/ibc_module.go | 7 +++---- .../light-clients/07-tendermint/migrations/migrations.go | 3 +-- 5 files changed, 11 insertions(+), 16 deletions(-) diff --git a/modules/apps/27-interchain-accounts/controller/keeper/migrations.go b/modules/apps/27-interchain-accounts/controller/keeper/migrations.go index 77f62a73c5d..3e36f809a14 100644 --- a/modules/apps/27-interchain-accounts/controller/keeper/migrations.go +++ b/modules/apps/27-interchain-accounts/controller/keeper/migrations.go @@ -29,24 +29,23 @@ func NewMigrator(k *Keeper) Migrator { // are owned by the controller submodule and ibc. func (m Migrator) AssertChannelCapabilityMigrations(ctx sdk.Context) error { if m.keeper != nil { - logger := m.keeper.Logger(ctx) filteredChannels := m.keeper.channelKeeper.GetAllChannelsWithPortPrefix(ctx, icatypes.ControllerPortPrefix) for _, ch := range filteredChannels { name := host.ChannelCapabilityPath(ch.PortId, ch.ChannelId) capability, found := m.keeper.scopedKeeper.GetCapability(ctx, name) if !found { - logger.Error(fmt.Sprintf("failed to find capability: %s", name)) + m.keeper.Logger(ctx).Error(fmt.Sprintf("failed to find capability: %s", name)) return errorsmod.Wrapf(capabilitytypes.ErrCapabilityNotFound, "failed to find capability: %s", name) } isAuthenticated := m.keeper.scopedKeeper.AuthenticateCapability(ctx, capability, name) if !isAuthenticated { - logger.Error(fmt.Sprintf("expected capability owner: %s", controllertypes.SubModuleName)) + m.keeper.Logger(ctx).Error(fmt.Sprintf("expected capability owner: %s", controllertypes.SubModuleName)) return errorsmod.Wrapf(capabilitytypes.ErrCapabilityNotOwned, "expected capability owner: %s", controllertypes.SubModuleName) } m.keeper.SetMiddlewareEnabled(ctx, ch.PortId, ch.ConnectionHops[0]) - logger.Info("successfully migrated channel capability", "name", name) + m.keeper.Logger(ctx).Info("successfully migrated channel capability", "name", name) } } return nil diff --git a/modules/apps/27-interchain-accounts/host/ibc_module.go b/modules/apps/27-interchain-accounts/host/ibc_module.go index b5163393f67..3829a4c9acd 100644 --- a/modules/apps/27-interchain-accounts/host/ibc_module.go +++ b/modules/apps/27-interchain-accounts/host/ibc_module.go @@ -116,9 +116,8 @@ func (im IBCModule) OnRecvPacket( packet channeltypes.Packet, _ sdk.AccAddress, ) ibcexported.Acknowledgement { - logger := im.keeper.Logger(ctx) if !im.keeper.GetParams(ctx).HostEnabled { - logger.Info("host submodule is disabled") + im.keeper.Logger(ctx).Info("host submodule is disabled") keeper.EmitHostDisabledEvent(ctx, packet) return channeltypes.NewErrorAcknowledgement(types.ErrHostSubModuleDisabled) } @@ -127,9 +126,9 @@ func (im IBCModule) OnRecvPacket( ack := channeltypes.NewResultAcknowledgement(txResponse) if err != nil { ack = channeltypes.NewErrorAcknowledgement(err) - logger.Error(fmt.Sprintf("%s sequence %d", err.Error(), packet.Sequence)) + im.keeper.Logger(ctx).Error(fmt.Sprintf("%s sequence %d", err.Error(), packet.Sequence)) } else { - logger.Info("successfully handled packet", "sequence", packet.Sequence) + im.keeper.Logger(ctx).Info("successfully handled packet", "sequence", packet.Sequence) } // Emit an event indicating a successful or failed acknowledgement. diff --git a/modules/apps/27-interchain-accounts/host/keeper/handshake.go b/modules/apps/27-interchain-accounts/host/keeper/handshake.go index 2ec9dc8afbd..0613b8f32cf 100644 --- a/modules/apps/27-interchain-accounts/host/keeper/handshake.go +++ b/modules/apps/27-interchain-accounts/host/keeper/handshake.go @@ -30,7 +30,6 @@ func (k Keeper) OnChanOpenTry( counterparty channeltypes.Counterparty, counterpartyVersion string, ) (string, error) { - logger := k.Logger(ctx) if portID != icatypes.HostPortID { return "", errorsmod.Wrapf(icatypes.ErrInvalidHostPort, "expected %s, got %s", icatypes.HostPortID, portID) } @@ -43,7 +42,7 @@ func (k Keeper) OnChanOpenTry( return "", errorsmod.Wrapf(err, "failed to retrieve connection %s", connectionHops[0]) } - logger.Debug("counterparty version is invalid, proposing default metadata") + k.Logger(ctx).Debug("counterparty version is invalid, proposing default metadata") metadata = icatypes.NewDefaultMetadata(connection.Counterparty.ConnectionId, connectionHops[0]) } diff --git a/modules/apps/transfer/ibc_module.go b/modules/apps/transfer/ibc_module.go index 1424260f178..7e312b7b869 100644 --- a/modules/apps/transfer/ibc_module.go +++ b/modules/apps/transfer/ibc_module.go @@ -180,14 +180,13 @@ func (im IBCModule) OnRecvPacket( packet channeltypes.Packet, relayer sdk.AccAddress, ) ibcexported.Acknowledgement { - logger := im.keeper.Logger(ctx) ack := channeltypes.NewResultAcknowledgement([]byte{byte(1)}) var data types.FungibleTokenPacketData var ackErr error if err := json.Unmarshal(packet.GetData(), &data); err != nil { ackErr = errorsmod.Wrapf(ibcerrors.ErrInvalidType, "cannot unmarshal ICS-20 transfer packet data") - logger.Error(fmt.Sprintf("%s sequence %d", ackErr.Error(), packet.Sequence)) + im.keeper.Logger(ctx).Error(fmt.Sprintf("%s sequence %d", ackErr.Error(), packet.Sequence)) ack = channeltypes.NewErrorAcknowledgement(ackErr) } @@ -198,9 +197,9 @@ func (im IBCModule) OnRecvPacket( if err != nil { ack = channeltypes.NewErrorAcknowledgement(err) ackErr = err - logger.Error(fmt.Sprintf("%s sequence %d", ackErr.Error(), packet.Sequence)) + im.keeper.Logger(ctx).Error(fmt.Sprintf("%s sequence %d", ackErr.Error(), packet.Sequence)) } else { - logger.Info("successfully handled ICS-20 packet", "sequence", packet.Sequence) + im.keeper.Logger(ctx).Info("successfully handled ICS-20 packet", "sequence", packet.Sequence) } } diff --git a/modules/light-clients/07-tendermint/migrations/migrations.go b/modules/light-clients/07-tendermint/migrations/migrations.go index 7eb6e91b1f2..eb80c602a46 100644 --- a/modules/light-clients/07-tendermint/migrations/migrations.go +++ b/modules/light-clients/07-tendermint/migrations/migrations.go @@ -40,8 +40,7 @@ func PruneExpiredConsensusStates(ctx sdk.Context, cdc codec.BinaryCodec, clientK totalPruned += ibctm.PruneAllExpiredConsensusStates(ctx, clientStore, cdc, tmClientState) } - clientLogger := clientKeeper.Logger(ctx) - clientLogger.Info("pruned expired tendermint consensus states", "total", totalPruned) + clientKeeper.Logger(ctx).Info("pruned expired tendermint consensus states", "total", totalPruned) return totalPruned, nil } From f5a62cf37017c2f23c433d237bb21266fb04da74 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 May 2024 09:14:51 +0200 Subject: [PATCH 27/62] build(deps): Bump golangci/golangci-lint-action from 6.0.0 to 6.0.1 (#6277) Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 6.0.0 to 6.0.1. - [Release notes](https://github.com/golangci/golangci-lint-action/releases) - [Commits](https://github.com/golangci/golangci-lint-action/compare/v6.0.0...v6.0.1) --- updated-dependencies: - dependency-name: golangci/golangci-lint-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/callbacks.yml | 2 +- .github/workflows/e2emodule.yml | 2 +- .github/workflows/golangci-feature.yml | 2 +- .github/workflows/golangci.yml | 2 +- .github/workflows/wasm-client.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/callbacks.yml b/.github/workflows/callbacks.yml index 031c7cbd146..36574a9d368 100644 --- a/.github/workflows/callbacks.yml +++ b/.github/workflows/callbacks.yml @@ -16,7 +16,7 @@ jobs: with: go-version: '1.21' - uses: actions/checkout@v4 - - uses: golangci/golangci-lint-action@v6.0.0 + - uses: golangci/golangci-lint-action@v6.0.1 with: version: v1.57.2 args: --timeout 5m diff --git a/.github/workflows/e2emodule.yml b/.github/workflows/e2emodule.yml index 1c7c275c7a7..782de0bc1ab 100644 --- a/.github/workflows/e2emodule.yml +++ b/.github/workflows/e2emodule.yml @@ -14,7 +14,7 @@ jobs: with: go-version: '1.21' - uses: actions/checkout@v4 - - uses: golangci/golangci-lint-action@v6.0.0 + - uses: golangci/golangci-lint-action@v6.0.1 with: version: v1.57.2 args: --timeout 5m diff --git a/.github/workflows/golangci-feature.yml b/.github/workflows/golangci-feature.yml index edc6650f3a7..ed629b6789c 100644 --- a/.github/workflows/golangci-feature.yml +++ b/.github/workflows/golangci-feature.yml @@ -25,7 +25,7 @@ jobs: go-version: '1.21' - uses: actions/checkout@v4 - name: golangci-lint - uses: golangci/golangci-lint-action@v6.0.0 + uses: golangci/golangci-lint-action@v6.0.1 with: version: v1.57.2 args: --timeout 10m diff --git a/.github/workflows/golangci.yml b/.github/workflows/golangci.yml index 04419821bcb..fb45c2b0fd6 100644 --- a/.github/workflows/golangci.yml +++ b/.github/workflows/golangci.yml @@ -20,7 +20,7 @@ jobs: go-version: '1.21' - uses: actions/checkout@v4 - name: golangci-lint - uses: golangci/golangci-lint-action@v6.0.0 + uses: golangci/golangci-lint-action@v6.0.1 with: version: v1.57.2 args: --timeout 10m diff --git a/.github/workflows/wasm-client.yml b/.github/workflows/wasm-client.yml index a53ae22cb57..884bd4d33a7 100644 --- a/.github/workflows/wasm-client.yml +++ b/.github/workflows/wasm-client.yml @@ -16,7 +16,7 @@ jobs: with: go-version: '1.21' - uses: actions/checkout@v4 - - uses: golangci/golangci-lint-action@v6.0.0 + - uses: golangci/golangci-lint-action@v6.0.1 with: version: v1.57.2 args: --timeout 10m From af02f3bf0d172615456eaf173a79bd50d746ac06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=A7=84=EC=98=81?= <49942427+icarus012832@users.noreply.github.com> Date: Fri, 10 May 2024 16:54:37 +0900 Subject: [PATCH 28/62] chore: fix minor typos (#6285) --- modules/apps/transfer/keeper/keeper.go | 2 +- modules/apps/transfer/simulation/genesis.go | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/apps/transfer/keeper/keeper.go b/modules/apps/transfer/keeper/keeper.go index 0ec4dac6abf..6ee9ee7edfe 100644 --- a/modules/apps/transfer/keeper/keeper.go +++ b/modules/apps/transfer/keeper/keeper.go @@ -105,7 +105,7 @@ func (k Keeper) hasCapability(ctx sdk.Context, portID string) bool { return ok } -// BindPort defines a wrapper function for the ort Keeper's function in +// BindPort defines a wrapper function for the port Keeper's function in // order to expose it to module's InitGenesis function func (k Keeper) BindPort(ctx sdk.Context, portID string) error { capability := k.portKeeper.BindPort(ctx, portID) diff --git a/modules/apps/transfer/simulation/genesis.go b/modules/apps/transfer/simulation/genesis.go index fded62be9a2..6887ec48bf1 100644 --- a/modules/apps/transfer/simulation/genesis.go +++ b/modules/apps/transfer/simulation/genesis.go @@ -15,8 +15,8 @@ import ( // Simulation parameter constants const port = "port_id" -// RadomEnabled randomized send or receive enabled param with 75% prob of being true. -func RadomEnabled(r *rand.Rand) bool { +// RandomEnabled randomized send or receive enabled param with 75% prob of being true. +func RandomEnabled(r *rand.Rand) bool { return r.Int63n(101) <= 75 } @@ -31,13 +31,13 @@ func RandomizedGenState(simState *module.SimulationState) { var sendEnabled bool simState.AppParams.GetOrGenerate( string(types.KeySendEnabled), &sendEnabled, simState.Rand, - func(r *rand.Rand) { sendEnabled = RadomEnabled(r) }, + func(r *rand.Rand) { sendEnabled = RandomEnabled(r) }, ) var receiveEnabled bool simState.AppParams.GetOrGenerate( string(types.KeyReceiveEnabled), &receiveEnabled, simState.Rand, - func(r *rand.Rand) { receiveEnabled = RadomEnabled(r) }, + func(r *rand.Rand) { receiveEnabled = RandomEnabled(r) }, ) transferGenesis := types.GenesisState{ From 055351fe12610d446cac34c34b9306d30581d96c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 May 2024 10:45:37 +0200 Subject: [PATCH 29/62] build(deps): Bump cosmossdk.io/api from 0.7.4 to 0.7.5 (#6282) * build(deps): Bump cosmossdk.io/api from 0.7.4 to 0.7.5 Bumps [cosmossdk.io/api](https://github.com/cosmos/cosmos-sdk) from 0.7.4 to 0.7.5. - [Release notes](https://github.com/cosmos/cosmos-sdk/releases) - [Changelog](https://github.com/cosmos/cosmos-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/cosmos/cosmos-sdk/compare/api/v0.7.4...api/v0.7.5) --- updated-dependencies: - dependency-name: cosmossdk.io/api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * bump cosmossdk.io/api to v0.7.5 in modules --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Carlos Rodriguez --- e2e/go.mod | 2 +- e2e/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- modules/apps/callbacks/go.mod | 2 +- modules/apps/callbacks/go.sum | 4 ++-- modules/capability/go.mod | 2 +- modules/capability/go.sum | 2 ++ modules/light-clients/08-wasm/go.mod | 2 +- modules/light-clients/08-wasm/go.sum | 4 ++-- 10 files changed, 15 insertions(+), 13 deletions(-) diff --git a/e2e/go.mod b/e2e/go.mod index ee60f18d4d4..5938c61a4c4 100644 --- a/e2e/go.mod +++ b/e2e/go.mod @@ -28,7 +28,7 @@ require ( cloud.google.com/go/compute/metadata v0.2.3 // indirect cloud.google.com/go/iam v1.1.6 // indirect cloud.google.com/go/storage v1.36.0 // indirect - cosmossdk.io/api v0.7.4 // indirect + cosmossdk.io/api v0.7.5 // indirect cosmossdk.io/client/v2 v2.0.0-beta.1 // indirect cosmossdk.io/collections v0.4.0 // indirect cosmossdk.io/core v0.11.0 // indirect diff --git a/e2e/go.sum b/e2e/go.sum index fdbda98c386..60810d55a61 100644 --- a/e2e/go.sum +++ b/e2e/go.sum @@ -184,8 +184,8 @@ cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xX cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= -cosmossdk.io/api v0.7.4 h1:sPo8wKwCty1lht8kgL3J7YL1voJywP3YWuA5JKkBz30= -cosmossdk.io/api v0.7.4/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= +cosmossdk.io/api v0.7.5 h1:eMPTReoNmGUm8DeiQL9DyM8sYDjEhWzL1+nLbI9DqtQ= +cosmossdk.io/api v0.7.5/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/client/v2 v2.0.0-beta.1 h1:XkHh1lhrLYIT9zKl7cIOXUXg2hdhtjTPBUfqERNA1/Q= cosmossdk.io/client/v2 v2.0.0-beta.1/go.mod h1:JEUSu9moNZQ4kU3ir1DKD5eU4bllmAexrGWjmb9k8qU= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= diff --git a/go.mod b/go.mod index 213e9beef33..98eecc76171 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ go 1.21 module github.com/cosmos/ibc-go/v8 require ( - cosmossdk.io/api v0.7.4 + cosmossdk.io/api v0.7.5 cosmossdk.io/client/v2 v2.0.0-beta.1 cosmossdk.io/core v0.11.0 cosmossdk.io/errors v1.0.1 diff --git a/go.sum b/go.sum index ac6eaaded6f..ce10cfe9eb8 100644 --- a/go.sum +++ b/go.sum @@ -184,8 +184,8 @@ cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xX cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= -cosmossdk.io/api v0.7.4 h1:sPo8wKwCty1lht8kgL3J7YL1voJywP3YWuA5JKkBz30= -cosmossdk.io/api v0.7.4/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= +cosmossdk.io/api v0.7.5 h1:eMPTReoNmGUm8DeiQL9DyM8sYDjEhWzL1+nLbI9DqtQ= +cosmossdk.io/api v0.7.5/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/client/v2 v2.0.0-beta.1 h1:XkHh1lhrLYIT9zKl7cIOXUXg2hdhtjTPBUfqERNA1/Q= cosmossdk.io/client/v2 v2.0.0-beta.1/go.mod h1:JEUSu9moNZQ4kU3ir1DKD5eU4bllmAexrGWjmb9k8qU= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= diff --git a/modules/apps/callbacks/go.mod b/modules/apps/callbacks/go.mod index 9402fe75c6e..11a6ce7d3b7 100644 --- a/modules/apps/callbacks/go.mod +++ b/modules/apps/callbacks/go.mod @@ -9,7 +9,7 @@ replace github.com/cosmos/ibc-go/v8 => ../../../ replace github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 require ( - cosmossdk.io/api v0.7.4 + cosmossdk.io/api v0.7.5 cosmossdk.io/client/v2 v2.0.0-beta.1 cosmossdk.io/core v0.11.0 cosmossdk.io/errors v1.0.1 diff --git a/modules/apps/callbacks/go.sum b/modules/apps/callbacks/go.sum index ac6eaaded6f..ce10cfe9eb8 100644 --- a/modules/apps/callbacks/go.sum +++ b/modules/apps/callbacks/go.sum @@ -184,8 +184,8 @@ cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xX cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= -cosmossdk.io/api v0.7.4 h1:sPo8wKwCty1lht8kgL3J7YL1voJywP3YWuA5JKkBz30= -cosmossdk.io/api v0.7.4/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= +cosmossdk.io/api v0.7.5 h1:eMPTReoNmGUm8DeiQL9DyM8sYDjEhWzL1+nLbI9DqtQ= +cosmossdk.io/api v0.7.5/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/client/v2 v2.0.0-beta.1 h1:XkHh1lhrLYIT9zKl7cIOXUXg2hdhtjTPBUfqERNA1/Q= cosmossdk.io/client/v2 v2.0.0-beta.1/go.mod h1:JEUSu9moNZQ4kU3ir1DKD5eU4bllmAexrGWjmb9k8qU= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= diff --git a/modules/capability/go.mod b/modules/capability/go.mod index a1ebd56f413..a66ed1f3b01 100644 --- a/modules/capability/go.mod +++ b/modules/capability/go.mod @@ -20,7 +20,7 @@ require ( ) require ( - cosmossdk.io/api v0.7.4 // indirect + cosmossdk.io/api v0.7.5 // indirect cosmossdk.io/collections v0.4.0 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect cosmossdk.io/x/tx v0.13.2 // indirect diff --git a/modules/capability/go.sum b/modules/capability/go.sum index 5cede605910..e88d7001d27 100644 --- a/modules/capability/go.sum +++ b/modules/capability/go.sum @@ -2,6 +2,8 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cosmossdk.io/api v0.7.4 h1:sPo8wKwCty1lht8kgL3J7YL1voJywP3YWuA5JKkBz30= cosmossdk.io/api v0.7.4/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= +cosmossdk.io/api v0.7.5 h1:eMPTReoNmGUm8DeiQL9DyM8sYDjEhWzL1+nLbI9DqtQ= +cosmossdk.io/api v0.7.5/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= cosmossdk.io/core v0.11.0 h1:vtIafqUi+1ZNAE/oxLOQQ7Oek2n4S48SWLG8h/+wdbo= diff --git a/modules/light-clients/08-wasm/go.mod b/modules/light-clients/08-wasm/go.mod index 449c23f731b..7655ed57ba5 100644 --- a/modules/light-clients/08-wasm/go.mod +++ b/modules/light-clients/08-wasm/go.mod @@ -7,7 +7,7 @@ replace github.com/cosmos/ibc-go/v8 => ../../../ replace github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 require ( - cosmossdk.io/api v0.7.4 + cosmossdk.io/api v0.7.5 cosmossdk.io/client/v2 v2.0.0-beta.1 cosmossdk.io/collections v0.4.0 cosmossdk.io/core v0.11.0 diff --git a/modules/light-clients/08-wasm/go.sum b/modules/light-clients/08-wasm/go.sum index 1e3f204762a..ae2a531382f 100644 --- a/modules/light-clients/08-wasm/go.sum +++ b/modules/light-clients/08-wasm/go.sum @@ -184,8 +184,8 @@ cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xX cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= -cosmossdk.io/api v0.7.4 h1:sPo8wKwCty1lht8kgL3J7YL1voJywP3YWuA5JKkBz30= -cosmossdk.io/api v0.7.4/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= +cosmossdk.io/api v0.7.5 h1:eMPTReoNmGUm8DeiQL9DyM8sYDjEhWzL1+nLbI9DqtQ= +cosmossdk.io/api v0.7.5/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/client/v2 v2.0.0-beta.1 h1:XkHh1lhrLYIT9zKl7cIOXUXg2hdhtjTPBUfqERNA1/Q= cosmossdk.io/client/v2 v2.0.0-beta.1/go.mod h1:JEUSu9moNZQ4kU3ir1DKD5eU4bllmAexrGWjmb9k8qU= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= From 527912058257303cfe9569ef1097036b354acf5e Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Date: Fri, 10 May 2024 13:24:42 +0200 Subject: [PATCH 30/62] e2e: add compatibility tests for v7.5.x and v8.3.x (#6228) * e2e: add compatibility tests for v7.5.x and v8.3.x * add ica queries test for main * add v7.5 as version that supports unordered ICA channels * SDK supports transaction event querying since v0.50 * fix if statement * add missing tests * verifying the response of the ICA query is only possible if the chain support the --query flag * try --events flag for querying txs by events * remove unused variable * hopefully this does the trick to make the query work * add logging * remove logging --------- Co-authored-by: Damian Nolan --- .../main/ica-queries-chain-a.json | 17 ++++++++ .../main/ica-queries-chain-b.json | 17 ++++++++ .../release-v7.5.x/client-chain-a.json | 19 +++++++++ .../release-v7.5.x/connection-chain-a.json | 17 ++++++++ .../release-v7.5.x/ica-chain-a.json | 23 +++++++++++ .../release-v7.5.x/ica-chain-b.json | 23 +++++++++++ .../release-v7.5.x/ica-gov-chain-a.json | 20 ++++++++++ .../release-v7.5.x/ica-gov-chain-b.json | 20 ++++++++++ .../release-v7.5.x/ica-groups-chain-a.json | 20 ++++++++++ .../release-v7.5.x/ica-groups-chain-b.json | 20 ++++++++++ .../release-v7.5.x/ica-queries-chain-a.json | 17 ++++++++ .../release-v7.5.x/ica-queries-chain-b.json | 17 ++++++++ .../ica-unordered-channel-chain-a.json | 18 +++++++++ .../ica-unordered-channel-chain-b.json | 18 +++++++++ .../incentivized-ica-chain-a.json | 21 ++++++++++ .../incentivized-ica-chain-b.json | 21 ++++++++++ .../incentivized-transfer-chain-a.json | 27 +++++++++++++ .../incentivized-transfer-chain-b.json | 27 +++++++++++++ .../release-v7.5.x/localhost-ica-chain-a.json | 20 ++++++++++ .../localhost-transfer-chain-a.json | 19 +++++++++ .../transfer-authz-chain-a.json | 20 ++++++++++ .../transfer-authz-chain-b.json | 20 ++++++++++ .../release-v7.5.x/transfer-chain-a.json | 29 ++++++++++++++ .../release-v7.5.x/transfer-chain-b.json | 27 +++++++++++++ .../release-v8.3.x/client-chain-a.json | 21 ++++++++++ .../release-v8.3.x/connection-chain-a.json | 17 ++++++++ .../release-v8.3.x/genesis-chain-a.json | 17 ++++++++ .../release-v8.3.x/ica-chain-a.json | 23 +++++++++++ .../release-v8.3.x/ica-chain-b.json | 23 +++++++++++ .../ica-channel-upgrade-chain-a.json | 19 +++++++++ .../ica-channel-upgrade-chain-b.json | 19 +++++++++ .../release-v8.3.x/ica-gov-chain-a.json | 20 ++++++++++ .../release-v8.3.x/ica-gov-chain-b.json | 20 ++++++++++ .../release-v8.3.x/ica-groups-chain-a.json | 20 ++++++++++ .../release-v8.3.x/ica-groups-chain-b.json | 20 ++++++++++ .../release-v8.3.x/ica-queries-chain-a.json | 17 ++++++++ .../release-v8.3.x/ica-queries-chain-b.json | 17 ++++++++ .../ica-unordered-channel-chain-a.json | 18 +++++++++ .../ica-unordered-channel-chain-b.json | 18 +++++++++ .../incentivized-ica-chain-a.json | 21 ++++++++++ .../incentivized-ica-chain-b.json | 21 ++++++++++ .../incentivized-transfer-chain-a.json | 27 +++++++++++++ .../incentivized-transfer-chain-b.json | 27 +++++++++++++ .../release-v8.3.x/localhost-ica-chain-a.json | 20 ++++++++++ .../localhost-transfer-chain-a.json | 19 +++++++++ .../transfer-authz-chain-a.json | 20 ++++++++++ .../transfer-authz-chain-b.json | 20 ++++++++++ .../release-v8.3.x/transfer-chain-a.json | 29 ++++++++++++++ .../release-v8.3.x/transfer-chain-b.json | 27 +++++++++++++ .../transfer-channel-upgrade-chain-a.json | 20 ++++++++++ .../transfer-channel-upgrade-chain-b.json | 20 ++++++++++ .../unreleased/ica-queries.json | 19 +++++++++ .../e2e-compatibility-unreleased.yaml | 2 + .github/workflows/e2e-compatibility.yaml | 40 +++++++++++++++++++ e2e/tests/interchain_accounts/params_test.go | 6 ++- e2e/tests/interchain_accounts/query_test.go | 10 +++-- e2e/testsuite/sanitize/messages.go | 1 + e2e/testsuite/tx.go | 10 ++++- e2e/testvalues/values.go | 6 +++ 59 files changed, 1145 insertions(+), 6 deletions(-) create mode 100644 .github/compatibility-test-matrices/main/ica-queries-chain-a.json create mode 100644 .github/compatibility-test-matrices/main/ica-queries-chain-b.json create mode 100644 .github/compatibility-test-matrices/release-v7.5.x/client-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v7.5.x/connection-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v7.5.x/ica-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v7.5.x/ica-chain-b.json create mode 100644 .github/compatibility-test-matrices/release-v7.5.x/ica-gov-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v7.5.x/ica-gov-chain-b.json create mode 100644 .github/compatibility-test-matrices/release-v7.5.x/ica-groups-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v7.5.x/ica-groups-chain-b.json create mode 100644 .github/compatibility-test-matrices/release-v7.5.x/ica-queries-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v7.5.x/ica-queries-chain-b.json create mode 100644 .github/compatibility-test-matrices/release-v7.5.x/ica-unordered-channel-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v7.5.x/ica-unordered-channel-chain-b.json create mode 100644 .github/compatibility-test-matrices/release-v7.5.x/incentivized-ica-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v7.5.x/incentivized-ica-chain-b.json create mode 100644 .github/compatibility-test-matrices/release-v7.5.x/incentivized-transfer-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v7.5.x/incentivized-transfer-chain-b.json create mode 100644 .github/compatibility-test-matrices/release-v7.5.x/localhost-ica-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v7.5.x/localhost-transfer-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v7.5.x/transfer-authz-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v7.5.x/transfer-authz-chain-b.json create mode 100644 .github/compatibility-test-matrices/release-v7.5.x/transfer-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v7.5.x/transfer-chain-b.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/client-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/connection-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/genesis-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/ica-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/ica-chain-b.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/ica-channel-upgrade-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/ica-channel-upgrade-chain-b.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/ica-gov-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/ica-gov-chain-b.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/ica-groups-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/ica-groups-chain-b.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/ica-queries-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/ica-queries-chain-b.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/ica-unordered-channel-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/ica-unordered-channel-chain-b.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/incentivized-ica-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/incentivized-ica-chain-b.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/incentivized-transfer-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/incentivized-transfer-chain-b.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/localhost-ica-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/localhost-transfer-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/transfer-authz-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/transfer-authz-chain-b.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/transfer-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/transfer-chain-b.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/transfer-channel-upgrade-chain-a.json create mode 100644 .github/compatibility-test-matrices/release-v8.3.x/transfer-channel-upgrade-chain-b.json create mode 100644 .github/compatibility-test-matrices/unreleased/ica-queries.json diff --git a/.github/compatibility-test-matrices/main/ica-queries-chain-a.json b/.github/compatibility-test-matrices/main/ica-queries-chain-a.json new file mode 100644 index 00000000000..e76bace97b9 --- /dev/null +++ b/.github/compatibility-test-matrices/main/ica-queries-chain-a.json @@ -0,0 +1,17 @@ +{ + "chain-a": [ + "main" + ], + "chain-b": [ + "main" + ], + "entrypoint": [ + "TestInterchainAccountsQueryTestSuite" + ], + "test": [ + "TestInterchainAccountsQuery" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/main/ica-queries-chain-b.json b/.github/compatibility-test-matrices/main/ica-queries-chain-b.json new file mode 100644 index 00000000000..e76bace97b9 --- /dev/null +++ b/.github/compatibility-test-matrices/main/ica-queries-chain-b.json @@ -0,0 +1,17 @@ +{ + "chain-a": [ + "main" + ], + "chain-b": [ + "main" + ], + "entrypoint": [ + "TestInterchainAccountsQueryTestSuite" + ], + "test": [ + "TestInterchainAccountsQuery" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v7.5.x/client-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/client-chain-a.json new file mode 100644 index 00000000000..8745375ca7b --- /dev/null +++ b/.github/compatibility-test-matrices/release-v7.5.x/client-chain-a.json @@ -0,0 +1,19 @@ +{ + "chain-a": [ + "release-v7.5.x" + ], + "chain-b": [ + "release-v7.5.x" + ], + "entrypoint": [ + "TestClientTestSuite" + ], + "test": [ + "TestClientUpdateProposal_Succeeds", + "TestClient_Update_Misbehaviour", + "TestAllowedClientsParam" + ], + "relayer-type": [ + "hermes" + ] +} diff --git a/.github/compatibility-test-matrices/release-v7.5.x/connection-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/connection-chain-a.json new file mode 100644 index 00000000000..fb91c01b6ad --- /dev/null +++ b/.github/compatibility-test-matrices/release-v7.5.x/connection-chain-a.json @@ -0,0 +1,17 @@ +{ + "chain-a": [ + "release-v7.5.x" + ], + "chain-b": [ + "release-v7.5.x" + ], + "entrypoint": [ + "TestConnectionTestSuite" + ], + "test": [ + "TestMaxExpectedTimePerBlockParam" + ], + "relayer-type": [ + "hermes" + ] +} diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-chain-a.json new file mode 100644 index 00000000000..ffc2a1041a0 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-chain-a.json @@ -0,0 +1,23 @@ +{ + "chain-a": [ + "release-v7.5.x" + ], + "chain-b": [ + "v8.2.0", + "v7.4.0", + "v6.3.0", + "release-v7.5.x" + ], + "entrypoint": [ + "TestInterchainAccountsTestSuite" + ], + "test": [ + "TestMsgSendTx_SuccessfulTransfer", + "TestMsgSendTx_FailedTransfer_InsufficientFunds", + "TestMsgSendTx_SuccessfulTransfer_AfterReopeningICA", + "TestControllerEnabledParam" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-chain-b.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-chain-b.json new file mode 100644 index 00000000000..5cfdc387363 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-chain-b.json @@ -0,0 +1,23 @@ +{ + "chain-a": [ + "v8.2.0", + "v7.4.0", + "v6.3.0", + "release-v7.5.x" + ], + "chain-b": [ + "release-v7.5.x" + ], + "entrypoint": [ + "TestInterchainAccountsTestSuite" + ], + "test": [ + "TestMsgSendTx_SuccessfulTransfer", + "TestMsgSendTx_FailedTransfer_InsufficientFunds", + "TestMsgSendTx_SuccessfulTransfer_AfterReopeningICA", + "TestHostEnabledParam" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-gov-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-gov-chain-a.json new file mode 100644 index 00000000000..a91f328c512 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-gov-chain-a.json @@ -0,0 +1,20 @@ +{ + "chain-a": [ + "release-v7.5.x" + ], + "chain-b": [ + "v8.2.0", + "v7.4.0", + "v6.3.0", + "release-v7.5.x" + ], + "entrypoint": [ + "TestInterchainAccountsGovTestSuite" + ], + "test": [ + "TestInterchainAccountsGovIntegration" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-gov-chain-b.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-gov-chain-b.json new file mode 100644 index 00000000000..a33e84b35d4 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-gov-chain-b.json @@ -0,0 +1,20 @@ +{ + "chain-a": [ + "v8.2.0", + "v7.4.0", + "v6.3.0", + "release-v7.5.x" + ], + "chain-b": [ + "release-v7.5.x" + ], + "entrypoint": [ + "TestInterchainAccountsGovTestSuite" + ], + "test": [ + "TestInterchainAccountsGovIntegration" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-groups-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-groups-chain-a.json new file mode 100644 index 00000000000..036d2f653f5 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-groups-chain-a.json @@ -0,0 +1,20 @@ +{ + "chain-a": [ + "release-v7.5.x" + ], + "chain-b": [ + "v8.2.0", + "v7.4.0", + "v6.3.0", + "release-v7.5.x" + ], + "entrypoint": [ + "TestInterchainAccountsGroupsTestSuite" + ], + "test": [ + "TestInterchainAccountsGroupsIntegration" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-groups-chain-b.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-groups-chain-b.json new file mode 100644 index 00000000000..ced2c450af3 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-groups-chain-b.json @@ -0,0 +1,20 @@ +{ + "chain-a": [ + "v8.2.0", + "v7.4.0", + "v6.3.0", + "release-v7.5.x" + ], + "chain-b": [ + "release-v7.5.x" + ], + "entrypoint": [ + "TestInterchainAccountsGroupsTestSuite" + ], + "test": [ + "TestInterchainAccountsGroupsIntegration" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-queries-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-queries-chain-a.json new file mode 100644 index 00000000000..9af2187b44f --- /dev/null +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-queries-chain-a.json @@ -0,0 +1,17 @@ +{ + "chain-a": [ + "release-v7.5.x" + ], + "chain-b": [ + "release-v7.5.x" + ], + "entrypoint": [ + "TestInterchainAccountsQueryTestSuite" + ], + "test": [ + "TestInterchainAccountsQuery" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-queries-chain-b.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-queries-chain-b.json new file mode 100644 index 00000000000..9af2187b44f --- /dev/null +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-queries-chain-b.json @@ -0,0 +1,17 @@ +{ + "chain-a": [ + "release-v7.5.x" + ], + "chain-b": [ + "release-v7.5.x" + ], + "entrypoint": [ + "TestInterchainAccountsQueryTestSuite" + ], + "test": [ + "TestInterchainAccountsQuery" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-unordered-channel-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-unordered-channel-chain-a.json new file mode 100644 index 00000000000..628b48e6691 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-unordered-channel-chain-a.json @@ -0,0 +1,18 @@ +{ + "chain-a": [ + "release-v7.5.x" + ], + "chain-b": [ + "v8.2.0", + "release-v7.5.x" + ], + "entrypoint": [ + "TestInterchainAccountsTestSuite" + ], + "test": [ + "TestMsgSendTx_SuccessfulTransfer_UnorderedChannel" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-unordered-channel-chain-b.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-unordered-channel-chain-b.json new file mode 100644 index 00000000000..b9322e61db4 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-unordered-channel-chain-b.json @@ -0,0 +1,18 @@ +{ + "chain-a": [ + "v8.2.0", + "release-v7.5.x" + ], + "chain-b": [ + "release-v7.5.x" + ], + "entrypoint": [ + "TestInterchainAccountsTestSuite" + ], + "test": [ + "TestMsgSendTx_SuccessfulTransfer_UnorderedChannel" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v7.5.x/incentivized-ica-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/incentivized-ica-chain-a.json new file mode 100644 index 00000000000..0c765b309f5 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v7.5.x/incentivized-ica-chain-a.json @@ -0,0 +1,21 @@ +{ + "chain-a": [ + "release-v7.5.x" + ], + "chain-b": [ + "v8.2.0", + "v7.4.0", + "v6.3.0", + "release-v7.5.x" + ], + "entrypoint": [ + "TestIncentivizedInterchainAccountsTestSuite" + ], + "test": [ + "TestMsgSendTx_SuccessfulBankSend_Incentivized", + "TestMsgSendTx_FailedBankSend_Incentivized" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v7.5.x/incentivized-ica-chain-b.json b/.github/compatibility-test-matrices/release-v7.5.x/incentivized-ica-chain-b.json new file mode 100644 index 00000000000..472a1609d9a --- /dev/null +++ b/.github/compatibility-test-matrices/release-v7.5.x/incentivized-ica-chain-b.json @@ -0,0 +1,21 @@ +{ + "chain-a": [ + "v8.2.0", + "v7.4.0", + "v6.3.0", + "release-v7.5.x" + ], + "chain-b": [ + "release-v7.5.x" + ], + "entrypoint": [ + "TestIncentivizedInterchainAccountsTestSuite" + ], + "test": [ + "TestMsgSendTx_SuccessfulBankSend_Incentivized", + "TestMsgSendTx_FailedBankSend_Incentivized" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v7.5.x/incentivized-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/incentivized-transfer-chain-a.json new file mode 100644 index 00000000000..6ccbdd6aaf1 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v7.5.x/incentivized-transfer-chain-a.json @@ -0,0 +1,27 @@ +{ + "chain-a": [ + "release-v7.5.x" + ], + "chain-b": [ + "v8.2.0", + "v7.4.0", + "v6.3.0", + "v5.4.0", + "v4.6.0", + "release-v7.5.x" + ], + "entrypoint": [ + "TestIncentivizedTransferTestSuite" + ], + "test": [ + "TestMsgPayPacketFee_AsyncSingleSender_Succeeds", + "TestMsgPayPacketFee_InvalidReceiverAccount", + "TestMultiMsg_MsgPayPacketFeeSingleSender", + "TestMsgPayPacketFee_SingleSender_TimesOut", + "TestPayPacketFeeAsync_SingleSender_NoCounterPartyAddress", + "TestMsgPayPacketFee_AsyncMultipleSenders_Succeeds" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v7.5.x/incentivized-transfer-chain-b.json b/.github/compatibility-test-matrices/release-v7.5.x/incentivized-transfer-chain-b.json new file mode 100644 index 00000000000..06ef1fc827e --- /dev/null +++ b/.github/compatibility-test-matrices/release-v7.5.x/incentivized-transfer-chain-b.json @@ -0,0 +1,27 @@ +{ + "chain-a": [ + "v8.2.0", + "v7.4.0", + "v6.3.0", + "v5.4.0", + "v4.6.0", + "release-v7.5.x" + ], + "chain-b": [ + "release-v7.5.x" + ], + "entrypoint": [ + "TestIncentivizedTransferTestSuite" + ], + "test": [ + "TestMsgPayPacketFee_AsyncSingleSender_Succeeds", + "TestMsgPayPacketFee_InvalidReceiverAccount", + "TestMultiMsg_MsgPayPacketFeeSingleSender", + "TestMsgPayPacketFee_SingleSender_TimesOut", + "TestPayPacketFeeAsync_SingleSender_NoCounterPartyAddress", + "TestMsgPayPacketFee_AsyncMultipleSenders_Succeeds" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v7.5.x/localhost-ica-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/localhost-ica-chain-a.json new file mode 100644 index 00000000000..a6afa1a509e --- /dev/null +++ b/.github/compatibility-test-matrices/release-v7.5.x/localhost-ica-chain-a.json @@ -0,0 +1,20 @@ +{ + "chain-a": [ + "release-v7.5.x" + ], + "chain-b": [ + "v8.2.0", + "v7.4.0", + "release-v7.5.x" + ], + "entrypoint": [ + "LocalhostInterchainAccountsTestSuite" + ], + "test": [ + "TestInterchainAccounts_Localhost", + "TestInterchainAccounts_ReopenChannel_Localhost" + ], + "relayer-type": [ + "hermes" + ] +} diff --git a/.github/compatibility-test-matrices/release-v7.5.x/localhost-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/localhost-transfer-chain-a.json new file mode 100644 index 00000000000..217674086a0 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v7.5.x/localhost-transfer-chain-a.json @@ -0,0 +1,19 @@ +{ + "chain-a": [ + "release-v7.5.x" + ], + "chain-b": [ + "v8.2.0", + "v7.4.0", + "release-v7.5.x" + ], + "entrypoint": [ + "LocalhostTransferTestSuite" + ], + "test": [ + "TestMsgTransfer_Localhost" + ], + "relayer-type": [ + "hermes" + ] +} diff --git a/.github/compatibility-test-matrices/release-v7.5.x/transfer-authz-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/transfer-authz-chain-a.json new file mode 100644 index 00000000000..6800191a3e1 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v7.5.x/transfer-authz-chain-a.json @@ -0,0 +1,20 @@ +{ + "chain-a": [ + "release-v7.5.x" + ], + "chain-b": [ + "v8.2.0", + "v7.4.0", + "release-v7.5.x" + ], + "entrypoint": [ + "TestAuthzTransferTestSuite" + ], + "test": [ + "TestAuthz_MsgTransfer_Succeeds", + "TestAuthz_InvalidTransferAuthorizations" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v7.5.x/transfer-authz-chain-b.json b/.github/compatibility-test-matrices/release-v7.5.x/transfer-authz-chain-b.json new file mode 100644 index 00000000000..2f9ac3f26c0 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v7.5.x/transfer-authz-chain-b.json @@ -0,0 +1,20 @@ +{ + "chain-a": [ + "v8.2.0", + "v7.4.0", + "release-v7.5.x" + ], + "chain-b": [ + "release-v7.5.x" + ], + "entrypoint": [ + "TestAuthzTransferTestSuite" + ], + "test": [ + "TestAuthz_MsgTransfer_Succeeds", + "TestAuthz_InvalidTransferAuthorizations" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v7.5.x/transfer-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/transfer-chain-a.json new file mode 100644 index 00000000000..7fba4b4c556 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v7.5.x/transfer-chain-a.json @@ -0,0 +1,29 @@ +{ + "chain-a": [ + "release-v7.5.x" + ], + "chain-b": [ + "v8.2.0", + "v7.4.0", + "v6.3.0", + "v5.4.0", + "v4.6.0", + "v3.4.0", + "v2.5.0", + "release-v7.5.x" + ], + "entrypoint": [ + "TestTransferTestSuite" + ], + "test": [ + "TestMsgTransfer_Succeeds_Nonincentivized", + "TestMsgTransfer_Fails_InvalidAddress", + "TestMsgTransfer_Timeout_Nonincentivized", + "TestMsgTransfer_WithMemo", + "TestSendEnabledParam", + "TestReceiveEnabledParam" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v7.5.x/transfer-chain-b.json b/.github/compatibility-test-matrices/release-v7.5.x/transfer-chain-b.json new file mode 100644 index 00000000000..94745e57039 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v7.5.x/transfer-chain-b.json @@ -0,0 +1,27 @@ +{ + "chain-a": [ + "v8.2.0", + "v7.4.0", + "v6.3.0", + "v5.4.0", + "v4.6.0", + "v3.4.0", + "v2.5.0", + "release-v7.5.x" + ], + "chain-b": [ + "release-v7.5.x" + ], + "entrypoint": [ + "TestTransferTestSuite" + ], + "test": [ + "TestMsgTransfer_Succeeds_Nonincentivized", + "TestMsgTransfer_Fails_InvalidAddress", + "TestMsgTransfer_Timeout_Nonincentivized", + "TestMsgTransfer_WithMemo" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.3.x/client-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/client-chain-a.json new file mode 100644 index 00000000000..084d1599798 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/client-chain-a.json @@ -0,0 +1,21 @@ +{ + "chain-a": [ + "release-v8.3.x" + ], + "chain-b": [ + "release-v8.3.x" + ], + "entrypoint": [ + "TestClientTestSuite" + ], + "test": [ + "TestClientUpdateProposal_Succeeds", + "TestRecoverClient_Succeeds", + "TestScheduleIBCUpgrade_Succeeds", + "TestClient_Update_Misbehaviour", + "TestAllowedClientsParam" + ], + "relayer-type": [ + "hermes" + ] +} diff --git a/.github/compatibility-test-matrices/release-v8.3.x/connection-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/connection-chain-a.json new file mode 100644 index 00000000000..db5f790e539 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/connection-chain-a.json @@ -0,0 +1,17 @@ +{ + "chain-a": [ + "release-v8.3.x" + ], + "chain-b": [ + "release-v8.3.x" + ], + "entrypoint": [ + "TestConnectionTestSuite" + ], + "test": [ + "TestMaxExpectedTimePerBlockParam" + ], + "relayer-type": [ + "hermes" + ] +} diff --git a/.github/compatibility-test-matrices/release-v8.3.x/genesis-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/genesis-chain-a.json new file mode 100644 index 00000000000..01a2728188f --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/genesis-chain-a.json @@ -0,0 +1,17 @@ +{ + "chain-a": [ + "release-v8.3.x" + ], + "chain-b": [ + "release-v8.3.x" + ], + "entrypoint": [ + "TestGenesisTestSuite" + ], + "test": [ + "TestIBCGenesis" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-chain-a.json new file mode 100644 index 00000000000..b5e97677765 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-chain-a.json @@ -0,0 +1,23 @@ +{ + "chain-a": [ + "release-v8.3.x" + ], + "chain-b": [ + "v8.2.0", + "v7.4.0", + "v6.3.0", + "release-v8.3.x" + ], + "entrypoint": [ + "TestInterchainAccountsTestSuite" + ], + "test": [ + "TestMsgSendTx_SuccessfulTransfer", + "TestMsgSendTx_FailedTransfer_InsufficientFunds", + "TestMsgSendTx_SuccessfulTransfer_AfterReopeningICA", + "TestControllerEnabledParam" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-chain-b.json new file mode 100644 index 00000000000..75dc442cdc3 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-chain-b.json @@ -0,0 +1,23 @@ +{ + "chain-a": [ + "v8.2.0", + "v7.4.0", + "v6.3.0", + "release-v8.3.x" + ], + "chain-b": [ + "release-v8.3.x" + ], + "entrypoint": [ + "TestInterchainAccountsTestSuite" + ], + "test": [ + "TestMsgSendTx_SuccessfulTransfer", + "TestMsgSendTx_FailedTransfer_InsufficientFunds", + "TestMsgSendTx_SuccessfulTransfer_AfterReopeningICA", + "TestHostEnabledParam" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-channel-upgrade-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-channel-upgrade-chain-a.json new file mode 100644 index 00000000000..4b1912c32a4 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-channel-upgrade-chain-a.json @@ -0,0 +1,19 @@ +{ + "chain-a": [ + "release-v8.3.x" + ], + "chain-b": [ + "v8.2.0", + "release-v8.3.x" + ], + "entrypoint": [ + "TestInterchainAccountsChannelUpgradesTestSuite" + ], + "test": [ + "TestMsgSendTx_SuccessfulTransfer_AfterUpgradingOrdertoUnordered", + "TestChannelUpgrade_ICAChannelClosesAfterTimeout_Succeeds" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-channel-upgrade-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-channel-upgrade-chain-b.json new file mode 100644 index 00000000000..5a0227ff746 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-channel-upgrade-chain-b.json @@ -0,0 +1,19 @@ +{ + "chain-a": [ + "v8.2.0", + "release-v8.3.x" + ], + "chain-b": [ + "release-v8.3.x" + ], + "entrypoint": [ + "TestInterchainAccountsChannelUpgradesTestSuite" + ], + "test": [ + "TestMsgSendTx_SuccessfulTransfer_AfterUpgradingOrdertoUnordered", + "TestChannelUpgrade_ICAChannelClosesAfterTimeout_Succeeds" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-gov-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-gov-chain-a.json new file mode 100644 index 00000000000..175600580be --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-gov-chain-a.json @@ -0,0 +1,20 @@ +{ + "chain-a": [ + "release-v8.3.x" + ], + "chain-b": [ + "v8.2.0", + "v7.4.0", + "v6.3.0", + "release-v8.3.x" + ], + "entrypoint": [ + "TestInterchainAccountsGovTestSuite" + ], + "test": [ + "TestInterchainAccountsGovIntegration" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-gov-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-gov-chain-b.json new file mode 100644 index 00000000000..13993d1f0c9 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-gov-chain-b.json @@ -0,0 +1,20 @@ +{ + "chain-a": [ + "v8.2.0", + "v7.4.0", + "v6.3.0", + "release-v8.3.x" + ], + "chain-b": [ + "release-v8.3.x" + ], + "entrypoint": [ + "TestInterchainAccountsGovTestSuite" + ], + "test": [ + "TestInterchainAccountsGovIntegration" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-groups-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-groups-chain-a.json new file mode 100644 index 00000000000..469225a6e6d --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-groups-chain-a.json @@ -0,0 +1,20 @@ +{ + "chain-a": [ + "release-v8.3.x" + ], + "chain-b": [ + "v8.2.0", + "v7.4.0", + "v6.3.0", + "release-v8.3.x" + ], + "entrypoint": [ + "TestInterchainAccountsGroupsTestSuite" + ], + "test": [ + "TestInterchainAccountsGroupsIntegration" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-groups-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-groups-chain-b.json new file mode 100644 index 00000000000..6cd4117a25f --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-groups-chain-b.json @@ -0,0 +1,20 @@ +{ + "chain-a": [ + "v8.2.0", + "v7.4.0", + "v6.3.0", + "release-v8.3.x" + ], + "chain-b": [ + "release-v8.3.x" + ], + "entrypoint": [ + "TestInterchainAccountsGroupsTestSuite" + ], + "test": [ + "TestInterchainAccountsGroupsIntegration" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-queries-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-queries-chain-a.json new file mode 100644 index 00000000000..adef0e27686 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-queries-chain-a.json @@ -0,0 +1,17 @@ +{ + "chain-a": [ + "release-v8.3.x" + ], + "chain-b": [ + "release-v8.3.x" + ], + "entrypoint": [ + "TestInterchainAccountsQueryTestSuite" + ], + "test": [ + "TestInterchainAccountsQuery" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-queries-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-queries-chain-b.json new file mode 100644 index 00000000000..adef0e27686 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-queries-chain-b.json @@ -0,0 +1,17 @@ +{ + "chain-a": [ + "release-v8.3.x" + ], + "chain-b": [ + "release-v8.3.x" + ], + "entrypoint": [ + "TestInterchainAccountsQueryTestSuite" + ], + "test": [ + "TestInterchainAccountsQuery" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-unordered-channel-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-unordered-channel-chain-a.json new file mode 100644 index 00000000000..6b40e20e343 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-unordered-channel-chain-a.json @@ -0,0 +1,18 @@ +{ + "chain-a": [ + "release-v8.3.x" + ], + "chain-b": [ + "v8.2.0", + "release-v8.3.x" + ], + "entrypoint": [ + "TestInterchainAccountsTestSuite" + ], + "test": [ + "TestMsgSendTx_SuccessfulTransfer_UnorderedChannel" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-unordered-channel-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-unordered-channel-chain-b.json new file mode 100644 index 00000000000..b49a219d7cf --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-unordered-channel-chain-b.json @@ -0,0 +1,18 @@ +{ + "chain-a": [ + "v8.2.0", + "release-v8.3.x" + ], + "chain-b": [ + "release-v8.3.x" + ], + "entrypoint": [ + "TestInterchainAccountsTestSuite" + ], + "test": [ + "TestMsgSendTx_SuccessfulTransfer_UnorderedChannel" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.3.x/incentivized-ica-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/incentivized-ica-chain-a.json new file mode 100644 index 00000000000..9e879a3e58c --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/incentivized-ica-chain-a.json @@ -0,0 +1,21 @@ +{ + "chain-a": [ + "release-v8.3.x" + ], + "chain-b": [ + "v8.2.0", + "v7.4.0", + "v6.3.0", + "release-v8.3.x" + ], + "entrypoint": [ + "TestIncentivizedInterchainAccountsTestSuite" + ], + "test": [ + "TestMsgSendTx_SuccessfulBankSend_Incentivized", + "TestMsgSendTx_FailedBankSend_Incentivized" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.3.x/incentivized-ica-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/incentivized-ica-chain-b.json new file mode 100644 index 00000000000..0899cdd4689 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/incentivized-ica-chain-b.json @@ -0,0 +1,21 @@ +{ + "chain-a": [ + "v8.2.0", + "v7.4.0", + "v6.3.0", + "release-v8.3.x" + ], + "chain-b": [ + "release-v8.3.x" + ], + "entrypoint": [ + "TestIncentivizedInterchainAccountsTestSuite" + ], + "test": [ + "TestMsgSendTx_SuccessfulBankSend_Incentivized", + "TestMsgSendTx_FailedBankSend_Incentivized" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.3.x/incentivized-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/incentivized-transfer-chain-a.json new file mode 100644 index 00000000000..846db8626cf --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/incentivized-transfer-chain-a.json @@ -0,0 +1,27 @@ +{ + "chain-a": [ + "release-v8.3.x" + ], + "chain-b": [ + "v8.2.0", + "v7.4.0", + "v6.3.0", + "v5.4.0", + "v4.6.0", + "release-v8.3.x" + ], + "entrypoint": [ + "TestIncentivizedTransferTestSuite" + ], + "test": [ + "TestMsgPayPacketFee_AsyncSingleSender_Succeeds", + "TestMsgPayPacketFee_InvalidReceiverAccount", + "TestMultiMsg_MsgPayPacketFeeSingleSender", + "TestMsgPayPacketFee_SingleSender_TimesOut", + "TestPayPacketFeeAsync_SingleSender_NoCounterPartyAddress", + "TestMsgPayPacketFee_AsyncMultipleSenders_Succeeds" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.3.x/incentivized-transfer-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/incentivized-transfer-chain-b.json new file mode 100644 index 00000000000..7b986b33b65 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/incentivized-transfer-chain-b.json @@ -0,0 +1,27 @@ +{ + "chain-a": [ + "v8.2.0", + "v7.4.0", + "v6.3.0", + "v5.4.0", + "v4.6.0", + "release-v8.3.x" + ], + "chain-b": [ + "release-v8.3.x" + ], + "entrypoint": [ + "TestIncentivizedTransferTestSuite" + ], + "test": [ + "TestMsgPayPacketFee_AsyncSingleSender_Succeeds", + "TestMsgPayPacketFee_InvalidReceiverAccount", + "TestMultiMsg_MsgPayPacketFeeSingleSender", + "TestMsgPayPacketFee_SingleSender_TimesOut", + "TestPayPacketFeeAsync_SingleSender_NoCounterPartyAddress", + "TestMsgPayPacketFee_AsyncMultipleSenders_Succeeds" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.3.x/localhost-ica-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/localhost-ica-chain-a.json new file mode 100644 index 00000000000..76f7c5ecaa4 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/localhost-ica-chain-a.json @@ -0,0 +1,20 @@ +{ + "chain-a": [ + "release-v8.3.x" + ], + "chain-b": [ + "v8.2.0", + "v7.4.0", + "release-v8.3.x" + ], + "entrypoint": [ + "LocalhostInterchainAccountsTestSuite" + ], + "test": [ + "TestInterchainAccounts_Localhost", + "TestInterchainAccounts_ReopenChannel_Localhost" + ], + "relayer-type": [ + "hermes" + ] +} diff --git a/.github/compatibility-test-matrices/release-v8.3.x/localhost-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/localhost-transfer-chain-a.json new file mode 100644 index 00000000000..ceb7c268765 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/localhost-transfer-chain-a.json @@ -0,0 +1,19 @@ +{ + "chain-a": [ + "release-v8.3.x" + ], + "chain-b": [ + "v8.2.0", + "v7.4.0", + "release-v8.3.x" + ], + "entrypoint": [ + "LocalhostTransferTestSuite" + ], + "test": [ + "TestMsgTransfer_Localhost" + ], + "relayer-type": [ + "hermes" + ] +} diff --git a/.github/compatibility-test-matrices/release-v8.3.x/transfer-authz-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/transfer-authz-chain-a.json new file mode 100644 index 00000000000..23e1d1bd9bb --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/transfer-authz-chain-a.json @@ -0,0 +1,20 @@ +{ + "chain-a": [ + "release-v8.3.x" + ], + "chain-b": [ + "v8.2.0", + "v7.4.0", + "release-v8.3.x" + ], + "entrypoint": [ + "TestAuthzTransferTestSuite" + ], + "test": [ + "TestAuthz_MsgTransfer_Succeeds", + "TestAuthz_InvalidTransferAuthorizations" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.3.x/transfer-authz-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/transfer-authz-chain-b.json new file mode 100644 index 00000000000..479f5cb4a17 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/transfer-authz-chain-b.json @@ -0,0 +1,20 @@ +{ + "chain-a": [ + "v8.2.0", + "v7.4.0", + "release-v8.3.x" + ], + "chain-b": [ + "release-v8.3.x" + ], + "entrypoint": [ + "TestAuthzTransferTestSuite" + ], + "test": [ + "TestAuthz_MsgTransfer_Succeeds", + "TestAuthz_InvalidTransferAuthorizations" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.3.x/transfer-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/transfer-chain-a.json new file mode 100644 index 00000000000..93c5e0e013c --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/transfer-chain-a.json @@ -0,0 +1,29 @@ +{ + "chain-a": [ + "release-v8.3.x" + ], + "chain-b": [ + "v8.2.0", + "v7.4.0", + "v6.3.0", + "v5.4.0", + "v4.6.0", + "v3.4.0", + "v2.5.0", + "release-v8.3.x" + ], + "entrypoint": [ + "TestTransferTestSuite" + ], + "test": [ + "TestMsgTransfer_Succeeds_Nonincentivized", + "TestMsgTransfer_Fails_InvalidAddress", + "TestMsgTransfer_Timeout_Nonincentivized", + "TestMsgTransfer_WithMemo", + "TestSendEnabledParam", + "TestReceiveEnabledParam" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.3.x/transfer-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/transfer-chain-b.json new file mode 100644 index 00000000000..197e9127eaa --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/transfer-chain-b.json @@ -0,0 +1,27 @@ +{ + "chain-a": [ + "v8.2.0", + "v7.4.0", + "v6.3.0", + "v5.4.0", + "v4.6.0", + "v3.4.0", + "v2.5.0", + "release-v8.3.x" + ], + "chain-b": [ + "release-v8.3.x" + ], + "entrypoint": [ + "TestTransferTestSuite" + ], + "test": [ + "TestMsgTransfer_Succeeds_Nonincentivized", + "TestMsgTransfer_Fails_InvalidAddress", + "TestMsgTransfer_Timeout_Nonincentivized", + "TestMsgTransfer_WithMemo" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.3.x/transfer-channel-upgrade-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/transfer-channel-upgrade-chain-a.json new file mode 100644 index 00000000000..8c1f0d0b1fe --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/transfer-channel-upgrade-chain-a.json @@ -0,0 +1,20 @@ +{ + "chain-a": [ + "release-v8.3.x" + ], + "chain-b": [ + "v8.2.0", + "release-v8.3.x" + ], + "entrypoint": [ + "TestTransferChannelUpgradesTestSuite" + ], + "test": [ + "TestChannelUpgrade_WithFeeMiddleware_Succeeds", + "TestChannelUpgrade_WithFeeMiddleware_CrossingHello_Succeeds", + "TestChannelUpgrade_WithFeeMiddleware_FailsWithTimeoutOnAck" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.3.x/transfer-channel-upgrade-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/transfer-channel-upgrade-chain-b.json new file mode 100644 index 00000000000..8e98221cfe8 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v8.3.x/transfer-channel-upgrade-chain-b.json @@ -0,0 +1,20 @@ +{ + "chain-a": [ + "v8.2.0", + "release-v8.3.x" + ], + "chain-b": [ + "release-v8.3.x" + ], + "entrypoint": [ + "TestTransferChannelUpgradesTestSuite" + ], + "test": [ + "TestChannelUpgrade_WithFeeMiddleware_Succeeds", + "TestChannelUpgrade_WithFeeMiddleware_CrossingHello_Succeeds", + "TestChannelUpgrade_WithFeeMiddleware_FailsWithTimeoutOnAck" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/unreleased/ica-queries.json b/.github/compatibility-test-matrices/unreleased/ica-queries.json new file mode 100644 index 00000000000..cf6d56c2b29 --- /dev/null +++ b/.github/compatibility-test-matrices/unreleased/ica-queries.json @@ -0,0 +1,19 @@ +{ + "chain-a": [ + "release-v7.5.x", + "release-v8.3.x" + ], + "chain-b": [ + "release-v7.5.x", + "release-v8.3.x" + ], + "entrypoint": [ + "TestInterchainAccountsQueryTestSuite" + ], + "test": [ + "TestInterchainAccountsQuery" + ], + "relayer-type": [ + "hermes" + ] +} \ No newline at end of file diff --git a/.github/workflows/e2e-compatibility-unreleased.yaml b/.github/workflows/e2e-compatibility-unreleased.yaml index 5c9fc58e628..7fb2ea75e93 100644 --- a/.github/workflows/e2e-compatibility-unreleased.yaml +++ b/.github/workflows/e2e-compatibility-unreleased.yaml @@ -16,7 +16,9 @@ jobs: - release/v5.4.x - release/v6.3.x - release/v7.4.x + - release/v7.5.x - release/v8.2.x + - release/v8.3.x steps: - uses: actions/checkout@v4 with: diff --git a/.github/workflows/e2e-compatibility.yaml b/.github/workflows/e2e-compatibility.yaml index a977aeddd61..7efb9cb1399 100644 --- a/.github/workflows/e2e-compatibility.yaml +++ b/.github/workflows/e2e-compatibility.yaml @@ -8,7 +8,9 @@ on: type: choice options: - release/v7.4.x + - release/v7.5.x - release/v8.2.x + - release/v8.3.x - main ibc-go-version: description: 'The version of ibc-go that is going to be released' @@ -42,7 +44,9 @@ jobs: matrix: release-branch: - release/v7.4.x + - release/v7.5.x - release/v8.2.x + - release/v8.3.x - main steps: - uses: actions/checkout@v4 @@ -213,6 +217,42 @@ jobs: test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" test-suite: "ica-gov-chain-b" + ica-queries-chain-a: + needs: + - build-release-images + - determine-test-directory + uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml + with: + test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" + test-suite: "ica-queries-chain-a" + + ica-queries-chain-b: + needs: + - build-release-images + - determine-test-directory + uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml + with: + test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" + test-suite: "ica-queries-chain-b" + + ica-unordered-channel-chain-a: + needs: + - build-release-images + - determine-test-directory + uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml + with: + test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" + test-suite: "ica-unordered-channel-chain-a" + + ica-unordered-channel-chain-b: + needs: + - build-release-images + - determine-test-directory + uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml + with: + test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" + test-suite: "ica-unordered-channel-chain-b" + localhost-transfer-chain-a: needs: - build-release-images diff --git a/e2e/tests/interchain_accounts/params_test.go b/e2e/tests/interchain_accounts/params_test.go index 3165caa143f..d0e37696fae 100644 --- a/e2e/tests/interchain_accounts/params_test.go +++ b/e2e/tests/interchain_accounts/params_test.go @@ -250,7 +250,11 @@ func (s *InterchainAccountsParamsTestSuite) TestHostEnabledParam() { }) t.Run("verify acknowledgement error in ack transaction", func(t *testing.T) { - txSearchRes, err := s.QueryTxsByEvents(ctx, chainB, 1, 1, "message.action='/ibc.core.channel.v1.MsgRecvPacket'", "") + cmd := "message.action=/ibc.core.channel.v1.MsgRecvPacket" + if testvalues.TransactionEventQueryFeatureReleases.IsSupported(chainBVersion) { + cmd = "message.action='/ibc.core.channel.v1.MsgRecvPacket'" + } + txSearchRes, err := s.QueryTxsByEvents(ctx, chainB, 1, 1, cmd, "") s.Require().NoError(err) s.Require().Len(txSearchRes.Txs, 1) diff --git a/e2e/tests/interchain_accounts/query_test.go b/e2e/tests/interchain_accounts/query_test.go index 2b735bb94a3..cfacb0a71f8 100644 --- a/e2e/tests/interchain_accounts/query_test.go +++ b/e2e/tests/interchain_accounts/query_test.go @@ -42,6 +42,7 @@ func (s *InterchainAccountsQueryTestSuite) TestInterchainAccountsQuery() { // channel-0 is a transfer channel but it will not be used in this test case relayer, _ := s.SetupChainsRelayerAndChannel(ctx, nil) chainA, chainB := s.GetChains() + chainBVersion := chainB.Config().Images[0].Version // setup 2 accounts: controller account on chain A, a second chain B account. // host account will be created when the ICA is registered @@ -111,10 +112,11 @@ func (s *InterchainAccountsQueryTestSuite) TestInterchainAccountsQuery() { ack := &channeltypes.Acknowledgement_Result{} t.Run("retrieve acknowledgement", func(t *testing.T) { - txSearchRes, err := s.QueryTxsByEvents( - ctx, chainB, 1, 1, - "message.action='/ibc.core.channel.v1.MsgRecvPacket'", "", - ) + cmd := "message.action=/ibc.core.channel.v1.MsgRecvPacket" + if testvalues.TransactionEventQueryFeatureReleases.IsSupported(chainBVersion) { + cmd = "message.action='/ibc.core.channel.v1.MsgRecvPacket'" + } + txSearchRes, err := s.QueryTxsByEvents(ctx, chainB, 1, 1, cmd, "") s.Require().NoError(err) s.Require().Len(txSearchRes.Txs, 1) diff --git a/e2e/testsuite/sanitize/messages.go b/e2e/testsuite/sanitize/messages.go index 55f3128c648..1ffb69a7f5c 100644 --- a/e2e/testsuite/sanitize/messages.go +++ b/e2e/testsuite/sanitize/messages.go @@ -23,6 +23,7 @@ var ( icaUnorderedChannelFeatureReleases = semverutil.FeatureReleases{ MajorVersion: "v9", MinorVersions: []string{ + "v7.5", "v8.1", }, } diff --git a/e2e/testsuite/tx.go b/e2e/testsuite/tx.go index 0f6021cee36..02d861dc45a 100644 --- a/e2e/testsuite/tx.go +++ b/e2e/testsuite/tx.go @@ -327,7 +327,15 @@ func (*E2ETestSuite) QueryTxsByEvents( return nil, fmt.Errorf("QueryTxsByEvents must be passed a cosmos.CosmosChain") } - cmd := []string{"txs", "--query", queryReq} + cmd := []string{"txs"} + + chainVersion := chain.Config().Images[0].Version + if testvalues.TransactionEventQueryFeatureReleases.IsSupported(chainVersion) { + cmd = append(cmd, "--query", queryReq) + } else { + cmd = append(cmd, "--events", queryReq) + } + if orderBy != "" { cmd = append(cmd, "--order_by", orderBy) } diff --git a/e2e/testvalues/values.go b/e2e/testvalues/values.go index b6f750ef7f7..01dae17234c 100644 --- a/e2e/testvalues/values.go +++ b/e2e/testvalues/values.go @@ -120,3 +120,9 @@ var CapitalEfficientFeeEscrowFeatureReleases = semverutil.FeatureReleases{ "v8.1", }, } + +// TransactionEventQueryFeatureReleases represents the releases the support for --query flag +// in "query txs" for searching transactions that match exact events (since Cosmos SDK v0.50) was released in. +var TransactionEventQueryFeatureReleases = semverutil.FeatureReleases{ + MajorVersion: "v8", +} From 0a22b7a2fd8839efb6eeed8680a4d23e183503ed Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Date: Fri, 10 May 2024 14:33:11 +0200 Subject: [PATCH 31/62] imp: allow memo strings instead of keys for transfer authorizations (#6268) * imp: allow memo strings instead of keys for transfer authorizations * add changelog * handle error from compact * return error * improve test * not enforce that memo strings of allowed packet data must be JSON-encoded strings * use slices contains to check if memo is allowed * Update modules/apps/transfer/types/transfer_authorization.go Co-authored-by: srdtrk <59252793+srdtrk@users.noreply.github.com> * Update modules/apps/transfer/types/transfer_authorization.go Co-authored-by: srdtrk <59252793+srdtrk@users.noreply.github.com> * lint --------- Co-authored-by: srdtrk <59252793+srdtrk@users.noreply.github.com> --- CHANGELOG.md | 1 + .../02-apps/01-transfer/08-authorizations.md | 7 ++-- modules/apps/transfer/types/authz.pb.go | 4 +- modules/apps/transfer/types/keys.go | 2 +- .../transfer/types/transfer_authorization.go | 37 +++++-------------- .../types/transfer_authorization_test.go | 28 ++++++++++---- .../ibc/applications/transfer/v1/authz.proto | 4 +- 7 files changed, 39 insertions(+), 44 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ddd5a2a6210..f464e3a783a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -60,6 +60,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (apps/27-interchain-accounts) [\#5533](https://github.com/cosmos/ibc-go/pull/5533) ICA host sets the host connection ID on `OnChanOpenTry`, so that ICA controller implementations are not obliged to set the value on `OnChanOpenInit` if they are not able. * (core/02-client, core/03-connection, apps/27-interchain-accounts) [\#6256](https://github.com/cosmos/ibc-go/pull/6256) Add length checking of array fields in messages. * (apps/27-interchain-accounts, apps/tranfer, apps/29-fee) [\#6253](https://github.com/cosmos/ibc-go/pull/6253) Allow channel handshake to succeed if fee middleware is wired up on one side, but not the other. +* (apps/transfer) [\#6268](https://github.com/cosmos/ibc-go/pull/6268) Use memo strings instead of JSON keys in `AllowedPacketData` of transfer authorization. ### Features diff --git a/docs/docs/02-apps/01-transfer/08-authorizations.md b/docs/docs/02-apps/01-transfer/08-authorizations.md index 9dde26c1867..575f3d7337b 100644 --- a/docs/docs/02-apps/01-transfer/08-authorizations.md +++ b/docs/docs/02-apps/01-transfer/08-authorizations.md @@ -22,7 +22,7 @@ It takes: - an `AllowList` list that specifies the list of addresses that are allowed to receive funds. If this list is empty, then all addresses are allowed to receive funds from the `TransferAuthorization`. -- an `AllowedPacketData` list that specifies the list of memo packet data keys that are allowed to send the packet. If this list is empty, then only an empty memo is allowed (a `memo` field with non-empty content will be denied). If this list includes a single element equal to `"*"`, then any content in `memo` field will be allowed. +- an `AllowedPacketData` list that specifies the list of memo strings that are allowed to be included in the memo field of the packet. If this list is empty, then only an empty memo is allowed (a `memo` field with non-empty content will be denied). If this list includes a single element equal to `"*"`, then any content in `memo` field will be allowed. Setting a `TransferAuthorization` is expected to fail if: @@ -51,9 +51,8 @@ type Allocation struct { SpendLimit sdk.Coins // allow list of receivers, an empty allow list permits any receiver address AllowList []string - // allow list of packet data keys, an empty list prohibits all packet data keys; - // a list only with "*" permits any packet data key + // allow list of memo strings, an empty list prohibits all memo strings; + // a list only with "*" permits any memo string AllowedPacketData []string } - ``` diff --git a/modules/apps/transfer/types/authz.pb.go b/modules/apps/transfer/types/authz.pb.go index 4d015c3c58a..01928af5ac8 100644 --- a/modules/apps/transfer/types/authz.pb.go +++ b/modules/apps/transfer/types/authz.pb.go @@ -36,8 +36,8 @@ type Allocation struct { SpendLimit github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,3,rep,name=spend_limit,json=spendLimit,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"spend_limit"` // allow list of receivers, an empty allow list permits any receiver address AllowList []string `protobuf:"bytes,4,rep,name=allow_list,json=allowList,proto3" json:"allow_list,omitempty"` - // allow list of packet data keys, an empty list prohibits all packet data keys; - // a list only with "*" permits any packet data key + // allow list of memo strings, an empty list prohibits all memo strings; + // a list only with "*" permits any memo string AllowedPacketData []string `protobuf:"bytes,5,rep,name=allowed_packet_data,json=allowedPacketData,proto3" json:"allowed_packet_data,omitempty"` } diff --git a/modules/apps/transfer/types/keys.go b/modules/apps/transfer/types/keys.go index 0b13912cc88..b94caa797dc 100644 --- a/modules/apps/transfer/types/keys.go +++ b/modules/apps/transfer/types/keys.go @@ -30,7 +30,7 @@ const ( // DenomPrefix is the prefix used for internal SDK coin representation. DenomPrefix = "ibc" - // AllowAllPacketDataKeys holds the string key that allows all packet data keys in authz transfer messages + // AllowAllPacketDataKeys holds the string key that allows all memo strings in authz transfer messages AllowAllPacketDataKeys = "*" KeyTotalEscrowPrefix = "totalEscrowForDenom" diff --git a/modules/apps/transfer/types/transfer_authorization.go b/modules/apps/transfer/types/transfer_authorization.go index 0683166cc8b..b5e4bbe23bc 100644 --- a/modules/apps/transfer/types/transfer_authorization.go +++ b/modules/apps/transfer/types/transfer_authorization.go @@ -2,9 +2,8 @@ package types import ( "context" - "encoding/json" "math/big" - "sort" + "slices" "strings" "github.com/cosmos/gogoproto/proto" @@ -155,9 +154,9 @@ func isAllowedAddress(ctx sdk.Context, receiver string, allowedAddrs []string) b } // validateMemo returns a nil error indicating if the memo is valid for transfer. -func validateMemo(ctx sdk.Context, memo string, allowedPacketDataList []string) error { +func validateMemo(ctx sdk.Context, memo string, allowedMemos []string) error { // if the allow list is empty, then the memo must be an empty string - if len(allowedPacketDataList) == 0 { + if len(allowedMemos) == 0 { if len(strings.TrimSpace(memo)) != 0 { return errorsmod.Wrapf(ErrInvalidAuthorization, "memo must be empty because allowed packet data in allocation is empty") } @@ -166,36 +165,20 @@ func validateMemo(ctx sdk.Context, memo string, allowedPacketDataList []string) } // if allowedPacketDataList has only 1 element and it equals AllowAllPacketDataKeys - // then accept all the packet data keys - if len(allowedPacketDataList) == 1 && allowedPacketDataList[0] == AllowAllPacketDataKeys { + // then accept all the memo strings + if len(allowedMemos) == 1 && allowedMemos[0] == AllowAllPacketDataKeys { return nil } - jsonObject := make(map[string]interface{}) - err := json.Unmarshal([]byte(memo), &jsonObject) - if err != nil { - return err - } - gasCostPerIteration := ctx.KVGasConfig().IterNextCostFlat - - for _, key := range allowedPacketDataList { + isMemoAllowed := slices.ContainsFunc(allowedMemos, func(allowedMemo string) bool { ctx.GasMeter().ConsumeGas(gasCostPerIteration, "transfer authorization") - _, ok := jsonObject[key] - if ok { - delete(jsonObject, key) - } - } - - keys := make([]string, 0, len(jsonObject)) - for k := range jsonObject { - keys = append(keys, k) - } - sort.Strings(keys) + return strings.TrimSpace(memo) == strings.TrimSpace(allowedMemo) + }) - if len(jsonObject) != 0 { - return errorsmod.Wrapf(ErrInvalidAuthorization, "not allowed packet data keys: %s", keys) + if !isMemoAllowed { + return errorsmod.Wrapf(ErrInvalidAuthorization, "not allowed memo: %s", memo) } return nil diff --git a/modules/apps/transfer/types/transfer_authorization_test.go b/modules/apps/transfer/types/transfer_authorization_test.go index c5d883e5198..8ef1b36bdfc 100644 --- a/modules/apps/transfer/types/transfer_authorization_test.go +++ b/modules/apps/transfer/types/transfer_authorization_test.go @@ -1,6 +1,8 @@ package types_test import ( + "fmt" + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" @@ -11,7 +13,10 @@ import ( "github.com/cosmos/ibc-go/v8/testing/mock" ) -const testMemo = `{"wasm":{"contract":"osmo1c3ljch9dfw5kf52nfwpxd2zmj2ese7agnx0p9tenkrryasrle5sqf3ftpg","msg":{"osmosis_swap":{"output_denom":"uosmo","slippage":{"twap":{"slippage_percentage":"20","window_seconds":10}},"receiver":"feeabs/feeabs1efd63aw40lxf3n4mhf7dzhjkr453axurwrhrrw","on_failed_delivery":"do_nothing"}}}}` +const ( + testMemo1 = `{"wasm":{"contract":"osmo1c3ljch9dfw5kf52nfwpxd2zmj2ese7agnx0p9tenkrryasrle5sqf3ftpg","msg":{"osmosis_swap":{"output_denom":"uosmo","slippage":{"twap":{"slippage_percentage":"20","window_seconds":10}},"receiver":"feeabs/feeabs1efd63aw40lxf3n4mhf7dzhjkr453axurwrhrrw","on_failed_delivery":"do_nothing"}}}}` + testMemo2 = `{"forward":{"channel":"channel-11","port":"transfer","receiver":"stars1twfv52yxcyykx2lcvgl42svw46hsm5dd4ww6xy","retries":2,"timeout":1712146014542131200}}` +) func (suite *TypesTestSuite) TestTransferAuthorizationAccept() { var ( @@ -122,7 +127,7 @@ func (suite *TypesTestSuite) TestTransferAuthorizationAccept() { func() { allowedList := []string{"*"} transferAuthz.Allocations[0].AllowedPacketData = allowedList - msgTransfer.Memo = testMemo + msgTransfer.Memo = testMemo1 }, func(res authz.AcceptResponse, err error) { suite.Require().NoError(err) @@ -135,9 +140,9 @@ func (suite *TypesTestSuite) TestTransferAuthorizationAccept() { { "success: transfer memo allowed", func() { - allowedList := []string{"wasm", "forward"} + allowedList := []string{testMemo1, testMemo2} transferAuthz.Allocations[0].AllowedPacketData = allowedList - msgTransfer.Memo = testMemo + msgTransfer.Memo = testMemo1 }, func(res authz.AcceptResponse, err error) { suite.Require().NoError(err) @@ -152,7 +157,7 @@ func (suite *TypesTestSuite) TestTransferAuthorizationAccept() { func() { allowedList := []string{} transferAuthz.Allocations[0].AllowedPacketData = allowedList - msgTransfer.Memo = testMemo + msgTransfer.Memo = testMemo1 }, func(res authz.AcceptResponse, err error) { suite.Require().Error(err) @@ -161,13 +166,13 @@ func (suite *TypesTestSuite) TestTransferAuthorizationAccept() { { "memo not allowed", func() { - allowedList := []string{"forward"} + allowedList := []string{testMemo1} transferAuthz.Allocations[0].AllowedPacketData = allowedList - msgTransfer.Memo = testMemo + msgTransfer.Memo = testMemo2 }, func(res authz.AcceptResponse, err error) { suite.Require().Error(err) - suite.Require().ErrorContains(err, "not allowed packet data keys: [wasm]") + suite.Require().ErrorContains(err, fmt.Sprintf("not allowed memo: %s", testMemo2)) }, }, { @@ -310,6 +315,13 @@ func (suite *TypesTestSuite) TestTransferAuthorizationValidateBasic() { }, true, }, + { + "success: wildcard allowed packet data", + func() { + transferAuthz.Allocations[0].AllowedPacketData = []string{"*"} + }, + true, + }, { "empty allocations", func() { diff --git a/proto/ibc/applications/transfer/v1/authz.proto b/proto/ibc/applications/transfer/v1/authz.proto index e7561b0708b..5c4b71d3479 100644 --- a/proto/ibc/applications/transfer/v1/authz.proto +++ b/proto/ibc/applications/transfer/v1/authz.proto @@ -19,8 +19,8 @@ message Allocation { [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; // allow list of receivers, an empty allow list permits any receiver address repeated string allow_list = 4; - // allow list of packet data keys, an empty list prohibits all packet data keys; - // a list only with "*" permits any packet data key + // allow list of memo strings, an empty list prohibits all memo strings; + // a list only with "*" permits any memo string repeated string allowed_packet_data = 5; } From bca605e87db8979d8c47a7fe5e119e5669ac6a76 Mon Sep 17 00:00:00 2001 From: srdtrk Date: Mon, 13 May 2024 14:39:44 +0800 Subject: [PATCH 32/62] docs: improve kapa ai styling --- docs/docusaurus.config.js | 8 +++++++- docs/static/img/black-ibc-logo-400x400.svg | 10 ++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 docs/static/img/black-ibc-logo-400x400.svg diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index aa26d9a2ac8..70e51eb3897 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -347,8 +347,14 @@ const config = { src: "https://widget.kapa.ai/kapa-widget.bundle.js", "data-website-id": "806aa1dc-0d46-4563-a8b8-880eecac59f1", "data-project-name": "Interchain", + "data-user-analytics-fingerprint-enabled": true, "data-project-color": "#1878FF", - "data-modal-disclaimer": "This is a custom LLM for Interchain with access to IBC developer documentation and resources. Please note that answers are generated by an AI so please use your best judgement before implementing", + "data-modal-title": "IBC Docs AI", + "data-modal-disclaimer": "This is a custom LLM for the Inter-Blockchain Communication Protocol in Golang (ibc-go). It is trained on the IBC developer documentation, code base, and resources. Answers are AI-generated. Please use your best judgment before implementing. The bot is not trained on documentation, code, or resources for the Cosmos SDK, CometBFT, CosmJS, CosmWasm, or interchain ecosystem blockchains. Please refer to those specific documentation sites for answers to those questions.", + "data-modal-disclaimer-text-color": "#000000", + "data-modal-disclaimer-font-size": "14px", + "data-modal-image": + "img/black-ibc-logo-400x400.svg", "data-project-logo": "img/white-ibc-logo-400x400.svg", async: true, diff --git a/docs/static/img/black-ibc-logo-400x400.svg b/docs/static/img/black-ibc-logo-400x400.svg new file mode 100644 index 00000000000..c7a5478bbe9 --- /dev/null +++ b/docs/static/img/black-ibc-logo-400x400.svg @@ -0,0 +1,10 @@ + + + + + + + + + + From 4f31a3c6201bfd53df0c5533448c3197e3b49f1f Mon Sep 17 00:00:00 2001 From: Damian Nolan Date: Mon, 13 May 2024 10:15:40 +0200 Subject: [PATCH 33/62] fix: noop on UpdateState for invalid misbehaviour (#6276) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: noop on UpdateState for invalid misbehaviour * godoc: update godoc for UpdateState * Update modules/light-clients/07-tendermint/update.go Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * chore: add changelog --------- Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> Co-authored-by: Carlos Rodriguez --- CHANGELOG.md | 2 ++ modules/light-clients/07-tendermint/update.go | 4 +++- modules/light-clients/07-tendermint/update_test.go | 9 ++++++--- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f464e3a783a..3143a7be3d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -55,6 +55,8 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### State Machine Breaking +* (light-clients/07-tendermint) Fix: No-op to avoid panicking on `UpdateState` for invalid misbehaviour submissions. + ### Improvements * (apps/27-interchain-accounts) [\#5533](https://github.com/cosmos/ibc-go/pull/5533) ICA host sets the host connection ID on `OnChanOpenTry`, so that ICA controller implementations are not obliged to set the value on `OnChanOpenInit` if they are not able. diff --git a/modules/light-clients/07-tendermint/update.go b/modules/light-clients/07-tendermint/update.go index e01786a79d1..1a88eee5859 100644 --- a/modules/light-clients/07-tendermint/update.go +++ b/modules/light-clients/07-tendermint/update.go @@ -131,10 +131,12 @@ func (cs *ClientState) verifyHeader( // UpdateState must only be used to update within a single revision, thus header revision number and trusted height's revision // number must be the same. To update to a new revision, use a separate upgrade path // UpdateState will prune the oldest consensus state if it is expired. +// If the provided clientMsg is not of type of Header then the handler will noop and empty slice is returned. func (cs ClientState) UpdateState(ctx sdk.Context, cdc codec.BinaryCodec, clientStore storetypes.KVStore, clientMsg exported.ClientMessage) []exported.Height { header, ok := clientMsg.(*Header) if !ok { - panic(fmt.Errorf("expected type %T, got %T", &Header{}, clientMsg)) + // clientMsg is invalid Misbehaviour, no update necessary + return []exported.Height{} } cs.pruneOldestConsensusState(ctx, cdc, clientStore) diff --git a/modules/light-clients/07-tendermint/update_test.go b/modules/light-clients/07-tendermint/update_test.go index b28b928babb..93ef5638e7e 100644 --- a/modules/light-clients/07-tendermint/update_test.go +++ b/modules/light-clients/07-tendermint/update_test.go @@ -546,9 +546,12 @@ func (suite *TendermintTestSuite) TestUpdateState() { suite.Require().Equal(expConsensusState, updatedConsensusState) } else { - suite.Require().Panics(func() { - clientState.UpdateState(suite.chainA.GetContext(), suite.chainA.App.AppCodec(), clientStore, clientMessage) - }) + consensusHeights = clientState.UpdateState(suite.chainA.GetContext(), suite.chainA.App.AppCodec(), clientStore, clientMessage) + suite.Require().Empty(consensusHeights) + + consensusState, found := suite.chainA.GetSimApp().GetIBCKeeper().ClientKeeper.GetClientConsensusState(suite.chainA.GetContext(), path.EndpointA.ClientID, clienttypes.NewHeight(1, uint64(suite.chainB.GetContext().BlockHeight()))) + suite.Require().False(found) + suite.Require().Nil(consensusState) } // perform custom checks From c85d37b7b3556dabba2bcc2acacfbeb85890166a Mon Sep 17 00:00:00 2001 From: srdtrk <59252793+srdtrk@users.noreply.github.com> Date: Mon, 13 May 2024 19:15:49 +0800 Subject: [PATCH 34/62] docs: bump docusaurus to v3.3 and improve kapa ai (#6294) * deps: docusaurus v3.3 * imp: kapa ai --------- Co-authored-by: Carlos Rodriguez --- docs/docusaurus.config.js | 1 + docs/package-lock.json | 1618 ++++++++++++++++++------------------- docs/package.json | 14 +- 3 files changed, 781 insertions(+), 852 deletions(-) diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index 70e51eb3897..963c9a04478 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -351,6 +351,7 @@ const config = { "data-project-color": "#1878FF", "data-modal-title": "IBC Docs AI", "data-modal-disclaimer": "This is a custom LLM for the Inter-Blockchain Communication Protocol in Golang (ibc-go). It is trained on the IBC developer documentation, code base, and resources. Answers are AI-generated. Please use your best judgment before implementing. The bot is not trained on documentation, code, or resources for the Cosmos SDK, CometBFT, CosmJS, CosmWasm, or interchain ecosystem blockchains. Please refer to those specific documentation sites for answers to those questions.", + "data-modal-ask-ai-input-placeholder": "Ask me a question about IBC...", "data-modal-disclaimer-text-color": "#000000", "data-modal-disclaimer-font-size": "14px", "data-modal-image": diff --git a/docs/package-lock.json b/docs/package-lock.json index ccf99900948..8449a973072 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -8,12 +8,12 @@ "name": "docs", "version": "0.0.0", "dependencies": { - "@docusaurus/core": "^3.1.1", - "@docusaurus/plugin-client-redirects": "^3.1.1", - "@docusaurus/plugin-content-docs": "^3.1.1", - "@docusaurus/plugin-google-gtag": "^3.1.1", - "@docusaurus/plugin-sitemap": "^3.1.1", - "@docusaurus/preset-classic": "^3.1.1", + "@docusaurus/core": "^3.3.2", + "@docusaurus/plugin-client-redirects": "^3.3.2", + "@docusaurus/plugin-content-docs": "^3.3.2", + "@docusaurus/plugin-google-gtag": "^3.3.2", + "@docusaurus/plugin-sitemap": "^3.3.2", + "@docusaurus/preset-classic": "^3.3.2", "@easyops-cn/docusaurus-search-local": "^0.40.1", "@gracefullight/docusaurus-plugin-microsoft-clarity": "^1.0.0", "@mdx-js/react": "^3.0.0", @@ -29,7 +29,7 @@ "tailwindcss": "^3.4.0" }, "devDependencies": { - "@docusaurus/module-type-aliases": "^3.1.1" + "@docusaurus/module-type-aliases": "^3.3.2" }, "engines": { "node": ">=18.0" @@ -77,74 +77,74 @@ } }, "node_modules/@algolia/cache-browser-local-storage": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.22.1.tgz", - "integrity": "sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.23.3.tgz", + "integrity": "sha512-vRHXYCpPlTDE7i6UOy2xE03zHF2C8MEFjPN2v7fRbqVpcOvAUQK81x3Kc21xyb5aSIpYCjWCZbYZuz8Glyzyyg==", "dependencies": { - "@algolia/cache-common": "4.22.1" + "@algolia/cache-common": "4.23.3" } }, "node_modules/@algolia/cache-common": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.22.1.tgz", - "integrity": "sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==" + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.23.3.tgz", + "integrity": "sha512-h9XcNI6lxYStaw32pHpB1TMm0RuxphF+Ik4o7tcQiodEdpKK+wKufY6QXtba7t3k8eseirEMVB83uFFF3Nu54A==" }, "node_modules/@algolia/cache-in-memory": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.22.1.tgz", - "integrity": "sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.23.3.tgz", + "integrity": "sha512-yvpbuUXg/+0rbcagxNT7un0eo3czx2Uf0y4eiR4z4SD7SiptwYTpbuS0IHxcLHG3lq22ukx1T6Kjtk/rT+mqNg==", "dependencies": { - "@algolia/cache-common": "4.22.1" + "@algolia/cache-common": "4.23.3" } }, "node_modules/@algolia/client-account": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.22.1.tgz", - "integrity": "sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.23.3.tgz", + "integrity": "sha512-hpa6S5d7iQmretHHF40QGq6hz0anWEHGlULcTIT9tbUssWUriN9AUXIFQ8Ei4w9azD0hc1rUok9/DeQQobhQMA==", "dependencies": { - "@algolia/client-common": "4.22.1", - "@algolia/client-search": "4.22.1", - "@algolia/transporter": "4.22.1" + "@algolia/client-common": "4.23.3", + "@algolia/client-search": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/@algolia/client-analytics": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.22.1.tgz", - "integrity": "sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.23.3.tgz", + "integrity": "sha512-LBsEARGS9cj8VkTAVEZphjxTjMVCci+zIIiRhpFun9jGDUlS1XmhCW7CTrnaWeIuCQS/2iPyRqSy1nXPjcBLRA==", "dependencies": { - "@algolia/client-common": "4.22.1", - "@algolia/client-search": "4.22.1", - "@algolia/requester-common": "4.22.1", - "@algolia/transporter": "4.22.1" + "@algolia/client-common": "4.23.3", + "@algolia/client-search": "4.23.3", + "@algolia/requester-common": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/@algolia/client-common": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.22.1.tgz", - "integrity": "sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.23.3.tgz", + "integrity": "sha512-l6EiPxdAlg8CYhroqS5ybfIczsGUIAC47slLPOMDeKSVXYG1n0qGiz4RjAHLw2aD0xzh2EXZ7aRguPfz7UKDKw==", "dependencies": { - "@algolia/requester-common": "4.22.1", - "@algolia/transporter": "4.22.1" + "@algolia/requester-common": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/@algolia/client-personalization": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.22.1.tgz", - "integrity": "sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.23.3.tgz", + "integrity": "sha512-3E3yF3Ocr1tB/xOZiuC3doHQBQ2zu2MPTYZ0d4lpfWads2WTKG7ZzmGnsHmm63RflvDeLK/UVx7j2b3QuwKQ2g==", "dependencies": { - "@algolia/client-common": "4.22.1", - "@algolia/requester-common": "4.22.1", - "@algolia/transporter": "4.22.1" + "@algolia/client-common": "4.23.3", + "@algolia/requester-common": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/@algolia/client-search": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.22.1.tgz", - "integrity": "sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.23.3.tgz", + "integrity": "sha512-P4VAKFHqU0wx9O+q29Q8YVuaowaZ5EM77rxfmGnkHUJggh28useXQdopokgwMeYw2XUht49WX5RcTQ40rZIabw==", "dependencies": { - "@algolia/client-common": "4.22.1", - "@algolia/requester-common": "4.22.1", - "@algolia/transporter": "4.22.1" + "@algolia/client-common": "4.23.3", + "@algolia/requester-common": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/@algolia/events": { @@ -153,47 +153,65 @@ "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==" }, "node_modules/@algolia/logger-common": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.22.1.tgz", - "integrity": "sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==" + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.23.3.tgz", + "integrity": "sha512-y9kBtmJwiZ9ZZ+1Ek66P0M68mHQzKRxkW5kAAXYN/rdzgDN0d2COsViEFufxJ0pb45K4FRcfC7+33YB4BLrZ+g==" }, "node_modules/@algolia/logger-console": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.22.1.tgz", - "integrity": "sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.23.3.tgz", + "integrity": "sha512-8xoiseoWDKuCVnWP8jHthgaeobDLolh00KJAdMe9XPrWPuf1by732jSpgy2BlsLTaT9m32pHI8CRfrOqQzHv3A==", "dependencies": { - "@algolia/logger-common": "4.22.1" + "@algolia/logger-common": "4.23.3" + } + }, + "node_modules/@algolia/recommend": { + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-4.23.3.tgz", + "integrity": "sha512-9fK4nXZF0bFkdcLBRDexsnGzVmu4TSYZqxdpgBW2tEyfuSSY54D4qSRkLmNkrrz4YFvdh2GM1gA8vSsnZPR73w==", + "dependencies": { + "@algolia/cache-browser-local-storage": "4.23.3", + "@algolia/cache-common": "4.23.3", + "@algolia/cache-in-memory": "4.23.3", + "@algolia/client-common": "4.23.3", + "@algolia/client-search": "4.23.3", + "@algolia/logger-common": "4.23.3", + "@algolia/logger-console": "4.23.3", + "@algolia/requester-browser-xhr": "4.23.3", + "@algolia/requester-common": "4.23.3", + "@algolia/requester-node-http": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.22.1.tgz", - "integrity": "sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.23.3.tgz", + "integrity": "sha512-jDWGIQ96BhXbmONAQsasIpTYWslyjkiGu0Quydjlowe+ciqySpiDUrJHERIRfELE5+wFc7hc1Q5hqjGoV7yghw==", "dependencies": { - "@algolia/requester-common": "4.22.1" + "@algolia/requester-common": "4.23.3" } }, "node_modules/@algolia/requester-common": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.22.1.tgz", - "integrity": "sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==" + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.23.3.tgz", + "integrity": "sha512-xloIdr/bedtYEGcXCiF2muajyvRhwop4cMZo+K2qzNht0CMzlRkm8YsDdj5IaBhshqfgmBb3rTg4sL4/PpvLYw==" }, "node_modules/@algolia/requester-node-http": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.22.1.tgz", - "integrity": "sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.23.3.tgz", + "integrity": "sha512-zgu++8Uj03IWDEJM3fuNl34s746JnZOWn1Uz5taV1dFyJhVM/kTNw9Ik7YJWiUNHJQXcaD8IXD1eCb0nq/aByA==", "dependencies": { - "@algolia/requester-common": "4.22.1" + "@algolia/requester-common": "4.23.3" } }, "node_modules/@algolia/transporter": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.22.1.tgz", - "integrity": "sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.23.3.tgz", + "integrity": "sha512-Wjl5gttqnf/gQKJA+dafnD0Y6Yw97yvfY8R9h0dQltX1GXTgNs1zWgvtWW0tHl1EgMdhAyw189uWiZMnL3QebQ==", "dependencies": { - "@algolia/cache-common": "4.22.1", - "@algolia/logger-common": "4.22.1", - "@algolia/requester-common": "4.22.1" + "@algolia/cache-common": "4.23.3", + "@algolia/logger-common": "4.23.3", + "@algolia/requester-common": "4.23.3" } }, "node_modules/@alloc/quick-lru": { @@ -551,9 +569,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz", + "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==", "engines": { "node": ">=6.9.0" } @@ -1629,11 +1647,11 @@ } }, "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.23.3.tgz", - "integrity": "sha512-zP0QKq/p6O42OL94udMgSfKXyse4RyJ0JqbQ34zDAONWjyrEsghYEyTSK5FIpmXmCpB55SHokL1cRRKHv8L2Qw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.24.1.tgz", + "integrity": "sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2149,18 +2167,18 @@ } }, "node_modules/@docsearch/css": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.5.2.tgz", - "integrity": "sha512-SPiDHaWKQZpwR2siD0KQUwlStvIAnEyK6tAE2h2Wuoq8ue9skzhlyVQ1ddzOxX6khULnAALDiR/isSF3bnuciA==" + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.6.0.tgz", + "integrity": "sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==" }, "node_modules/@docsearch/react": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.5.2.tgz", - "integrity": "sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.6.0.tgz", + "integrity": "sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==", "dependencies": { "@algolia/autocomplete-core": "1.9.3", "@algolia/autocomplete-preset-algolia": "1.9.3", - "@docsearch/css": "3.5.2", + "@docsearch/css": "3.6.0", "algoliasearch": "^4.19.1" }, "peerDependencies": { @@ -2185,9 +2203,9 @@ } }, "node_modules/@docusaurus/core": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.1.1.tgz", - "integrity": "sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.3.2.tgz", + "integrity": "sha512-PzKMydKI3IU1LmeZQDi+ut5RSuilbXnA8QdowGeJEgU8EJjmx3rBHNT1LxQxOVqNEwpWi/csLwd9bn7rUjggPA==", "dependencies": { "@babel/core": "^7.23.3", "@babel/generator": "^7.23.3", @@ -2199,15 +2217,12 @@ "@babel/runtime": "^7.22.6", "@babel/runtime-corejs3": "^7.22.6", "@babel/traverse": "^7.22.8", - "@docusaurus/cssnano-preset": "3.1.1", - "@docusaurus/logger": "3.1.1", - "@docusaurus/mdx-loader": "3.1.1", - "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/utils": "3.1.1", - "@docusaurus/utils-common": "3.1.1", - "@docusaurus/utils-validation": "3.1.1", - "@slorber/static-site-generator-webpack-plugin": "^4.0.7", - "@svgr/webpack": "^6.5.1", + "@docusaurus/cssnano-preset": "3.3.2", + "@docusaurus/logger": "3.3.2", + "@docusaurus/mdx-loader": "3.3.2", + "@docusaurus/utils": "3.3.2", + "@docusaurus/utils-common": "3.3.2", + "@docusaurus/utils-validation": "3.3.2", "autoprefixer": "^10.4.14", "babel-loader": "^9.1.3", "babel-plugin-dynamic-import-node": "^2.3.3", @@ -2221,12 +2236,13 @@ "copy-webpack-plugin": "^11.0.0", "core-js": "^3.31.1", "css-loader": "^6.8.1", - "css-minimizer-webpack-plugin": "^4.2.2", - "cssnano": "^5.1.15", + "css-minimizer-webpack-plugin": "^5.0.1", + "cssnano": "^6.1.2", "del": "^6.1.1", "detect-port": "^1.5.1", "escape-html": "^1.0.3", "eta": "^2.2.0", + "eval": "^0.1.8", "file-loader": "^6.2.0", "fs-extra": "^11.1.1", "html-minifier-terser": "^7.2.0", @@ -2235,12 +2251,13 @@ "leven": "^3.1.0", "lodash": "^4.17.21", "mini-css-extract-plugin": "^2.7.6", + "p-map": "^4.0.0", "postcss": "^8.4.26", "postcss-loader": "^7.3.3", "prompts": "^2.4.2", "react-dev-utils": "^12.0.1", "react-helmet-async": "^1.3.0", - "react-loadable": "npm:@docusaurus/react-loadable@5.5.2", + "react-loadable": "npm:@docusaurus/react-loadable@6.0.0", "react-loadable-ssr-addon-v5-slorber": "^1.0.1", "react-router": "^5.3.4", "react-router-config": "^5.1.1", @@ -2271,13 +2288,13 @@ } }, "node_modules/@docusaurus/cssnano-preset": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.1.1.tgz", - "integrity": "sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.3.2.tgz", + "integrity": "sha512-+5+epLk/Rp4vFML4zmyTATNc3Is+buMAL6dNjrMWahdJCJlMWMPd/8YfU+2PA57t8mlSbhLJ7vAZVy54cd1vRQ==", "dependencies": { - "cssnano-preset-advanced": "^5.3.10", - "postcss": "^8.4.26", - "postcss-sort-media-queries": "^4.4.1", + "cssnano-preset-advanced": "^6.1.2", + "postcss": "^8.4.38", + "postcss-sort-media-queries": "^5.2.0", "tslib": "^2.6.0" }, "engines": { @@ -2285,9 +2302,9 @@ } }, "node_modules/@docusaurus/logger": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.1.1.tgz", - "integrity": "sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.3.2.tgz", + "integrity": "sha512-Ldu38GJ4P8g4guN7d7pyCOJ7qQugG7RVyaxrK8OnxuTlaImvQw33aDRwaX2eNmX8YK6v+//Z502F4sOZbHHCHQ==", "dependencies": { "chalk": "^4.1.2", "tslib": "^2.6.0" @@ -2297,15 +2314,13 @@ } }, "node_modules/@docusaurus/mdx-loader": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.1.1.tgz", - "integrity": "sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.3.2.tgz", + "integrity": "sha512-AFRxj/aOk3/mfYDPxE3wTbrjeayVRvNSZP7mgMuUlrb2UlPRbSVAFX1k2RbgAJrnTSwMgb92m2BhJgYRfptN3g==", "dependencies": { - "@babel/parser": "^7.22.7", - "@babel/traverse": "^7.22.8", - "@docusaurus/logger": "3.1.1", - "@docusaurus/utils": "3.1.1", - "@docusaurus/utils-validation": "3.1.1", + "@docusaurus/logger": "3.3.2", + "@docusaurus/utils": "3.3.2", + "@docusaurus/utils-validation": "3.3.2", "@mdx-js/mdx": "^3.0.0", "@slorber/remark-comment": "^1.0.0", "escape-html": "^1.0.3", @@ -2337,18 +2352,17 @@ } }, "node_modules/@docusaurus/module-type-aliases": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.1.1.tgz", - "integrity": "sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.3.2.tgz", + "integrity": "sha512-b/XB0TBJah5yKb4LYuJT4buFvL0MGAb0+vJDrJtlYMguRtsEBkf2nWl5xP7h4Dlw6ol0hsHrCYzJ50kNIOEclw==", "dependencies": { - "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/types": "3.1.1", + "@docusaurus/types": "3.3.2", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", "@types/react-router-dom": "*", "react-helmet-async": "*", - "react-loadable": "npm:@docusaurus/react-loadable@5.5.2" + "react-loadable": "npm:@docusaurus/react-loadable@6.0.0" }, "peerDependencies": { "react": "*", @@ -2356,15 +2370,15 @@ } }, "node_modules/@docusaurus/plugin-client-redirects": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-3.1.1.tgz", - "integrity": "sha512-J/1Z75XkO+BmUXHW17FrCIYZQ3b0IKaJECH6yCxW5RQ8NMMJ+SZCtPtx5oYoAd0VHersNiUu+ZAxfOqbsn1jKQ==", - "dependencies": { - "@docusaurus/core": "3.1.1", - "@docusaurus/logger": "3.1.1", - "@docusaurus/utils": "3.1.1", - "@docusaurus/utils-common": "3.1.1", - "@docusaurus/utils-validation": "3.1.1", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-3.3.2.tgz", + "integrity": "sha512-W8ueb5PaQ06oanatL+CzE3GjqeRBTzv3MSFqEQlBa8BqLyOomc1uHsWgieE3glHsckU4mUZ6sHnOfesAtYnnew==", + "dependencies": { + "@docusaurus/core": "3.3.2", + "@docusaurus/logger": "3.3.2", + "@docusaurus/utils": "3.3.2", + "@docusaurus/utils-common": "3.3.2", + "@docusaurus/utils-validation": "3.3.2", "eta": "^2.2.0", "fs-extra": "^11.1.1", "lodash": "^4.17.21", @@ -2379,17 +2393,17 @@ } }, "node_modules/@docusaurus/plugin-content-blog": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.1.1.tgz", - "integrity": "sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==", - "dependencies": { - "@docusaurus/core": "3.1.1", - "@docusaurus/logger": "3.1.1", - "@docusaurus/mdx-loader": "3.1.1", - "@docusaurus/types": "3.1.1", - "@docusaurus/utils": "3.1.1", - "@docusaurus/utils-common": "3.1.1", - "@docusaurus/utils-validation": "3.1.1", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.3.2.tgz", + "integrity": "sha512-fJU+dmqp231LnwDJv+BHVWft8pcUS2xVPZdeYH6/ibH1s2wQ/sLcmUrGWyIv/Gq9Ptj8XWjRPMghlxghuPPoxg==", + "dependencies": { + "@docusaurus/core": "3.3.2", + "@docusaurus/logger": "3.3.2", + "@docusaurus/mdx-loader": "3.3.2", + "@docusaurus/types": "3.3.2", + "@docusaurus/utils": "3.3.2", + "@docusaurus/utils-common": "3.3.2", + "@docusaurus/utils-validation": "3.3.2", "cheerio": "^1.0.0-rc.12", "feed": "^4.2.2", "fs-extra": "^11.1.1", @@ -2410,17 +2424,18 @@ } }, "node_modules/@docusaurus/plugin-content-docs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.1.1.tgz", - "integrity": "sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==", - "dependencies": { - "@docusaurus/core": "3.1.1", - "@docusaurus/logger": "3.1.1", - "@docusaurus/mdx-loader": "3.1.1", - "@docusaurus/module-type-aliases": "3.1.1", - "@docusaurus/types": "3.1.1", - "@docusaurus/utils": "3.1.1", - "@docusaurus/utils-validation": "3.1.1", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.3.2.tgz", + "integrity": "sha512-Dm1ri2VlGATTN3VGk1ZRqdRXWa1UlFubjaEL6JaxaK7IIFqN/Esjpl+Xw10R33loHcRww/H76VdEeYayaL76eg==", + "dependencies": { + "@docusaurus/core": "3.3.2", + "@docusaurus/logger": "3.3.2", + "@docusaurus/mdx-loader": "3.3.2", + "@docusaurus/module-type-aliases": "3.3.2", + "@docusaurus/types": "3.3.2", + "@docusaurus/utils": "3.3.2", + "@docusaurus/utils-common": "3.3.2", + "@docusaurus/utils-validation": "3.3.2", "@types/react-router-config": "^5.0.7", "combine-promises": "^1.1.0", "fs-extra": "^11.1.1", @@ -2439,15 +2454,15 @@ } }, "node_modules/@docusaurus/plugin-content-pages": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.1.1.tgz", - "integrity": "sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==", - "dependencies": { - "@docusaurus/core": "3.1.1", - "@docusaurus/mdx-loader": "3.1.1", - "@docusaurus/types": "3.1.1", - "@docusaurus/utils": "3.1.1", - "@docusaurus/utils-validation": "3.1.1", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.3.2.tgz", + "integrity": "sha512-EKc9fQn5H2+OcGER8x1aR+7URtAGWySUgULfqE/M14+rIisdrBstuEZ4lUPDRrSIexOVClML82h2fDS+GSb8Ew==", + "dependencies": { + "@docusaurus/core": "3.3.2", + "@docusaurus/mdx-loader": "3.3.2", + "@docusaurus/types": "3.3.2", + "@docusaurus/utils": "3.3.2", + "@docusaurus/utils-validation": "3.3.2", "fs-extra": "^11.1.1", "tslib": "^2.6.0", "webpack": "^5.88.1" @@ -2461,13 +2476,13 @@ } }, "node_modules/@docusaurus/plugin-debug": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.1.1.tgz", - "integrity": "sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.3.2.tgz", + "integrity": "sha512-oBIBmwtaB+YS0XlmZ3gCO+cMbsGvIYuAKkAopoCh0arVjtlyPbejzPrHuCoRHB9G7abjNZw7zoONOR8+8LM5+Q==", "dependencies": { - "@docusaurus/core": "3.1.1", - "@docusaurus/types": "3.1.1", - "@docusaurus/utils": "3.1.1", + "@docusaurus/core": "3.3.2", + "@docusaurus/types": "3.3.2", + "@docusaurus/utils": "3.3.2", "fs-extra": "^11.1.1", "react-json-view-lite": "^1.2.0", "tslib": "^2.6.0" @@ -2481,13 +2496,13 @@ } }, "node_modules/@docusaurus/plugin-google-analytics": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.1.1.tgz", - "integrity": "sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.3.2.tgz", + "integrity": "sha512-jXhrEIhYPSClMBK6/IA8qf1/FBoxqGXZvg7EuBax9HaK9+kL3L0TJIlatd8jQJOMtds8mKw806TOCc3rtEad1A==", "dependencies": { - "@docusaurus/core": "3.1.1", - "@docusaurus/types": "3.1.1", - "@docusaurus/utils-validation": "3.1.1", + "@docusaurus/core": "3.3.2", + "@docusaurus/types": "3.3.2", + "@docusaurus/utils-validation": "3.3.2", "tslib": "^2.6.0" }, "engines": { @@ -2499,13 +2514,13 @@ } }, "node_modules/@docusaurus/plugin-google-gtag": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.1.1.tgz", - "integrity": "sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.3.2.tgz", + "integrity": "sha512-vcrKOHGbIDjVnNMrfbNpRQR1x6Jvcrb48kVzpBAOsKbj9rXZm/idjVAXRaewwobHdOrJkfWS/UJoxzK8wyLRBQ==", "dependencies": { - "@docusaurus/core": "3.1.1", - "@docusaurus/types": "3.1.1", - "@docusaurus/utils-validation": "3.1.1", + "@docusaurus/core": "3.3.2", + "@docusaurus/types": "3.3.2", + "@docusaurus/utils-validation": "3.3.2", "@types/gtag.js": "^0.0.12", "tslib": "^2.6.0" }, @@ -2518,13 +2533,13 @@ } }, "node_modules/@docusaurus/plugin-google-tag-manager": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.1.1.tgz", - "integrity": "sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.3.2.tgz", + "integrity": "sha512-ldkR58Fdeks0vC+HQ+L+bGFSJsotQsipXD+iKXQFvkOfmPIV6QbHRd7IIcm5b6UtwOiK33PylNS++gjyLUmaGw==", "dependencies": { - "@docusaurus/core": "3.1.1", - "@docusaurus/types": "3.1.1", - "@docusaurus/utils-validation": "3.1.1", + "@docusaurus/core": "3.3.2", + "@docusaurus/types": "3.3.2", + "@docusaurus/utils-validation": "3.3.2", "tslib": "^2.6.0" }, "engines": { @@ -2536,16 +2551,16 @@ } }, "node_modules/@docusaurus/plugin-sitemap": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.1.1.tgz", - "integrity": "sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==", - "dependencies": { - "@docusaurus/core": "3.1.1", - "@docusaurus/logger": "3.1.1", - "@docusaurus/types": "3.1.1", - "@docusaurus/utils": "3.1.1", - "@docusaurus/utils-common": "3.1.1", - "@docusaurus/utils-validation": "3.1.1", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.3.2.tgz", + "integrity": "sha512-/ZI1+bwZBhAgC30inBsHe3qY9LOZS+79fRGkNdTcGHRMcdAp6Vw2pCd1gzlxd/xU+HXsNP6cLmTOrggmRp3Ujg==", + "dependencies": { + "@docusaurus/core": "3.3.2", + "@docusaurus/logger": "3.3.2", + "@docusaurus/types": "3.3.2", + "@docusaurus/utils": "3.3.2", + "@docusaurus/utils-common": "3.3.2", + "@docusaurus/utils-validation": "3.3.2", "fs-extra": "^11.1.1", "sitemap": "^7.1.1", "tslib": "^2.6.0" @@ -2559,23 +2574,23 @@ } }, "node_modules/@docusaurus/preset-classic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.1.1.tgz", - "integrity": "sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==", - "dependencies": { - "@docusaurus/core": "3.1.1", - "@docusaurus/plugin-content-blog": "3.1.1", - "@docusaurus/plugin-content-docs": "3.1.1", - "@docusaurus/plugin-content-pages": "3.1.1", - "@docusaurus/plugin-debug": "3.1.1", - "@docusaurus/plugin-google-analytics": "3.1.1", - "@docusaurus/plugin-google-gtag": "3.1.1", - "@docusaurus/plugin-google-tag-manager": "3.1.1", - "@docusaurus/plugin-sitemap": "3.1.1", - "@docusaurus/theme-classic": "3.1.1", - "@docusaurus/theme-common": "3.1.1", - "@docusaurus/theme-search-algolia": "3.1.1", - "@docusaurus/types": "3.1.1" + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.3.2.tgz", + "integrity": "sha512-1SDS7YIUN1Pg3BmD6TOTjhB7RSBHJRpgIRKx9TpxqyDrJ92sqtZhomDc6UYoMMLQNF2wHFZZVGFjxJhw2VpL+Q==", + "dependencies": { + "@docusaurus/core": "3.3.2", + "@docusaurus/plugin-content-blog": "3.3.2", + "@docusaurus/plugin-content-docs": "3.3.2", + "@docusaurus/plugin-content-pages": "3.3.2", + "@docusaurus/plugin-debug": "3.3.2", + "@docusaurus/plugin-google-analytics": "3.3.2", + "@docusaurus/plugin-google-gtag": "3.3.2", + "@docusaurus/plugin-google-tag-manager": "3.3.2", + "@docusaurus/plugin-sitemap": "3.3.2", + "@docusaurus/theme-classic": "3.3.2", + "@docusaurus/theme-common": "3.3.2", + "@docusaurus/theme-search-algolia": "3.3.2", + "@docusaurus/types": "3.3.2" }, "engines": { "node": ">=18.0" @@ -2585,35 +2600,23 @@ "react-dom": "^18.0.0" } }, - "node_modules/@docusaurus/react-loadable": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", - "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", - "dependencies": { - "@types/react": "*", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": "*" - } - }, "node_modules/@docusaurus/theme-classic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.1.1.tgz", - "integrity": "sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==", - "dependencies": { - "@docusaurus/core": "3.1.1", - "@docusaurus/mdx-loader": "3.1.1", - "@docusaurus/module-type-aliases": "3.1.1", - "@docusaurus/plugin-content-blog": "3.1.1", - "@docusaurus/plugin-content-docs": "3.1.1", - "@docusaurus/plugin-content-pages": "3.1.1", - "@docusaurus/theme-common": "3.1.1", - "@docusaurus/theme-translations": "3.1.1", - "@docusaurus/types": "3.1.1", - "@docusaurus/utils": "3.1.1", - "@docusaurus/utils-common": "3.1.1", - "@docusaurus/utils-validation": "3.1.1", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.3.2.tgz", + "integrity": "sha512-gepHFcsluIkPb4Im9ukkiO4lXrai671wzS3cKQkY9BXQgdVwsdPf/KS0Vs4Xlb0F10fTz+T3gNjkxNEgSN9M0A==", + "dependencies": { + "@docusaurus/core": "3.3.2", + "@docusaurus/mdx-loader": "3.3.2", + "@docusaurus/module-type-aliases": "3.3.2", + "@docusaurus/plugin-content-blog": "3.3.2", + "@docusaurus/plugin-content-docs": "3.3.2", + "@docusaurus/plugin-content-pages": "3.3.2", + "@docusaurus/theme-common": "3.3.2", + "@docusaurus/theme-translations": "3.3.2", + "@docusaurus/types": "3.3.2", + "@docusaurus/utils": "3.3.2", + "@docusaurus/utils-common": "3.3.2", + "@docusaurus/utils-validation": "3.3.2", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", "copy-text-to-clipboard": "^3.2.0", @@ -2637,17 +2640,17 @@ } }, "node_modules/@docusaurus/theme-common": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.1.1.tgz", - "integrity": "sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==", - "dependencies": { - "@docusaurus/mdx-loader": "3.1.1", - "@docusaurus/module-type-aliases": "3.1.1", - "@docusaurus/plugin-content-blog": "3.1.1", - "@docusaurus/plugin-content-docs": "3.1.1", - "@docusaurus/plugin-content-pages": "3.1.1", - "@docusaurus/utils": "3.1.1", - "@docusaurus/utils-common": "3.1.1", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.3.2.tgz", + "integrity": "sha512-kXqSaL/sQqo4uAMQ4fHnvRZrH45Xz2OdJ3ABXDS7YVGPSDTBC8cLebFrRR4YF9EowUHto1UC/EIklJZQMG/usA==", + "dependencies": { + "@docusaurus/mdx-loader": "3.3.2", + "@docusaurus/module-type-aliases": "3.3.2", + "@docusaurus/plugin-content-blog": "3.3.2", + "@docusaurus/plugin-content-docs": "3.3.2", + "@docusaurus/plugin-content-pages": "3.3.2", + "@docusaurus/utils": "3.3.2", + "@docusaurus/utils-common": "3.3.2", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -2666,18 +2669,18 @@ } }, "node_modules/@docusaurus/theme-search-algolia": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.1.1.tgz", - "integrity": "sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.3.2.tgz", + "integrity": "sha512-qLkfCl29VNBnF1MWiL9IyOQaHxUvicZp69hISyq/xMsNvFKHFOaOfk9xezYod2Q9xx3xxUh9t/QPigIei2tX4w==", "dependencies": { "@docsearch/react": "^3.5.2", - "@docusaurus/core": "3.1.1", - "@docusaurus/logger": "3.1.1", - "@docusaurus/plugin-content-docs": "3.1.1", - "@docusaurus/theme-common": "3.1.1", - "@docusaurus/theme-translations": "3.1.1", - "@docusaurus/utils": "3.1.1", - "@docusaurus/utils-validation": "3.1.1", + "@docusaurus/core": "3.3.2", + "@docusaurus/logger": "3.3.2", + "@docusaurus/plugin-content-docs": "3.3.2", + "@docusaurus/theme-common": "3.3.2", + "@docusaurus/theme-translations": "3.3.2", + "@docusaurus/utils": "3.3.2", + "@docusaurus/utils-validation": "3.3.2", "algoliasearch": "^4.18.0", "algoliasearch-helper": "^3.13.3", "clsx": "^2.0.0", @@ -2696,9 +2699,9 @@ } }, "node_modules/@docusaurus/theme-translations": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.1.1.tgz", - "integrity": "sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.3.2.tgz", + "integrity": "sha512-bPuiUG7Z8sNpGuTdGnmKl/oIPeTwKr0AXLGu9KaP6+UFfRZiyWbWE87ti97RrevB2ffojEdvchNujparR3jEZQ==", "dependencies": { "fs-extra": "^11.1.1", "tslib": "^2.6.0" @@ -2708,9 +2711,9 @@ } }, "node_modules/@docusaurus/types": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.1.1.tgz", - "integrity": "sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.3.2.tgz", + "integrity": "sha512-5p201S7AZhliRxTU7uMKtSsoC8mgPA9bs9b5NQg1IRdRxJfflursXNVsgc3PcMqiUTul/v1s3k3rXXFlRE890w==", "dependencies": { "@mdx-js/mdx": "^3.0.0", "@types/history": "^4.7.11", @@ -2728,12 +2731,13 @@ } }, "node_modules/@docusaurus/utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.1.1.tgz", - "integrity": "sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.3.2.tgz", + "integrity": "sha512-f4YMnBVymtkSxONv4Y8js3Gez9IgHX+Lcg6YRMOjVbq8sgCcdYK1lf6SObAuz5qB/mxiSK7tW0M9aaiIaUSUJg==", "dependencies": { - "@docusaurus/logger": "3.1.1", - "@svgr/webpack": "^6.5.1", + "@docusaurus/logger": "3.3.2", + "@docusaurus/utils-common": "3.3.2", + "@svgr/webpack": "^8.1.0", "escape-string-regexp": "^4.0.0", "file-loader": "^6.2.0", "fs-extra": "^11.1.1", @@ -2744,6 +2748,7 @@ "js-yaml": "^4.1.0", "lodash": "^4.17.21", "micromatch": "^4.0.5", + "prompts": "^2.4.2", "resolve-pathname": "^3.0.0", "shelljs": "^0.8.5", "tslib": "^2.6.0", @@ -2763,9 +2768,9 @@ } }, "node_modules/@docusaurus/utils-common": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.1.1.tgz", - "integrity": "sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.3.2.tgz", + "integrity": "sha512-QWFTLEkPYsejJsLStgtmetMFIA3pM8EPexcZ4WZ7b++gO5jGVH7zsipREnCHzk6+eDgeaXfkR6UPaTt86bp8Og==", "dependencies": { "tslib": "^2.6.0" }, @@ -2782,12 +2787,13 @@ } }, "node_modules/@docusaurus/utils-validation": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.1.1.tgz", - "integrity": "sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.3.2.tgz", + "integrity": "sha512-itDgFs5+cbW9REuC7NdXals4V6++KifgVMzoGOOOSIifBQw+8ULhy86u5e1lnptVL0sv8oAjq2alO7I40GR7pA==", "dependencies": { - "@docusaurus/logger": "3.1.1", - "@docusaurus/utils": "3.1.1", + "@docusaurus/logger": "3.3.2", + "@docusaurus/utils": "3.3.2", + "@docusaurus/utils-common": "3.3.2", "joi": "^17.9.2", "js-yaml": "^4.1.0", "tslib": "^2.6.0" @@ -3437,25 +3443,12 @@ "micromark-util-symbol": "^1.0.1" } }, - "node_modules/@slorber/static-site-generator-webpack-plugin": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@slorber/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.7.tgz", - "integrity": "sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==", - "dependencies": { - "eval": "^0.1.8", - "p-map": "^4.0.0", - "webpack-sources": "^3.2.2" - }, - "engines": { - "node": ">=14" - } - }, "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", - "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3496,11 +3489,11 @@ } }, "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz", - "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3511,11 +3504,11 @@ } }, "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz", - "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3526,11 +3519,11 @@ } }, "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz", - "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3541,11 +3534,11 @@ } }, "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz", - "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3556,9 +3549,9 @@ } }, "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz", - "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", "engines": { "node": ">=12" }, @@ -3571,21 +3564,21 @@ } }, "node_modules/@svgr/babel-preset": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", - "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", - "@svgr/babel-plugin-remove-jsx-attribute": "*", - "@svgr/babel-plugin-remove-jsx-empty-expression": "*", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1", - "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1", - "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1", - "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1", - "@svgr/babel-plugin-transform-svg-component": "^6.5.1" + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3596,18 +3589,18 @@ } }, "node_modules/@svgr/core": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz", - "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", "dependencies": { - "@babel/core": "^7.19.6", - "@svgr/babel-preset": "^6.5.1", - "@svgr/plugin-jsx": "^6.5.1", + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.1" + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3615,15 +3608,15 @@ } }, "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz", - "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", "dependencies": { - "@babel/types": "^7.20.0", + "@babel/types": "^7.21.3", "entities": "^4.4.0" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3631,37 +3624,37 @@ } }, "node_modules/@svgr/plugin-jsx": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", - "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", "dependencies": { - "@babel/core": "^7.19.6", - "@svgr/babel-preset": "^6.5.1", - "@svgr/hast-util-to-babel-ast": "^6.5.1", + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", "svg-parser": "^2.0.4" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { - "@svgr/core": "^6.0.0" + "@svgr/core": "*" } }, "node_modules/@svgr/plugin-svgo": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz", - "integrity": "sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", + "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", "dependencies": { - "cosmiconfig": "^7.0.1", - "deepmerge": "^4.2.2", - "svgo": "^2.8.0" + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3672,21 +3665,21 @@ } }, "node_modules/@svgr/webpack": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.5.1.tgz", - "integrity": "sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", + "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", "dependencies": { - "@babel/core": "^7.19.6", - "@babel/plugin-transform-react-constant-elements": "^7.18.12", - "@babel/preset-env": "^7.19.4", + "@babel/core": "^7.21.3", + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", - "@babel/preset-typescript": "^7.18.6", - "@svgr/core": "^6.5.1", - "@svgr/plugin-jsx": "^6.5.1", - "@svgr/plugin-svgo": "^6.5.1" + "@babel/preset-typescript": "^7.21.0", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -4339,30 +4332,31 @@ } }, "node_modules/algoliasearch": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.22.1.tgz", - "integrity": "sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==", - "dependencies": { - "@algolia/cache-browser-local-storage": "4.22.1", - "@algolia/cache-common": "4.22.1", - "@algolia/cache-in-memory": "4.22.1", - "@algolia/client-account": "4.22.1", - "@algolia/client-analytics": "4.22.1", - "@algolia/client-common": "4.22.1", - "@algolia/client-personalization": "4.22.1", - "@algolia/client-search": "4.22.1", - "@algolia/logger-common": "4.22.1", - "@algolia/logger-console": "4.22.1", - "@algolia/requester-browser-xhr": "4.22.1", - "@algolia/requester-common": "4.22.1", - "@algolia/requester-node-http": "4.22.1", - "@algolia/transporter": "4.22.1" + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.23.3.tgz", + "integrity": "sha512-Le/3YgNvjW9zxIQMRhUHuhiUjAlKY/zsdZpfq4dlLqg6mEm0nL6yk+7f2hDOtLpxsgE4jSzDmvHL7nXdBp5feg==", + "dependencies": { + "@algolia/cache-browser-local-storage": "4.23.3", + "@algolia/cache-common": "4.23.3", + "@algolia/cache-in-memory": "4.23.3", + "@algolia/client-account": "4.23.3", + "@algolia/client-analytics": "4.23.3", + "@algolia/client-common": "4.23.3", + "@algolia/client-personalization": "4.23.3", + "@algolia/client-search": "4.23.3", + "@algolia/logger-common": "4.23.3", + "@algolia/logger-console": "4.23.3", + "@algolia/recommend": "4.23.3", + "@algolia/requester-browser-xhr": "4.23.3", + "@algolia/requester-common": "4.23.3", + "@algolia/requester-node-http": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/algoliasearch-helper": { - "version": "3.16.3", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.16.3.tgz", - "integrity": "sha512-1OuJT6sONAa9PxcOmWo5WCAT3jQSpCR9/m5Azujja7nhUQwAUDvaaAYrcmUySsrvHh74usZHbE3jFfGnWtZj8w==", + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.19.0.tgz", + "integrity": "sha512-AaSb5DZDMZmDQyIy6lf4aL0OZGgyIdqvLIIvSuVQOIOqfhrYSY7TvotIFI2x0Q3cP3xUpTd7lI1astUC4aXBJw==", "dependencies": { "@algolia/events": "^4.0.1" }, @@ -4486,9 +4480,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.16", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "version": "10.4.19", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", "funding": [ { "type": "opencollective", @@ -4504,9 +4498,9 @@ } ], "dependencies": { - "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001538", - "fraction.js": "^4.3.6", + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001599", + "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -4726,9 +4720,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "funding": [ { "type": "opencollective", @@ -4744,8 +4738,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, @@ -4866,9 +4860,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001572", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001572.tgz", - "integrity": "sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==", + "version": "1.0.30001617", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001617.tgz", + "integrity": "sha512-mLyjzNI9I+Pix8zwcrpxEbGlfqOkF9kM3ptzmKNw5tizSyYwMe+nGLTqMK9cO+0E+Bh6TsBxNAaHWEM8xwSsmA==", "funding": [ { "type": "opencollective", @@ -5448,18 +5442,28 @@ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/cross-spawn": { @@ -5501,11 +5505,11 @@ } }, "node_modules/css-declaration-sorter": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", - "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", + "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", "engines": { - "node": "^10 || ^12 || >=14" + "node": "^14 || ^16 || >=18" }, "peerDependencies": { "postcss": "^8.0.9" @@ -5537,16 +5541,16 @@ } }, "node_modules/css-minimizer-webpack-plugin": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.2.2.tgz", - "integrity": "sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz", + "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==", "dependencies": { - "cssnano": "^5.1.8", - "jest-worker": "^29.1.2", - "postcss": "^8.4.17", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" + "@jridgewell/trace-mapping": "^0.3.18", + "cssnano": "^6.0.1", + "jest-worker": "^29.4.3", + "postcss": "^8.4.24", + "schema-utils": "^4.0.1", + "serialize-javascript": "^6.0.1" }, "engines": { "node": ">= 14.15.0" @@ -5579,14 +5583,6 @@ } } }, - "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/css-select": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", @@ -5603,23 +5599,15 @@ } }, "node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" }, "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-tree/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, "node_modules/css-what": { @@ -5645,108 +5633,139 @@ } }, "node_modules/cssnano": { - "version": "5.1.15", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", - "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", + "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", "dependencies": { - "cssnano-preset-default": "^5.2.14", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" + "cssnano-preset-default": "^6.1.2", + "lilconfig": "^3.1.1" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/cssnano" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/cssnano-preset-advanced": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.10.tgz", - "integrity": "sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz", + "integrity": "sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==", "dependencies": { - "autoprefixer": "^10.4.12", - "cssnano-preset-default": "^5.2.14", - "postcss-discard-unused": "^5.1.0", - "postcss-merge-idents": "^5.1.1", - "postcss-reduce-idents": "^5.2.0", - "postcss-zindex": "^5.1.0" + "autoprefixer": "^10.4.19", + "browserslist": "^4.23.0", + "cssnano-preset-default": "^6.1.2", + "postcss-discard-unused": "^6.0.5", + "postcss-merge-idents": "^6.0.3", + "postcss-reduce-idents": "^6.0.3", + "postcss-zindex": "^6.0.2" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/cssnano-preset-default": { - "version": "5.2.14", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", - "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", - "dependencies": { - "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.1", - "postcss-convert-values": "^5.1.3", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.4", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.4", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.1", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.2", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", + "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", + "dependencies": { + "browserslist": "^4.23.0", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^4.0.2", + "postcss-calc": "^9.0.1", + "postcss-colormin": "^6.1.0", + "postcss-convert-values": "^6.1.0", + "postcss-discard-comments": "^6.0.2", + "postcss-discard-duplicates": "^6.0.3", + "postcss-discard-empty": "^6.0.3", + "postcss-discard-overridden": "^6.0.2", + "postcss-merge-longhand": "^6.0.5", + "postcss-merge-rules": "^6.1.1", + "postcss-minify-font-values": "^6.1.0", + "postcss-minify-gradients": "^6.0.3", + "postcss-minify-params": "^6.1.0", + "postcss-minify-selectors": "^6.0.4", + "postcss-normalize-charset": "^6.0.2", + "postcss-normalize-display-values": "^6.0.2", + "postcss-normalize-positions": "^6.0.2", + "postcss-normalize-repeat-style": "^6.0.2", + "postcss-normalize-string": "^6.0.2", + "postcss-normalize-timing-functions": "^6.0.2", + "postcss-normalize-unicode": "^6.1.0", + "postcss-normalize-url": "^6.0.2", + "postcss-normalize-whitespace": "^6.0.2", + "postcss-ordered-values": "^6.0.2", + "postcss-reduce-initial": "^6.1.0", + "postcss-reduce-transforms": "^6.0.2", + "postcss-svgo": "^6.0.3", + "postcss-unique-selectors": "^6.0.4" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, "node_modules/cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", + "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano/node_modules/lilconfig": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", + "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", "dependencies": { - "css-tree": "^1.1.2" + "css-tree": "~2.2.0" }, "engines": { - "node": ">=8.0.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" } }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==" + }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", @@ -6146,9 +6165,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.617", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.617.tgz", - "integrity": "sha512-sYNE3QxcDS4ANW1k4S/wWYMXjCVcFSOX3Bg8jpuMFaXt/x8JCmp0R1Xe1ZXDX4WXnSRBf+GJ/3eGWicUuQq5cg==" + "version": "1.4.763", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.763.tgz", + "integrity": "sha512-k4J8NrtJ9QrvHLRo8Q18OncqBCB7tIUyqxRcJnlonQ0ioHKYB988GcDFF3ZePmnb8eHEopDs/wPHR/iGAFgoUQ==" }, "node_modules/emoji-regex": { "version": "9.2.2", @@ -9025,9 +9044,9 @@ } }, "node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" }, "node_modules/media-typer": { "version": "0.3.0", @@ -10973,17 +10992,6 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -11520,9 +11528,9 @@ } }, "node_modules/postcss": { - "version": "8.4.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", - "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", "funding": [ { "type": "opencollective", @@ -11540,112 +11548,115 @@ "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" } }, "node_modules/postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", + "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", "dependencies": { - "postcss-selector-parser": "^6.0.9", + "postcss-selector-parser": "^6.0.11", "postcss-value-parser": "^4.2.0" }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, "peerDependencies": { "postcss": "^8.2.2" } }, "node_modules/postcss-colormin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", - "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", + "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", "dependencies": { - "browserslist": "^4.21.4", + "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", - "colord": "^2.9.1", + "colord": "^2.9.3", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-convert-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", - "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", + "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", "dependencies": { - "browserslist": "^4.21.4", + "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", + "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", + "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", + "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", + "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-discard-unused": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-5.1.0.tgz", - "integrity": "sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz", + "integrity": "sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==", "dependencies": { - "postcss-selector-parser": "^6.0.5" + "postcss-selector-parser": "^6.0.16" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-import": { @@ -11753,136 +11764,111 @@ "webpack": "^5.0.0" } }, - "node_modules/postcss-loader/node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, "node_modules/postcss-merge-idents": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-5.1.1.tgz", - "integrity": "sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz", + "integrity": "sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==", "dependencies": { - "cssnano-utils": "^3.1.0", + "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-merge-longhand": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", - "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", + "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", "dependencies": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.1" + "stylehacks": "^6.1.1" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-merge-rules": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", - "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", + "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", "dependencies": { - "browserslist": "^4.21.4", + "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" + "cssnano-utils": "^4.0.2", + "postcss-selector-parser": "^6.0.16" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", + "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", + "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", + "colord": "^2.9.3", + "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-minify-params": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", - "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", + "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", "dependencies": { - "browserslist": "^4.21.4", - "cssnano-utils": "^3.1.0", + "browserslist": "^4.23.0", + "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", + "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", "dependencies": { - "postcss-selector-parser": "^6.0.5" + "postcss-selector-parser": "^6.0.16" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-modules-extract-imports": { @@ -11959,192 +11945,191 @@ } }, "node_modules/postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", + "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", + "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-positions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", - "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", + "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-repeat-style": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", - "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", + "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", + "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", + "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-unicode": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", - "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", + "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", "dependencies": { - "browserslist": "^4.21.4", + "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", + "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", "dependencies": { - "normalize-url": "^6.0.1", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", + "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-ordered-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", - "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", + "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", "dependencies": { - "cssnano-utils": "^3.1.0", + "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-reduce-idents": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-5.2.0.tgz", - "integrity": "sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz", + "integrity": "sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-reduce-initial": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", - "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", + "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", "dependencies": { - "browserslist": "^4.21.4", + "browserslist": "^4.23.0", "caniuse-api": "^3.0.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", + "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-selector-parser": { - "version": "6.0.15", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", - "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", + "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -12154,46 +12139,46 @@ } }, "node_modules/postcss-sort-media-queries": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-4.4.1.tgz", - "integrity": "sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz", + "integrity": "sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==", "dependencies": { - "sort-css-media-queries": "2.1.0" + "sort-css-media-queries": "2.2.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=14.0.0" }, "peerDependencies": { - "postcss": "^8.4.16" + "postcss": "^8.4.23" } }, "node_modules/postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", + "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", "dependencies": { "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" + "svgo": "^3.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >= 18" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", + "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", "dependencies": { - "postcss-selector-parser": "^6.0.5" + "postcss-selector-parser": "^6.0.16" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-value-parser": { @@ -12202,14 +12187,14 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, "node_modules/postcss-zindex": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-5.1.0.tgz", - "integrity": "sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-6.0.2.tgz", + "integrity": "sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==", "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/pretty-error": { @@ -12614,9 +12599,9 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/react-json-view-lite": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-1.2.1.tgz", - "integrity": "sha512-Itc0g86fytOmKZoIoJyGgvNqohWSbh3NXIKNgH6W6FT9PC1ck4xas1tT3Rr/b3UlFXyA9Jjaw9QSXdZy2JwGMQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-1.4.0.tgz", + "integrity": "sha512-wh6F6uJyYAmQ4fK0e8dSQMEWuvTs2Wr3el3sLD9bambX1+pSWUVXIz1RFaoy3TI1mZ0FqdpKq9YgbgTTgyrmXA==", "engines": { "node": ">=14" }, @@ -12626,12 +12611,11 @@ }, "node_modules/react-loadable": { "name": "@docusaurus/react-loadable", - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", - "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", + "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", "dependencies": { - "@types/react": "*", - "prop-types": "^15.6.2" + "@types/react": "*" }, "peerDependencies": { "react": "*" @@ -13678,6 +13662,15 @@ "node": ">=8" } }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/sockjs": { "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", @@ -13689,9 +13682,9 @@ } }, "node_modules/sort-css-media-queries": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.1.0.tgz", - "integrity": "sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz", + "integrity": "sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==", "engines": { "node": ">= 6.3.0" } @@ -13705,9 +13698,9 @@ } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "engines": { "node": ">=0.10.0" } @@ -13782,12 +13775,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" - }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -13954,18 +13941,18 @@ } }, "node_modules/stylehacks": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", - "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", + "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", "dependencies": { - "browserslist": "^4.21.4", - "postcss-selector-parser": "^6.0.4" + "browserslist": "^4.23.0", + "postcss-selector-parser": "^6.0.16" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/sucrase": { @@ -14068,23 +14055,27 @@ "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" }, "node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" }, "bin": { "svgo": "bin/svgo" }, "engines": { - "node": ">=10.13.0" + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" } }, "node_modules/svgo/node_modules/commander": { @@ -14095,69 +14086,6 @@ "node": ">= 10" } }, - "node_modules/svgo/node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/svgo/node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/svgo/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/svgo/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/svgo/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/tailwindcss": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.0.tgz", diff --git a/docs/package.json b/docs/package.json index 8ea3f2a0ccf..05165ae4b7e 100644 --- a/docs/package.json +++ b/docs/package.json @@ -15,12 +15,12 @@ "write-heading-ids": "docusaurus write-heading-ids" }, "dependencies": { - "@docusaurus/core": "^3.1.1", - "@docusaurus/plugin-client-redirects": "^3.1.1", - "@docusaurus/plugin-content-docs": "^3.1.1", - "@docusaurus/plugin-google-gtag": "^3.1.1", - "@docusaurus/plugin-sitemap": "^3.1.1", - "@docusaurus/preset-classic": "^3.1.1", + "@docusaurus/core": "^3.3.2", + "@docusaurus/plugin-client-redirects": "^3.3.2", + "@docusaurus/plugin-content-docs": "^3.3.2", + "@docusaurus/plugin-google-gtag": "^3.3.2", + "@docusaurus/plugin-sitemap": "^3.3.2", + "@docusaurus/preset-classic": "^3.3.2", "@easyops-cn/docusaurus-search-local": "^0.40.1", "@gracefullight/docusaurus-plugin-microsoft-clarity": "^1.0.0", "@mdx-js/react": "^3.0.0", @@ -36,7 +36,7 @@ "tailwindcss": "^3.4.0" }, "devDependencies": { - "@docusaurus/module-type-aliases": "^3.1.1" + "@docusaurus/module-type-aliases": "^3.3.2" }, "browserslist": { "production": [ From de92573ec9d6c27479d07e95375c7a211a6fdb1f Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Date: Mon, 13 May 2024 14:38:42 +0200 Subject: [PATCH 35/62] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3143a7be3d0..5298e31779f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -55,7 +55,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### State Machine Breaking -* (light-clients/07-tendermint) Fix: No-op to avoid panicking on `UpdateState` for invalid misbehaviour submissions. +* (light-clients/07-tendermint) [\#6276](https://github.com/cosmos/ibc-go/pull/6276) Fix: No-op to avoid panicking on `UpdateState` for invalid misbehaviour submissions. ### Improvements From 36d1335db57dfffd8e3f90698101e57bf4e8ad16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AC=A7yeah?= <54090171+ma68584703@users.noreply.github.com> Date: Mon, 13 May 2024 23:12:34 +0800 Subject: [PATCH 36/62] Typo fix (#6298) * typo: implement s -> implements * typo:passthrough -> pass through --------- Co-authored-by: Carlos Rodriguez --- modules/apps/29-fee/ibc_middleware.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/apps/29-fee/ibc_middleware.go b/modules/apps/29-fee/ibc_middleware.go index 8f5b0dca759..218efb08882 100644 --- a/modules/apps/29-fee/ibc_middleware.go +++ b/modules/apps/29-fee/ibc_middleware.go @@ -345,7 +345,7 @@ func (im IBCMiddleware) OnChanUpgradeInit( versionMetadata, err := types.MetadataFromVersion(proposedVersion) if err != nil { // since it is valid for fee version to not be specified, the upgrade version may be for a middleware - // or application further down in the stack. Thus, passthrough to next middleware or application in callstack. + // or application further down in the stack. Thus, pass through to next middleware or application in callstack. return cbs.OnChanUpgradeInit(ctx, portID, channelID, proposedOrder, proposedConnectionHops, proposedVersion) } @@ -367,7 +367,7 @@ func (im IBCMiddleware) OnChanUpgradeInit( return string(versionBz), nil } -// OnChanUpgradeTry implement s the IBCModule interface +// OnChanUpgradeTry implements the IBCModule interface func (im IBCMiddleware) OnChanUpgradeTry(ctx sdk.Context, portID, channelID string, proposedOrder channeltypes.Order, proposedConnectionHops []string, counterpartyVersion string) (string, error) { cbs, ok := im.app.(porttypes.UpgradableModule) if !ok { @@ -377,7 +377,7 @@ func (im IBCMiddleware) OnChanUpgradeTry(ctx sdk.Context, portID, channelID stri versionMetadata, err := types.MetadataFromVersion(counterpartyVersion) if err != nil { // since it is valid for fee version to not be specified, the counterparty upgrade version may be for a middleware - // or application further down in the stack. Thus, passthrough to next middleware or application in callstack. + // or application further down in the stack. Thus, pass through to next middleware or application in callstack. return cbs.OnChanUpgradeTry(ctx, portID, channelID, proposedOrder, proposedConnectionHops, counterpartyVersion) } @@ -409,7 +409,7 @@ func (im IBCMiddleware) OnChanUpgradeAck(ctx sdk.Context, portID, channelID, cou versionMetadata, err := types.MetadataFromVersion(counterpartyVersion) if err != nil { // since it is valid for fee version to not be specified, the counterparty upgrade version may be for a middleware - // or application further down in the stack. Thus, passthrough to next middleware or application in callstack. + // or application further down in the stack. Thus, pass through to next middleware or application in callstack. return cbs.OnChanUpgradeAck(ctx, portID, channelID, counterpartyVersion) } @@ -430,13 +430,13 @@ func (im IBCMiddleware) OnChanUpgradeOpen(ctx sdk.Context, portID, channelID str versionMetadata, err := types.MetadataFromVersion(proposedVersion) if err != nil { - // set fee disabled and passthrough to the next middleware or application in callstack. + // set fee disabled and pass through to the next middleware or application in callstack. im.keeper.DeleteFeeEnabled(ctx, portID, channelID) cbs.OnChanUpgradeOpen(ctx, portID, channelID, proposedOrder, proposedConnectionHops, proposedVersion) return } - // set fee enabled and passthrough to the next middleware of application in callstack. + // set fee enabled and pass through to the next middleware of application in callstack. im.keeper.SetFeeEnabled(ctx, portID, channelID) cbs.OnChanUpgradeOpen(ctx, portID, channelID, proposedOrder, proposedConnectionHops, versionMetadata.AppVersion) } From 3da483085feaa6bb46144bfc11b2e45a3edcbc52 Mon Sep 17 00:00:00 2001 From: Damian Nolan Date: Tue, 14 May 2024 09:42:57 +0200 Subject: [PATCH 37/62] imp: add updateClientCheckTx to redunant relayer ante decorator (#6279) * imp: add checkTxUpdateClient to redunant relayer ante decorator * chore: update godoc and duplicate imports * test: add coverage for checkTxUpdateClient func * chore: rename ante func to updateClientCheckTx --- modules/core/ante/ante.go | 37 ++++++++++++++++++++++++++++++++-- modules/core/ante/ante_test.go | 35 ++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+), 2 deletions(-) diff --git a/modules/core/ante/ante.go b/modules/core/ante/ante.go index 6ab7e63d26e..ac4950964a0 100644 --- a/modules/core/ante/ante.go +++ b/modules/core/ante/ante.go @@ -1,10 +1,13 @@ package ante import ( + errorsmod "cosmossdk.io/errors" + sdk "github.com/cosmos/cosmos-sdk/types" clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" + "github.com/cosmos/ibc-go/v8/modules/core/exported" "github.com/cosmos/ibc-go/v8/modules/core/keeper" ) @@ -70,8 +73,7 @@ func (rrd RedundantRelayDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simula packetMsgs++ case *clienttypes.MsgUpdateClient: - _, err := rrd.k.UpdateClient(ctx, msg) - if err != nil { + if err := rrd.updateClientCheckTx(ctx, msg); err != nil { return ctx, err } @@ -90,3 +92,34 @@ func (rrd RedundantRelayDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simula } return next(ctx, tx, simulate) } + +// updateClientCheckTx runs a subset of ibc client update logic to be used specifically within the RedundantRelayDecorator AnteHandler. +// The following function performs ibc client message verification for CheckTx only and state updates in both CheckTx and ReCheckTx. +// Note that misbehaviour checks are omitted. +func (rrd RedundantRelayDecorator) updateClientCheckTx(ctx sdk.Context, msg *clienttypes.MsgUpdateClient) error { + clientMsg, err := clienttypes.UnpackClientMessage(msg.ClientMessage) + if err != nil { + return err + } + + if status := rrd.k.ClientKeeper.GetClientStatus(ctx, msg.ClientId); status != exported.Active { + return errorsmod.Wrapf(clienttypes.ErrClientNotActive, "cannot update client (%s) with status %s", msg.ClientId, status) + } + + clientModule, found := rrd.k.ClientKeeper.Route(msg.ClientId) + if !found { + return errorsmod.Wrap(clienttypes.ErrRouteNotFound, msg.ClientId) + } + + if !ctx.IsReCheckTx() { + if err := clientModule.VerifyClientMessage(ctx, msg.ClientId, clientMsg); err != nil { + return err + } + } + + heights := clientModule.UpdateState(ctx, msg.ClientId, clientMsg) + + ctx.Logger().With("module", "x/"+exported.ModuleName).Debug("ante ibc client update", "consensusHeights", heights) + + return nil +} diff --git a/modules/core/ante/ante_test.go b/modules/core/ante/ante_test.go index 8f5071e13fe..2033f1f4e18 100644 --- a/modules/core/ante/ante_test.go +++ b/modules/core/ante/ante_test.go @@ -6,6 +6,7 @@ import ( "github.com/stretchr/testify/require" testifysuite "github.com/stretchr/testify/suite" + codectypes "github.com/cosmos/cosmos-sdk/codec/types" sdk "github.com/cosmos/cosmos-sdk/types" clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" @@ -13,6 +14,7 @@ import ( host "github.com/cosmos/ibc-go/v8/modules/core/24-host" "github.com/cosmos/ibc-go/v8/modules/core/ante" "github.com/cosmos/ibc-go/v8/modules/core/exported" + ibctm "github.com/cosmos/ibc-go/v8/modules/light-clients/07-tendermint" ibctesting "github.com/cosmos/ibc-go/v8/testing" ) @@ -387,6 +389,39 @@ func (suite *AnteTestSuite) TestAnteDecorator() { }, false, }, + { + "no success on one new UpdateClient message: invalid client identifier", + func(suite *AnteTestSuite) []sdk.Msg { + clientMsg, err := codectypes.NewAnyWithValue(&ibctm.Header{}) + suite.Require().NoError(err) + + msgs := []sdk.Msg{&clienttypes.MsgUpdateClient{ClientId: ibctesting.InvalidID, ClientMessage: clientMsg}} + return msgs + }, + false, + }, + { + "no success on one new UpdateClient message: client module not found", + func(suite *AnteTestSuite) []sdk.Msg { + clientMsg, err := codectypes.NewAnyWithValue(&ibctm.Header{}) + suite.Require().NoError(err) + + msgs := []sdk.Msg{&clienttypes.MsgUpdateClient{ClientId: clienttypes.FormatClientIdentifier("08-wasm", 1), ClientMessage: clientMsg}} + return msgs + }, + false, + }, + { + "no success on one new UpdateClient message: no consensus state for trusted height", + func(suite *AnteTestSuite) []sdk.Msg { + clientMsg, err := codectypes.NewAnyWithValue(&ibctm.Header{TrustedHeight: clienttypes.NewHeight(1, 10000)}) + suite.Require().NoError(err) + + msgs := []sdk.Msg{&clienttypes.MsgUpdateClient{ClientId: suite.path.EndpointA.ClientID, ClientMessage: clientMsg}} + return msgs + }, + false, + }, { "no success on three new UpdateClient messages and three redundant messages of each type", func(suite *AnteTestSuite) []sdk.Msg { From 5aa892215d21e1c9fe4b68e68f1d7f7be8892d9d Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Date: Tue, 14 May 2024 15:04:04 +0200 Subject: [PATCH 38/62] docs: documentation for v7.5.x (#6271) * docs: add versioned folder for v7.5.x * docs for ICA unordered channels and queries * docs for allowed memo strings for transfer authorizations * delete v7.4.x docs * Apply suggestions from code review Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * update link --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- .../00-intro.md | 0 .../01-ibc/01-overview.md | 0 .../01-ibc/02-integration.md | 0 .../01-ibc/03-apps/01-apps.md | 0 .../01-ibc/03-apps/02-ibcmodule.md | 0 .../01-ibc/03-apps/03-bindports.md | 0 .../01-ibc/03-apps/04-keeper.md | 0 .../01-ibc/03-apps/05-packets_acks.md | 0 .../01-ibc/03-apps/06-routing.md | 0 .../01-ibc/03-apps/_category_.json | 0 .../01-ibc/03-apps/images/packet_flow.png | Bin .../01-ibc/04-middleware/01-develop.md | 0 .../01-ibc/04-middleware/02-integration.md | 0 .../01-ibc/04-middleware/_category_.json | 0 .../01-ibc/05-upgrades/00-intro.md | 0 .../01-ibc/05-upgrades/01-quick-guide.md | 0 .../01-ibc/05-upgrades/02-developer-guide.md | 0 .../01-ibc/05-upgrades/03-genesis-restart.md | 0 .../01-ibc/05-upgrades/_category_.json | 0 .../01-ibc/06-proposals.md | 0 .../01-ibc/07-relayer.md | 0 .../01-ibc/08-proto-docs.md | 0 .../01-ibc/09-roadmap.md | 0 .../01-ibc/10-troubleshooting.md | 0 .../01-ibc/_category_.json | 0 .../02-apps/01-transfer/01-overview.md | 0 .../02-apps/01-transfer/02-state.md | 0 .../01-transfer/03-state-transitions.md | 0 .../02-apps/01-transfer/04-messages.md | 0 .../02-apps/01-transfer/05-events.md | 0 .../02-apps/01-transfer/06-metrics.md | 0 .../02-apps/01-transfer/07-params.md | 0 .../02-apps/01-transfer/08-authorizations.md | 2 + .../02-apps/01-transfer/09-client.md | 0 .../02-apps/01-transfer/_category_.json | 0 .../02-interchain-accounts/01-overview.md | 0 .../02-interchain-accounts/02-development.md | 0 .../02-interchain-accounts/03-auth-modules.md | 0 .../02-interchain-accounts/04-integration.md | 5 +- .../02-interchain-accounts/05-messages.md | 64 ++++++++++++++++++ .../02-interchain-accounts/06-parameters.md | 0 .../02-interchain-accounts/07-tx-encoding.md | 0 .../02-interchain-accounts/08-client.md | 0 .../09-active-channels.md | 8 ++- .../10-legacy/01-auth-modules.md | 0 .../10-legacy/02-integration.md | 2 + .../10-legacy/03-keeper-api.md | 2 + .../10-legacy/_category_.json | 0 .../10-legacy/images/ica-pre-v6.png | Bin .../02-interchain-accounts/_category_.json | 0 .../02-interchain-accounts/images/ica-v6.png | Bin .../02-apps/_category_.json | 0 .../01-developer-guide/01-overview.md | 0 .../01-developer-guide/02-client-state.md | 0 .../01-developer-guide/03-consensus-state.md | 0 .../04-updates-and-misbehaviour.md | 0 .../01-developer-guide/05-upgrades.md | 0 .../01-developer-guide/06-proofs.md | 0 .../01-developer-guide/07-proposals.md | 0 .../01-developer-guide/08-genesis.md | 0 .../01-developer-guide/09-setup.md | 0 .../01-developer-guide/_category_.json | 0 .../02-solomachine/01-solomachine.md | 0 .../02-solomachine/02-concepts.md | 0 .../02-solomachine/03-state.md | 0 .../02-solomachine/04-state_transitions.md | 0 .../02-solomachine/_category_.json | 0 .../03-localhost/01-overview.md | 0 .../03-localhost/02-integration.md | 0 .../03-localhost/03-client-state.md | 0 .../03-localhost/04-connection.md | 0 .../03-localhost/05-state-verification.md | 0 .../03-localhost/_category_.json | 0 .../03-light-clients/04-wasm/01-overview.md | 0 .../03-light-clients/04-wasm/02-concepts.md | 0 .../04-wasm/03-integration.md | 0 .../03-light-clients/04-wasm/04-messages.md | 0 .../03-light-clients/04-wasm/05-governance.md | 0 .../03-light-clients/04-wasm/06-events.md | 0 .../03-light-clients/04-wasm/07-contracts.md | 0 .../03-light-clients/04-wasm/08-client.md | 0 .../03-light-clients/04-wasm/_category_.json | 0 .../03-light-clients/_category_.json | 0 .../04-middleware/01-ics29-fee/01-overview.md | 0 .../01-ics29-fee/02-integration.md | 0 .../04-middleware/01-ics29-fee/03-msgs.md | 0 .../01-ics29-fee/04-fee-distribution.md | 0 .../04-middleware/01-ics29-fee/05-events.md | 0 .../01-ics29-fee/06-end-users.md | 0 .../01-ics29-fee/_category_.json | 0 .../01-ics29-fee/images/feeflow.png | Bin .../01-ics29-fee/images/msgpaypacket.png | Bin .../01-ics29-fee/images/paypacketfeeasync.png | Bin .../04-middleware/02-callbacks/01-overview.md | 0 .../02-callbacks/02-integration.md | 0 .../02-callbacks/03-interfaces.md | 0 .../04-middleware/02-callbacks/04-events.md | 0 .../02-callbacks/05-end-users.md | 0 .../04-middleware/02-callbacks/06-gas.md | 0 .../02-callbacks/_category_.json | 0 .../02-callbacks/images/callbackflow.svg | 0 .../02-callbacks/images/ics4-callbackflow.svg | 0 .../04-middleware/_category_.json | 0 .../01-support-denoms-with-slashes.md | 0 .../05-migrations/02-sdk-to-v1.md | 0 .../05-migrations/03-v1-to-v2.md | 0 .../05-migrations/04-v2-to-v3.md | 0 .../05-migrations/05-v3-to-v4.md | 0 .../05-migrations/06-v4-to-v5.md | 0 .../05-migrations/07-v5-to-v6.md | 0 .../05-migrations/08-v6-to-v7.md | 0 .../05-migrations/09-v7-to-v7_1.md | 0 .../05-migrations/10-v7_2-to-v7_3.md | 0 .../05-migrations/_category_.json | 0 .../images/auth-module-decision-tree.png | Bin ...bars.json => version-v7.5.x-sidebars.json} | 0 docs/versions.json | 2 +- 117 files changed, 82 insertions(+), 3 deletions(-) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/00-intro.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/01-ibc/01-overview.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/01-ibc/02-integration.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/01-ibc/03-apps/01-apps.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/01-ibc/03-apps/02-ibcmodule.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/01-ibc/03-apps/03-bindports.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/01-ibc/03-apps/04-keeper.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/01-ibc/03-apps/05-packets_acks.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/01-ibc/03-apps/06-routing.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/01-ibc/03-apps/_category_.json (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/01-ibc/03-apps/images/packet_flow.png (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/01-ibc/04-middleware/01-develop.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/01-ibc/04-middleware/02-integration.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/01-ibc/04-middleware/_category_.json (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/01-ibc/05-upgrades/00-intro.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/01-ibc/05-upgrades/01-quick-guide.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/01-ibc/05-upgrades/02-developer-guide.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/01-ibc/05-upgrades/03-genesis-restart.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/01-ibc/05-upgrades/_category_.json (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/01-ibc/06-proposals.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/01-ibc/07-relayer.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/01-ibc/08-proto-docs.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/01-ibc/09-roadmap.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/01-ibc/10-troubleshooting.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/01-ibc/_category_.json (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/01-transfer/01-overview.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/01-transfer/02-state.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/01-transfer/03-state-transitions.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/01-transfer/04-messages.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/01-transfer/05-events.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/01-transfer/06-metrics.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/01-transfer/07-params.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/01-transfer/08-authorizations.md (88%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/01-transfer/09-client.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/01-transfer/_category_.json (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/02-interchain-accounts/01-overview.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/02-interchain-accounts/02-development.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/02-interchain-accounts/03-auth-modules.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/02-interchain-accounts/04-integration.md (94%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/02-interchain-accounts/05-messages.md (55%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/02-interchain-accounts/06-parameters.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/02-interchain-accounts/07-tx-encoding.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/02-interchain-accounts/08-client.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/02-interchain-accounts/09-active-channels.md (76%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/02-interchain-accounts/10-legacy/01-auth-modules.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/02-interchain-accounts/10-legacy/02-integration.md (95%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/02-interchain-accounts/10-legacy/03-keeper-api.md (92%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/02-interchain-accounts/10-legacy/_category_.json (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/02-interchain-accounts/10-legacy/images/ica-pre-v6.png (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/02-interchain-accounts/_category_.json (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/02-interchain-accounts/images/ica-v6.png (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/02-apps/_category_.json (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/01-developer-guide/01-overview.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/01-developer-guide/02-client-state.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/01-developer-guide/03-consensus-state.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/01-developer-guide/04-updates-and-misbehaviour.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/01-developer-guide/05-upgrades.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/01-developer-guide/06-proofs.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/01-developer-guide/07-proposals.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/01-developer-guide/08-genesis.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/01-developer-guide/09-setup.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/01-developer-guide/_category_.json (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/02-solomachine/01-solomachine.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/02-solomachine/02-concepts.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/02-solomachine/03-state.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/02-solomachine/04-state_transitions.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/02-solomachine/_category_.json (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/03-localhost/01-overview.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/03-localhost/02-integration.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/03-localhost/03-client-state.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/03-localhost/04-connection.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/03-localhost/05-state-verification.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/03-localhost/_category_.json (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/04-wasm/01-overview.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/04-wasm/02-concepts.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/04-wasm/03-integration.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/04-wasm/04-messages.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/04-wasm/05-governance.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/04-wasm/06-events.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/04-wasm/07-contracts.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/04-wasm/08-client.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/04-wasm/_category_.json (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/03-light-clients/_category_.json (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/04-middleware/01-ics29-fee/01-overview.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/04-middleware/01-ics29-fee/02-integration.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/04-middleware/01-ics29-fee/03-msgs.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/04-middleware/01-ics29-fee/04-fee-distribution.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/04-middleware/01-ics29-fee/05-events.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/04-middleware/01-ics29-fee/06-end-users.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/04-middleware/01-ics29-fee/_category_.json (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/04-middleware/01-ics29-fee/images/feeflow.png (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/04-middleware/01-ics29-fee/images/msgpaypacket.png (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/04-middleware/01-ics29-fee/images/paypacketfeeasync.png (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/04-middleware/02-callbacks/01-overview.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/04-middleware/02-callbacks/02-integration.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/04-middleware/02-callbacks/03-interfaces.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/04-middleware/02-callbacks/04-events.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/04-middleware/02-callbacks/05-end-users.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/04-middleware/02-callbacks/06-gas.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/04-middleware/02-callbacks/_category_.json (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/04-middleware/02-callbacks/images/callbackflow.svg (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/04-middleware/02-callbacks/images/ics4-callbackflow.svg (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/04-middleware/_category_.json (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/05-migrations/01-support-denoms-with-slashes.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/05-migrations/02-sdk-to-v1.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/05-migrations/03-v1-to-v2.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/05-migrations/04-v2-to-v3.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/05-migrations/05-v3-to-v4.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/05-migrations/06-v4-to-v5.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/05-migrations/07-v5-to-v6.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/05-migrations/08-v6-to-v7.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/05-migrations/09-v7-to-v7_1.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/05-migrations/10-v7_2-to-v7_3.md (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/05-migrations/_category_.json (100%) rename docs/versioned_docs/{version-v7.4.x => version-v7.5.x}/05-migrations/images/auth-module-decision-tree.png (100%) rename docs/versioned_sidebars/{version-v7.4.x-sidebars.json => version-v7.5.x-sidebars.json} (100%) diff --git a/docs/versioned_docs/version-v7.4.x/00-intro.md b/docs/versioned_docs/version-v7.5.x/00-intro.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/00-intro.md rename to docs/versioned_docs/version-v7.5.x/00-intro.md diff --git a/docs/versioned_docs/version-v7.4.x/01-ibc/01-overview.md b/docs/versioned_docs/version-v7.5.x/01-ibc/01-overview.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/01-ibc/01-overview.md rename to docs/versioned_docs/version-v7.5.x/01-ibc/01-overview.md diff --git a/docs/versioned_docs/version-v7.4.x/01-ibc/02-integration.md b/docs/versioned_docs/version-v7.5.x/01-ibc/02-integration.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/01-ibc/02-integration.md rename to docs/versioned_docs/version-v7.5.x/01-ibc/02-integration.md diff --git a/docs/versioned_docs/version-v7.4.x/01-ibc/03-apps/01-apps.md b/docs/versioned_docs/version-v7.5.x/01-ibc/03-apps/01-apps.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/01-ibc/03-apps/01-apps.md rename to docs/versioned_docs/version-v7.5.x/01-ibc/03-apps/01-apps.md diff --git a/docs/versioned_docs/version-v7.4.x/01-ibc/03-apps/02-ibcmodule.md b/docs/versioned_docs/version-v7.5.x/01-ibc/03-apps/02-ibcmodule.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/01-ibc/03-apps/02-ibcmodule.md rename to docs/versioned_docs/version-v7.5.x/01-ibc/03-apps/02-ibcmodule.md diff --git a/docs/versioned_docs/version-v7.4.x/01-ibc/03-apps/03-bindports.md b/docs/versioned_docs/version-v7.5.x/01-ibc/03-apps/03-bindports.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/01-ibc/03-apps/03-bindports.md rename to docs/versioned_docs/version-v7.5.x/01-ibc/03-apps/03-bindports.md diff --git a/docs/versioned_docs/version-v7.4.x/01-ibc/03-apps/04-keeper.md b/docs/versioned_docs/version-v7.5.x/01-ibc/03-apps/04-keeper.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/01-ibc/03-apps/04-keeper.md rename to docs/versioned_docs/version-v7.5.x/01-ibc/03-apps/04-keeper.md diff --git a/docs/versioned_docs/version-v7.4.x/01-ibc/03-apps/05-packets_acks.md b/docs/versioned_docs/version-v7.5.x/01-ibc/03-apps/05-packets_acks.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/01-ibc/03-apps/05-packets_acks.md rename to docs/versioned_docs/version-v7.5.x/01-ibc/03-apps/05-packets_acks.md diff --git a/docs/versioned_docs/version-v7.4.x/01-ibc/03-apps/06-routing.md b/docs/versioned_docs/version-v7.5.x/01-ibc/03-apps/06-routing.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/01-ibc/03-apps/06-routing.md rename to docs/versioned_docs/version-v7.5.x/01-ibc/03-apps/06-routing.md diff --git a/docs/versioned_docs/version-v7.4.x/01-ibc/03-apps/_category_.json b/docs/versioned_docs/version-v7.5.x/01-ibc/03-apps/_category_.json similarity index 100% rename from docs/versioned_docs/version-v7.4.x/01-ibc/03-apps/_category_.json rename to docs/versioned_docs/version-v7.5.x/01-ibc/03-apps/_category_.json diff --git a/docs/versioned_docs/version-v7.4.x/01-ibc/03-apps/images/packet_flow.png b/docs/versioned_docs/version-v7.5.x/01-ibc/03-apps/images/packet_flow.png similarity index 100% rename from docs/versioned_docs/version-v7.4.x/01-ibc/03-apps/images/packet_flow.png rename to docs/versioned_docs/version-v7.5.x/01-ibc/03-apps/images/packet_flow.png diff --git a/docs/versioned_docs/version-v7.4.x/01-ibc/04-middleware/01-develop.md b/docs/versioned_docs/version-v7.5.x/01-ibc/04-middleware/01-develop.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/01-ibc/04-middleware/01-develop.md rename to docs/versioned_docs/version-v7.5.x/01-ibc/04-middleware/01-develop.md diff --git a/docs/versioned_docs/version-v7.4.x/01-ibc/04-middleware/02-integration.md b/docs/versioned_docs/version-v7.5.x/01-ibc/04-middleware/02-integration.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/01-ibc/04-middleware/02-integration.md rename to docs/versioned_docs/version-v7.5.x/01-ibc/04-middleware/02-integration.md diff --git a/docs/versioned_docs/version-v7.4.x/01-ibc/04-middleware/_category_.json b/docs/versioned_docs/version-v7.5.x/01-ibc/04-middleware/_category_.json similarity index 100% rename from docs/versioned_docs/version-v7.4.x/01-ibc/04-middleware/_category_.json rename to docs/versioned_docs/version-v7.5.x/01-ibc/04-middleware/_category_.json diff --git a/docs/versioned_docs/version-v7.4.x/01-ibc/05-upgrades/00-intro.md b/docs/versioned_docs/version-v7.5.x/01-ibc/05-upgrades/00-intro.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/01-ibc/05-upgrades/00-intro.md rename to docs/versioned_docs/version-v7.5.x/01-ibc/05-upgrades/00-intro.md diff --git a/docs/versioned_docs/version-v7.4.x/01-ibc/05-upgrades/01-quick-guide.md b/docs/versioned_docs/version-v7.5.x/01-ibc/05-upgrades/01-quick-guide.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/01-ibc/05-upgrades/01-quick-guide.md rename to docs/versioned_docs/version-v7.5.x/01-ibc/05-upgrades/01-quick-guide.md diff --git a/docs/versioned_docs/version-v7.4.x/01-ibc/05-upgrades/02-developer-guide.md b/docs/versioned_docs/version-v7.5.x/01-ibc/05-upgrades/02-developer-guide.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/01-ibc/05-upgrades/02-developer-guide.md rename to docs/versioned_docs/version-v7.5.x/01-ibc/05-upgrades/02-developer-guide.md diff --git a/docs/versioned_docs/version-v7.4.x/01-ibc/05-upgrades/03-genesis-restart.md b/docs/versioned_docs/version-v7.5.x/01-ibc/05-upgrades/03-genesis-restart.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/01-ibc/05-upgrades/03-genesis-restart.md rename to docs/versioned_docs/version-v7.5.x/01-ibc/05-upgrades/03-genesis-restart.md diff --git a/docs/versioned_docs/version-v7.4.x/01-ibc/05-upgrades/_category_.json b/docs/versioned_docs/version-v7.5.x/01-ibc/05-upgrades/_category_.json similarity index 100% rename from docs/versioned_docs/version-v7.4.x/01-ibc/05-upgrades/_category_.json rename to docs/versioned_docs/version-v7.5.x/01-ibc/05-upgrades/_category_.json diff --git a/docs/versioned_docs/version-v7.4.x/01-ibc/06-proposals.md b/docs/versioned_docs/version-v7.5.x/01-ibc/06-proposals.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/01-ibc/06-proposals.md rename to docs/versioned_docs/version-v7.5.x/01-ibc/06-proposals.md diff --git a/docs/versioned_docs/version-v7.4.x/01-ibc/07-relayer.md b/docs/versioned_docs/version-v7.5.x/01-ibc/07-relayer.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/01-ibc/07-relayer.md rename to docs/versioned_docs/version-v7.5.x/01-ibc/07-relayer.md diff --git a/docs/versioned_docs/version-v7.4.x/01-ibc/08-proto-docs.md b/docs/versioned_docs/version-v7.5.x/01-ibc/08-proto-docs.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/01-ibc/08-proto-docs.md rename to docs/versioned_docs/version-v7.5.x/01-ibc/08-proto-docs.md diff --git a/docs/versioned_docs/version-v7.4.x/01-ibc/09-roadmap.md b/docs/versioned_docs/version-v7.5.x/01-ibc/09-roadmap.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/01-ibc/09-roadmap.md rename to docs/versioned_docs/version-v7.5.x/01-ibc/09-roadmap.md diff --git a/docs/versioned_docs/version-v7.4.x/01-ibc/10-troubleshooting.md b/docs/versioned_docs/version-v7.5.x/01-ibc/10-troubleshooting.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/01-ibc/10-troubleshooting.md rename to docs/versioned_docs/version-v7.5.x/01-ibc/10-troubleshooting.md diff --git a/docs/versioned_docs/version-v7.4.x/01-ibc/_category_.json b/docs/versioned_docs/version-v7.5.x/01-ibc/_category_.json similarity index 100% rename from docs/versioned_docs/version-v7.4.x/01-ibc/_category_.json rename to docs/versioned_docs/version-v7.5.x/01-ibc/_category_.json diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/01-transfer/01-overview.md b/docs/versioned_docs/version-v7.5.x/02-apps/01-transfer/01-overview.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/02-apps/01-transfer/01-overview.md rename to docs/versioned_docs/version-v7.5.x/02-apps/01-transfer/01-overview.md diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/01-transfer/02-state.md b/docs/versioned_docs/version-v7.5.x/02-apps/01-transfer/02-state.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/02-apps/01-transfer/02-state.md rename to docs/versioned_docs/version-v7.5.x/02-apps/01-transfer/02-state.md diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/01-transfer/03-state-transitions.md b/docs/versioned_docs/version-v7.5.x/02-apps/01-transfer/03-state-transitions.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/02-apps/01-transfer/03-state-transitions.md rename to docs/versioned_docs/version-v7.5.x/02-apps/01-transfer/03-state-transitions.md diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/01-transfer/04-messages.md b/docs/versioned_docs/version-v7.5.x/02-apps/01-transfer/04-messages.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/02-apps/01-transfer/04-messages.md rename to docs/versioned_docs/version-v7.5.x/02-apps/01-transfer/04-messages.md diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/01-transfer/05-events.md b/docs/versioned_docs/version-v7.5.x/02-apps/01-transfer/05-events.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/02-apps/01-transfer/05-events.md rename to docs/versioned_docs/version-v7.5.x/02-apps/01-transfer/05-events.md diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/01-transfer/06-metrics.md b/docs/versioned_docs/version-v7.5.x/02-apps/01-transfer/06-metrics.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/02-apps/01-transfer/06-metrics.md rename to docs/versioned_docs/version-v7.5.x/02-apps/01-transfer/06-metrics.md diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/01-transfer/07-params.md b/docs/versioned_docs/version-v7.5.x/02-apps/01-transfer/07-params.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/02-apps/01-transfer/07-params.md rename to docs/versioned_docs/version-v7.5.x/02-apps/01-transfer/07-params.md diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/01-transfer/08-authorizations.md b/docs/versioned_docs/version-v7.5.x/02-apps/01-transfer/08-authorizations.md similarity index 88% rename from docs/versioned_docs/version-v7.4.x/02-apps/01-transfer/08-authorizations.md rename to docs/versioned_docs/version-v7.5.x/02-apps/01-transfer/08-authorizations.md index 1f207c0fa35..18fd25460ef 100644 --- a/docs/versioned_docs/version-v7.4.x/02-apps/01-transfer/08-authorizations.md +++ b/docs/versioned_docs/version-v7.5.x/02-apps/01-transfer/08-authorizations.md @@ -24,6 +24,8 @@ It takes: - an `AllowList` list that specifies the list of addresses that are allowed to receive funds. If this list is empty, then all addresses are allowed to receive funds from the `TransferAuthorization`. +- an `AllowedPacketData` list that specifies the list of memo strings that are allowed to be included in the memo field of the packet. If this list is empty, then only an empty memo is allowed (a `memo` field with non-empty content will be denied). If this list includes a single element equal to `"*"`, then any content in the `memo` field will be allowed. + Setting a `TransferAuthorization` is expected to fail if: - the spend limit is nil diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/01-transfer/09-client.md b/docs/versioned_docs/version-v7.5.x/02-apps/01-transfer/09-client.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/02-apps/01-transfer/09-client.md rename to docs/versioned_docs/version-v7.5.x/02-apps/01-transfer/09-client.md diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/01-transfer/_category_.json b/docs/versioned_docs/version-v7.5.x/02-apps/01-transfer/_category_.json similarity index 100% rename from docs/versioned_docs/version-v7.4.x/02-apps/01-transfer/_category_.json rename to docs/versioned_docs/version-v7.5.x/02-apps/01-transfer/_category_.json diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/01-overview.md b/docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/01-overview.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/01-overview.md rename to docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/01-overview.md diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/02-development.md b/docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/02-development.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/02-development.md rename to docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/02-development.md diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/03-auth-modules.md b/docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/03-auth-modules.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/03-auth-modules.md rename to docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/03-auth-modules.md diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/04-integration.md b/docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/04-integration.md similarity index 94% rename from docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/04-integration.md rename to docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/04-integration.md index 373ff3ce5bf..1cd972f0bf6 100644 --- a/docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/04-integration.md +++ b/docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/04-integration.md @@ -20,6 +20,8 @@ Interchain Account authentication modules (both custom or generic, such as the ` ![ica-v6.png](./images/ica-v6.png) +> Please note that since ibc-go v7.5.0 it is mandatory to register the gRPC query router after the creation of the host submodule's keeper; otherwise, nodes will not start. The query router is used to execute on the host query messages encoded in the ICA packet data. Please check the sample integration code below for more details. + ## Example integration ```go @@ -84,13 +86,14 @@ app.ICAControllerKeeper = icacontrollerkeeper.NewKeeper( app.IBCKeeper.ChannelKeeper, // may be replaced with middleware such as ics29 fee app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper, scopedICAControllerKeeper, app.MsgServiceRouter(), -) +) app.ICAHostKeeper = icahostkeeper.NewKeeper( appCodec, keys[icahosttypes.StoreKey], app.GetSubspace(icahosttypes.SubModuleName), app.IBCKeeper.ChannelKeeper, // may be replaced with middleware such as ics29 fee app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper, app.AccountKeeper, scopedICAHostKeeper, app.MsgServiceRouter(), ) +app.ICAHostKeeper.WithQueryRouter(app.GRPCQueryRouter()) // Create Interchain Accounts AppModule icaModule := ica.NewAppModule(&app.ICAControllerKeeper, &app.ICAHostKeeper) diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/05-messages.md b/docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/05-messages.md similarity index 55% rename from docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/05-messages.md rename to docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/05-messages.md index c6c546e82cf..bedccef5f83 100644 --- a/docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/05-messages.md +++ b/docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/05-messages.md @@ -71,6 +71,70 @@ type MsgSendTxResponse struct { The packet `Sequence` is returned in the message response. +### Queries + +It is possible to use [`MsgModuleQuerySafe`](https://github.com/cosmos/ibc-go/blob/v7.5.0/proto/ibc/applications/interchain_accounts/host/v1/tx.proto#L32-L39) to execute a list of queries on the host chain. This message can be included in the list of encoded `sdk.Msg`s of `InterchainPacketData`. The host chain will return on the acknowledgment the responses for all the queries. Please note that only module safe queries can be executed ([deterministic queries that are safe to be called from within the state machine](https://docs.cosmos.network/main/build/building-modules/query-services#calling-queries-from-the-state-machine)). + +The queries available from Cosmos SDK are: + +```plaintext +/cosmos.staking.v1beta1.Query/Validators, +/cosmos.staking.v1beta1.Query/Validator, +/cosmos.staking.v1beta1.Query/ValidatorDelegations", +/cosmos.staking.v1beta1.Query/ValidatorUnbondingDelegations +/cosmos.staking.v1beta1.Query/Delegation +/cosmos.staking.v1beta1.Query/UnbondingDelegation +/cosmos.staking.v1beta1.Query/DelegatorDelegations +/cosmos.staking.v1beta1.Query/DelegatorUnbondingDelegations +/cosmos.staking.v1beta1.Query/Redelegations +/cosmos.staking.v1beta1.Query/DelegatorValidators +/cosmos.staking.v1beta1.Query/DelegatorValidator +/cosmos.staking.v1beta1.Query/HistoricalInfo +/cosmos.staking.v1beta1.Query/Pool +/cosmos.staking.v1beta1.Query/Params +/cosmos.bank.v1beta1.Query/Balance +/cosmos.bank.v1beta1.Query/AllBalances +/cosmos.bank.v1beta1.Query/SpendableBalances +/cosmos.bank.v1beta1.Query/SpendableBalanceByDenom +/cosmos.bank.v1beta1.Query/TotalSupply +/cosmos.bank.v1beta1.Query/SupplyOf +/cosmos.bank.v1beta1.Query/Params +/cosmos.bank.v1beta1.Query/DenomMetadata +/cosmos.bank.v1beta1.Query/DenomsMetadata +/cosmos.bank.v1beta1.Query/DenomOwners +/cosmos.bank.v1beta1.Query/SendEnabled +/cosmos.auth.v1beta1.Query/Accounts +/cosmos.auth.v1beta1.Query/Account +/cosmos.auth.v1beta1.Query/AccountAddressByID +/cosmos.auth.v1beta1.Query/Params +/cosmos.auth.v1beta1.Query/ModuleAccounts +/cosmos.auth.v1beta1.Query/ModuleAccountByName +/cosmos.auth.v1beta1.Query/AccountInfo +``` + +The following code block shows an example of how `MsgModuleQuerySafe` can be used to query the account balance of an account on the host chain. The resulting packet data variable is used to set the `PacketData` of `MsgSendTx`. + +```go +balanceQuery := banktypes.NewQueryBalanceRequest("cosmos1...", "uatom") +queryBz, err := balanceQuery.Marshal() + +// signer of message must be the interchain account on the host +queryMsg := icahosttypes.NewMsgModuleQuerySafe("cosmos2...", []*icahosttypes.QueryRequest{ + { + Path: "/cosmos.bank.v1beta1.Query/Balance", + Data: queryBz, + }, +}) + +bz, err := icatypes.SerializeCosmosTx(cdc, []proto.Message{queryMsg}, icatypes.EncodingProtobuf) + +packetData := icatypes.InterchainAccountPacketData{ + Type: icatypes.EXECUTE_TX, + Data: bz, + Memo: "", +} +``` + ## Atomicity As the Interchain Accounts module supports the execution of multiple transactions using the Cosmos SDK `Msg` interface, it provides the same atomicity guarantees as Cosmos SDK-based applications, leveraging the [`CacheMultiStore`](https://docs.cosmos.network/main/learn/advanced/store#cachemultistore) architecture provided by the [`Context`](https://docs.cosmos.network/main/learn/advanced/context.html) type. diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/06-parameters.md b/docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/06-parameters.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/06-parameters.md rename to docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/06-parameters.md diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/07-tx-encoding.md b/docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/07-tx-encoding.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/07-tx-encoding.md rename to docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/07-tx-encoding.md diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/08-client.md b/docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/08-client.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/08-client.md rename to docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/08-client.md diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/09-active-channels.md b/docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/09-active-channels.md similarity index 76% rename from docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/09-active-channels.md rename to docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/09-active-channels.md index 3cb521b4bf3..ae471f0dcc8 100644 --- a/docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/09-active-channels.md +++ b/docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/09-active-channels.md @@ -7,7 +7,13 @@ slug: /apps/interchain-accounts/active-channels # Understanding Active Channels -The Interchain Accounts module uses [ORDERED channels](https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#ordering) to maintain the order of transactions when sending packets from a controller to a host chain. A limitation when using ORDERED channels is that when a packet times out the channel will be closed. +The Interchain Accounts module uses either [ORDERED or UNORDERED](https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#ordering) channels. + +When using `ORDERED` channels, the order of transactions when sending packets from a controller to a host chain is maintained. + +When using `UNORDERED` channels, there is no guarantee that the order of transactions when sending packets from the controller to the host chain is maintained. Since ibc-go v7.5.0, the default ordering for new ICA channels is `UNORDERED`, if no ordering is specified in `MsgRegisterInterchainAccount` (previously the default ordering was `ORDERED`). + +> A limitation when using ORDERED channels is that when a packet times out the channel will be closed. In the case of a channel closing, a controller chain needs to be able to regain access to the interchain account registered on this channel. `Active Channels` enable this functionality. diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/10-legacy/01-auth-modules.md b/docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/10-legacy/01-auth-modules.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/10-legacy/01-auth-modules.md rename to docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/10-legacy/01-auth-modules.md diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/10-legacy/02-integration.md b/docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/10-legacy/02-integration.md similarity index 95% rename from docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/10-legacy/02-integration.md rename to docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/10-legacy/02-integration.md index 90a645aaabd..45ba2389cb4 100644 --- a/docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/10-legacy/02-integration.md +++ b/docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/10-legacy/02-integration.md @@ -25,6 +25,7 @@ Interchain Account authentication modules are the base application of a middlewa ![ica-pre-v6.png](./images/ica-pre-v6.png) > Please note that since ibc-go v6 the channel capability is claimed by the controller submodule and therefore it is not required for authentication modules to claim the capability in the `OnChanOpenInit` callback. Therefore the custom authentication module does not need a scoped keeper anymore. +> Please note that since ibc-go v7.5.0 it is mandatory to register the gRPC query router after the creation of the host submodule's keeper; otherwise, nodes will not start. The query router is used to execute on the host query messages encoded in the ICA packet data. Please check the sample integration code below for more details. ## Example integration @@ -96,6 +97,7 @@ app.ICAHostKeeper = icahostkeeper.NewKeeper( app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper, app.AccountKeeper, scopedICAHostKeeper, app.MsgServiceRouter(), ) +app.ICAHostKeeper.WithQueryRouter(app.GRPCQueryRouter()) // Create Interchain Accounts AppModule icaModule := ica.NewAppModule(&app.ICAControllerKeeper, &app.ICAHostKeeper) diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/10-legacy/03-keeper-api.md b/docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/10-legacy/03-keeper-api.md similarity index 92% rename from docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/10-legacy/03-keeper-api.md rename to docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/10-legacy/03-keeper-api.md index 252c7eaf7ff..f420197eac1 100644 --- a/docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/10-legacy/03-keeper-api.md +++ b/docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/10-legacy/03-keeper-api.md @@ -80,6 +80,8 @@ if err := keeper.icaControllerKeeper.RegisterInterchainAccount(ctx, controllerCo } ``` +> Since ibc-go v7.5.0 the default ordering of new ICA channels created when invoking `RegisterInterchainAccount` has changed from `ORDERED` to `UNORDERED`. If this default behaviour does not meet your use case, please use the function `RegisterInterchainAccountWithOrdering` (available since ibc-go v7.5.0), which takes an extra parameter that can be used to specify the ordering of the channel. + ## `SendTx` The authentication module can attempt to send a packet by calling `SendTx`: diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/10-legacy/_category_.json b/docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/10-legacy/_category_.json similarity index 100% rename from docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/10-legacy/_category_.json rename to docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/10-legacy/_category_.json diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/10-legacy/images/ica-pre-v6.png b/docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/10-legacy/images/ica-pre-v6.png similarity index 100% rename from docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/10-legacy/images/ica-pre-v6.png rename to docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/10-legacy/images/ica-pre-v6.png diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/_category_.json b/docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/_category_.json similarity index 100% rename from docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/_category_.json rename to docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/_category_.json diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/images/ica-v6.png b/docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/images/ica-v6.png similarity index 100% rename from docs/versioned_docs/version-v7.4.x/02-apps/02-interchain-accounts/images/ica-v6.png rename to docs/versioned_docs/version-v7.5.x/02-apps/02-interchain-accounts/images/ica-v6.png diff --git a/docs/versioned_docs/version-v7.4.x/02-apps/_category_.json b/docs/versioned_docs/version-v7.5.x/02-apps/_category_.json similarity index 100% rename from docs/versioned_docs/version-v7.4.x/02-apps/_category_.json rename to docs/versioned_docs/version-v7.5.x/02-apps/_category_.json diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/01-developer-guide/01-overview.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/01-developer-guide/01-overview.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/01-developer-guide/01-overview.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/01-developer-guide/01-overview.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/01-developer-guide/02-client-state.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/01-developer-guide/02-client-state.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/01-developer-guide/02-client-state.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/01-developer-guide/02-client-state.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/01-developer-guide/03-consensus-state.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/01-developer-guide/03-consensus-state.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/01-developer-guide/03-consensus-state.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/01-developer-guide/03-consensus-state.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/01-developer-guide/04-updates-and-misbehaviour.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/01-developer-guide/04-updates-and-misbehaviour.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/01-developer-guide/04-updates-and-misbehaviour.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/01-developer-guide/04-updates-and-misbehaviour.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/01-developer-guide/05-upgrades.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/01-developer-guide/05-upgrades.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/01-developer-guide/05-upgrades.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/01-developer-guide/05-upgrades.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/01-developer-guide/06-proofs.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/01-developer-guide/06-proofs.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/01-developer-guide/06-proofs.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/01-developer-guide/06-proofs.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/01-developer-guide/07-proposals.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/01-developer-guide/07-proposals.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/01-developer-guide/07-proposals.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/01-developer-guide/07-proposals.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/01-developer-guide/08-genesis.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/01-developer-guide/08-genesis.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/01-developer-guide/08-genesis.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/01-developer-guide/08-genesis.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/01-developer-guide/09-setup.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/01-developer-guide/09-setup.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/01-developer-guide/09-setup.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/01-developer-guide/09-setup.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/01-developer-guide/_category_.json b/docs/versioned_docs/version-v7.5.x/03-light-clients/01-developer-guide/_category_.json similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/01-developer-guide/_category_.json rename to docs/versioned_docs/version-v7.5.x/03-light-clients/01-developer-guide/_category_.json diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/02-solomachine/01-solomachine.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/02-solomachine/01-solomachine.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/02-solomachine/01-solomachine.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/02-solomachine/01-solomachine.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/02-solomachine/02-concepts.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/02-solomachine/02-concepts.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/02-solomachine/02-concepts.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/02-solomachine/02-concepts.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/02-solomachine/03-state.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/02-solomachine/03-state.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/02-solomachine/03-state.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/02-solomachine/03-state.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/02-solomachine/04-state_transitions.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/02-solomachine/04-state_transitions.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/02-solomachine/04-state_transitions.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/02-solomachine/04-state_transitions.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/02-solomachine/_category_.json b/docs/versioned_docs/version-v7.5.x/03-light-clients/02-solomachine/_category_.json similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/02-solomachine/_category_.json rename to docs/versioned_docs/version-v7.5.x/03-light-clients/02-solomachine/_category_.json diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/03-localhost/01-overview.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/03-localhost/01-overview.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/03-localhost/01-overview.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/03-localhost/01-overview.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/03-localhost/02-integration.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/03-localhost/02-integration.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/03-localhost/02-integration.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/03-localhost/02-integration.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/03-localhost/03-client-state.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/03-localhost/03-client-state.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/03-localhost/03-client-state.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/03-localhost/03-client-state.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/03-localhost/04-connection.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/03-localhost/04-connection.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/03-localhost/04-connection.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/03-localhost/04-connection.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/03-localhost/05-state-verification.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/03-localhost/05-state-verification.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/03-localhost/05-state-verification.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/03-localhost/05-state-verification.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/03-localhost/_category_.json b/docs/versioned_docs/version-v7.5.x/03-light-clients/03-localhost/_category_.json similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/03-localhost/_category_.json rename to docs/versioned_docs/version-v7.5.x/03-light-clients/03-localhost/_category_.json diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/04-wasm/01-overview.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/04-wasm/01-overview.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/04-wasm/01-overview.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/04-wasm/01-overview.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/04-wasm/02-concepts.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/04-wasm/02-concepts.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/04-wasm/02-concepts.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/04-wasm/02-concepts.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/04-wasm/03-integration.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/04-wasm/03-integration.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/04-wasm/03-integration.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/04-wasm/03-integration.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/04-wasm/04-messages.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/04-wasm/04-messages.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/04-wasm/04-messages.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/04-wasm/04-messages.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/04-wasm/05-governance.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/04-wasm/05-governance.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/04-wasm/05-governance.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/04-wasm/05-governance.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/04-wasm/06-events.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/04-wasm/06-events.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/04-wasm/06-events.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/04-wasm/06-events.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/04-wasm/07-contracts.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/04-wasm/07-contracts.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/04-wasm/07-contracts.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/04-wasm/07-contracts.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/04-wasm/08-client.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/04-wasm/08-client.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/04-wasm/08-client.md rename to docs/versioned_docs/version-v7.5.x/03-light-clients/04-wasm/08-client.md diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/04-wasm/_category_.json b/docs/versioned_docs/version-v7.5.x/03-light-clients/04-wasm/_category_.json similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/04-wasm/_category_.json rename to docs/versioned_docs/version-v7.5.x/03-light-clients/04-wasm/_category_.json diff --git a/docs/versioned_docs/version-v7.4.x/03-light-clients/_category_.json b/docs/versioned_docs/version-v7.5.x/03-light-clients/_category_.json similarity index 100% rename from docs/versioned_docs/version-v7.4.x/03-light-clients/_category_.json rename to docs/versioned_docs/version-v7.5.x/03-light-clients/_category_.json diff --git a/docs/versioned_docs/version-v7.4.x/04-middleware/01-ics29-fee/01-overview.md b/docs/versioned_docs/version-v7.5.x/04-middleware/01-ics29-fee/01-overview.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/04-middleware/01-ics29-fee/01-overview.md rename to docs/versioned_docs/version-v7.5.x/04-middleware/01-ics29-fee/01-overview.md diff --git a/docs/versioned_docs/version-v7.4.x/04-middleware/01-ics29-fee/02-integration.md b/docs/versioned_docs/version-v7.5.x/04-middleware/01-ics29-fee/02-integration.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/04-middleware/01-ics29-fee/02-integration.md rename to docs/versioned_docs/version-v7.5.x/04-middleware/01-ics29-fee/02-integration.md diff --git a/docs/versioned_docs/version-v7.4.x/04-middleware/01-ics29-fee/03-msgs.md b/docs/versioned_docs/version-v7.5.x/04-middleware/01-ics29-fee/03-msgs.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/04-middleware/01-ics29-fee/03-msgs.md rename to docs/versioned_docs/version-v7.5.x/04-middleware/01-ics29-fee/03-msgs.md diff --git a/docs/versioned_docs/version-v7.4.x/04-middleware/01-ics29-fee/04-fee-distribution.md b/docs/versioned_docs/version-v7.5.x/04-middleware/01-ics29-fee/04-fee-distribution.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/04-middleware/01-ics29-fee/04-fee-distribution.md rename to docs/versioned_docs/version-v7.5.x/04-middleware/01-ics29-fee/04-fee-distribution.md diff --git a/docs/versioned_docs/version-v7.4.x/04-middleware/01-ics29-fee/05-events.md b/docs/versioned_docs/version-v7.5.x/04-middleware/01-ics29-fee/05-events.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/04-middleware/01-ics29-fee/05-events.md rename to docs/versioned_docs/version-v7.5.x/04-middleware/01-ics29-fee/05-events.md diff --git a/docs/versioned_docs/version-v7.4.x/04-middleware/01-ics29-fee/06-end-users.md b/docs/versioned_docs/version-v7.5.x/04-middleware/01-ics29-fee/06-end-users.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/04-middleware/01-ics29-fee/06-end-users.md rename to docs/versioned_docs/version-v7.5.x/04-middleware/01-ics29-fee/06-end-users.md diff --git a/docs/versioned_docs/version-v7.4.x/04-middleware/01-ics29-fee/_category_.json b/docs/versioned_docs/version-v7.5.x/04-middleware/01-ics29-fee/_category_.json similarity index 100% rename from docs/versioned_docs/version-v7.4.x/04-middleware/01-ics29-fee/_category_.json rename to docs/versioned_docs/version-v7.5.x/04-middleware/01-ics29-fee/_category_.json diff --git a/docs/versioned_docs/version-v7.4.x/04-middleware/01-ics29-fee/images/feeflow.png b/docs/versioned_docs/version-v7.5.x/04-middleware/01-ics29-fee/images/feeflow.png similarity index 100% rename from docs/versioned_docs/version-v7.4.x/04-middleware/01-ics29-fee/images/feeflow.png rename to docs/versioned_docs/version-v7.5.x/04-middleware/01-ics29-fee/images/feeflow.png diff --git a/docs/versioned_docs/version-v7.4.x/04-middleware/01-ics29-fee/images/msgpaypacket.png b/docs/versioned_docs/version-v7.5.x/04-middleware/01-ics29-fee/images/msgpaypacket.png similarity index 100% rename from docs/versioned_docs/version-v7.4.x/04-middleware/01-ics29-fee/images/msgpaypacket.png rename to docs/versioned_docs/version-v7.5.x/04-middleware/01-ics29-fee/images/msgpaypacket.png diff --git a/docs/versioned_docs/version-v7.4.x/04-middleware/01-ics29-fee/images/paypacketfeeasync.png b/docs/versioned_docs/version-v7.5.x/04-middleware/01-ics29-fee/images/paypacketfeeasync.png similarity index 100% rename from docs/versioned_docs/version-v7.4.x/04-middleware/01-ics29-fee/images/paypacketfeeasync.png rename to docs/versioned_docs/version-v7.5.x/04-middleware/01-ics29-fee/images/paypacketfeeasync.png diff --git a/docs/versioned_docs/version-v7.4.x/04-middleware/02-callbacks/01-overview.md b/docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/01-overview.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/04-middleware/02-callbacks/01-overview.md rename to docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/01-overview.md diff --git a/docs/versioned_docs/version-v7.4.x/04-middleware/02-callbacks/02-integration.md b/docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/02-integration.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/04-middleware/02-callbacks/02-integration.md rename to docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/02-integration.md diff --git a/docs/versioned_docs/version-v7.4.x/04-middleware/02-callbacks/03-interfaces.md b/docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/03-interfaces.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/04-middleware/02-callbacks/03-interfaces.md rename to docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/03-interfaces.md diff --git a/docs/versioned_docs/version-v7.4.x/04-middleware/02-callbacks/04-events.md b/docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/04-events.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/04-middleware/02-callbacks/04-events.md rename to docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/04-events.md diff --git a/docs/versioned_docs/version-v7.4.x/04-middleware/02-callbacks/05-end-users.md b/docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/05-end-users.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/04-middleware/02-callbacks/05-end-users.md rename to docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/05-end-users.md diff --git a/docs/versioned_docs/version-v7.4.x/04-middleware/02-callbacks/06-gas.md b/docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/06-gas.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/04-middleware/02-callbacks/06-gas.md rename to docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/06-gas.md diff --git a/docs/versioned_docs/version-v7.4.x/04-middleware/02-callbacks/_category_.json b/docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/_category_.json similarity index 100% rename from docs/versioned_docs/version-v7.4.x/04-middleware/02-callbacks/_category_.json rename to docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/_category_.json diff --git a/docs/versioned_docs/version-v7.4.x/04-middleware/02-callbacks/images/callbackflow.svg b/docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/images/callbackflow.svg similarity index 100% rename from docs/versioned_docs/version-v7.4.x/04-middleware/02-callbacks/images/callbackflow.svg rename to docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/images/callbackflow.svg diff --git a/docs/versioned_docs/version-v7.4.x/04-middleware/02-callbacks/images/ics4-callbackflow.svg b/docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/images/ics4-callbackflow.svg similarity index 100% rename from docs/versioned_docs/version-v7.4.x/04-middleware/02-callbacks/images/ics4-callbackflow.svg rename to docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/images/ics4-callbackflow.svg diff --git a/docs/versioned_docs/version-v7.4.x/04-middleware/_category_.json b/docs/versioned_docs/version-v7.5.x/04-middleware/_category_.json similarity index 100% rename from docs/versioned_docs/version-v7.4.x/04-middleware/_category_.json rename to docs/versioned_docs/version-v7.5.x/04-middleware/_category_.json diff --git a/docs/versioned_docs/version-v7.4.x/05-migrations/01-support-denoms-with-slashes.md b/docs/versioned_docs/version-v7.5.x/05-migrations/01-support-denoms-with-slashes.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/05-migrations/01-support-denoms-with-slashes.md rename to docs/versioned_docs/version-v7.5.x/05-migrations/01-support-denoms-with-slashes.md diff --git a/docs/versioned_docs/version-v7.4.x/05-migrations/02-sdk-to-v1.md b/docs/versioned_docs/version-v7.5.x/05-migrations/02-sdk-to-v1.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/05-migrations/02-sdk-to-v1.md rename to docs/versioned_docs/version-v7.5.x/05-migrations/02-sdk-to-v1.md diff --git a/docs/versioned_docs/version-v7.4.x/05-migrations/03-v1-to-v2.md b/docs/versioned_docs/version-v7.5.x/05-migrations/03-v1-to-v2.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/05-migrations/03-v1-to-v2.md rename to docs/versioned_docs/version-v7.5.x/05-migrations/03-v1-to-v2.md diff --git a/docs/versioned_docs/version-v7.4.x/05-migrations/04-v2-to-v3.md b/docs/versioned_docs/version-v7.5.x/05-migrations/04-v2-to-v3.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/05-migrations/04-v2-to-v3.md rename to docs/versioned_docs/version-v7.5.x/05-migrations/04-v2-to-v3.md diff --git a/docs/versioned_docs/version-v7.4.x/05-migrations/05-v3-to-v4.md b/docs/versioned_docs/version-v7.5.x/05-migrations/05-v3-to-v4.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/05-migrations/05-v3-to-v4.md rename to docs/versioned_docs/version-v7.5.x/05-migrations/05-v3-to-v4.md diff --git a/docs/versioned_docs/version-v7.4.x/05-migrations/06-v4-to-v5.md b/docs/versioned_docs/version-v7.5.x/05-migrations/06-v4-to-v5.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/05-migrations/06-v4-to-v5.md rename to docs/versioned_docs/version-v7.5.x/05-migrations/06-v4-to-v5.md diff --git a/docs/versioned_docs/version-v7.4.x/05-migrations/07-v5-to-v6.md b/docs/versioned_docs/version-v7.5.x/05-migrations/07-v5-to-v6.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/05-migrations/07-v5-to-v6.md rename to docs/versioned_docs/version-v7.5.x/05-migrations/07-v5-to-v6.md diff --git a/docs/versioned_docs/version-v7.4.x/05-migrations/08-v6-to-v7.md b/docs/versioned_docs/version-v7.5.x/05-migrations/08-v6-to-v7.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/05-migrations/08-v6-to-v7.md rename to docs/versioned_docs/version-v7.5.x/05-migrations/08-v6-to-v7.md diff --git a/docs/versioned_docs/version-v7.4.x/05-migrations/09-v7-to-v7_1.md b/docs/versioned_docs/version-v7.5.x/05-migrations/09-v7-to-v7_1.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/05-migrations/09-v7-to-v7_1.md rename to docs/versioned_docs/version-v7.5.x/05-migrations/09-v7-to-v7_1.md diff --git a/docs/versioned_docs/version-v7.4.x/05-migrations/10-v7_2-to-v7_3.md b/docs/versioned_docs/version-v7.5.x/05-migrations/10-v7_2-to-v7_3.md similarity index 100% rename from docs/versioned_docs/version-v7.4.x/05-migrations/10-v7_2-to-v7_3.md rename to docs/versioned_docs/version-v7.5.x/05-migrations/10-v7_2-to-v7_3.md diff --git a/docs/versioned_docs/version-v7.4.x/05-migrations/_category_.json b/docs/versioned_docs/version-v7.5.x/05-migrations/_category_.json similarity index 100% rename from docs/versioned_docs/version-v7.4.x/05-migrations/_category_.json rename to docs/versioned_docs/version-v7.5.x/05-migrations/_category_.json diff --git a/docs/versioned_docs/version-v7.4.x/05-migrations/images/auth-module-decision-tree.png b/docs/versioned_docs/version-v7.5.x/05-migrations/images/auth-module-decision-tree.png similarity index 100% rename from docs/versioned_docs/version-v7.4.x/05-migrations/images/auth-module-decision-tree.png rename to docs/versioned_docs/version-v7.5.x/05-migrations/images/auth-module-decision-tree.png diff --git a/docs/versioned_sidebars/version-v7.4.x-sidebars.json b/docs/versioned_sidebars/version-v7.5.x-sidebars.json similarity index 100% rename from docs/versioned_sidebars/version-v7.4.x-sidebars.json rename to docs/versioned_sidebars/version-v7.5.x-sidebars.json diff --git a/docs/versions.json b/docs/versions.json index 84d76321dbe..28c9db2a120 100644 --- a/docs/versions.json +++ b/docs/versions.json @@ -1,6 +1,6 @@ [ "v8.2.x", - "v7.4.x", + "v7.5.x", "v6.3.x", "v5.4.x", "v4.6.x" From 340ef64c912fa134098626d7f8450650d9c36a26 Mon Sep 17 00:00:00 2001 From: Kien Trinh <51135161+kien6034@users.noreply.github.com> Date: Wed, 15 May 2024 14:28:15 +0700 Subject: [PATCH 39/62] fix(e2e/internal/directories): fix potential infinite loop (#6287) * fix: fix potential loop goes forever * fix: wrong condition in the for loop --------- Co-authored-by: Carlos Rodriguez --- e2e/internal/directories/directories.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e/internal/directories/directories.go b/e2e/internal/directories/directories.go index b27590b51bc..d4724ec280e 100644 --- a/e2e/internal/directories/directories.go +++ b/e2e/internal/directories/directories.go @@ -26,7 +26,7 @@ func E2E(t *testing.T) (string, error) { const maxAttempts = 100 count := 0 - for ; !strings.HasSuffix(wd, e2eDir) || count > maxAttempts; wd = path.Dir(wd) { + for ; !strings.HasSuffix(wd, e2eDir) && count < maxAttempts; wd = path.Dir(wd) { count++ } From 0923e49f2ebf6e739bfc08fb8f86eae218d6602e Mon Sep 17 00:00:00 2001 From: srdtrk <59252793+srdtrk@users.noreply.github.com> Date: Wed, 15 May 2024 17:25:56 +0800 Subject: [PATCH 40/62] docs: fixed compile error (#6312) * ci: fix * docs: fix --------- Co-authored-by: Carlos Rodriguez --- .github/workflows/check-docs.yml | 8 +++++--- docs/docusaurus.config.js | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/check-docs.yml b/.github/workflows/check-docs.yml index ed555064039..e44b61f06d5 100644 --- a/.github/workflows/check-docs.yml +++ b/.github/workflows/check-docs.yml @@ -8,7 +8,8 @@ on: branches: - main paths: - - './docs' + - 'docs/**' + - '.github/workflows/check-docs.yml' jobs: check-docs-build: @@ -20,8 +21,9 @@ jobs: with: node-version: 18 cache: npm + cache-dependency-path: docs/package-lock.json - name: Install dependencies - run: npm ci + run: cd docs && npm ci - name: Test build website - run: npm run build + run: cd docs && npm run build diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index 963c9a04478..fda77ec81da 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -60,7 +60,7 @@ const config = { path: "v8", banner: "none", }, - "v7.4.x": { + "v7.5.x": { path: "v7", banner: "none", }, From 2cbcc3476c7408ff3e7c335a49b85be0a431a069 Mon Sep 17 00:00:00 2001 From: cario-dev <152556479+cario-dev@users.noreply.github.com> Date: Thu, 16 May 2024 06:57:34 +0200 Subject: [PATCH 41/62] upgrade checkout action to version using node20 (#6308) Co-authored-by: Carlos Rodriguez --- .github/workflows/wasm-client.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wasm-client.yml b/.github/workflows/wasm-client.yml index 884bd4d33a7..08729f268b4 100644 --- a/.github/workflows/wasm-client.yml +++ b/.github/workflows/wasm-client.yml @@ -28,7 +28,7 @@ jobs: matrix: go-arch: ['amd64', 'arm64'] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: '1.21' @@ -47,7 +47,7 @@ jobs: tests: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: '1.21' From 6ba52c5f75bc829cdaeaf075aca30a97844bb573 Mon Sep 17 00:00:00 2001 From: Damian Nolan Date: Thu, 16 May 2024 09:18:53 +0200 Subject: [PATCH 42/62] chore: fix portkeeper Route arg naming (#6316) --- modules/core/05-port/keeper/keeper.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/core/05-port/keeper/keeper.go b/modules/core/05-port/keeper/keeper.go index 51d77152a59..8da42cbef3a 100644 --- a/modules/core/05-port/keeper/keeper.go +++ b/modules/core/05-port/keeper/keeper.go @@ -84,6 +84,6 @@ func (k *Keeper) LookupModuleByPort(ctx sdk.Context, portID string) (string, *ca // Route returns a IBCModule for a given module, and a boolean indicating // whether or not the route is present. -func (k *Keeper) Route(clientID string) (types.IBCModule, bool) { - return k.Router.GetRoute(clientID) +func (k *Keeper) Route(module string) (types.IBCModule, bool) { + return k.Router.GetRoute(module) } From fd1452295b54b7d4e82bb42a22548067012650f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?colin=20axn=C3=A9r?= <25233464+colin-axner@users.noreply.github.com> Date: Thu, 16 May 2024 10:03:37 +0200 Subject: [PATCH 43/62] refactor: remove unnecessary exported.Proof interface type (#6320) * refactor: remove unnecessary interface type * add changelog and update migration docs * Update CHANGELOG.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: Carlos Rodriguez Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- CHANGELOG.md | 1 + docs/docs/05-migrations/13-v8-to-v9.md | 1 + modules/core/23-commitment/types/codec.go | 8 -------- modules/core/23-commitment/types/codec_test.go | 5 ----- modules/core/23-commitment/types/merkle.go | 2 -- modules/core/exported/commitment.go | 14 -------------- 6 files changed, 2 insertions(+), 29 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5298e31779f..bf81427cac3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -52,6 +52,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (testing) [\#6070](https://github.com/cosmos/ibc-go/pull/6070) Remove `AssertEventsLegacy` function. * (core) [\#6138](https://github.com/cosmos/ibc-go/pull/6138) Remove `Router` reference from IBC core keeper and use instead the router on the existing `PortKeeper` reference. * (core/04-channel) [\#6023](https://github.com/cosmos/ibc-go/pull/6023) Remove emission of non-hexlified event attributes `packet_data` and `packet_ack`. +* (core) [\#6320](https://github.com/cosmos/ibc-go/pull/6320) Remove unnecessary `Proof` interface from `exported` package. ### State Machine Breaking diff --git a/docs/docs/05-migrations/13-v8-to-v9.md b/docs/docs/05-migrations/13-v8-to-v9.md index b3e03747167..afbf6a0e98c 100644 --- a/docs/docs/05-migrations/13-v8-to-v9.md +++ b/docs/docs/05-migrations/13-v8-to-v9.md @@ -28,6 +28,7 @@ There are four sections based on the four potential user groups of this document The `exported.ChannelI` and `exported.CounterpartyChannelI` interfaces have been removed. Please use the concrete types. The `exported.ConnectionI` and `exported.CounterpartyConnectionI` interfaces have been removed. Please use the concrete types. +The `exported.Proof` interface has been removed. Please use the `MerkleProof` concrete type. The functions `GetState()`, `GetOrdering()`, `GetCounterparty()`, `GetConnectionHops()`, `GetVersion()` of the `Channel` type have been removed. The functions `GetPortID()`, `GetChannelID()` of the `CounterpartyChannel` type have been removed. diff --git a/modules/core/23-commitment/types/codec.go b/modules/core/23-commitment/types/codec.go index c08d7519389..a73b6407202 100644 --- a/modules/core/23-commitment/types/codec.go +++ b/modules/core/23-commitment/types/codec.go @@ -20,10 +20,6 @@ func RegisterInterfaces(registry codectypes.InterfaceRegistry) { "ibc.core.commitment.v1.Path", (*exported.Path)(nil), ) - registry.RegisterInterface( - "ibc.core.commitment.v1.Proof", - (*exported.Proof)(nil), - ) registry.RegisterImplementations( (*exported.Root)(nil), @@ -37,8 +33,4 @@ func RegisterInterfaces(registry codectypes.InterfaceRegistry) { (*exported.Path)(nil), &MerklePath{}, ) - registry.RegisterImplementations( - (*exported.Proof)(nil), - &MerkleProof{}, - ) } diff --git a/modules/core/23-commitment/types/codec_test.go b/modules/core/23-commitment/types/codec_test.go index 88dc430b997..accf20b5ee2 100644 --- a/modules/core/23-commitment/types/codec_test.go +++ b/modules/core/23-commitment/types/codec_test.go @@ -29,11 +29,6 @@ func (suite *MerkleTestSuite) TestCodecTypeRegistration() { sdk.MsgTypeURL(&types.MerklePath{}), true, }, - { - "success: MerkleProof", - sdk.MsgTypeURL(&types.MerkleProof{}), - true, - }, { "type not registered on codec", "ibc.invalid.MsgTypeURL", diff --git a/modules/core/23-commitment/types/merkle.go b/modules/core/23-commitment/types/merkle.go index 668311f8271..0242f74e012 100644 --- a/modules/core/23-commitment/types/merkle.go +++ b/modules/core/23-commitment/types/merkle.go @@ -98,8 +98,6 @@ func ApplyPrefix(prefix exported.Prefix, path MerklePath) (MerklePath, error) { return NewMerklePath(append([]string{string(prefix.Bytes())}, path.KeyPath...)...), nil } -var _ exported.Proof = (*MerkleProof)(nil) - // VerifyMembership verifies the membership of a merkle proof against the given root, path, and value. // Note that the path is expected as []string{, }. func (proof MerkleProof) VerifyMembership(specs []*ics23.ProofSpec, root exported.Root, path exported.Path, value []byte) error { diff --git a/modules/core/exported/commitment.go b/modules/core/exported/commitment.go index 7886b4d323a..4a8cb5083ae 100644 --- a/modules/core/exported/commitment.go +++ b/modules/core/exported/commitment.go @@ -1,7 +1,5 @@ package exported -import ics23 "github.com/cosmos/ics23/go" - // ICS 023 Types Implementation // // This file includes types defined under @@ -30,15 +28,3 @@ type Prefix interface { type Path interface { Empty() bool } - -// Proof implements spec:CommitmentProof. -// Proof can prove whether the key-value pair is a part of the Root or not. -// Each proof has designated key-value pair it is able to prove. -// Proofs include key but value is provided dynamically at the verification time. -type Proof interface { - VerifyMembership([]*ics23.ProofSpec, Root, Path, []byte) error - VerifyNonMembership([]*ics23.ProofSpec, Root, Path) error - Empty() bool - - ValidateBasic() error -} From 832f79ca41a54a40268fafafa24316e4af0472eb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 May 2024 13:58:01 +0200 Subject: [PATCH 44/62] build(deps): Bump google.golang.org/grpc from 1.63.2 to 1.64.0 (#6318) * build(deps): Bump google.golang.org/grpc from 1.63.2 to 1.64.0 Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.63.2 to 1.64.0. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.63.2...v1.64.0) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * bump google.golang.org/grpc in modules --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Carlos Rodriguez Co-authored-by: Damian Nolan --- e2e/go.mod | 36 ++++++------ e2e/go.sum | 80 +++++++++++++-------------- go.mod | 24 ++++---- go.sum | 59 ++++++++++---------- modules/apps/callbacks/go.mod | 24 ++++---- modules/apps/callbacks/go.sum | 59 ++++++++++---------- modules/capability/go.sum | 2 - modules/light-clients/08-wasm/go.mod | 36 ++++++------ modules/light-clients/08-wasm/go.sum | 83 ++++++++++++++-------------- 9 files changed, 194 insertions(+), 209 deletions(-) diff --git a/e2e/go.mod b/e2e/go.mod index 5938c61a4c4..ab314313867 100644 --- a/e2e/go.mod +++ b/e2e/go.mod @@ -18,16 +18,16 @@ require ( github.com/stretchr/testify v1.9.0 go.uber.org/zap v1.27.0 golang.org/x/mod v0.17.0 - google.golang.org/grpc v1.63.2 + google.golang.org/grpc v1.64.0 gopkg.in/yaml.v2 v2.4.0 ) require ( - cloud.google.com/go v0.112.0 // indirect - cloud.google.com/go/compute v1.24.0 // indirect + cloud.google.com/go v0.112.1 // indirect + cloud.google.com/go/compute v1.25.1 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect cloud.google.com/go/iam v1.1.6 // indirect - cloud.google.com/go/storage v1.36.0 // indirect + cloud.google.com/go/storage v1.38.0 // indirect cosmossdk.io/api v0.7.5 // indirect cosmossdk.io/client/v2 v2.0.0-beta.1 // indirect cosmossdk.io/collections v0.4.0 // indirect @@ -122,7 +122,7 @@ require ( github.com/google/s2a-go v0.1.7 // indirect github.com/google/uuid v1.6.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect - github.com/googleapis/gax-go/v2 v2.12.0 // indirect + github.com/googleapis/gax-go/v2 v2.12.2 // indirect github.com/gorilla/handlers v1.5.2 // indirect github.com/gorilla/mux v1.8.1 // indirect github.com/gorilla/websocket v1.5.1 // indirect @@ -221,27 +221,27 @@ require ( github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.8 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 // indirect - go.opentelemetry.io/otel v1.22.0 // indirect - go.opentelemetry.io/otel/metric v1.22.0 // indirect - go.opentelemetry.io/otel/trace v1.22.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect + go.opentelemetry.io/otel v1.24.0 // indirect + go.opentelemetry.io/otel/metric v1.24.0 // indirect + go.opentelemetry.io/otel/trace v1.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.22.0 // indirect + golang.org/x/crypto v0.23.0 // indirect golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0 // indirect - golang.org/x/net v0.24.0 // indirect + golang.org/x/net v0.25.0 // indirect golang.org/x/oauth2 v0.18.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.19.0 // indirect - golang.org/x/term v0.19.0 // indirect - golang.org/x/text v0.14.0 // indirect + golang.org/x/sys v0.20.0 // indirect + golang.org/x/term v0.20.0 // indirect + golang.org/x/text v0.15.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.20.0 // indirect - google.golang.org/api v0.162.0 // indirect + google.golang.org/api v0.169.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 // indirect google.golang.org/protobuf v1.34.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect diff --git a/e2e/go.sum b/e2e/go.sum index 60810d55a61..c711c306a81 100644 --- a/e2e/go.sum +++ b/e2e/go.sum @@ -30,8 +30,8 @@ cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w9 cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= -cloud.google.com/go v0.112.0 h1:tpFCD7hpHFlQ8yPwT3x+QeXqc2T6+n6T+hmABHfDUSM= -cloud.google.com/go v0.112.0/go.mod h1:3jEEVwZ/MHU4djK5t5RHuKOA/GbLddgTdVubX1qnPD4= +cloud.google.com/go v0.112.1 h1:uJSeirPke5UNZHIb4SxfZklVSiWWVqW4oXlETwZziwM= +cloud.google.com/go v0.112.1/go.mod h1:+Vbu+Y1UU+I1rjmzeMOb/8RfkKJK2Gyxi1X6jJCZLo4= cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= @@ -68,8 +68,8 @@ cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= -cloud.google.com/go/compute v1.24.0 h1:phWcR2eWzRJaL/kOiJwfFsPs4BaKq1j6vnpZrc1YlVg= -cloud.google.com/go/compute v1.24.0/go.mod h1:kw1/T+h/+tK2LJK0wiPPx1intgdAM3j/g3hFDlscY40= +cloud.google.com/go/compute v1.25.1 h1:ZRpHJedLtTpKgr3RV1Fx23NuaAEN1Zfx9hw1u4aJdjU= +cloud.google.com/go/compute v1.25.1/go.mod h1:oopOIR53ly6viBYxaDhBfJwzUAxf1zE//uf3IB011ls= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= @@ -171,8 +171,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= -cloud.google.com/go/storage v1.36.0 h1:P0mOkAcaJxhCTvAkMhxMfrTKiNcub4YmmPBtlhAyTr8= -cloud.google.com/go/storage v1.36.0/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8= +cloud.google.com/go/storage v1.38.0 h1:Az68ZRGlnNTpIBbLjSMIV2BDcwwXYlRlQzis0llkpJg= +cloud.google.com/go/storage v1.38.0/go.mod h1:tlUADB0mAb9BgYls9lq+8MGkfzOXuLrnHXlpHmvFJoY= cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= @@ -342,8 +342,6 @@ github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa h1:jQCWAUqqlij9Pgj2i/PB79y4KOPYVyFYdROxgaCwdTQ= -github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= github.com/cockroachdb/apd/v2 v2.0.2 h1:weh8u7Cneje73dDh+2tEVLUvyBc89iwepWCD8b8034E= github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= @@ -466,8 +464,6 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.m github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A= -github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= github.com/ethereum/go-ethereum v1.13.14 h1:EwiY3FZP94derMCIam1iW4HFVrSgIcpsu0HwTQtm6CQ= github.com/ethereum/go-ethereum v1.13.14/go.mod h1:TN8ZiHrdJwSe8Cb6x+p0hs5CxhJZPbqB7hHkaUXcmIU= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= @@ -648,8 +644,8 @@ github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99 github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= -github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= -github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= +github.com/googleapis/gax-go/v2 v2.12.2 h1:mhN09QQW1jEWeMF74zGR81R30z4VJzjZsfkUhuHF+DA= +github.com/googleapis/gax-go/v2 v2.12.2/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= @@ -1130,18 +1126,18 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 h1:UNQQKPfTDe1J81ViolILjTKPr9WetKW6uei2hFgJmFs= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0/go.mod h1:r9vWsPS/3AQItv3OSlEJ/E4mbrhUbbw18meOjArPtKQ= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 h1:sv9kVfal0MK0wBMCOGr+HeJm9v803BkJxGrk2au7j08= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0/go.mod h1:SK2UL73Zy1quvRPonmOmRDiWk1KBV3LyIeeIxcEApWw= -go.opentelemetry.io/otel v1.22.0 h1:xS7Ku+7yTFvDfDraDIJVpw7XPyuHlB9MCiqqX5mcJ6Y= -go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI= -go.opentelemetry.io/otel/metric v1.22.0 h1:lypMQnGyJYeuYPhOM/bgjbFM6WE44W1/T45er4d8Hhg= -go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY= -go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8= -go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= -go.opentelemetry.io/otel/trace v1.22.0 h1:Hg6pPujv0XG9QaVbGOBVHunyuLcCC3jN7WEhPx83XD0= -go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= +go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= +go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= +go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= +go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco= +go.opentelemetry.io/otel/sdk v1.22.0 h1:6coWHw9xw7EfClIC/+O31R8IY3/+EiRFHevmHafB2Gw= +go.opentelemetry.io/otel/sdk v1.22.0/go.mod h1:iu7luyVGYovrRpe2fmj3CVKouQNdTOkxtLzPvPz1DOc= +go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= +go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= @@ -1174,8 +1170,8 @@ golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= -golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= +golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1276,8 +1272,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= -golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= +golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1418,13 +1414,13 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.19.0 h1:+ThwsDv+tYfnJFhF4L8jITxu1tdTWRTZpdsWgEgjL6Q= -golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk= +golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1436,8 +1432,8 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1565,8 +1561,8 @@ google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= -google.golang.org/api v0.162.0 h1:Vhs54HkaEpkMBdgGdOT2P6F0csGG/vxDS0hWHJzmmps= -google.golang.org/api v0.162.0/go.mod h1:6SulDkfoBIg4NFmCuZ39XeeAgSHCPecfSUuDyYlAHs0= +google.golang.org/api v0.169.0 h1:QwWPy71FgMWqJN/l6jVlFHUa29a7dcUy02I8o799nPY= +google.golang.org/api v0.169.0/go.mod h1:gpNOiMA2tZ4mf5R9Iwf4rK/Dcz0fbdIgWYWVoxmsyLg= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1686,10 +1682,10 @@ google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= -google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de h1:jFNzHPIeuzhdRwVhbZdiym9q0ory/xY3sA+v2wPg8I0= -google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:5iCWqnniDlqZHrd3neWVTOwvh/v6s3232omMecelax8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda h1:LI5DOvAxUPMv/50agcLLoo+AdWc1irS9Rzz4vPuD1V4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= +google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 h1:RFiFrvy37/mpSpdySBDrUdipW/dHwsRwh3J3+A9VgT4= +google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237/go.mod h1:Z5Iiy3jtmioajWHDGFk7CeugTyHtPvMHA4UTmUkyalE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 h1:AgADTJarZTBqgjiUzRgfaBchgYB3/WFTC80GPwsMcRI= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1731,8 +1727,8 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= -google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= +google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= +google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= diff --git a/go.mod b/go.mod index 98eecc76171..6b11d467b47 100644 --- a/go.mod +++ b/go.mod @@ -30,18 +30,18 @@ require ( github.com/spf13/cobra v1.8.0 github.com/spf13/viper v1.18.2 github.com/stretchr/testify v1.9.0 - google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de - google.golang.org/grpc v1.63.2 + google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 + google.golang.org/grpc v1.64.0 google.golang.org/protobuf v1.34.1 gopkg.in/yaml.v2 v2.4.0 ) require ( - cloud.google.com/go v0.112.0 // indirect - cloud.google.com/go/compute v1.24.0 // indirect + cloud.google.com/go v0.112.1 // indirect + cloud.google.com/go/compute v1.25.1 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect cloud.google.com/go/iam v1.1.6 // indirect - cloud.google.com/go/storage v1.36.0 // indirect + cloud.google.com/go/storage v1.38.0 // indirect cosmossdk.io/collections v0.4.0 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect filippo.io/edwards25519 v1.0.0 // indirect @@ -105,7 +105,7 @@ require ( github.com/google/s2a-go v0.1.7 // indirect github.com/google/uuid v1.6.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect - github.com/googleapis/gax-go/v2 v2.12.0 // indirect + github.com/googleapis/gax-go/v2 v2.12.2 // indirect github.com/gorilla/handlers v1.5.2 // indirect github.com/gorilla/mux v1.8.1 // indirect github.com/gorilla/websocket v1.5.0 // indirect @@ -172,11 +172,11 @@ require ( github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.8 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 // indirect - go.opentelemetry.io/otel v1.22.0 // indirect - go.opentelemetry.io/otel/metric v1.22.0 // indirect - go.opentelemetry.io/otel/trace v1.22.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect + go.opentelemetry.io/otel v1.24.0 // indirect + go.opentelemetry.io/otel/metric v1.24.0 // indirect + go.opentelemetry.io/otel/trace v1.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.22.0 // indirect golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0 // indirect @@ -187,7 +187,7 @@ require ( golang.org/x/term v0.19.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect - google.golang.org/api v0.162.0 // indirect + google.golang.org/api v0.169.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect diff --git a/go.sum b/go.sum index ce10cfe9eb8..a82b90d99c4 100644 --- a/go.sum +++ b/go.sum @@ -30,8 +30,8 @@ cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w9 cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= -cloud.google.com/go v0.112.0 h1:tpFCD7hpHFlQ8yPwT3x+QeXqc2T6+n6T+hmABHfDUSM= -cloud.google.com/go v0.112.0/go.mod h1:3jEEVwZ/MHU4djK5t5RHuKOA/GbLddgTdVubX1qnPD4= +cloud.google.com/go v0.112.1 h1:uJSeirPke5UNZHIb4SxfZklVSiWWVqW4oXlETwZziwM= +cloud.google.com/go v0.112.1/go.mod h1:+Vbu+Y1UU+I1rjmzeMOb/8RfkKJK2Gyxi1X6jJCZLo4= cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= @@ -68,8 +68,8 @@ cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= -cloud.google.com/go/compute v1.24.0 h1:phWcR2eWzRJaL/kOiJwfFsPs4BaKq1j6vnpZrc1YlVg= -cloud.google.com/go/compute v1.24.0/go.mod h1:kw1/T+h/+tK2LJK0wiPPx1intgdAM3j/g3hFDlscY40= +cloud.google.com/go/compute v1.25.1 h1:ZRpHJedLtTpKgr3RV1Fx23NuaAEN1Zfx9hw1u4aJdjU= +cloud.google.com/go/compute v1.25.1/go.mod h1:oopOIR53ly6viBYxaDhBfJwzUAxf1zE//uf3IB011ls= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= @@ -171,8 +171,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= -cloud.google.com/go/storage v1.36.0 h1:P0mOkAcaJxhCTvAkMhxMfrTKiNcub4YmmPBtlhAyTr8= -cloud.google.com/go/storage v1.36.0/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8= +cloud.google.com/go/storage v1.38.0 h1:Az68ZRGlnNTpIBbLjSMIV2BDcwwXYlRlQzis0llkpJg= +cloud.google.com/go/storage v1.38.0/go.mod h1:tlUADB0mAb9BgYls9lq+8MGkfzOXuLrnHXlpHmvFJoY= cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= @@ -317,8 +317,6 @@ github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa h1:jQCWAUqqlij9Pgj2i/PB79y4KOPYVyFYdROxgaCwdTQ= -github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= github.com/cockroachdb/apd/v2 v2.0.2 h1:weh8u7Cneje73dDh+2tEVLUvyBc89iwepWCD8b8034E= github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= @@ -427,8 +425,6 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.m github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A= -github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= @@ -622,8 +618,8 @@ github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99 github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= -github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= -github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= +github.com/googleapis/gax-go/v2 v2.12.2 h1:mhN09QQW1jEWeMF74zGR81R30z4VJzjZsfkUhuHF+DA= +github.com/googleapis/gax-go/v2 v2.12.2/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= @@ -1051,18 +1047,18 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 h1:UNQQKPfTDe1J81ViolILjTKPr9WetKW6uei2hFgJmFs= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0/go.mod h1:r9vWsPS/3AQItv3OSlEJ/E4mbrhUbbw18meOjArPtKQ= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 h1:sv9kVfal0MK0wBMCOGr+HeJm9v803BkJxGrk2au7j08= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0/go.mod h1:SK2UL73Zy1quvRPonmOmRDiWk1KBV3LyIeeIxcEApWw= -go.opentelemetry.io/otel v1.22.0 h1:xS7Ku+7yTFvDfDraDIJVpw7XPyuHlB9MCiqqX5mcJ6Y= -go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI= -go.opentelemetry.io/otel/metric v1.22.0 h1:lypMQnGyJYeuYPhOM/bgjbFM6WE44W1/T45er4d8Hhg= -go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY= -go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8= -go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= -go.opentelemetry.io/otel/trace v1.22.0 h1:Hg6pPujv0XG9QaVbGOBVHunyuLcCC3jN7WEhPx83XD0= -go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= +go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= +go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= +go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= +go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco= +go.opentelemetry.io/otel/sdk v1.22.0 h1:6coWHw9xw7EfClIC/+O31R8IY3/+EiRFHevmHafB2Gw= +go.opentelemetry.io/otel/sdk v1.22.0/go.mod h1:iu7luyVGYovrRpe2fmj3CVKouQNdTOkxtLzPvPz1DOc= +go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= +go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= @@ -1430,8 +1426,9 @@ golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= +golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= @@ -1481,8 +1478,8 @@ google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= -google.golang.org/api v0.162.0 h1:Vhs54HkaEpkMBdgGdOT2P6F0csGG/vxDS0hWHJzmmps= -google.golang.org/api v0.162.0/go.mod h1:6SulDkfoBIg4NFmCuZ39XeeAgSHCPecfSUuDyYlAHs0= +google.golang.org/api v0.169.0 h1:QwWPy71FgMWqJN/l6jVlFHUa29a7dcUy02I8o799nPY= +google.golang.org/api v0.169.0/go.mod h1:gpNOiMA2tZ4mf5R9Iwf4rK/Dcz0fbdIgWYWVoxmsyLg= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1601,8 +1598,8 @@ google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= -google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de h1:jFNzHPIeuzhdRwVhbZdiym9q0ory/xY3sA+v2wPg8I0= -google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:5iCWqnniDlqZHrd3neWVTOwvh/v6s3232omMecelax8= +google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 h1:RFiFrvy37/mpSpdySBDrUdipW/dHwsRwh3J3+A9VgT4= +google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237/go.mod h1:Z5Iiy3jtmioajWHDGFk7CeugTyHtPvMHA4UTmUkyalE= google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda h1:LI5DOvAxUPMv/50agcLLoo+AdWc1irS9Rzz4vPuD1V4= google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= @@ -1646,8 +1643,8 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= -google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= +google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= +google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= diff --git a/modules/apps/callbacks/go.mod b/modules/apps/callbacks/go.mod index 11a6ce7d3b7..98d9fe0d22b 100644 --- a/modules/apps/callbacks/go.mod +++ b/modules/apps/callbacks/go.mod @@ -35,11 +35,11 @@ require ( ) require ( - cloud.google.com/go v0.112.0 // indirect - cloud.google.com/go/compute v1.24.0 // indirect + cloud.google.com/go v0.112.1 // indirect + cloud.google.com/go/compute v1.25.1 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect cloud.google.com/go/iam v1.1.6 // indirect - cloud.google.com/go/storage v1.36.0 // indirect + cloud.google.com/go/storage v1.38.0 // indirect cosmossdk.io/collections v0.4.0 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect filippo.io/edwards25519 v1.0.0 // indirect @@ -106,7 +106,7 @@ require ( github.com/google/s2a-go v0.1.7 // indirect github.com/google/uuid v1.6.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect - github.com/googleapis/gax-go/v2 v2.12.0 // indirect + github.com/googleapis/gax-go/v2 v2.12.2 // indirect github.com/gorilla/handlers v1.5.2 // indirect github.com/gorilla/mux v1.8.1 // indirect github.com/gorilla/websocket v1.5.0 // indirect @@ -175,11 +175,11 @@ require ( github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.8 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 // indirect - go.opentelemetry.io/otel v1.22.0 // indirect - go.opentelemetry.io/otel/metric v1.22.0 // indirect - go.opentelemetry.io/otel/trace v1.22.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect + go.opentelemetry.io/otel v1.24.0 // indirect + go.opentelemetry.io/otel/metric v1.24.0 // indirect + go.opentelemetry.io/otel/trace v1.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.22.0 // indirect golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0 // indirect @@ -190,12 +190,12 @@ require ( golang.org/x/term v0.19.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect - google.golang.org/api v0.162.0 // indirect + google.golang.org/api v0.169.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect - google.golang.org/grpc v1.63.2 // indirect + google.golang.org/grpc v1.64.0 // indirect google.golang.org/protobuf v1.34.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/modules/apps/callbacks/go.sum b/modules/apps/callbacks/go.sum index ce10cfe9eb8..a82b90d99c4 100644 --- a/modules/apps/callbacks/go.sum +++ b/modules/apps/callbacks/go.sum @@ -30,8 +30,8 @@ cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w9 cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= -cloud.google.com/go v0.112.0 h1:tpFCD7hpHFlQ8yPwT3x+QeXqc2T6+n6T+hmABHfDUSM= -cloud.google.com/go v0.112.0/go.mod h1:3jEEVwZ/MHU4djK5t5RHuKOA/GbLddgTdVubX1qnPD4= +cloud.google.com/go v0.112.1 h1:uJSeirPke5UNZHIb4SxfZklVSiWWVqW4oXlETwZziwM= +cloud.google.com/go v0.112.1/go.mod h1:+Vbu+Y1UU+I1rjmzeMOb/8RfkKJK2Gyxi1X6jJCZLo4= cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= @@ -68,8 +68,8 @@ cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= -cloud.google.com/go/compute v1.24.0 h1:phWcR2eWzRJaL/kOiJwfFsPs4BaKq1j6vnpZrc1YlVg= -cloud.google.com/go/compute v1.24.0/go.mod h1:kw1/T+h/+tK2LJK0wiPPx1intgdAM3j/g3hFDlscY40= +cloud.google.com/go/compute v1.25.1 h1:ZRpHJedLtTpKgr3RV1Fx23NuaAEN1Zfx9hw1u4aJdjU= +cloud.google.com/go/compute v1.25.1/go.mod h1:oopOIR53ly6viBYxaDhBfJwzUAxf1zE//uf3IB011ls= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= @@ -171,8 +171,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= -cloud.google.com/go/storage v1.36.0 h1:P0mOkAcaJxhCTvAkMhxMfrTKiNcub4YmmPBtlhAyTr8= -cloud.google.com/go/storage v1.36.0/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8= +cloud.google.com/go/storage v1.38.0 h1:Az68ZRGlnNTpIBbLjSMIV2BDcwwXYlRlQzis0llkpJg= +cloud.google.com/go/storage v1.38.0/go.mod h1:tlUADB0mAb9BgYls9lq+8MGkfzOXuLrnHXlpHmvFJoY= cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= @@ -317,8 +317,6 @@ github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa h1:jQCWAUqqlij9Pgj2i/PB79y4KOPYVyFYdROxgaCwdTQ= -github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= github.com/cockroachdb/apd/v2 v2.0.2 h1:weh8u7Cneje73dDh+2tEVLUvyBc89iwepWCD8b8034E= github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= @@ -427,8 +425,6 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.m github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A= -github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= @@ -622,8 +618,8 @@ github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99 github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= -github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= -github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= +github.com/googleapis/gax-go/v2 v2.12.2 h1:mhN09QQW1jEWeMF74zGR81R30z4VJzjZsfkUhuHF+DA= +github.com/googleapis/gax-go/v2 v2.12.2/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= @@ -1051,18 +1047,18 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 h1:UNQQKPfTDe1J81ViolILjTKPr9WetKW6uei2hFgJmFs= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0/go.mod h1:r9vWsPS/3AQItv3OSlEJ/E4mbrhUbbw18meOjArPtKQ= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 h1:sv9kVfal0MK0wBMCOGr+HeJm9v803BkJxGrk2au7j08= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0/go.mod h1:SK2UL73Zy1quvRPonmOmRDiWk1KBV3LyIeeIxcEApWw= -go.opentelemetry.io/otel v1.22.0 h1:xS7Ku+7yTFvDfDraDIJVpw7XPyuHlB9MCiqqX5mcJ6Y= -go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI= -go.opentelemetry.io/otel/metric v1.22.0 h1:lypMQnGyJYeuYPhOM/bgjbFM6WE44W1/T45er4d8Hhg= -go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY= -go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8= -go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= -go.opentelemetry.io/otel/trace v1.22.0 h1:Hg6pPujv0XG9QaVbGOBVHunyuLcCC3jN7WEhPx83XD0= -go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= +go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= +go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= +go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= +go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco= +go.opentelemetry.io/otel/sdk v1.22.0 h1:6coWHw9xw7EfClIC/+O31R8IY3/+EiRFHevmHafB2Gw= +go.opentelemetry.io/otel/sdk v1.22.0/go.mod h1:iu7luyVGYovrRpe2fmj3CVKouQNdTOkxtLzPvPz1DOc= +go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= +go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= @@ -1430,8 +1426,9 @@ golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= +golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= @@ -1481,8 +1478,8 @@ google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= -google.golang.org/api v0.162.0 h1:Vhs54HkaEpkMBdgGdOT2P6F0csGG/vxDS0hWHJzmmps= -google.golang.org/api v0.162.0/go.mod h1:6SulDkfoBIg4NFmCuZ39XeeAgSHCPecfSUuDyYlAHs0= +google.golang.org/api v0.169.0 h1:QwWPy71FgMWqJN/l6jVlFHUa29a7dcUy02I8o799nPY= +google.golang.org/api v0.169.0/go.mod h1:gpNOiMA2tZ4mf5R9Iwf4rK/Dcz0fbdIgWYWVoxmsyLg= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1601,8 +1598,8 @@ google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= -google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de h1:jFNzHPIeuzhdRwVhbZdiym9q0ory/xY3sA+v2wPg8I0= -google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:5iCWqnniDlqZHrd3neWVTOwvh/v6s3232omMecelax8= +google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 h1:RFiFrvy37/mpSpdySBDrUdipW/dHwsRwh3J3+A9VgT4= +google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237/go.mod h1:Z5Iiy3jtmioajWHDGFk7CeugTyHtPvMHA4UTmUkyalE= google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda h1:LI5DOvAxUPMv/50agcLLoo+AdWc1irS9Rzz4vPuD1V4= google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= @@ -1646,8 +1643,8 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= -google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= +google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= +google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= diff --git a/modules/capability/go.sum b/modules/capability/go.sum index e88d7001d27..02ad79a99d9 100644 --- a/modules/capability/go.sum +++ b/modules/capability/go.sum @@ -1,7 +1,5 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cosmossdk.io/api v0.7.4 h1:sPo8wKwCty1lht8kgL3J7YL1voJywP3YWuA5JKkBz30= -cosmossdk.io/api v0.7.4/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/api v0.7.5 h1:eMPTReoNmGUm8DeiQL9DyM8sYDjEhWzL1+nLbI9DqtQ= cosmossdk.io/api v0.7.5/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= diff --git a/modules/light-clients/08-wasm/go.mod b/modules/light-clients/08-wasm/go.mod index 7655ed57ba5..1cbc808f7bb 100644 --- a/modules/light-clients/08-wasm/go.mod +++ b/modules/light-clients/08-wasm/go.mod @@ -34,16 +34,16 @@ require ( github.com/spf13/cobra v1.8.0 github.com/spf13/viper v1.18.2 github.com/stretchr/testify v1.9.0 - google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de - google.golang.org/grpc v1.63.2 + google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 + google.golang.org/grpc v1.64.0 ) require ( - cloud.google.com/go v0.112.0 // indirect - cloud.google.com/go/compute v1.24.0 // indirect + cloud.google.com/go v0.112.1 // indirect + cloud.google.com/go/compute v1.25.1 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect cloud.google.com/go/iam v1.1.6 // indirect - cloud.google.com/go/storage v1.36.0 // indirect + cloud.google.com/go/storage v1.38.0 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect @@ -108,7 +108,7 @@ require ( github.com/google/s2a-go v0.1.7 // indirect github.com/google/uuid v1.6.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect - github.com/googleapis/gax-go/v2 v2.12.0 // indirect + github.com/googleapis/gax-go/v2 v2.12.2 // indirect github.com/gorilla/handlers v1.5.2 // indirect github.com/gorilla/mux v1.8.1 // indirect github.com/gorilla/websocket v1.5.0 // indirect @@ -176,25 +176,25 @@ require ( github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.8 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 // indirect - go.opentelemetry.io/otel v1.22.0 // indirect - go.opentelemetry.io/otel/metric v1.22.0 // indirect - go.opentelemetry.io/otel/trace v1.22.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect + go.opentelemetry.io/otel v1.24.0 // indirect + go.opentelemetry.io/otel/metric v1.24.0 // indirect + go.opentelemetry.io/otel/trace v1.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.22.0 // indirect + golang.org/x/crypto v0.23.0 // indirect golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0 // indirect - golang.org/x/net v0.24.0 // indirect + golang.org/x/net v0.25.0 // indirect golang.org/x/oauth2 v0.18.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.19.0 // indirect - golang.org/x/term v0.19.0 // indirect - golang.org/x/text v0.14.0 // indirect + golang.org/x/sys v0.20.0 // indirect + golang.org/x/term v0.20.0 // indirect + golang.org/x/text v0.15.0 // indirect golang.org/x/time v0.5.0 // indirect - google.golang.org/api v0.162.0 // indirect + google.golang.org/api v0.169.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 // indirect google.golang.org/protobuf v1.34.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/modules/light-clients/08-wasm/go.sum b/modules/light-clients/08-wasm/go.sum index ae2a531382f..dae493c0a67 100644 --- a/modules/light-clients/08-wasm/go.sum +++ b/modules/light-clients/08-wasm/go.sum @@ -30,8 +30,8 @@ cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w9 cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= -cloud.google.com/go v0.112.0 h1:tpFCD7hpHFlQ8yPwT3x+QeXqc2T6+n6T+hmABHfDUSM= -cloud.google.com/go v0.112.0/go.mod h1:3jEEVwZ/MHU4djK5t5RHuKOA/GbLddgTdVubX1qnPD4= +cloud.google.com/go v0.112.1 h1:uJSeirPke5UNZHIb4SxfZklVSiWWVqW4oXlETwZziwM= +cloud.google.com/go v0.112.1/go.mod h1:+Vbu+Y1UU+I1rjmzeMOb/8RfkKJK2Gyxi1X6jJCZLo4= cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= @@ -68,8 +68,8 @@ cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= -cloud.google.com/go/compute v1.24.0 h1:phWcR2eWzRJaL/kOiJwfFsPs4BaKq1j6vnpZrc1YlVg= -cloud.google.com/go/compute v1.24.0/go.mod h1:kw1/T+h/+tK2LJK0wiPPx1intgdAM3j/g3hFDlscY40= +cloud.google.com/go/compute v1.25.1 h1:ZRpHJedLtTpKgr3RV1Fx23NuaAEN1Zfx9hw1u4aJdjU= +cloud.google.com/go/compute v1.25.1/go.mod h1:oopOIR53ly6viBYxaDhBfJwzUAxf1zE//uf3IB011ls= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= @@ -171,8 +171,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= -cloud.google.com/go/storage v1.36.0 h1:P0mOkAcaJxhCTvAkMhxMfrTKiNcub4YmmPBtlhAyTr8= -cloud.google.com/go/storage v1.36.0/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8= +cloud.google.com/go/storage v1.38.0 h1:Az68ZRGlnNTpIBbLjSMIV2BDcwwXYlRlQzis0llkpJg= +cloud.google.com/go/storage v1.38.0/go.mod h1:tlUADB0mAb9BgYls9lq+8MGkfzOXuLrnHXlpHmvFJoY= cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= @@ -319,8 +319,6 @@ github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa h1:jQCWAUqqlij9Pgj2i/PB79y4KOPYVyFYdROxgaCwdTQ= -github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= github.com/cockroachdb/apd/v2 v2.0.2 h1:weh8u7Cneje73dDh+2tEVLUvyBc89iwepWCD8b8034E= github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= @@ -429,8 +427,6 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.m github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A= -github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= @@ -624,8 +620,8 @@ github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99 github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= -github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= -github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= +github.com/googleapis/gax-go/v2 v2.12.2 h1:mhN09QQW1jEWeMF74zGR81R30z4VJzjZsfkUhuHF+DA= +github.com/googleapis/gax-go/v2 v2.12.2/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= @@ -1053,18 +1049,18 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 h1:UNQQKPfTDe1J81ViolILjTKPr9WetKW6uei2hFgJmFs= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0/go.mod h1:r9vWsPS/3AQItv3OSlEJ/E4mbrhUbbw18meOjArPtKQ= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 h1:sv9kVfal0MK0wBMCOGr+HeJm9v803BkJxGrk2au7j08= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0/go.mod h1:SK2UL73Zy1quvRPonmOmRDiWk1KBV3LyIeeIxcEApWw= -go.opentelemetry.io/otel v1.22.0 h1:xS7Ku+7yTFvDfDraDIJVpw7XPyuHlB9MCiqqX5mcJ6Y= -go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI= -go.opentelemetry.io/otel/metric v1.22.0 h1:lypMQnGyJYeuYPhOM/bgjbFM6WE44W1/T45er4d8Hhg= -go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY= -go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8= -go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= -go.opentelemetry.io/otel/trace v1.22.0 h1:Hg6pPujv0XG9QaVbGOBVHunyuLcCC3jN7WEhPx83XD0= -go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= +go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= +go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= +go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= +go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco= +go.opentelemetry.io/otel/sdk v1.22.0 h1:6coWHw9xw7EfClIC/+O31R8IY3/+EiRFHevmHafB2Gw= +go.opentelemetry.io/otel/sdk v1.22.0/go.mod h1:iu7luyVGYovrRpe2fmj3CVKouQNdTOkxtLzPvPz1DOc= +go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= +go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= @@ -1091,8 +1087,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= -golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= +golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1193,8 +1189,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= -golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= +golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1335,13 +1331,13 @@ golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.19.0 h1:+ThwsDv+tYfnJFhF4L8jITxu1tdTWRTZpdsWgEgjL6Q= -golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk= +golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1353,8 +1349,8 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1432,8 +1428,9 @@ golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= +golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= @@ -1483,8 +1480,8 @@ google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= -google.golang.org/api v0.162.0 h1:Vhs54HkaEpkMBdgGdOT2P6F0csGG/vxDS0hWHJzmmps= -google.golang.org/api v0.162.0/go.mod h1:6SulDkfoBIg4NFmCuZ39XeeAgSHCPecfSUuDyYlAHs0= +google.golang.org/api v0.169.0 h1:QwWPy71FgMWqJN/l6jVlFHUa29a7dcUy02I8o799nPY= +google.golang.org/api v0.169.0/go.mod h1:gpNOiMA2tZ4mf5R9Iwf4rK/Dcz0fbdIgWYWVoxmsyLg= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1603,10 +1600,10 @@ google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= -google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de h1:jFNzHPIeuzhdRwVhbZdiym9q0ory/xY3sA+v2wPg8I0= -google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:5iCWqnniDlqZHrd3neWVTOwvh/v6s3232omMecelax8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda h1:LI5DOvAxUPMv/50agcLLoo+AdWc1irS9Rzz4vPuD1V4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= +google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 h1:RFiFrvy37/mpSpdySBDrUdipW/dHwsRwh3J3+A9VgT4= +google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237/go.mod h1:Z5Iiy3jtmioajWHDGFk7CeugTyHtPvMHA4UTmUkyalE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 h1:AgADTJarZTBqgjiUzRgfaBchgYB3/WFTC80GPwsMcRI= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1648,8 +1645,8 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= -google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= +google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= +google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= From c70464f2ea06aa072031e383053e082c42e50ea8 Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Date: Thu, 16 May 2024 14:41:02 +0200 Subject: [PATCH 45/62] chore: update compatibility tests with v7.5.0 (#6309) * chore: update compatibility tests with v7.5.0 * update unreleased compatibility json files --- .../main/ica-chain-a.json | 1 + .../main/ica-chain-b.json | 1 + .../main/ica-gov-chain-a.json | 1 + .../main/ica-gov-chain-b.json | 1 + .../main/ica-groups-chain-a.json | 1 + .../main/ica-groups-chain-b.json | 1 + .../main/incentivized-ica-chain-a.json | 1 + .../main/incentivized-ica-chain-b.json | 1 + .../main/incentivized-transfer-chain-a.json | 1 + .../main/incentivized-transfer-chain-b.json | 1 + .../main/localhost-ica-chain-a.json | 1 + .../main/localhost-ica-chain-b.json | 1 + .../main/localhost-transfer-chain-a.json | 1 + .../main/localhost-transfer-chain-b.json | 1 + .../main/transfer-authz-chain-a.json | 1 + .../main/transfer-authz-chain-b.json | 1 + .../main/transfer-chain-a.json | 1 + .../main/transfer-chain-b.json | 1 + .../release-v7.4.x/ica-chain-a.json | 1 + .../release-v7.4.x/ica-chain-b.json | 1 + .../release-v7.4.x/ica-gov-chain-a.json | 1 + .../release-v7.4.x/ica-gov-chain-b.json | 1 + .../release-v7.4.x/ica-groups-chain-a.json | 1 + .../release-v7.4.x/ica-groups-chain-b.json | 1 + .../incentivized-ica-chain-a.json | 1 + .../incentivized-ica-chain-b.json | 1 + .../incentivized-transfer-chain-a.json | 1 + .../incentivized-transfer-chain-b.json | 1 + .../release-v7.4.x/localhost-ica-chain-a.json | 3 ++- .../localhost-transfer-chain-a.json | 3 ++- .../transfer-authz-chain-a.json | 1 + .../transfer-authz-chain-b.json | 1 + .../release-v7.4.x/transfer-chain-a.json | 1 + .../release-v7.4.x/transfer-chain-b.json | 1 + .../release-v7.5.x/ica-chain-a.json | 1 + .../release-v7.5.x/ica-chain-b.json | 1 + .../release-v7.5.x/ica-gov-chain-a.json | 1 + .../release-v7.5.x/ica-gov-chain-b.json | 1 + .../release-v7.5.x/ica-groups-chain-a.json | 1 + .../release-v7.5.x/ica-groups-chain-b.json | 1 + .../incentivized-ica-chain-a.json | 1 + .../incentivized-ica-chain-b.json | 1 + .../incentivized-transfer-chain-a.json | 1 + .../incentivized-transfer-chain-b.json | 1 + .../release-v7.5.x/localhost-ica-chain-a.json | 3 ++- .../localhost-transfer-chain-a.json | 3 ++- .../transfer-authz-chain-a.json | 1 + .../transfer-authz-chain-b.json | 1 + .../release-v7.5.x/transfer-chain-a.json | 1 + .../release-v7.5.x/transfer-chain-b.json | 1 + .../release-v8.2.x/ica-chain-a.json | 1 + .../release-v8.2.x/ica-chain-b.json | 1 + .../release-v8.2.x/ica-gov-chain-a.json | 1 + .../release-v8.2.x/ica-gov-chain-b.json | 1 + .../release-v8.2.x/ica-groups-chain-a.json | 1 + .../release-v8.2.x/ica-groups-chain-b.json | 1 + .../incentivized-ica-chain-a.json | 1 + .../incentivized-ica-chain-b.json | 1 + .../incentivized-transfer-chain-a.json | 1 + .../incentivized-transfer-chain-b.json | 1 + .../release-v8.2.x/localhost-ica-chain-a.json | 3 ++- .../localhost-transfer-chain-a.json | 3 ++- .../transfer-authz-chain-a.json | 1 + .../transfer-authz-chain-b.json | 1 + .../release-v8.2.x/transfer-chain-a.json | 1 + .../release-v8.2.x/transfer-chain-b.json | 1 + .../release-v8.3.x/ica-chain-a.json | 1 + .../release-v8.3.x/ica-chain-b.json | 1 + .../release-v8.3.x/ica-gov-chain-a.json | 1 + .../release-v8.3.x/ica-gov-chain-b.json | 1 + .../release-v8.3.x/ica-groups-chain-a.json | 1 + .../release-v8.3.x/ica-groups-chain-b.json | 1 + .../release-v8.3.x/ica-queries-chain-a.json | 1 + .../release-v8.3.x/ica-queries-chain-b.json | 1 + .../ica-unordered-channel-chain-a.json | 1 + .../ica-unordered-channel-chain-b.json | 1 + .../incentivized-ica-chain-a.json | 1 + .../incentivized-ica-chain-b.json | 1 + .../incentivized-transfer-chain-a.json | 1 + .../incentivized-transfer-chain-b.json | 1 + .../release-v8.3.x/localhost-ica-chain-a.json | 3 ++- .../localhost-transfer-chain-a.json | 3 ++- .../transfer-authz-chain-a.json | 1 + .../transfer-authz-chain-b.json | 1 + .../release-v8.3.x/transfer-chain-a.json | 1 + .../release-v8.3.x/transfer-chain-b.json | 1 + .../unreleased/client-1.json | 8 ++++-- .../unreleased/client-2.json | 2 ++ .../unreleased/connection.json | 4 +++ .../ica-channel-upgrade-chain-a.json | 2 ++ .../ica-channel-upgrade-chain-b.json | 2 ++ .../unreleased/ica-gov.json | 4 +++ .../unreleased/ica-groups.json | 4 +++ .../unreleased/ica-unordered-channel.json | 8 ++++-- .../unreleased/ica.json | 4 +++ .../unreleased/incentivized-ica.json | 4 +++ .../unreleased/incentivized-transfer-1.json | 4 +++ .../unreleased/incentivized-transfer-2.json | 4 +++ .../unreleased/incentivized-transfer-3.json | 4 +++ .../unreleased/localhost-ica.json | 4 +++ .../unreleased/localhost-transfer.json | 4 +++ .../unreleased/transfer-1.json | 4 +++ .../unreleased/transfer-2.json | 4 +++ .../unreleased/transfer-3.json | 4 +++ .../unreleased/transfer-authz.json | 4 +++ .../transfer-channel-upgrade-chain-a.json | 2 ++ .../transfer-channel-upgrade-chain-b.json | 2 ++ .github/workflows/e2e-manual-simd.yaml | 2 ++ CHANGELOG.md | 26 +++++++++++++++++++ RELEASES.md | 4 ++- 110 files changed, 203 insertions(+), 13 deletions(-) diff --git a/.github/compatibility-test-matrices/main/ica-chain-a.json b/.github/compatibility-test-matrices/main/ica-chain-a.json index 2aaa763929d..2e4b8d6e271 100644 --- a/.github/compatibility-test-matrices/main/ica-chain-a.json +++ b/.github/compatibility-test-matrices/main/ica-chain-a.json @@ -5,6 +5,7 @@ "chain-b": [ "main", "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0" ], diff --git a/.github/compatibility-test-matrices/main/ica-chain-b.json b/.github/compatibility-test-matrices/main/ica-chain-b.json index 7269d6e9f59..4b23f47b3f8 100644 --- a/.github/compatibility-test-matrices/main/ica-chain-b.json +++ b/.github/compatibility-test-matrices/main/ica-chain-b.json @@ -2,6 +2,7 @@ "chain-a": [ "main", "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0" ], diff --git a/.github/compatibility-test-matrices/main/ica-gov-chain-a.json b/.github/compatibility-test-matrices/main/ica-gov-chain-a.json index c6e9806ddd1..62fa689d7f6 100644 --- a/.github/compatibility-test-matrices/main/ica-gov-chain-a.json +++ b/.github/compatibility-test-matrices/main/ica-gov-chain-a.json @@ -5,6 +5,7 @@ "chain-b": [ "main", "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0" ], diff --git a/.github/compatibility-test-matrices/main/ica-gov-chain-b.json b/.github/compatibility-test-matrices/main/ica-gov-chain-b.json index f361a9a3fd7..f3a0950a8ad 100644 --- a/.github/compatibility-test-matrices/main/ica-gov-chain-b.json +++ b/.github/compatibility-test-matrices/main/ica-gov-chain-b.json @@ -2,6 +2,7 @@ "chain-a": [ "main", "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0" ], diff --git a/.github/compatibility-test-matrices/main/ica-groups-chain-a.json b/.github/compatibility-test-matrices/main/ica-groups-chain-a.json index 5d3f1704ea3..359560d9297 100644 --- a/.github/compatibility-test-matrices/main/ica-groups-chain-a.json +++ b/.github/compatibility-test-matrices/main/ica-groups-chain-a.json @@ -5,6 +5,7 @@ "chain-b": [ "main", "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0" ], diff --git a/.github/compatibility-test-matrices/main/ica-groups-chain-b.json b/.github/compatibility-test-matrices/main/ica-groups-chain-b.json index 9117abf3463..c902bfb6f72 100644 --- a/.github/compatibility-test-matrices/main/ica-groups-chain-b.json +++ b/.github/compatibility-test-matrices/main/ica-groups-chain-b.json @@ -2,6 +2,7 @@ "chain-a": [ "main", "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0" ], diff --git a/.github/compatibility-test-matrices/main/incentivized-ica-chain-a.json b/.github/compatibility-test-matrices/main/incentivized-ica-chain-a.json index b7081c237d2..6696832953d 100644 --- a/.github/compatibility-test-matrices/main/incentivized-ica-chain-a.json +++ b/.github/compatibility-test-matrices/main/incentivized-ica-chain-a.json @@ -5,6 +5,7 @@ "chain-b": [ "main", "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0" ], diff --git a/.github/compatibility-test-matrices/main/incentivized-ica-chain-b.json b/.github/compatibility-test-matrices/main/incentivized-ica-chain-b.json index 053b34112e0..95e368039e9 100644 --- a/.github/compatibility-test-matrices/main/incentivized-ica-chain-b.json +++ b/.github/compatibility-test-matrices/main/incentivized-ica-chain-b.json @@ -2,6 +2,7 @@ "chain-a": [ "main", "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0" ], diff --git a/.github/compatibility-test-matrices/main/incentivized-transfer-chain-a.json b/.github/compatibility-test-matrices/main/incentivized-transfer-chain-a.json index f8c54be75c1..c704a6f68e9 100644 --- a/.github/compatibility-test-matrices/main/incentivized-transfer-chain-a.json +++ b/.github/compatibility-test-matrices/main/incentivized-transfer-chain-a.json @@ -5,6 +5,7 @@ "chain-b": [ "main", "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "v5.4.0", diff --git a/.github/compatibility-test-matrices/main/incentivized-transfer-chain-b.json b/.github/compatibility-test-matrices/main/incentivized-transfer-chain-b.json index c5d151be8ec..11f61cfbbac 100644 --- a/.github/compatibility-test-matrices/main/incentivized-transfer-chain-b.json +++ b/.github/compatibility-test-matrices/main/incentivized-transfer-chain-b.json @@ -2,6 +2,7 @@ "chain-a": [ "main", "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "v5.4.0", diff --git a/.github/compatibility-test-matrices/main/localhost-ica-chain-a.json b/.github/compatibility-test-matrices/main/localhost-ica-chain-a.json index 2bcc3821722..aa4d12bc5c1 100644 --- a/.github/compatibility-test-matrices/main/localhost-ica-chain-a.json +++ b/.github/compatibility-test-matrices/main/localhost-ica-chain-a.json @@ -2,6 +2,7 @@ "chain-a": [ "main", "v8.2.0", + "v7.5.0", "v7.4.0" ], "chain-b": [ diff --git a/.github/compatibility-test-matrices/main/localhost-ica-chain-b.json b/.github/compatibility-test-matrices/main/localhost-ica-chain-b.json index bae97ad9311..ccfd292c186 100644 --- a/.github/compatibility-test-matrices/main/localhost-ica-chain-b.json +++ b/.github/compatibility-test-matrices/main/localhost-ica-chain-b.json @@ -5,6 +5,7 @@ "chain-b": [ "main", "v8.2.0", + "v7.5.0", "v7.4.0" ], "entrypoint": [ diff --git a/.github/compatibility-test-matrices/main/localhost-transfer-chain-a.json b/.github/compatibility-test-matrices/main/localhost-transfer-chain-a.json index 5c50aa2e5ac..264cfb02a8f 100644 --- a/.github/compatibility-test-matrices/main/localhost-transfer-chain-a.json +++ b/.github/compatibility-test-matrices/main/localhost-transfer-chain-a.json @@ -2,6 +2,7 @@ "chain-a": [ "main", "v8.2.0", + "v7.5.0", "v7.4.0" ], "chain-b": [ diff --git a/.github/compatibility-test-matrices/main/localhost-transfer-chain-b.json b/.github/compatibility-test-matrices/main/localhost-transfer-chain-b.json index 14bc6b25d08..72747eb558e 100644 --- a/.github/compatibility-test-matrices/main/localhost-transfer-chain-b.json +++ b/.github/compatibility-test-matrices/main/localhost-transfer-chain-b.json @@ -5,6 +5,7 @@ "chain-b": [ "main", "v8.2.0", + "v7.5.0", "v7.4.0" ], "entrypoint": [ diff --git a/.github/compatibility-test-matrices/main/transfer-authz-chain-a.json b/.github/compatibility-test-matrices/main/transfer-authz-chain-a.json index fc93040ab61..84ba42aa585 100644 --- a/.github/compatibility-test-matrices/main/transfer-authz-chain-a.json +++ b/.github/compatibility-test-matrices/main/transfer-authz-chain-a.json @@ -5,6 +5,7 @@ "chain-b": [ "main", "v8.2.0", + "v7.5.0", "v7.4.0" ], "entrypoint": [ diff --git a/.github/compatibility-test-matrices/main/transfer-authz-chain-b.json b/.github/compatibility-test-matrices/main/transfer-authz-chain-b.json index b758c43f997..953af8a6679 100644 --- a/.github/compatibility-test-matrices/main/transfer-authz-chain-b.json +++ b/.github/compatibility-test-matrices/main/transfer-authz-chain-b.json @@ -2,6 +2,7 @@ "chain-a": [ "main", "v8.2.0", + "v7.5.0", "v7.4.0" ], "chain-b": [ diff --git a/.github/compatibility-test-matrices/main/transfer-chain-a.json b/.github/compatibility-test-matrices/main/transfer-chain-a.json index 0f995ee9175..5f759dd4e98 100644 --- a/.github/compatibility-test-matrices/main/transfer-chain-a.json +++ b/.github/compatibility-test-matrices/main/transfer-chain-a.json @@ -5,6 +5,7 @@ "chain-b": [ "main", "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "v5.4.0", diff --git a/.github/compatibility-test-matrices/main/transfer-chain-b.json b/.github/compatibility-test-matrices/main/transfer-chain-b.json index 08d3a9ab74c..7dc6ad968c7 100644 --- a/.github/compatibility-test-matrices/main/transfer-chain-b.json +++ b/.github/compatibility-test-matrices/main/transfer-chain-b.json @@ -2,6 +2,7 @@ "chain-a": [ "main", "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "v5.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.4.x/ica-chain-a.json b/.github/compatibility-test-matrices/release-v7.4.x/ica-chain-a.json index 7da8fda85d4..2e79fbfb7a8 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/ica-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v7.4.x" diff --git a/.github/compatibility-test-matrices/release-v7.4.x/ica-chain-b.json b/.github/compatibility-test-matrices/release-v7.4.x/ica-chain-b.json index 8e458ea4dc4..a4f5ba6003a 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/ica-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/ica-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v7.4.x" diff --git a/.github/compatibility-test-matrices/release-v7.4.x/ica-gov-chain-a.json b/.github/compatibility-test-matrices/release-v7.4.x/ica-gov-chain-a.json index 76e962ead24..c3713a19869 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/ica-gov-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/ica-gov-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v7.4.x" diff --git a/.github/compatibility-test-matrices/release-v7.4.x/ica-gov-chain-b.json b/.github/compatibility-test-matrices/release-v7.4.x/ica-gov-chain-b.json index 7137932762f..aae63198dfd 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/ica-gov-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/ica-gov-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v7.4.x" diff --git a/.github/compatibility-test-matrices/release-v7.4.x/ica-groups-chain-a.json b/.github/compatibility-test-matrices/release-v7.4.x/ica-groups-chain-a.json index 44e70d421d3..3a343d8dba9 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/ica-groups-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/ica-groups-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v7.4.x" diff --git a/.github/compatibility-test-matrices/release-v7.4.x/ica-groups-chain-b.json b/.github/compatibility-test-matrices/release-v7.4.x/ica-groups-chain-b.json index 7fb8a39dfc6..696d09a60fd 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/ica-groups-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/ica-groups-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v7.4.x" diff --git a/.github/compatibility-test-matrices/release-v7.4.x/incentivized-ica-chain-a.json b/.github/compatibility-test-matrices/release-v7.4.x/incentivized-ica-chain-a.json index ff17ed3e9e8..d22db4e376d 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/incentivized-ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/incentivized-ica-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v7.4.x" diff --git a/.github/compatibility-test-matrices/release-v7.4.x/incentivized-ica-chain-b.json b/.github/compatibility-test-matrices/release-v7.4.x/incentivized-ica-chain-b.json index 5456be68cda..f511c98c7f2 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/incentivized-ica-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/incentivized-ica-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v7.4.x" diff --git a/.github/compatibility-test-matrices/release-v7.4.x/incentivized-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v7.4.x/incentivized-transfer-chain-a.json index d62b4369a4f..fdda0a38153 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/incentivized-transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/incentivized-transfer-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "v5.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.4.x/incentivized-transfer-chain-b.json b/.github/compatibility-test-matrices/release-v7.4.x/incentivized-transfer-chain-b.json index f873c101012..39bc990af43 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/incentivized-transfer-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/incentivized-transfer-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "v5.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.4.x/localhost-ica-chain-a.json b/.github/compatibility-test-matrices/release-v7.4.x/localhost-ica-chain-a.json index 1bae278c051..4059640ddd2 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/localhost-ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/localhost-ica-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "release-v7.4.x" ], @@ -17,4 +18,4 @@ "relayer-type": [ "hermes" ] -} +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v7.4.x/localhost-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v7.4.x/localhost-transfer-chain-a.json index 93e2967f9c3..f27b4ac403e 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/localhost-transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/localhost-transfer-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "release-v7.4.x" ], @@ -16,4 +17,4 @@ "relayer-type": [ "hermes" ] -} +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v7.4.x/transfer-authz-chain-a.json b/.github/compatibility-test-matrices/release-v7.4.x/transfer-authz-chain-a.json index 120aa54a836..cb94296877e 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/transfer-authz-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/transfer-authz-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "release-v7.4.x" ], diff --git a/.github/compatibility-test-matrices/release-v7.4.x/transfer-authz-chain-b.json b/.github/compatibility-test-matrices/release-v7.4.x/transfer-authz-chain-b.json index 7a31713606d..6d9fc088d30 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/transfer-authz-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/transfer-authz-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "release-v7.4.x" ], diff --git a/.github/compatibility-test-matrices/release-v7.4.x/transfer-chain-a.json b/.github/compatibility-test-matrices/release-v7.4.x/transfer-chain-a.json index f4774373573..fbe390e2507 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/transfer-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "v5.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.4.x/transfer-chain-b.json b/.github/compatibility-test-matrices/release-v7.4.x/transfer-chain-b.json index 901050959ff..c2655811011 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/transfer-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/transfer-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "v5.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-chain-a.json index ffc2a1041a0..831b79f650f 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v7.5.x" diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-chain-b.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-chain-b.json index 5cfdc387363..f6cc5bdb8d4 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/ica-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v7.5.x" diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-gov-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-gov-chain-a.json index a91f328c512..712414b6859 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/ica-gov-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-gov-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v7.5.x" diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-gov-chain-b.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-gov-chain-b.json index a33e84b35d4..0f8f28db6ee 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/ica-gov-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-gov-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v7.5.x" diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-groups-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-groups-chain-a.json index 036d2f653f5..18419c31616 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/ica-groups-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-groups-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v7.5.x" diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-groups-chain-b.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-groups-chain-b.json index ced2c450af3..6dd4abe50d5 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/ica-groups-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-groups-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v7.5.x" diff --git a/.github/compatibility-test-matrices/release-v7.5.x/incentivized-ica-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/incentivized-ica-chain-a.json index 0c765b309f5..e0a332bfe29 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/incentivized-ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/incentivized-ica-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v7.5.x" diff --git a/.github/compatibility-test-matrices/release-v7.5.x/incentivized-ica-chain-b.json b/.github/compatibility-test-matrices/release-v7.5.x/incentivized-ica-chain-b.json index 472a1609d9a..c7fc14afa2c 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/incentivized-ica-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/incentivized-ica-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v7.5.x" diff --git a/.github/compatibility-test-matrices/release-v7.5.x/incentivized-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/incentivized-transfer-chain-a.json index 6ccbdd6aaf1..c3350ab6076 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/incentivized-transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/incentivized-transfer-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "v5.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.5.x/incentivized-transfer-chain-b.json b/.github/compatibility-test-matrices/release-v7.5.x/incentivized-transfer-chain-b.json index 06ef1fc827e..8a70b96b9c7 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/incentivized-transfer-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/incentivized-transfer-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "v5.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.5.x/localhost-ica-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/localhost-ica-chain-a.json index a6afa1a509e..df83c5796e6 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/localhost-ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/localhost-ica-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "release-v7.5.x" ], @@ -17,4 +18,4 @@ "relayer-type": [ "hermes" ] -} +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v7.5.x/localhost-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/localhost-transfer-chain-a.json index 217674086a0..9c12c2af42a 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/localhost-transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/localhost-transfer-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "release-v7.5.x" ], @@ -16,4 +17,4 @@ "relayer-type": [ "hermes" ] -} +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v7.5.x/transfer-authz-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/transfer-authz-chain-a.json index 6800191a3e1..47d242d547f 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/transfer-authz-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/transfer-authz-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "release-v7.5.x" ], diff --git a/.github/compatibility-test-matrices/release-v7.5.x/transfer-authz-chain-b.json b/.github/compatibility-test-matrices/release-v7.5.x/transfer-authz-chain-b.json index 2f9ac3f26c0..438a7bebd06 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/transfer-authz-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/transfer-authz-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "release-v7.5.x" ], diff --git a/.github/compatibility-test-matrices/release-v7.5.x/transfer-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/transfer-chain-a.json index 7fba4b4c556..b6d2423ca23 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/transfer-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "v5.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.5.x/transfer-chain-b.json b/.github/compatibility-test-matrices/release-v7.5.x/transfer-chain-b.json index 94745e57039..e7b793e9d24 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/transfer-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/transfer-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "v5.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.2.x/ica-chain-a.json b/.github/compatibility-test-matrices/release-v8.2.x/ica-chain-a.json index f8ab5847253..08c289a3f8b 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/ica-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v8.2.x" diff --git a/.github/compatibility-test-matrices/release-v8.2.x/ica-chain-b.json b/.github/compatibility-test-matrices/release-v8.2.x/ica-chain-b.json index be50c080dca..a4de1853c20 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/ica-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/ica-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v8.2.x" diff --git a/.github/compatibility-test-matrices/release-v8.2.x/ica-gov-chain-a.json b/.github/compatibility-test-matrices/release-v8.2.x/ica-gov-chain-a.json index ab550bcd521..08ac5d33487 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/ica-gov-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/ica-gov-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v8.2.x" diff --git a/.github/compatibility-test-matrices/release-v8.2.x/ica-gov-chain-b.json b/.github/compatibility-test-matrices/release-v8.2.x/ica-gov-chain-b.json index fafe5c8fd80..cb3fa3f503d 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/ica-gov-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/ica-gov-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v8.2.x" diff --git a/.github/compatibility-test-matrices/release-v8.2.x/ica-groups-chain-a.json b/.github/compatibility-test-matrices/release-v8.2.x/ica-groups-chain-a.json index a26bc467c77..658160b2bf1 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/ica-groups-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/ica-groups-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v8.2.x" diff --git a/.github/compatibility-test-matrices/release-v8.2.x/ica-groups-chain-b.json b/.github/compatibility-test-matrices/release-v8.2.x/ica-groups-chain-b.json index c935e86530a..2300a333803 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/ica-groups-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/ica-groups-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v8.2.x" diff --git a/.github/compatibility-test-matrices/release-v8.2.x/incentivized-ica-chain-a.json b/.github/compatibility-test-matrices/release-v8.2.x/incentivized-ica-chain-a.json index e9adde86b37..20083ea8692 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/incentivized-ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/incentivized-ica-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v8.2.x" diff --git a/.github/compatibility-test-matrices/release-v8.2.x/incentivized-ica-chain-b.json b/.github/compatibility-test-matrices/release-v8.2.x/incentivized-ica-chain-b.json index b41af7059ba..426396c8bd7 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/incentivized-ica-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/incentivized-ica-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v8.2.x" diff --git a/.github/compatibility-test-matrices/release-v8.2.x/incentivized-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v8.2.x/incentivized-transfer-chain-a.json index 5127c321660..55a7a01ea48 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/incentivized-transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/incentivized-transfer-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "v5.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.2.x/incentivized-transfer-chain-b.json b/.github/compatibility-test-matrices/release-v8.2.x/incentivized-transfer-chain-b.json index 39157482bcc..f91bb5f7c6e 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/incentivized-transfer-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/incentivized-transfer-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "v5.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.2.x/localhost-ica-chain-a.json b/.github/compatibility-test-matrices/release-v8.2.x/localhost-ica-chain-a.json index 5efc575b4bf..3643014a857 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/localhost-ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/localhost-ica-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "release-v8.2.x" ], @@ -17,4 +18,4 @@ "relayer-type": [ "hermes" ] -} +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.2.x/localhost-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v8.2.x/localhost-transfer-chain-a.json index deb9acc7f84..e39ebfc20cf 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/localhost-transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/localhost-transfer-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "release-v8.2.x" ], @@ -16,4 +17,4 @@ "relayer-type": [ "hermes" ] -} +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.2.x/transfer-authz-chain-a.json b/.github/compatibility-test-matrices/release-v8.2.x/transfer-authz-chain-a.json index 359a3239516..94f2cfccb8a 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/transfer-authz-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/transfer-authz-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "release-v8.2.x" ], diff --git a/.github/compatibility-test-matrices/release-v8.2.x/transfer-authz-chain-b.json b/.github/compatibility-test-matrices/release-v8.2.x/transfer-authz-chain-b.json index 1fbed292ed9..9ad2b678b09 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/transfer-authz-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/transfer-authz-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "release-v8.2.x" ], diff --git a/.github/compatibility-test-matrices/release-v8.2.x/transfer-chain-a.json b/.github/compatibility-test-matrices/release-v8.2.x/transfer-chain-a.json index 4324f926385..38c126aa5f8 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/transfer-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "v5.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.2.x/transfer-chain-b.json b/.github/compatibility-test-matrices/release-v8.2.x/transfer-chain-b.json index c0bf321db61..72f6b68b7a4 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/transfer-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/transfer-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "v5.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-chain-a.json index b5e97677765..813a387a5d7 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v8.3.x" diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-chain-b.json index 75dc442cdc3..95674a4c301 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/ica-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v8.3.x" diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-gov-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-gov-chain-a.json index 175600580be..7453df5a2cb 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/ica-gov-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-gov-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v8.3.x" diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-gov-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-gov-chain-b.json index 13993d1f0c9..4bde89de66e 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/ica-gov-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-gov-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v8.3.x" diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-groups-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-groups-chain-a.json index 469225a6e6d..52235f351c5 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/ica-groups-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-groups-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v8.3.x" diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-groups-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-groups-chain-b.json index 6cd4117a25f..e019a5616e8 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/ica-groups-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-groups-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v8.3.x" diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-queries-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-queries-chain-a.json index adef0e27686..c4485bb0b02 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/ica-queries-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-queries-chain-a.json @@ -3,6 +3,7 @@ "release-v8.3.x" ], "chain-b": [ + "v7.5.0", "release-v8.3.x" ], "entrypoint": [ diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-queries-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-queries-chain-b.json index adef0e27686..ff1b966f5ba 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/ica-queries-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-queries-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v7.5.0", "release-v8.3.x" ], "chain-b": [ diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-unordered-channel-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-unordered-channel-chain-a.json index 6b40e20e343..62d3c665cff 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/ica-unordered-channel-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-unordered-channel-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "release-v8.3.x" ], "entrypoint": [ diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-unordered-channel-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-unordered-channel-chain-b.json index b49a219d7cf..b9d1b4ab770 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/ica-unordered-channel-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-unordered-channel-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "release-v8.3.x" ], "chain-b": [ diff --git a/.github/compatibility-test-matrices/release-v8.3.x/incentivized-ica-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/incentivized-ica-chain-a.json index 9e879a3e58c..f1e871e5ae4 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/incentivized-ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/incentivized-ica-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v8.3.x" diff --git a/.github/compatibility-test-matrices/release-v8.3.x/incentivized-ica-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/incentivized-ica-chain-b.json index 0899cdd4689..cd7552628c9 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/incentivized-ica-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/incentivized-ica-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "release-v8.3.x" diff --git a/.github/compatibility-test-matrices/release-v8.3.x/incentivized-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/incentivized-transfer-chain-a.json index 846db8626cf..ac179162c61 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/incentivized-transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/incentivized-transfer-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "v5.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.3.x/incentivized-transfer-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/incentivized-transfer-chain-b.json index 7b986b33b65..6bbfd56076e 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/incentivized-transfer-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/incentivized-transfer-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "v5.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.3.x/localhost-ica-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/localhost-ica-chain-a.json index 76f7c5ecaa4..ac41d542992 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/localhost-ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/localhost-ica-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "release-v8.3.x" ], @@ -17,4 +18,4 @@ "relayer-type": [ "hermes" ] -} +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.3.x/localhost-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/localhost-transfer-chain-a.json index ceb7c268765..f2fe7fa4093 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/localhost-transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/localhost-transfer-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "release-v8.3.x" ], @@ -16,4 +17,4 @@ "relayer-type": [ "hermes" ] -} +} \ No newline at end of file diff --git a/.github/compatibility-test-matrices/release-v8.3.x/transfer-authz-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/transfer-authz-chain-a.json index 23e1d1bd9bb..51516741d71 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/transfer-authz-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/transfer-authz-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "release-v8.3.x" ], diff --git a/.github/compatibility-test-matrices/release-v8.3.x/transfer-authz-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/transfer-authz-chain-b.json index 479f5cb4a17..1dface1752b 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/transfer-authz-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/transfer-authz-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "release-v8.3.x" ], diff --git a/.github/compatibility-test-matrices/release-v8.3.x/transfer-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/transfer-chain-a.json index 93c5e0e013c..8833b286ef4 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/transfer-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "v5.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.3.x/transfer-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/transfer-chain-b.json index 197e9127eaa..b65f5c2d9a7 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/transfer-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/transfer-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "v8.2.0", + "v7.5.0", "v7.4.0", "v6.3.0", "v5.4.0", diff --git a/.github/compatibility-test-matrices/unreleased/client-1.json b/.github/compatibility-test-matrices/unreleased/client-1.json index 274f1c16ae8..0361fd6a8da 100644 --- a/.github/compatibility-test-matrices/unreleased/client-1.json +++ b/.github/compatibility-test-matrices/unreleased/client-1.json @@ -1,9 +1,13 @@ { "chain-a": [ - "release-v8.2.x" + "release-v8.2.x", + "release-v7.5.x", + "release-v7.4.x" ], "chain-b": [ - "release-v8.2.x" + "release-v8.2.x", + "release-v7.5.x", + "release-v7.4.x" ], "entrypoint": [ "TestClientTestSuite" diff --git a/.github/compatibility-test-matrices/unreleased/client-2.json b/.github/compatibility-test-matrices/unreleased/client-2.json index b3fcc9e07f5..5d0dbd62375 100644 --- a/.github/compatibility-test-matrices/unreleased/client-2.json +++ b/.github/compatibility-test-matrices/unreleased/client-2.json @@ -1,8 +1,10 @@ { "chain-a": [ + "release-v8.3.x", "release-v8.2.x" ], "chain-b": [ + "release-v8.3.x", "release-v8.2.x" ], "entrypoint": [ diff --git a/.github/compatibility-test-matrices/unreleased/connection.json b/.github/compatibility-test-matrices/unreleased/connection.json index 0d14c80c1aa..33e262834c2 100644 --- a/.github/compatibility-test-matrices/unreleased/connection.json +++ b/.github/compatibility-test-matrices/unreleased/connection.json @@ -1,10 +1,14 @@ { "chain-a": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x" ], "chain-b": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x" ], "entrypoint": [ diff --git a/.github/compatibility-test-matrices/unreleased/ica-channel-upgrade-chain-a.json b/.github/compatibility-test-matrices/unreleased/ica-channel-upgrade-chain-a.json index 1844727c4f0..1b030f6861f 100644 --- a/.github/compatibility-test-matrices/unreleased/ica-channel-upgrade-chain-a.json +++ b/.github/compatibility-test-matrices/unreleased/ica-channel-upgrade-chain-a.json @@ -1,8 +1,10 @@ { "chain-a": [ + "release-v8.3.x", "release-v8.2.x" ], "chain-b": [ + "release-v8.3.x", "release-v8.2.x" ], "entrypoint": [ diff --git a/.github/compatibility-test-matrices/unreleased/ica-channel-upgrade-chain-b.json b/.github/compatibility-test-matrices/unreleased/ica-channel-upgrade-chain-b.json index 1844727c4f0..1b030f6861f 100644 --- a/.github/compatibility-test-matrices/unreleased/ica-channel-upgrade-chain-b.json +++ b/.github/compatibility-test-matrices/unreleased/ica-channel-upgrade-chain-b.json @@ -1,8 +1,10 @@ { "chain-a": [ + "release-v8.3.x", "release-v8.2.x" ], "chain-b": [ + "release-v8.3.x", "release-v8.2.x" ], "entrypoint": [ diff --git a/.github/compatibility-test-matrices/unreleased/ica-gov.json b/.github/compatibility-test-matrices/unreleased/ica-gov.json index b95f08b3186..868a725ba79 100644 --- a/.github/compatibility-test-matrices/unreleased/ica-gov.json +++ b/.github/compatibility-test-matrices/unreleased/ica-gov.json @@ -1,11 +1,15 @@ { "chain-a": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x", "release-v6.3.x" ], "chain-b": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x", "release-v6.3.x" ], diff --git a/.github/compatibility-test-matrices/unreleased/ica-groups.json b/.github/compatibility-test-matrices/unreleased/ica-groups.json index 2c29fb0fdcb..a1e28847e36 100644 --- a/.github/compatibility-test-matrices/unreleased/ica-groups.json +++ b/.github/compatibility-test-matrices/unreleased/ica-groups.json @@ -1,11 +1,15 @@ { "chain-a": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x", "release-v6.3.x" ], "chain-b": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x", "release-v6.3.x" ], diff --git a/.github/compatibility-test-matrices/unreleased/ica-unordered-channel.json b/.github/compatibility-test-matrices/unreleased/ica-unordered-channel.json index 724aed8831f..c94a924271a 100644 --- a/.github/compatibility-test-matrices/unreleased/ica-unordered-channel.json +++ b/.github/compatibility-test-matrices/unreleased/ica-unordered-channel.json @@ -1,9 +1,13 @@ { "chain-a": [ - "release-v8.2.x" + "release-v8.3.x", + "release-v8.2.x", + "release-v7.5.x" ], "chain-b": [ - "release-v8.2.x" + "release-v8.3.x", + "release-v8.2.x", + "release-v7.5.x" ], "entrypoint": [ "TestInterchainAccountsTestSuite" diff --git a/.github/compatibility-test-matrices/unreleased/ica.json b/.github/compatibility-test-matrices/unreleased/ica.json index 543ccd5651f..c9f90cb9723 100644 --- a/.github/compatibility-test-matrices/unreleased/ica.json +++ b/.github/compatibility-test-matrices/unreleased/ica.json @@ -1,13 +1,17 @@ { "chain-a": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x", "release-v6.3.x", "release-v5.4.x", "release-v4.6.x" ], "chain-b": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x", "release-v6.3.x", "release-v5.4.x", diff --git a/.github/compatibility-test-matrices/unreleased/incentivized-ica.json b/.github/compatibility-test-matrices/unreleased/incentivized-ica.json index e57a8d2f8da..d00a8503674 100644 --- a/.github/compatibility-test-matrices/unreleased/incentivized-ica.json +++ b/.github/compatibility-test-matrices/unreleased/incentivized-ica.json @@ -1,11 +1,15 @@ { "chain-a": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x", "release-v6.3.x" ], "chain-b": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x", "release-v6.3.x" ], diff --git a/.github/compatibility-test-matrices/unreleased/incentivized-transfer-1.json b/.github/compatibility-test-matrices/unreleased/incentivized-transfer-1.json index 39bbc42077a..1c9ed5d57b3 100644 --- a/.github/compatibility-test-matrices/unreleased/incentivized-transfer-1.json +++ b/.github/compatibility-test-matrices/unreleased/incentivized-transfer-1.json @@ -1,13 +1,17 @@ { "chain-a": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x", "release-v6.3.x", "release-v5.4.x", "release-v4.6.x" ], "chain-b": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x", "release-v6.3.x", "release-v5.4.x", diff --git a/.github/compatibility-test-matrices/unreleased/incentivized-transfer-2.json b/.github/compatibility-test-matrices/unreleased/incentivized-transfer-2.json index 9d6604460c1..aeb79124a06 100644 --- a/.github/compatibility-test-matrices/unreleased/incentivized-transfer-2.json +++ b/.github/compatibility-test-matrices/unreleased/incentivized-transfer-2.json @@ -1,13 +1,17 @@ { "chain-a": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x", "release-v6.3.x", "release-v5.4.x", "release-v4.6.x" ], "chain-b": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x", "release-v6.3.x", "release-v5.4.x", diff --git a/.github/compatibility-test-matrices/unreleased/incentivized-transfer-3.json b/.github/compatibility-test-matrices/unreleased/incentivized-transfer-3.json index deea2e25ccd..aac7f89b940 100644 --- a/.github/compatibility-test-matrices/unreleased/incentivized-transfer-3.json +++ b/.github/compatibility-test-matrices/unreleased/incentivized-transfer-3.json @@ -1,13 +1,17 @@ { "chain-a": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x", "release-v6.3.x", "release-v5.4.x", "release-v4.6.x" ], "chain-b": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x", "release-v6.3.x", "release-v5.4.x", diff --git a/.github/compatibility-test-matrices/unreleased/localhost-ica.json b/.github/compatibility-test-matrices/unreleased/localhost-ica.json index 19d67a119e7..0170731fe6f 100644 --- a/.github/compatibility-test-matrices/unreleased/localhost-ica.json +++ b/.github/compatibility-test-matrices/unreleased/localhost-ica.json @@ -1,10 +1,14 @@ { "chain-a": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x" ], "chain-b": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x" ], "entrypoint": [ diff --git a/.github/compatibility-test-matrices/unreleased/localhost-transfer.json b/.github/compatibility-test-matrices/unreleased/localhost-transfer.json index f0b55d72305..6864d56e5e7 100644 --- a/.github/compatibility-test-matrices/unreleased/localhost-transfer.json +++ b/.github/compatibility-test-matrices/unreleased/localhost-transfer.json @@ -1,10 +1,14 @@ { "chain-a": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x" ], "chain-b": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x" ], "entrypoint": [ diff --git a/.github/compatibility-test-matrices/unreleased/transfer-1.json b/.github/compatibility-test-matrices/unreleased/transfer-1.json index e63cbef2a91..546d18a947e 100644 --- a/.github/compatibility-test-matrices/unreleased/transfer-1.json +++ b/.github/compatibility-test-matrices/unreleased/transfer-1.json @@ -1,13 +1,17 @@ { "chain-a": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x", "release-v6.3.x", "release-v5.4.x", "release-v4.6.x" ], "chain-b": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x", "release-v6.3.x", "release-v5.4.x", diff --git a/.github/compatibility-test-matrices/unreleased/transfer-2.json b/.github/compatibility-test-matrices/unreleased/transfer-2.json index 314d4e8a13b..6bca693fc79 100644 --- a/.github/compatibility-test-matrices/unreleased/transfer-2.json +++ b/.github/compatibility-test-matrices/unreleased/transfer-2.json @@ -1,13 +1,17 @@ { "chain-a": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x", "release-v6.3.x", "release-v5.4.x", "release-v4.6.x" ], "chain-b": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x", "release-v6.3.x", "release-v5.4.x", diff --git a/.github/compatibility-test-matrices/unreleased/transfer-3.json b/.github/compatibility-test-matrices/unreleased/transfer-3.json index f3a8a5ac989..eeb4914bc65 100644 --- a/.github/compatibility-test-matrices/unreleased/transfer-3.json +++ b/.github/compatibility-test-matrices/unreleased/transfer-3.json @@ -1,13 +1,17 @@ { "chain-a": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x", "release-v6.3.x", "release-v5.4.x", "release-v4.6.x" ], "chain-b": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x", "release-v6.3.x", "release-v5.4.x", diff --git a/.github/compatibility-test-matrices/unreleased/transfer-authz.json b/.github/compatibility-test-matrices/unreleased/transfer-authz.json index d33d16a42b4..e559804b247 100644 --- a/.github/compatibility-test-matrices/unreleased/transfer-authz.json +++ b/.github/compatibility-test-matrices/unreleased/transfer-authz.json @@ -1,10 +1,14 @@ { "chain-a": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x" ], "chain-b": [ + "release-v8.3.x", "release-v8.2.x", + "release-v7.5.x", "release-v7.4.x" ], "entrypoint": [ diff --git a/.github/compatibility-test-matrices/unreleased/transfer-channel-upgrade-chain-a.json b/.github/compatibility-test-matrices/unreleased/transfer-channel-upgrade-chain-a.json index 2e6b31152fb..0b934bfe86e 100644 --- a/.github/compatibility-test-matrices/unreleased/transfer-channel-upgrade-chain-a.json +++ b/.github/compatibility-test-matrices/unreleased/transfer-channel-upgrade-chain-a.json @@ -1,8 +1,10 @@ { "chain-a": [ + "release-v8.3.x", "release-v8.2.x" ], "chain-b": [ + "release-v8.3.x", "release-v8.2.x" ], "entrypoint": [ diff --git a/.github/compatibility-test-matrices/unreleased/transfer-channel-upgrade-chain-b.json b/.github/compatibility-test-matrices/unreleased/transfer-channel-upgrade-chain-b.json index 2e6b31152fb..0b934bfe86e 100644 --- a/.github/compatibility-test-matrices/unreleased/transfer-channel-upgrade-chain-b.json +++ b/.github/compatibility-test-matrices/unreleased/transfer-channel-upgrade-chain-b.json @@ -1,8 +1,10 @@ { "chain-a": [ + "release-v8.3.x", "release-v8.2.x" ], "chain-b": [ + "release-v8.3.x", "release-v8.2.x" ], "entrypoint": [ diff --git a/.github/workflows/e2e-manual-simd.yaml b/.github/workflows/e2e-manual-simd.yaml index d74c38e6e6a..4d8a40c19a5 100644 --- a/.github/workflows/e2e-manual-simd.yaml +++ b/.github/workflows/e2e-manual-simd.yaml @@ -37,6 +37,7 @@ on: - main - v8.2.0 - v7.4.0 + - v7.5.0 chain-a-tag-override: description: 'Specify an arbitrary tag for chain A' required: false @@ -50,6 +51,7 @@ on: - main - v8.2.0 - v7.4.0 + - v7.5.0 chain-b-tag-override: description: 'Specify an arbitrary tag for chain B' required: false diff --git a/CHANGELOG.md b/CHANGELOG.md index bf81427cac3..43ceb250514 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -214,6 +214,32 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (apps/transfer, apps/29-fee) [\#4570](https://github.com/cosmos/ibc-go/pull/4570) Remove `GetSignBytes` from 29-fee and transfer msgs. * [\#3630](https://github.com/cosmos/ibc-go/pull/3630) Add annotation to Msg service. +## [v7.5.0](https://github.com/cosmos/ibc-go/releases/tag/v7.5.0) - 2024-05-14 + +### Dependencies + +* [\#6254](https://github.com/cosmos/ibc-go/pull/6254) Update Cosmos SDK to v0.47.11 and CometBFT to v0.37.5. + +### State Machine Breaking + +* (light-clients/07-tendermint) [\#6276](https://github.com/cosmos/ibc-go/pull/6276) Fix: No-op to avoid panicking on `UpdateState` for invalid misbehaviour submissions. + +### Improvements + +* (apps/27-interchain-accounts) [\#6147](https://github.com/cosmos/ibc-go/pull/6147) Emit an event signalling that the host submodule is disabled. +* (testing) [\#6180](https://github.com/cosmos/ibc-go/pull/6180) Add version to tm abci headers in ibctesting. +* (apps/27-interchain-accounts, apps/tranfer, apps/29-fee) [\#6253](https://github.com/cosmos/ibc-go/pull/6253) Allow channel handshake to succeed if fee middleware is wired up on one side, but not the other. +* (apps/transfer) [\#6268](https://github.com/cosmos/ibc-go/pull/6268) Use memo strings instead of JSON keys in `AllowedPacketData` of transfer authorization. + +### Features + +* (apps/27-interchain-accounts) [\#5633](https://github.com/cosmos/ibc-go/pull/5633) Allow new ICA channels to use unordered ordering. +* (apps/27-interchain-accounts) [\#5785](https://github.com/cosmos/ibc-go/pull/5785) Introduce a new tx message that ICA host submodule can use to query the chain (only those marked with `module_query_safe`) and write the responses to the acknowledgement. + +### Bug Fixes + +* (apps/29-fee) [\#6255](https://github.com/cosmos/ibc-go/pull/6255) Delete already refunded fees from state if some fee(s) cannot be refunded on channel closure. + ## [v7.4.0](https://github.com/cosmos/ibc-go/releases/tag/v7.4.0) - 2024-04-05 ## [v7.3.2](https://github.com/cosmos/ibc-go/releases/tag/v7.3.2) - 2024-01-31 diff --git a/RELEASES.md b/RELEASES.md index 01a7c15516a..b68108982ca 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -72,6 +72,7 @@ We reserve the right to drop support for releases if they are deemed unused (for |Release|End of Life Date| |-------|----------------| |`v7.4.x`|September 17, 2024| +|`v7.5.x`|September 17, 2024| |`v8.2.x`|May 10, 2025| ### Callbacks middleware @@ -121,7 +122,8 @@ Versions of Golang, Cosmos SDK and CometBFT used by ibc-go in the currently acti | Go | ibc-go | Cosmos SDK | Tendermint/CometBFT | |----|--------|------------|---------------------| -| 1.19 | v7.4.2 | v0.47.8 | v0.37.4 | +| 1.19 | v7.4.0 | v0.47.8 | v0.37.4 | +| 1.19 | v7.5.0 | v0.47.11 | v0.37.5 | | 1.21 | v8.2.0 | v0.50.5 | v0.38.5 | ### Callbacks middleware From 01a63ca4c76d85dd07c22571ead53928ad984d64 Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Date: Thu, 16 May 2024 14:44:03 +0200 Subject: [PATCH 46/62] trial: add dependency to tests in modules to try to trigger sonar cloud analysis --- .github/workflows/callbacks.yml | 1 + .github/workflows/capability.yml | 1 + .github/workflows/wasm-client.yml | 1 + 3 files changed, 3 insertions(+) diff --git a/.github/workflows/callbacks.yml b/.github/workflows/callbacks.yml index 36574a9d368..d3b3d811df0 100644 --- a/.github/workflows/callbacks.yml +++ b/.github/workflows/callbacks.yml @@ -52,6 +52,7 @@ jobs: code-analysis: if: github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' runs-on: ubuntu-latest + needs: [tests] steps: - name: sonarcloud if: ${{ env.GIT_DIFF && !github.event.pull_request.draft && env.SONAR_TOKEN != null }} diff --git a/.github/workflows/capability.yml b/.github/workflows/capability.yml index d950046ddc8..5eab860ff6d 100644 --- a/.github/workflows/capability.yml +++ b/.github/workflows/capability.yml @@ -38,6 +38,7 @@ jobs: code-analysis: if: github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' runs-on: ubuntu-latest + needs: [tests] steps: - name: sonarcloud if: ${{ env.GIT_DIFF && !github.event.pull_request.draft && env.SONAR_TOKEN != null }} diff --git a/.github/workflows/wasm-client.yml b/.github/workflows/wasm-client.yml index 08729f268b4..ed99717889d 100644 --- a/.github/workflows/wasm-client.yml +++ b/.github/workflows/wasm-client.yml @@ -59,6 +59,7 @@ jobs: code-analysis: if: github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' runs-on: ubuntu-latest + needs: [tests] steps: - name: sonarcloud if: ${{ env.GIT_DIFF && !github.event.pull_request.draft && env.SONAR_TOKEN != null }} From e8c852db9e8838ae2a6a20d5eeb4ea349cca72a4 Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Date: Thu, 16 May 2024 15:59:12 +0200 Subject: [PATCH 47/62] docs: documentation for v8.3.x (#6311) * docs: documentation for v8.3.x * docs: fixed compile error --------- Co-authored-by: srdtrk --- docs/docusaurus.config.js | 4 +- .../00-intro.md | 0 .../01-ibc/01-overview.md | 0 .../01-ibc/02-integration.md | 0 .../01-ibc/03-apps/01-apps.md | 0 .../01-ibc/03-apps/02-ibcmodule.md | 0 .../01-ibc/03-apps/03-bindports.md | 0 .../01-ibc/03-apps/04-keeper.md | 0 .../01-ibc/03-apps/05-packets_acks.md | 0 .../01-ibc/03-apps/06-routing.md | 0 .../01-ibc/03-apps/_category_.json | 0 .../01-ibc/03-apps/images/packet_flow.png | Bin .../01-ibc/04-middleware/01-overview.md | 0 .../01-ibc/04-middleware/02-develop.md | 0 .../01-ibc/04-middleware/03-integration.md | 0 .../01-ibc/04-middleware/_category_.json | 0 .../04-middleware/images/middleware-stack.png | Bin .../01-ibc/05-upgrades/00-intro.md | 0 .../01-ibc/05-upgrades/01-quick-guide.md | 0 .../01-ibc/05-upgrades/02-developer-guide.md | 0 .../01-ibc/05-upgrades/03-genesis-restart.md | 0 .../01-ibc/05-upgrades/_category_.json | 0 .../01-ibc/06-channel-upgrades.md | 0 .../01-ibc/07-proposals.md | 0 .../01-ibc/08-relayer.md | 0 .../01-ibc/09-proto-docs.md | 0 .../01-ibc/10-roadmap.md | 0 .../01-ibc/11-troubleshooting.md | 0 .../01-ibc/12-capability-module.md | 0 .../01-ibc/_category_.json | 0 .../02-apps/01-transfer/01-overview.md | 0 .../02-apps/01-transfer/02-state.md | 0 .../01-transfer/03-state-transitions.md | 0 .../02-apps/01-transfer/04-messages.md | 0 .../02-apps/01-transfer/05-events.md | 0 .../02-apps/01-transfer/06-metrics.md | 0 .../02-apps/01-transfer/07-params.md | 0 .../02-apps/01-transfer/08-authorizations.md | 2 +- .../02-apps/01-transfer/09-client.md | 0 .../02-apps/01-transfer/_category_.json | 0 .../02-interchain-accounts/01-overview.md | 0 .../02-interchain-accounts/02-development.md | 0 .../02-interchain-accounts/03-auth-modules.md | 0 .../02-interchain-accounts/04-integration.md | 3 + .../02-interchain-accounts/05-messages.md | 74 ++++++++++++++++++ .../02-interchain-accounts/06-parameters.md | 0 .../02-interchain-accounts/07-tx-encoding.md | 0 .../02-interchain-accounts/08-client.md | 0 .../09-active-channels.md | 2 +- .../10-legacy/01-auth-modules.md | 0 .../10-legacy/02-integration.md | 2 + .../10-legacy/03-keeper-api.md | 2 + .../10-legacy/_category_.json | 0 .../10-legacy/images/ica-pre-v6.png | Bin .../02-interchain-accounts/_category_.json | 0 .../02-interchain-accounts/images/ica-v6.png | Bin .../02-apps/_category_.json | 0 .../01-developer-guide/01-overview.md | 0 .../01-developer-guide/02-client-state.md | 0 .../01-developer-guide/03-consensus-state.md | 0 .../04-updates-and-misbehaviour.md | 0 .../01-developer-guide/05-upgrades.md | 0 .../01-developer-guide/06-proofs.md | 0 .../01-developer-guide/07-proposals.md | 0 .../01-developer-guide/08-genesis.md | 0 .../01-developer-guide/09-setup.md | 0 .../01-developer-guide/_category_.json | 0 .../02-localhost/01-overview.md | 0 .../02-localhost/02-integration.md | 0 .../02-localhost/03-client-state.md | 0 .../02-localhost/04-connection.md | 0 .../02-localhost/05-state-verification.md | 0 .../02-localhost/_category_.json | 0 .../03-solomachine/01-solomachine.md | 0 .../03-solomachine/02-concepts.md | 0 .../03-solomachine/03-state.md | 0 .../03-solomachine/04-state_transitions.md | 0 .../03-solomachine/_category_.json | 0 .../03-light-clients/04-wasm/01-overview.md | 0 .../03-light-clients/04-wasm/02-concepts.md | 0 .../04-wasm/03-integration.md | 0 .../03-light-clients/04-wasm/04-messages.md | 0 .../03-light-clients/04-wasm/05-governance.md | 0 .../03-light-clients/04-wasm/06-events.md | 0 .../03-light-clients/04-wasm/07-contracts.md | 0 .../03-light-clients/04-wasm/08-client.md | 0 .../03-light-clients/04-wasm/09-migrations.md | 0 .../03-light-clients/04-wasm/_category_.json | 0 .../03-light-clients/_category_.json | 0 .../04-middleware/01-ics29-fee/01-overview.md | 0 .../01-ics29-fee/02-integration.md | 0 .../04-middleware/01-ics29-fee/03-msgs.md | 0 .../01-ics29-fee/04-fee-distribution.md | 0 .../04-middleware/01-ics29-fee/05-events.md | 0 .../01-ics29-fee/06-end-users.md | 0 .../01-ics29-fee/_category_.json | 0 .../01-ics29-fee/images/feeflow.png | Bin .../01-ics29-fee/images/msgpaypacket.png | Bin .../01-ics29-fee/images/paypacketfeeasync.png | Bin .../04-middleware/02-callbacks/01-overview.md | 0 .../02-callbacks/02-integration.md | 0 .../02-callbacks/03-interfaces.md | 0 .../04-middleware/02-callbacks/04-events.md | 0 .../02-callbacks/05-end-users.md | 0 .../04-middleware/02-callbacks/06-gas.md | 0 .../02-callbacks/_category_.json | 0 .../02-callbacks/images/callbackflow.svg | 0 .../02-callbacks/images/ics4-callbackflow.svg | 0 .../04-middleware/_category_.json | 0 .../01-support-denoms-with-slashes.md | 0 .../05-migrations/02-sdk-to-v1.md | 0 .../05-migrations/03-v1-to-v2.md | 0 .../05-migrations/04-v2-to-v3.md | 0 .../05-migrations/05-v3-to-v4.md | 0 .../05-migrations/06-v4-to-v5.md | 0 .../05-migrations/07-v5-to-v6.md | 0 .../05-migrations/08-v6-to-v7.md | 0 .../05-migrations/09-v7-to-v7_1.md | 0 .../05-migrations/10-v7_2-to-v7_3.md | 0 .../05-migrations/11-v7-to-v8.md | 0 .../05-migrations/12-v8-to-v8_1.md | 0 .../05-migrations/_category_.json | 0 .../images/auth-module-decision-tree.png | Bin .../05-migrations/migration.template.md | 0 .../images/ibcoverview-dark.svg | 0 .../images/ibcoverview-light.svg | 0 ...bars.json => version-v8.3.x-sidebars.json} | 0 docs/versions.json | 2 +- 128 files changed, 86 insertions(+), 5 deletions(-) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/00-intro.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/01-overview.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/02-integration.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/03-apps/01-apps.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/03-apps/02-ibcmodule.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/03-apps/03-bindports.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/03-apps/04-keeper.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/03-apps/05-packets_acks.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/03-apps/06-routing.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/03-apps/_category_.json (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/03-apps/images/packet_flow.png (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/04-middleware/01-overview.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/04-middleware/02-develop.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/04-middleware/03-integration.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/04-middleware/_category_.json (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/04-middleware/images/middleware-stack.png (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/05-upgrades/00-intro.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/05-upgrades/01-quick-guide.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/05-upgrades/02-developer-guide.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/05-upgrades/03-genesis-restart.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/05-upgrades/_category_.json (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/06-channel-upgrades.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/07-proposals.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/08-relayer.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/09-proto-docs.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/10-roadmap.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/11-troubleshooting.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/12-capability-module.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/01-ibc/_category_.json (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/01-transfer/01-overview.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/01-transfer/02-state.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/01-transfer/03-state-transitions.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/01-transfer/04-messages.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/01-transfer/05-events.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/01-transfer/06-metrics.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/01-transfer/07-params.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/01-transfer/08-authorizations.md (89%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/01-transfer/09-client.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/01-transfer/_category_.json (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/02-interchain-accounts/01-overview.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/02-interchain-accounts/02-development.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/02-interchain-accounts/03-auth-modules.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/02-interchain-accounts/04-integration.md (94%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/02-interchain-accounts/05-messages.md (52%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/02-interchain-accounts/06-parameters.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/02-interchain-accounts/07-tx-encoding.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/02-interchain-accounts/08-client.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/02-interchain-accounts/09-active-channels.md (93%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/02-interchain-accounts/10-legacy/01-auth-modules.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/02-interchain-accounts/10-legacy/02-integration.md (95%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/02-interchain-accounts/10-legacy/03-keeper-api.md (92%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/02-interchain-accounts/10-legacy/_category_.json (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/02-interchain-accounts/10-legacy/images/ica-pre-v6.png (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/02-interchain-accounts/_category_.json (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/02-interchain-accounts/images/ica-v6.png (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/02-apps/_category_.json (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/01-developer-guide/01-overview.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/01-developer-guide/02-client-state.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/01-developer-guide/03-consensus-state.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/01-developer-guide/04-updates-and-misbehaviour.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/01-developer-guide/05-upgrades.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/01-developer-guide/06-proofs.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/01-developer-guide/07-proposals.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/01-developer-guide/08-genesis.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/01-developer-guide/09-setup.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/01-developer-guide/_category_.json (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/02-localhost/01-overview.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/02-localhost/02-integration.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/02-localhost/03-client-state.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/02-localhost/04-connection.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/02-localhost/05-state-verification.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/02-localhost/_category_.json (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/03-solomachine/01-solomachine.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/03-solomachine/02-concepts.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/03-solomachine/03-state.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/03-solomachine/04-state_transitions.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/03-solomachine/_category_.json (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/04-wasm/01-overview.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/04-wasm/02-concepts.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/04-wasm/03-integration.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/04-wasm/04-messages.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/04-wasm/05-governance.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/04-wasm/06-events.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/04-wasm/07-contracts.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/04-wasm/08-client.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/04-wasm/09-migrations.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/04-wasm/_category_.json (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/03-light-clients/_category_.json (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/04-middleware/01-ics29-fee/01-overview.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/04-middleware/01-ics29-fee/02-integration.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/04-middleware/01-ics29-fee/03-msgs.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/04-middleware/01-ics29-fee/04-fee-distribution.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/04-middleware/01-ics29-fee/05-events.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/04-middleware/01-ics29-fee/06-end-users.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/04-middleware/01-ics29-fee/_category_.json (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/04-middleware/01-ics29-fee/images/feeflow.png (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/04-middleware/01-ics29-fee/images/msgpaypacket.png (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/04-middleware/01-ics29-fee/images/paypacketfeeasync.png (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/04-middleware/02-callbacks/01-overview.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/04-middleware/02-callbacks/02-integration.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/04-middleware/02-callbacks/03-interfaces.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/04-middleware/02-callbacks/04-events.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/04-middleware/02-callbacks/05-end-users.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/04-middleware/02-callbacks/06-gas.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/04-middleware/02-callbacks/_category_.json (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/04-middleware/02-callbacks/images/callbackflow.svg (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/04-middleware/02-callbacks/images/ics4-callbackflow.svg (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/04-middleware/_category_.json (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/05-migrations/01-support-denoms-with-slashes.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/05-migrations/02-sdk-to-v1.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/05-migrations/03-v1-to-v2.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/05-migrations/04-v2-to-v3.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/05-migrations/05-v3-to-v4.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/05-migrations/06-v4-to-v5.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/05-migrations/07-v5-to-v6.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/05-migrations/08-v6-to-v7.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/05-migrations/09-v7-to-v7_1.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/05-migrations/10-v7_2-to-v7_3.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/05-migrations/11-v7-to-v8.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/05-migrations/12-v8-to-v8_1.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/05-migrations/_category_.json (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/05-migrations/images/auth-module-decision-tree.png (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/05-migrations/migration.template.md (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/images/ibcoverview-dark.svg (100%) rename docs/versioned_docs/{version-v8.2.x => version-v8.3.x}/images/ibcoverview-light.svg (100%) rename docs/versioned_sidebars/{version-v8.2.x-sidebars.json => version-v8.3.x-sidebars.json} (100%) diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index fda77ec81da..5abc6369b72 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -49,14 +49,14 @@ const config = { // Exclude template markdown files from the docs exclude: ["**/*.template.md"], // Select the latest version - lastVersion: "v8.2.x", + lastVersion: "v8.3.x", // Assign banners to specific versions versions: { current: { path: "main", banner: "unreleased", }, - "v8.2.x": { + "v8.3.x": { path: "v8", banner: "none", }, diff --git a/docs/versioned_docs/version-v8.2.x/00-intro.md b/docs/versioned_docs/version-v8.3.x/00-intro.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/00-intro.md rename to docs/versioned_docs/version-v8.3.x/00-intro.md diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/01-overview.md b/docs/versioned_docs/version-v8.3.x/01-ibc/01-overview.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/01-overview.md rename to docs/versioned_docs/version-v8.3.x/01-ibc/01-overview.md diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/02-integration.md b/docs/versioned_docs/version-v8.3.x/01-ibc/02-integration.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/02-integration.md rename to docs/versioned_docs/version-v8.3.x/01-ibc/02-integration.md diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/03-apps/01-apps.md b/docs/versioned_docs/version-v8.3.x/01-ibc/03-apps/01-apps.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/03-apps/01-apps.md rename to docs/versioned_docs/version-v8.3.x/01-ibc/03-apps/01-apps.md diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/03-apps/02-ibcmodule.md b/docs/versioned_docs/version-v8.3.x/01-ibc/03-apps/02-ibcmodule.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/03-apps/02-ibcmodule.md rename to docs/versioned_docs/version-v8.3.x/01-ibc/03-apps/02-ibcmodule.md diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/03-apps/03-bindports.md b/docs/versioned_docs/version-v8.3.x/01-ibc/03-apps/03-bindports.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/03-apps/03-bindports.md rename to docs/versioned_docs/version-v8.3.x/01-ibc/03-apps/03-bindports.md diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/03-apps/04-keeper.md b/docs/versioned_docs/version-v8.3.x/01-ibc/03-apps/04-keeper.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/03-apps/04-keeper.md rename to docs/versioned_docs/version-v8.3.x/01-ibc/03-apps/04-keeper.md diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/03-apps/05-packets_acks.md b/docs/versioned_docs/version-v8.3.x/01-ibc/03-apps/05-packets_acks.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/03-apps/05-packets_acks.md rename to docs/versioned_docs/version-v8.3.x/01-ibc/03-apps/05-packets_acks.md diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/03-apps/06-routing.md b/docs/versioned_docs/version-v8.3.x/01-ibc/03-apps/06-routing.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/03-apps/06-routing.md rename to docs/versioned_docs/version-v8.3.x/01-ibc/03-apps/06-routing.md diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/03-apps/_category_.json b/docs/versioned_docs/version-v8.3.x/01-ibc/03-apps/_category_.json similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/03-apps/_category_.json rename to docs/versioned_docs/version-v8.3.x/01-ibc/03-apps/_category_.json diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/03-apps/images/packet_flow.png b/docs/versioned_docs/version-v8.3.x/01-ibc/03-apps/images/packet_flow.png similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/03-apps/images/packet_flow.png rename to docs/versioned_docs/version-v8.3.x/01-ibc/03-apps/images/packet_flow.png diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/04-middleware/01-overview.md b/docs/versioned_docs/version-v8.3.x/01-ibc/04-middleware/01-overview.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/04-middleware/01-overview.md rename to docs/versioned_docs/version-v8.3.x/01-ibc/04-middleware/01-overview.md diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/04-middleware/02-develop.md b/docs/versioned_docs/version-v8.3.x/01-ibc/04-middleware/02-develop.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/04-middleware/02-develop.md rename to docs/versioned_docs/version-v8.3.x/01-ibc/04-middleware/02-develop.md diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/04-middleware/03-integration.md b/docs/versioned_docs/version-v8.3.x/01-ibc/04-middleware/03-integration.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/04-middleware/03-integration.md rename to docs/versioned_docs/version-v8.3.x/01-ibc/04-middleware/03-integration.md diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/04-middleware/_category_.json b/docs/versioned_docs/version-v8.3.x/01-ibc/04-middleware/_category_.json similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/04-middleware/_category_.json rename to docs/versioned_docs/version-v8.3.x/01-ibc/04-middleware/_category_.json diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/04-middleware/images/middleware-stack.png b/docs/versioned_docs/version-v8.3.x/01-ibc/04-middleware/images/middleware-stack.png similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/04-middleware/images/middleware-stack.png rename to docs/versioned_docs/version-v8.3.x/01-ibc/04-middleware/images/middleware-stack.png diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/05-upgrades/00-intro.md b/docs/versioned_docs/version-v8.3.x/01-ibc/05-upgrades/00-intro.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/05-upgrades/00-intro.md rename to docs/versioned_docs/version-v8.3.x/01-ibc/05-upgrades/00-intro.md diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/05-upgrades/01-quick-guide.md b/docs/versioned_docs/version-v8.3.x/01-ibc/05-upgrades/01-quick-guide.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/05-upgrades/01-quick-guide.md rename to docs/versioned_docs/version-v8.3.x/01-ibc/05-upgrades/01-quick-guide.md diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/05-upgrades/02-developer-guide.md b/docs/versioned_docs/version-v8.3.x/01-ibc/05-upgrades/02-developer-guide.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/05-upgrades/02-developer-guide.md rename to docs/versioned_docs/version-v8.3.x/01-ibc/05-upgrades/02-developer-guide.md diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/05-upgrades/03-genesis-restart.md b/docs/versioned_docs/version-v8.3.x/01-ibc/05-upgrades/03-genesis-restart.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/05-upgrades/03-genesis-restart.md rename to docs/versioned_docs/version-v8.3.x/01-ibc/05-upgrades/03-genesis-restart.md diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/05-upgrades/_category_.json b/docs/versioned_docs/version-v8.3.x/01-ibc/05-upgrades/_category_.json similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/05-upgrades/_category_.json rename to docs/versioned_docs/version-v8.3.x/01-ibc/05-upgrades/_category_.json diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/06-channel-upgrades.md b/docs/versioned_docs/version-v8.3.x/01-ibc/06-channel-upgrades.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/06-channel-upgrades.md rename to docs/versioned_docs/version-v8.3.x/01-ibc/06-channel-upgrades.md diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/07-proposals.md b/docs/versioned_docs/version-v8.3.x/01-ibc/07-proposals.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/07-proposals.md rename to docs/versioned_docs/version-v8.3.x/01-ibc/07-proposals.md diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/08-relayer.md b/docs/versioned_docs/version-v8.3.x/01-ibc/08-relayer.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/08-relayer.md rename to docs/versioned_docs/version-v8.3.x/01-ibc/08-relayer.md diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/09-proto-docs.md b/docs/versioned_docs/version-v8.3.x/01-ibc/09-proto-docs.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/09-proto-docs.md rename to docs/versioned_docs/version-v8.3.x/01-ibc/09-proto-docs.md diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/10-roadmap.md b/docs/versioned_docs/version-v8.3.x/01-ibc/10-roadmap.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/10-roadmap.md rename to docs/versioned_docs/version-v8.3.x/01-ibc/10-roadmap.md diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/11-troubleshooting.md b/docs/versioned_docs/version-v8.3.x/01-ibc/11-troubleshooting.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/11-troubleshooting.md rename to docs/versioned_docs/version-v8.3.x/01-ibc/11-troubleshooting.md diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/12-capability-module.md b/docs/versioned_docs/version-v8.3.x/01-ibc/12-capability-module.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/12-capability-module.md rename to docs/versioned_docs/version-v8.3.x/01-ibc/12-capability-module.md diff --git a/docs/versioned_docs/version-v8.2.x/01-ibc/_category_.json b/docs/versioned_docs/version-v8.3.x/01-ibc/_category_.json similarity index 100% rename from docs/versioned_docs/version-v8.2.x/01-ibc/_category_.json rename to docs/versioned_docs/version-v8.3.x/01-ibc/_category_.json diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/01-transfer/01-overview.md b/docs/versioned_docs/version-v8.3.x/02-apps/01-transfer/01-overview.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/02-apps/01-transfer/01-overview.md rename to docs/versioned_docs/version-v8.3.x/02-apps/01-transfer/01-overview.md diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/01-transfer/02-state.md b/docs/versioned_docs/version-v8.3.x/02-apps/01-transfer/02-state.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/02-apps/01-transfer/02-state.md rename to docs/versioned_docs/version-v8.3.x/02-apps/01-transfer/02-state.md diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/01-transfer/03-state-transitions.md b/docs/versioned_docs/version-v8.3.x/02-apps/01-transfer/03-state-transitions.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/02-apps/01-transfer/03-state-transitions.md rename to docs/versioned_docs/version-v8.3.x/02-apps/01-transfer/03-state-transitions.md diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/01-transfer/04-messages.md b/docs/versioned_docs/version-v8.3.x/02-apps/01-transfer/04-messages.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/02-apps/01-transfer/04-messages.md rename to docs/versioned_docs/version-v8.3.x/02-apps/01-transfer/04-messages.md diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/01-transfer/05-events.md b/docs/versioned_docs/version-v8.3.x/02-apps/01-transfer/05-events.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/02-apps/01-transfer/05-events.md rename to docs/versioned_docs/version-v8.3.x/02-apps/01-transfer/05-events.md diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/01-transfer/06-metrics.md b/docs/versioned_docs/version-v8.3.x/02-apps/01-transfer/06-metrics.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/02-apps/01-transfer/06-metrics.md rename to docs/versioned_docs/version-v8.3.x/02-apps/01-transfer/06-metrics.md diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/01-transfer/07-params.md b/docs/versioned_docs/version-v8.3.x/02-apps/01-transfer/07-params.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/02-apps/01-transfer/07-params.md rename to docs/versioned_docs/version-v8.3.x/02-apps/01-transfer/07-params.md diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/01-transfer/08-authorizations.md b/docs/versioned_docs/version-v8.3.x/02-apps/01-transfer/08-authorizations.md similarity index 89% rename from docs/versioned_docs/version-v8.2.x/02-apps/01-transfer/08-authorizations.md rename to docs/versioned_docs/version-v8.3.x/02-apps/01-transfer/08-authorizations.md index 9dde26c1867..5a185da5c64 100644 --- a/docs/versioned_docs/version-v8.2.x/02-apps/01-transfer/08-authorizations.md +++ b/docs/versioned_docs/version-v8.3.x/02-apps/01-transfer/08-authorizations.md @@ -22,7 +22,7 @@ It takes: - an `AllowList` list that specifies the list of addresses that are allowed to receive funds. If this list is empty, then all addresses are allowed to receive funds from the `TransferAuthorization`. -- an `AllowedPacketData` list that specifies the list of memo packet data keys that are allowed to send the packet. If this list is empty, then only an empty memo is allowed (a `memo` field with non-empty content will be denied). If this list includes a single element equal to `"*"`, then any content in `memo` field will be allowed. +- an `AllowedPacketData` list that specifies the list of memo strings that are allowed to be included in the memo field of the packet. If this list is empty, then only an empty memo is allowed (a `memo` field with non-empty content will be denied). If this list includes a single element equal to `"*"`, then any content in the `memo` field will be allowed. Setting a `TransferAuthorization` is expected to fail if: diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/01-transfer/09-client.md b/docs/versioned_docs/version-v8.3.x/02-apps/01-transfer/09-client.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/02-apps/01-transfer/09-client.md rename to docs/versioned_docs/version-v8.3.x/02-apps/01-transfer/09-client.md diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/01-transfer/_category_.json b/docs/versioned_docs/version-v8.3.x/02-apps/01-transfer/_category_.json similarity index 100% rename from docs/versioned_docs/version-v8.2.x/02-apps/01-transfer/_category_.json rename to docs/versioned_docs/version-v8.3.x/02-apps/01-transfer/_category_.json diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/01-overview.md b/docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/01-overview.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/01-overview.md rename to docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/01-overview.md diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/02-development.md b/docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/02-development.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/02-development.md rename to docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/02-development.md diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/03-auth-modules.md b/docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/03-auth-modules.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/03-auth-modules.md rename to docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/03-auth-modules.md diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/04-integration.md b/docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/04-integration.md similarity index 94% rename from docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/04-integration.md rename to docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/04-integration.md index 974e7f978df..6ad081a1a43 100644 --- a/docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/04-integration.md +++ b/docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/04-integration.md @@ -20,6 +20,8 @@ Interchain Account authentication modules (both custom or generic, such as the ` ![ica-v6.png](./images/ica-v6.png) +> Please note that since ibc-go v8.3.0 it is mandatory to register the gRPC query router after the creation of the host submodule's keeper; otherwise, nodes will not start. The query router is used to execute on the host query messages encoded in the ICA packet data. Please check the sample integration code below for more details. + ## Example integration ```go @@ -91,6 +93,7 @@ app.ICAHostKeeper = icahostkeeper.NewKeeper( app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper, app.AccountKeeper, scopedICAHostKeeper, app.MsgServiceRouter(), ) +app.ICAHostKeeper.WithQueryRouter(app.GRPCQueryRouter()) // Create Interchain Accounts AppModule icaModule := ica.NewAppModule(&app.ICAControllerKeeper, &app.ICAHostKeeper) diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/05-messages.md b/docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/05-messages.md similarity index 52% rename from docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/05-messages.md rename to docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/05-messages.md index 4e108fa1243..53db5a65b6f 100644 --- a/docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/05-messages.md +++ b/docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/05-messages.md @@ -72,6 +72,80 @@ type MsgSendTxResponse struct { The packet `Sequence` is returned in the message response. +### Queries + +It is possible to use [`MsgModuleQuerySafe`](https://github.com/cosmos/ibc-go/blob/eecfa5c09a4c38a5c9f2cc2a322d2286f45911da/proto/ibc/applications/interchain_accounts/host/v1/tx.proto#L41-L51) to execute a list of queries on the host chain. This message can be included in the list of encoded `sdk.Msg`s of `InterchainPacketData`. The host chain will return on the acknowledgment the responses for all the queries. Please note that only module safe queries can be executed ([deterministic queries that are safe to be called from within the state machine](https://docs.cosmos.network/main/build/building-modules/query-services#calling-queries-from-the-state-machine)). + +The queries available from Cosmos SDK are: + +```plaintext +/cosmos.auth.v1beta1.Query/Accounts +/cosmos.auth.v1beta1.Query/Account +/cosmos.auth.v1beta1.Query/AccountAddressByID +/cosmos.auth.v1beta1.Query/Params +/cosmos.auth.v1beta1.Query/ModuleAccounts +/cosmos.auth.v1beta1.Query/ModuleAccountByName +/cosmos.auth.v1beta1.Query/AccountInfo +/cosmos.bank.v1beta1.Query/Balance +/cosmos.bank.v1beta1.Query/AllBalances +/cosmos.bank.v1beta1.Query/SpendableBalances +/cosmos.bank.v1beta1.Query/SpendableBalanceByDenom +/cosmos.bank.v1beta1.Query/TotalSupply +/cosmos.bank.v1beta1.Query/SupplyOf +/cosmos.bank.v1beta1.Query/Params +/cosmos.bank.v1beta1.Query/DenomMetadata +/cosmos.bank.v1beta1.Query/DenomMetadataByQueryString +/cosmos.bank.v1beta1.Query/DenomsMetadata +/cosmos.bank.v1beta1.Query/DenomOwners +/cosmos.bank.v1beta1.Query/SendEnabled +/cosmos.circuit.v1.Query/Account +/cosmos.circuit.v1.Query/Accounts +/cosmos.circuit.v1.Query/DisabledList +/cosmos.staking.v1beta1.Query/Validators +/cosmos.staking.v1beta1.Query/Validator +/cosmos.staking.v1beta1.Query/ValidatorDelegations +/cosmos.staking.v1beta1.Query/ValidatorUnbondingDelegations +/cosmos.staking.v1beta1.Query/Delegation +/cosmos.staking.v1beta1.Query/UnbondingDelegation +/cosmos.staking.v1beta1.Query/DelegatorDelegations +/cosmos.staking.v1beta1.Query/DelegatorUnbondingDelegations +/cosmos.staking.v1beta1.Query/Redelegations +/cosmos.staking.v1beta1.Query/DelegatorValidators +/cosmos.staking.v1beta1.Query/DelegatorValidator +/cosmos.staking.v1beta1.Query/HistoricalInfo +/cosmos.staking.v1beta1.Query/Pool +/cosmos.staking.v1beta1.Query/Params +``` + +And the query available from ibc-go is: + +```plaintext +/ibc.core.client.v1.Query/VerifyMembership +``` + +The following code block shows an example of how `MsgModuleQuerySafe` can be used to query the account balance of an account on the host chain. The resulting packet data variable is used to set the `PacketData` of `MsgSendTx`. + +```go +balanceQuery := banktypes.NewQueryBalanceRequest("cosmos1...", "uatom") +queryBz, err := balanceQuery.Marshal() + +// signer of message must be the interchain account on the host +queryMsg := icahosttypes.NewMsgModuleQuerySafe("cosmos2...", []*icahosttypes.QueryRequest{ + { + Path: "/cosmos.bank.v1beta1.Query/Balance", + Data: queryBz, + }, +}) + +bz, err := icatypes.SerializeCosmosTx(cdc, []proto.Message{queryMsg}, icatypes.EncodingProtobuf) + +packetData := icatypes.InterchainAccountPacketData{ + Type: icatypes.EXECUTE_TX, + Data: bz, + Memo: "", +} +``` + ## Atomicity As the Interchain Accounts module supports the execution of multiple transactions using the Cosmos SDK `Msg` interface, it provides the same atomicity guarantees as Cosmos SDK-based applications, leveraging the [`CacheMultiStore`](https://docs.cosmos.network/main/learn/advanced/store#cachemultistore) architecture provided by the [`Context`](https://docs.cosmos.network/main/learn/advanced/context.html) type. diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/06-parameters.md b/docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/06-parameters.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/06-parameters.md rename to docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/06-parameters.md diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/07-tx-encoding.md b/docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/07-tx-encoding.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/07-tx-encoding.md rename to docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/07-tx-encoding.md diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/08-client.md b/docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/08-client.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/08-client.md rename to docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/08-client.md diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/09-active-channels.md b/docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/09-active-channels.md similarity index 93% rename from docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/09-active-channels.md rename to docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/09-active-channels.md index 09ae7063a68..182169a11c5 100644 --- a/docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/09-active-channels.md +++ b/docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/09-active-channels.md @@ -11,7 +11,7 @@ The Interchain Accounts module uses either [ORDERED or UNORDERED](https://github When using `ORDERED` channels, the order of transactions when sending packets from a controller to a host chain is maintained. -When using `UNORDERED` channels, there is no guarantee that the order of transactions when sending packets from the controller to the host chain is maintained. +When using `UNORDERED` channels, there is no guarantee that the order of transactions when sending packets from the controller to the host chain is maintained. Since ibc-go v8.3.0, the default ordering for new ICA channels is `UNORDERED`, if no ordering is specified in `MsgRegisterInterchainAccount` (previously the default ordering was `ORDERED`). > A limitation when using ORDERED channels is that when a packet times out the channel will be closed. diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/10-legacy/01-auth-modules.md b/docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/10-legacy/01-auth-modules.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/10-legacy/01-auth-modules.md rename to docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/10-legacy/01-auth-modules.md diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/10-legacy/02-integration.md b/docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/10-legacy/02-integration.md similarity index 95% rename from docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/10-legacy/02-integration.md rename to docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/10-legacy/02-integration.md index 90a645aaabd..e891dd9bb64 100644 --- a/docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/10-legacy/02-integration.md +++ b/docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/10-legacy/02-integration.md @@ -25,6 +25,7 @@ Interchain Account authentication modules are the base application of a middlewa ![ica-pre-v6.png](./images/ica-pre-v6.png) > Please note that since ibc-go v6 the channel capability is claimed by the controller submodule and therefore it is not required for authentication modules to claim the capability in the `OnChanOpenInit` callback. Therefore the custom authentication module does not need a scoped keeper anymore. +> Please note that since ibc-go v8.3.0 it is mandatory to register the gRPC query router after the creation of the host submodule's keeper; otherwise, nodes will not start. The query router is used to execute on the host query messages encoded in the ICA packet data. Please check the sample integration code below for more details. ## Example integration @@ -96,6 +97,7 @@ app.ICAHostKeeper = icahostkeeper.NewKeeper( app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper, app.AccountKeeper, scopedICAHostKeeper, app.MsgServiceRouter(), ) +app.ICAHostKeeper.WithQueryRouter(app.GRPCQueryRouter()) // Create Interchain Accounts AppModule icaModule := ica.NewAppModule(&app.ICAControllerKeeper, &app.ICAHostKeeper) diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/10-legacy/03-keeper-api.md b/docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/10-legacy/03-keeper-api.md similarity index 92% rename from docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/10-legacy/03-keeper-api.md rename to docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/10-legacy/03-keeper-api.md index 252c7eaf7ff..13b689dc173 100644 --- a/docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/10-legacy/03-keeper-api.md +++ b/docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/10-legacy/03-keeper-api.md @@ -80,6 +80,8 @@ if err := keeper.icaControllerKeeper.RegisterInterchainAccount(ctx, controllerCo } ``` +> Since ibc-go v8.3.0 the default ordering of new ICA channels created when invoking `RegisterInterchainAccount` has changed from `ORDERED` to `UNORDERED`. If this default behaviour does not meet your use case, please use the function `RegisterInterchainAccountWithOrdering` (available since ibc-go v8.3.0), which takes an extra parameter that can be used to specify the ordering of the channel. + ## `SendTx` The authentication module can attempt to send a packet by calling `SendTx`: diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/10-legacy/_category_.json b/docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/10-legacy/_category_.json similarity index 100% rename from docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/10-legacy/_category_.json rename to docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/10-legacy/_category_.json diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/10-legacy/images/ica-pre-v6.png b/docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/10-legacy/images/ica-pre-v6.png similarity index 100% rename from docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/10-legacy/images/ica-pre-v6.png rename to docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/10-legacy/images/ica-pre-v6.png diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/_category_.json b/docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/_category_.json similarity index 100% rename from docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/_category_.json rename to docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/_category_.json diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/images/ica-v6.png b/docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/images/ica-v6.png similarity index 100% rename from docs/versioned_docs/version-v8.2.x/02-apps/02-interchain-accounts/images/ica-v6.png rename to docs/versioned_docs/version-v8.3.x/02-apps/02-interchain-accounts/images/ica-v6.png diff --git a/docs/versioned_docs/version-v8.2.x/02-apps/_category_.json b/docs/versioned_docs/version-v8.3.x/02-apps/_category_.json similarity index 100% rename from docs/versioned_docs/version-v8.2.x/02-apps/_category_.json rename to docs/versioned_docs/version-v8.3.x/02-apps/_category_.json diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/01-developer-guide/01-overview.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/01-developer-guide/01-overview.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/01-developer-guide/01-overview.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/01-developer-guide/01-overview.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/01-developer-guide/02-client-state.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/01-developer-guide/02-client-state.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/01-developer-guide/02-client-state.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/01-developer-guide/02-client-state.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/01-developer-guide/03-consensus-state.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/01-developer-guide/03-consensus-state.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/01-developer-guide/03-consensus-state.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/01-developer-guide/03-consensus-state.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/01-developer-guide/04-updates-and-misbehaviour.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/01-developer-guide/04-updates-and-misbehaviour.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/01-developer-guide/04-updates-and-misbehaviour.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/01-developer-guide/04-updates-and-misbehaviour.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/01-developer-guide/05-upgrades.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/01-developer-guide/05-upgrades.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/01-developer-guide/05-upgrades.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/01-developer-guide/05-upgrades.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/01-developer-guide/06-proofs.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/01-developer-guide/06-proofs.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/01-developer-guide/06-proofs.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/01-developer-guide/06-proofs.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/01-developer-guide/07-proposals.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/01-developer-guide/07-proposals.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/01-developer-guide/07-proposals.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/01-developer-guide/07-proposals.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/01-developer-guide/08-genesis.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/01-developer-guide/08-genesis.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/01-developer-guide/08-genesis.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/01-developer-guide/08-genesis.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/01-developer-guide/09-setup.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/01-developer-guide/09-setup.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/01-developer-guide/09-setup.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/01-developer-guide/09-setup.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/01-developer-guide/_category_.json b/docs/versioned_docs/version-v8.3.x/03-light-clients/01-developer-guide/_category_.json similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/01-developer-guide/_category_.json rename to docs/versioned_docs/version-v8.3.x/03-light-clients/01-developer-guide/_category_.json diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/02-localhost/01-overview.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/02-localhost/01-overview.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/02-localhost/01-overview.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/02-localhost/01-overview.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/02-localhost/02-integration.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/02-localhost/02-integration.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/02-localhost/02-integration.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/02-localhost/02-integration.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/02-localhost/03-client-state.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/02-localhost/03-client-state.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/02-localhost/03-client-state.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/02-localhost/03-client-state.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/02-localhost/04-connection.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/02-localhost/04-connection.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/02-localhost/04-connection.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/02-localhost/04-connection.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/02-localhost/05-state-verification.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/02-localhost/05-state-verification.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/02-localhost/05-state-verification.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/02-localhost/05-state-verification.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/02-localhost/_category_.json b/docs/versioned_docs/version-v8.3.x/03-light-clients/02-localhost/_category_.json similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/02-localhost/_category_.json rename to docs/versioned_docs/version-v8.3.x/03-light-clients/02-localhost/_category_.json diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/03-solomachine/01-solomachine.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/03-solomachine/01-solomachine.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/03-solomachine/01-solomachine.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/03-solomachine/01-solomachine.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/03-solomachine/02-concepts.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/03-solomachine/02-concepts.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/03-solomachine/02-concepts.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/03-solomachine/02-concepts.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/03-solomachine/03-state.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/03-solomachine/03-state.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/03-solomachine/03-state.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/03-solomachine/03-state.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/03-solomachine/04-state_transitions.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/03-solomachine/04-state_transitions.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/03-solomachine/04-state_transitions.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/03-solomachine/04-state_transitions.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/03-solomachine/_category_.json b/docs/versioned_docs/version-v8.3.x/03-light-clients/03-solomachine/_category_.json similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/03-solomachine/_category_.json rename to docs/versioned_docs/version-v8.3.x/03-light-clients/03-solomachine/_category_.json diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/04-wasm/01-overview.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/04-wasm/01-overview.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/04-wasm/01-overview.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/04-wasm/01-overview.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/04-wasm/02-concepts.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/04-wasm/02-concepts.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/04-wasm/02-concepts.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/04-wasm/02-concepts.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/04-wasm/03-integration.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/04-wasm/03-integration.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/04-wasm/03-integration.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/04-wasm/03-integration.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/04-wasm/04-messages.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/04-wasm/04-messages.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/04-wasm/04-messages.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/04-wasm/04-messages.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/04-wasm/05-governance.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/04-wasm/05-governance.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/04-wasm/05-governance.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/04-wasm/05-governance.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/04-wasm/06-events.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/04-wasm/06-events.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/04-wasm/06-events.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/04-wasm/06-events.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/04-wasm/07-contracts.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/04-wasm/07-contracts.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/04-wasm/07-contracts.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/04-wasm/07-contracts.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/04-wasm/08-client.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/04-wasm/08-client.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/04-wasm/08-client.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/04-wasm/08-client.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/04-wasm/09-migrations.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/04-wasm/09-migrations.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/04-wasm/09-migrations.md rename to docs/versioned_docs/version-v8.3.x/03-light-clients/04-wasm/09-migrations.md diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/04-wasm/_category_.json b/docs/versioned_docs/version-v8.3.x/03-light-clients/04-wasm/_category_.json similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/04-wasm/_category_.json rename to docs/versioned_docs/version-v8.3.x/03-light-clients/04-wasm/_category_.json diff --git a/docs/versioned_docs/version-v8.2.x/03-light-clients/_category_.json b/docs/versioned_docs/version-v8.3.x/03-light-clients/_category_.json similarity index 100% rename from docs/versioned_docs/version-v8.2.x/03-light-clients/_category_.json rename to docs/versioned_docs/version-v8.3.x/03-light-clients/_category_.json diff --git a/docs/versioned_docs/version-v8.2.x/04-middleware/01-ics29-fee/01-overview.md b/docs/versioned_docs/version-v8.3.x/04-middleware/01-ics29-fee/01-overview.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/04-middleware/01-ics29-fee/01-overview.md rename to docs/versioned_docs/version-v8.3.x/04-middleware/01-ics29-fee/01-overview.md diff --git a/docs/versioned_docs/version-v8.2.x/04-middleware/01-ics29-fee/02-integration.md b/docs/versioned_docs/version-v8.3.x/04-middleware/01-ics29-fee/02-integration.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/04-middleware/01-ics29-fee/02-integration.md rename to docs/versioned_docs/version-v8.3.x/04-middleware/01-ics29-fee/02-integration.md diff --git a/docs/versioned_docs/version-v8.2.x/04-middleware/01-ics29-fee/03-msgs.md b/docs/versioned_docs/version-v8.3.x/04-middleware/01-ics29-fee/03-msgs.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/04-middleware/01-ics29-fee/03-msgs.md rename to docs/versioned_docs/version-v8.3.x/04-middleware/01-ics29-fee/03-msgs.md diff --git a/docs/versioned_docs/version-v8.2.x/04-middleware/01-ics29-fee/04-fee-distribution.md b/docs/versioned_docs/version-v8.3.x/04-middleware/01-ics29-fee/04-fee-distribution.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/04-middleware/01-ics29-fee/04-fee-distribution.md rename to docs/versioned_docs/version-v8.3.x/04-middleware/01-ics29-fee/04-fee-distribution.md diff --git a/docs/versioned_docs/version-v8.2.x/04-middleware/01-ics29-fee/05-events.md b/docs/versioned_docs/version-v8.3.x/04-middleware/01-ics29-fee/05-events.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/04-middleware/01-ics29-fee/05-events.md rename to docs/versioned_docs/version-v8.3.x/04-middleware/01-ics29-fee/05-events.md diff --git a/docs/versioned_docs/version-v8.2.x/04-middleware/01-ics29-fee/06-end-users.md b/docs/versioned_docs/version-v8.3.x/04-middleware/01-ics29-fee/06-end-users.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/04-middleware/01-ics29-fee/06-end-users.md rename to docs/versioned_docs/version-v8.3.x/04-middleware/01-ics29-fee/06-end-users.md diff --git a/docs/versioned_docs/version-v8.2.x/04-middleware/01-ics29-fee/_category_.json b/docs/versioned_docs/version-v8.3.x/04-middleware/01-ics29-fee/_category_.json similarity index 100% rename from docs/versioned_docs/version-v8.2.x/04-middleware/01-ics29-fee/_category_.json rename to docs/versioned_docs/version-v8.3.x/04-middleware/01-ics29-fee/_category_.json diff --git a/docs/versioned_docs/version-v8.2.x/04-middleware/01-ics29-fee/images/feeflow.png b/docs/versioned_docs/version-v8.3.x/04-middleware/01-ics29-fee/images/feeflow.png similarity index 100% rename from docs/versioned_docs/version-v8.2.x/04-middleware/01-ics29-fee/images/feeflow.png rename to docs/versioned_docs/version-v8.3.x/04-middleware/01-ics29-fee/images/feeflow.png diff --git a/docs/versioned_docs/version-v8.2.x/04-middleware/01-ics29-fee/images/msgpaypacket.png b/docs/versioned_docs/version-v8.3.x/04-middleware/01-ics29-fee/images/msgpaypacket.png similarity index 100% rename from docs/versioned_docs/version-v8.2.x/04-middleware/01-ics29-fee/images/msgpaypacket.png rename to docs/versioned_docs/version-v8.3.x/04-middleware/01-ics29-fee/images/msgpaypacket.png diff --git a/docs/versioned_docs/version-v8.2.x/04-middleware/01-ics29-fee/images/paypacketfeeasync.png b/docs/versioned_docs/version-v8.3.x/04-middleware/01-ics29-fee/images/paypacketfeeasync.png similarity index 100% rename from docs/versioned_docs/version-v8.2.x/04-middleware/01-ics29-fee/images/paypacketfeeasync.png rename to docs/versioned_docs/version-v8.3.x/04-middleware/01-ics29-fee/images/paypacketfeeasync.png diff --git a/docs/versioned_docs/version-v8.2.x/04-middleware/02-callbacks/01-overview.md b/docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/01-overview.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/04-middleware/02-callbacks/01-overview.md rename to docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/01-overview.md diff --git a/docs/versioned_docs/version-v8.2.x/04-middleware/02-callbacks/02-integration.md b/docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/02-integration.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/04-middleware/02-callbacks/02-integration.md rename to docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/02-integration.md diff --git a/docs/versioned_docs/version-v8.2.x/04-middleware/02-callbacks/03-interfaces.md b/docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/03-interfaces.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/04-middleware/02-callbacks/03-interfaces.md rename to docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/03-interfaces.md diff --git a/docs/versioned_docs/version-v8.2.x/04-middleware/02-callbacks/04-events.md b/docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/04-events.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/04-middleware/02-callbacks/04-events.md rename to docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/04-events.md diff --git a/docs/versioned_docs/version-v8.2.x/04-middleware/02-callbacks/05-end-users.md b/docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/05-end-users.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/04-middleware/02-callbacks/05-end-users.md rename to docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/05-end-users.md diff --git a/docs/versioned_docs/version-v8.2.x/04-middleware/02-callbacks/06-gas.md b/docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/06-gas.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/04-middleware/02-callbacks/06-gas.md rename to docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/06-gas.md diff --git a/docs/versioned_docs/version-v8.2.x/04-middleware/02-callbacks/_category_.json b/docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/_category_.json similarity index 100% rename from docs/versioned_docs/version-v8.2.x/04-middleware/02-callbacks/_category_.json rename to docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/_category_.json diff --git a/docs/versioned_docs/version-v8.2.x/04-middleware/02-callbacks/images/callbackflow.svg b/docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/images/callbackflow.svg similarity index 100% rename from docs/versioned_docs/version-v8.2.x/04-middleware/02-callbacks/images/callbackflow.svg rename to docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/images/callbackflow.svg diff --git a/docs/versioned_docs/version-v8.2.x/04-middleware/02-callbacks/images/ics4-callbackflow.svg b/docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/images/ics4-callbackflow.svg similarity index 100% rename from docs/versioned_docs/version-v8.2.x/04-middleware/02-callbacks/images/ics4-callbackflow.svg rename to docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/images/ics4-callbackflow.svg diff --git a/docs/versioned_docs/version-v8.2.x/04-middleware/_category_.json b/docs/versioned_docs/version-v8.3.x/04-middleware/_category_.json similarity index 100% rename from docs/versioned_docs/version-v8.2.x/04-middleware/_category_.json rename to docs/versioned_docs/version-v8.3.x/04-middleware/_category_.json diff --git a/docs/versioned_docs/version-v8.2.x/05-migrations/01-support-denoms-with-slashes.md b/docs/versioned_docs/version-v8.3.x/05-migrations/01-support-denoms-with-slashes.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/05-migrations/01-support-denoms-with-slashes.md rename to docs/versioned_docs/version-v8.3.x/05-migrations/01-support-denoms-with-slashes.md diff --git a/docs/versioned_docs/version-v8.2.x/05-migrations/02-sdk-to-v1.md b/docs/versioned_docs/version-v8.3.x/05-migrations/02-sdk-to-v1.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/05-migrations/02-sdk-to-v1.md rename to docs/versioned_docs/version-v8.3.x/05-migrations/02-sdk-to-v1.md diff --git a/docs/versioned_docs/version-v8.2.x/05-migrations/03-v1-to-v2.md b/docs/versioned_docs/version-v8.3.x/05-migrations/03-v1-to-v2.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/05-migrations/03-v1-to-v2.md rename to docs/versioned_docs/version-v8.3.x/05-migrations/03-v1-to-v2.md diff --git a/docs/versioned_docs/version-v8.2.x/05-migrations/04-v2-to-v3.md b/docs/versioned_docs/version-v8.3.x/05-migrations/04-v2-to-v3.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/05-migrations/04-v2-to-v3.md rename to docs/versioned_docs/version-v8.3.x/05-migrations/04-v2-to-v3.md diff --git a/docs/versioned_docs/version-v8.2.x/05-migrations/05-v3-to-v4.md b/docs/versioned_docs/version-v8.3.x/05-migrations/05-v3-to-v4.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/05-migrations/05-v3-to-v4.md rename to docs/versioned_docs/version-v8.3.x/05-migrations/05-v3-to-v4.md diff --git a/docs/versioned_docs/version-v8.2.x/05-migrations/06-v4-to-v5.md b/docs/versioned_docs/version-v8.3.x/05-migrations/06-v4-to-v5.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/05-migrations/06-v4-to-v5.md rename to docs/versioned_docs/version-v8.3.x/05-migrations/06-v4-to-v5.md diff --git a/docs/versioned_docs/version-v8.2.x/05-migrations/07-v5-to-v6.md b/docs/versioned_docs/version-v8.3.x/05-migrations/07-v5-to-v6.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/05-migrations/07-v5-to-v6.md rename to docs/versioned_docs/version-v8.3.x/05-migrations/07-v5-to-v6.md diff --git a/docs/versioned_docs/version-v8.2.x/05-migrations/08-v6-to-v7.md b/docs/versioned_docs/version-v8.3.x/05-migrations/08-v6-to-v7.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/05-migrations/08-v6-to-v7.md rename to docs/versioned_docs/version-v8.3.x/05-migrations/08-v6-to-v7.md diff --git a/docs/versioned_docs/version-v8.2.x/05-migrations/09-v7-to-v7_1.md b/docs/versioned_docs/version-v8.3.x/05-migrations/09-v7-to-v7_1.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/05-migrations/09-v7-to-v7_1.md rename to docs/versioned_docs/version-v8.3.x/05-migrations/09-v7-to-v7_1.md diff --git a/docs/versioned_docs/version-v8.2.x/05-migrations/10-v7_2-to-v7_3.md b/docs/versioned_docs/version-v8.3.x/05-migrations/10-v7_2-to-v7_3.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/05-migrations/10-v7_2-to-v7_3.md rename to docs/versioned_docs/version-v8.3.x/05-migrations/10-v7_2-to-v7_3.md diff --git a/docs/versioned_docs/version-v8.2.x/05-migrations/11-v7-to-v8.md b/docs/versioned_docs/version-v8.3.x/05-migrations/11-v7-to-v8.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/05-migrations/11-v7-to-v8.md rename to docs/versioned_docs/version-v8.3.x/05-migrations/11-v7-to-v8.md diff --git a/docs/versioned_docs/version-v8.2.x/05-migrations/12-v8-to-v8_1.md b/docs/versioned_docs/version-v8.3.x/05-migrations/12-v8-to-v8_1.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/05-migrations/12-v8-to-v8_1.md rename to docs/versioned_docs/version-v8.3.x/05-migrations/12-v8-to-v8_1.md diff --git a/docs/versioned_docs/version-v8.2.x/05-migrations/_category_.json b/docs/versioned_docs/version-v8.3.x/05-migrations/_category_.json similarity index 100% rename from docs/versioned_docs/version-v8.2.x/05-migrations/_category_.json rename to docs/versioned_docs/version-v8.3.x/05-migrations/_category_.json diff --git a/docs/versioned_docs/version-v8.2.x/05-migrations/images/auth-module-decision-tree.png b/docs/versioned_docs/version-v8.3.x/05-migrations/images/auth-module-decision-tree.png similarity index 100% rename from docs/versioned_docs/version-v8.2.x/05-migrations/images/auth-module-decision-tree.png rename to docs/versioned_docs/version-v8.3.x/05-migrations/images/auth-module-decision-tree.png diff --git a/docs/versioned_docs/version-v8.2.x/05-migrations/migration.template.md b/docs/versioned_docs/version-v8.3.x/05-migrations/migration.template.md similarity index 100% rename from docs/versioned_docs/version-v8.2.x/05-migrations/migration.template.md rename to docs/versioned_docs/version-v8.3.x/05-migrations/migration.template.md diff --git a/docs/versioned_docs/version-v8.2.x/images/ibcoverview-dark.svg b/docs/versioned_docs/version-v8.3.x/images/ibcoverview-dark.svg similarity index 100% rename from docs/versioned_docs/version-v8.2.x/images/ibcoverview-dark.svg rename to docs/versioned_docs/version-v8.3.x/images/ibcoverview-dark.svg diff --git a/docs/versioned_docs/version-v8.2.x/images/ibcoverview-light.svg b/docs/versioned_docs/version-v8.3.x/images/ibcoverview-light.svg similarity index 100% rename from docs/versioned_docs/version-v8.2.x/images/ibcoverview-light.svg rename to docs/versioned_docs/version-v8.3.x/images/ibcoverview-light.svg diff --git a/docs/versioned_sidebars/version-v8.2.x-sidebars.json b/docs/versioned_sidebars/version-v8.3.x-sidebars.json similarity index 100% rename from docs/versioned_sidebars/version-v8.2.x-sidebars.json rename to docs/versioned_sidebars/version-v8.3.x-sidebars.json diff --git a/docs/versions.json b/docs/versions.json index 28c9db2a120..e003d880186 100644 --- a/docs/versions.json +++ b/docs/versions.json @@ -1,5 +1,5 @@ [ - "v8.2.x", + "v8.3.x", "v7.5.x", "v6.3.x", "v5.4.x", From 76eb0daa672cb35846c2e3ee0c76871730e9b6f0 Mon Sep 17 00:00:00 2001 From: Tuan Tran Date: Fri, 17 May 2024 02:58:16 +0700 Subject: [PATCH 48/62] chore(ante): refactor ante tests to use expected errors (#6310) * add expErr and fix nil updateClientMessage on testcase setup * linting --------- Co-authored-by: DimitrisJim --- modules/core/ante/ante_test.go | 49 +++++++++++++++++----------------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/modules/core/ante/ante_test.go b/modules/core/ante/ante_test.go index 2033f1f4e18..68b75fab0a7 100644 --- a/modules/core/ante/ante_test.go +++ b/modules/core/ante/ante_test.go @@ -3,6 +3,7 @@ package ante_test import ( "testing" + "github.com/cosmos/btcutil/bech32" "github.com/stretchr/testify/require" testifysuite "github.com/stretchr/testify/suite" @@ -180,7 +181,7 @@ func (suite *AnteTestSuite) TestAnteDecorator() { testCases := []struct { name string malleate func(suite *AnteTestSuite) []sdk.Msg - expPass bool + expError error }{ { "success on one new RecvPacket message", @@ -188,7 +189,7 @@ func (suite *AnteTestSuite) TestAnteDecorator() { // the RecvPacket message has not been submitted to the chain yet, so it will succeed return []sdk.Msg{suite.createRecvPacketMessage(false)} }, - true, + nil, }, { "success on one new Acknowledgement message", @@ -196,7 +197,7 @@ func (suite *AnteTestSuite) TestAnteDecorator() { // the Acknowledgement message has not been submitted to the chain yet, so it will succeed return []sdk.Msg{suite.createAcknowledgementMessage(false)} }, - true, + nil, }, { "success on one new Timeout message", @@ -204,7 +205,7 @@ func (suite *AnteTestSuite) TestAnteDecorator() { // the Timeout message has not been submitted to the chain yet, so it will succeed return []sdk.Msg{suite.createTimeoutMessage(false)} }, - true, + nil, }, { "success on one new TimeoutOnClose message", @@ -212,7 +213,7 @@ func (suite *AnteTestSuite) TestAnteDecorator() { // the TimeoutOnClose message has not been submitted to the chain yet, so it will succeed return []sdk.Msg{suite.createTimeoutOnCloseMessage(false)} }, - true, + nil, }, { "success on three new messages of each type", @@ -241,7 +242,7 @@ func (suite *AnteTestSuite) TestAnteDecorator() { } return msgs }, - true, + nil, }, { "success on three redundant messages of RecvPacket, Acknowledgement and TimeoutOnClose, and one new Timeout message", @@ -271,7 +272,7 @@ func (suite *AnteTestSuite) TestAnteDecorator() { } return msgs }, - true, + nil, }, { "success on one new message and two redundant messages of each type", @@ -301,21 +302,21 @@ func (suite *AnteTestSuite) TestAnteDecorator() { } return msgs }, - true, + nil, }, { "success on one new UpdateClient message", func(suite *AnteTestSuite) []sdk.Msg { return []sdk.Msg{suite.createUpdateClientMessage()} }, - true, + nil, }, { "success on three new UpdateClient messages", func(suite *AnteTestSuite) []sdk.Msg { return []sdk.Msg{suite.createUpdateClientMessage(), suite.createUpdateClientMessage(), suite.createUpdateClientMessage()} }, - true, + nil, }, { "success on three new Updateclient messages and one new RecvPacket message", @@ -327,7 +328,7 @@ func (suite *AnteTestSuite) TestAnteDecorator() { suite.createRecvPacketMessage(false), } }, - true, + nil, }, { "success on three redundant RecvPacket messages and one SubmitMisbehaviour message", @@ -342,14 +343,14 @@ func (suite *AnteTestSuite) TestAnteDecorator() { msgs = append(msgs, &clienttypes.MsgSubmitMisbehaviour{}) //nolint:staticcheck // we're using the deprecated message for testing return msgs }, - true, + nil, }, { "no success on one redundant RecvPacket message", func(suite *AnteTestSuite) []sdk.Msg { return []sdk.Msg{suite.createRecvPacketMessage(true)} }, - false, + channeltypes.ErrRedundantTx, }, { "no success on three redundant messages of each type", @@ -374,12 +375,12 @@ func (suite *AnteTestSuite) TestAnteDecorator() { } return msgs }, - false, + channeltypes.ErrRedundantTx, }, { "no success on one new UpdateClient message and three redundant RecvPacket messages", func(suite *AnteTestSuite) []sdk.Msg { - msgs := []sdk.Msg{&clienttypes.MsgUpdateClient{}} + msgs := []sdk.Msg{suite.createUpdateClientMessage()} for i := 1; i <= 3; i++ { msgs = append(msgs, suite.createRecvPacketMessage(true)) @@ -387,7 +388,7 @@ func (suite *AnteTestSuite) TestAnteDecorator() { return msgs }, - false, + channeltypes.ErrRedundantTx, }, { "no success on one new UpdateClient message: invalid client identifier", @@ -398,7 +399,7 @@ func (suite *AnteTestSuite) TestAnteDecorator() { msgs := []sdk.Msg{&clienttypes.MsgUpdateClient{ClientId: ibctesting.InvalidID, ClientMessage: clientMsg}} return msgs }, - false, + clienttypes.ErrClientNotActive, }, { "no success on one new UpdateClient message: client module not found", @@ -409,7 +410,7 @@ func (suite *AnteTestSuite) TestAnteDecorator() { msgs := []sdk.Msg{&clienttypes.MsgUpdateClient{ClientId: clienttypes.FormatClientIdentifier("08-wasm", 1), ClientMessage: clientMsg}} return msgs }, - false, + clienttypes.ErrClientNotActive, }, { "no success on one new UpdateClient message: no consensus state for trusted height", @@ -420,7 +421,7 @@ func (suite *AnteTestSuite) TestAnteDecorator() { msgs := []sdk.Msg{&clienttypes.MsgUpdateClient{ClientId: suite.path.EndpointA.ClientID, ClientMessage: clientMsg}} return msgs }, - false, + clienttypes.ErrConsensusStateNotFound, }, { "no success on three new UpdateClient messages and three redundant messages of each type", @@ -445,7 +446,7 @@ func (suite *AnteTestSuite) TestAnteDecorator() { } return msgs }, - false, + channeltypes.ErrRedundantTx, }, { "no success on one new message and one invalid message", @@ -460,7 +461,7 @@ func (suite *AnteTestSuite) TestAnteDecorator() { channeltypes.NewMsgRecvPacket(packet, []byte("proof"), clienttypes.NewHeight(1, 1), "signer"), } }, - false, + bech32.ErrInvalidLength(6), }, { "no success on one new message and one redundant message in the same block", @@ -484,7 +485,7 @@ func (suite *AnteTestSuite) TestAnteDecorator() { return []sdk.Msg{msg} }, - false, + channeltypes.ErrRedundantTx, }, } @@ -515,10 +516,10 @@ func (suite *AnteTestSuite) TestAnteDecorator() { suite.Require().NoError(err, "antedecorator should not error on DeliverTx") _, err = decorator.AnteHandle(checkCtx, tx, false, next) - if tc.expPass { + if tc.expError == nil { suite.Require().NoError(err, "non-strict decorator did not pass as expected") } else { - suite.Require().Error(err, "non-strict antehandler did not return error as expected") + suite.Require().ErrorIs(err, tc.expError, "non-strict antehandler did not return error as expected") } }) } From ca240f80f5666f64f08e9bffe5f7b3347cf25010 Mon Sep 17 00:00:00 2001 From: Damian Nolan Date: Sun, 19 May 2024 22:44:07 +0200 Subject: [PATCH 49/62] fix: no-op rather than panic in solomachine update state (#6313) * fix: no-op rather than panic in solomachine update state * Update modules/light-clients/06-solomachine/update.go Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * add changelog --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Carlos Rodriguez --- CHANGELOG.md | 1 + .../06-solomachine/light_client_module_test.go | 9 +++++++-- modules/light-clients/06-solomachine/update.go | 6 +++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 43ceb250514..5506ddc1cd6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -57,6 +57,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### State Machine Breaking * (light-clients/07-tendermint) [\#6276](https://github.com/cosmos/ibc-go/pull/6276) Fix: No-op to avoid panicking on `UpdateState` for invalid misbehaviour submissions. +* (light-clients/06-solomachine) [\#6313](https://github.com/cosmos/ibc-go/pull/6313) Fix: No-op to avoid panicking on `UpdateState` for invalid misbehaviour submissions. ### Improvements diff --git a/modules/light-clients/06-solomachine/light_client_module_test.go b/modules/light-clients/06-solomachine/light_client_module_test.go index d853cbf42d5..d80691462a8 100644 --- a/modules/light-clients/06-solomachine/light_client_module_test.go +++ b/modules/light-clients/06-solomachine/light_client_module_test.go @@ -1042,13 +1042,13 @@ func (suite *SoloMachineTestSuite) TestUpdateState() { nil, }, { - "failure: invalid type misbehaviour", + "invalid type misbehaviour no-ops", func() { clientState = sm.ClientState() clientMsg = sm.CreateMisbehaviour() suite.chainA.App.GetIBCKeeper().ClientKeeper.SetClientState(suite.chainA.GetContext(), clientID, clientState) }, - fmt.Errorf("unsupported ClientMessage: %T", sm.CreateMisbehaviour()), + nil, }, { "failure: cannot find client state", @@ -1092,6 +1092,11 @@ func (suite *SoloMachineTestSuite) TestUpdateState() { newClientState := clienttypes.MustUnmarshalClientState(suite.chainA.Codec, clientStateBz) + if len(consensusHeights) == 0 { + suite.Require().Equal(clientState, newClientState) + return + } + suite.Require().Len(consensusHeights, 1) suite.Require().Equal(uint64(0), consensusHeights[0].GetRevisionNumber()) suite.Require().Equal(newClientState.(*solomachine.ClientState).Sequence, consensusHeights[0].GetRevisionHeight()) diff --git a/modules/light-clients/06-solomachine/update.go b/modules/light-clients/06-solomachine/update.go index 359bb118be4..53e4ef26ea2 100644 --- a/modules/light-clients/06-solomachine/update.go +++ b/modules/light-clients/06-solomachine/update.go @@ -1,8 +1,6 @@ package solomachine import ( - "fmt" - errorsmod "cosmossdk.io/errors" storetypes "cosmossdk.io/store/types" @@ -79,10 +77,12 @@ func (cs ClientState) verifyHeader(cdc codec.BinaryCodec, header *Header) error // UpdateState updates the consensus state to the new public key and an incremented sequence. // A list containing the updated consensus height is returned. +// If the provided clientMsg is not of type Header, the handler will no-op and return an empty slice. func (cs ClientState) UpdateState(ctx sdk.Context, cdc codec.BinaryCodec, clientStore storetypes.KVStore, clientMsg exported.ClientMessage) []exported.Height { smHeader, ok := clientMsg.(*Header) if !ok { - panic(fmt.Errorf("unsupported ClientMessage: %T", clientMsg)) + // clientMsg is invalid Misbehaviour, no update necessary + return []exported.Height{} } // create new solomachine ConsensusState From 67b23cd8ff542730dd51bedae46bea352a654fc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?colin=20axn=C3=A9r?= <25233464+colin-axner@users.noreply.github.com> Date: Mon, 20 May 2024 15:23:39 +0200 Subject: [PATCH 50/62] perf: exclude pruning from tendermint update client in ante handler execution (#6278) * performance: exit early on recvpacket to exclude app callbacks * perf: skip pruning on check tx and recheck tx * change fmt.Errorf to errors.New * fix: check execMode simulate in conditional * revert: recv packet changes * fix: account for simulation in pruning check * fix: reuse checkTx ctx * chore: add changelog --------- Co-authored-by: Damian Nolan --- CHANGELOG.md | 1 + modules/light-clients/07-tendermint/update.go | 6 +- .../07-tendermint/update_test.go | 74 +++++++++++++++++++ 3 files changed, 80 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5506ddc1cd6..64e4b71993a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -65,6 +65,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (core/02-client, core/03-connection, apps/27-interchain-accounts) [\#6256](https://github.com/cosmos/ibc-go/pull/6256) Add length checking of array fields in messages. * (apps/27-interchain-accounts, apps/tranfer, apps/29-fee) [\#6253](https://github.com/cosmos/ibc-go/pull/6253) Allow channel handshake to succeed if fee middleware is wired up on one side, but not the other. * (apps/transfer) [\#6268](https://github.com/cosmos/ibc-go/pull/6268) Use memo strings instead of JSON keys in `AllowedPacketData` of transfer authorization. +* (core/ante) [\#6278](https://github.com/cosmos/ibc-go/pull/6278) Performance: Exclude pruning from tendermint client updates in ante handler executions. ### Features diff --git a/modules/light-clients/07-tendermint/update.go b/modules/light-clients/07-tendermint/update.go index 1a88eee5859..9a710f9e686 100644 --- a/modules/light-clients/07-tendermint/update.go +++ b/modules/light-clients/07-tendermint/update.go @@ -139,7 +139,11 @@ func (cs ClientState) UpdateState(ctx sdk.Context, cdc codec.BinaryCodec, client return []exported.Height{} } - cs.pruneOldestConsensusState(ctx, cdc, clientStore) + // performance: do not prune in checkTx + // simulation must prune for accurate gas estimation + if (!ctx.IsCheckTx() && !ctx.IsReCheckTx()) || ctx.ExecMode() == sdk.ExecModeSimulate { + cs.pruneOldestConsensusState(ctx, cdc, clientStore) + } // check for duplicate update if _, found := GetConsensusState(clientStore, cdc, header.GetHeight()); found { diff --git a/modules/light-clients/07-tendermint/update_test.go b/modules/light-clients/07-tendermint/update_test.go index 93ef5638e7e..178ffa6195b 100644 --- a/modules/light-clients/07-tendermint/update_test.go +++ b/modules/light-clients/07-tendermint/update_test.go @@ -5,6 +5,8 @@ import ( storetypes "cosmossdk.io/store/types" + sdk "github.com/cosmos/cosmos-sdk/types" + cmttypes "github.com/cometbft/cometbft/types" clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" @@ -560,6 +562,78 @@ func (suite *TendermintTestSuite) TestUpdateState() { } } +func (suite *TendermintTestSuite) TestUpdateStateCheckTx() { + path := ibctesting.NewPath(suite.chainA, suite.chainB) + path.SetupClients() + + createClientMessage := func() exported.ClientMessage { + trustedHeight, ok := path.EndpointA.GetClientLatestHeight().(clienttypes.Height) + suite.Require().True(ok) + header, err := path.EndpointB.Chain.IBCClientHeader(path.EndpointB.Chain.LatestCommittedHeader, trustedHeight) + suite.Require().NoError(err) + return header + } + + // get the first height as it will be pruned first. + var pruneHeight exported.Height + getFirstHeightCb := func(height exported.Height) bool { + pruneHeight = height + return true + } + ctx := path.EndpointA.Chain.GetContext() + clientStore := path.EndpointA.Chain.App.GetIBCKeeper().ClientKeeper.ClientStore(ctx, path.EndpointA.ClientID) + ibctm.IterateConsensusStateAscending(clientStore, getFirstHeightCb) + + // Increment the time by a week + suite.coordinator.IncrementTimeBy(7 * 24 * time.Hour) + + lightClientModule, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.Route(path.EndpointA.ClientID) + suite.Require().True(found) + + ctx = path.EndpointA.Chain.GetContext().WithIsCheckTx(true) + lightClientModule.UpdateState(ctx, path.EndpointA.ClientID, createClientMessage()) + + // Increment the time by another week, then update the client. + // This will cause the first two consensus states to become expired. + suite.coordinator.IncrementTimeBy(7 * 24 * time.Hour) + ctx = path.EndpointA.Chain.GetContext().WithIsCheckTx(true) + lightClientModule.UpdateState(ctx, path.EndpointA.ClientID, createClientMessage()) + + assertPrune := func(pruned bool) { + // check consensus states and associated metadata + consState, ok := path.EndpointA.Chain.GetConsensusState(path.EndpointA.ClientID, pruneHeight) + suite.Require().Equal(!pruned, ok) + + processTime, ok := ibctm.GetProcessedTime(clientStore, pruneHeight) + suite.Require().Equal(!pruned, ok) + + processHeight, ok := ibctm.GetProcessedHeight(clientStore, pruneHeight) + suite.Require().Equal(!pruned, ok) + + consKey := ibctm.GetIterationKey(clientStore, pruneHeight) + + if pruned { + suite.Require().Nil(consState, "expired consensus state not pruned") + suite.Require().Empty(processTime, "processed time metadata not pruned") + suite.Require().Nil(processHeight, "processed height metadata not pruned") + suite.Require().Nil(consKey, "iteration key not pruned") + } else { + suite.Require().NotNil(consState, "expired consensus state pruned") + suite.Require().NotEqual(uint64(0), processTime, "processed time metadata pruned") + suite.Require().NotNil(processHeight, "processed height metadata pruned") + suite.Require().NotNil(consKey, "iteration key pruned") + } + } + + assertPrune(false) + + // simulation mode must prune to calculate gas correctly + ctx = ctx.WithExecMode(sdk.ExecModeSimulate) + lightClientModule.UpdateState(ctx, path.EndpointA.ClientID, createClientMessage()) + + assertPrune(true) +} + func (suite *TendermintTestSuite) TestPruneConsensusState() { // create path and setup clients path := ibctesting.NewPath(suite.chainA, suite.chainB) From 0993246ffe6d9776f4165ede02c49b7bc753a213 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?colin=20axn=C3=A9r?= <25233464+colin-axner@users.noreply.github.com> Date: Mon, 20 May 2024 15:49:45 +0200 Subject: [PATCH 51/62] perf: minimize necessary execution on recvpacket checktx (#6302) * perf: only perform core ibc logic on recvpacket checktx * try me linter * fix: reorder if and add comment * chore: add changelog entry --- CHANGELOG.md | 1 + modules/core/ante/ante.go | 40 +++++++++++++++++++++++++++++++++- modules/core/ante/ante_test.go | 31 +++++++++++++++++++++++--- 3 files changed, 68 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 64e4b71993a..661fcabf228 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -66,6 +66,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (apps/27-interchain-accounts, apps/tranfer, apps/29-fee) [\#6253](https://github.com/cosmos/ibc-go/pull/6253) Allow channel handshake to succeed if fee middleware is wired up on one side, but not the other. * (apps/transfer) [\#6268](https://github.com/cosmos/ibc-go/pull/6268) Use memo strings instead of JSON keys in `AllowedPacketData` of transfer authorization. * (core/ante) [\#6278](https://github.com/cosmos/ibc-go/pull/6278) Performance: Exclude pruning from tendermint client updates in ante handler executions. +* (core/ante) [\#6302](https://github.com/cosmos/ibc-go/pull/6302) Performance: Skip app callbacks during RecvPacket execution in checkTx within the redundant relay ante handler. ### Features diff --git a/modules/core/ante/ante.go b/modules/core/ante/ante.go index ac4950964a0..4036c046067 100644 --- a/modules/core/ante/ante.go +++ b/modules/core/ante/ante.go @@ -33,10 +33,22 @@ func (rrd RedundantRelayDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simula for _, m := range tx.GetMsgs() { switch msg := m.(type) { case *channeltypes.MsgRecvPacket: - response, err := rrd.k.RecvPacket(ctx, msg) + var ( + response *channeltypes.MsgRecvPacketResponse + err error + ) + // when we are in ReCheckTx mode, ctx.IsCheckTx() will also return true + // there we must start the if statement on ctx.IsReCheckTx() to correctly + // determine which mode we are in + if ctx.IsReCheckTx() { + response, err = rrd.k.RecvPacket(ctx, msg) + } else { + response, err = rrd.recvPacketCheckTx(ctx, msg) + } if err != nil { return ctx, err } + if response.Result == channeltypes.NOOP { redundancies++ } @@ -93,6 +105,32 @@ func (rrd RedundantRelayDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simula return next(ctx, tx, simulate) } +// recvPacketCheckTx runs a subset of ibc recv packet logic to be used specifically within the RedundantRelayDecorator AnteHandler. +// It only performs core IBC receiving logic and skips any application logic. +func (rrd RedundantRelayDecorator) recvPacketCheckTx(ctx sdk.Context, msg *channeltypes.MsgRecvPacket) (*channeltypes.MsgRecvPacketResponse, error) { + // grab channel capability + _, capability, err := rrd.k.ChannelKeeper.LookupModuleByChannel(ctx, msg.Packet.DestinationPort, msg.Packet.DestinationChannel) + if err != nil { + return nil, errorsmod.Wrap(err, "could not retrieve module from port-id") + } + + // If the packet was already received, perform a no-op + // Use a cached context to prevent accidental state changes + cacheCtx, writeFn := ctx.CacheContext() + err = rrd.k.ChannelKeeper.RecvPacket(cacheCtx, capability, msg.Packet, msg.ProofCommitment, msg.ProofHeight) + + switch err { + case nil: + writeFn() + case channeltypes.ErrNoOpMsg: + return &channeltypes.MsgRecvPacketResponse{Result: channeltypes.NOOP}, nil + default: + return nil, errorsmod.Wrap(err, "receive packet verification failed") + } + + return &channeltypes.MsgRecvPacketResponse{Result: channeltypes.SUCCESS}, nil +} + // updateClientCheckTx runs a subset of ibc client update logic to be used specifically within the RedundantRelayDecorator AnteHandler. // The following function performs ibc client message verification for CheckTx only and state updates in both CheckTx and ReCheckTx. // Note that misbehaviour checks are omitted. diff --git a/modules/core/ante/ante_test.go b/modules/core/ante/ante_test.go index 68b75fab0a7..fdb8d7cdfa8 100644 --- a/modules/core/ante/ante_test.go +++ b/modules/core/ante/ante_test.go @@ -1,17 +1,19 @@ package ante_test import ( + "fmt" "testing" - "github.com/cosmos/btcutil/bech32" "github.com/stretchr/testify/require" testifysuite "github.com/stretchr/testify/suite" codectypes "github.com/cosmos/cosmos-sdk/codec/types" sdk "github.com/cosmos/cosmos-sdk/types" + capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" + commitmenttypes "github.com/cosmos/ibc-go/v8/modules/core/23-commitment/types" host "github.com/cosmos/ibc-go/v8/modules/core/24-host" "github.com/cosmos/ibc-go/v8/modules/core/ante" "github.com/cosmos/ibc-go/v8/modules/core/exported" @@ -49,7 +51,7 @@ func TestAnteTestSuite(t *testing.T) { } // createRecvPacketMessage creates a RecvPacket message for a packet sent from chain A to chain B. -func (suite *AnteTestSuite) createRecvPacketMessage(isRedundant bool) sdk.Msg { +func (suite *AnteTestSuite) createRecvPacketMessage(isRedundant bool) *channeltypes.MsgRecvPacket { sequence, err := suite.path.EndpointA.SendPacket(clienttypes.NewHeight(2, 0), 0, ibctesting.MockPacketData) suite.Require().NoError(err) @@ -345,6 +347,20 @@ func (suite *AnteTestSuite) TestAnteDecorator() { }, nil, }, + { + "success on app callback error, app callbacks are skipped for performance", + func(suite *AnteTestSuite) []sdk.Msg { + suite.chainB.GetSimApp().IBCMockModule.IBCApp.OnRecvPacket = func( + ctx sdk.Context, packet channeltypes.Packet, relayer sdk.AccAddress, + ) exported.Acknowledgement { + panic(fmt.Errorf("failed OnRecvPacket mock callback")) + } + + // the RecvPacket message has not been submitted to the chain yet, so it will succeed + return []sdk.Msg{suite.createRecvPacketMessage(false)} + }, + nil, + }, { "no success on one redundant RecvPacket message", func(suite *AnteTestSuite) []sdk.Msg { @@ -461,7 +477,7 @@ func (suite *AnteTestSuite) TestAnteDecorator() { channeltypes.NewMsgRecvPacket(packet, []byte("proof"), clienttypes.NewHeight(1, 1), "signer"), } }, - bech32.ErrInvalidLength(6), + commitmenttypes.ErrInvalidProof, }, { "no success on one new message and one redundant message in the same block", @@ -487,6 +503,15 @@ func (suite *AnteTestSuite) TestAnteDecorator() { }, channeltypes.ErrRedundantTx, }, + { + "no success on recvPacket checkTx, no capability found", + func(suite *AnteTestSuite) []sdk.Msg { + msg := suite.createRecvPacketMessage(false) + msg.Packet.DestinationPort = "invalid-port" + return []sdk.Msg{msg} + }, + capabilitytypes.ErrCapabilityNotFound, + }, } for _, tc := range testCases { From 60d91e14ffad767f89cceac8092110aa85696b36 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 14:04:14 +0000 Subject: [PATCH 52/62] build(deps): Bump JamesIves/github-pages-deploy-action (#6332) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.0 to 4.6.1. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.0...v4.6.1) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> --- .github/workflows/deploy-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index 41646fad44e..eee6de1c329 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -27,7 +27,7 @@ jobs: run: make build-docs - name: Deploy 🚀 - uses: JamesIves/github-pages-deploy-action@v4.6.0 + uses: JamesIves/github-pages-deploy-action@v4.6.1 with: branch: gh-pages folder: docs/build From b6e7de5031606cf40566284a263b43c8d3a97ec7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 14:25:31 +0000 Subject: [PATCH 53/62] build(deps): Bump bufbuild/buf-setup-action from 1.31.0 to 1.32.0 (#6326) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [bufbuild/buf-setup-action](https://github.com/bufbuild/buf-setup-action) from 1.31.0 to 1.32.0. - [Release notes](https://github.com/bufbuild/buf-setup-action/releases) - [Commits](https://github.com/bufbuild/buf-setup-action/compare/v1.31.0...v1.32.0) --- updated-dependencies: - dependency-name: bufbuild/buf-setup-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> --- .github/workflows/proto-registry.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/proto-registry.yml b/.github/workflows/proto-registry.yml index 77c9b6766f2..029d3db46e5 100644 --- a/.github/workflows/proto-registry.yml +++ b/.github/workflows/proto-registry.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: bufbuild/buf-setup-action@v1.31.0 + - uses: bufbuild/buf-setup-action@v1.32.0 - uses: bufbuild/buf-push-action@v1 with: input: "proto" From 895aac9d07d2badc52ff0109704704210e496ace Mon Sep 17 00:00:00 2001 From: srdtrk <59252793+srdtrk@users.noreply.github.com> Date: Tue, 21 May 2024 00:18:10 +0800 Subject: [PATCH 54/62] docs: fix kapa analytics config (#6338) --- docs/docusaurus.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index 5abc6369b72..e95b8e2b262 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -347,7 +347,7 @@ const config = { src: "https://widget.kapa.ai/kapa-widget.bundle.js", "data-website-id": "806aa1dc-0d46-4563-a8b8-880eecac59f1", "data-project-name": "Interchain", - "data-user-analytics-fingerprint-enabled": true, + "data-user-analytics-fingerprint-enabled": "true", "data-project-color": "#1878FF", "data-modal-title": "IBC Docs AI", "data-modal-disclaimer": "This is a custom LLM for the Inter-Blockchain Communication Protocol in Golang (ibc-go). It is trained on the IBC developer documentation, code base, and resources. Answers are AI-generated. Please use your best judgment before implementing. The bot is not trained on documentation, code, or resources for the Cosmos SDK, CometBFT, CosmJS, CosmWasm, or interchain ecosystem blockchains. Please refer to those specific documentation sites for answers to those questions.", From 56ae97d806339cd83cb346502bae20775a2b7ca7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?colin=20axn=C3=A9r?= <25233464+colin-axner@users.noreply.github.com> Date: Tue, 21 May 2024 11:28:16 +0200 Subject: [PATCH 55/62] perf: minimize logic on rechecktx for recvpacket (#6280) * perf: minimize logic on rechecktx for recvpacket * refactor: rework layout for recvpacket rechecktx * test: add tests for 04-channel rechecktx func * test: add tests for core ante handler * chore: add comment explaining is rechecktx usage * linter appeasement * chore: add changelog entry * Update modules/core/ante/ante.go Co-authored-by: Carlos Rodriguez * imp: use cached ctx for consistency * refactor: change added test to use expected errors * lint --------- Co-authored-by: Carlos Rodriguez --- CHANGELOG.md | 1 + modules/core/04-channel/keeper/ante.go | 24 ++++++ modules/core/04-channel/keeper/ante_test.go | 64 ++++++++++++++ modules/core/04-channel/keeper/packet.go | 36 +++++--- modules/core/ante/ante.go | 24 +++++- modules/core/ante/ante_test.go | 94 ++++++++++++++++++++- 6 files changed, 227 insertions(+), 16 deletions(-) create mode 100644 modules/core/04-channel/keeper/ante.go create mode 100644 modules/core/04-channel/keeper/ante_test.go diff --git a/CHANGELOG.md b/CHANGELOG.md index 661fcabf228..86c31d29c68 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -67,6 +67,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (apps/transfer) [\#6268](https://github.com/cosmos/ibc-go/pull/6268) Use memo strings instead of JSON keys in `AllowedPacketData` of transfer authorization. * (core/ante) [\#6278](https://github.com/cosmos/ibc-go/pull/6278) Performance: Exclude pruning from tendermint client updates in ante handler executions. * (core/ante) [\#6302](https://github.com/cosmos/ibc-go/pull/6302) Performance: Skip app callbacks during RecvPacket execution in checkTx within the redundant relay ante handler. +* (core/ante) [\#6280](https://github.com/cosmos/ibc-go/pull/6280) Performance: Skip redundant proof checking in RecvPacket execution in reCheckTx within the redundant relay ante handler. ### Features diff --git a/modules/core/04-channel/keeper/ante.go b/modules/core/04-channel/keeper/ante.go new file mode 100644 index 00000000000..ac387569c68 --- /dev/null +++ b/modules/core/04-channel/keeper/ante.go @@ -0,0 +1,24 @@ +package keeper + +import ( + errorsmod "cosmossdk.io/errors" + + sdk "github.com/cosmos/cosmos-sdk/types" + + "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" +) + +// RecvPacketReCheckTx applies replay protection ensuring that when relay messages are +// re-executed in ReCheckTx, we can appropriately filter out redundant relay transactions. +func (k *Keeper) RecvPacketReCheckTx(ctx sdk.Context, packet types.Packet) error { + channel, found := k.GetChannel(ctx, packet.GetDestPort(), packet.GetDestChannel()) + if !found { + return errorsmod.Wrap(types.ErrChannelNotFound, packet.GetDestChannel()) + } + + if err := k.applyReplayProtection(ctx, packet, channel); err != nil { + return err + } + + return nil +} diff --git a/modules/core/04-channel/keeper/ante_test.go b/modules/core/04-channel/keeper/ante_test.go new file mode 100644 index 00000000000..4bc62ff2ae6 --- /dev/null +++ b/modules/core/04-channel/keeper/ante_test.go @@ -0,0 +1,64 @@ +package keeper_test + +import ( + "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" + ibctesting "github.com/cosmos/ibc-go/v8/testing" +) + +func (suite *KeeperTestSuite) TestRecvPacketReCheckTx() { + var ( + path *ibctesting.Path + packet types.Packet + ) + + testCases := []struct { + name string + malleate func() + expError error + }{ + { + "success", + func() {}, + nil, + }, + { + "channel not found", + func() { + packet.DestinationPort = "invalid-port" //nolint:goconst + }, + types.ErrChannelNotFound, + }, + { + "redundant relay", + func() { + err := suite.chainB.App.GetIBCKeeper().ChannelKeeper.RecvPacketReCheckTx(suite.chainB.GetContext(), packet) + suite.Require().NoError(err) + }, + types.ErrNoOpMsg, + }, + } + + for _, tc := range testCases { + tc := tc + suite.Run(tc.name, func() { + suite.SetupTest() // reset + path = ibctesting.NewPath(suite.chainA, suite.chainB) + path.Setup() + + sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData) + suite.Require().NoError(err) + packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp) + + tc.malleate() + + err = suite.chainB.App.GetIBCKeeper().ChannelKeeper.RecvPacketReCheckTx(suite.chainB.GetContext(), packet) + + expPass := tc.expError == nil + if expPass { + suite.Require().NoError(err) + } else { + suite.Require().ErrorIs(err, tc.expError) + } + }) + } +} diff --git a/modules/core/04-channel/keeper/packet.go b/modules/core/04-channel/keeper/packet.go index 08d1d678538..b48fd41b667 100644 --- a/modules/core/04-channel/keeper/packet.go +++ b/modules/core/04-channel/keeper/packet.go @@ -188,6 +188,29 @@ func (k *Keeper) RecvPacket( return errorsmod.Wrap(err, "couldn't verify counterparty packet commitment") } + if err := k.applyReplayProtection(ctx, packet, channel); err != nil { + return err + } + + // log that a packet has been received & executed + k.Logger(ctx).Info( + "packet received", + "sequence", strconv.FormatUint(packet.GetSequence(), 10), + "src_port", packet.GetSourcePort(), + "src_channel", packet.GetSourceChannel(), + "dst_port", packet.GetDestPort(), + "dst_channel", packet.GetDestChannel(), + ) + + // emit an event that the relayer can query for + emitRecvPacketEvent(ctx, packet, channel) + + return nil +} + +// applyReplayProtection ensures a packet has not already been received +// and performs the necessary state changes to ensure it cannot be received again. +func (k *Keeper) applyReplayProtection(ctx sdk.Context, packet types.Packet, channel types.Channel) error { // REPLAY PROTECTION: The recvStartSequence will prevent historical proofs from allowing replay // attacks on packets processed in previous lifecycles of a channel. After a successful channel // upgrade all packets under the recvStartSequence will have been processed and thus should be @@ -253,19 +276,6 @@ func (k *Keeper) RecvPacket( k.SetNextSequenceRecv(ctx, packet.GetDestPort(), packet.GetDestChannel(), nextSequenceRecv) } - // log that a packet has been received & executed - k.Logger(ctx).Info( - "packet received", - "sequence", strconv.FormatUint(packet.GetSequence(), 10), - "src_port", packet.GetSourcePort(), - "src_channel", packet.GetSourceChannel(), - "dst_port", packet.GetDestPort(), - "dst_channel", packet.GetDestChannel(), - ) - - // emit an event that the relayer can query for - emitRecvPacketEvent(ctx, packet, channel) - return nil } diff --git a/modules/core/ante/ante.go b/modules/core/ante/ante.go index 4036c046067..c456ed45a6f 100644 --- a/modules/core/ante/ante.go +++ b/modules/core/ante/ante.go @@ -38,10 +38,10 @@ func (rrd RedundantRelayDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simula err error ) // when we are in ReCheckTx mode, ctx.IsCheckTx() will also return true - // there we must start the if statement on ctx.IsReCheckTx() to correctly + // therefore we must start the if statement on ctx.IsReCheckTx() to correctly // determine which mode we are in if ctx.IsReCheckTx() { - response, err = rrd.k.RecvPacket(ctx, msg) + response, err = rrd.recvPacketReCheckTx(ctx, msg) } else { response, err = rrd.recvPacketCheckTx(ctx, msg) } @@ -131,6 +131,26 @@ func (rrd RedundantRelayDecorator) recvPacketCheckTx(ctx sdk.Context, msg *chann return &channeltypes.MsgRecvPacketResponse{Result: channeltypes.SUCCESS}, nil } +// recvPacketReCheckTx runs a subset of ibc recv packet logic to be used specifically within the RedundantRelayDecorator AnteHandler. +// It only performs core IBC receiving logic and skips any application logic. +func (rrd RedundantRelayDecorator) recvPacketReCheckTx(ctx sdk.Context, msg *channeltypes.MsgRecvPacket) (*channeltypes.MsgRecvPacketResponse, error) { + // If the packet was already received, perform a no-op + // Use a cached context to prevent accidental state changes + cacheCtx, writeFn := ctx.CacheContext() + err := rrd.k.ChannelKeeper.RecvPacketReCheckTx(cacheCtx, msg.Packet) + + switch err { + case nil: + writeFn() + case channeltypes.ErrNoOpMsg: + return &channeltypes.MsgRecvPacketResponse{Result: channeltypes.NOOP}, nil + default: + return nil, errorsmod.Wrap(err, "receive packet verification failed") + } + + return &channeltypes.MsgRecvPacketResponse{Result: channeltypes.SUCCESS}, nil +} + // updateClientCheckTx runs a subset of ibc client update logic to be used specifically within the RedundantRelayDecorator AnteHandler. // The following function performs ibc client message verification for CheckTx only and state updates in both CheckTx and ReCheckTx. // Note that misbehaviour checks are omitted. diff --git a/modules/core/ante/ante_test.go b/modules/core/ante/ante_test.go index fdb8d7cdfa8..6c59bcd4fc3 100644 --- a/modules/core/ante/ante_test.go +++ b/modules/core/ante/ante_test.go @@ -179,7 +179,7 @@ func (suite *AnteTestSuite) createUpdateClientMessage() sdk.Msg { return msg } -func (suite *AnteTestSuite) TestAnteDecorator() { +func (suite *AnteTestSuite) TestAnteDecoratorCheckTx() { testCases := []struct { name string malleate func(suite *AnteTestSuite) []sdk.Msg @@ -549,3 +549,95 @@ func (suite *AnteTestSuite) TestAnteDecorator() { }) } } + +func (suite *AnteTestSuite) TestAnteDecoratorReCheckTx() { + testCases := []struct { + name string + malleate func(suite *AnteTestSuite) []sdk.Msg + expError error + }{ + { + "success on one new RecvPacket message", + func(suite *AnteTestSuite) []sdk.Msg { + // the RecvPacket message has not been submitted to the chain yet, so it will succeed + return []sdk.Msg{suite.createRecvPacketMessage(false)} + }, + nil, + }, + { + "success on one redundant and one new RecvPacket message", + func(suite *AnteTestSuite) []sdk.Msg { + return []sdk.Msg{ + suite.createRecvPacketMessage(true), + suite.createRecvPacketMessage(false), + } + }, + nil, + }, + { + "success on invalid proof (proof checks occur in checkTx)", + func(suite *AnteTestSuite) []sdk.Msg { + msg := suite.createRecvPacketMessage(false) + msg.ProofCommitment = []byte("invalid-proof") + return []sdk.Msg{msg} + }, + nil, + }, + { + "success on app callback error, app callbacks are skipped for performance", + func(suite *AnteTestSuite) []sdk.Msg { + suite.chainB.GetSimApp().IBCMockModule.IBCApp.OnRecvPacket = func( + ctx sdk.Context, packet channeltypes.Packet, relayer sdk.AccAddress, + ) exported.Acknowledgement { + panic(fmt.Errorf("failed OnRecvPacket mock callback")) + } + + // the RecvPacket message has not been submitted to the chain yet, so it will succeed + return []sdk.Msg{suite.createRecvPacketMessage(false)} + }, + nil, + }, + { + "no success on one redundant RecvPacket message", + func(suite *AnteTestSuite) []sdk.Msg { + return []sdk.Msg{suite.createRecvPacketMessage(true)} + }, + channeltypes.ErrRedundantTx, + }, + } + + for _, tc := range testCases { + tc := tc + + suite.Run(tc.name, func() { + // reset suite + suite.SetupTest() + + k := suite.chainB.App.GetIBCKeeper() + decorator := ante.NewRedundantRelayDecorator(k) + + msgs := tc.malleate(suite) + + deliverCtx := suite.chainB.GetContext().WithIsCheckTx(false) + reCheckCtx := suite.chainB.GetContext().WithIsReCheckTx(true) + + // create multimsg tx + txBuilder := suite.chainB.TxConfig.NewTxBuilder() + err := txBuilder.SetMsgs(msgs...) + suite.Require().NoError(err) + tx := txBuilder.GetTx() + + next := func(ctx sdk.Context, tx sdk.Tx, simulate bool) (newCtx sdk.Context, err error) { return ctx, nil } + + _, err = decorator.AnteHandle(deliverCtx, tx, false, next) + suite.Require().NoError(err, "antedecorator should not error on DeliverTx") + + _, err = decorator.AnteHandle(reCheckCtx, tx, false, next) + if tc.expError == nil { + suite.Require().NoError(err, "non-strict decorator did not pass as expected") + } else { + suite.Require().ErrorIs(err, tc.expError, "non-strict antehandler did not return error as expected") + } + }) + } +} From 7e7017937079d9523e485d4881df0908c56ebee6 Mon Sep 17 00:00:00 2001 From: srdtrk <59252793+srdtrk@users.noreply.github.com> Date: Tue, 21 May 2024 17:48:04 +0800 Subject: [PATCH 56/62] ci: added paths-ignore to e2e-wasm (#6340) --- .github/workflows/e2e-wasm.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/e2e-wasm.yaml b/.github/workflows/e2e-wasm.yaml index c6cd042584d..fd030761eae 100644 --- a/.github/workflows/e2e-wasm.yaml +++ b/.github/workflows/e2e-wasm.yaml @@ -16,7 +16,10 @@ on: - synchronize # trigger workflow if PR is marked ready for review. - ready_for_review - + paths-ignore: + - 'docs/**' + - '**.md' + - 'LICENSE' jobs: # determine-image-tag will either output the PR number e.g. pr-1234 or the string main. From 074d341e59346e3d1fa906aa57e590cfb52949ca Mon Sep 17 00:00:00 2001 From: srdtrk <59252793+srdtrk@users.noreply.github.com> Date: Tue, 21 May 2024 21:37:22 +0800 Subject: [PATCH 57/62] docs: added a version matrix to callbacks and 08-wasm (#6339) * docs: 08-wasm README.md * docs: added readme for callbacks * docs: added callbacks middleware version matrix to the docs * docs: added 08-wasm versin matrix to docs * imp: added to readme --- .../04-wasm/03-integration.md | 16 ++++++++++ .../02-callbacks/02-integration.md | 15 ++++++++++ .../04-wasm/03-integration.md | 10 +++++++ .../02-callbacks/02-integration.md | 10 +++++++ .../04-wasm/03-integration.md | 10 +++++++ .../02-callbacks/02-integration.md | 10 +++++++ modules/apps/callbacks/README.md | 19 ++++++++++++ modules/light-clients/08-wasm/README.md | 29 +++++++++++++++++++ 8 files changed, 119 insertions(+) create mode 100644 modules/apps/callbacks/README.md create mode 100644 modules/light-clients/08-wasm/README.md diff --git a/docs/docs/03-light-clients/04-wasm/03-integration.md b/docs/docs/03-light-clients/04-wasm/03-integration.md index 33fd75fad9d..7d6d4541430 100644 --- a/docs/docs/03-light-clients/04-wasm/03-integration.md +++ b/docs/docs/03-light-clients/04-wasm/03-integration.md @@ -9,6 +9,22 @@ slug: /ibc/light-clients/wasm/integration Learn how to integrate the `08-wasm` module in a chain binary and about the recommended approaches depending on whether the [`x/wasm` module](https://github.com/CosmWasm/wasmd/tree/main/x/wasm) is already used in the chain. The following document only applies for Cosmos SDK chains. +## Importing the `08-wasm` module + +`08-wasm` has no stable releases yet. To use it, you need to import the git commit that contains the module with the compatible versions of `ibc-go` and `wasmvm`. To do so, run the following command with the desired git commit in your project: + +```sh +go get github.com/cosmos/ibc-go/modules/light-clients/08-wasm@7ee2a2452b79d0bc8316dc622a1243afa058e8cb +``` + +The following table shows the compatibility matrix between the `08-wasm` module, `ibc-go`, and `wasmvm`. + +| **Version** | **Git commit to import** | +|:--------------------------------:|:----------------------------------------:| +| `v0.1.1+ibc-go-v7.3-wasmvm-v1.5` | 7ee2a2452b79d0bc8316dc622a1243afa058e8cb | +| `v0.1.0+ibc-go-v8.0-wasmvm-v1.5` | 57fcdb9a9a9db9b206f7df2f955866dc4e10fef4 | +| `v0.1.0+ibc-go-v7.3-wasmvm-v1.5` | b306e7a706e1f84a5e11af0540987bd68de9bae5 | + ## `app.go` setup The sample code below shows the relevant integration points in `app.go` required to setup the `08-wasm` module in a chain binary. Since `08-wasm` is a light client module itself, please check out as well the section [Integrating light clients](../../01-ibc/02-integration.md#integrating-light-clients) for more information: diff --git a/docs/docs/04-middleware/02-callbacks/02-integration.md b/docs/docs/04-middleware/02-callbacks/02-integration.md index 404a4f22d38..d0ec7e03e1a 100644 --- a/docs/docs/04-middleware/02-callbacks/02-integration.md +++ b/docs/docs/04-middleware/02-callbacks/02-integration.md @@ -19,6 +19,21 @@ The callbacks middleware is a minimal and stateless implementation of the IBC mi The callbacks middleware, as the name suggests, plays the role of an IBC middleware and as such must be configured by chain developers to route and handle IBC messages correctly. For Cosmos SDK chains this setup is done via the `app/app.go` file, where modules are constructed and configured in order to bootstrap the blockchain application. +## Importing the callbacks middleware + +The callbacks middleware has no stable releases yet. To use it, you need to import the git commit that contains the module with the compatible version of `ibc-go`. To do so, run the following command with the desired git commit in your project: + +```sh +go get github.com/cosmos/ibc-go/modules/apps/callbacks@342c00b0f8bd7feeebf0780f208a820b0faf90d1 +``` + +The following table shows the compatibility matrix between the callbacks middleware, `ibc-go`. + +| **Version** | **Git commit to import** | +|:--------------------:|:----------------------------------------:| +| `v0.2.0+ibc-go-v8.0` | 342c00b0f8bd7feeebf0780f208a820b0faf90d1 | +| `v0.1.0+ibc-go-v7.3` | 17cf1260a9cdc5292512acc9bcf6336ef0d917f4 | + ## Configuring an application stack with the callbacks middleware As mentioned in [IBC middleware development](../../01-ibc/04-middleware/02-develop.md) an application stack may be composed of many or no middlewares that nest a base application. diff --git a/docs/versioned_docs/version-v7.5.x/03-light-clients/04-wasm/03-integration.md b/docs/versioned_docs/version-v7.5.x/03-light-clients/04-wasm/03-integration.md index 5e1246a4594..f3388627904 100644 --- a/docs/versioned_docs/version-v7.5.x/03-light-clients/04-wasm/03-integration.md +++ b/docs/versioned_docs/version-v7.5.x/03-light-clients/04-wasm/03-integration.md @@ -9,6 +9,16 @@ slug: /ibc/light-clients/wasm/integration Learn how to integrate the `08-wasm` module in a chain binary and about the recommended approaches depending on whether the [`x/wasm` module](https://github.com/CosmWasm/wasmd/tree/main/x/wasm) is already used in the chain. The following document only applies for Cosmos SDK chains. +## Importing the `08-wasm` module + +`08-wasm` has no stable releases yet. To use it, you need to import the git commit that contains the module with the compatible versions of `ibc-go` and `wasmvm`. To do so, run the following command with the desired git commit in your project: + +```sh +go get github.com/cosmos/ibc-go/modules/light-clients/08-wasm@7ee2a2452b79d0bc8316dc622a1243afa058e8cb +``` + +You can find the version matrix in [here](../../../../docs/03-light-clients/04-wasm/03-integration.md#importing-the-08-wasm-module). + ## `app.go` setup The sample code below shows the relevant integration points in `app.go` required to setup the `08-wasm` module in a chain binary. Since `08-wasm` is a light client module itself, please check out as well the section [Integrating light clients](../../01-ibc/02-integration.md#integrating-light-clients) for more information: diff --git a/docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/02-integration.md b/docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/02-integration.md index 57f484841d0..85b2a3b5889 100644 --- a/docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/02-integration.md +++ b/docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/02-integration.md @@ -19,6 +19,16 @@ The callbacks middleware is a minimal and stateless implementation of the IBC mi The callbacks middleware, as the name suggests, plays the role of an IBC middleware and as such must be configured by chain developers to route and handle IBC messages correctly. For Cosmos SDK chains this setup is done via the `app/app.go` file, where modules are constructed and configured in order to bootstrap the blockchain application. +## Importing the callbacks middleware + +The callbacks middleware has no stable releases yet. To use it, you need to import the git commit that contains the module with the compatible version of `ibc-go`. To do so, run the following command with the desired git commit in your project: + +```sh +go get github.com/cosmos/ibc-go/modules/apps/callbacks@17cf1260a9cdc5292512acc9bcf6336ef0d917f4 +``` + +You can find the version matrix in [here](../../../../docs/04-middleware/02-callbacks/02-integration.md#importing-the-callbacks-middleware). + ## Configuring an application stack with the callbacks middleware As mentioned in [IBC middleware development](../../01-ibc/04-middleware/01-develop.md) an application stack may be composed of many or no middlewares that nest a base application. diff --git a/docs/versioned_docs/version-v8.3.x/03-light-clients/04-wasm/03-integration.md b/docs/versioned_docs/version-v8.3.x/03-light-clients/04-wasm/03-integration.md index b1c333660c8..74bc33452de 100644 --- a/docs/versioned_docs/version-v8.3.x/03-light-clients/04-wasm/03-integration.md +++ b/docs/versioned_docs/version-v8.3.x/03-light-clients/04-wasm/03-integration.md @@ -9,6 +9,16 @@ slug: /ibc/light-clients/wasm/integration Learn how to integrate the `08-wasm` module in a chain binary and about the recommended approaches depending on whether the [`x/wasm` module](https://github.com/CosmWasm/wasmd/tree/main/x/wasm) is already used in the chain. The following document only applies for Cosmos SDK chains. +## Importing the `08-wasm` module + +`08-wasm` has no stable releases yet. To use it, you need to import the git commit that contains the module with the compatible versions of `ibc-go` and `wasmvm`. To do so, run the following command with the desired git commit in your project: + +```sh +go get github.com/cosmos/ibc-go/modules/light-clients/08-wasm@57fcdb9a9a9db9b206f7df2f955866dc4e10fef4 +``` + +You can find the version matrix in [here](../../../../docs/03-light-clients/04-wasm/03-integration.md#importing-the-08-wasm-module). + ## `app.go` setup The sample code below shows the relevant integration points in `app.go` required to setup the `08-wasm` module in a chain binary. Since `08-wasm` is a light client module itself, please check out as well the section [Integrating light clients](../../01-ibc/02-integration.md#integrating-light-clients) for more information: diff --git a/docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/02-integration.md b/docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/02-integration.md index 404a4f22d38..bcc2a2502eb 100644 --- a/docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/02-integration.md +++ b/docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/02-integration.md @@ -19,6 +19,16 @@ The callbacks middleware is a minimal and stateless implementation of the IBC mi The callbacks middleware, as the name suggests, plays the role of an IBC middleware and as such must be configured by chain developers to route and handle IBC messages correctly. For Cosmos SDK chains this setup is done via the `app/app.go` file, where modules are constructed and configured in order to bootstrap the blockchain application. +## Importing the callbacks middleware + +The callbacks middleware has no stable releases yet. To use it, you need to import the git commit that contains the module with the compatible version of `ibc-go`. To do so, run the following command with the desired git commit in your project: + +```sh +go get github.com/cosmos/ibc-go/modules/apps/callbacks@342c00b0f8bd7feeebf0780f208a820b0faf90d1 +``` + +You can find the version matrix in [here](../../../../docs/04-middleware/02-callbacks/02-integration.md#importing-the-callbacks-middleware). + ## Configuring an application stack with the callbacks middleware As mentioned in [IBC middleware development](../../01-ibc/04-middleware/02-develop.md) an application stack may be composed of many or no middlewares that nest a base application. diff --git a/modules/apps/callbacks/README.md b/modules/apps/callbacks/README.md new file mode 100644 index 00000000000..002fb414e8c --- /dev/null +++ b/modules/apps/callbacks/README.md @@ -0,0 +1,19 @@ +# Callbacks Middleware + +IBC was designed with callbacks between core IBC and IBC applications. IBC apps would send a packet to core IBC, and receive a callback on every step of that packet's lifecycle. This allows IBC applications to be built on top of core IBC, and to be able to execute custom logic on packet lifecycle events (e.g. unescrow tokens for ICS-20). + +This setup worked well for off-chain users interacting with IBC applications. However, we are now seeing the desire for secondary applications (e.g. smart contracts, modules) to call into IBC apps as part of their state machine logic and then do some actions on packet lifecycle events. + +The Callbacks Middleware allows for this functionality by allowing the packets of the underlying IBC applications to register callbacks to secondary applications for lifecycle events. These callbacks are then executed by the Callbacks Middleware when the corresponding packet lifecycle event occurs. + +After much discussion, the design was expanded to [an ADR](/architecture/adr-008-app-caller-cbs), and the Callbacks Middleware is an implementation of that ADR. + +## Version Matrix + +The callbacks middleware has no stable releases yet. To use it, you need to import the git commit that contains the module with the compatible version of `ibc-go`. To do so, run the following command with the desired git commit in your project: + +```sh +go get github.com/cosmos/ibc-go/modules/apps/callbacks@342c00b0f8bd7feeebf0780f208a820b0faf90d1 +``` + +You can find the version matrix for the callbacks middleware [here](https://github.com/cosmos/ibc-go/blob/main/docs/docs/04-middleware/02-callbacks/02-integration.md#importing-the-callbacks-middleware) diff --git a/modules/light-clients/08-wasm/README.md b/modules/light-clients/08-wasm/README.md new file mode 100644 index 00000000000..b9cdf984b2e --- /dev/null +++ b/modules/light-clients/08-wasm/README.md @@ -0,0 +1,29 @@ +# `08-wasm` + +## Overview + +Learn about the `08-wasm` light client proxy module. + +### Context + +Traditionally, light clients used by ibc-go have been implemented only in Go, and since ibc-go v7 (with the release of the 02-client refactor), they are [first-class Cosmos SDK modules](/architecture/adr-010-light-clients-as-sdk-modules). This means that updating existing light client implementations or adding support for new light clients is a multi-step, time-consuming process involving on-chain governance: it is necessary to modify the codebase of ibc-go (if the light client is part of its codebase), re-build chains' binaries, pass a governance proposal and have validators upgrade their nodes. + +### Motivation + +To break the limitation of being able to write light client implementations only in Go, the `08-wasm` adds support to run light clients written in a Wasm-compilable language. The light client byte code implements the entry points of a [CosmWasm](https://docs.cosmwasm.com/docs/) smart contract, and runs inside a Wasm VM. The `08-wasm` module exposes a proxy light client interface that routes incoming messages to the appropriate handler function, inside the Wasm VM, for execution. + +Adding a new light client to a chain is just as simple as submitting a governance proposal with the message that stores the byte code of the light client contract. No coordinated upgrade is needed. When the governance proposal passes and the message is executed, the contract is ready to be instantiated upon receiving a relayer-submitted `MsgCreateClient`. The process of creating a Wasm light client is the same as with a regular light client implemented in Go. + +### Use cases + +- Development of light clients for non-Cosmos ecosystem chains: state machines in other ecosystems are, in many cases, implemented in Rust, and thus there are probably libraries used in their light client implementations for which there is no equivalent in Go. This makes the development of a light client in Go very difficult, but relatively simple to do it in Rust. Therefore, writing a CosmWasm smart contract in Rust that implements the light client algorithm becomes a lower effort. + +## Version Matrix + +`08-wasm` has no stable releases yet. To use it, you need to import the git commit that contains the module with the compatible versions of `ibc-go` and `wasmvm`. To do so, run the following command with the desired git commit in your project: + +```sh +go get github.com/cosmos/ibc-go/modules/light-clients/08-wasm@7ee2a2452b79d0bc8316dc622a1243afa058e8cb +``` + +You can find the compatibility matrix between the `08-wasm` module, `ibc-go`, and `wasmvm` in [here](https://github.com/cosmos/ibc-go/blob/main/docs/docs/03-light-clients/04-wasm/03-integration.md#importing-the-08-wasm-module). From 5069ab673b9cedc88916debaada7fdc2f293e513 Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Date: Tue, 21 May 2024 22:20:24 +0200 Subject: [PATCH 58/62] chore: update compatibility tests after v8.3.0 release (#6322) --- .../main/ica-chain-a.json | 1 + .../main/ica-chain-b.json | 1 + .../main/ica-channel-upgrade-chain-a.json | 1 + .../main/ica-channel-upgrade-chain-b.json | 1 + .../main/ica-gov-chain-a.json | 1 + .../main/ica-gov-chain-b.json | 1 + .../main/ica-groups-chain-a.json | 1 + .../main/ica-groups-chain-b.json | 1 + .../main/ica-unordered-channel-chain-a.json | 1 + .../main/ica-unordered-channel-chain-b.json | 1 + .../main/incentivized-ica-chain-a.json | 1 + .../main/incentivized-ica-chain-b.json | 1 + .../main/incentivized-transfer-chain-a.json | 1 + .../main/incentivized-transfer-chain-b.json | 1 + .../main/localhost-ica-chain-a.json | 1 + .../main/localhost-ica-chain-b.json | 1 + .../main/localhost-transfer-chain-a.json | 1 + .../main/localhost-transfer-chain-b.json | 1 + .../main/transfer-authz-chain-a.json | 1 + .../main/transfer-authz-chain-b.json | 1 + .../main/transfer-chain-a.json | 1 + .../main/transfer-chain-b.json | 1 + .../transfer-channel-upgrade-chain-a.json | 1 + .../transfer-channel-upgrade-chain-b.json | 1 + .../release-v7.4.x/ica-chain-a.json | 1 + .../release-v7.4.x/ica-chain-b.json | 1 + .../release-v7.4.x/ica-gov-chain-a.json | 1 + .../release-v7.4.x/ica-gov-chain-b.json | 1 + .../release-v7.4.x/ica-groups-chain-a.json | 1 + .../release-v7.4.x/ica-groups-chain-b.json | 1 + .../incentivized-ica-chain-a.json | 1 + .../incentivized-ica-chain-b.json | 1 + .../incentivized-transfer-chain-a.json | 1 + .../incentivized-transfer-chain-b.json | 1 + .../release-v7.4.x/localhost-ica-chain-a.json | 1 + .../localhost-transfer-chain-a.json | 1 + .../transfer-authz-chain-a.json | 1 + .../transfer-authz-chain-b.json | 1 + .../release-v7.4.x/transfer-chain-a.json | 1 + .../release-v7.4.x/transfer-chain-b.json | 1 + .../release-v7.5.x/ica-chain-a.json | 1 + .../release-v7.5.x/ica-chain-b.json | 1 + .../release-v7.5.x/ica-gov-chain-a.json | 1 + .../release-v7.5.x/ica-gov-chain-b.json | 1 + .../release-v7.5.x/ica-groups-chain-a.json | 1 + .../release-v7.5.x/ica-groups-chain-b.json | 1 + .../release-v7.5.x/ica-queries-chain-a.json | 1 + .../release-v7.5.x/ica-queries-chain-b.json | 1 + .../ica-unordered-channel-chain-a.json | 1 + .../ica-unordered-channel-chain-b.json | 1 + .../incentivized-ica-chain-a.json | 1 + .../incentivized-ica-chain-b.json | 1 + .../incentivized-transfer-chain-a.json | 1 + .../incentivized-transfer-chain-b.json | 1 + .../release-v7.5.x/localhost-ica-chain-a.json | 1 + .../localhost-transfer-chain-a.json | 1 + .../transfer-authz-chain-a.json | 1 + .../transfer-authz-chain-b.json | 1 + .../release-v7.5.x/transfer-chain-a.json | 1 + .../release-v7.5.x/transfer-chain-b.json | 1 + .../release-v8.2.x/ica-chain-a.json | 1 + .../release-v8.2.x/ica-chain-b.json | 1 + .../ica-channel-upgrade-chain-a.json | 1 + .../ica-channel-upgrade-chain-b.json | 1 + .../release-v8.2.x/ica-gov-chain-a.json | 1 + .../release-v8.2.x/ica-gov-chain-b.json | 1 + .../release-v8.2.x/ica-groups-chain-a.json | 1 + .../release-v8.2.x/ica-groups-chain-b.json | 1 + .../ica-unordered-channel-chain-a.json | 1 + .../ica-unordered-channel-chain-b.json | 1 + .../incentivized-ica-chain-a.json | 1 + .../incentivized-ica-chain-b.json | 1 + .../incentivized-transfer-chain-a.json | 1 + .../incentivized-transfer-chain-b.json | 1 + .../release-v8.2.x/localhost-ica-chain-a.json | 1 + .../localhost-transfer-chain-a.json | 1 + .../transfer-authz-chain-a.json | 1 + .../transfer-authz-chain-b.json | 1 + .../release-v8.2.x/transfer-chain-a.json | 1 + .../release-v8.2.x/transfer-chain-b.json | 1 + .../transfer-channel-upgrade-chain-a.json | 1 + .../transfer-channel-upgrade-chain-b.json | 1 + .../release-v8.3.x/ica-chain-a.json | 1 + .../release-v8.3.x/ica-chain-b.json | 1 + .../ica-channel-upgrade-chain-a.json | 1 + .../ica-channel-upgrade-chain-b.json | 1 + .../release-v8.3.x/ica-gov-chain-a.json | 1 + .../release-v8.3.x/ica-gov-chain-b.json | 1 + .../release-v8.3.x/ica-groups-chain-a.json | 1 + .../release-v8.3.x/ica-groups-chain-b.json | 1 + .../release-v8.3.x/ica-queries-chain-a.json | 1 + .../release-v8.3.x/ica-queries-chain-b.json | 1 + .../ica-unordered-channel-chain-a.json | 1 + .../ica-unordered-channel-chain-b.json | 1 + .../incentivized-ica-chain-a.json | 1 + .../incentivized-ica-chain-b.json | 1 + .../incentivized-transfer-chain-a.json | 1 + .../incentivized-transfer-chain-b.json | 1 + .../release-v8.3.x/localhost-ica-chain-a.json | 1 + .../localhost-transfer-chain-a.json | 1 + .../transfer-authz-chain-a.json | 1 + .../transfer-authz-chain-b.json | 1 + .../release-v8.3.x/transfer-chain-a.json | 1 + .../release-v8.3.x/transfer-chain-b.json | 1 + .../transfer-channel-upgrade-chain-a.json | 1 + .../transfer-channel-upgrade-chain-b.json | 1 + .github/workflows/e2e-manual-simd.yaml | 4 +++- CHANGELOG.md | 22 ++++++++++++++++++- RELEASES.md | 2 ++ 109 files changed, 132 insertions(+), 2 deletions(-) diff --git a/.github/compatibility-test-matrices/main/ica-chain-a.json b/.github/compatibility-test-matrices/main/ica-chain-a.json index 2e4b8d6e271..6f45180d1d7 100644 --- a/.github/compatibility-test-matrices/main/ica-chain-a.json +++ b/.github/compatibility-test-matrices/main/ica-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "main", + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/main/ica-chain-b.json b/.github/compatibility-test-matrices/main/ica-chain-b.json index 4b23f47b3f8..6a89f79a392 100644 --- a/.github/compatibility-test-matrices/main/ica-chain-b.json +++ b/.github/compatibility-test-matrices/main/ica-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "main", + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/main/ica-channel-upgrade-chain-a.json b/.github/compatibility-test-matrices/main/ica-channel-upgrade-chain-a.json index 55117258a89..551c34419da 100644 --- a/.github/compatibility-test-matrices/main/ica-channel-upgrade-chain-a.json +++ b/.github/compatibility-test-matrices/main/ica-channel-upgrade-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "main", + "v8.3.0", "v8.2.0" ], "entrypoint": [ diff --git a/.github/compatibility-test-matrices/main/ica-channel-upgrade-chain-b.json b/.github/compatibility-test-matrices/main/ica-channel-upgrade-chain-b.json index ef21e2854dd..52cab2f11ac 100644 --- a/.github/compatibility-test-matrices/main/ica-channel-upgrade-chain-b.json +++ b/.github/compatibility-test-matrices/main/ica-channel-upgrade-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "main", + "v8.3.0", "v8.2.0" ], "chain-b": [ diff --git a/.github/compatibility-test-matrices/main/ica-gov-chain-a.json b/.github/compatibility-test-matrices/main/ica-gov-chain-a.json index 62fa689d7f6..7486c16f8a6 100644 --- a/.github/compatibility-test-matrices/main/ica-gov-chain-a.json +++ b/.github/compatibility-test-matrices/main/ica-gov-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "main", + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/main/ica-gov-chain-b.json b/.github/compatibility-test-matrices/main/ica-gov-chain-b.json index f3a0950a8ad..fd80f7f575a 100644 --- a/.github/compatibility-test-matrices/main/ica-gov-chain-b.json +++ b/.github/compatibility-test-matrices/main/ica-gov-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "main", + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/main/ica-groups-chain-a.json b/.github/compatibility-test-matrices/main/ica-groups-chain-a.json index 359560d9297..865bc9565cb 100644 --- a/.github/compatibility-test-matrices/main/ica-groups-chain-a.json +++ b/.github/compatibility-test-matrices/main/ica-groups-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "main", + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/main/ica-groups-chain-b.json b/.github/compatibility-test-matrices/main/ica-groups-chain-b.json index c902bfb6f72..67386347420 100644 --- a/.github/compatibility-test-matrices/main/ica-groups-chain-b.json +++ b/.github/compatibility-test-matrices/main/ica-groups-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "main", + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/main/ica-unordered-channel-chain-a.json b/.github/compatibility-test-matrices/main/ica-unordered-channel-chain-a.json index 66b51f645ea..9d5a1e7e675 100644 --- a/.github/compatibility-test-matrices/main/ica-unordered-channel-chain-a.json +++ b/.github/compatibility-test-matrices/main/ica-unordered-channel-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "main", + "v8.3.0", "v8.2.0" ], "entrypoint": [ diff --git a/.github/compatibility-test-matrices/main/ica-unordered-channel-chain-b.json b/.github/compatibility-test-matrices/main/ica-unordered-channel-chain-b.json index d3cda9cf973..279760bfb23 100644 --- a/.github/compatibility-test-matrices/main/ica-unordered-channel-chain-b.json +++ b/.github/compatibility-test-matrices/main/ica-unordered-channel-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "main", + "v8.3.0", "v8.2.0" ], "chain-b": [ diff --git a/.github/compatibility-test-matrices/main/incentivized-ica-chain-a.json b/.github/compatibility-test-matrices/main/incentivized-ica-chain-a.json index 6696832953d..0be0c7a39f3 100644 --- a/.github/compatibility-test-matrices/main/incentivized-ica-chain-a.json +++ b/.github/compatibility-test-matrices/main/incentivized-ica-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "main", + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/main/incentivized-ica-chain-b.json b/.github/compatibility-test-matrices/main/incentivized-ica-chain-b.json index 95e368039e9..2b4836d72bd 100644 --- a/.github/compatibility-test-matrices/main/incentivized-ica-chain-b.json +++ b/.github/compatibility-test-matrices/main/incentivized-ica-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "main", + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/main/incentivized-transfer-chain-a.json b/.github/compatibility-test-matrices/main/incentivized-transfer-chain-a.json index c704a6f68e9..69bbf8af9c5 100644 --- a/.github/compatibility-test-matrices/main/incentivized-transfer-chain-a.json +++ b/.github/compatibility-test-matrices/main/incentivized-transfer-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "main", + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/main/incentivized-transfer-chain-b.json b/.github/compatibility-test-matrices/main/incentivized-transfer-chain-b.json index 11f61cfbbac..ca6ca66cac7 100644 --- a/.github/compatibility-test-matrices/main/incentivized-transfer-chain-b.json +++ b/.github/compatibility-test-matrices/main/incentivized-transfer-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "main", + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/main/localhost-ica-chain-a.json b/.github/compatibility-test-matrices/main/localhost-ica-chain-a.json index aa4d12bc5c1..3bfdc301413 100644 --- a/.github/compatibility-test-matrices/main/localhost-ica-chain-a.json +++ b/.github/compatibility-test-matrices/main/localhost-ica-chain-a.json @@ -1,6 +1,7 @@ { "chain-a": [ "main", + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0" diff --git a/.github/compatibility-test-matrices/main/localhost-ica-chain-b.json b/.github/compatibility-test-matrices/main/localhost-ica-chain-b.json index ccfd292c186..839595aa257 100644 --- a/.github/compatibility-test-matrices/main/localhost-ica-chain-b.json +++ b/.github/compatibility-test-matrices/main/localhost-ica-chain-b.json @@ -4,6 +4,7 @@ ], "chain-b": [ "main", + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0" diff --git a/.github/compatibility-test-matrices/main/localhost-transfer-chain-a.json b/.github/compatibility-test-matrices/main/localhost-transfer-chain-a.json index 264cfb02a8f..61610647bd9 100644 --- a/.github/compatibility-test-matrices/main/localhost-transfer-chain-a.json +++ b/.github/compatibility-test-matrices/main/localhost-transfer-chain-a.json @@ -1,6 +1,7 @@ { "chain-a": [ "main", + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0" diff --git a/.github/compatibility-test-matrices/main/localhost-transfer-chain-b.json b/.github/compatibility-test-matrices/main/localhost-transfer-chain-b.json index 72747eb558e..a1e13c7f379 100644 --- a/.github/compatibility-test-matrices/main/localhost-transfer-chain-b.json +++ b/.github/compatibility-test-matrices/main/localhost-transfer-chain-b.json @@ -4,6 +4,7 @@ ], "chain-b": [ "main", + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0" diff --git a/.github/compatibility-test-matrices/main/transfer-authz-chain-a.json b/.github/compatibility-test-matrices/main/transfer-authz-chain-a.json index 84ba42aa585..1fd202b014e 100644 --- a/.github/compatibility-test-matrices/main/transfer-authz-chain-a.json +++ b/.github/compatibility-test-matrices/main/transfer-authz-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "main", + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0" diff --git a/.github/compatibility-test-matrices/main/transfer-authz-chain-b.json b/.github/compatibility-test-matrices/main/transfer-authz-chain-b.json index 953af8a6679..a703658d00c 100644 --- a/.github/compatibility-test-matrices/main/transfer-authz-chain-b.json +++ b/.github/compatibility-test-matrices/main/transfer-authz-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "main", + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0" diff --git a/.github/compatibility-test-matrices/main/transfer-chain-a.json b/.github/compatibility-test-matrices/main/transfer-chain-a.json index 5f759dd4e98..2d6643dc68d 100644 --- a/.github/compatibility-test-matrices/main/transfer-chain-a.json +++ b/.github/compatibility-test-matrices/main/transfer-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "main", + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/main/transfer-chain-b.json b/.github/compatibility-test-matrices/main/transfer-chain-b.json index 7dc6ad968c7..84ff5e70905 100644 --- a/.github/compatibility-test-matrices/main/transfer-chain-b.json +++ b/.github/compatibility-test-matrices/main/transfer-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "main", + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/main/transfer-channel-upgrade-chain-a.json b/.github/compatibility-test-matrices/main/transfer-channel-upgrade-chain-a.json index 967f2dfe965..664f0383ba8 100644 --- a/.github/compatibility-test-matrices/main/transfer-channel-upgrade-chain-a.json +++ b/.github/compatibility-test-matrices/main/transfer-channel-upgrade-chain-a.json @@ -4,6 +4,7 @@ ], "chain-b": [ "main", + "v8.3.0", "v8.2.0" ], "entrypoint": [ diff --git a/.github/compatibility-test-matrices/main/transfer-channel-upgrade-chain-b.json b/.github/compatibility-test-matrices/main/transfer-channel-upgrade-chain-b.json index b2eb76dc12c..c0e18b16fcc 100644 --- a/.github/compatibility-test-matrices/main/transfer-channel-upgrade-chain-b.json +++ b/.github/compatibility-test-matrices/main/transfer-channel-upgrade-chain-b.json @@ -1,6 +1,7 @@ { "chain-a": [ "main", + "v8.3.0", "v8.2.0" ], "chain-b": [ diff --git a/.github/compatibility-test-matrices/release-v7.4.x/ica-chain-a.json b/.github/compatibility-test-matrices/release-v7.4.x/ica-chain-a.json index 2e79fbfb7a8..f09bb24fc44 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/ica-chain-a.json @@ -3,6 +3,7 @@ "release-v7.4.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.4.x/ica-chain-b.json b/.github/compatibility-test-matrices/release-v7.4.x/ica-chain-b.json index a4f5ba6003a..c863ea0712a 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/ica-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/ica-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.4.x/ica-gov-chain-a.json b/.github/compatibility-test-matrices/release-v7.4.x/ica-gov-chain-a.json index c3713a19869..7dd5eeb843d 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/ica-gov-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/ica-gov-chain-a.json @@ -3,6 +3,7 @@ "release-v7.4.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.4.x/ica-gov-chain-b.json b/.github/compatibility-test-matrices/release-v7.4.x/ica-gov-chain-b.json index aae63198dfd..b8a9a9d3570 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/ica-gov-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/ica-gov-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.4.x/ica-groups-chain-a.json b/.github/compatibility-test-matrices/release-v7.4.x/ica-groups-chain-a.json index 3a343d8dba9..2600d445330 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/ica-groups-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/ica-groups-chain-a.json @@ -3,6 +3,7 @@ "release-v7.4.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.4.x/ica-groups-chain-b.json b/.github/compatibility-test-matrices/release-v7.4.x/ica-groups-chain-b.json index 696d09a60fd..17dc807d75f 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/ica-groups-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/ica-groups-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.4.x/incentivized-ica-chain-a.json b/.github/compatibility-test-matrices/release-v7.4.x/incentivized-ica-chain-a.json index d22db4e376d..dfdae0bef3b 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/incentivized-ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/incentivized-ica-chain-a.json @@ -3,6 +3,7 @@ "release-v7.4.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.4.x/incentivized-ica-chain-b.json b/.github/compatibility-test-matrices/release-v7.4.x/incentivized-ica-chain-b.json index f511c98c7f2..7b61d245c4c 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/incentivized-ica-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/incentivized-ica-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.4.x/incentivized-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v7.4.x/incentivized-transfer-chain-a.json index fdda0a38153..120904e937a 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/incentivized-transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/incentivized-transfer-chain-a.json @@ -3,6 +3,7 @@ "release-v7.4.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.4.x/incentivized-transfer-chain-b.json b/.github/compatibility-test-matrices/release-v7.4.x/incentivized-transfer-chain-b.json index 39bc990af43..bc855beeae7 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/incentivized-transfer-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/incentivized-transfer-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.4.x/localhost-ica-chain-a.json b/.github/compatibility-test-matrices/release-v7.4.x/localhost-ica-chain-a.json index 4059640ddd2..bb4c4aed56c 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/localhost-ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/localhost-ica-chain-a.json @@ -3,6 +3,7 @@ "release-v7.4.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.4.x/localhost-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v7.4.x/localhost-transfer-chain-a.json index f27b4ac403e..2744392355a 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/localhost-transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/localhost-transfer-chain-a.json @@ -3,6 +3,7 @@ "release-v7.4.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.4.x/transfer-authz-chain-a.json b/.github/compatibility-test-matrices/release-v7.4.x/transfer-authz-chain-a.json index cb94296877e..e63e8a7b607 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/transfer-authz-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/transfer-authz-chain-a.json @@ -3,6 +3,7 @@ "release-v7.4.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.4.x/transfer-authz-chain-b.json b/.github/compatibility-test-matrices/release-v7.4.x/transfer-authz-chain-b.json index 6d9fc088d30..58c8cc4d715 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/transfer-authz-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/transfer-authz-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.4.x/transfer-chain-a.json b/.github/compatibility-test-matrices/release-v7.4.x/transfer-chain-a.json index fbe390e2507..187a3dbaa2a 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/transfer-chain-a.json @@ -3,6 +3,7 @@ "release-v7.4.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.4.x/transfer-chain-b.json b/.github/compatibility-test-matrices/release-v7.4.x/transfer-chain-b.json index c2655811011..c5a15cded6e 100644 --- a/.github/compatibility-test-matrices/release-v7.4.x/transfer-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.4.x/transfer-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-chain-a.json index 831b79f650f..28f5a47b4f8 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-chain-a.json @@ -3,6 +3,7 @@ "release-v7.5.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-chain-b.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-chain-b.json index f6cc5bdb8d4..40adfb552c6 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/ica-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-gov-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-gov-chain-a.json index 712414b6859..21cdade8e72 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/ica-gov-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-gov-chain-a.json @@ -3,6 +3,7 @@ "release-v7.5.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-gov-chain-b.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-gov-chain-b.json index 0f8f28db6ee..f053b4d578d 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/ica-gov-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-gov-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-groups-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-groups-chain-a.json index 18419c31616..69166983d3b 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/ica-groups-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-groups-chain-a.json @@ -3,6 +3,7 @@ "release-v7.5.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-groups-chain-b.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-groups-chain-b.json index 6dd4abe50d5..8938641dd08 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/ica-groups-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-groups-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-queries-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-queries-chain-a.json index 9af2187b44f..044bacf2c9a 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/ica-queries-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-queries-chain-a.json @@ -3,6 +3,7 @@ "release-v7.5.x" ], "chain-b": [ + "v7.5.0", "release-v7.5.x" ], "entrypoint": [ diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-queries-chain-b.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-queries-chain-b.json index 9af2187b44f..e47d03996a3 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/ica-queries-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-queries-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v7.5.0", "release-v7.5.x" ], "chain-b": [ diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-unordered-channel-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-unordered-channel-chain-a.json index 628b48e6691..ee89cb349d1 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/ica-unordered-channel-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-unordered-channel-chain-a.json @@ -3,6 +3,7 @@ "release-v7.5.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "release-v7.5.x" ], diff --git a/.github/compatibility-test-matrices/release-v7.5.x/ica-unordered-channel-chain-b.json b/.github/compatibility-test-matrices/release-v7.5.x/ica-unordered-channel-chain-b.json index b9322e61db4..c65d4efa747 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/ica-unordered-channel-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/ica-unordered-channel-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "release-v7.5.x" ], diff --git a/.github/compatibility-test-matrices/release-v7.5.x/incentivized-ica-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/incentivized-ica-chain-a.json index e0a332bfe29..7b45c7a6294 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/incentivized-ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/incentivized-ica-chain-a.json @@ -3,6 +3,7 @@ "release-v7.5.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.5.x/incentivized-ica-chain-b.json b/.github/compatibility-test-matrices/release-v7.5.x/incentivized-ica-chain-b.json index c7fc14afa2c..ab8278e2f3f 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/incentivized-ica-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/incentivized-ica-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.5.x/incentivized-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/incentivized-transfer-chain-a.json index c3350ab6076..2cb959608dc 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/incentivized-transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/incentivized-transfer-chain-a.json @@ -3,6 +3,7 @@ "release-v7.5.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.5.x/incentivized-transfer-chain-b.json b/.github/compatibility-test-matrices/release-v7.5.x/incentivized-transfer-chain-b.json index 8a70b96b9c7..57e60987b5f 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/incentivized-transfer-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/incentivized-transfer-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.5.x/localhost-ica-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/localhost-ica-chain-a.json index df83c5796e6..dbc954929c3 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/localhost-ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/localhost-ica-chain-a.json @@ -3,6 +3,7 @@ "release-v7.5.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.5.x/localhost-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/localhost-transfer-chain-a.json index 9c12c2af42a..c7d61755f98 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/localhost-transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/localhost-transfer-chain-a.json @@ -3,6 +3,7 @@ "release-v7.5.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.5.x/transfer-authz-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/transfer-authz-chain-a.json index 47d242d547f..646d14280ee 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/transfer-authz-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/transfer-authz-chain-a.json @@ -3,6 +3,7 @@ "release-v7.5.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.5.x/transfer-authz-chain-b.json b/.github/compatibility-test-matrices/release-v7.5.x/transfer-authz-chain-b.json index 438a7bebd06..58f1fe4968e 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/transfer-authz-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/transfer-authz-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.5.x/transfer-chain-a.json b/.github/compatibility-test-matrices/release-v7.5.x/transfer-chain-a.json index b6d2423ca23..74840e2206f 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/transfer-chain-a.json @@ -3,6 +3,7 @@ "release-v7.5.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v7.5.x/transfer-chain-b.json b/.github/compatibility-test-matrices/release-v7.5.x/transfer-chain-b.json index e7b793e9d24..76d03e46da7 100644 --- a/.github/compatibility-test-matrices/release-v7.5.x/transfer-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.5.x/transfer-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.2.x/ica-chain-a.json b/.github/compatibility-test-matrices/release-v8.2.x/ica-chain-a.json index 08c289a3f8b..9997e845e83 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/ica-chain-a.json @@ -3,6 +3,7 @@ "release-v8.2.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.2.x/ica-chain-b.json b/.github/compatibility-test-matrices/release-v8.2.x/ica-chain-b.json index a4de1853c20..f30678fd877 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/ica-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/ica-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.2.x/ica-channel-upgrade-chain-a.json b/.github/compatibility-test-matrices/release-v8.2.x/ica-channel-upgrade-chain-a.json index 6c1bbee0c73..da95757d7ba 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/ica-channel-upgrade-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/ica-channel-upgrade-chain-a.json @@ -3,6 +3,7 @@ "release-v8.2.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "release-v8.2.x" ], diff --git a/.github/compatibility-test-matrices/release-v8.2.x/ica-channel-upgrade-chain-b.json b/.github/compatibility-test-matrices/release-v8.2.x/ica-channel-upgrade-chain-b.json index ab914abf8a3..ab13dadcded 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/ica-channel-upgrade-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/ica-channel-upgrade-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "release-v8.2.x" ], diff --git a/.github/compatibility-test-matrices/release-v8.2.x/ica-gov-chain-a.json b/.github/compatibility-test-matrices/release-v8.2.x/ica-gov-chain-a.json index 08ac5d33487..0707f1ef7a2 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/ica-gov-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/ica-gov-chain-a.json @@ -3,6 +3,7 @@ "release-v8.2.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.2.x/ica-gov-chain-b.json b/.github/compatibility-test-matrices/release-v8.2.x/ica-gov-chain-b.json index cb3fa3f503d..e01e4c57d87 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/ica-gov-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/ica-gov-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.2.x/ica-groups-chain-a.json b/.github/compatibility-test-matrices/release-v8.2.x/ica-groups-chain-a.json index 658160b2bf1..4129bd71b82 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/ica-groups-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/ica-groups-chain-a.json @@ -3,6 +3,7 @@ "release-v8.2.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.2.x/ica-groups-chain-b.json b/.github/compatibility-test-matrices/release-v8.2.x/ica-groups-chain-b.json index 2300a333803..019ee14f8a8 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/ica-groups-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/ica-groups-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.2.x/ica-unordered-channel-chain-a.json b/.github/compatibility-test-matrices/release-v8.2.x/ica-unordered-channel-chain-a.json index 08f47ba02bc..742eb38ad89 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/ica-unordered-channel-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/ica-unordered-channel-chain-a.json @@ -3,6 +3,7 @@ "release-v8.2.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "release-v8.2.x" ], diff --git a/.github/compatibility-test-matrices/release-v8.2.x/ica-unordered-channel-chain-b.json b/.github/compatibility-test-matrices/release-v8.2.x/ica-unordered-channel-chain-b.json index fdd8db8ced8..41eed4dcbfa 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/ica-unordered-channel-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/ica-unordered-channel-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "release-v8.2.x" ], diff --git a/.github/compatibility-test-matrices/release-v8.2.x/incentivized-ica-chain-a.json b/.github/compatibility-test-matrices/release-v8.2.x/incentivized-ica-chain-a.json index 20083ea8692..366aaf81706 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/incentivized-ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/incentivized-ica-chain-a.json @@ -3,6 +3,7 @@ "release-v8.2.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.2.x/incentivized-ica-chain-b.json b/.github/compatibility-test-matrices/release-v8.2.x/incentivized-ica-chain-b.json index 426396c8bd7..f501e83465b 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/incentivized-ica-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/incentivized-ica-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.2.x/incentivized-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v8.2.x/incentivized-transfer-chain-a.json index 55a7a01ea48..e204aa04cf7 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/incentivized-transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/incentivized-transfer-chain-a.json @@ -3,6 +3,7 @@ "release-v8.2.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.2.x/incentivized-transfer-chain-b.json b/.github/compatibility-test-matrices/release-v8.2.x/incentivized-transfer-chain-b.json index f91bb5f7c6e..d2198ade38c 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/incentivized-transfer-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/incentivized-transfer-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.2.x/localhost-ica-chain-a.json b/.github/compatibility-test-matrices/release-v8.2.x/localhost-ica-chain-a.json index 3643014a857..23dd1bca0f1 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/localhost-ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/localhost-ica-chain-a.json @@ -3,6 +3,7 @@ "release-v8.2.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.2.x/localhost-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v8.2.x/localhost-transfer-chain-a.json index e39ebfc20cf..e7f0ae0247e 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/localhost-transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/localhost-transfer-chain-a.json @@ -3,6 +3,7 @@ "release-v8.2.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.2.x/transfer-authz-chain-a.json b/.github/compatibility-test-matrices/release-v8.2.x/transfer-authz-chain-a.json index 94f2cfccb8a..298a807ead4 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/transfer-authz-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/transfer-authz-chain-a.json @@ -3,6 +3,7 @@ "release-v8.2.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.2.x/transfer-authz-chain-b.json b/.github/compatibility-test-matrices/release-v8.2.x/transfer-authz-chain-b.json index 9ad2b678b09..8eaeb9bf8f6 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/transfer-authz-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/transfer-authz-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.2.x/transfer-chain-a.json b/.github/compatibility-test-matrices/release-v8.2.x/transfer-chain-a.json index 38c126aa5f8..1500ea1bb12 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/transfer-chain-a.json @@ -3,6 +3,7 @@ "release-v8.2.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.2.x/transfer-chain-b.json b/.github/compatibility-test-matrices/release-v8.2.x/transfer-chain-b.json index 72f6b68b7a4..23360e4cfdb 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/transfer-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/transfer-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.2.x/transfer-channel-upgrade-chain-a.json b/.github/compatibility-test-matrices/release-v8.2.x/transfer-channel-upgrade-chain-a.json index c1c4bb35a87..e0ffaae4975 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/transfer-channel-upgrade-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/transfer-channel-upgrade-chain-a.json @@ -3,6 +3,7 @@ "release-v8.2.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "release-v8.2.x" ], diff --git a/.github/compatibility-test-matrices/release-v8.2.x/transfer-channel-upgrade-chain-b.json b/.github/compatibility-test-matrices/release-v8.2.x/transfer-channel-upgrade-chain-b.json index 5896d3deec0..11002468020 100644 --- a/.github/compatibility-test-matrices/release-v8.2.x/transfer-channel-upgrade-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.2.x/transfer-channel-upgrade-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "release-v8.2.x" ], diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-chain-a.json index 813a387a5d7..ebffd1c0950 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-chain-a.json @@ -3,6 +3,7 @@ "release-v8.3.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-chain-b.json index 95674a4c301..2d6c4cba741 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/ica-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-channel-upgrade-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-channel-upgrade-chain-a.json index 4b1912c32a4..c91005eebca 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/ica-channel-upgrade-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-channel-upgrade-chain-a.json @@ -3,6 +3,7 @@ "release-v8.3.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "release-v8.3.x" ], diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-channel-upgrade-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-channel-upgrade-chain-b.json index 5a0227ff746..fd64a4eef65 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/ica-channel-upgrade-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-channel-upgrade-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "release-v8.3.x" ], diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-gov-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-gov-chain-a.json index 7453df5a2cb..2c5801b2e7f 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/ica-gov-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-gov-chain-a.json @@ -3,6 +3,7 @@ "release-v8.3.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-gov-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-gov-chain-b.json index 4bde89de66e..2686e6adcd3 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/ica-gov-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-gov-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-groups-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-groups-chain-a.json index 52235f351c5..4513e64cea1 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/ica-groups-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-groups-chain-a.json @@ -3,6 +3,7 @@ "release-v8.3.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-groups-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-groups-chain-b.json index e019a5616e8..c2709711f5a 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/ica-groups-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-groups-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-queries-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-queries-chain-a.json index c4485bb0b02..fdae0cadda7 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/ica-queries-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-queries-chain-a.json @@ -3,6 +3,7 @@ "release-v8.3.x" ], "chain-b": [ + "v8.3.0", "v7.5.0", "release-v8.3.x" ], diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-queries-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-queries-chain-b.json index ff1b966f5ba..39efdb64e7e 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/ica-queries-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-queries-chain-b.json @@ -4,6 +4,7 @@ "release-v8.3.x" ], "chain-b": [ + "v8.3.0", "release-v8.3.x" ], "entrypoint": [ diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-unordered-channel-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-unordered-channel-chain-a.json index 62d3c665cff..7a97ad65395 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/ica-unordered-channel-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-unordered-channel-chain-a.json @@ -3,6 +3,7 @@ "release-v8.3.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "release-v8.3.x" diff --git a/.github/compatibility-test-matrices/release-v8.3.x/ica-unordered-channel-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/ica-unordered-channel-chain-b.json index b9d1b4ab770..e79e6f03ec1 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/ica-unordered-channel-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/ica-unordered-channel-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "release-v8.3.x" diff --git a/.github/compatibility-test-matrices/release-v8.3.x/incentivized-ica-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/incentivized-ica-chain-a.json index f1e871e5ae4..20bf89e3c7b 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/incentivized-ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/incentivized-ica-chain-a.json @@ -3,6 +3,7 @@ "release-v8.3.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.3.x/incentivized-ica-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/incentivized-ica-chain-b.json index cd7552628c9..6bb7231a423 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/incentivized-ica-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/incentivized-ica-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.3.x/incentivized-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/incentivized-transfer-chain-a.json index ac179162c61..54d14fb6011 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/incentivized-transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/incentivized-transfer-chain-a.json @@ -3,6 +3,7 @@ "release-v8.3.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.3.x/incentivized-transfer-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/incentivized-transfer-chain-b.json index 6bbfd56076e..2df8138fc40 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/incentivized-transfer-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/incentivized-transfer-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.3.x/localhost-ica-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/localhost-ica-chain-a.json index ac41d542992..01d25602c9c 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/localhost-ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/localhost-ica-chain-a.json @@ -3,6 +3,7 @@ "release-v8.3.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.3.x/localhost-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/localhost-transfer-chain-a.json index f2fe7fa4093..d6b7033d4e4 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/localhost-transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/localhost-transfer-chain-a.json @@ -3,6 +3,7 @@ "release-v8.3.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.3.x/transfer-authz-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/transfer-authz-chain-a.json index 51516741d71..c1744f712c2 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/transfer-authz-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/transfer-authz-chain-a.json @@ -3,6 +3,7 @@ "release-v8.3.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.3.x/transfer-authz-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/transfer-authz-chain-b.json index 1dface1752b..7961fa0c5d0 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/transfer-authz-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/transfer-authz-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.3.x/transfer-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/transfer-chain-a.json index 8833b286ef4..15e6c5c9b7e 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/transfer-chain-a.json @@ -3,6 +3,7 @@ "release-v8.3.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.3.x/transfer-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/transfer-chain-b.json index b65f5c2d9a7..09fe8e07db0 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/transfer-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/transfer-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "v7.5.0", "v7.4.0", diff --git a/.github/compatibility-test-matrices/release-v8.3.x/transfer-channel-upgrade-chain-a.json b/.github/compatibility-test-matrices/release-v8.3.x/transfer-channel-upgrade-chain-a.json index 8c1f0d0b1fe..cd9140406ca 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/transfer-channel-upgrade-chain-a.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/transfer-channel-upgrade-chain-a.json @@ -3,6 +3,7 @@ "release-v8.3.x" ], "chain-b": [ + "v8.3.0", "v8.2.0", "release-v8.3.x" ], diff --git a/.github/compatibility-test-matrices/release-v8.3.x/transfer-channel-upgrade-chain-b.json b/.github/compatibility-test-matrices/release-v8.3.x/transfer-channel-upgrade-chain-b.json index 8e98221cfe8..8bba5a2bafa 100644 --- a/.github/compatibility-test-matrices/release-v8.3.x/transfer-channel-upgrade-chain-b.json +++ b/.github/compatibility-test-matrices/release-v8.3.x/transfer-channel-upgrade-chain-b.json @@ -1,5 +1,6 @@ { "chain-a": [ + "v8.3.0", "v8.2.0", "release-v8.3.x" ], diff --git a/.github/workflows/e2e-manual-simd.yaml b/.github/workflows/e2e-manual-simd.yaml index 4d8a40c19a5..e89e09971cb 100644 --- a/.github/workflows/e2e-manual-simd.yaml +++ b/.github/workflows/e2e-manual-simd.yaml @@ -35,6 +35,7 @@ on: default: main options: - main + - v8.3.0 - v8.2.0 - v7.4.0 - v7.5.0 @@ -43,12 +44,13 @@ on: required: false type: string chain-b-tag: - default: v8.2.0 + default: v8.3.0 description: 'The tag to use for chain B' required: true type: choice options: - main + - v8.3.0 - v8.2.0 - v7.4.0 - v7.5.0 diff --git a/CHANGELOG.md b/CHANGELOG.md index 86c31d29c68..d9299281e19 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -63,7 +63,25 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (apps/27-interchain-accounts) [\#5533](https://github.com/cosmos/ibc-go/pull/5533) ICA host sets the host connection ID on `OnChanOpenTry`, so that ICA controller implementations are not obliged to set the value on `OnChanOpenInit` if they are not able. * (core/02-client, core/03-connection, apps/27-interchain-accounts) [\#6256](https://github.com/cosmos/ibc-go/pull/6256) Add length checking of array fields in messages. + +### Features + +### Bug Fixes + +## [v8.3.0](https://github.com/cosmos/ibc-go/releases/tag/v8.3.0) - 2024-05-16 + +### Dependencies + +* [\#6300](https://github.com/cosmos/ibc-go/pull/6300) Bump Cosmos SDK to v0.50.6 and CometBFT to v0.38.7. + +### State Machine Breaking + +* (light-clients/07-tendermint) [\#6276](https://github.com/cosmos/ibc-go/pull/6276) Fix: No-op to avoid panicking on `UpdateState` for invalid misbehaviour submissions. + +### Improvements + * (apps/27-interchain-accounts, apps/tranfer, apps/29-fee) [\#6253](https://github.com/cosmos/ibc-go/pull/6253) Allow channel handshake to succeed if fee middleware is wired up on one side, but not the other. +* (apps/27-interchain-accounts) [\#6251](https://github.com/cosmos/ibc-go/pull/6251) Use `UNORDERED` as the default ordering for new ICA channels. * (apps/transfer) [\#6268](https://github.com/cosmos/ibc-go/pull/6268) Use memo strings instead of JSON keys in `AllowedPacketData` of transfer authorization. * (core/ante) [\#6278](https://github.com/cosmos/ibc-go/pull/6278) Performance: Exclude pruning from tendermint client updates in ante handler executions. * (core/ante) [\#6302](https://github.com/cosmos/ibc-go/pull/6302) Performance: Skip app callbacks during RecvPacket execution in checkTx within the redundant relay ante handler. @@ -71,8 +89,10 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### Features -* (apps/27-interchain-accounts) [\#5785](https://github.com/cosmos/ibc-go/pull/5785) Introduce a new tx message that ICA host submodule can use to query the chain (only those marked with `module_query_safe`) and write the responses to the acknowledgement. * (core) [\#6055](https://github.com/cosmos/ibc-go/pull/6055) Introduce a new interface `ConsensusHost` used to validate an IBC `ClientState` and `ConsensusState` against the host chain's underlying consensus parameters. +* (core/02-client) [\#5821](https://github.com/cosmos/ibc-go/pull/5821) Add rpc `VerifyMembershipProof` (querier approach for conditional clients). +* (core/04-channel) [\#5788](https://github.com/cosmos/ibc-go/pull/5788) Add `NewErrorAcknowledgementWithCodespace` to allow codespaces in ack errors. +* (apps/27-interchain-accounts) [\#5785](https://github.com/cosmos/ibc-go/pull/5785) Introduce a new tx message that ICA host submodule can use to query the chain (only those marked with `module_query_safe`) and write the responses to the acknowledgement. ### Bug Fixes diff --git a/RELEASES.md b/RELEASES.md index b68108982ca..08d2f2ddb63 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -74,6 +74,7 @@ We reserve the right to drop support for releases if they are deemed unused (for |`v7.4.x`|September 17, 2024| |`v7.5.x`|September 17, 2024| |`v8.2.x`|May 10, 2025| +|`v8.3.x`|May 10, 2025| ### Callbacks middleware @@ -125,6 +126,7 @@ Versions of Golang, Cosmos SDK and CometBFT used by ibc-go in the currently acti | 1.19 | v7.4.0 | v0.47.8 | v0.37.4 | | 1.19 | v7.5.0 | v0.47.11 | v0.37.5 | | 1.21 | v8.2.0 | v0.50.5 | v0.38.5 | +| 1.21 | v8.3.0 | v0.50.6 | v0.38.7 | ### Callbacks middleware From 6993618b62ade4694553bbbf4150752d45e215e7 Mon Sep 17 00:00:00 2001 From: Charly Date: Wed, 22 May 2024 09:31:47 +0200 Subject: [PATCH 59/62] chore: follow up for testing rest of methods on 07-tendermint light client module (#6135) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * move tests from client state to lcm, use lcm entry point * linter * update Initialise test + coverage * linter * import naming * update for pr review * followup to lcm testing pr * linter * update: use lcm entrypoint * update: use lcm entrypoint * linter * linter * merge artifact * add single test for panics cases * a bit of linting a day keeps the doctor away * more linting * fix test * test: fixup testing logic * nit: use errors.New() where no args are present for formatting --------- Co-authored-by: Damian Nolan Co-authored-by: Carlos Rodriguez Co-authored-by: Colin Axnér <25233464+colin-axner@users.noreply.github.com> --- modules/core/02-client/keeper/client_test.go | 4 +- modules/core/02-client/keeper/keeper_test.go | 4 +- .../07-tendermint/light_client_module_test.go | 952 +++++++++++------- .../07-tendermint/misbehaviour_handle_test.go | 18 +- .../07-tendermint/update_test.go | 38 +- .../07-tendermint/upgrade_test.go | 184 +++- 6 files changed, 730 insertions(+), 470 deletions(-) diff --git a/modules/core/02-client/keeper/client_test.go b/modules/core/02-client/keeper/client_test.go index 847bdee6968..51939164938 100644 --- a/modules/core/02-client/keeper/client_test.go +++ b/modules/core/02-client/keeper/client_test.go @@ -508,7 +508,9 @@ func (suite *KeeperTestSuite) TestUpdateClientEventEmission() { path := ibctesting.NewPath(suite.chainA, suite.chainB) path.SetupClients() - trustedHeight := path.EndpointA.GetClientState().(*ibctm.ClientState).LatestHeight + tmClientState, ok := path.EndpointA.GetClientState().(*ibctm.ClientState) + suite.Require().True(ok) + trustedHeight := tmClientState.LatestHeight header, err := path.EndpointA.Counterparty.Chain.IBCClientHeader(path.EndpointA.Counterparty.Chain.LatestCommittedHeader, trustedHeight) suite.Require().NoError(err) diff --git a/modules/core/02-client/keeper/keeper_test.go b/modules/core/02-client/keeper/keeper_test.go index fd120c12b54..739d735ea54 100644 --- a/modules/core/02-client/keeper/keeper_test.go +++ b/modules/core/02-client/keeper/keeper_test.go @@ -570,7 +570,9 @@ func (suite *KeeperTestSuite) TestIBCSoftwareUpgrade() { path := ibctesting.NewPath(suite.chainA, suite.chainB) path.SetupClients() - upgradedClientState = path.EndpointA.GetClientState().(*ibctm.ClientState).ZeroCustomFields() + tmClientState, ok := path.EndpointA.GetClientState().(*ibctm.ClientState) + suite.Require().True(ok) + upgradedClientState = tmClientState.ZeroCustomFields() // use height 1000 to distinguish from old plan plan = upgradetypes.Plan{ diff --git a/modules/light-clients/07-tendermint/light_client_module_test.go b/modules/light-clients/07-tendermint/light_client_module_test.go index 6a30ec13785..77c446e5a70 100644 --- a/modules/light-clients/07-tendermint/light_client_module_test.go +++ b/modules/light-clients/07-tendermint/light_client_module_test.go @@ -5,6 +5,7 @@ import ( "fmt" "time" + errorsmod "cosmossdk.io/errors" upgradetypes "cosmossdk.io/x/upgrade/types" codectypes "github.com/cosmos/cosmos-sdk/codec/types" @@ -27,157 +28,6 @@ var ( solomachineClientID = clienttypes.FormatClientIdentifier(exported.Solomachine, 0) ) -func (suite *TendermintTestSuite) TestStatus() { - var ( - path *ibctesting.Path - clientState *ibctm.ClientState - ) - - testCases := []struct { - name string - malleate func() - expStatus exported.Status - }{ - { - "client is active", - func() {}, - exported.Active, - }, - { - "client is frozen", - func() { - clientState.FrozenHeight = clienttypes.NewHeight(0, 1) - path.EndpointA.SetClientState(clientState) - }, - exported.Frozen, - }, - { - "client status without consensus state", - func() { - var ok bool - clientState.LatestHeight, ok = clientState.LatestHeight.Increment().(clienttypes.Height) - suite.Require().True(ok) - path.EndpointA.SetClientState(clientState) - }, - exported.Expired, - }, - { - "client status is expired", - func() { - suite.coordinator.IncrementTimeBy(clientState.TrustingPeriod) - }, - exported.Expired, - }, - { - "client state not found", - func() { - store := suite.chainA.App.GetIBCKeeper().ClientKeeper.ClientStore(suite.chainA.GetContext(), path.EndpointA.ClientID) - store.Delete(host.ClientStateKey()) - }, - exported.Unknown, - }, - } - - for _, tc := range testCases { - tc := tc - suite.Run(tc.name, func() { - suite.SetupTest() - - path = ibctesting.NewPath(suite.chainA, suite.chainB) - path.SetupClients() - - lightClientModule, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.Route(path.EndpointA.ClientID) - suite.Require().True(found) - - var ok bool - clientState, ok = path.EndpointA.GetClientState().(*ibctm.ClientState) - suite.Require().True(ok) - - tc.malleate() - - status := lightClientModule.Status(suite.chainA.GetContext(), path.EndpointA.ClientID) - suite.Require().Equal(tc.expStatus, status) - }) - - } -} - -func (suite *TendermintTestSuite) TestGetTimestampAtHeight() { - var ( - path *ibctesting.Path - height exported.Height - ) - expectedTimestamp := time.Unix(1, 0) - - testCases := []struct { - name string - malleate func() - expErr error - }{ - { - "success", - func() {}, - nil, - }, - { - "failure: client state not found for height", - func() { - store := suite.chainA.App.GetIBCKeeper().ClientKeeper.ClientStore(suite.chainA.GetContext(), path.EndpointA.ClientID) - store.Delete(host.ClientStateKey()) - }, - clienttypes.ErrClientNotFound, - }, - { - "failure: consensus state not found for height", - func() { - clientState, ok := path.EndpointA.GetClientState().(*ibctm.ClientState) - suite.Require().True(ok) - height = clientState.LatestHeight.Increment() - }, - clienttypes.ErrConsensusStateNotFound, - }, - } - - for _, tc := range testCases { - tc := tc - suite.Run(tc.name, func() { - suite.SetupTest() - - path = ibctesting.NewPath(suite.chainA, suite.chainB) - path.SetupClients() - - clientState, ok := path.EndpointA.GetClientState().(*ibctm.ClientState) - suite.Require().True(ok) - height = clientState.LatestHeight - - // grab consensusState from store and update with a predefined timestamp - consensusState := path.EndpointA.GetConsensusState(height) - tmConsensusState, ok := consensusState.(*ibctm.ConsensusState) - suite.Require().True(ok) - - tmConsensusState.Timestamp = expectedTimestamp - path.EndpointA.SetConsensusState(tmConsensusState, height) - - lightClientModule, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.Route(path.EndpointA.ClientID) - suite.Require().True(found) - - tc.malleate() - - timestamp, err := lightClientModule.TimestampAtHeight(suite.chainA.GetContext(), path.EndpointA.ClientID, height) - - expPass := tc.expErr == nil - if expPass { - suite.Require().NoError(err) - - expectedTimestamp := uint64(expectedTimestamp.UnixNano()) - suite.Require().Equal(expectedTimestamp, timestamp) - } else { - suite.Require().ErrorIs(err, tc.expErr) - } - }) - } -} - func (suite *TendermintTestSuite) TestInitialize() { var consensusState exported.ConsensusState var clientState exported.ClientState @@ -267,11 +117,8 @@ func (suite *TendermintTestSuite) TestInitialize() { } } -func (suite *TendermintTestSuite) TestRecoverClient() { - var ( - subjectClientID, substituteClientID string - subjectClientState exported.ClientState - ) +func (suite *TendermintTestSuite) TestVerifyClientMessage() { + var path *ibctesting.Path testCases := []struct { name string @@ -280,35 +127,14 @@ func (suite *TendermintTestSuite) TestRecoverClient() { }{ { "success", - func() { - }, + func() {}, nil, }, { - "cannot parse malformed substitute client ID", - func() { - substituteClientID = ibctesting.InvalidID - }, - host.ErrInvalidID, - }, - { - "substitute client ID does not contain 07-tendermint prefix", - func() { - substituteClientID = solomachineClientID - }, - clienttypes.ErrInvalidClientType, - }, - { - "cannot find subject client state", - func() { - subjectClientID = tmClientID - }, - clienttypes.ErrClientNotFound, - }, - { - "cannot find substitute client state", + "failure: client state not found", func() { - substituteClientID = tmClientID + store := suite.chainA.App.GetIBCKeeper().ClientKeeper.ClientStore(suite.chainA.GetContext(), path.EndpointA.ClientID) + store.Delete(host.ClientStateKey()) }, clienttypes.ErrClientNotFound, }, @@ -317,54 +143,128 @@ func (suite *TendermintTestSuite) TestRecoverClient() { for _, tc := range testCases { tc := tc suite.Run(tc.name, func() { - suite.SetupTest() // reset - ctx := suite.chainA.GetContext() + suite.SetupTest() - subjectPath := ibctesting.NewPath(suite.chainA, suite.chainB) - subjectPath.SetupClients() - subjectClientID = subjectPath.EndpointA.ClientID - subjectClientState = suite.chainA.GetClientState(subjectClientID) + path = ibctesting.NewPath(suite.chainA, suite.chainB) + path.SetupClients() - substitutePath := ibctesting.NewPath(suite.chainA, suite.chainB) - substitutePath.SetupClients() - substituteClientID = substitutePath.EndpointA.ClientID + lightClientModule, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.Route(path.EndpointA.ClientID) + suite.Require().True(found) - tmClientState, ok := subjectClientState.(*ibctm.ClientState) + // ensure counterparty state is committed + suite.coordinator.CommitBlock(suite.chainB) + trustedHeight, ok := path.EndpointA.GetClientLatestHeight().(clienttypes.Height) suite.Require().True(ok) - tmClientState.FrozenHeight = tmClientState.LatestHeight - suite.chainA.App.GetIBCKeeper().ClientKeeper.SetClientState(ctx, subjectPath.EndpointA.ClientID, tmClientState) - - lightClientModule, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.Route(subjectClientID) - suite.Require().True(found) + header, err := path.EndpointA.Counterparty.Chain.IBCClientHeader(path.EndpointA.Counterparty.Chain.LatestCommittedHeader, trustedHeight) + suite.Require().NoError(err) tc.malleate() - err := lightClientModule.RecoverClient(ctx, subjectClientID, substituteClientID) + err = lightClientModule.VerifyClientMessage(suite.chainA.GetContext(), path.EndpointA.ClientID, header) expPass := tc.expErr == nil if expPass { suite.Require().NoError(err) - - // assert that status of subject client is now Active - clientStore := suite.chainA.App.GetIBCKeeper().ClientKeeper.ClientStore(ctx, subjectClientID) - tmClientState, ok := subjectPath.EndpointA.GetClientState().(*ibctm.ClientState) - suite.Require().True(ok) - suite.Require().Equal(exported.Active, tmClientState.Status(ctx, clientStore, suite.chainA.App.AppCodec())) } else { - suite.Require().Error(err) suite.Require().ErrorIs(err, tc.expErr) } }) } } -func (suite *TendermintTestSuite) TestVerifyUpgradeAndUpdateState() { +func (suite *TendermintTestSuite) TestCheckForMisbehaviourPanicsOnClientStateNotFound() { + suite.SetupTest() + + path := ibctesting.NewPath(suite.chainA, suite.chainB) + path.SetupClients() + + lightClientModule, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.Route(path.EndpointA.ClientID) + suite.Require().True(found) + + // ensure counterparty state is committed + suite.coordinator.CommitBlock(suite.chainB) + trustedHeight, ok := path.EndpointA.GetClientLatestHeight().(clienttypes.Height) + suite.Require().True(ok) + header, err := path.EndpointA.Counterparty.Chain.IBCClientHeader(path.EndpointA.Counterparty.Chain.LatestCommittedHeader, trustedHeight) + suite.Require().NoError(err) + + // delete client state + store := suite.chainA.App.GetIBCKeeper().ClientKeeper.ClientStore(suite.chainA.GetContext(), path.EndpointA.ClientID) + store.Delete(host.ClientStateKey()) + + suite.Require().PanicsWithError(errorsmod.Wrap(clienttypes.ErrClientNotFound, path.EndpointA.ClientID).Error(), + func() { + lightClientModule.CheckForMisbehaviour(suite.chainA.GetContext(), path.EndpointA.ClientID, header) + }, + ) +} + +func (suite *TendermintTestSuite) TestUpdateStateOnMisbehaviourPanicsOnClientStateNotFound() { + suite.SetupTest() + + path := ibctesting.NewPath(suite.chainA, suite.chainB) + path.SetupClients() + + lightClientModule, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.Route(path.EndpointA.ClientID) + suite.Require().True(found) + + // ensure counterparty state is committed + suite.coordinator.CommitBlock(suite.chainB) + trustedHeight, ok := path.EndpointA.GetClientLatestHeight().(clienttypes.Height) + suite.Require().True(ok) + header, err := path.EndpointA.Counterparty.Chain.IBCClientHeader(path.EndpointA.Counterparty.Chain.LatestCommittedHeader, trustedHeight) + suite.Require().NoError(err) + + // delete client state + store := suite.chainA.App.GetIBCKeeper().ClientKeeper.ClientStore(suite.chainA.GetContext(), path.EndpointA.ClientID) + store.Delete(host.ClientStateKey()) + + suite.Require().PanicsWithError( + errorsmod.Wrap(clienttypes.ErrClientNotFound, path.EndpointA.ClientID).Error(), + func() { + lightClientModule.UpdateStateOnMisbehaviour(suite.chainA.GetContext(), path.EndpointA.ClientID, header) + }, + ) +} + +func (suite *TendermintTestSuite) TestUpdateStatePanicsOnClientStateNotFound() { + suite.SetupTest() + + path := ibctesting.NewPath(suite.chainA, suite.chainB) + path.SetupClients() + + lightClientModule, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.Route(path.EndpointA.ClientID) + suite.Require().True(found) + + // ensure counterparty state is committed + suite.coordinator.CommitBlock(suite.chainB) + trustedHeight, ok := path.EndpointA.GetClientLatestHeight().(clienttypes.Height) + suite.Require().True(ok) + header, err := path.EndpointA.Counterparty.Chain.IBCClientHeader(path.EndpointA.Counterparty.Chain.LatestCommittedHeader, trustedHeight) + suite.Require().NoError(err) + + // delete client state + store := suite.chainA.App.GetIBCKeeper().ClientKeeper.ClientStore(suite.chainA.GetContext(), path.EndpointA.ClientID) + store.Delete(host.ClientStateKey()) + + suite.Require().PanicsWithError( + errorsmod.Wrap(clienttypes.ErrClientNotFound, path.EndpointA.ClientID).Error(), + func() { + lightClientModule.UpdateState(suite.chainA.GetContext(), path.EndpointA.ClientID, header) + }, + ) +} + +func (suite *TendermintTestSuite) TestVerifyMembership() { var ( - clientID string - path *ibctesting.Path - upgradedClientState exported.ClientState - upgradedClientStateAny, upgradedConsensusStateAny *codectypes.Any - upgradedClientStateProof, upgradedConsensusStateProof []byte + testingpath *ibctesting.Path + delayTimePeriod uint64 + delayBlockPeriod uint64 + err error + proofHeight exported.Height + proof []byte + path exported.Path + value []byte ) testCases := []struct { @@ -373,178 +273,7 @@ func (suite *TendermintTestSuite) TestVerifyUpgradeAndUpdateState() { expErr error }{ { - "success", - func() { - // upgrade height is at next block - upgradeHeight := clienttypes.NewHeight(0, uint64(suite.chainB.GetContext().BlockHeight()+1)) - - // zero custom fields and store in upgrade store - zeroedUpgradedClient := upgradedClientState.(*ibctm.ClientState).ZeroCustomFields() - zeroedUpgradedClientAny, err := codectypes.NewAnyWithValue(zeroedUpgradedClient) - suite.Require().NoError(err) - - err = suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedClient(suite.chainB.GetContext(), int64(upgradeHeight.GetRevisionHeight()), suite.chainB.Codec.MustMarshal(zeroedUpgradedClientAny)) - suite.Require().NoError(err) - - err = suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedConsensusState(suite.chainB.GetContext(), int64(upgradeHeight.GetRevisionHeight()), suite.chainB.Codec.MustMarshal(upgradedConsensusStateAny)) - suite.Require().NoError(err) - - // commit upgrade store changes and update clients - suite.coordinator.CommitBlock(suite.chainB) - err = path.EndpointA.UpdateClient() - suite.Require().NoError(err) - - upgradedClientStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedClientKey(int64(upgradeHeight.GetRevisionHeight())), path.EndpointA.GetClientLatestHeight().GetRevisionHeight()) - upgradedConsensusStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedConsStateKey(int64(upgradeHeight.GetRevisionHeight())), path.EndpointA.GetClientLatestHeight().GetRevisionHeight()) - }, - nil, - }, - { - "cannot find client state", - func() { - clientID = tmClientID - }, - clienttypes.ErrClientNotFound, - }, - { - "upgraded client state is not for tendermint client state", - func() { - upgradedClientStateAny = &codectypes.Any{ - Value: []byte("invalid client state bytes"), - } - }, - clienttypes.ErrInvalidClient, - }, - { - "upgraded consensus state is not tendermint consensus state", - func() { - upgradedConsensusStateAny = &codectypes.Any{ - Value: []byte("invalid consensus state bytes"), - } - }, - clienttypes.ErrInvalidConsensus, - }, - { - "upgraded client state height is not greater than current height", - func() { - // upgrade height is at next block - upgradeHeight := clienttypes.NewHeight(1, uint64(suite.chainB.GetContext().BlockHeight()+1)) - - // zero custom fields and store in upgrade store - zeroedUpgradedClient := upgradedClientState.(*ibctm.ClientState).ZeroCustomFields() - zeroedUpgradedClientAny, err := codectypes.NewAnyWithValue(zeroedUpgradedClient) - suite.Require().NoError(err) - - err = suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedClient(suite.chainB.GetContext(), int64(upgradeHeight.GetRevisionHeight()), suite.chainB.Codec.MustMarshal(zeroedUpgradedClientAny)) - suite.Require().NoError(err) - - err = suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedConsensusState(suite.chainB.GetContext(), int64(upgradeHeight.GetRevisionHeight()), suite.chainB.Codec.MustMarshal(upgradedConsensusStateAny)) - suite.Require().NoError(err) - - // change upgraded client state height to be lower than current client state height - tmClient, ok := upgradedClientState.(*ibctm.ClientState) - suite.Require().True(ok) - - newLatestheight, ok := path.EndpointA.GetClientLatestHeight().Decrement() - suite.Require().True(ok) - - tmClient.LatestHeight, ok = newLatestheight.(clienttypes.Height) - suite.Require().True(ok) - upgradedClientStateAny, err = codectypes.NewAnyWithValue(tmClient) - suite.Require().NoError(err) - - suite.coordinator.CommitBlock(suite.chainB) - err = path.EndpointA.UpdateClient() - suite.Require().NoError(err) - - upgradedClientStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedClientKey(int64(upgradeHeight.GetRevisionHeight())), path.EndpointA.GetClientLatestHeight().GetRevisionHeight()) - upgradedConsensusStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedConsStateKey(int64(upgradeHeight.GetRevisionHeight())), path.EndpointA.GetClientLatestHeight().GetRevisionHeight()) - }, - ibcerrors.ErrInvalidHeight, - }, - } - - for _, tc := range testCases { - tc := tc - suite.Run(tc.name, func() { - suite.SetupTest() // reset - - path = ibctesting.NewPath(suite.chainA, suite.chainB) - path.SetupClients() - - clientID = path.EndpointA.ClientID - clientState, ok := path.EndpointA.GetClientState().(*ibctm.ClientState) - suite.Require().True(ok) - revisionNumber := clienttypes.ParseChainID(clientState.ChainId) - - newUnbondindPeriod := ubdPeriod + trustingPeriod - newChainID, err := clienttypes.SetRevisionNumber(clientState.ChainId, revisionNumber+1) - suite.Require().NoError(err) - - upgradedClientState = ibctm.NewClientState(newChainID, ibctm.DefaultTrustLevel, trustingPeriod, newUnbondindPeriod, maxClockDrift, clienttypes.NewHeight(revisionNumber+1, clientState.LatestHeight.GetRevisionHeight()+1), commitmenttypes.GetSDKSpecs(), upgradePath) - upgradedClientStateAny, err = codectypes.NewAnyWithValue(upgradedClientState) - suite.Require().NoError(err) - - nextValsHash := sha256.Sum256([]byte("new-nextValsHash")) - upgradedConsensusState := ibctm.NewConsensusState(time.Now(), commitmenttypes.NewMerkleRoot([]byte("new-hash")), nextValsHash[:]) - - upgradedConsensusStateAny, err = codectypes.NewAnyWithValue(upgradedConsensusState) - suite.Require().NoError(err) - - tc.malleate() - - lightClientModule, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.Route(clientID) - suite.Require().True(found) - - err = lightClientModule.VerifyUpgradeAndUpdateState( - suite.chainA.GetContext(), - clientID, - upgradedClientStateAny.Value, - upgradedConsensusStateAny.Value, - upgradedClientStateProof, - upgradedConsensusStateProof, - ) - - expPass := tc.expErr == nil - if expPass { - suite.Require().NoError(err) - - expClientState := path.EndpointA.GetClientState() - expClientStateBz := suite.chainA.Codec.MustMarshal(expClientState) - suite.Require().Equal(upgradedClientStateAny.Value, expClientStateBz) - - expConsensusState := ibctm.NewConsensusState(upgradedConsensusState.Timestamp, commitmenttypes.NewMerkleRoot([]byte(ibctm.SentinelRoot)), upgradedConsensusState.NextValidatorsHash) - expConsensusStateBz := suite.chainA.Codec.MustMarshal(expConsensusState) - - consensusStateBz := suite.chainA.Codec.MustMarshal(path.EndpointA.GetConsensusState(path.EndpointA.GetClientLatestHeight())) - suite.Require().Equal(expConsensusStateBz, consensusStateBz) - } else { - suite.Require().Error(err) - suite.Require().ErrorIs(err, tc.expErr) - } - }) - } -} - -func (suite *TendermintTestSuite) TestVerifyMembership() { - var ( - testingpath *ibctesting.Path - delayTimePeriod uint64 - delayBlockPeriod uint64 - err error - proofHeight exported.Height - proof []byte - path exported.Path - value []byte - ) - - testCases := []struct { - name string - malleate func() - expErr error - }{ - { - "successful ClientState verification", + "successful ClientState verification", func() { // default proof construction uses ClientState }, @@ -740,7 +469,7 @@ func (suite *TendermintTestSuite) TestVerifyMembership() { commitmenttypes.ErrInvalidMerkleProof, }, { - "client state not found for height", + "client state not found", func() { store := suite.chainA.App.GetIBCKeeper().ClientKeeper.ClientStore(suite.chainA.GetContext(), testingpath.EndpointA.ClientID) store.Delete(host.ClientStateKey()) @@ -969,7 +698,7 @@ func (suite *TendermintTestSuite) TestVerifyNonMembership() { commitmenttypes.ErrInvalidMerkleProof, }, { - "client state not found for height", + "client state not found", func() { store := suite.chainA.App.GetIBCKeeper().ClientKeeper.ClientStore(suite.chainA.GetContext(), testingpath.EndpointA.ClientID) store.Delete(host.ClientStateKey()) @@ -1020,3 +749,458 @@ func (suite *TendermintTestSuite) TestVerifyNonMembership() { }) } } + +func (suite *TendermintTestSuite) TestStatus() { + var ( + path *ibctesting.Path + clientState *ibctm.ClientState + ) + + testCases := []struct { + name string + malleate func() + expStatus exported.Status + }{ + { + "client is active", + func() {}, + exported.Active, + }, + { + "client is frozen", + func() { + clientState.FrozenHeight = clienttypes.NewHeight(0, 1) + path.EndpointA.SetClientState(clientState) + }, + exported.Frozen, + }, + { + "client status without consensus state", + func() { + newLatestHeight, ok := clientState.LatestHeight.Increment().(clienttypes.Height) + suite.Require().True(ok) + clientState.LatestHeight = newLatestHeight + path.EndpointA.SetClientState(clientState) + }, + exported.Expired, + }, + { + "client status is expired", + func() { + suite.coordinator.IncrementTimeBy(clientState.TrustingPeriod) + }, + exported.Expired, + }, + { + "client state not found", + func() { + store := suite.chainA.App.GetIBCKeeper().ClientKeeper.ClientStore(suite.chainA.GetContext(), path.EndpointA.ClientID) + store.Delete(host.ClientStateKey()) + }, + exported.Unknown, + }, + } + + for _, tc := range testCases { + tc := tc + suite.Run(tc.name, func() { + suite.SetupTest() + + path = ibctesting.NewPath(suite.chainA, suite.chainB) + path.SetupClients() + + lightClientModule, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.Route(path.EndpointA.ClientID) + suite.Require().True(found) + + var ok bool + clientState, ok = path.EndpointA.GetClientState().(*ibctm.ClientState) + suite.Require().True(ok) + + tc.malleate() + + status := lightClientModule.Status(suite.chainA.GetContext(), path.EndpointA.ClientID) + suite.Require().Equal(tc.expStatus, status) + }) + + } +} + +func (suite *TendermintTestSuite) TestLatestHeight() { + var ( + path *ibctesting.Path + height exported.Height + ) + + testCases := []struct { + name string + malleate func() + expHeight exported.Height + }{ + { + "success", + func() {}, + clienttypes.Height{RevisionNumber: 0x1, RevisionHeight: 0x4}, + }, + { + "client state not found", + func() { + store := suite.chainA.App.GetIBCKeeper().ClientKeeper.ClientStore(suite.chainA.GetContext(), path.EndpointA.ClientID) + store.Delete(host.ClientStateKey()) + }, + clienttypes.ZeroHeight(), + }, + } + + for _, tc := range testCases { + tc := tc + suite.Run(tc.name, func() { + suite.SetupTest() + + path = ibctesting.NewPath(suite.chainA, suite.chainB) + path.SetupClients() + + lightClientModule, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.Route(path.EndpointA.ClientID) + suite.Require().True(found) + + tc.malleate() + + height = lightClientModule.LatestHeight(suite.chainA.GetContext(), path.EndpointA.ClientID) + suite.Require().Equal(tc.expHeight, height) + }) + } +} + +func (suite *TendermintTestSuite) TestGetTimestampAtHeight() { + var ( + path *ibctesting.Path + height exported.Height + ) + expectedTimestamp := time.Unix(1, 0) + + testCases := []struct { + name string + malleate func() + expErr error + }{ + { + "success", + func() {}, + nil, + }, + { + "failure: client state not found", + func() { + store := suite.chainA.App.GetIBCKeeper().ClientKeeper.ClientStore(suite.chainA.GetContext(), path.EndpointA.ClientID) + store.Delete(host.ClientStateKey()) + }, + clienttypes.ErrClientNotFound, + }, + { + "failure: consensus state not found for height", + func() { + clientState, ok := path.EndpointA.GetClientState().(*ibctm.ClientState) + suite.Require().True(ok) + height = clientState.LatestHeight.Increment() + }, + clienttypes.ErrConsensusStateNotFound, + }, + } + + for _, tc := range testCases { + tc := tc + suite.Run(tc.name, func() { + suite.SetupTest() + + path = ibctesting.NewPath(suite.chainA, suite.chainB) + path.SetupClients() + + clientState, ok := path.EndpointA.GetClientState().(*ibctm.ClientState) + suite.Require().True(ok) + height = clientState.LatestHeight + + // grab consensusState from store and update with a predefined timestamp + consensusState := path.EndpointA.GetConsensusState(height) + tmConsensusState, ok := consensusState.(*ibctm.ConsensusState) + suite.Require().True(ok) + + tmConsensusState.Timestamp = expectedTimestamp + path.EndpointA.SetConsensusState(tmConsensusState, height) + + lightClientModule, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.Route(path.EndpointA.ClientID) + suite.Require().True(found) + + tc.malleate() + + timestamp, err := lightClientModule.TimestampAtHeight(suite.chainA.GetContext(), path.EndpointA.ClientID, height) + + expPass := tc.expErr == nil + if expPass { + suite.Require().NoError(err) + + expectedTimestamp := uint64(expectedTimestamp.UnixNano()) + suite.Require().Equal(expectedTimestamp, timestamp) + } else { + suite.Require().ErrorIs(err, tc.expErr) + } + }) + } +} + +func (suite *TendermintTestSuite) TestRecoverClient() { + var ( + subjectClientID, substituteClientID string + subjectClientState exported.ClientState + ) + + testCases := []struct { + name string + malleate func() + expErr error + }{ + { + "success", + func() { + }, + nil, + }, + { + "cannot parse malformed substitute client ID", + func() { + substituteClientID = ibctesting.InvalidID + }, + host.ErrInvalidID, + }, + { + "substitute client ID does not contain 07-tendermint prefix", + func() { + substituteClientID = solomachineClientID + }, + clienttypes.ErrInvalidClientType, + }, + { + "cannot find subject client state", + func() { + subjectClientID = tmClientID + }, + clienttypes.ErrClientNotFound, + }, + { + "cannot find substitute client state", + func() { + substituteClientID = tmClientID + }, + clienttypes.ErrClientNotFound, + }, + } + + for _, tc := range testCases { + tc := tc + suite.Run(tc.name, func() { + suite.SetupTest() // reset + ctx := suite.chainA.GetContext() + + subjectPath := ibctesting.NewPath(suite.chainA, suite.chainB) + subjectPath.SetupClients() + subjectClientID = subjectPath.EndpointA.ClientID + subjectClientState = suite.chainA.GetClientState(subjectClientID) + + substitutePath := ibctesting.NewPath(suite.chainA, suite.chainB) + substitutePath.SetupClients() + substituteClientID = substitutePath.EndpointA.ClientID + + tmClientState, ok := subjectClientState.(*ibctm.ClientState) + suite.Require().True(ok) + tmClientState.FrozenHeight = tmClientState.LatestHeight + suite.chainA.App.GetIBCKeeper().ClientKeeper.SetClientState(ctx, subjectPath.EndpointA.ClientID, tmClientState) + + lightClientModule, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.Route(subjectClientID) + suite.Require().True(found) + + tc.malleate() + + err := lightClientModule.RecoverClient(ctx, subjectClientID, substituteClientID) + + expPass := tc.expErr == nil + if expPass { + suite.Require().NoError(err) + + // assert that status of subject client is now Active + clientStore := suite.chainA.App.GetIBCKeeper().ClientKeeper.ClientStore(ctx, subjectClientID) + tmClientState, ok := subjectPath.EndpointA.GetClientState().(*ibctm.ClientState) + suite.Require().True(ok) + suite.Require().Equal(exported.Active, tmClientState.Status(ctx, clientStore, suite.chainA.App.AppCodec())) + } else { + suite.Require().Error(err) + suite.Require().ErrorIs(err, tc.expErr) + } + }) + } +} + +func (suite *TendermintTestSuite) TestVerifyUpgradeAndUpdateState() { + var ( + clientID string + path *ibctesting.Path + upgradedClientState exported.ClientState + upgradedClientStateAny, upgradedConsensusStateAny *codectypes.Any + upgradedClientStateProof, upgradedConsensusStateProof []byte + ) + + testCases := []struct { + name string + malleate func() + expErr error + }{ + { + "success", + func() { + // upgrade height is at next block + upgradeHeight := clienttypes.NewHeight(0, uint64(suite.chainB.GetContext().BlockHeight()+1)) + + // zero custom fields and store in upgrade store + zeroedUpgradedClient := upgradedClientState.(*ibctm.ClientState).ZeroCustomFields() + zeroedUpgradedClientAny, err := codectypes.NewAnyWithValue(zeroedUpgradedClient) + suite.Require().NoError(err) + + err = suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedClient(suite.chainB.GetContext(), int64(upgradeHeight.GetRevisionHeight()), suite.chainB.Codec.MustMarshal(zeroedUpgradedClientAny)) + suite.Require().NoError(err) + + err = suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedConsensusState(suite.chainB.GetContext(), int64(upgradeHeight.GetRevisionHeight()), suite.chainB.Codec.MustMarshal(upgradedConsensusStateAny)) + suite.Require().NoError(err) + + // commit upgrade store changes and update clients + suite.coordinator.CommitBlock(suite.chainB) + err = path.EndpointA.UpdateClient() + suite.Require().NoError(err) + + upgradedClientStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedClientKey(int64(upgradeHeight.GetRevisionHeight())), path.EndpointA.GetClientLatestHeight().GetRevisionHeight()) + upgradedConsensusStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedConsStateKey(int64(upgradeHeight.GetRevisionHeight())), path.EndpointA.GetClientLatestHeight().GetRevisionHeight()) + }, + nil, + }, + { + "cannot find client state", + func() { + clientID = tmClientID + }, + clienttypes.ErrClientNotFound, + }, + { + "upgraded client state is not for tendermint client state", + func() { + upgradedClientStateAny = &codectypes.Any{ + Value: []byte("invalid client state bytes"), + } + }, + clienttypes.ErrInvalidClient, + }, + { + "upgraded consensus state is not tendermint consensus state", + func() { + upgradedConsensusStateAny = &codectypes.Any{ + Value: []byte("invalid consensus state bytes"), + } + }, + clienttypes.ErrInvalidConsensus, + }, + { + "upgraded client state height is not greater than current height", + func() { + // upgrade height is at next block + upgradeHeight := clienttypes.NewHeight(1, uint64(suite.chainB.GetContext().BlockHeight()+1)) + + // zero custom fields and store in upgrade store + zeroedUpgradedClient := upgradedClientState.(*ibctm.ClientState).ZeroCustomFields() + zeroedUpgradedClientAny, err := codectypes.NewAnyWithValue(zeroedUpgradedClient) + suite.Require().NoError(err) + + err = suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedClient(suite.chainB.GetContext(), int64(upgradeHeight.GetRevisionHeight()), suite.chainB.Codec.MustMarshal(zeroedUpgradedClientAny)) + suite.Require().NoError(err) + + err = suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedConsensusState(suite.chainB.GetContext(), int64(upgradeHeight.GetRevisionHeight()), suite.chainB.Codec.MustMarshal(upgradedConsensusStateAny)) + suite.Require().NoError(err) + + // change upgraded client state height to be lower than current client state height + tmClient, ok := upgradedClientState.(*ibctm.ClientState) + suite.Require().True(ok) + + newLatestheight, ok := path.EndpointA.GetClientLatestHeight().Decrement() + suite.Require().True(ok) + + tmClient.LatestHeight, ok = newLatestheight.(clienttypes.Height) + suite.Require().True(ok) + upgradedClientStateAny, err = codectypes.NewAnyWithValue(tmClient) + suite.Require().NoError(err) + + suite.coordinator.CommitBlock(suite.chainB) + err = path.EndpointA.UpdateClient() + suite.Require().NoError(err) + + upgradedClientStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedClientKey(int64(upgradeHeight.GetRevisionHeight())), path.EndpointA.GetClientLatestHeight().GetRevisionHeight()) + upgradedConsensusStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedConsStateKey(int64(upgradeHeight.GetRevisionHeight())), path.EndpointA.GetClientLatestHeight().GetRevisionHeight()) + }, + ibcerrors.ErrInvalidHeight, + }, + } + + for _, tc := range testCases { + tc := tc + suite.Run(tc.name, func() { + suite.SetupTest() // reset + + path = ibctesting.NewPath(suite.chainA, suite.chainB) + path.SetupClients() + + clientID = path.EndpointA.ClientID + clientState, ok := path.EndpointA.GetClientState().(*ibctm.ClientState) + suite.Require().True(ok) + revisionNumber := clienttypes.ParseChainID(clientState.ChainId) + + newUnbondindPeriod := ubdPeriod + trustingPeriod + newChainID, err := clienttypes.SetRevisionNumber(clientState.ChainId, revisionNumber+1) + suite.Require().NoError(err) + + upgradedClientState = ibctm.NewClientState(newChainID, ibctm.DefaultTrustLevel, trustingPeriod, newUnbondindPeriod, maxClockDrift, clienttypes.NewHeight(revisionNumber+1, clientState.LatestHeight.GetRevisionHeight()+1), commitmenttypes.GetSDKSpecs(), upgradePath) + upgradedClientStateAny, err = codectypes.NewAnyWithValue(upgradedClientState) + suite.Require().NoError(err) + + nextValsHash := sha256.Sum256([]byte("new-nextValsHash")) + upgradedConsensusState := ibctm.NewConsensusState(time.Now(), commitmenttypes.NewMerkleRoot([]byte("new-hash")), nextValsHash[:]) + + upgradedConsensusStateAny, err = codectypes.NewAnyWithValue(upgradedConsensusState) + suite.Require().NoError(err) + + tc.malleate() + + lightClientModule, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.Route(clientID) + suite.Require().True(found) + + err = lightClientModule.VerifyUpgradeAndUpdateState( + suite.chainA.GetContext(), + clientID, + upgradedClientStateAny.Value, + upgradedConsensusStateAny.Value, + upgradedClientStateProof, + upgradedConsensusStateProof, + ) + + expPass := tc.expErr == nil + if expPass { + suite.Require().NoError(err) + + expClientState := path.EndpointA.GetClientState() + expClientStateBz := suite.chainA.Codec.MustMarshal(expClientState) + suite.Require().Equal(upgradedClientStateAny.Value, expClientStateBz) + + expConsensusState := ibctm.NewConsensusState(upgradedConsensusState.Timestamp, commitmenttypes.NewMerkleRoot([]byte(ibctm.SentinelRoot)), upgradedConsensusState.NextValidatorsHash) + expConsensusStateBz := suite.chainA.Codec.MustMarshal(expConsensusState) + + consensusStateBz := suite.chainA.Codec.MustMarshal(path.EndpointA.GetConsensusState(path.EndpointA.GetClientLatestHeight())) + suite.Require().Equal(expConsensusStateBz, consensusStateBz) + } else { + suite.Require().Error(err) + suite.Require().ErrorIs(err, tc.expErr) + } + }) + } +} diff --git a/modules/light-clients/07-tendermint/misbehaviour_handle_test.go b/modules/light-clients/07-tendermint/misbehaviour_handle_test.go index f44dd836688..074cb8f65f5 100644 --- a/modules/light-clients/07-tendermint/misbehaviour_handle_test.go +++ b/modules/light-clients/07-tendermint/misbehaviour_handle_test.go @@ -368,13 +368,12 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() { err := path.EndpointA.CreateClient() suite.Require().NoError(err) - tc.malleate() + lightClientModule, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.Route(path.EndpointA.ClientID) + suite.Require().True(found) - clientState, ok := path.EndpointA.GetClientState().(*ibctm.ClientState) - suite.Require().True(ok) - clientStore := suite.chainA.App.GetIBCKeeper().ClientKeeper.ClientStore(suite.chainA.GetContext(), path.EndpointA.ClientID) + tc.malleate() - err = clientState.VerifyClientMessage(suite.chainA.GetContext(), suite.chainA.App.AppCodec(), clientStore, misbehaviour) + err = lightClientModule.VerifyClientMessage(suite.chainA.GetContext(), path.EndpointA.ClientID, misbehaviour) if tc.expPass { suite.Require().NoError(err) @@ -678,13 +677,12 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() { err := path.EndpointA.CreateClient() suite.Require().NoError(err) - tc.malleate() + lightClientModule, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.Route(path.EndpointA.ClientID) + suite.Require().True(found) - clientState, ok := path.EndpointA.GetClientState().(*ibctm.ClientState) - suite.Require().True(ok) - clientStore := suite.chainA.App.GetIBCKeeper().ClientKeeper.ClientStore(suite.chainA.GetContext(), path.EndpointA.ClientID) + tc.malleate() - err = clientState.VerifyClientMessage(suite.chainA.GetContext(), suite.chainA.App.AppCodec(), clientStore, misbehaviour) + err = lightClientModule.VerifyClientMessage(suite.chainA.GetContext(), path.EndpointA.ClientID, misbehaviour) if tc.expPass { suite.Require().NoError(err) diff --git a/modules/light-clients/07-tendermint/update_test.go b/modules/light-clients/07-tendermint/update_test.go index 178ffa6195b..b0e46db7d6f 100644 --- a/modules/light-clients/07-tendermint/update_test.go +++ b/modules/light-clients/07-tendermint/update_test.go @@ -307,14 +307,12 @@ func (suite *TendermintTestSuite) TestVerifyHeader() { header, err = path.EndpointA.Counterparty.Chain.IBCClientHeader(path.EndpointA.Counterparty.Chain.LatestCommittedHeader, trustedHeight) suite.Require().NoError(err) - tc.malleate() - - clientState, ok := path.EndpointA.GetClientState().(*ibctm.ClientState) - suite.Require().True(ok) + lightClientModule, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.Route(path.EndpointA.ClientID) + suite.Require().True(found) - clientStore := suite.chainA.App.GetIBCKeeper().ClientKeeper.ClientStore(suite.chainA.GetContext(), path.EndpointA.ClientID) + tc.malleate() - err = clientState.VerifyClientMessage(suite.chainA.GetContext(), suite.chainA.App.AppCodec(), clientStore, header) + err = lightClientModule.VerifyClientMessage(suite.chainA.GetContext(), path.EndpointA.ClientID, header) if tc.expPass { suite.Require().NoError(err, tc.name) @@ -524,14 +522,15 @@ func (suite *TendermintTestSuite) TestUpdateState() { clientMessage, err = path.EndpointA.Counterparty.Chain.IBCClientHeader(path.EndpointA.Counterparty.Chain.LatestCommittedHeader, trustedHeight) suite.Require().NoError(err) + lightClientModule, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.Route(path.EndpointA.ClientID) + suite.Require().True(found) + tc.malleate() - clientState, ok := path.EndpointA.GetClientState().(*ibctm.ClientState) - suite.Require().True(ok) clientStore = suite.chainA.App.GetIBCKeeper().ClientKeeper.ClientStore(suite.chainA.GetContext(), path.EndpointA.ClientID) if tc.expPass { - consensusHeights = clientState.UpdateState(suite.chainA.GetContext(), suite.chainA.App.AppCodec(), clientStore, clientMessage) + consensusHeights = lightClientModule.UpdateState(suite.chainA.GetContext(), path.EndpointA.ClientID, clientMessage) header, ok := clientMessage.(*ibctm.Header) suite.Require().True(ok) @@ -548,7 +547,7 @@ func (suite *TendermintTestSuite) TestUpdateState() { suite.Require().Equal(expConsensusState, updatedConsensusState) } else { - consensusHeights = clientState.UpdateState(suite.chainA.GetContext(), suite.chainA.App.AppCodec(), clientStore, clientMessage) + consensusHeights = lightClientModule.UpdateState(suite.chainA.GetContext(), path.EndpointA.ClientID, clientMessage) suite.Require().Empty(consensusHeights) consensusState, found := suite.chainA.GetSimApp().GetIBCKeeper().ClientKeeper.GetClientConsensusState(suite.chainA.GetContext(), path.EndpointA.ClientID, clienttypes.NewHeight(1, uint64(suite.chainB.GetContext().BlockHeight()))) @@ -895,16 +894,14 @@ func (suite *TendermintTestSuite) TestCheckForMisbehaviour() { clientMessage, err = path.EndpointA.Counterparty.Chain.IBCClientHeader(path.EndpointA.Counterparty.Chain.LatestCommittedHeader, trustedHeight) suite.Require().NoError(err) - tc.malleate() + lightClientModule, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.Route(path.EndpointA.ClientID) + suite.Require().True(found) - clientState, ok := path.EndpointA.GetClientState().(*ibctm.ClientState) - suite.Require().True(ok) - clientStore := suite.chainA.App.GetIBCKeeper().ClientKeeper.ClientStore(suite.chainA.GetContext(), path.EndpointA.ClientID) + tc.malleate() - foundMisbehaviour := clientState.CheckForMisbehaviour( + foundMisbehaviour := lightClientModule.CheckForMisbehaviour( suite.chainA.GetContext(), - suite.chainA.App.AppCodec(), - clientStore, // pass in clientID prefixed clientStore + path.EndpointA.ClientID, clientMessage, ) @@ -943,13 +940,14 @@ func (suite *TendermintTestSuite) TestUpdateStateOnMisbehaviour() { err := path.EndpointA.CreateClient() suite.Require().NoError(err) + lightClientModule, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.Route(path.EndpointA.ClientID) + suite.Require().True(found) + tc.malleate() - clientState, ok := path.EndpointA.GetClientState().(*ibctm.ClientState) - suite.Require().True(ok) clientStore := suite.chainA.App.GetIBCKeeper().ClientKeeper.ClientStore(suite.chainA.GetContext(), path.EndpointA.ClientID) - clientState.UpdateStateOnMisbehaviour(suite.chainA.GetContext(), suite.chainA.App.AppCodec(), clientStore, nil) + lightClientModule.UpdateStateOnMisbehaviour(suite.chainA.GetContext(), path.EndpointA.ClientID, nil) if tc.expPass { clientStateBz := clientStore.Get(host.ClientStateKey()) diff --git a/modules/light-clients/07-tendermint/upgrade_test.go b/modules/light-clients/07-tendermint/upgrade_test.go index cf71574c377..2f71d0ee29f 100644 --- a/modules/light-clients/07-tendermint/upgrade_test.go +++ b/modules/light-clients/07-tendermint/upgrade_test.go @@ -1,11 +1,14 @@ package tendermint_test import ( + "errors" + upgradetypes "cosmossdk.io/x/upgrade/types" clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" commitmenttypes "github.com/cosmos/ibc-go/v8/modules/core/23-commitment/types" "github.com/cosmos/ibc-go/v8/modules/core/exported" + solomachine "github.com/cosmos/ibc-go/v8/modules/light-clients/06-solomachine" ibctm "github.com/cosmos/ibc-go/v8/modules/light-clients/07-tendermint" ibctesting "github.com/cosmos/ibc-go/v8/testing" ) @@ -13,7 +16,7 @@ import ( func (suite *TendermintTestSuite) TestVerifyUpgrade() { var ( newChainID string - upgradedClient *ibctm.ClientState + upgradedClient exported.ClientState upgradedConsState exported.ConsensusState lastHeight clienttypes.Height path *ibctesting.Path @@ -23,9 +26,9 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { ) testCases := []struct { - name string - setup func() - expPass bool + name string + setup func() + expErr error }{ { name: "successful upgrade", @@ -38,7 +41,6 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedConsensusState(suite.chainB.GetContext(), int64(lastHeight.GetRevisionHeight()), upgradedConsStateBz) //nolint:errcheck // ignore error for test // commit upgrade store changes and update clients - suite.coordinator.CommitBlock(suite.chainB) err := path.EndpointA.UpdateClient() suite.Require().NoError(err) @@ -51,13 +53,13 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { upgradedClientProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedClientKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) upgradedConsensusStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedConsStateKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) }, - expPass: true, + expErr: nil, }, { name: "successful upgrade to same revision", setup: func() { - upgradedClient = ibctm.NewClientState(suite.chainB.ChainID, ibctm.DefaultTrustLevel, trustingPeriod, ubdPeriod+trustingPeriod, maxClockDrift, clienttypes.NewHeight(clienttypes.ParseChainID(suite.chainB.ChainID), upgradedClient.LatestHeight.GetRevisionHeight()+10), commitmenttypes.GetSDKSpecs(), upgradePath) - upgradedClient = upgradedClient.ZeroCustomFields() + upgradedClient = ibctm.NewClientState(suite.chainB.ChainID, ibctm.DefaultTrustLevel, trustingPeriod, ubdPeriod+trustingPeriod, maxClockDrift, clienttypes.NewHeight(clienttypes.ParseChainID(suite.chainB.ChainID), upgradedClient.(*ibctm.ClientState).LatestHeight.GetRevisionHeight()+10), commitmenttypes.GetSDKSpecs(), upgradePath) + upgradedClient = upgradedClient.(*ibctm.ClientState).ZeroCustomFields() upgradedClientBz, err = clienttypes.MarshalClientState(suite.chainA.App.AppCodec(), upgradedClient) suite.Require().NoError(err) @@ -82,9 +84,48 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { upgradedClientProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedClientKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) upgradedConsensusStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedConsStateKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) }, - expPass: true, + expErr: nil, + }, + { + name: "unsuccessful upgrade: upgrade path not set", + setup: func() { + suite.coordinator.CommitBlock(suite.chainB) + err := path.EndpointA.UpdateClient() + suite.Require().NoError(err) + + cs, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.GetClientState(suite.chainA.GetContext(), path.EndpointA.ClientID) + suite.Require().True(found) + tmCs, ok := cs.(*ibctm.ClientState) + suite.Require().True(ok) + + // set upgrade path to empty + tmCs.UpgradePath = []string{} + suite.chainA.App.GetIBCKeeper().ClientKeeper.SetClientState(suite.chainA.GetContext(), path.EndpointA.ClientID, tmCs) + + upgradedClientProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedClientKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) + upgradedConsensusStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedConsStateKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) + }, + expErr: clienttypes.ErrInvalidUpgradeClient, }, + { + name: "unsuccessful upgrade: upgrade consensus state must be tendermint consensus state", + setup: func() { + upgradedConsState = &solomachine.ConsensusState{} + + suite.coordinator.CommitBlock(suite.chainB) + err := path.EndpointA.UpdateClient() + suite.Require().NoError(err) + cs, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.GetClientState(suite.chainA.GetContext(), path.EndpointA.ClientID) + suite.Require().True(found) + tmCs, ok := cs.(*ibctm.ClientState) + suite.Require().True(ok) + + upgradedClientProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedClientKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) + upgradedConsensusStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedConsStateKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) + }, + expErr: clienttypes.ErrInvalidConsensus, + }, { name: "unsuccessful upgrade: upgrade height revision height is more than the current client revision height", setup: func() { @@ -109,7 +150,7 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { upgradedClientProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedClientKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) upgradedConsensusStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedConsStateKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) }, - expPass: false, + expErr: commitmenttypes.ErrInvalidProof, }, { name: "unsuccessful upgrade: committed client does not have zeroed custom fields", @@ -140,7 +181,7 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { upgradedClientProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedClientKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) upgradedConsensusStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedConsStateKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) }, - expPass: false, + expErr: commitmenttypes.ErrInvalidProof, }, { name: "unsuccessful upgrade: chain-specified parameters do not match committed client", @@ -149,14 +190,16 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { lastHeight = clienttypes.NewHeight(0, uint64(suite.chainB.GetContext().BlockHeight()+1)) // zero custom fields and store in upgrade store - suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedClient(suite.chainB.GetContext(), int64(lastHeight.GetRevisionHeight()), upgradedClientBz) //nolint:errcheck // ignore error for test - suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedConsensusState(suite.chainB.GetContext(), int64(lastHeight.GetRevisionHeight()), upgradedConsStateBz) //nolint:errcheck // ignore error for test + err := suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedClient(suite.chainB.GetContext(), int64(lastHeight.GetRevisionHeight()), upgradedClientBz) + suite.Require().NoError(err) + err = suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedConsensusState(suite.chainB.GetContext(), int64(lastHeight.GetRevisionHeight()), upgradedConsStateBz) + suite.Require().NoError(err) // change upgradedClient client-specified parameters upgradedClient = ibctm.NewClientState("wrongchainID", ibctm.DefaultTrustLevel, trustingPeriod, ubdPeriod, maxClockDrift, newClientHeight, commitmenttypes.GetSDKSpecs(), upgradePath) suite.coordinator.CommitBlock(suite.chainB) - err := path.EndpointA.UpdateClient() + err = path.EndpointA.UpdateClient() suite.Require().NoError(err) cs, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.GetClientState(suite.chainA.GetContext(), path.EndpointA.ClientID) @@ -167,20 +210,25 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { upgradedClientProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedClientKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) upgradedConsensusStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedConsStateKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) }, - expPass: false, + expErr: commitmenttypes.ErrInvalidProof, }, { name: "unsuccessful upgrade: client-specified parameters do not match previous client", setup: func() { + // upgrade Height is at next block + lastHeight = clienttypes.NewHeight(0, uint64(suite.chainB.GetContext().BlockHeight()+1)) + // zero custom fields and store in upgrade store - suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedClient(suite.chainB.GetContext(), int64(lastHeight.GetRevisionHeight()), upgradedClientBz) //nolint:errcheck // ignore error for test - suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedConsensusState(suite.chainB.GetContext(), int64(lastHeight.GetRevisionHeight()), upgradedConsStateBz) //nolint:errcheck // ignore error for test + err := suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedClient(suite.chainB.GetContext(), int64(lastHeight.GetRevisionHeight()), upgradedClientBz) + suite.Require().NoError(err) + err = suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedConsensusState(suite.chainB.GetContext(), int64(lastHeight.GetRevisionHeight()), upgradedConsStateBz) + suite.Require().NoError(err) // change upgradedClient client-specified parameters upgradedClient = ibctm.NewClientState(newChainID, ibctm.DefaultTrustLevel, ubdPeriod, ubdPeriod+trustingPeriod, maxClockDrift+5, lastHeight, commitmenttypes.GetSDKSpecs(), upgradePath) suite.coordinator.CommitBlock(suite.chainB) - err := path.EndpointA.UpdateClient() + err = path.EndpointA.UpdateClient() suite.Require().NoError(err) cs, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.GetClientState(suite.chainA.GetContext(), path.EndpointA.ClientID) @@ -191,25 +239,24 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { upgradedClientProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedClientKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) upgradedConsensusStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedConsStateKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) }, - expPass: false, + expErr: commitmenttypes.ErrInvalidProof, + }, + { + name: "unsuccessful upgrade: upgrade client is not tendermint", + setup: func() { + upgradedClient = &solomachine.ClientState{} + }, + expErr: clienttypes.ErrInvalidClientType, }, { name: "unsuccessful upgrade: relayer-submitted consensus state does not match counterparty-committed consensus state", setup: func() { - // upgrade Height is at next block - lastHeight = clienttypes.NewHeight(0, uint64(suite.chainB.GetContext().BlockHeight()+1)) - - // zero custom fields and store in upgrade store - suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedClient(suite.chainB.GetContext(), int64(lastHeight.GetRevisionHeight()), upgradedClientBz) //nolint:errcheck // ignore error for test - suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedConsensusState(suite.chainB.GetContext(), int64(lastHeight.GetRevisionHeight()), upgradedConsStateBz) //nolint:errcheck // ignore error for test - // change submitted upgradedConsensusState upgradedConsState = &ibctm.ConsensusState{ NextValidatorsHash: []byte("maliciousValidators"), } // commit upgrade store changes and update clients - suite.coordinator.CommitBlock(suite.chainB) err := path.EndpointA.UpdateClient() suite.Require().NoError(err) @@ -222,13 +269,11 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { upgradedClientProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedClientKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) upgradedConsensusStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedConsStateKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) }, - expPass: false, + expErr: commitmenttypes.ErrInvalidProof, }, { name: "unsuccessful upgrade: client proof unmarshal failed", setup: func() { - suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedConsensusState(suite.chainB.GetContext(), int64(lastHeight.GetRevisionHeight()), upgradedConsStateBz) //nolint:errcheck // ignore error for test - cs, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.GetClientState(suite.chainA.GetContext(), path.EndpointA.ClientID) suite.Require().True(found) tmCs, ok := cs.(*ibctm.ClientState) @@ -238,13 +283,11 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { upgradedClientProof = []byte("proof") }, - expPass: false, + expErr: errors.New("could not unmarshal client merkle proof"), }, { name: "unsuccessful upgrade: consensus state proof unmarshal failed", setup: func() { - suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedClient(suite.chainB.GetContext(), int64(lastHeight.GetRevisionHeight()), upgradedClientBz) //nolint:errcheck // ignore error for test - cs, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.GetClientState(suite.chainA.GetContext(), path.EndpointA.ClientID) suite.Require().True(found) tmCs, ok := cs.(*ibctm.ClientState) @@ -254,7 +297,7 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { upgradedConsensusStateProof = []byte("proof") }, - expPass: false, + expErr: errors.New("could not unmarshal consensus state merkle proof"), }, { name: "unsuccessful upgrade: client proof verification failed", @@ -274,7 +317,7 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { upgradedClientProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedClientKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) upgradedConsensusStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedConsStateKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) }, - expPass: false, + expErr: commitmenttypes.ErrInvalidProof, }, { name: "unsuccessful upgrade: consensus state proof verification failed", @@ -294,10 +337,10 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { upgradedClientProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedClientKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) upgradedConsensusStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedConsStateKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) }, - expPass: false, + expErr: commitmenttypes.ErrInvalidProof, }, { - name: "unsuccessful upgrade: upgrade path is empty", + name: "unsuccessful upgrade: client state merkle path is empty", setup: func() { // upgrade Height is at next block lastHeight = clienttypes.NewHeight(0, uint64(suite.chainB.GetContext().BlockHeight()+1)) @@ -306,7 +349,6 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedClient(suite.chainB.GetContext(), int64(lastHeight.GetRevisionHeight()), upgradedClientBz) //nolint:errcheck // ignore error for test // commit upgrade store changes and update clients - suite.coordinator.CommitBlock(suite.chainB) err := path.EndpointA.UpdateClient() suite.Require().NoError(err) @@ -319,13 +361,13 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { upgradedClientProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedClientKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) upgradedConsensusStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedConsStateKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) - // SetClientState with empty upgrade path + // SetClientState with empty string upgrade path tmClient, ok := cs.(*ibctm.ClientState) suite.Require().True(ok) tmClient.UpgradePath = []string{""} suite.chainA.App.GetIBCKeeper().ClientKeeper.SetClientState(suite.chainA.GetContext(), path.EndpointA.ClientID, tmClient) }, - expPass: false, + expErr: errors.New("client state proof failed"), }, { name: "unsuccessful upgrade: upgraded height is not greater than current height", @@ -337,7 +379,6 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedClient(suite.chainB.GetContext(), int64(lastHeight.GetRevisionHeight()), upgradedClientBz) //nolint:errcheck // ignore error for test // commit upgrade store changes and update clients - suite.coordinator.CommitBlock(suite.chainB) err := path.EndpointA.UpdateClient() suite.Require().NoError(err) @@ -350,7 +391,7 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { upgradedClientProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedClientKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) upgradedConsensusStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedConsStateKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) }, - expPass: false, + expErr: errors.New("consensus state proof failed"), }, { name: "unsuccessful upgrade: consensus state for upgrade height cannot be found", @@ -362,7 +403,6 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedClient(suite.chainB.GetContext(), int64(lastHeight.GetRevisionHeight()), upgradedClientBz) //nolint:errcheck // ignore error for // commit upgrade store changes and update clients - suite.coordinator.CommitBlock(suite.chainB) err := path.EndpointA.UpdateClient() suite.Require().NoError(err) @@ -375,7 +415,7 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { upgradedClientProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedClientKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) upgradedConsensusStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedConsStateKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) }, - expPass: false, + expErr: commitmenttypes.ErrInvalidProof, }, { name: "unsuccessful upgrade: client is expired", @@ -384,7 +424,6 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedClient(suite.chainB.GetContext(), int64(lastHeight.GetRevisionHeight()), upgradedClientBz) //nolint:errcheck // ignore error for test // commit upgrade store changes and update clients - suite.coordinator.CommitBlock(suite.chainB) err := path.EndpointA.UpdateClient() suite.Require().NoError(err) @@ -400,7 +439,7 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { upgradedClientProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedClientKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) upgradedConsensusStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedConsStateKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) }, - expPass: false, + expErr: commitmenttypes.ErrInvalidProof, }, { name: "unsuccessful upgrade: updated unbonding period is equal to trusting period", @@ -412,7 +451,6 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedClient(suite.chainB.GetContext(), int64(lastHeight.GetRevisionHeight()), upgradedClientBz) //nolint:errcheck // ignore error for test // commit upgrade store changes and update clients - suite.coordinator.CommitBlock(suite.chainB) err := path.EndpointA.UpdateClient() suite.Require().NoError(err) @@ -425,7 +463,7 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { upgradedClientProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedClientKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) upgradedConsensusStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedConsStateKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) }, - expPass: false, + expErr: commitmenttypes.ErrInvalidProof, }, { name: "unsuccessful upgrade: final client is not valid", @@ -443,7 +481,6 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedConsensusState(suite.chainB.GetContext(), int64(lastHeight.GetRevisionHeight()), upgradedConsStateBz) //nolint:errcheck // ignore error for testing // commit upgrade store changes and update clients - suite.coordinator.CommitBlock(suite.chainB) err := path.EndpointA.UpdateClient() suite.Require().NoError(err) @@ -456,7 +493,39 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { upgradedClientProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedClientKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) upgradedConsensusStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedConsStateKey(int64(lastHeight.GetRevisionHeight())), tmCs.LatestHeight.GetRevisionHeight()) }, - expPass: false, + expErr: commitmenttypes.ErrInvalidProof, + }, + { + name: "unsuccessful upgrade: consensus state not found for latest height", + setup: func() { + // upgrade Height is at next block + lastHeight = clienttypes.NewHeight(0, uint64(suite.chainB.GetContext().BlockHeight()+1)) + + // zero custom fields and store in upgrade store + suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedClient(suite.chainB.GetContext(), int64(lastHeight.GetRevisionHeight()), upgradedClientBz) //nolint:errcheck // ignore error for test + suite.chainB.GetSimApp().UpgradeKeeper.SetUpgradedConsensusState(suite.chainB.GetContext(), int64(lastHeight.GetRevisionHeight()), upgradedConsStateBz) //nolint:errcheck // ignore error for test + + // commit upgrade store changes and update clients + + suite.coordinator.CommitBlock(suite.chainB) + err := path.EndpointA.UpdateClient() + suite.Require().NoError(err) + + cs, found := suite.chainA.App.GetIBCKeeper().ClientKeeper.GetClientState(suite.chainA.GetContext(), path.EndpointA.ClientID) + suite.Require().True(found) + tmCs, ok := cs.(*ibctm.ClientState) + suite.Require().True(ok) + + revisionHeight := tmCs.LatestHeight.GetRevisionHeight() + + // set latest height to a height where consensus state does not exist + tmCs.LatestHeight = clienttypes.NewHeight(tmCs.LatestHeight.GetRevisionNumber(), tmCs.LatestHeight.GetRevisionHeight()+5) + suite.chainA.App.GetIBCKeeper().ClientKeeper.SetClientState(suite.chainA.GetContext(), path.EndpointA.ClientID, tmCs) + + upgradedClientProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedClientKey(int64(lastHeight.GetRevisionHeight())), revisionHeight) + upgradedConsensusStateProof, _ = suite.chainB.QueryUpgradeProof(upgradetypes.UpgradedConsStateKey(int64(lastHeight.GetRevisionHeight())), revisionHeight) + }, + expErr: clienttypes.ErrConsensusStateNotFound, }, } @@ -479,7 +548,11 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { suite.Require().NoError(err) upgradedClient = ibctm.NewClientState(newChainID, ibctm.DefaultTrustLevel, trustingPeriod, ubdPeriod+trustingPeriod, maxClockDrift, clienttypes.NewHeight(revisionNumber+1, clientState.LatestHeight.GetRevisionHeight()+1), commitmenttypes.GetSDKSpecs(), upgradePath) - upgradedClient = upgradedClient.ZeroCustomFields() + + if upgraded, ok := upgradedClient.(*ibctm.ClientState); ok { + upgradedClient = upgraded.ZeroCustomFields() + } + upgradedClientBz, err = clienttypes.MarshalClientState(suite.chainA.App.AppCodec(), upgradedClient) suite.Require().NoError(err) @@ -496,7 +569,9 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { clientStore := suite.chainA.App.GetIBCKeeper().ClientKeeper.ClientStore(suite.chainA.GetContext(), path.EndpointA.ClientID) // Call ZeroCustomFields on upgraded clients to clear any client-chosen parameters in test-case upgradedClient - upgradedClient = upgradedClient.ZeroCustomFields() + if upgraded, ok := upgradedClient.(*ibctm.ClientState); ok { + upgradedClient = upgraded.ZeroCustomFields() + } err = cs.VerifyUpgradeAndUpdateState( suite.chainA.GetContext(), @@ -508,7 +583,8 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { upgradedConsensusStateProof, ) - if tc.expPass { + expPass := tc.expErr == nil + if expPass { suite.Require().NoError(err, "verify upgrade failed on valid case: %s", tc.name) clientState, ok := suite.chainA.GetClientState(path.EndpointA.ClientID).(*ibctm.ClientState) @@ -519,7 +595,7 @@ func (suite *TendermintTestSuite) TestVerifyUpgrade() { suite.Require().NotNil(consensusState, "verify upgrade failed on valid case: %s", tc.name) suite.Require().True(found) } else { - suite.Require().Error(err, "verify upgrade passed on invalid case: %s", tc.name) + suite.Require().ErrorContains(err, tc.expErr.Error(), "verify upgrade passed on invalid case: %s", tc.name) } }) } From 23f6751bfd93f9c34eb8b70bda3d32165efd432c Mon Sep 17 00:00:00 2001 From: PolyMa <151764357+polymaer@users.noreply.github.com> Date: Wed, 22 May 2024 15:40:01 +0800 Subject: [PATCH 60/62] docs: fix the warning syntax error across docs (#6351) * fix the warning syntax error across docs. * fix rendering of tip admonition --------- Co-authored-by: Carlos Rodriguez Co-authored-by: Damian Nolan --- docs/docs/01-ibc/03-apps/01-apps.md | 2 +- docs/docs/01-ibc/06-channel-upgrades.md | 2 +- docs/docs/02-apps/01-transfer/07-params.md | 4 ++-- docs/docs/04-middleware/02-callbacks/02-integration.md | 4 ++-- docs/docs/04-middleware/02-callbacks/05-end-users.md | 8 ++++---- .../version-v7.5.x/01-ibc/03-apps/02-ibcmodule.md | 2 +- .../04-middleware/02-callbacks/02-integration.md | 4 ++-- .../04-middleware/02-callbacks/05-end-users.md | 8 ++++---- .../version-v8.3.x/01-ibc/03-apps/01-apps.md | 2 +- .../version-v8.3.x/01-ibc/06-channel-upgrades.md | 2 +- .../version-v8.3.x/02-apps/01-transfer/07-params.md | 4 ++-- .../04-middleware/02-callbacks/02-integration.md | 4 ++-- .../04-middleware/02-callbacks/05-end-users.md | 8 ++++---- 13 files changed, 27 insertions(+), 27 deletions(-) diff --git a/docs/docs/01-ibc/03-apps/01-apps.md b/docs/docs/01-ibc/03-apps/01-apps.md index 48ea8fc82c3..eacd37d24cc 100644 --- a/docs/docs/01-ibc/03-apps/01-apps.md +++ b/docs/docs/01-ibc/03-apps/01-apps.md @@ -314,7 +314,7 @@ sequence, err := IBCChannelKeeper.SendPacket( ) ``` -::: warning +:::warning In order to prevent modules from sending packets on channels they do not own, IBC expects modules to pass in the correct channel capability for the packet's source channel. ::: diff --git a/docs/docs/01-ibc/06-channel-upgrades.md b/docs/docs/01-ibc/06-channel-upgrades.md index 45c0cfd77c6..841d11f42fd 100644 --- a/docs/docs/01-ibc/06-channel-upgrades.md +++ b/docs/docs/01-ibc/06-channel-upgrades.md @@ -70,7 +70,7 @@ As part of the handling of the `MsgChannelUpgradeInit` message, the application' After this message is handled successfully, the channel's upgrade sequence will be incremented. This upgrade sequence will serve as a nonce for the upgrade process to provide replay protection. -::: warning +:::warning Initiating an upgrade in the same block as opening a channel may potentially prevent the counterparty channel from also opening. ::: diff --git a/docs/docs/02-apps/01-transfer/07-params.md b/docs/docs/02-apps/01-transfer/07-params.md index 635344edea4..f3aeee45d48 100644 --- a/docs/docs/02-apps/01-transfer/07-params.md +++ b/docs/docs/02-apps/01-transfer/07-params.md @@ -26,7 +26,7 @@ To prevent a single token from being transferred from the chain, set the `SendEn - For Cosmos SDK v0.46.x or earlier, set the bank module's [`SendEnabled` parameter](https://github.com/cosmos/cosmos-sdk/blob/release/v0.46.x/x/bank/spec/05_params.md#sendenabled) for the denomination to `false`. - For Cosmos SDK versions above v0.46.x, set the bank module's `SendEnabled` entry for the denomination to `false` using `MsgSetSendEnabled` as a governance proposal. -::: warning +:::warning Doing so will prevent the token from being transferred between any accounts in the blockchain. ::: @@ -39,7 +39,7 @@ To prevent a single token from being transferred to the chain, set the `ReceiveE - For Cosmos SDK v0.46.x or earlier, set the bank module's [`SendEnabled` parameter](https://github.com/cosmos/cosmos-sdk/blob/release/v0.46.x/x/bank/spec/05_params.md#sendenabled) for the denomination to `false`. - For Cosmos SDK versions above v0.46.x, set the bank module's `SendEnabled` entry for the denomination to `false` using `MsgSetSendEnabled` as a governance proposal. -::: warning +:::warning Doing so will prevent the token from being transferred between any accounts in the blockchain. ::: diff --git a/docs/docs/04-middleware/02-callbacks/02-integration.md b/docs/docs/04-middleware/02-callbacks/02-integration.md index d0ec7e03e1a..189848c6963 100644 --- a/docs/docs/04-middleware/02-callbacks/02-integration.md +++ b/docs/docs/04-middleware/02-callbacks/02-integration.md @@ -74,7 +74,7 @@ app.TransferKeeper.WithICS4Wrapper(transferICS4Wrapper) ibcRouter.AddRoute(ibctransfertypes.ModuleName, transferStack) ``` -::: warning +:::warning The usage of `WithICS4Wrapper` after `transferStack`'s configuration is critical! It allows the callbacks middleware to do `SendPacket` callbacks and asynchronous `ReceivePacket` callbacks. You must do this regardless of whether you are using the `29-fee` middleware or not. ::: @@ -108,6 +108,6 @@ AddRoute(icacontrollertypes.SubModuleName, icaControllerStack). AddRoute(icahosttypes.SubModuleName, icaHostStack). ``` -::: warning +:::warning The usage of `WithICS4Wrapper` here is also critical! ::: diff --git a/docs/docs/04-middleware/02-callbacks/05-end-users.md b/docs/docs/04-middleware/02-callbacks/05-end-users.md index f2500ae3c05..fe74a6a747e 100644 --- a/docs/docs/04-middleware/02-callbacks/05-end-users.md +++ b/docs/docs/04-middleware/02-callbacks/05-end-users.md @@ -18,11 +18,11 @@ This section explains how to use the callbacks middleware from the perspective o For a given channel, the source callbacks are supported if the source chain has the callbacks middleware wired up in the channel's IBC stack. Similarly, the destination callbacks are supported if the destination chain has the callbacks middleware wired up in the channel's IBC stack. -::: tip +:::tip Callbacks are always executed after the packet has been processed by the underlying IBC module. ::: -::: warning +:::warning If the underlying application module is doing an asynchronous acknowledgement on packet receive (for example, if the [packet forward middleware](https://github.com/cosmos/ibc-apps/tree/main/middleware/packet-forward-middleware) is in the stack, and is being used by this packet), then the callbacks middleware will execute the `ReceivePacket` callback after the acknowledgement has been received. ::: @@ -85,12 +85,12 @@ User defined gas limit was added for the following reasons: - To prevent callbacks from blocking packet lifecycle. - To prevent relayers from being able to DOS the callback execution by sending a packet with a low amount of gas. -::: tip +:::tip There is a chain wide parameter that sets the maximum gas limit that a user can set for a callback. This is to prevent a user from setting a gas limit that is too high for relayers. If the `"gas_limit"` is not set in the packet memo, then the maximum gas limit is used. ::: These goals are achieved by creating a minimum gas amount required for callback execution. If the relayer provides at least the minimum gas limit for the callback execution, then the packet lifecycle will not be blocked if the callback runs out of gas during execution, and the callback cannot be retried. If the relayer does not provided the minimum amount of gas and the callback executions runs out of gas, the entire tx is reverted and it may be executed again. -::: tip +:::tip `SendPacket` callback is always reverted if the callback execution fails or returns an error for any reason. This is so that the packet is not sent if the callback execution fails. ::: diff --git a/docs/versioned_docs/version-v7.5.x/01-ibc/03-apps/02-ibcmodule.md b/docs/versioned_docs/version-v7.5.x/01-ibc/03-apps/02-ibcmodule.md index e654a6a03ad..c082784a407 100644 --- a/docs/versioned_docs/version-v7.5.x/01-ibc/03-apps/02-ibcmodule.md +++ b/docs/versioned_docs/version-v7.5.x/01-ibc/03-apps/02-ibcmodule.md @@ -254,7 +254,7 @@ sequence, err := IBCChannelKeeper.SendPacket( ) ``` -::: warning +:::warning In order to prevent modules from sending packets on channels they do not own, IBC expects modules to pass in the correct channel capability for the packet's source channel. ::: diff --git a/docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/02-integration.md b/docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/02-integration.md index 85b2a3b5889..4b4e78688c9 100644 --- a/docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/02-integration.md +++ b/docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/02-integration.md @@ -69,7 +69,7 @@ app.TransferKeeper.WithICS4Wrapper(transferICS4Wrapper) ibcRouter.AddRoute(ibctransfertypes.ModuleName, transferStack) ``` -::: warning +:::warning The usage of `WithICS4Wrapper` after `transferStack`'s configuration is critical! It allows the callbacks middleware to do `SendPacket` callbacks and asynchronous `ReceivePacket` callbacks. You must do this regardless of whether you are using the `29-fee` middleware or not. ::: @@ -103,6 +103,6 @@ AddRoute(icacontrollertypes.SubModuleName, icaControllerStack). AddRoute(icahosttypes.SubModuleName, icaHostStack). ``` -::: warning +:::warning The usage of `WithICS4Wrapper` here is also critical! ::: diff --git a/docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/05-end-users.md b/docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/05-end-users.md index f2500ae3c05..fe74a6a747e 100644 --- a/docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/05-end-users.md +++ b/docs/versioned_docs/version-v7.5.x/04-middleware/02-callbacks/05-end-users.md @@ -18,11 +18,11 @@ This section explains how to use the callbacks middleware from the perspective o For a given channel, the source callbacks are supported if the source chain has the callbacks middleware wired up in the channel's IBC stack. Similarly, the destination callbacks are supported if the destination chain has the callbacks middleware wired up in the channel's IBC stack. -::: tip +:::tip Callbacks are always executed after the packet has been processed by the underlying IBC module. ::: -::: warning +:::warning If the underlying application module is doing an asynchronous acknowledgement on packet receive (for example, if the [packet forward middleware](https://github.com/cosmos/ibc-apps/tree/main/middleware/packet-forward-middleware) is in the stack, and is being used by this packet), then the callbacks middleware will execute the `ReceivePacket` callback after the acknowledgement has been received. ::: @@ -85,12 +85,12 @@ User defined gas limit was added for the following reasons: - To prevent callbacks from blocking packet lifecycle. - To prevent relayers from being able to DOS the callback execution by sending a packet with a low amount of gas. -::: tip +:::tip There is a chain wide parameter that sets the maximum gas limit that a user can set for a callback. This is to prevent a user from setting a gas limit that is too high for relayers. If the `"gas_limit"` is not set in the packet memo, then the maximum gas limit is used. ::: These goals are achieved by creating a minimum gas amount required for callback execution. If the relayer provides at least the minimum gas limit for the callback execution, then the packet lifecycle will not be blocked if the callback runs out of gas during execution, and the callback cannot be retried. If the relayer does not provided the minimum amount of gas and the callback executions runs out of gas, the entire tx is reverted and it may be executed again. -::: tip +:::tip `SendPacket` callback is always reverted if the callback execution fails or returns an error for any reason. This is so that the packet is not sent if the callback execution fails. ::: diff --git a/docs/versioned_docs/version-v8.3.x/01-ibc/03-apps/01-apps.md b/docs/versioned_docs/version-v8.3.x/01-ibc/03-apps/01-apps.md index 48ea8fc82c3..eacd37d24cc 100644 --- a/docs/versioned_docs/version-v8.3.x/01-ibc/03-apps/01-apps.md +++ b/docs/versioned_docs/version-v8.3.x/01-ibc/03-apps/01-apps.md @@ -314,7 +314,7 @@ sequence, err := IBCChannelKeeper.SendPacket( ) ``` -::: warning +:::warning In order to prevent modules from sending packets on channels they do not own, IBC expects modules to pass in the correct channel capability for the packet's source channel. ::: diff --git a/docs/versioned_docs/version-v8.3.x/01-ibc/06-channel-upgrades.md b/docs/versioned_docs/version-v8.3.x/01-ibc/06-channel-upgrades.md index 45c0cfd77c6..841d11f42fd 100644 --- a/docs/versioned_docs/version-v8.3.x/01-ibc/06-channel-upgrades.md +++ b/docs/versioned_docs/version-v8.3.x/01-ibc/06-channel-upgrades.md @@ -70,7 +70,7 @@ As part of the handling of the `MsgChannelUpgradeInit` message, the application' After this message is handled successfully, the channel's upgrade sequence will be incremented. This upgrade sequence will serve as a nonce for the upgrade process to provide replay protection. -::: warning +:::warning Initiating an upgrade in the same block as opening a channel may potentially prevent the counterparty channel from also opening. ::: diff --git a/docs/versioned_docs/version-v8.3.x/02-apps/01-transfer/07-params.md b/docs/versioned_docs/version-v8.3.x/02-apps/01-transfer/07-params.md index 635344edea4..f3aeee45d48 100644 --- a/docs/versioned_docs/version-v8.3.x/02-apps/01-transfer/07-params.md +++ b/docs/versioned_docs/version-v8.3.x/02-apps/01-transfer/07-params.md @@ -26,7 +26,7 @@ To prevent a single token from being transferred from the chain, set the `SendEn - For Cosmos SDK v0.46.x or earlier, set the bank module's [`SendEnabled` parameter](https://github.com/cosmos/cosmos-sdk/blob/release/v0.46.x/x/bank/spec/05_params.md#sendenabled) for the denomination to `false`. - For Cosmos SDK versions above v0.46.x, set the bank module's `SendEnabled` entry for the denomination to `false` using `MsgSetSendEnabled` as a governance proposal. -::: warning +:::warning Doing so will prevent the token from being transferred between any accounts in the blockchain. ::: @@ -39,7 +39,7 @@ To prevent a single token from being transferred to the chain, set the `ReceiveE - For Cosmos SDK v0.46.x or earlier, set the bank module's [`SendEnabled` parameter](https://github.com/cosmos/cosmos-sdk/blob/release/v0.46.x/x/bank/spec/05_params.md#sendenabled) for the denomination to `false`. - For Cosmos SDK versions above v0.46.x, set the bank module's `SendEnabled` entry for the denomination to `false` using `MsgSetSendEnabled` as a governance proposal. -::: warning +:::warning Doing so will prevent the token from being transferred between any accounts in the blockchain. ::: diff --git a/docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/02-integration.md b/docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/02-integration.md index bcc2a2502eb..37bc87c2482 100644 --- a/docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/02-integration.md +++ b/docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/02-integration.md @@ -69,7 +69,7 @@ app.TransferKeeper.WithICS4Wrapper(transferICS4Wrapper) ibcRouter.AddRoute(ibctransfertypes.ModuleName, transferStack) ``` -::: warning +:::warning The usage of `WithICS4Wrapper` after `transferStack`'s configuration is critical! It allows the callbacks middleware to do `SendPacket` callbacks and asynchronous `ReceivePacket` callbacks. You must do this regardless of whether you are using the `29-fee` middleware or not. ::: @@ -103,6 +103,6 @@ AddRoute(icacontrollertypes.SubModuleName, icaControllerStack). AddRoute(icahosttypes.SubModuleName, icaHostStack). ``` -::: warning +:::warning The usage of `WithICS4Wrapper` here is also critical! ::: diff --git a/docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/05-end-users.md b/docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/05-end-users.md index f2500ae3c05..fe74a6a747e 100644 --- a/docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/05-end-users.md +++ b/docs/versioned_docs/version-v8.3.x/04-middleware/02-callbacks/05-end-users.md @@ -18,11 +18,11 @@ This section explains how to use the callbacks middleware from the perspective o For a given channel, the source callbacks are supported if the source chain has the callbacks middleware wired up in the channel's IBC stack. Similarly, the destination callbacks are supported if the destination chain has the callbacks middleware wired up in the channel's IBC stack. -::: tip +:::tip Callbacks are always executed after the packet has been processed by the underlying IBC module. ::: -::: warning +:::warning If the underlying application module is doing an asynchronous acknowledgement on packet receive (for example, if the [packet forward middleware](https://github.com/cosmos/ibc-apps/tree/main/middleware/packet-forward-middleware) is in the stack, and is being used by this packet), then the callbacks middleware will execute the `ReceivePacket` callback after the acknowledgement has been received. ::: @@ -85,12 +85,12 @@ User defined gas limit was added for the following reasons: - To prevent callbacks from blocking packet lifecycle. - To prevent relayers from being able to DOS the callback execution by sending a packet with a low amount of gas. -::: tip +:::tip There is a chain wide parameter that sets the maximum gas limit that a user can set for a callback. This is to prevent a user from setting a gas limit that is too high for relayers. If the `"gas_limit"` is not set in the packet memo, then the maximum gas limit is used. ::: These goals are achieved by creating a minimum gas amount required for callback execution. If the relayer provides at least the minimum gas limit for the callback execution, then the packet lifecycle will not be blocked if the callback runs out of gas during execution, and the callback cannot be retried. If the relayer does not provided the minimum amount of gas and the callback executions runs out of gas, the entire tx is reverted and it may be executed again. -::: tip +:::tip `SendPacket` callback is always reverted if the callback execution fails or returns an error for any reason. This is so that the packet is not sent if the callback execution fails. ::: From af57c5daef5264500ccf8e26cb7b37fb2206ac96 Mon Sep 17 00:00:00 2001 From: srdtrk <59252793+srdtrk@users.noreply.github.com> Date: Wed, 22 May 2024 18:19:10 +0800 Subject: [PATCH 61/62] test: added packet data forwards compatibility test (#6089) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * test: added packet data backwards compatibility test * imp: fixed test case * imp: use expError --------- Co-authored-by: Carlos Rodriguez Co-authored-by: Colin Axnér <25233464+colin-axner@users.noreply.github.com> --- modules/apps/transfer/keeper/relay_test.go | 86 ++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/modules/apps/transfer/keeper/relay_test.go b/modules/apps/transfer/keeper/relay_test.go index 1eb02bba9bd..821a76a877c 100644 --- a/modules/apps/transfer/keeper/relay_test.go +++ b/modules/apps/transfer/keeper/relay_test.go @@ -13,6 +13,7 @@ import ( "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" + ibcerrors "github.com/cosmos/ibc-go/v8/modules/core/errors" ibctesting "github.com/cosmos/ibc-go/v8/testing" ) @@ -913,3 +914,88 @@ func (suite *KeeperTestSuite) TestOnTimeoutPacketSetsTotalEscrowAmountForSourceI totalEscrowChainB = suite.chainB.GetSimApp().TransferKeeper.GetTotalEscrowForDenom(suite.chainB.GetContext(), coin.GetDenom()) suite.Require().Equal(sdkmath.ZeroInt(), totalEscrowChainB.Amount) } + +func (suite *KeeperTestSuite) TestPacketForwardsCompatibility() { + // We are testing a scenario where a packet in the future has a new populated + // field called "new_field". And this packet is being sent to this module which + // doesn't have this field in the packet data. The module should be able to handle + // this packet without any issues. + + var packetData []byte + + testCases := []struct { + msg string + malleate func() + expError error + }{ + { + "success: new field", + func() { + jsonString := fmt.Sprintf(`{"denom":"denom","amount":"100","sender":"%s","receiver":"%s","memo":"memo","new_field":"value"}`, suite.chainB.SenderAccount.GetAddress().String(), suite.chainA.SenderAccount.GetAddress().String()) + packetData = []byte(jsonString) + }, + nil, + }, + { + "success: no new field with memo", + func() { + jsonString := fmt.Sprintf(`{"denom":"denom","amount":"100","sender":"%s","receiver":"%s","memo":"memo"}`, suite.chainB.SenderAccount.GetAddress().String(), suite.chainA.SenderAccount.GetAddress().String()) + packetData = []byte(jsonString) + }, + nil, + }, + { + "success: no new field without memo", + func() { + jsonString := fmt.Sprintf(`{"denom":"denom","amount":"100","sender":"%s","receiver":"%s"}`, suite.chainB.SenderAccount.GetAddress().String(), suite.chainA.SenderAccount.GetAddress().String()) + packetData = []byte(jsonString) + }, + nil, + }, + { + "failure: invalid packet data", + func() { + packetData = []byte("invalid packet data") + }, + ibcerrors.ErrUnknownRequest, + }, + { + "failure: missing field", + func() { + jsonString := fmt.Sprintf(`{"amount":"100","sender":%s","receiver":"%s"}`, suite.chainB.SenderAccount.GetAddress().String(), suite.chainA.SenderAccount.GetAddress().String()) + packetData = []byte(jsonString) + }, + ibcerrors.ErrUnknownRequest, + }, + } + + for _, tc := range testCases { + tc := tc + suite.Run(tc.msg, func() { + suite.SetupTest() // reset + packetData = nil + + path := ibctesting.NewTransferPath(suite.chainA, suite.chainB) + path.Setup() + + tc.malleate() + + timeoutHeight := suite.chainB.GetTimeoutHeight() + + seq, err := path.EndpointB.SendPacket(timeoutHeight, 0, packetData) + suite.Require().NoError(err) + + packet := channeltypes.NewPacket(packetData, seq, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, timeoutHeight, 0) + + // receive packet on chainA + err = path.RelayPacket(packet) + + expPass := tc.expError == nil + if expPass { + suite.Require().NoError(err) + } else { + suite.Require().ErrorContains(err, tc.expError.Error()) + } + }) + } +} From a1c5adead115c04ac67ed074410e6662fbfb98a6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 May 2024 16:26:48 +0200 Subject: [PATCH 62/62] --- (#6355) updated-dependencies: - dependency-name: bufbuild/buf-setup-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/proto-registry.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/proto-registry.yml b/.github/workflows/proto-registry.yml index 029d3db46e5..2031be3083c 100644 --- a/.github/workflows/proto-registry.yml +++ b/.github/workflows/proto-registry.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: bufbuild/buf-setup-action@v1.32.0 + - uses: bufbuild/buf-setup-action@v1.32.1 - uses: bufbuild/buf-push-action@v1 with: input: "proto"