Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix for Evmos tests #774

Merged
merged 10 commits into from
Jan 26, 2022
Merged

Fix for Evmos tests #774

merged 10 commits into from
Jan 26, 2022

Conversation

ramacarlucho
Copy link
Contributor

Description

When using ibctesting suite on evmos some tests where failing due to conflicts with the ChainID defined by the suite. This pr fixes these issues


Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

  • Targeted PR against correct branch (see CONTRIBUTING.md)
  • Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
  • Code follows the module structure standards.
  • Wrote unit and integration tests
  • Updated relevant documentation (docs/) or specification (x/<module>/spec/)
  • Added relevant godoc comments.
  • Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
  • Re-reviewed Files changed in the Github PR explorer
  • Review Codecov Report in the comment section below once CI passes

colin-axner and others added 2 commits January 5, 2022 13:32
* reorganize channel handshake handler (cosmos#647)

* reorganize channel handshake handler

split out channel state changes into its own function.

* readjust 27-interchain-accounts to not rely on state being set before the application callback

* add changelog and migration doc entry

* Update modules/core/04-channel/keeper/handshake.go

* docs: ICA Overview (cosmos#626)

* docs: ica overview

* fix: ordering

* add spacing

* fix: spacing

* fix: remove bulletpoints

* fix: wording

* update go mod for security vulnerabilities (cosmos#655)

* update go mod for security vulnerabilities

* update package-lock.json

* update vue dependency (cosmos#662)

* bump glob-parent version in json package (cosmos#663)

* build(deps): bump actions/setup-go from 2.1.4 to 2.1.5 (cosmos#656)

Bumps [actions/setup-go](https://github.com/actions/setup-go) from 2.1.4 to 2.1.5.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](actions/setup-go@v2.1.4...v2.1.5)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: colin axnér <[email protected]>

* docs: begin removal of internal "spec" directories (cosmos#634)

* begin removal of spec docs within core ibc

* remove broken link

* Apply suggestions from code review

Co-authored-by: Damian Nolan <[email protected]>

* remove broken link

* remove broken links

* Apply suggestions from code review

Co-authored-by: Carlos Rodriguez <[email protected]>

Co-authored-by: Damian Nolan <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>

* Modify `OnChanOpenTry` application callback to perform app version negotitation (cosmos#646)

* remove NegotiateAppVersion and AppVersion gRPC (cosmos#643)

The NegotiateAppVersion callback has been removed from the IBC Application interface.
The gRPC AppVersion has been removed.
The app version negoitation will be handled by applications by returning the version in OnChanOpenTry.

* Modify `OnChanOpenTry` to return application version (cosmos#650)

* modify OnChanOpenTry to return negotiated version

modify IBCModule interface function OnChanOpenTry to return the negotiated app version. Tests have not been updated

* fix ibc_module_test.go tests

* fix tests

* Apply suggestions from code review

* add handshake test case

* add CHANGELOG and migration docs

* update documentation

* fix broken link

* fix broken link (cosmos#664)

* chore: update make build-docs, add docs build checker (cosmos#667)

* update Makefile, add docs build checker

* Update .github/workflows/check-docs.yml

Co-authored-by: Marko <[email protected]>

Co-authored-by: Marko <[email protected]>

* register ICA query server, fix panics in params query cli (cosmos#666)

Register the controller and host query servers to a chain.
Returns an error upon cli params query failure instead of panicing.

* update of roadmap with latest release (cosmos#653)

* update of roadmap with latest release and changed the way release versions are encoded

* fixed typo

Co-authored-by: Carlos Rodriguez <[email protected]>

* build(deps): bump actions/checkout from 2.3.1 to 2.4.0 (cosmos#672)

Bumps [actions/checkout](https://github.com/actions/checkout) from 2.3.1 to 2.4.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v2.3.1...v2.4.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* allow ics20 to connect to middleware (cosmos#675)

* allow ics20 to connect to middleware

Creates ics4Wrapper which allows middleware applications to only implement SendPacket to connect ics20 as an application in its middleware stack

* add changelog and migration doc

* fix migration doc spelling

* fix: register InterchainAccount as x/auth GenesisAccount (cosmos#676)

* adding GenesisAccount interface registration for InterchainAccount impl

* updating RegisterInterfaces ica godoc

* enable mergify for backports (cosmos#678)

Co-authored-by: Carlos Rodriguez <[email protected]>

Co-authored-by: Sean King <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Damian Nolan <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>
Co-authored-by: Marko <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>
Copy link
Contributor

@fedekunze fedekunze left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, one comment only

@@ -174,7 +173,7 @@ func (coord *Coordinator) GetChain(chainID string) *TestChain {

// GetChainID returns the chainID used for the provided index.
func GetChainID(index int) string {
return ChainIDPrefix + strconv.Itoa(index)
return ChainIDPrefix + strconv.Itoa(index+1)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why +1?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

evm fails if chainid ends in -0

throws error invalid chain-id format: evmos_9000-0

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you only +1 if index is 0 then?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There will be duplicated ids for 0 and 1. And the coordinator uses a map with key chainid

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead, bump the starting index in the for loop to 1 and make it <= n. It doesn't make sense that GetChainID(3) would return testchain-4

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The current solution only affects key generation and doesnt require changes on any tests.
If I change the starting index on the for loop, I will need to update every test that uses GetChainID to bump +1 on every call. For example every instance of GetChainId(0) would fail.

I can make the change if necessary.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It doesn't make sense that GetChainID(3) would return testchain-4

agree, I think we need to update the for loop @ramacarlucho

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There aren't too many instances for the bump not to be viable. The alternative option is to create a variable for the starting index, let it default to 0 and then Evmos can override it. This seems kinda unnecessary though to avoid bumping the GetChainID argument

@fedekunze
Copy link
Contributor

fedekunze commented Jan 19, 2022

@ramacarlucho can you change the target branch to main?

@fedekunze fedekunze changed the base branch from release/v3.0.x to main January 19, 2022 20:13
Copy link
Contributor

@fedekunze fedekunze left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK. Pending comment

Copy link
Contributor

@colin-axner colin-axner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the contribution. The pr needs a changelog, this is API breaking. Otherwise LGTM

Copy link
Contributor

@colin-axner colin-axner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the contribution and updating all the tests!

@fedekunze fedekunze enabled auto-merge (squash) January 26, 2022 15:50
@fedekunze fedekunze merged commit 8dfbc9c into cosmos:main Jan 26, 2022
mergify bot pushed a commit that referenced this pull request Jan 26, 2022
* Backport commits from main to v3 release branch (#682)

* reorganize channel handshake handler (#647)

* reorganize channel handshake handler

split out channel state changes into its own function.

* readjust 27-interchain-accounts to not rely on state being set before the application callback

* add changelog and migration doc entry

* Update modules/core/04-channel/keeper/handshake.go

* docs: ICA Overview (#626)

* docs: ica overview

* fix: ordering

* add spacing

* fix: spacing

* fix: remove bulletpoints

* fix: wording

* update go mod for security vulnerabilities (#655)

* update go mod for security vulnerabilities

* update package-lock.json

* update vue dependency (#662)

* bump glob-parent version in json package (#663)

* build(deps): bump actions/setup-go from 2.1.4 to 2.1.5 (#656)

Bumps [actions/setup-go](https://github.com/actions/setup-go) from 2.1.4 to 2.1.5.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](actions/setup-go@v2.1.4...v2.1.5)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: colin axnér <[email protected]>

* docs: begin removal of internal "spec" directories (#634)

* begin removal of spec docs within core ibc

* remove broken link

* Apply suggestions from code review

Co-authored-by: Damian Nolan <[email protected]>

* remove broken link

* remove broken links

* Apply suggestions from code review

Co-authored-by: Carlos Rodriguez <[email protected]>

Co-authored-by: Damian Nolan <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>

* Modify `OnChanOpenTry` application callback to perform app version negotitation (#646)

* remove NegotiateAppVersion and AppVersion gRPC (#643)

The NegotiateAppVersion callback has been removed from the IBC Application interface.
The gRPC AppVersion has been removed.
The app version negoitation will be handled by applications by returning the version in OnChanOpenTry.

* Modify `OnChanOpenTry` to return application version (#650)

* modify OnChanOpenTry to return negotiated version

modify IBCModule interface function OnChanOpenTry to return the negotiated app version. Tests have not been updated

* fix ibc_module_test.go tests

* fix tests

* Apply suggestions from code review

* add handshake test case

* add CHANGELOG and migration docs

* update documentation

* fix broken link

* fix broken link (#664)

* chore: update make build-docs, add docs build checker (#667)

* update Makefile, add docs build checker

* Update .github/workflows/check-docs.yml

Co-authored-by: Marko <[email protected]>

Co-authored-by: Marko <[email protected]>

* register ICA query server, fix panics in params query cli (#666)

Register the controller and host query servers to a chain.
Returns an error upon cli params query failure instead of panicing.

* update of roadmap with latest release (#653)

* update of roadmap with latest release and changed the way release versions are encoded

* fixed typo

Co-authored-by: Carlos Rodriguez <[email protected]>

* build(deps): bump actions/checkout from 2.3.1 to 2.4.0 (#672)

Bumps [actions/checkout](https://github.com/actions/checkout) from 2.3.1 to 2.4.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v2.3.1...v2.4.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* allow ics20 to connect to middleware (#675)

* allow ics20 to connect to middleware

Creates ics4Wrapper which allows middleware applications to only implement SendPacket to connect ics20 as an application in its middleware stack

* add changelog and migration doc

* fix migration doc spelling

* fix: register InterchainAccount as x/auth GenesisAccount (#676)

* adding GenesisAccount interface registration for InterchainAccount impl

* updating RegisterInterfaces ica godoc

* enable mergify for backports (#678)

Co-authored-by: Carlos Rodriguez <[email protected]>

Co-authored-by: Sean King <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Damian Nolan <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>
Co-authored-by: Marko <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>

* fixes evmos tests

* cleanup

* changelog and cleanup

* pr suggestions. bump chainid

Co-authored-by: colin axnér <[email protected]>
Co-authored-by: Sean King <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Damian Nolan <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>
Co-authored-by: Marko <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>
Co-authored-by: Federico Kunze Küllmer <[email protected]>
(cherry picked from commit 8dfbc9c)
fedekunze pushed a commit that referenced this pull request Jan 27, 2022
* Backport commits from main to v3 release branch (#682)

* reorganize channel handshake handler (#647)

* reorganize channel handshake handler

split out channel state changes into its own function.

* readjust 27-interchain-accounts to not rely on state being set before the application callback

* add changelog and migration doc entry

* Update modules/core/04-channel/keeper/handshake.go

* docs: ICA Overview (#626)

* docs: ica overview

* fix: ordering

* add spacing

* fix: spacing

* fix: remove bulletpoints

* fix: wording

* update go mod for security vulnerabilities (#655)

* update go mod for security vulnerabilities

* update package-lock.json

* update vue dependency (#662)

* bump glob-parent version in json package (#663)

* build(deps): bump actions/setup-go from 2.1.4 to 2.1.5 (#656)

Bumps [actions/setup-go](https://github.com/actions/setup-go) from 2.1.4 to 2.1.5.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](actions/setup-go@v2.1.4...v2.1.5)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: colin axnér <[email protected]>

* docs: begin removal of internal "spec" directories (#634)

* begin removal of spec docs within core ibc

* remove broken link

* Apply suggestions from code review

Co-authored-by: Damian Nolan <[email protected]>

* remove broken link

* remove broken links

* Apply suggestions from code review

Co-authored-by: Carlos Rodriguez <[email protected]>

Co-authored-by: Damian Nolan <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>

* Modify `OnChanOpenTry` application callback to perform app version negotitation (#646)

* remove NegotiateAppVersion and AppVersion gRPC (#643)

The NegotiateAppVersion callback has been removed from the IBC Application interface.
The gRPC AppVersion has been removed.
The app version negoitation will be handled by applications by returning the version in OnChanOpenTry.

* Modify `OnChanOpenTry` to return application version (#650)

* modify OnChanOpenTry to return negotiated version

modify IBCModule interface function OnChanOpenTry to return the negotiated app version. Tests have not been updated

* fix ibc_module_test.go tests

* fix tests

* Apply suggestions from code review

* add handshake test case

* add CHANGELOG and migration docs

* update documentation

* fix broken link

* fix broken link (#664)

* chore: update make build-docs, add docs build checker (#667)

* update Makefile, add docs build checker

* Update .github/workflows/check-docs.yml

Co-authored-by: Marko <[email protected]>

Co-authored-by: Marko <[email protected]>

* register ICA query server, fix panics in params query cli (#666)

Register the controller and host query servers to a chain.
Returns an error upon cli params query failure instead of panicing.

* update of roadmap with latest release (#653)

* update of roadmap with latest release and changed the way release versions are encoded

* fixed typo

Co-authored-by: Carlos Rodriguez <[email protected]>

* build(deps): bump actions/checkout from 2.3.1 to 2.4.0 (#672)

Bumps [actions/checkout](https://github.com/actions/checkout) from 2.3.1 to 2.4.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v2.3.1...v2.4.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* allow ics20 to connect to middleware (#675)

* allow ics20 to connect to middleware

Creates ics4Wrapper which allows middleware applications to only implement SendPacket to connect ics20 as an application in its middleware stack

* add changelog and migration doc

* fix migration doc spelling

* fix: register InterchainAccount as x/auth GenesisAccount (#676)

* adding GenesisAccount interface registration for InterchainAccount impl

* updating RegisterInterfaces ica godoc

* enable mergify for backports (#678)

Co-authored-by: Carlos Rodriguez <[email protected]>

Co-authored-by: Sean King <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Damian Nolan <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>
Co-authored-by: Marko <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>

* fixes evmos tests

* cleanup

* changelog and cleanup

* pr suggestions. bump chainid

Co-authored-by: colin axnér <[email protected]>
Co-authored-by: Sean King <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Damian Nolan <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>
Co-authored-by: Marko <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>
Co-authored-by: Federico Kunze Küllmer <[email protected]>
(cherry picked from commit 8dfbc9c)

Co-authored-by: Ramiro Carlucho <[email protected]>
colin-axner added a commit that referenced this pull request Feb 10, 2022
* removing unused proto imports in interchain-accounts (#718)

* Merge pull request #721 from cosmos/colin/694-fix-err-msg

simplify connection handshake error messages

* refactor: move ica connection identifiers from port to version metadata bytestring (#700)

* define and generate new metadata proto type

* refactor types pkg, remove version string parsers, add PortPrefix

* refactor ica entrypoint and handshake to handle connection ids in metadata

* fixing broken test cases

* adding controller port and metadata validation, adding new testcases

* updating proto doc and removing commented out code

* updating testcase names, adding metadata constructor func, updating PortPrefix and removing Delimiter

* adding ErrInvalidControllerPort and ErrInvalidHostPort

* Apply suggestions from code review

Co-authored-by: Carlos Rodriguez <[email protected]>

* updating error msgs to use expected, got format

* adding inline metadata documentation as per review, updating bz to versionBytes

Co-authored-by: Carlos Rodriguez <[email protected]>

* make IsValidAddr private and extend regex to account for 0 length string (#723)

* make IsValidAddr private and extend regex to account for 0 length strings

* add tests

* remove spaces and commas from LongString

* Update LICENSE (#728)

* refactor: allow ICA authentication module provided timeout timestamp values (#726)

* allow ICA authentication module provided timeout timestamp

* update ICA docs

* fix test case

* Apply suggestions from code review

Co-authored-by: Sean King <[email protected]>

Co-authored-by: Sean King <[email protected]>

* Fix ambiguity in TimeoutTimestamp docs (#715)

* Fix ambiguity in TimeoutTimestamp docs

* TimeoutTimestamp docs wording

* bump docs json lock file to fix security vulnerability (#727)

* fix: gogoproto yaml (#732)

* refactor: no longer removing active channel mapping on close channel (#730)

* refactor: no longer remove active channel mapping on close chan

* refactor: adding HasActiveChannel helper fn & refactor active channel test cases

* fix: update helper fn

* refactor: remove DeleteChannelId

* refactor: err on GetActiveChannel & use TestVersion var in use testcase

* chore: comments

* nit: TestVersion var

* nits: fn name + comment

* refactor: reusable metadata validation (#729)

* define and generate new metadata proto type

* refactor types pkg, remove version string parsers, add PortPrefix

* refactor ica entrypoint and handshake to handle connection ids in metadata

* fixing broken test cases

* adding controller port and metadata validation, adding new testcases

* updating proto doc and removing commented out code

* updating testcase names, adding metadata constructor func, updating PortPrefix and removing Delimiter

* adding ErrInvalidControllerPort and ErrInvalidHostPort

* refactoring metadata validation to reusable func

* returning correct err type

* regenerating protos after merge conflicts

* adding separate validation funcs for controller and host

* correcting error msg in ValidateHostMetadata

* updating with review suggestions

* adding additional empty address check to ACK step, adding test case

* adding strings.Trimspace

* adding success with empty address testcase for ValidateHostMetadata

* remove amino, enforce serialize and deserialize functions to only accept ProtoCodec (#725)

* fix: update IsRevisionFormat and IsClientIDFormat to account for newlines before the dash (#724)

* update IsRevisionFormat to disallow newlines before the -<revision-number>

* update IsClientIDFormat to account for newlines before the dash

* add changelog

* Update modules/core/02-client/types/height.go

* add test case and update CHANGELOG

* add goreleaser github action to attach simd binary to releases and pre-releases (#738)

Co-authored-by: Carlos Rodriguez <[email protected]>

* docs: ica tx atomicity docs and code snippet updates (#719)

* adding parameters.md to ica docs

* updating interchain accounts docs, adding parameters.md and transactions.md

* updating formatting

* correcting wording

* adding diagram to docs/assets/

* fixing ChanOpenTry api in code snippet

* fixing broken image link

* updating wording

* Update docs/app-modules/interchain-accounts/transactions.md

Co-authored-by: Sean King <[email protected]>

* Update docs/app-modules/interchain-accounts/transactions.md

Co-authored-by: Sean King <[email protected]>

* Update docs/app-modules/interchain-accounts/parameters.md

Co-authored-by: Sean King <[email protected]>

* updating as per review discussion

* removing capitals in heading as per review

Co-authored-by: Sean King <[email protected]>

* deps: bump vuepress-theme-cosmos (#754)

* fix: remove error from ics27 channel ack (#751)

* removing error from channel ack in favour of event emission

* applying suggestions from PR

* Update modules/apps/27-interchain-accounts/host/keeper/events.go

Co-authored-by: Carlos Rodriguez <[email protected]>

* Update modules/apps/27-interchain-accounts/types/errors.go

Co-authored-by: Carlos Rodriguez <[email protected]>

* Update modules/apps/27-interchain-accounts/host/keeper/events.go

Co-authored-by: colin axnér <[email protected]>

Co-authored-by: Carlos Rodriguez <[email protected]>
Co-authored-by: colin axnér <[email protected]>

* feat: adding helper fn to generate capability name for testing (#776)

* feat: adding helper fn to generate cap name for testing

* fix: refactoring tests to use new helper in Mock package

* fix: comment

* fix: remove unused fn

* Update testing/mock/ibc_module.go

Co-authored-by: colin axnér <[email protected]>

* Update testing/mock/ibc_module_test.go

Co-authored-by: colin axnér <[email protected]>

* adding additional helpers for ack + timeout

* chore: changelog

* nit: err syntax

Co-authored-by: colin axnér <[email protected]>

* test: adding test for accessing interchain account after closing channel (#736)

* test: adding test for accessing interchain account after closing channel

* fix packet commitment does not exist bug

Packet commitment hash was not matching due to non zero timeout height

* test: send another packet on the newly created channel

* nit: update comments

* nits: update test and move to top level

* nit: don't discard err

Co-authored-by: Colin Axnér <[email protected]>

* Replace github.com/pkg/errors with stdlib errors (#775)

* Replace github.com/pkg/errors with stdlib errors

* Update CHANGELOG.md

Co-authored-by: Damian Nolan <[email protected]>

* update roadmap (#735)

Co-authored-by: Carlos Rodriguez <[email protected]>

* fix: resolve proto lint failure - buf.yaml (#781)

* feat: query host chain msg events via cli (#782)

* WIP implementation

* removing grpc query

* update long usage

* removing buf.yaml updates

* use limit of 1

* adding channel id validation to short circuit with invalid ids

* docs: add MakeFile command to view docs locally (#788)

* fix: support custom chain IDs for testing (#774)

* Backport commits from main to v3 release branch (#682)

* reorganize channel handshake handler (#647)

* reorganize channel handshake handler

split out channel state changes into its own function.

* readjust 27-interchain-accounts to not rely on state being set before the application callback

* add changelog and migration doc entry

* Update modules/core/04-channel/keeper/handshake.go

* docs: ICA Overview (#626)

* docs: ica overview

* fix: ordering

* add spacing

* fix: spacing

* fix: remove bulletpoints

* fix: wording

* update go mod for security vulnerabilities (#655)

* update go mod for security vulnerabilities

* update package-lock.json

* update vue dependency (#662)

* bump glob-parent version in json package (#663)

* build(deps): bump actions/setup-go from 2.1.4 to 2.1.5 (#656)

Bumps [actions/setup-go](https://github.com/actions/setup-go) from 2.1.4 to 2.1.5.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v2.1.4...v2.1.5)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: colin axnér <[email protected]>

* docs: begin removal of internal "spec" directories (#634)

* begin removal of spec docs within core ibc

* remove broken link

* Apply suggestions from code review

Co-authored-by: Damian Nolan <[email protected]>

* remove broken link

* remove broken links

* Apply suggestions from code review

Co-authored-by: Carlos Rodriguez <[email protected]>

Co-authored-by: Damian Nolan <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>

* Modify `OnChanOpenTry` application callback to perform app version negotitation (#646)

* remove NegotiateAppVersion and AppVersion gRPC (#643)

The NegotiateAppVersion callback has been removed from the IBC Application interface.
The gRPC AppVersion has been removed.
The app version negoitation will be handled by applications by returning the version in OnChanOpenTry.

* Modify `OnChanOpenTry` to return application version (#650)

* modify OnChanOpenTry to return negotiated version

modify IBCModule interface function OnChanOpenTry to return the negotiated app version. Tests have not been updated

* fix ibc_module_test.go tests

* fix tests

* Apply suggestions from code review

* add handshake test case

* add CHANGELOG and migration docs

* update documentation

* fix broken link

* fix broken link (#664)

* chore: update make build-docs, add docs build checker (#667)

* update Makefile, add docs build checker

* Update .github/workflows/check-docs.yml

Co-authored-by: Marko <[email protected]>

Co-authored-by: Marko <[email protected]>

* register ICA query server, fix panics in params query cli (#666)

Register the controller and host query servers to a chain.
Returns an error upon cli params query failure instead of panicing.

* update of roadmap with latest release (#653)

* update of roadmap with latest release and changed the way release versions are encoded

* fixed typo

Co-authored-by: Carlos Rodriguez <[email protected]>

* build(deps): bump actions/checkout from 2.3.1 to 2.4.0 (#672)

Bumps [actions/checkout](https://github.com/actions/checkout) from 2.3.1 to 2.4.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2.3.1...v2.4.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* allow ics20 to connect to middleware (#675)

* allow ics20 to connect to middleware

Creates ics4Wrapper which allows middleware applications to only implement SendPacket to connect ics20 as an application in its middleware stack

* add changelog and migration doc

* fix migration doc spelling

* fix: register InterchainAccount as x/auth GenesisAccount (#676)

* adding GenesisAccount interface registration for InterchainAccount impl

* updating RegisterInterfaces ica godoc

* enable mergify for backports (#678)

Co-authored-by: Carlos Rodriguez <[email protected]>

Co-authored-by: Sean King <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Damian Nolan <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>
Co-authored-by: Marko <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>

* fixes evmos tests

* cleanup

* changelog and cleanup

* pr suggestions. bump chainid

Co-authored-by: colin axnér <[email protected]>
Co-authored-by: Sean King <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Damian Nolan <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>
Co-authored-by: Marko <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>
Co-authored-by: Federico Kunze Küllmer <[email protected]>

* chore: renaming API fns (#786)

* build(deps): bump google.golang.org/grpc from 1.43.0 to 1.44.0 (#796)

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.43.0 to 1.44.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/grpc/grpc-go/releases">google.golang.org/grpc's releases</a>.</em></p>
<blockquote>
<h2>Release 1.44.0</h2>
<h1>New Features</h1>
<ul>
<li>balancer: add RLS load balancing policy (<a href="https://github-redirect.dependabot.com/grpc/grpc-go/issues/5046">#5046</a>)</li>
<li>xds: add RLS Cluster Specifier Plugin (<a href="https://github-redirect.dependabot.com/grpc/grpc-go/issues/5004">#5004</a>)</li>
<li>insecure: remove experimental notice (<a href="https://github-redirect.dependabot.com/grpc/grpc-go/issues/5069">#5069</a>)</li>
</ul>
<h1>Bug Fixes</h1>
<ul>
<li>internal/balancergroup: eliminate race in exitIdle (<a href="https://github-redirect.dependabot.com/grpc/grpc-go/issues/5012">#5012</a>)</li>
<li>authz: fix regex expression match (<a href="https://github-redirect.dependabot.com/grpc/grpc-go/issues/5035">#5035</a>)</li>
</ul>
<h1>Documentation</h1>
<ul>
<li>grpc: minor improvement on WithInsecure() document (<a href="https://github-redirect.dependabot.com/grpc/grpc-go/issues/5068">#5068</a>)
<ul>
<li>Special Thanks: <a href="https://github.com/shitian-ni"><code>@​shitian-ni</code></a></li>
</ul>
</li>
<li>attributes: document that some value types (e.g. <code>map</code>s) must implement Equal (<a href="https://github-redirect.dependabot.com/grpc/grpc-go/issues/5109">#5109</a>)</li>
<li>dialoptions.go: Fix WithBlock godoc (<a href="https://github-redirect.dependabot.com/grpc/grpc-go/issues/5073">#5073</a>)
<ul>
<li>Special Thanks: <a href="https://github.com/sgreene570"><code>@​sgreene570</code></a></li>
</ul>
</li>
<li>grpclog.DepthLoggerV2: Correct comment: formats like fmt.Println (<a href="https://github-redirect.dependabot.com/grpc/grpc-go/issues/5038">#5038</a>)
<ul>
<li>Special Thanks: <a href="https://github.com/evanj"><code>@​evanj</code></a></li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/grpc/grpc-go/commit/b4c5e24c7373b22c6c38d68379c39ecdc616a968"><code>b4c5e24</code></a> Change version to 1.44.1-dev (<a href="https://github-redirect.dependabot.com/grpc/grpc-go/issues/5121">#5121</a>)</li>
<li><a href="https://github.com/grpc/grpc-go/commit/da8e0b8fa35c185b30da2fe706ce9535b918239f"><code>da8e0b8</code></a> Change version to 1.44.0 (<a href="https://github-redirect.dependabot.com/grpc/grpc-go/issues/5120">#5120</a>)</li>
<li><a href="https://github.com/grpc/grpc-go/commit/77b478d768e7e75234406b53471844a0a8d6faf4"><code>77b478d</code></a> xds/federation: e2e tests (<a href="https://github-redirect.dependabot.com/grpc/grpc-go/issues/5103">#5103</a>)</li>
<li><a href="https://github.com/grpc/grpc-go/commit/907a202a615d3b2de857e4302cf6032004d65aee"><code>907a202</code></a> attributes: document that some value types (e.g. <code>map</code>s) must implement Equal...</li>
<li><a href="https://github.com/grpc/grpc-go/commit/2fb1ac854b2037b408121870f0dcc81474ca483b"><code>2fb1ac8</code></a> test: fix potential goroutine leak in TestUpdateAddresses_RetryFromFirstAddr ...</li>
<li><a href="https://github.com/grpc/grpc-go/commit/afded7231d0083fb7e9fcccc768ecbf56c271626"><code>afded72</code></a> xds/federation: update xdsclient to support multi authority (<a href="https://github-redirect.dependabot.com/grpc/grpc-go/issues/5042">#5042</a>)</li>
<li><a href="https://github.com/grpc/grpc-go/commit/b069440926d58e0a6fa6c59b01638a6948f9e6f3"><code>b069440</code></a> credentials/google: use grpctest.Tester for tests in this package (<a href="https://github-redirect.dependabot.com/grpc/grpc-go/issues/5098">#5098</a>)</li>
<li><a href="https://github.com/grpc/grpc-go/commit/fbaf7c55821070944bb0ce342ba3c54cc521c6fe"><code>fbaf7c5</code></a> authz: update representation of allow authenticated in SDK (<a href="https://github-redirect.dependabot.com/grpc/grpc-go/issues/5052">#5052</a>)</li>
<li><a href="https://github.com/grpc/grpc-go/commit/344b93a285883f2da713622d5064ad4b4512e63e"><code>344b93a</code></a> testdata: use SHA256 as signing algorithm in testdata certs (<a href="https://github-redirect.dependabot.com/grpc/grpc-go/issues/5074">#5074</a>)</li>
<li><a href="https://github.com/grpc/grpc-go/commit/4d58dd98db75e180ebf67cce127db5068ff7ab3e"><code>4d58dd9</code></a> dialoptions.go: Fix WithBlock godoc (<a href="https://github-redirect.dependabot.com/grpc/grpc-go/issues/5073">#5073</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/grpc/grpc-go/compare/v1.43.0...v1.44.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/grpc&package-manager=go_modules&previous-version=1.43.0&new-version=1.44.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

* chore: restructure code logically (#804)

* refactor: construct ics27 error acknowledgement with determinstic ABCI code (#794)

## Description

Splitting #701 into 3 parts:
- error acknowledgement changes
- results acknowledgement changes
- ADR explaining justification

This pr handles the first case

ref: #701 

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [x] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [x] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [x] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [x] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [x] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* docs: active channel description (#787)

* docs: adding active channels explanation

* change ordering

* updating config and adding more docs

* Update docs/app-modules/interchain-accounts/active-channels.md

Co-authored-by: Carlos Rodriguez <[email protected]>

* Update docs/app-modules/interchain-accounts/active-channels.md

Co-authored-by: Carlos Rodriguez <[email protected]>

* Update docs/app-modules/interchain-accounts/active-channels.md

Co-authored-by: Carlos Rodriguez <[email protected]>

* Update docs/app-modules/interchain-accounts/active-channels.md

Co-authored-by: Carlos Rodriguez <[email protected]>

Co-authored-by: Carlos Rodriguez <[email protected]>

* add helper function in testing package: RecvPacketWithResult (#810)

## Description

Allows the acknowledgement to be parsed from MsgRecvPacket results. Adjusts RelayPacket to use the acknowledgement from the events rather than expecting the acknowledgement to be passed in before hand. 

Useful for #701 

Will make a followup pr breaking RelayPacket API

closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* chore: use connection ID in interchain account store keys (#791)

* updating protos to include connection id

* updating interchain account store key to include conn id

* updating arg names

* updating proto comments

* cleanup

* rename connID -> connectionID in AuthenticateTx arg

* updating to use controller connection id in controller store key

* chore: use connection ID in active channel store keys (#807)

* adding connection id to active channel genesis protobuf type

* adding connection id to active channel store key

* updating protodoc

* fixing doc typo

* updating godocs to include connection ID

* readding active channel check in SendTx

* chore: remove unnecessary arg from RelayPacket testing function (#813)

## Description



closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* chore: use host chain connection id in ica address generation (#790)

Co-authored-by: colin axnér <[email protected]>

* docs: adding ica docs for exclusive submodule app wiring (#809)

* Defensive checks for active channel (#785)

* feat: Adding check onChanOpenAck to check for active, open channel

* Add defensive check of active channel to OnChanOpenTry

* fix: use counterparty.PortId in active channel check

* update: change base error for active channel check

* comment: add comment explaining overwrite of active channel

* fix: change err type

* fix: updating to use counterparty PortID

* fix: tests

* Update modules/apps/27-interchain-accounts/host/keeper/handshake.go

Co-authored-by: colin axnér <[email protected]>

Co-authored-by: colin axnér <[email protected]>

* Add stable release policy (#685)

* add stable release policy

* add release series table

* point-release -> patch-release

* Apply suggestions from code review

Co-authored-by: Carlos Rodriguez <[email protected]>

* change LTS to be 1 year with potential extension

* Update RELEASES.md

Co-authored-by: Damian Nolan <[email protected]>

* Update RELEASES.md

Co-authored-by: Carlos Rodriguez <[email protected]>

* Update RELEASES.md

Co-authored-by: Carlos Rodriguez <[email protected]>

* update end of life table

Co-authored-by: Carlos Rodriguez <[email protected]>
Co-authored-by: Damian Nolan <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>

* build(deps): bump github.com/cosmos/cosmos-sdk from 0.44.5 to 0.45.0 (#769)

Bumps [github.com/cosmos/cosmos-sdk](https://github.com/cosmos/cosmos-sdk) from 0.44.5 to 0.45.0.

Closes: #734
Closes: #763 

<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/cosmos/cosmos-sdk/releases">github.com/cosmos/cosmos-sdk's releases</a>.</em></p>
<blockquote>
<p>Cosmos SDK v0.45.0 is a logical continuation of the v0.44.* series, but brings a couple of state- and API-breaking changes requested by the community.</p>
<h3>State-Breaking Changes</h3>
<p>There are few important changes in <strong>gas consumption</strong>, which improve the gas economics:</p>
<ul>
<li>We now charge gas in two new places: on <code>.Seek()</code> even if there are no entries, and for the key length (on top of the value length).</li>
<li>When block gas limit is exceeded, we consume the maximum gas possible (to charge for the performed computation). We also fixed the bug when the last transaction in a block exceeds the block gas limit, it returns an error result, but the tx is actually committed successfully.</li>
</ul>
<p>Finally, a small improvement in gov, we increased the maximum proposal description size from 5k characters to 10k characters.</p>
<h3>API-Breaking Changes</h3>
<ul>
<li>The <code>BankKeeper</code> interface has a new <code>HasSupply</code> method to ensure that input denom actually exists on chain.</li>
<li>The <code>CommitMultiStore</code> interface contains a new <code>SetIAVLCacheSize</code> method for a configurable IAVL cache size.</li>
<li><code>AuthKeeper</code> interface in <code>x/auth</code> now includes a function <code>HasAccount</code>.</li>
<li>Moved <code>TestMnemonic</code> from <code>testutil</code> package to <code>testdata</code>.</li>
</ul>
<p>Finally, when using the <code>SetOrder*</code> functions in simapp, e.g. <code>SetOrderBeginBlocker</code>, we now require that all modules be present in the function arguments, or else the node panics at startup. We also added a new <code>SetOrderMigration</code> function to set the order of running module migrations.</p>
<h3>Improvements</h3>
<ul>
<li>Speedup improvements (e.g. speedup iterator creation after delete heavy workloads, lower allocations for <code>Coins.String()</code>, reduce RAM/CPU usage inside store/cachekv's <code>Store.Write</code>) are included in this release.</li>
<li>Upgrade Rosetta to v0.7.0 .</li>
<li>Support in-place migration ordering.</li>
<li>Copied and updated <code>server.GenerateCoinKey</code> and <code>server.GenerateServerCoinKey</code> functions to the <code>testutil</code> package. These functions in <code>server</code> package are marked deprecated and will be removed in the next release. In the <code>testutil.GenerateServerCoinKey</code> version we  added support for custom mnemonics in in-process testing network.</li>
</ul>
<p>See our <a href="https://github.com/cosmos/cosmos-sdk/blob/HEAD/CHANGELOG.md">CHANGELOG</a> for the exhaustive list of all changes, or a full <a href="https://github.com/cosmos/cosmos-sdk/compare/v0.44.5...v0.45.0">commit diff</a>.</p>
<h2>Cosmos SDK v0.45.0 Release Candidate 1</h2>
<h2>Release Notes</h2>
<p>Cosmos SDK v0.45.0 is a logical continuation of the v0.44.* series, but brings a couple of state- and API-breaking changes requested by the community.</p>
<h3>State-Breaking Changes</h3>
<p>There are few important changes in <strong>gas consumption</strong>, which improve the gas economics:</p>
<ul>
<li>We now charge gas in two new places: on <code>.Seek()</code> even if there are no entries, and for the key length (on top of the value length).</li>
<li>When block gas limit is exceeded, we consume the maximum gas possible (to charge for the performed computation). We also fixed the bug when the last transaction in a block exceeds the block gas limit, it returns an error result, but the tx is actually committed successfully.</li>
</ul>
<p>Finally, a small improvement in gov, we increased the maximum proposal description size from 5k characters to 10k characters.</p>
<h3>API-Breaking Changes</h3>
<ul>
<li>The <code>BankKeeper</code> interface has a new <code>HasSupply</code> method to ensure that input denom actually exists on chain.</li>
<li>The <code>CommitMultiStore</code> interface contains a new <code>SetIAVLCacheSize</code> method for a configurable IAVL cache size.</li>
<li><code>AuthKeeper</code> interface in <code>x/auth</code> now includes a function <code>HasAccount</code>.</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/cosmos/cosmos-sdk/blob/v0.45.0/CHANGELOG.md">github.com/cosmos/cosmos-sdk's changelog</a>.</em></p>
<blockquote>
<h2><a href="https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.0">v0.45.0</a> - 2022-01-18</h2>
<h3>State Machine Breaking</h3>
<ul>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10833">#10833</a> fix reported tx gas used when block gas limit exceeded.</li>
<li>(auth) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10536%5D">#10536</a> Enable <code>SetSequence</code> for <code>ModuleAccount</code>.</li>
<li>(store) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10218">#10218</a> Charge gas even when there are no entries while seeking.</li>
<li>(store) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10247">#10247</a> Charge gas for the key length in gas meter.</li>
<li>(x/gov) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10740">#10740</a> Increase maximum proposal description size from 5k characters to 10k characters.</li>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10814">#10814</a> revert tx when block gas limit exceeded.</li>
</ul>
<h3>API Breaking Changes</h3>
<ul>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10561">#10561</a> The <code>CommitMultiStore</code> interface contains a new <code>SetIAVLCacheSize</code> method</li>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10922">#10922</a>, [/<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10956">#10956</a>](<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10956">cosmos/cosmos-sdk#10956</a>) Deprecate key <code>server.Generate*</code> functions and move them to <code>testutil</code> and support custom mnemonics in in-process testing network. Moved <code>TestMnemonic</code> from <code>testutil</code> package to <code>testdata</code>.</li>
</ul>
<h3>Features</h3>
<ul>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10614">#10614</a> Support in-place migration ordering</li>
</ul>
<h3>Improvements</h3>
<ul>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10486">#10486</a> store/cachekv's <code>Store.Write</code> conservatively
looks up keys, but also uses the <a href="https://bencher.orijtech.com/perfclinic/mapclearing/">map clearing idiom</a>
to reduce the RAM usage, CPU time usage, and garbage collection pressure from clearing maps,
instead of allocating new maps.</li>
<li>(store) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10741">#10741</a> Significantly speedup iterator creation after delete heavy workloads. Significantly improves IBC migration times.</li>
<li>(module) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10711">#10711</a> Panic at startup if the app developer forgot to add modules in the <code>SetOrder{BeginBlocker, EndBlocker, InitGenesis, ExportGenesis}</code> functions. This means that all modules, even those who have empty implementations for those methods, need to be added to <code>SetOrder*</code>.</li>
<li>(types) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10076">#10076</a> Significantly speedup and lower allocations for <code>Coins.String()</code>.</li>
<li>(auth) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10022">#10022</a> <code>AuthKeeper</code> interface in <code>x/auth</code> now includes a function <code>HasAccount</code>.</li>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10393">#10393</a> Add <code>HasSupply</code> method to bank keeper to ensure that input denom actually exists on chain.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>(std/codec) [/<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10595">#10595</a>](<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10595">cosmos/cosmos-sdk#10595</a>) Add evidence to std/codec to be able to decode evidence in client interactions.</li>
<li>(types) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/9627">#9627</a> Fix nil pointer panic on <code>NewBigIntFromInt</code>.</li>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10725">#10725</a> populate <code>ctx.ConsensusParams</code> for begin/end blockers.</li>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/9829">#9829</a> Fixed Coin denom sorting not being checked during <code>Balance.Validate</code> check. Refactored the Validation logic to use <code>Coins.Validate</code> for <code>Balance.Coins</code></li>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10061">#10061</a> and <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10515">#10515</a> Ensure that <code>LegacyAminoPubKey</code> struct correctly unmarshals from JSON</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/b6c77e6c819f8a51166649eaef125d1bfb276f04"><code>b6c77e6</code></a> chore: release v0.45 changelog (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10964">#10964</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/8236b26419cda96a5a1491678b227c38e4f533ba"><code>8236b26</code></a> chore: move server.GenerateCoinKey and server.GenerateSaveCoinKey to testutil...</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/90ffbce4107e29969314a36ac98b750f29cdce1e"><code>90ffbce</code></a> feat: support custom mnemonics in in-process testing network (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10922">#10922</a>...</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/c1c1ad7425292924b77dc632370815088b2d3c58"><code>c1c1ad7</code></a> chore: v0.45.0 Release Notes (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10760">#10760</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/ba1e0990d41da85c196f1a2809ab97db2d2ed1ab"><code>ba1e099</code></a> fix: revert tx when block gas limit exceeded (backport: <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10770">#10770</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10814">#10814</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/a5c60b708f7975701696a98577a93c9776dbb3f2"><code>a5c60b7</code></a> feat!: x/gov: raise max description length to 10k chars (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10740">#10740</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/1">#1</a>...</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/05656a2f53040f84ccf1d49dcbbc548a1e56472f"><code>05656a2</code></a> fix: use full gas on overflow (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10897">#10897</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10912">#10912</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/89323385043cd39283a57644e7c59c4ee4b90492"><code>8932338</code></a> feat: support in-place migration ordering (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10614">#10614</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10890">#10890</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/6d44d7193234113aa550c4f5fbb602f7346fa7b3"><code>6d44d71</code></a> fix!: tx result don't report block gas used as tx gas used (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10833">#10833</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/71a168d1d4c2b6ccde8c6c7bd7b9e17908b1b5b3"><code>71a168d</code></a> fix: recreate compat field, of null pubkeys in multisig (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10515">#10515</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/1">#1</a>...</li>
<li>Additional commits viewable in <a href="https://github.com/cosmos/cosmos-sdk/compare/v0.44.5...v0.45.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/cosmos/cosmos-sdk&package-manager=go_modules&previous-version=0.44.5&new-version=0.45.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

* rename portid and port prefix for interchain accounts submodules (#779)

## Description

I decided to remove the `-` from the port ID (`ica-host`) and prefix (`ica-controller`) and just make it one word (`icahost` and `icacontroller`), just in case we decide to do some parsing based on a `-` delimiter in the future.

closes: #778 

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* test: adding ica test for multiple controllers, single host (#816)

* adding test for multiple controllers, single host

* updating inline comments

* updating todos with correct ports

* reorder to use pathCToB.Endpoint for connection IDs

* the ica_auth page was renamed to auth-modules (#792)

## Description

This [link](https://ibc.cosmos.network/main/app_modules/interchain-accounts/ica_auth.html) was not working because the page was renamed but not removed from the vuepress config.

<img width="877" alt="image" src="https://user-images.githubusercontent.com/6876468/151064563-d4a605db-fd0a-420b-8243-910233f7fea0.png">

closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* chore: replace error string in transfer acks with const (#818)

* fix: adding ack error string const for transfer

* updating godoc

* adding warning note to godoc in 04-channel

* updating to include abci error code, and copy tests from ica

* adding changelog entry

* refactor: active channel key format (#823)

## Description

Updating the store key format for active channels based on @AdityaSripal comment. 

closes: [Adityas comment](https://github.com/cosmos/ibc-go/pull/814#pullrequestreview-870330601)

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* refactor: RegisterInterchainAccount (#814)

## Description

closes: #802 

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* refactor: reformat KeyOwnerAccount (#833)

## Description

Reformats KeyOwnerAccount store key 

closes: [Damians Comment](https://github.com/cosmos/ibc-go/pull/823#pullrequestreview-870409614) 

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* chore: adding encoding and txType fields to metadata (#824)

* adding encoding and txTypes fields to ica metadata

* adapting metadata and validation to support encoding and txTypes fields. updating test cases

* renaming field to tx_type

* fixing failing tests from merge

* refactor: include transaction response in ics27 channel acknowledgement (#811)

## Description



ref: #701 

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [x] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [x] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [x] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [x] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [x] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [x] Review `Codecov Report` in the comment section below once CI passes

* ADR 003: ICS27 Ack format (#812)

## Description



closes: #701 

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* test: ensure ics27 optimistic packet sends are disallowed (#842)

* docs: add security model to ics27 docs (#841)

## Description

Wording could maybe be improved, but I think the content is good enough

closes: #705 

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* test: Register using same owner address on multiple connections (#846)

* Move emissions to functions (#783)

* WIP move emissions

* refactor events emission

* update typo and code clean up following review

* Update modules/core/03-connection/keeper/events.go

Co-authored-by: colin axnér <[email protected]>

* Update modules/core/03-connection/keeper/events.go

Co-authored-by: colin axnér <[email protected]>

* refactore based on code review

Co-authored-by: colin axnér <[email protected]>

* Added ChannelId to MsgChannelOpenInitResponse (#848)

## Description
added ChannelId to MsgChannelOpenInitResponse
this is needed for distribution within interchain security

Also my go imports didn't like go metrics so I had to add the go-metrics alias

Supersedes: https://github.com/cosmos/ibc-go/pull/839

Quote from @AdityaSripal 
Context for the other folks reviewing: This is a problem in general not just for CCV. But currently, in CCV we want to initiate a transfer channel and know what the channelID is.

So if we want to do this as part of third-party module logic, it's currently impossible with the codebase. Since, if you try to use channelKeeper directly you will need portCapability; and a third party module will not have transfer's portCapability.

So we have to use the MsgServer, but the response doesn't include the channelID which we need since then we want to send transfer packets over the established channel.

So this is going to be an issue for any third-party module that wants to initialize a channel of a different IBC application and then use that channel to send packets over

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [x] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [x] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [x] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [x] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* build(deps): bump github.com/cosmos/cosmos-sdk from 0.45.0 to 0.45.1 (#851)

Bumps [github.com/cosmos/cosmos-sdk](https://github.com/cosmos/cosmos-sdk) from 0.45.0 to 0.45.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/cosmos/cosmos-sdk/releases">github.com/cosmos/cosmos-sdk's releases</a>.</em></p>
<blockquote>
<h2>v0.45.1</h2>
<p>This release introduces bug fixes and improvements on the Cosmos SDK v0.45 series:</p>
<h3>Highlights</h3>
<ul>
<li>Added the missing <code>iavl-cache-size</code> config parameter parsing to set a desired IAVL cache size. The default value is way to small for big chains, and causes OOM failures.</li>
<li>Added a check in <code>x/upgrade</code> module's <code>BeginBlock</code> preventing accidental binary downgrades</li>
<li>Fix: the <code>/cosmos/tx/v1beta1/txs/{hash}</code> endpoint returns correct return code (404) for a non existing tx.</li>
</ul>
<p>See the <a href="https://github.com/cosmos/cosmos-sdk/blob/v0.45.1/CHANGELOG.md">Cosmos SDK v0.45.1  Changelog</a> for the exhaustive list of all changes and check other fixes in 0.45.x release series.</p>
<p><strong>Full Diff</strong>: <a href="https://github.com/cosmos/cosmos-sdk/compare/v0.45.0...v0.45.1">https://github.com/cosmos/cosmos-sdk/compare/v0.45.0...v0.45.1</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/cosmos/cosmos-sdk/blob/v0.45.1/CHANGELOG.md">github.com/cosmos/cosmos-sdk's changelog</a>.</em></p>
<blockquote>
<h2><a href="https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.1">v0.45.1</a> - 2022-02-03</h2>
<h3>Bug Fixes</h3>
<ul>
<li>(grpc) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10992">#10985</a> The <code>/cosmos/tx/v1beta1/txs/{hash}</code> endpoint returns a 404 when a tx does not exist.</li>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10990">#10990</a> Fixes missing <code>iavl-cache-size</code> config parsing in <code>GetConfig</code> method.</li>
</ul>
<h3>Improvements</h3>
<ul>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10407">#10407</a> Added validation to <code>x/upgrade</code> module's <code>BeginBlock</code> to check accidental binary downgrades</li>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10768">#10768</a> Extra logging in in-place store migrations.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/2646b474c7beb0c93d4fafd395ef345f41afc251"><code>2646b47</code></a> chore: 0.45.1 Release Notes (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/11109">#11109</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/f69c82fa7cb2381b0f220be7bcb7f56401e9fd6e"><code>f69c82f</code></a> feat: extra logging in in-place store migrations (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10768">#10768</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/11107">#11107</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/0c9bbbc68fe5eb08aa39c081a9ec0557ea109a43"><code>0c9bbbc</code></a> fix: add iavl-cache-size config parsing to GetConfig (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10990">#10990</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/11058">#11058</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/985d221518690c5ff448fab1c61d5d6e2f43eebd"><code>985d221</code></a> feat!: add protection against accidental downgrades (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10407">#10407</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/11026">#11026</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/dfd47f5b449f558a855da284a9a7eabbfbad435d"><code>dfd47f5</code></a> chore: update 0.45 migration and support notes (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10973">#10973</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10979">#10979</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/7ecf4d4ed4b63f9512806d6c0a0e896a1afba02c"><code>7ecf4d4</code></a> fix: return 404 on non-existing tx (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10992">#10992</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/11014">#11014</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/ced57ea5de0e28323adb9c8cddba960b3d515100"><code>ced57ea</code></a> docs: guidelines for ValidateBasic (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10983">#10983</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/11001">#11001</a>)</li>
<li>See full diff in <a href="https://github.com/cosmos/cosmos-sdk/compare/v0.45.0...v0.45.1">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/cosmos/cosmos-sdk&package-manager=go_modules&previous-version=0.45.0&new-version=0.45.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

* fix: ica host OnRecvPacket error acknowledgement (#885)

* chore: add defensive check to ensure metadata does not change when reopening an active channel (#847)

## Description



closes: #795 

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

* refactor: WriteAcknowledgement API (#882)

* refactor: WriteAcknowledgement takes exported.Acknowledgement instead of bytes

* fix: adding check for empty byte string

* chore: update changelog

* fixing test case + adding migration docs

* testing: Adding MockEmptyAcknowledgement to testing library

* docs: fix version

* test: add check for ack is nil

* bug: use custom ante handler to reject redundant transactions in simapp (#884)

* add custom ante handler

* add godoc and changelog entry

Co-authored-by: Carlos Rodriguez <[email protected]>

* refactor: allow the mock module to be used multiple times as base ibc application in middleware stack (#892)

## Description

Currently the `A…
mtsitrin added a commit to dymensionxyz/ibc-go that referenced this pull request May 14, 2023
* Backport commits from main to v3 release branch (#682)

* reorganize channel handshake handler (#647)

* reorganize channel handshake handler

split out channel state changes into its own function.

* readjust 27-interchain-accounts to not rely on state being set before the application callback

* add changelog and migration doc entry

* Update modules/core/04-channel/keeper/handshake.go

* docs: ICA Overview (#626)

* docs: ica overview

* fix: ordering

* add spacing

* fix: spacing

* fix: remove bulletpoints

* fix: wording

* update go mod for security vulnerabilities (#655)

* update go mod for security vulnerabilities

* update package-lock.json

* update vue dependency (#662)

* bump glob-parent version in json package (#663)

* build(deps): bump actions/setup-go from 2.1.4 to 2.1.5 (#656)

Bumps [actions/setup-go](https://github.com/actions/setup-go) from 2.1.4 to 2.1.5.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v2.1.4...v2.1.5)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: colin axnér <[email protected]>

* docs: begin removal of internal "spec" directories (#634)

* begin removal of spec docs within core ibc

* remove broken link

* Apply suggestions from code review

Co-authored-by: Damian Nolan <[email protected]>

* remove broken link

* remove broken links

* Apply suggestions from code review

Co-authored-by: Carlos Rodriguez <[email protected]>

Co-authored-by: Damian Nolan <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>

* Modify `OnChanOpenTry` application callback to perform app version negotitation (#646)

* remove NegotiateAppVersion and AppVersion gRPC (#643)

The NegotiateAppVersion callback has been removed from the IBC Application interface.
The gRPC AppVersion has been removed.
The app version negoitation will be handled by applications by returning the version in OnChanOpenTry.

* Modify `OnChanOpenTry` to return application version (#650)

* modify OnChanOpenTry to return negotiated version

modify IBCModule interface function OnChanOpenTry to return the negotiated app version. Tests have not been updated

* fix ibc_module_test.go tests

* fix tests

* Apply suggestions from code review

* add handshake test case

* add CHANGELOG and migration docs

* update documentation

* fix broken link

* fix broken link (#664)

* chore: update make build-docs, add docs build checker (#667)

* update Makefile, add docs build checker

* Update .github/workflows/check-docs.yml

Co-authored-by: Marko <[email protected]>

Co-authored-by: Marko <[email protected]>

* register ICA query server, fix panics in params query cli (#666)

Register the controller and host query servers to a chain.
Returns an error upon cli params query failure instead of panicing.

* update of roadmap with latest release (#653)

* update of roadmap with latest release and changed the way release versions are encoded

* fixed typo

Co-authored-by: Carlos Rodriguez <[email protected]>

* build(deps): bump actions/checkout from 2.3.1 to 2.4.0 (#672)

Bumps [actions/checkout](https://github.com/actions/checkout) from 2.3.1 to 2.4.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2.3.1...v2.4.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* allow ics20 to connect to middleware (#675)

* allow ics20 to connect to middleware

Creates ics4Wrapper which allows middleware applications to only implement SendPacket to connect ics20 as an application in its middleware stack

* add changelog and migration doc

* fix migration doc spelling

* fix: register InterchainAccount as x/auth GenesisAccount (#676)

* adding GenesisAccount interface registration for InterchainAccount impl

* updating RegisterInterfaces ica godoc

* enable mergify for backports (#678)

Co-authored-by: Carlos Rodriguez <[email protected]>

Co-authored-by: Sean King <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Damian Nolan <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>
Co-authored-by: Marko <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>

* improve 04-channel logging (#692) (#698)

## Description

closes: #674

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [x] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [x] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [x] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [x] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [x] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [x] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit 087bc5d77a194f8ea0010942017060357fb62f12)

Co-authored-by: colin axnér <[email protected]>

* add cli to get denom hash from trace path and base denom (#679) (#711)

* get denom hash from denom trace

* revert .gitignore

* final revert

* ignore history files

* Update modules/apps/transfer/client/cli/query.go

Co-authored-by: Carlos Rodriguez <[email protected]>

* Update modules/apps/transfer/keeper/grpc_query.go

Co-authored-by: Carlos Rodriguez <[email protected]>

* Update modules/apps/transfer/keeper/keeper.go

Co-authored-by: Carlos Rodriguez <[email protected]>

* Update modules/apps/transfer/keeper/grpc_query.go

Co-authored-by: colin axnér <[email protected]>

* code review feedback integration

* moved new feature  to unreleased section

* fix duplicate block in success test case

* fix CHANGELOG format

* fix invalid trace path argument error handling

* refactor positive test case code

Co-authored-by: Carlos Rodriguez <[email protected]>
Co-authored-by: colin axnér <[email protected]>
(cherry picked from commit cb9bf5dbb283e5e0eb0c29ee658968019bf58f49)

Co-authored-by: nir1218 <[email protected]>

* removing unused proto imports in interchain-accounts (#718) (#720)

(cherry picked from commit 0a7ad9b117596ac4b6ce6d597d124de0f2bc4eae)

Co-authored-by: Damian Nolan <[email protected]>

* fix: support custom chain IDs for testing (#774) (#797)

* Backport commits from main to v3 release branch (#682)

* reorganize channel handshake handler (#647)

* reorganize channel handshake handler

split out channel state changes into its own function.

* readjust 27-interchain-accounts to not rely on state being set before the application callback

* add changelog and migration doc entry

* Update modules/core/04-channel/keeper/handshake.go

* docs: ICA Overview (#626)

* docs: ica overview

* fix: ordering

* add spacing

* fix: spacing

* fix: remove bulletpoints

* fix: wording

* update go mod for security vulnerabilities (#655)

* update go mod for security vulnerabilities

* update package-lock.json

* update vue dependency (#662)

* bump glob-parent version in json package (#663)

* build(deps): bump actions/setup-go from 2.1.4 to 2.1.5 (#656)

Bumps [actions/setup-go](https://github.com/actions/setup-go) from 2.1.4 to 2.1.5.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v2.1.4...v2.1.5)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: colin axnér <[email protected]>

* docs: begin removal of internal "spec" directories (#634)

* begin removal of spec docs within core ibc

* remove broken link

* Apply suggestions from code review

Co-authored-by: Damian Nolan <[email protected]>

* remove broken link

* remove broken links

* Apply suggestions from code review

Co-authored-by: Carlos Rodriguez <[email protected]>

Co-authored-by: Damian Nolan <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>

* Modify `OnChanOpenTry` application callback to perform app version negotitation (#646)

* remove NegotiateAppVersion and AppVersion gRPC (#643)

The NegotiateAppVersion callback has been removed from the IBC Application interface.
The gRPC AppVersion has been removed.
The app version negoitation will be handled by applications by returning the version in OnChanOpenTry.

* Modify `OnChanOpenTry` to return application version (#650)

* modify OnChanOpenTry to return negotiated version

modify IBCModule interface function OnChanOpenTry to return the negotiated app version. Tests have not been updated

* fix ibc_module_test.go tests

* fix tests

* Apply suggestions from code review

* add handshake test case

* add CHANGELOG and migration docs

* update documentation

* fix broken link

* fix broken link (#664)

* chore: update make build-docs, add docs build checker (#667)

* update Makefile, add docs build checker

* Update .github/workflows/check-docs.yml

Co-authored-by: Marko <[email protected]>

Co-authored-by: Marko <[email protected]>

* register ICA query server, fix panics in params query cli (#666)

Register the controller and host query servers to a chain.
Returns an error upon cli params query failure instead of panicing.

* update of roadmap with latest release (#653)

* update of roadmap with latest release and changed the way release versions are encoded

* fixed typo

Co-authored-by: Carlos Rodriguez <[email protected]>

* build(deps): bump actions/checkout from 2.3.1 to 2.4.0 (#672)

Bumps [actions/checkout](https://github.com/actions/checkout) from 2.3.1 to 2.4.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2.3.1...v2.4.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* allow ics20 to connect to middleware (#675)

* allow ics20 to connect to middleware

Creates ics4Wrapper which allows middleware applications to only implement SendPacket to connect ics20 as an application in its middleware stack

* add changelog and migration doc

* fix migration doc spelling

* fix: register InterchainAccount as x/auth GenesisAccount (#676)

* adding GenesisAccount interface registration for InterchainAccount impl

* updating RegisterInterfaces ica godoc

* enable mergify for backports (#678)

Co-authored-by: Carlos Rodriguez <[email protected]>

Co-authored-by: Sean King <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Damian Nolan <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>
Co-authored-by: Marko <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>

* fixes evmos tests

* cleanup

* changelog and cleanup

* pr suggestions. bump chainid

Co-authored-by: colin axnér <[email protected]>
Co-authored-by: Sean King <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Damian Nolan <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>
Co-authored-by: Marko <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>
Co-authored-by: Federico Kunze Küllmer <[email protected]>
(cherry picked from commit 8dfbc9cae2cf1f6811557feec4aa475801b64bfa)

Co-authored-by: Ramiro Carlucho <[email protected]>

* Defensive checks for active channel (#785)

* feat: Adding check onChanOpenAck to check for active, open channel

* Add defensive check of active channel to OnChanOpenTry

* fix: use counterparty.PortId in active channel check

* update: change base error for active channel check

* comment: add comment explaining overwrite of active channel

* fix: change err type

* fix: updating to use counterparty PortID

* fix: tests

* Update modules/apps/27-interchain-accounts/host/keeper/handshake.go

Co-authored-by: colin axnér <[email protected]>

Co-authored-by: colin axnér <[email protected]>
(cherry picked from commit 25fb89dce05e658631497889a3485fda8f83644c)

* build(deps): bump github.com/cosmos/cosmos-sdk from 0.44.5 to 0.45.0 (#769) (#825)

Bumps [github.com/cosmos/cosmos-sdk](https://github.com/cosmos/cosmos-sdk) from 0.44.5 to 0.45.0.

Closes: #734
Closes: #763

<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/cosmos/cosmos-sdk/releases">github.com/cosmos/cosmos-sdk's releases</a>.</em></p>
<blockquote>
<p>Cosmos SDK v0.45.0 is a logical continuation of the v0.44.* series, but brings a couple of state- and API-breaking changes requested by the community.</p>
<h3>State-Breaking Changes</h3>
<p>There are few important changes in <strong>gas consumption</strong>, which improve the gas economics:</p>
<ul>
<li>We now charge gas in two new places: on <code>.Seek()</code> even if there are no entries, and for the key length (on top of the value length).</li>
<li>When block gas limit is exceeded, we consume the maximum gas possible (to charge for the performed computation). We also fixed the bug when the last transaction in a block exceeds the block gas limit, it returns an error result, but the tx is actually committed successfully.</li>
</ul>
<p>Finally, a small improvement in gov, we increased the maximum proposal description size from 5k characters to 10k characters.</p>
<h3>API-Breaking Changes</h3>
<ul>
<li>The <code>BankKeeper</code> interface has a new <code>HasSupply</code> method to ensure that input denom actually exists on chain.</li>
<li>The <code>CommitMultiStore</code> interface contains a new <code>SetIAVLCacheSize</code> method for a configurable IAVL cache size.</li>
<li><code>AuthKeeper</code> interface in <code>x/auth</code> now includes a function <code>HasAccount</code>.</li>
<li>Moved <code>TestMnemonic</code> from <code>testutil</code> package to <code>testdata</code>.</li>
</ul>
<p>Finally, when using the <code>SetOrder*</code> functions in simapp, e.g. <code>SetOrderBeginBlocker</code>, we now require that all modules be present in the function arguments, or else the node panics at startup. We also added a new <code>SetOrderMigration</code> function to set the order of running module migrations.</p>
<h3>Improvements</h3>
<ul>
<li>Speedup improvements (e.g. speedup iterator creation after delete heavy workloads, lower allocations for <code>Coins.String()</code>, reduce RAM/CPU usage inside store/cachekv's <code>Store.Write</code>) are included in this release.</li>
<li>Upgrade Rosetta to v0.7.0 .</li>
<li>Support in-place migration ordering.</li>
<li>Copied and updated <code>server.GenerateCoinKey</code> and <code>server.GenerateServerCoinKey</code> functions to the <code>testutil</code> package. These functions in <code>server</code> package are marked deprecated and will be removed in the next release. In the <code>testutil.GenerateServerCoinKey</code> version we  added support for custom mnemonics in in-process testing network.</li>
</ul>
<p>See our <a href="https://github.com/cosmos/cosmos-sdk/blob/HEAD/CHANGELOG.md">CHANGELOG</a> for the exhaustive list of all changes, or a full <a href="https://github.com/cosmos/cosmos-sdk/compare/v0.44.5...v0.45.0">commit diff</a>.</p>
<h2>Cosmos SDK v0.45.0 Release Candidate 1</h2>
<h2>Release Notes</h2>
<p>Cosmos SDK v0.45.0 is a logical continuation of the v0.44.* series, but brings a couple of state- and API-breaking changes requested by the community.</p>
<h3>State-Breaking Changes</h3>
<p>There are few important changes in <strong>gas consumption</strong>, which improve the gas economics:</p>
<ul>
<li>We now charge gas in two new places: on <code>.Seek()</code> even if there are no entries, and for the key length (on top of the value length).</li>
<li>When block gas limit is exceeded, we consume the maximum gas possible (to charge for the performed computation). We also fixed the bug when the last transaction in a block exceeds the block gas limit, it returns an error result, but the tx is actually committed successfully.</li>
</ul>
<p>Finally, a small improvement in gov, we increased the maximum proposal description size from 5k characters to 10k characters.</p>
<h3>API-Breaking Changes</h3>
<ul>
<li>The <code>BankKeeper</code> interface has a new <code>HasSupply</code> method to ensure that input denom actually exists on chain.</li>
<li>The <code>CommitMultiStore</code> interface contains a new <code>SetIAVLCacheSize</code> method for a configurable IAVL cache size.</li>
<li><code>AuthKeeper</code> interface in <code>x/auth</code> now includes a function <code>HasAccount</code>.</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/cosmos/cosmos-sdk/blob/v0.45.0/CHANGELOG.md">github.com/cosmos/cosmos-sdk's changelog</a>.</em></p>
<blockquote>
<h2><a href="https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.0">v0.45.0</a> - 2022-01-18</h2>
<h3>State Machine Breaking</h3>
<ul>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10833">#10833</a> fix reported tx gas used when block gas limit exceeded.</li>
<li>(auth) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10536%5D">#10536</a> Enable <code>SetSequence</code> for <code>ModuleAccount</code>.</li>
<li>(store) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10218">#10218</a> Charge gas even when there are no entries while seeking.</li>
<li>(store) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10247">#10247</a> Charge gas for the key length in gas meter.</li>
<li>(x/gov) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10740">#10740</a> Increase maximum proposal description size from 5k characters to 10k characters.</li>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10814">#10814</a> revert tx when block gas limit exceeded.</li>
</ul>
<h3>API Breaking Changes</h3>
<ul>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10561">#10561</a> The <code>CommitMultiStore</code> interface contains a new <code>SetIAVLCacheSize</code> method</li>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10922">#10922</a>, [/<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10956">#10956</a>](<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10956">cosmos/cosmos-sdk#10956</a>) Deprecate key <code>server.Generate*</code> functions and move them to <code>testutil</code> and support custom mnemonics in in-process testing network. Moved <code>TestMnemonic</code> from <code>testutil</code> package to <code>testdata</code>.</li>
</ul>
<h3>Features</h3>
<ul>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10614">#10614</a> Support in-place migration ordering</li>
</ul>
<h3>Improvements</h3>
<ul>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10486">#10486</a> store/cachekv's <code>Store.Write</code> conservatively
looks up keys, but also uses the <a href="https://bencher.orijtech.com/perfclinic/mapclearing/">map clearing idiom</a>
to reduce the RAM usage, CPU time usage, and garbage collection pressure from clearing maps,
instead of allocating new maps.</li>
<li>(store) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10741">#10741</a> Significantly speedup iterator creation after delete heavy workloads. Significantly improves IBC migration times.</li>
<li>(module) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10711">#10711</a> Panic at startup if the app developer forgot to add modules in the <code>SetOrder{BeginBlocker, EndBlocker, InitGenesis, ExportGenesis}</code> functions. This means that all modules, even those who have empty implementations for those methods, need to be added to <code>SetOrder*</code>.</li>
<li>(types) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10076">#10076</a> Significantly speedup and lower allocations for <code>Coins.String()</code>.</li>
<li>(auth) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10022">#10022</a> <code>AuthKeeper</code> interface in <code>x/auth</code> now includes a function <code>HasAccount</code>.</li>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10393">#10393</a> Add <code>HasSupply</code> method to bank keeper to ensure that input denom actually exists on chain.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>(std/codec) [/<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10595">#10595</a>](<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10595">cosmos/cosmos-sdk#10595</a>) Add evidence to std/codec to be able to decode evidence in client interactions.</li>
<li>(types) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/9627">#9627</a> Fix nil pointer panic on <code>NewBigIntFromInt</code>.</li>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10725">#10725</a> populate <code>ctx.ConsensusParams</code> for begin/end blockers.</li>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/9829">#9829</a> Fixed Coin denom sorting not being checked during <code>Balance.Validate</code> check. Refactored the Validation logic to use <code>Coins.Validate</code> for <code>Balance.Coins</code></li>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10061">#10061</a> and <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10515">#10515</a> Ensure that <code>LegacyAminoPubKey</code> struct correctly unmarshals from JSON</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/b6c77e6c819f8a51166649eaef125d1bfb276f04"><code>b6c77e6</code></a> chore: release v0.45 changelog (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10964">#10964</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/8236b26419cda96a5a1491678b227c38e4f533ba"><code>8236b26</code></a> chore: move server.GenerateCoinKey and server.GenerateSaveCoinKey to testutil...</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/90ffbce4107e29969314a36ac98b750f29cdce1e"><code>90ffbce</code></a> feat: support custom mnemonics in in-process testing network (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10922">#10922</a>...</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/c1c1ad7425292924b77dc632370815088b2d3c58"><code>c1c1ad7</code></a> chore: v0.45.0 Release Notes (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10760">#10760</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/ba1e0990d41da85c196f1a2809ab97db2d2ed1ab"><code>ba1e099</code></a> fix: revert tx when block gas limit exceeded (backport: <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10770">#10770</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10814">#10814</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/a5c60b708f7975701696a98577a93c9776dbb3f2"><code>a5c60b7</code></a> feat!: x/gov: raise max description length to 10k chars (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10740">#10740</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/1">#1</a>...</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/05656a2f53040f84ccf1d49dcbbc548a1e56472f"><code>05656a2</code></a> fix: use full gas on overflow (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10897">#10897</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10912">#10912</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/89323385043cd39283a57644e7c59c4ee4b90492"><code>8932338</code></a> feat: support in-place migration ordering (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10614">#10614</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10890">#10890</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/6d44d7193234113aa550c4f5fbb602f7346fa7b3"><code>6d44d71</code></a> fix!: tx result don't report block gas used as tx gas used (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10833">#10833</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/71a168d1d4c2b6ccde8c6c7bd7b9e17908b1b5b3"><code>71a168d</code></a> fix: recreate compat field, of null pubkeys in multisig (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10515">#10515</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/1">#1</a>...</li>
<li>Additional commits viewable in <a href="https://github.com/cosmos/cosmos-sdk/compare/v0.44.5...v0.45.0">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/cosmos/cosmos-sdk&package-manager=go_modules&previous-version=0.44.5&new-version=0.45.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

</details>

(cherry picked from commit f7bb1427bf5d8c7a52b9db43efd16657112936df)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* rename portid and port prefix for interchain accounts submodules (#779) (#826)

## Description

I decided to remove the `-` from the port ID (`ica-host`) and prefix (`ica-controller`) and just make it one word (`icahost` and `icacontroller`), just in case we decide to do some parsing based on a `-` delimiter in the future.

closes: #778

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit 8cba0ebd4f6a6ff2017433950dce3a29b8394882)

Co-authored-by: Carlos Rodriguez <[email protected]>

* test: adding ica test for multiple controllers, single host (#816) (#829)

* adding test for multiple controllers, single host

* updating inline comments

* updating todos with correct ports

* reorder to use pathCToB.Endpoint for connection IDs

(cherry picked from commit 83c3e4160ba0399e04397ddf09f42a73259d7f56)

Co-authored-by: Damian Nolan <[email protected]>

* the ica_auth page was renamed to auth-modules (#792) (#830)

## Description

This [link](https://ibc.cosmos.network/main/app_modules/interchain-accounts/ica_auth.html) was not working because the page was renamed but not removed from the vuepress config.

<img width="877" alt="image" src="https://user-images.githubusercontent.com/6876468/151064563-d4a605db-fd0a-420b-8243-910233f7fea0.png">

closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit 142056fce088a7893b30edaf34a576ff73b6f5b2)

Co-authored-by: Carlos Rodriguez <[email protected]>

* chore: replace error string in transfer acks with const (#818) (#831)

* fix: adding ack error string const for transfer

* updating godoc

* adding warning note to godoc in 04-channel

* updating to include abci error code, and copy tests from ica

* adding changelog entry

(cherry picked from commit ac46ac06084f586a460b092b2b293a321b7c43d6)

Co-authored-by: Damian Nolan <[email protected]>

* refactor: active channel key format (#823) (#832)

## Description

Updating the store key format for active channels based on @AdityaSripal comment.

closes: [Adityas comment](https://github.com/cosmos/ibc-go/pull/814#pullrequestreview-870330601)

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit 4c28c1ca7503a9c0603202560097fadce70d4cf2)

Co-authored-by: Sean King <[email protected]>

* refactor: RegisterInterchainAccount (#814) (#835)

## Description

closes: #802

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit fed6a86e607aa8e0f5c7ad6cb685476f78dde87f)

Co-authored-by: Sean King <[email protected]>

* refactor: reformat KeyOwnerAccount (#833) (#836)

## Description

Reformats KeyOwnerAccount store key

closes: [Damians Comment](https://github.com/cosmos/ibc-go/pull/823#pullrequestreview-870409614)

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit bbcc09c3dfa828f123191ade39d373b432483d6b)

Co-authored-by: Sean King <[email protected]>

* chore: adding encoding and txType fields to metadata (#824) (#837)

* adding encoding and txTypes fields to ica metadata

* adapting metadata and validation to support encoding and txTypes fields. updating test cases

* renaming field to tx_type

* fixing failing tests from merge

(cherry picked from commit 5ae8e3538e5d9c9fb1f46408482f5cb14ec806f7)

Co-authored-by: Damian Nolan <[email protected]>

* refactor: include transaction response in ics27 channel acknowledgement (#811) (#838)

## Description

ref: #701

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [x] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [x] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [x] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [x] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [x] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [x] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit 6c48f7e57a53504790b4759f05670fd46ce37b00)

Co-authored-by: colin axnér <[email protected]>

* test: ensure ics27 optimistic packet sends are disallowed (#842) (#843)

(cherry picked from commit c7ea0e850e927d497bbe1fff6ff97d27fbc190d5)

Co-authored-by: Damian Nolan <[email protected]>

* ADR 003: ICS27 Ack format (#812) (#844)

## Description

closes: #701

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit 1021617e41007e3f68b7ad7ab4dcfc9a8cbb9658)

Co-authored-by: colin axnér <[email protected]>

* docs: add security model to ics27 docs (#841) (#845)

## Description

Wording could maybe be improved, but I think the content is good enough

closes: #705

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit ec36c75e1a84abafedc797e8a60823ba7c4e762f)

Co-authored-by: colin axnér <[email protected]>

* test: Register using same owner address on multiple connections (#846) (#849)

(cherry picked from commit f6a9279936c3571268c39e4e09faa236ed3e82b9)

Co-authored-by: Sean King <[email protected]>

* Move emissions to functions (#783) (#855)

* WIP move emissions

* refactor events emission

* update typo and code clean up following review

* Update modules/core/03-connection/keeper/events.go

Co-authored-by: colin axnér <[email protected]>

* Update modules/core/03-connection/keeper/events.go

Co-authored-by: colin axnér <[email protected]>

* refactore based on code review

Co-authored-by: colin axnér <[email protected]>
(cherry picked from commit 81b619d7436712437ef3ccb6b32111d437db58c6)

Co-authored-by: nir1218 <[email protected]>

* build(deps): bump github.com/cosmos/cosmos-sdk from 0.45.0 to 0.45.1 (#851) (#861)

Bumps [github.com/cosmos/cosmos-sdk](https://github.com/cosmos/cosmos-sdk) from 0.45.0 to 0.45.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/cosmos/cosmos-sdk/releases">github.com/cosmos/cosmos-sdk's releases</a>.</em></p>
<blockquote>
<h2>v0.45.1</h2>
<p>This release introduces bug fixes and improvements on the Cosmos SDK v0.45 series:</p>
<h3>Highlights</h3>
<ul>
<li>Added the missing <code>iavl-cache-size</code> config parameter parsing to set a desired IAVL cache size. The default value is way to small for big chains, and causes OOM failures.</li>
<li>Added a check in <code>x/upgrade</code> module's <code>BeginBlock</code> preventing accidental binary downgrades</li>
<li>Fix: the <code>/cosmos/tx/v1beta1/txs/{hash}</code> endpoint returns correct return code (404) for a non existing tx.</li>
</ul>
<p>See the <a href="https://github.com/cosmos/cosmos-sdk/blob/v0.45.1/CHANGELOG.md">Cosmos SDK v0.45.1  Changelog</a> for the exhaustive list of all changes and check other fixes in 0.45.x release series.</p>
<p><strong>Full Diff</strong>: <a href="https://github.com/cosmos/cosmos-sdk/compare/v0.45.0...v0.45.1">https://github.com/cosmos/cosmos-sdk/compare/v0.45.0...v0.45.1</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/cosmos/cosmos-sdk/blob/v0.45.1/CHANGELOG.md">github.com/cosmos/cosmos-sdk's changelog</a>.</em></p>
<blockquote>
<h2><a href="https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.1">v0.45.1</a> - 2022-02-03</h2>
<h3>Bug Fixes</h3>
<ul>
<li>(grpc) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10992">#10985</a> The <code>/cosmos/tx/v1beta1/txs/{hash}</code> endpoint returns a 404 when a tx does not exist.</li>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10990">#10990</a> Fixes missing <code>iavl-cache-size</code> config parsing in <code>GetConfig</code> method.</li>
</ul>
<h3>Improvements</h3>
<ul>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10407">#10407</a> Added validation to <code>x/upgrade</code> module's <code>BeginBlock</code> to check accidental binary downgrades</li>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10768">#10768</a> Extra logging in in-place store migrations.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/2646b474c7beb0c93d4fafd395ef345f41afc251"><code>2646b47</code></a> chore: 0.45.1 Release Notes (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/11109">#11109</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/f69c82fa7cb2381b0f220be7bcb7f56401e9fd6e"><code>f69c82f</code></a> feat: extra logging in in-place store migrations (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10768">#10768</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/11107">#11107</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/0c9bbbc68fe5eb08aa39c081a9ec0557ea109a43"><code>0c9bbbc</code></a> fix: add iavl-cache-size config parsing to GetConfig (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10990">#10990</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/11058">#11058</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/985d221518690c5ff448fab1c61d5d6e2f43eebd"><code>985d221</code></a> feat!: add protection against accidental downgrades (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10407">#10407</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/11026">#11026</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/dfd47f5b449f558a855da284a9a7eabbfbad435d"><code>dfd47f5</code></a> chore: update 0.45 migration and support notes (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10973">#10973</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10979">#10979</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/7ecf4d4ed4b63f9512806d6c0a0e896a1afba02c"><code>7ecf4d4</code></a> fix: return 404 on non-existing tx (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10992">#10992</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/11014">#11014</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/ced57ea5de0e28323adb9c8cddba960b3d515100"><code>ced57ea</code></a> docs: guidelines for ValidateBasic (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10983">#10983</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/11001">#11001</a>)</li>
<li>See full diff in <a href="https://github.com/cosmos/cosmos-sdk/compare/v0.45.0...v0.45.1">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/cosmos/cosmos-sdk&package-manager=go_modules&previous-version=0.45.0&new-version=0.45.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

</details>

(cherry picked from commit c378ff3b9e637dbae171d2c5129d966b468a2305)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Added ChannelId to MsgChannelOpenInitResponse (#848) (#856)

## Description
added ChannelId to MsgChannelOpenInitResponse
this is needed for distribution within interchain security

Also my go imports didn't like go metrics so I had to add the go-metrics alias

Supersedes: https://github.com/cosmos/ibc-go/pull/839

Quote from @AdityaSripal
Context for the other folks reviewing: This is a problem in general not just for CCV. But currently, in CCV we want to initiate a transfer channel and know what the channelID is.

So if we want to do this as part of third-party module logic, it's currently impossible with the codebase. Since, if you try to use channelKeeper directly you will need portCapability; and a third party module will not have transfer's portCapability.

So we have to use the MsgServer, but the response doesn't include the channelID which we need since then we want to send transfer packets over the established channel.

So this is going to be an issue for any third-party module that wants to initialize a channel of a different IBC application and then use that channel to send packets over

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [x] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [x] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [x] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [x] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit 7b7eb9fa2b94f97600c2f8f19b93503d40e72588)

Co-authored-by: frog power 4000 <[email protected]>

* fix: ica host OnRecvPacket error acknowledgement (#885) (#886)

(cherry picked from commit 31487bcd9b5817e56863d595a2b8cf2ddc7051ef)

Co-authored-by: Damian Nolan <[email protected]>

* chore: add defensive check to ensure metadata does not change when reopening an active channel (#847) (#887)

## Description

closes: #795

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit 482b7abb097488b3931637e43fa5a958e3af5e07)

Co-authored-by: colin axnér <[email protected]>

* bug: use custom ante handler to reject redundant transactions in simapp (#884) (#896)

* add custom ante handler

* add godoc and changelog entry

Co-authored-by: Carlos Rodriguez <[email protected]>
(cherry picked from commit d5e2ba5c3dbf5f51134f3cceefaa9c96b4d608d1)

Co-authored-by: Carlos Rodriguez <[email protected]>

* refactor: allow the mock module to be used multiple times as base ibc application in middleware stack (backport #892) (#899)

* refactor: allow the mock module to be used multiple times as base ibc application in middleware stack (#892)

## Description

Currently the `AppModule` assumes a single scoped keeper. This doesn't allow the mock module to be used as a base application for different middleware stack (ica stack, fee stack, etc)

I broke the API because I think it is cleaner. If we want this to be non API breaking, I can try to readjust

ref: #891

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit 8f62a47a28c9190a8e54782fdfa2a45b085a7b4a)

# Conflicts:
#	CHANGELOG.md

* fix conflicts

Co-authored-by: colin axnér <[email protected]>

* imp: support custom keys for testing (#893) (#902)

* chore: add ParsePacketFromEvents testing helper function (#904) (#919)

## Description

ref: #891

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit c27d5b5f26b55d07489cc02fd0b8ce9fa8218e9a)

Co-authored-by: colin axnér <[email protected]>

* fix: correctly claim capability for mock module, handle genesis exports (#921) (#922)

## Description

This contains two fixes:
- the capability being claimed by the scoped keeper was incorrect (mock.ModuleName -> port ID)
- the mock module wasn't accounting for non empty genesis state in capabilities (after genesis export, capability will create the bound ports so rebinding doesn't need to happen)

closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit afa2d904a1e47054d8013100bd97adde8dbd2a63)

Co-authored-by: colin axnér <[email protected]>

* docs: update migration docs for upgrade proposal in relation to ICS27 (#920) (#923)

## Description

closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit d31f92d9bf709f5550b75db5c70a3b44314d9781)

Co-authored-by: colin axnér <[email protected]>

* chore(ica): add trail of bits audit report (#903) (#944)

* chore(ica): add trail of bits audit report

* relocate the audit report for ICA

Co-authored-by: Carlos Rodriguez <[email protected]>
(cherry picked from commit f442721c7ea7ce69a4aadaf24808b2b250d89628)

Co-authored-by: Carlos Rodriguez <[email protected]>

* refactor: WriteAcknowledgement API (backport #882) (#943)

* refactor: WriteAcknowledgement API (#882)

* refactor: WriteAcknowledgement takes exported.Acknowledgement instead of bytes

* fix: adding check for empty byte string

* chore: update changelog

* fixing test case + adding migration docs

* testing: Adding MockEmptyAcknowledgement to testing library

* docs: fix version

* test: add check for ack is nil

(cherry picked from commit acbc9b61d10bf892528a392595782ac17aeeca30)

# Conflicts:
#	CHANGELOG.md

* fix changelog merge conflict

* backport migration docs

Co-authored-by: Sean King <[email protected]>
Co-authored-by: Colin Axnér <[email protected]>

* add changelog entry for bump of SDK

* testing: adding multiple sender accounts for testing purposes (#935) (#959)

* testing: adding multiple sender accounts for testing puproses

* fix genesis setup (#936)

* Update testing/chain.go

Co-authored-by: colin axnér <[email protected]>

* refactor: code hygiene

* Update testing/chain.go

Co-authored-by: Aditya <[email protected]>

* fix: setting totalySupply to empty

* nit: CamelCase not UPPERCASE

Co-authored-by: Aditya <[email protected]>
Co-authored-by: colin axnér <[email protected]>
(cherry picked from commit 20dd5cacc4cf983b5628b39908b59a90a4171e95)

Co-authored-by: Sean King <[email protected]>

* fix: classify client states without consensus states as expired (#941) (#969)

## Description

closes: #850

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit d48f576a0b2fe752790339f9e6f99b99d9fe2486)

Co-authored-by: Tim Lind <[email protected]>

* Create test chain with multiple validators (#942) (#960)

* testing: adding multiple sender accounts for testing puproses

* fix genesis setup (#936)

* Update testing/chain.go

Co-authored-by: colin axnér <[email protected]>

* refactor: code hygiene

* Update testing/chain.go

Co-authored-by: Aditya <[email protected]>

* multi validator commit taken from @saione

* add function to pass custom valset

* add changelog

Co-authored-by: Sean King <[email protected]>
Co-authored-by: Sean King <[email protected]>
Co-authored-by: colin axnér <[email protected]>
(cherry picked from commit 98f4d3af3d9ea8f345c03031deec3162d21d5c45)

# Conflicts:
#	testing/chain.go

Co-authored-by: …
mtsitrin added a commit to dymensionxyz/ibc-go that referenced this pull request Jun 19, 2023
* Backport commits from main to v3 release branch (#682)

* reorganize channel handshake handler (#647)

* reorganize channel handshake handler

split out channel state changes into its own function.

* readjust 27-interchain-accounts to not rely on state being set before the application callback

* add changelog and migration doc entry

* Update modules/core/04-channel/keeper/handshake.go

* docs: ICA Overview (#626)

* docs: ica overview

* fix: ordering

* add spacing

* fix: spacing

* fix: remove bulletpoints

* fix: wording

* update go mod for security vulnerabilities (#655)

* update go mod for security vulnerabilities

* update package-lock.json

* update vue dependency (#662)

* bump glob-parent version in json package (#663)

* build(deps): bump actions/setup-go from 2.1.4 to 2.1.5 (#656)

Bumps [actions/setup-go](https://github.com/actions/setup-go) from 2.1.4 to 2.1.5.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v2.1.4...v2.1.5)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: colin axnér <[email protected]>

* docs: begin removal of internal "spec" directories (#634)

* begin removal of spec docs within core ibc

* remove broken link

* Apply suggestions from code review

Co-authored-by: Damian Nolan <[email protected]>

* remove broken link

* remove broken links

* Apply suggestions from code review

Co-authored-by: Carlos Rodriguez <[email protected]>

Co-authored-by: Damian Nolan <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>

* Modify `OnChanOpenTry` application callback to perform app version negotitation (#646)

* remove NegotiateAppVersion and AppVersion gRPC (#643)

The NegotiateAppVersion callback has been removed from the IBC Application interface.
The gRPC AppVersion has been removed.
The app version negoitation will be handled by applications by returning the version in OnChanOpenTry.

* Modify `OnChanOpenTry` to return application version (#650)

* modify OnChanOpenTry to return negotiated version

modify IBCModule interface function OnChanOpenTry to return the negotiated app version. Tests have not been updated

* fix ibc_module_test.go tests

* fix tests

* Apply suggestions from code review

* add handshake test case

* add CHANGELOG and migration docs

* update documentation

* fix broken link

* fix broken link (#664)

* chore: update make build-docs, add docs build checker (#667)

* update Makefile, add docs build checker

* Update .github/workflows/check-docs.yml

Co-authored-by: Marko <[email protected]>

Co-authored-by: Marko <[email protected]>

* register ICA query server, fix panics in params query cli (#666)

Register the controller and host query servers to a chain.
Returns an error upon cli params query failure instead of panicing.

* update of roadmap with latest release (#653)

* update of roadmap with latest release and changed the way release versions are encoded

* fixed typo

Co-authored-by: Carlos Rodriguez <[email protected]>

* build(deps): bump actions/checkout from 2.3.1 to 2.4.0 (#672)

Bumps [actions/checkout](https://github.com/actions/checkout) from 2.3.1 to 2.4.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2.3.1...v2.4.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* allow ics20 to connect to middleware (#675)

* allow ics20 to connect to middleware

Creates ics4Wrapper which allows middleware applications to only implement SendPacket to connect ics20 as an application in its middleware stack

* add changelog and migration doc

* fix migration doc spelling

* fix: register InterchainAccount as x/auth GenesisAccount (#676)

* adding GenesisAccount interface registration for InterchainAccount impl

* updating RegisterInterfaces ica godoc

* enable mergify for backports (#678)

Co-authored-by: Carlos Rodriguez <[email protected]>

Co-authored-by: Sean King <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Damian Nolan <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>
Co-authored-by: Marko <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>

* improve 04-channel logging (#692) (#698)

closes: #674

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [x] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [x] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [x] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [x] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [x] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [x] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit 087bc5d77a194f8ea0010942017060357fb62f12)

Co-authored-by: colin axnér <[email protected]>

* add cli to get denom hash from trace path and base denom (#679) (#711)

* get denom hash from denom trace

* revert .gitignore

* final revert

* ignore history files

* Update modules/apps/transfer/client/cli/query.go

Co-authored-by: Carlos Rodriguez <[email protected]>

* Update modules/apps/transfer/keeper/grpc_query.go

Co-authored-by: Carlos Rodriguez <[email protected]>

* Update modules/apps/transfer/keeper/keeper.go

Co-authored-by: Carlos Rodriguez <[email protected]>

* Update modules/apps/transfer/keeper/grpc_query.go

Co-authored-by: colin axnér <[email protected]>

* code review feedback integration

* moved new feature  to unreleased section

* fix duplicate block in success test case

* fix CHANGELOG format

* fix invalid trace path argument error handling

* refactor positive test case code

Co-authored-by: Carlos Rodriguez <[email protected]>
Co-authored-by: colin axnér <[email protected]>
(cherry picked from commit cb9bf5dbb283e5e0eb0c29ee658968019bf58f49)

Co-authored-by: nir1218 <[email protected]>

* removing unused proto imports in interchain-accounts (#718) (#720)

(cherry picked from commit 0a7ad9b117596ac4b6ce6d597d124de0f2bc4eae)

Co-authored-by: Damian Nolan <[email protected]>

* fix: support custom chain IDs for testing (#774) (#797)

* Backport commits from main to v3 release branch (#682)

* reorganize channel handshake handler (#647)

* reorganize channel handshake handler

split out channel state changes into its own function.

* readjust 27-interchain-accounts to not rely on state being set before the application callback

* add changelog and migration doc entry

* Update modules/core/04-channel/keeper/handshake.go

* docs: ICA Overview (#626)

* docs: ica overview

* fix: ordering

* add spacing

* fix: spacing

* fix: remove bulletpoints

* fix: wording

* update go mod for security vulnerabilities (#655)

* update go mod for security vulnerabilities

* update package-lock.json

* update vue dependency (#662)

* bump glob-parent version in json package (#663)

* build(deps): bump actions/setup-go from 2.1.4 to 2.1.5 (#656)

Bumps [actions/setup-go](https://github.com/actions/setup-go) from 2.1.4 to 2.1.5.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v2.1.4...v2.1.5)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: colin axnér <[email protected]>

* docs: begin removal of internal "spec" directories (#634)

* begin removal of spec docs within core ibc

* remove broken link

* Apply suggestions from code review

Co-authored-by: Damian Nolan <[email protected]>

* remove broken link

* remove broken links

* Apply suggestions from code review

Co-authored-by: Carlos Rodriguez <[email protected]>

Co-authored-by: Damian Nolan <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>

* Modify `OnChanOpenTry` application callback to perform app version negotitation (#646)

* remove NegotiateAppVersion and AppVersion gRPC (#643)

The NegotiateAppVersion callback has been removed from the IBC Application interface.
The gRPC AppVersion has been removed.
The app version negoitation will be handled by applications by returning the version in OnChanOpenTry.

* Modify `OnChanOpenTry` to return application version (#650)

* modify OnChanOpenTry to return negotiated version

modify IBCModule interface function OnChanOpenTry to return the negotiated app version. Tests have not been updated

* fix ibc_module_test.go tests

* fix tests

* Apply suggestions from code review

* add handshake test case

* add CHANGELOG and migration docs

* update documentation

* fix broken link

* fix broken link (#664)

* chore: update make build-docs, add docs build checker (#667)

* update Makefile, add docs build checker

* Update .github/workflows/check-docs.yml

Co-authored-by: Marko <[email protected]>

Co-authored-by: Marko <[email protected]>

* register ICA query server, fix panics in params query cli (#666)

Register the controller and host query servers to a chain.
Returns an error upon cli params query failure instead of panicing.

* update of roadmap with latest release (#653)

* update of roadmap with latest release and changed the way release versions are encoded

* fixed typo

Co-authored-by: Carlos Rodriguez <[email protected]>

* build(deps): bump actions/checkout from 2.3.1 to 2.4.0 (#672)

Bumps [actions/checkout](https://github.com/actions/checkout) from 2.3.1 to 2.4.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2.3.1...v2.4.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* allow ics20 to connect to middleware (#675)

* allow ics20 to connect to middleware

Creates ics4Wrapper which allows middleware applications to only implement SendPacket to connect ics20 as an application in its middleware stack

* add changelog and migration doc

* fix migration doc spelling

* fix: register InterchainAccount as x/auth GenesisAccount (#676)

* adding GenesisAccount interface registration for InterchainAccount impl

* updating RegisterInterfaces ica godoc

* enable mergify for backports (#678)

Co-authored-by: Carlos Rodriguez <[email protected]>

Co-authored-by: Sean King <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Damian Nolan <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>
Co-authored-by: Marko <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>

* fixes evmos tests

* cleanup

* changelog and cleanup

* pr suggestions. bump chainid

Co-authored-by: colin axnér <[email protected]>
Co-authored-by: Sean King <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Damian Nolan <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>
Co-authored-by: Marko <[email protected]>
Co-authored-by: Carlos Rodriguez <[email protected]>
Co-authored-by: Federico Kunze Küllmer <[email protected]>
(cherry picked from commit 8dfbc9cae2cf1f6811557feec4aa475801b64bfa)

Co-authored-by: Ramiro Carlucho <[email protected]>

* Defensive checks for active channel (#785)

* feat: Adding check onChanOpenAck to check for active, open channel

* Add defensive check of active channel to OnChanOpenTry

* fix: use counterparty.PortId in active channel check

* update: change base error for active channel check

* comment: add comment explaining overwrite of active channel

* fix: change err type

* fix: updating to use counterparty PortID

* fix: tests

* Update modules/apps/27-interchain-accounts/host/keeper/handshake.go

Co-authored-by: colin axnér <[email protected]>

Co-authored-by: colin axnér <[email protected]>
(cherry picked from commit 25fb89dce05e658631497889a3485fda8f83644c)

* build(deps): bump github.com/cosmos/cosmos-sdk from 0.44.5 to 0.45.0 (#769) (#825)

Bumps [github.com/cosmos/cosmos-sdk](https://github.com/cosmos/cosmos-sdk) from 0.44.5 to 0.45.0.

Closes: #734
Closes: #763

<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/cosmos/cosmos-sdk/releases">github.com/cosmos/cosmos-sdk's releases</a>.</em></p>
<blockquote>
<p>Cosmos SDK v0.45.0 is a logical continuation of the v0.44.* series, but brings a couple of state- and API-breaking changes requested by the community.</p>
<h3>State-Breaking Changes</h3>
<p>There are few important changes in <strong>gas consumption</strong>, which improve the gas economics:</p>
<ul>
<li>We now charge gas in two new places: on <code>.Seek()</code> even if there are no entries, and for the key length (on top of the value length).</li>
<li>When block gas limit is exceeded, we consume the maximum gas possible (to charge for the performed computation). We also fixed the bug when the last transaction in a block exceeds the block gas limit, it returns an error result, but the tx is actually committed successfully.</li>
</ul>
<p>Finally, a small improvement in gov, we increased the maximum proposal description size from 5k characters to 10k characters.</p>
<h3>API-Breaking Changes</h3>
<ul>
<li>The <code>BankKeeper</code> interface has a new <code>HasSupply</code> method to ensure that input denom actually exists on chain.</li>
<li>The <code>CommitMultiStore</code> interface contains a new <code>SetIAVLCacheSize</code> method for a configurable IAVL cache size.</li>
<li><code>AuthKeeper</code> interface in <code>x/auth</code> now includes a function <code>HasAccount</code>.</li>
<li>Moved <code>TestMnemonic</code> from <code>testutil</code> package to <code>testdata</code>.</li>
</ul>
<p>Finally, when using the <code>SetOrder*</code> functions in simapp, e.g. <code>SetOrderBeginBlocker</code>, we now require that all modules be present in the function arguments, or else the node panics at startup. We also added a new <code>SetOrderMigration</code> function to set the order of running module migrations.</p>
<h3>Improvements</h3>
<ul>
<li>Speedup improvements (e.g. speedup iterator creation after delete heavy workloads, lower allocations for <code>Coins.String()</code>, reduce RAM/CPU usage inside store/cachekv's <code>Store.Write</code>) are included in this release.</li>
<li>Upgrade Rosetta to v0.7.0 .</li>
<li>Support in-place migration ordering.</li>
<li>Copied and updated <code>server.GenerateCoinKey</code> and <code>server.GenerateServerCoinKey</code> functions to the <code>testutil</code> package. These functions in <code>server</code> package are marked deprecated and will be removed in the next release. In the <code>testutil.GenerateServerCoinKey</code> version we  added support for custom mnemonics in in-process testing network.</li>
</ul>
<p>See our <a href="https://github.com/cosmos/cosmos-sdk/blob/HEAD/CHANGELOG.md">CHANGELOG</a> for the exhaustive list of all changes, or a full <a href="https://github.com/cosmos/cosmos-sdk/compare/v0.44.5...v0.45.0">commit diff</a>.</p>
<h2>Cosmos SDK v0.45.0 Release Candidate 1</h2>
<h2>Release Notes</h2>
<p>Cosmos SDK v0.45.0 is a logical continuation of the v0.44.* series, but brings a couple of state- and API-breaking changes requested by the community.</p>
<h3>State-Breaking Changes</h3>
<p>There are few important changes in <strong>gas consumption</strong>, which improve the gas economics:</p>
<ul>
<li>We now charge gas in two new places: on <code>.Seek()</code> even if there are no entries, and for the key length (on top of the value length).</li>
<li>When block gas limit is exceeded, we consume the maximum gas possible (to charge for the performed computation). We also fixed the bug when the last transaction in a block exceeds the block gas limit, it returns an error result, but the tx is actually committed successfully.</li>
</ul>
<p>Finally, a small improvement in gov, we increased the maximum proposal description size from 5k characters to 10k characters.</p>
<h3>API-Breaking Changes</h3>
<ul>
<li>The <code>BankKeeper</code> interface has a new <code>HasSupply</code> method to ensure that input denom actually exists on chain.</li>
<li>The <code>CommitMultiStore</code> interface contains a new <code>SetIAVLCacheSize</code> method for a configurable IAVL cache size.</li>
<li><code>AuthKeeper</code> interface in <code>x/auth</code> now includes a function <code>HasAccount</code>.</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/cosmos/cosmos-sdk/blob/v0.45.0/CHANGELOG.md">github.com/cosmos/cosmos-sdk's changelog</a>.</em></p>
<blockquote>
<h2><a href="https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.0">v0.45.0</a> - 2022-01-18</h2>
<h3>State Machine Breaking</h3>
<ul>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10833">#10833</a> fix reported tx gas used when block gas limit exceeded.</li>
<li>(auth) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10536%5D">#10536</a> Enable <code>SetSequence</code> for <code>ModuleAccount</code>.</li>
<li>(store) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10218">#10218</a> Charge gas even when there are no entries while seeking.</li>
<li>(store) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10247">#10247</a> Charge gas for the key length in gas meter.</li>
<li>(x/gov) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10740">#10740</a> Increase maximum proposal description size from 5k characters to 10k characters.</li>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10814">#10814</a> revert tx when block gas limit exceeded.</li>
</ul>
<h3>API Breaking Changes</h3>
<ul>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10561">#10561</a> The <code>CommitMultiStore</code> interface contains a new <code>SetIAVLCacheSize</code> method</li>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10922">#10922</a>, [/<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10956">#10956</a>](<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10956">cosmos/cosmos-sdk#10956</a>) Deprecate key <code>server.Generate*</code> functions and move them to <code>testutil</code> and support custom mnemonics in in-process testing network. Moved <code>TestMnemonic</code> from <code>testutil</code> package to <code>testdata</code>.</li>
</ul>
<h3>Features</h3>
<ul>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10614">#10614</a> Support in-place migration ordering</li>
</ul>
<h3>Improvements</h3>
<ul>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10486">#10486</a> store/cachekv's <code>Store.Write</code> conservatively
looks up keys, but also uses the <a href="https://bencher.orijtech.com/perfclinic/mapclearing/">map clearing idiom</a>
to reduce the RAM usage, CPU time usage, and garbage collection pressure from clearing maps,
instead of allocating new maps.</li>
<li>(store) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10741">#10741</a> Significantly speedup iterator creation after delete heavy workloads. Significantly improves IBC migration times.</li>
<li>(module) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10711">#10711</a> Panic at startup if the app developer forgot to add modules in the <code>SetOrder{BeginBlocker, EndBlocker, InitGenesis, ExportGenesis}</code> functions. This means that all modules, even those who have empty implementations for those methods, need to be added to <code>SetOrder*</code>.</li>
<li>(types) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10076">#10076</a> Significantly speedup and lower allocations for <code>Coins.String()</code>.</li>
<li>(auth) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10022">#10022</a> <code>AuthKeeper</code> interface in <code>x/auth</code> now includes a function <code>HasAccount</code>.</li>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10393">#10393</a> Add <code>HasSupply</code> method to bank keeper to ensure that input denom actually exists on chain.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>(std/codec) [/<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10595">#10595</a>](<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10595">cosmos/cosmos-sdk#10595</a>) Add evidence to std/codec to be able to decode evidence in client interactions.</li>
<li>(types) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/9627">#9627</a> Fix nil pointer panic on <code>NewBigIntFromInt</code>.</li>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10725">#10725</a> populate <code>ctx.ConsensusParams</code> for begin/end blockers.</li>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/9829">#9829</a> Fixed Coin denom sorting not being checked during <code>Balance.Validate</code> check. Refactored the Validation logic to use <code>Coins.Validate</code> for <code>Balance.Coins</code></li>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10061">#10061</a> and <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10515">#10515</a> Ensure that <code>LegacyAminoPubKey</code> struct correctly unmarshals from JSON</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/b6c77e6c819f8a51166649eaef125d1bfb276f04"><code>b6c77e6</code></a> chore: release v0.45 changelog (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10964">#10964</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/8236b26419cda96a5a1491678b227c38e4f533ba"><code>8236b26</code></a> chore: move server.GenerateCoinKey and server.GenerateSaveCoinKey to testutil...</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/90ffbce4107e29969314a36ac98b750f29cdce1e"><code>90ffbce</code></a> feat: support custom mnemonics in in-process testing network (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10922">#10922</a>...</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/c1c1ad7425292924b77dc632370815088b2d3c58"><code>c1c1ad7</code></a> chore: v0.45.0 Release Notes (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10760">#10760</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/ba1e0990d41da85c196f1a2809ab97db2d2ed1ab"><code>ba1e099</code></a> fix: revert tx when block gas limit exceeded (backport: <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10770">#10770</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10814">#10814</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/a5c60b708f7975701696a98577a93c9776dbb3f2"><code>a5c60b7</code></a> feat!: x/gov: raise max description length to 10k chars (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10740">#10740</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/1">#1</a>...</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/05656a2f53040f84ccf1d49dcbbc548a1e56472f"><code>05656a2</code></a> fix: use full gas on overflow (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10897">#10897</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10912">#10912</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/89323385043cd39283a57644e7c59c4ee4b90492"><code>8932338</code></a> feat: support in-place migration ordering (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10614">#10614</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10890">#10890</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/6d44d7193234113aa550c4f5fbb602f7346fa7b3"><code>6d44d71</code></a> fix!: tx result don't report block gas used as tx gas used (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10833">#10833</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/71a168d1d4c2b6ccde8c6c7bd7b9e17908b1b5b3"><code>71a168d</code></a> fix: recreate compat field, of null pubkeys in multisig (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10515">#10515</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/1">#1</a>...</li>
<li>Additional commits viewable in <a href="https://github.com/cosmos/cosmos-sdk/compare/v0.44.5...v0.45.0">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/cosmos/cosmos-sdk&package-manager=go_modules&previous-version=0.44.5&new-version=0.45.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

</details>

(cherry picked from commit f7bb1427bf5d8c7a52b9db43efd16657112936df)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* rename portid and port prefix for interchain accounts submodules (#779) (#826)

I decided to remove the `-` from the port ID (`ica-host`) and prefix (`ica-controller`) and just make it one word (`icahost` and `icacontroller`), just in case we decide to do some parsing based on a `-` delimiter in the future.

closes: #778

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit 8cba0ebd4f6a6ff2017433950dce3a29b8394882)

Co-authored-by: Carlos Rodriguez <[email protected]>

* test: adding ica test for multiple controllers, single host (#816) (#829)

* adding test for multiple controllers, single host

* updating inline comments

* updating todos with correct ports

* reorder to use pathCToB.Endpoint for connection IDs

(cherry picked from commit 83c3e4160ba0399e04397ddf09f42a73259d7f56)

Co-authored-by: Damian Nolan <[email protected]>

* the ica_auth page was renamed to auth-modules (#792) (#830)

This [link](https://ibc.cosmos.network/main/app_modules/interchain-accounts/ica_auth.html) was not working because the page was renamed but not removed from the vuepress config.

<img width="877" alt="image" src="https://user-images.githubusercontent.com/6876468/151064563-d4a605db-fd0a-420b-8243-910233f7fea0.png">

closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit 142056fce088a7893b30edaf34a576ff73b6f5b2)

Co-authored-by: Carlos Rodriguez <[email protected]>

* chore: replace error string in transfer acks with const (#818) (#831)

* fix: adding ack error string const for transfer

* updating godoc

* adding warning note to godoc in 04-channel

* updating to include abci error code, and copy tests from ica

* adding changelog entry

(cherry picked from commit ac46ac06084f586a460b092b2b293a321b7c43d6)

Co-authored-by: Damian Nolan <[email protected]>

* refactor: active channel key format (#823) (#832)

Updating the store key format for active channels based on @AdityaSripal comment.

closes: [Adityas comment](https://github.com/cosmos/ibc-go/pull/814#pullrequestreview-870330601)

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit 4c28c1ca7503a9c0603202560097fadce70d4cf2)

Co-authored-by: Sean King <[email protected]>

* refactor: RegisterInterchainAccount (#814) (#835)

closes: #802

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit fed6a86e607aa8e0f5c7ad6cb685476f78dde87f)

Co-authored-by: Sean King <[email protected]>

* refactor: reformat KeyOwnerAccount (#833) (#836)

Reformats KeyOwnerAccount store key

closes: [Damians Comment](https://github.com/cosmos/ibc-go/pull/823#pullrequestreview-870409614)

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit bbcc09c3dfa828f123191ade39d373b432483d6b)

Co-authored-by: Sean King <[email protected]>

* chore: adding encoding and txType fields to metadata (#824) (#837)

* adding encoding and txTypes fields to ica metadata

* adapting metadata and validation to support encoding and txTypes fields. updating test cases

* renaming field to tx_type

* fixing failing tests from merge

(cherry picked from commit 5ae8e3538e5d9c9fb1f46408482f5cb14ec806f7)

Co-authored-by: Damian Nolan <[email protected]>

* refactor: include transaction response in ics27 channel acknowledgement (#811) (#838)

ref: #701

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [x] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [x] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [x] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [x] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [x] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [x] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit 6c48f7e57a53504790b4759f05670fd46ce37b00)

Co-authored-by: colin axnér <[email protected]>

* test: ensure ics27 optimistic packet sends are disallowed (#842) (#843)

(cherry picked from commit c7ea0e850e927d497bbe1fff6ff97d27fbc190d5)

Co-authored-by: Damian Nolan <[email protected]>

* ADR 003: ICS27 Ack format (#812) (#844)

closes: #701

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit 1021617e41007e3f68b7ad7ab4dcfc9a8cbb9658)

Co-authored-by: colin axnér <[email protected]>

* docs: add security model to ics27 docs (#841) (#845)

Wording could maybe be improved, but I think the content is good enough

closes: #705

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit ec36c75e1a84abafedc797e8a60823ba7c4e762f)

Co-authored-by: colin axnér <[email protected]>

* test: Register using same owner address on multiple connections (#846) (#849)

(cherry picked from commit f6a9279936c3571268c39e4e09faa236ed3e82b9)

Co-authored-by: Sean King <[email protected]>

* Move emissions to functions (#783) (#855)

* WIP move emissions

* refactor events emission

* update typo and code clean up following review

* Update modules/core/03-connection/keeper/events.go

Co-authored-by: colin axnér <[email protected]>

* Update modules/core/03-connection/keeper/events.go

Co-authored-by: colin axnér <[email protected]>

* refactore based on code review

Co-authored-by: colin axnér <[email protected]>
(cherry picked from commit 81b619d7436712437ef3ccb6b32111d437db58c6)

Co-authored-by: nir1218 <[email protected]>

* build(deps): bump github.com/cosmos/cosmos-sdk from 0.45.0 to 0.45.1 (#851) (#861)

Bumps [github.com/cosmos/cosmos-sdk](https://github.com/cosmos/cosmos-sdk) from 0.45.0 to 0.45.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/cosmos/cosmos-sdk/releases">github.com/cosmos/cosmos-sdk's releases</a>.</em></p>
<blockquote>
<h2>v0.45.1</h2>
<p>This release introduces bug fixes and improvements on the Cosmos SDK v0.45 series:</p>
<h3>Highlights</h3>
<ul>
<li>Added the missing <code>iavl-cache-size</code> config parameter parsing to set a desired IAVL cache size. The default value is way to small for big chains, and causes OOM failures.</li>
<li>Added a check in <code>x/upgrade</code> module's <code>BeginBlock</code> preventing accidental binary downgrades</li>
<li>Fix: the <code>/cosmos/tx/v1beta1/txs/{hash}</code> endpoint returns correct return code (404) for a non existing tx.</li>
</ul>
<p>See the <a href="https://github.com/cosmos/cosmos-sdk/blob/v0.45.1/CHANGELOG.md">Cosmos SDK v0.45.1  Changelog</a> for the exhaustive list of all changes and check other fixes in 0.45.x release series.</p>
<p><strong>Full Diff</strong>: <a href="https://github.com/cosmos/cosmos-sdk/compare/v0.45.0...v0.45.1">https://github.com/cosmos/cosmos-sdk/compare/v0.45.0...v0.45.1</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/cosmos/cosmos-sdk/blob/v0.45.1/CHANGELOG.md">github.com/cosmos/cosmos-sdk's changelog</a>.</em></p>
<blockquote>
<h2><a href="https://github.com/cosmos/cosmos-sdk/releases/tag/v0.45.1">v0.45.1</a> - 2022-02-03</h2>
<h3>Bug Fixes</h3>
<ul>
<li>(grpc) <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10992">#10985</a> The <code>/cosmos/tx/v1beta1/txs/{hash}</code> endpoint returns a 404 when a tx does not exist.</li>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10990">#10990</a> Fixes missing <code>iavl-cache-size</code> config parsing in <code>GetConfig</code> method.</li>
</ul>
<h3>Improvements</h3>
<ul>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10407">#10407</a> Added validation to <code>x/upgrade</code> module's <code>BeginBlock</code> to check accidental binary downgrades</li>
<li><a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/pull/10768">#10768</a> Extra logging in in-place store migrations.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/2646b474c7beb0c93d4fafd395ef345f41afc251"><code>2646b47</code></a> chore: 0.45.1 Release Notes (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/11109">#11109</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/f69c82fa7cb2381b0f220be7bcb7f56401e9fd6e"><code>f69c82f</code></a> feat: extra logging in in-place store migrations (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10768">#10768</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/11107">#11107</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/0c9bbbc68fe5eb08aa39c081a9ec0557ea109a43"><code>0c9bbbc</code></a> fix: add iavl-cache-size config parsing to GetConfig (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10990">#10990</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/11058">#11058</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/985d221518690c5ff448fab1c61d5d6e2f43eebd"><code>985d221</code></a> feat!: add protection against accidental downgrades (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10407">#10407</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/11026">#11026</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/dfd47f5b449f558a855da284a9a7eabbfbad435d"><code>dfd47f5</code></a> chore: update 0.45 migration and support notes (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10973">#10973</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10979">#10979</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/7ecf4d4ed4b63f9512806d6c0a0e896a1afba02c"><code>7ecf4d4</code></a> fix: return 404 on non-existing tx (backport <a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10992">#10992</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/11014">#11014</a>)</li>
<li><a href="https://github.com/cosmos/cosmos-sdk/commit/ced57ea5de0e28323adb9c8cddba960b3d515100"><code>ced57ea</code></a> docs: guidelines for ValidateBasic (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/10983">#10983</a>) (<a href="https://github-redirect.dependabot.com/cosmos/cosmos-sdk/issues/11001">#11001</a>)</li>
<li>See full diff in <a href="https://github.com/cosmos/cosmos-sdk/compare/v0.45.0...v0.45.1">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/cosmos/cosmos-sdk&package-manager=go_modules&previous-version=0.45.0&new-version=0.45.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

</details>

(cherry picked from commit c378ff3b9e637dbae171d2c5129d966b468a2305)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Added ChannelId to MsgChannelOpenInitResponse (#848) (#856)

added ChannelId to MsgChannelOpenInitResponse
this is needed for distribution within interchain security

Also my go imports didn't like go metrics so I had to add the go-metrics alias

Supersedes: https://github.com/cosmos/ibc-go/pull/839

Quote from @AdityaSripal
Context for the other folks reviewing: This is a problem in general not just for CCV. But currently, in CCV we want to initiate a transfer channel and know what the channelID is.

So if we want to do this as part of third-party module logic, it's currently impossible with the codebase. Since, if you try to use channelKeeper directly you will need portCapability; and a third party module will not have transfer's portCapability.

So we have to use the MsgServer, but the response doesn't include the channelID which we need since then we want to send transfer packets over the established channel.

So this is going to be an issue for any third-party module that wants to initialize a channel of a different IBC application and then use that channel to send packets over

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [x] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [x] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [x] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [x] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [x] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [x] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit 7b7eb9fa2b94f97600c2f8f19b93503d40e72588)

Co-authored-by: frog power 4000 <[email protected]>

* fix: ica host OnRecvPacket error acknowledgement (#885) (#886)

(cherry picked from commit 31487bcd9b5817e56863d595a2b8cf2ddc7051ef)

Co-authored-by: Damian Nolan <[email protected]>

* chore: add defensive check to ensure metadata does not change when reopening an active channel (#847) (#887)

closes: #795

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit 482b7abb097488b3931637e43fa5a958e3af5e07)

Co-authored-by: colin axnér <[email protected]>

* bug: use custom ante handler to reject redundant transactions in simapp (#884) (#896)

* add custom ante handler

* add godoc and changelog entry

Co-authored-by: Carlos Rodriguez <[email protected]>
(cherry picked from commit d5e2ba5c3dbf5f51134f3cceefaa9c96b4d608d1)

Co-authored-by: Carlos Rodriguez <[email protected]>

* refactor: allow the mock module to be used multiple times as base ibc application in middleware stack (backport #892) (#899)

* refactor: allow the mock module to be used multiple times as base ibc application in middleware stack (#892)

Currently the `AppModule` assumes a single scoped keeper. This doesn't allow the mock module to be used as a base application for different middleware stack (ica stack, fee stack, etc)

I broke the API because I think it is cleaner. If we want this to be non API breaking, I can try to readjust

ref: #891

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit 8f62a47a28c9190a8e54782fdfa2a45b085a7b4a)

* fix conflicts

Co-authored-by: colin axnér <[email protected]>

* imp: support custom keys for testing (#893) (#902)

* chore: add ParsePacketFromEvents testing helper function (#904) (#919)

ref: #891

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit c27d5b5f26b55d07489cc02fd0b8ce9fa8218e9a)

Co-authored-by: colin axnér <[email protected]>

* fix: correctly claim capability for mock module, handle genesis exports (#921) (#922)

This contains two fixes:
- the capability being claimed by the scoped keeper was incorrect (mock.ModuleName -> port ID)
- the mock module wasn't accounting for non empty genesis state in capabilities (after genesis export, capability will create the bound ports so rebinding doesn't need to happen)

closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit afa2d904a1e47054d8013100bd97adde8dbd2a63)

Co-authored-by: colin axnér <[email protected]>

* docs: update migration docs for upgrade proposal in relation to ICS27 (#920) (#923)

closes: #XXXX

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit d31f92d9bf709f5550b75db5c70a3b44314d9781)

Co-authored-by: colin axnér <[email protected]>

* chore(ica): add trail of bits audit report (#903) (#944)

* chore(ica): add trail of bits audit report

* relocate the audit report for ICA

Co-authored-by: Carlos Rodriguez <[email protected]>
(cherry picked from commit f442721c7ea7ce69a4aadaf24808b2b250d89628)

Co-authored-by: Carlos Rodriguez <[email protected]>

* refactor: WriteAcknowledgement API (backport #882) (#943)

* refactor: WriteAcknowledgement API (#882)

* refactor: WriteAcknowledgement takes exported.Acknowledgement instead of bytes

* fix: adding check for empty byte string

* chore: update changelog

* fixing test case + adding migration docs

* testing: Adding MockEmptyAcknowledgement to testing library

* docs: fix version

* test: add check for ack is nil

(cherry picked from commit acbc9b61d10bf892528a392595782ac17aeeca30)

* fix changelog merge conflict

* backport migration docs

Co-authored-by: Sean King <[email protected]>
Co-authored-by: Colin Axnér <[email protected]>

* add changelog entry for bump of SDK

* testing: adding multiple sender accounts for testing purposes (#935) (#959)

* testing: adding multiple sender accounts for testing puproses

* fix genesis setup (#936)

* Update testing/chain.go

Co-authored-by: colin axnér <[email protected]>

* refactor: code hygiene

* Update testing/chain.go

Co-authored-by: Aditya <[email protected]>

* fix: setting totalySupply to empty

* nit: CamelCase not UPPERCASE

Co-authored-by: Aditya <[email protected]>
Co-authored-by: colin axnér <[email protected]>
(cherry picked from commit 20dd5cacc4cf983b5628b39908b59a90a4171e95)

Co-authored-by: Sean King <[email protected]>

* fix: classify client states without consensus states as expired (#941) (#969)

closes: #850

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/ibc-go/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes

(cherry picked from commit d48f576a0b2fe752790339f9e6f99b99d9fe2486)

Co-authored-by: Tim Lind <[email protected]>

* Create test chain with multiple validators (#942) (#960)

* testing: adding multiple sender accounts for testing puproses

* fix genesis setup (#936)

* Update testing/chain.go

Co-authored-by: colin axnér <[email protected]>

* refactor: code hygiene

* Update testing/chain.go

Co-authored-by: Aditya <[email protected]>

* multi validator commit taken from @saione

* add function to pass custom valset

* add changelog

Co-authored-by: Sean King <[email protected]>
Co-authored-by: Sean King <[email protected]>
Co-authored-by: colin axnér <[email protected]>
(cherry picked from commit 98f4d3af3d9ea8f345c03031deec3162d21d5c45)

Co-authored-by: Aditya <[email protected]>

* chore: update migration docs (#985) (#986)

* chore: update migration docs

* Update docs/migrations/v2-to-v3.md

Co-authored-by: Damian Nolan <[email protected]>

Co-authored-by: Damian Nolan <[email protected]>
(cherry picked from commit ef34765e7010ec5f526a44587de4be0e2afbde12)

Co-authored-by: colin axnér <[email protected]>

* bug: support base denoms with slashes (#978) (#1019)

* bug: support base denoms with slashes

* add changelog entry

Co-authored-by: Carlos Rodriguez <[email protected]>
(cherry picked from commit 4545154cc60db44a26dadec2e2b2422bd138f5d1)

Co-authored-by: Carlos Rodriguez <[email protected]>

* ibctesting: make `testing.T` public (#1020) (#1030)

(cherry picked from commit 6d6888b9c5cffc6b9c0f09ec5f77a8932d0b7e86)

Co-authored-by: Federico Kunze Küllmer <[email protected]>
Co-authored-by: Damian Nolan <[email protected]>

* upgrade ics23 to v0.7 (#948) (#1028)

* upgrade ics23 to v0.7-rc

* add changelog entry

* update ics23 to final 0.7

Co-authored-by: Carlos Rodriguez <[email protected]>
(cherry picked from commit 9d8be7cbab5cb1987449ff92fa2376c1ca44ac30)

Co-authored-by: Carlos Rodriguez <[email protected]>

* feat: Add a function to initialize the ICS27 module via an upgrade proposal (#1037) (#1040)

closes: #1034

---

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/ibc-go/bl…
CosmosCar pushed a commit to caelus-labs/ibc-go that referenced this pull request Nov 6, 2023
Goal of soft-confirmations is to enable a fast UX comparable to other
rollups and alt-L1s on the market, as soon as possible, with the goal of
eventually being fully compatible with light clients.

---------

Co-authored-by: Connor O'Hara <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants