Skip to content

Commit

Permalink
chore: bump ics29 to tip of main (#900)
Browse files Browse the repository at this point in the history
* 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 <crodveg@yahoo.es>

* updating error msgs to use expected, got format

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

Co-authored-by: Carlos Rodriguez <crodveg@yahoo.es>

* 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 <seantking@users.noreply.github.com>

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* 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 <crodveg@gmail.com>

* 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 <seantking@users.noreply.github.com>

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

Co-authored-by: Sean King <seantking@users.noreply.github.com>

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

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* updating as per review discussion

* removing capitals in heading as per review

Co-authored-by: Sean King <seantking@users.noreply.github.com>

* 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 <carlos@interchain.io>

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

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

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

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* 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 <25233464+colin-axner@users.noreply.github.com>

* Update testing/mock/ibc_module_test.go

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* adding additional helpers for ack + timeout

* chore: changelog

* nit: err syntax

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* 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 <25233464+colin-axner@users.noreply.github.com>

* 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 <damiannolan@gmail.com>

* update roadmap (#735)

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* 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] <support@github.com>

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

* 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 <damiannolan@gmail.com>

* remove broken link

* remove broken links

* Apply suggestions from code review

Co-authored-by: Carlos Rodriguez <crodveg@yahoo.es>

Co-authored-by: Damian Nolan <damiannolan@gmail.com>
Co-authored-by: Carlos Rodriguez <crodveg@yahoo.es>

* 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 <marbar3778@yahoo.com>

Co-authored-by: Marko <marbar3778@yahoo.com>

* 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 <crodveg@gmail.com>

* 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] <support@github.com>

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 <crodveg@gmail.com>

Co-authored-by: Sean King <seantking@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Damian Nolan <damiannolan@gmail.com>
Co-authored-by: Carlos Rodriguez <crodveg@yahoo.es>
Co-authored-by: Marko <marbar3778@yahoo.com>
Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* fixes evmos tests

* cleanup

* changelog and cleanup

* pr suggestions. bump chainid

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Sean King <seantking@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Damian Nolan <damiannolan@gmail.com>
Co-authored-by: Carlos Rodriguez <crodveg@yahoo.es>
Co-authored-by: Marko <marbar3778@yahoo.com>
Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

* 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 <carlos@interchain.io>

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

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

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

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

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

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

* 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 <25233464+colin-axner@users.noreply.github.com>

* 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 <25233464+colin-axner@users.noreply.github.com>

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* 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 <crodveg@yahoo.es>

* change LTS to be 1 year with potential extension

* Update RELEASES.md

Co-authored-by: Damian Nolan <damiannolan@gmail.com>

* Update RELEASES.md

Co-authored-by: Carlos Rodriguez <crodveg@yahoo.es>

* Update RELEASES.md

Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

* update end of life table

Co-authored-by: Carlos Rodriguez <crodveg@yahoo.es>
Co-authored-by: Damian Nolan <damiannolan@gmail.com>
Co-authored-by: Carlos Rodriguez <carlos@interchain.io>

* 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 <25233464+colin-axner@users.noreply.github.com>

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

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* refactore based on code review

Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>

* 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 <crodveg@gmail.com>

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

## Description

Currently the `A…
  • Loading branch information
14 people committed Feb 10, 2022
2 parents 6cb4a38 + e0161a7 commit dedbb57
Show file tree
Hide file tree
Showing 144 changed files with 6,437 additions and 16,802 deletions.
28 changes: 28 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Release

on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+-?[a-z0-9]*' # Push events to matching v*, i.e. v1.0.0, v20.15.10, v3.0.0-alpha1

jobs:
goreleaser:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2.4.0
with:
fetch-depth: 0

- uses: actions/setup-go@v2
with:
go-version: '1.17'

- name: Release
uses: goreleaser/goreleaser-action@v2
if: startsWith(github.ref, 'refs/tags/')
with:
version: latest
args: release --rm-dist
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
35 changes: 35 additions & 0 deletions .goreleaser.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
before:
hooks:
- go mod tidy

builds:
- main: ./testing/simapp/simd/main.go
binary: simd
flags:
- -tags=netgo ledger
- -mod=readonly
ldflags:
- -s -w -X github.com/cosmos/cosmos-sdk/version.Name=sim -X github.com/cosmos/cosmos-sdk/version.AppName=simd -X github.com/cosmos/cosmos-sdk/version.Version={{.Version}} -X "github.com/cosmos/cosmos-sdk/version.BuildTags=netgo,ledger"
env:
- CGO_ENABLED=0
goos:
- linux
- windows
- darwin
# for goarch use defaults: 386, amd64 and arm64.

checksum:
name_template: SHA256SUMS-{{.Version}}.txt
algorithm: sha256

release:
mode: keep-existing

archives:
- name_template: "{{ .ProjectName }}_simd_v{{ .Version }}_{{ .Os }}_{{ .Arch }}"
files:
- LICENSE
- README.md
- RELEASES.md
- SECURITY.md
- CHANGELOG.md
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,25 +39,37 @@ Ref: https://keepachangelog.com/en/1.0.0/
### Dependencies

* [\#404](https://github.com/cosmos/ibc-go/pull/404) Bump Go version to 1.17
* (core) [\#709](https://github.com/cosmos/ibc-go/pull/709) Replace github.com/pkg/errors with stdlib errors

### API Breaking

* (channel( [\#848](https://github.com/cosmos/ibc-go/pull/848) Added `ChannelId` to MsgChannelOpenInitResponse
* (testing( [\#813](https://github.com/cosmos/ibc-go/pull/813) The `ack` argument to the testing function `RelayPacket` has been removed as it is no longer needed.
* (testing) [\#774](https://github.com/cosmos/ibc-go/pull/774) Added `ChainID` arg to `SetupWithGenesisValSet` on the testing app. `Coordinator` generated ChainIDs now starts at index 1
* (transfer) [\#675](https://github.com/cosmos/ibc-go/pull/675) Transfer `NewKeeper` now takes in an ICS4Wrapper. The ICS4Wrapper may be the IBC Channel Keeper when ICS20 is not used in a middleware stack. The ICS4Wrapper is required for applications wishing to connect middleware to ICS20.
* (core) [\#650](https://github.com/cosmos/ibc-go/pull/650) Modify `OnChanOpenTry` IBC application module callback to return the negotiated app version. The version passed into the `MsgChanOpenTry` has been deprecated and will be ignored by core IBC.
* (core) [\#629](https://github.com/cosmos/ibc-go/pull/629) Removes the `GetProofSpecs` from the ClientState interface. This function was previously unused by core IBC.
* (transfer) [\#517](https://github.com/cosmos/ibc-go/pull/517) Separates the ICS 26 callback functions from `AppModule` into a new type `IBCModule` for ICS 20 transfer.
* (modules/core/02-client) [\#536](https://github.com/cosmos/ibc-go/pull/536) `GetSelfConsensusState` return type changed from bool to error.
* (channel) [\#644](https://github.com/cosmos/ibc-go/pull/644) Removes `CounterpartyHops` function from the ChannelKeeper.
* (testing) [\#776](https://github.com/cosmos/ibc-go/pull/776) Adding helper fn to generate capability name for testing callbacks
* (testing) [\#892](https://github.com/cosmos/ibc-go/pull/892) IBC Mock modules store the scoped keeper and portID within the IBCMockApp. They also maintain reference to the AppModule to update the AppModule's list of IBC applications it references. Allows for the mock module to be reused as a base application in middleware stacks.
* (channel) [\#882](https://github.com/cosmos/ibc-go/pull/882) The `WriteAcknowledgement` API now takes `exported.Acknowledgement` instead of a byte array

### State Machine Breaking

* (transfer) [\#818](https://github.com/cosmos/ibc-go/pull/818) Error acknowledgements returned from Transfer `OnRecvPacket` now include a deterministic ABCI code and error message.

### Improvements

* (testing) [\#810](https://github.com/cosmos/ibc-go/pull/810) Additional testing function added to `Endpoint` type called `RecvPacketWithResult`. Performs the same functionality as the existing `RecvPacket` function but also returns the message result. `path.RelayPacket` no longer uses the provided acknowledgement argument and instead obtains the acknowledgement via MsgRecvPacket events.
* (connection) [\#721](https://github.com/cosmos/ibc-go/pull/721) Simplify connection handshake error messages when unpacking client state.
* (channel) [\#692](https://github.com/cosmos/ibc-go/pull/692) Minimize channel logging by only emitting the packet sequence, source port/channel, destination port/channel upon packet receives, acknowledgements and timeouts.
* [\#383](https://github.com/cosmos/ibc-go/pull/383) Adds helper functions for merging and splitting middleware versions from the underlying app version.
* (modules/core/05-port) [\#288](https://github.com/cosmos/ibc-go/issues/288) Making the 05-port keeper function IsBound public. The IsBound function checks if the provided portID is already binded to a module.
* (channel) [\#644](https://github.com/cosmos/ibc-go/pull/644) Adds `GetChannelConnection` to the ChannelKeeper. This function returns the connectionID and connection state associated with a channel.
* (channel) [\647](https://github.com/cosmos/ibc-go/pull/647) Reorganizes channel handshake handling to set channel state after IBC application callbacks.
* (client) [\#724](https://github.com/cosmos/ibc-go/pull/724) `IsRevisionFormat` and `IsClientIDFormat` have been updated to disallow newlines before the dash used to separate the chainID and revision number, and the client type and client sequence.

### Features

Expand All @@ -67,6 +79,8 @@ Ref: https://keepachangelog.com/en/1.0.0/

### Bug Fixes

* (testing) [\#884](https://github.com/cosmos/ibc-go/pull/884) Add and use in simapp a custom ante handler that rejects redundant transactions

## [v2.0.2](https://github.com/cosmos/ibc-go/releases/tag/v2.0.2) - 2021-12-15

### Dependencies
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2021 COSMOS
Copyright (c) 2022 COSMOS

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
4 changes: 4 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,10 @@ build-docs:
cp ~/output/$${path_prefix}/index.html ~/output ; \
done < versions ;

view-docs:
@cd docs && \
npm install && npm run serve

.PHONY: build-docs

###############################################################################
Expand Down
39 changes: 39 additions & 0 deletions RELEASES.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,45 @@ To summarize: **All our ibc-go releases allow chains to communicate successfully

We ensure all major releases are supported by relayers ([hermes](https://github.com/informalsystems/ibc-rs), [rly](https://github.com/strangelove-ventures/relayer) and [ts-relayer](https://github.com/confio/ts-relayer) at the moment) which can relay between the new major release and older releases. We have no plans of upgrading to an IBC protocol specification v2.0, as this would be very disruptive to the ecosystem.

## Stable Release Policy

The beginning of a new major release series is marked by the release of a new major version. A major release series is comprised of all minor and patch releases made under the same major version number. The series continues to receive bug fixes (released as minor or patch releases) until it reaches end of life. The date when a major release series reaches end of life is determined by one of the two following methods:
- If the next major release is made within the first 6 months, then the end of life date of the major release series is 1 year after its initial release.
- If the next major release is made 6 months after the initial release, then the end of life date of the major release series is 6 months after the release date of the next major release.

For example, if the current major release series is v1 and was released on January 1st, 2022, then v1 will be supported at least until January 1st, 2023. If v2 is published on August 1st 2022, then v1's end of life will be March 1st, 2023.

Only the following major release series have a stable release status:

|Release|End of Life Date|
|-------|-------|
|`v1.1.x`|July 01, 2022|
|`v1.2.x`|July 01, 2022|
|`v2.0.x`|February 01, 2023|

**Note**: The v1 major release series will reach end of life 6 months after merging this policy. v2 will reach end of life one year after merging this policy.

### What pull requests will be included in stable patch-releases?

Pull requests that fix bugs and add features that fall in the following categories:

* **Severe regressions**.
* Bugs that may cause **client applications** to be **largely unusable**.
* Bugs that may cause **state corruption or data loss**.
* Bugs that may directly or indirectly cause a **security vulnerability**.
* Non-breaking features that are strongly requested by the community.
* Non-breaking CLI improvements that are strongly requested by the community.

### What pull requests will NOT be automatically included in stable patch-releases?

As rule of thumb, the following changes will **NOT** be automatically accepted into stable point-releases:

* **State machine changes**, unless the previous behaviour would result in a consensus halt.
* **Protobuf-breaking changes**.
* **Client-breaking changes**, i.e. changes that prevent gRPC, HTTP and RPC clients to continue interacting with the node without any change.
* **API-breaking changes**, i.e. changes that prevent client applications to *build without modifications* to the client application's source code.
* **CLI-breaking changes**, i.e. changes that require usage changes for CLI users.

## Graphics

The decision tree above was generated with the following code:
Expand Down
26 changes: 23 additions & 3 deletions docs/.vuepress/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -109,17 +109,37 @@ module.exports = {
{
title: "Interchain Accounts",
directory: true,
path: "/app_modules",
path: "/app-modules",
children: [
{
title: "Overview",
directory: false,
path: "/app_modules/interchain-accounts/overview.html"
path: "/app-modules/interchain-accounts/overview.html"
},
{
title: "Authentication Modules",
directory: false,
path: "/app-modules/interchain-accounts/auth-modules.html"
},
{
title: "Active Channels",
directory: false,
path: "/app-modules/interchain-accounts/active-channels.html"
},
{
title: "Integration",
directory: false,
path: "/app_modules/interchain-accounts/integration.html"
path: "/app-modules/interchain-accounts/integration.html"
},
{
title: "Parameters",
directory: false,
path: "/app-modules/interchain-accounts/parameters.html"
},
{
title: "Transactions",
directory: false,
path: "/app-modules/interchain-accounts/transactions.html"
},
]
},
Expand Down
25 changes: 25 additions & 0 deletions docs/app-modules/interchain-accounts/active-channels.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<!--
order: 3
-->

# Understanding Active Channels

The Interchain Accounts module uses [ORDERED channels](https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#ordering) to maintain the order of transactions when sending packets from a controller to a host chain. A limitation when using ORDERED channels is that when a packet times out the channel will be closed.

In the case of a channel closing, a controller chain needs to be able to regain access to the interchain account registered on this channel. `Active Channels` enable this functionality. Future versions of the ICS-27 protocol and the Interchain Accounts module will likely use a new
channel type that provides ordering of packets without the channel closing on timing out, thus removing the need for `Active Channels` entirely.

When an Interchain Account is registered using the `RegisterInterchainAccount` API, a new channel is created on a particular port. During the `OnChanOpenAck` and `OnChanOpenConfirm` steps (controller & host chain) the `Active Channel` for this interchain account
is stored in state.

It is possible to create a new channel using the same controller chain portID if the previously set `Active Channel` is now in a `CLOSED` state. This channel creation can be initialized programatically by sending a new `OnChanOpenInit` message like so:

```go
msg := channeltypes.NewMsgChannelOpenInit(portID, string(versionBytes), channeltypes.ORDERED, []string{connectionID}, icatypes.PortID, icatypes.ModuleName)
handler := k.msgRouter.Handler(msg)
```

Alternatively, any relayer operator may initiate a new channel handshake for this interchain account once the previously set `Active Channel` is in a `CLOSED` state. This is done by initiating the channel handshake on the controller chain using the same portID associated with the interchain account in question.

It is important to note that once a channel has been opened for a given Interchain Account, new channels can not be opened for this account until the currently set `Active Channel` is set to `CLOSED`.

Loading

0 comments on commit dedbb57

Please sign in to comment.