-
Notifications
You must be signed in to change notification settings - Fork 629
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
Add slash migration guide #1518
Add slash migration guide #1518
Conversation
github.com/cosmos/ibc-go/v3 -> github.com/cosmos/ibc-go/v4 | ||
``` | ||
|
||
This document is necessary when chains are upgrading from a version that does not support slashed base denoms (e.g. v3.0.0) to a version that does (e.g. v3.1.0). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
q: shouldn't this be v4.0.0 if you are bumping the go version?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe the plan is to do a minor release and backport to v1 and v2. cc: @crodriguezvega
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, the idea is to release this fix in v3.1.0, but also as a minor backport in v2.3.0 and v1.5.0, so that chains not yet on v3 can still benefit from the fix. I think this is the fastest way to get this fix out.
Alternatively, we could release this fix only with v4.0.0. That would probably make it easier for us to communicate this fix, because we can add this migration guide to the v3-to-v4 migration guide, and all chains migrating to v4.0.0 will need to run this migration. But v4.0.0 needs to come out with fee middleware and it could still take easily another 3 weeks before we cut the final release. So the viability of this option depends on how soon Evmos needs to have this fix.
Having a quick look at mintscan and it looks like most of the chains are still on v2, so if we release this only on v4 and those chains would like to benefit from the fix, then we are forcing them to run the migrations to upgrade to v3 and v4, which might be a bit too much to ask?
Does Evmos expect their slashed-denom tokens to be transferred to a particular set of chains or they could just go to any chain? Because if most likely the receiving chains of those tokens are going to be a handful of chains, maybe we could coordinate with an upgrade to v4?
@fedekunze @AdityaSripal what of these two options you think it's best?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@crodriguezvega The idea is that slashed-denom tokens are supported on any cosmos chain and that there is no specific set of chains.
As this functionality is blocking the adoption of our x/erc20
module, it would be great to go for the first option and release it in v3.1.0 as it is the faster option and requires less coordination.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the feedback, @danburck! Yes, I think that it's the option that makes most sense. I will try to release is asap!
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
…go into aditya/slash-migration-guide
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank so much, @AdityaSripal, for writing this migration guide!
I can do some testing of these migrations in the next couple of days.
github.com/cosmos/ibc-go/v3 -> github.com/cosmos/ibc-go/v4 | ||
``` | ||
|
||
This document is necessary when chains are upgrading from a version that does not support slashed base denoms (e.g. v3.0.0) to a version that does (e.g. v3.1.0). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, the idea is to release this fix in v3.1.0, but also as a minor backport in v2.3.0 and v1.5.0, so that chains not yet on v3 can still benefit from the fix. I think this is the fastest way to get this fix out.
Alternatively, we could release this fix only with v4.0.0. That would probably make it easier for us to communicate this fix, because we can add this migration guide to the v3-to-v4 migration guide, and all chains migrating to v4.0.0 will need to run this migration. But v4.0.0 needs to come out with fee middleware and it could still take easily another 3 weeks before we cut the final release. So the viability of this option depends on how soon Evmos needs to have this fix.
Having a quick look at mintscan and it looks like most of the chains are still on v2, so if we release this only on v4 and those chains would like to benefit from the fix, then we are forcing them to run the migrations to upgrade to v3 and v4, which might be a bit too much to ask?
Does Evmos expect their slashed-denom tokens to be transferred to a particular set of chains or they could just go to any chain? Because if most likely the receiving chains of those tokens are going to be a handful of chains, maybe we could coordinate with an upgrade to v4?
@fedekunze @AdityaSripal what of these two options you think it's best?
|
||
If a chain receives a slashed denom before it upgrades to supporting it, the receive may pass however the trace information will be incorrect. | ||
|
||
E.g. If a base denom of `testcoin/testcoin/testcoin` is sent to a chain that does not support slashes in the base denom; the receive will be successful. However, the trace information stored on the receiving chain will be: `Trace: "testcoin/testcoin", BaseDenom: "testcoin"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The trace information stored will actually be transfer/{channel-id}/testcoin/testcoin
.
|
||
**Note:** ibc-go supports golang semantic versioning and therefore all imports must be updated to bump the version number on major releases. | ||
```go | ||
github.com/cosmos/ibc-go/v3 -> github.com/cosmos/ibc-go/v4 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we should remove this part to avoid confusion...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe a asterisk note with special case for this release. I think this is part of the migrations template right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice! Guide looks pretty much good to me, left a nit or two, pretty minor!
// delete old genesis state | ||
delete(appState, transfertypes.ModuleName) | ||
|
||
// set new ibc transfer genesis state | ||
appState[transfertypes.ModuleName] = clientCtx.JSONCodec.MustMarshalJSON(transferGenState) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: indentation
// delete old genesis state | |
delete(appState, transfertypes.ModuleName) | |
// set new ibc transfer genesis state | |
appState[transfertypes.ModuleName] = clientCtx.JSONCodec.MustMarshalJSON(transferGenState) | |
// delete old genesis state | |
delete(appState, transfertypes.ModuleName) | |
// set new ibc transfer genesis state | |
appState[transfertypes.ModuleName] = clientCtx.JSONCodec.MustMarshalJSON(transferGenState) |
transferKeeper.IterateDenomTraces(ctx, | ||
func(dt transfertypes.DenomTrace) bool { | ||
// check if the new way of splitting FullDenom | ||
// into Trace and BaseDenom is the same as the current | ||
// DenomTrace. | ||
// If it isn't then store the new DenomTrace in the list of new traces. | ||
newTrace := transfertypes.ParseDenomTrace(dt.GetFullDenomPath()) | ||
|
||
if !reflect.DeepEqual(newTrace, dt) { | ||
append(newTraces, newTrace) | ||
} | ||
}) | ||
|
||
// replace the outdated traces with the new trace information | ||
for _, nt := range newTraces { | ||
transferKeeper.SetDenomTrace(ctx, nt) | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it worth adding a call to Validate
on new traces?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we could add it in if !reflect.DeepEqual(newTrace, dt)
as an extra condition. But if the validation fails, should we keep then the existing denom trace?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I think we can add the Validate
on that if
condition and if it doesn't pass, then we just leave that denom trace as it is...
|
||
**Note:** ibc-go supports golang semantic versioning and therefore all imports must be updated to bump the version number on major releases. | ||
```go | ||
github.com/cosmos/ibc-go/v3 -> github.com/cosmos/ibc-go/v4 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe a asterisk note with special case for this release. I think this is part of the migrations template right?
|
||
```go | ||
// Here the upgrade name is the upgrade name set by the chain | ||
app.UpgradeKeeper.SetUpgradeHandler("supportSlashingDenomUpgrade", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The code needed some adjustments to make it compile in the ibc-go simapp:
app.UpgradeKeeper.SetUpgradeHandler("supportSlashingDenomUpgrade",
func(ctx sdk.Context, _ upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {
// list of traces that must replace the old traces in store
var newTraces []ibctransfertypes.DenomTrace
app.TransferKeeper.IterateDenomTraces(ctx,
func(dt ibctransfertypes.DenomTrace) bool {
// check if the new way of splitting FullDenom
// into Trace and BaseDenom is the same as the current
// DenomTrace.
// If it isn't then store the new DenomTrace in the list of new traces.
newTrace := ibctransfertypes.ParseDenomTrace(dt.GetFullDenomPath())
if !reflect.DeepEqual(newTrace, dt) {
newTraces = append(newTraces, newTrace)
}
return false
})
// replace the outdated traces with the new trace information
for _, nt := range newTraces {
app.TransferKeeper.SetDenomTrace(ctx, nt)
}
return app.mm.RunMigrations(ctx, app.configurator, fromVM)
})
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tested the upgrade handler locally and it works.
Before migration:
denom_traces:
- base_denom: "1"
path: transfer/channel-0/gamm/poolpoolpool
- base_denom: "1"
path: transfer/channel-0/transfer/channel-1/gamm/testtesttest
pagination:
next_key: null
total: "0"
After migration:
denom_traces:
- base_denom: gamm/poolpoolpool/1
path: transfer/channel-0
- base_denom: gamm/testtesttest/1
path: transfer/channel-0/transfer/channel-1
pagination:
next_key: null
total: "0"
The migration code required may look like: | ||
|
||
```go | ||
func MigrateGenesis(appState genutiltypes.AppMap, clientCtx client.Context, genDoc tmtypes.GenesisDoc) (genutiltypes.AppMap, error) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This code also needed some adjustments to compile:
func MigrateGenesis(appState genutiltypes.AppMap, clientCtx client.Context, genDoc *tmtypes.GenesisDoc) (genutiltypes.AppMap, error) {
if appState[ibctransfertypes.ModuleName] != nil {
transferGenState := &ibctransfertypes.GenesisState{}
clientCtx.Codec.MustUnmarshalJSON(appState[ibctransfertypes.ModuleName], transferGenState)
substituteTraces := make([]ibctransfertypes.DenomTrace, len(transferGenState.DenomTraces))
for i, dt := range transferGenState.DenomTraces {
// replace all previous traces with the latest trace
// note most traces will have same value
newTrace := ibctransfertypes.ParseDenomTrace(dt.GetFullDenomPath())
substituteTraces[i] = newTrace
}
transferGenState.DenomTraces = substituteTraces
// delete old genesis state
delete(appState, ibctransfertypes.ModuleName)
// set new ibc transfer genesis state
appState[ibctransfertypes.ModuleName] = clientCtx.Codec.MustMarshalJSON(transferGenState)
}
return appState, nil
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I haven't been able to test this migration because the app state export panics.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did a trick (I skipped the app state export, but instead I manually modified the genesis.json file to add malformed denom traces) and I was able to test this migration functionality. It also works as expected.
- Relayers | ||
- IBC Light Clients | ||
|
||
This document is necessary when chains are upgrading from a version that does not support base denoms with slashes (e.g. v3.0.0) to a version that does (e.g. v3.1.0). All versions of ibc-go smaller than v1.5.0 for the v1.x release line, v2.3.0 for the v2.x release line, and v3.1.0 for the v3.x release line do *NOT** support IBC token transfers of coins whose base denoms contain slashes. Therefore the in-place of genesis migration described in this document are required when upgrading. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This document is necessary when chains are upgrading from a version that does not support base denoms with slashes (e.g. v3.0.0) to a version that does (e.g. v3.1.0). All versions of ibc-go smaller than v1.5.0 for the v1.x release line, v2.3.0 for the v2.x release line, and v3.1.0 for the v3.x release line do *NOT** support IBC token transfers of coins whose base denoms contain slashes. Therefore the in-place of genesis migration described in this document are required when upgrading. | |
This document is necessary when chains are upgrading from a version that does not support base denoms with slashes (e.g. v3.0.0) to a version that does (e.g. v3.1.0). All versions of ibc-go smaller than v1.5.0 for the v1.x release line, v2.3.0 for the v2.x release line, and v3.1.0 for the v3.x release line do *NOT** support IBC token transfers of coins whose base denoms contain slashes. Therefore the upgrade handler or in-place genesis migration described in this document are required when upgrading. |
// is the same as the current DenomTrace. | ||
// If it isn't then store the new DenomTrace in the list of new traces. | ||
newTrace := ibctransfertypes.ParseDenomTrace(dt.GetFullDenomPath()) | ||
if err := newTrace.Validate(); err == nil && !reflect.DeepEqual(newTrace, dt) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Quick question, with the additionof the reflect.DeepEqual
check, doesn't this mean that non-malformed traces that were previously in the store will be essentially discard here?
Do we need the reflect.DeepEqual
check?
This logic seems to differ from the Genesis Migration below.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah apologies, we're not setting the whole list and overriding, its looping below and setting individually
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
64657c5
into
carlos/1446-bugtransfer-cannot-send-namespaced-ibc-denom-using-slashes
* fix to correctly parse denoms with slashes in the base denom * some logic refinement * review comments * add changelog entry an other review comments * review comment * Add slash migration guide (#1518) * add migration guide * Update docs/migrations/support-slashed-denoms.md Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * clarify upgrade name * remove unnecessary store loader * review comment, update migration code Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * rename migration file Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> Co-authored-by: Aditya <adityasripal@gmail.com> Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
* fix to correctly parse denoms with slashes in the base denom * some logic refinement * review comments * add changelog entry an other review comments * review comment * Add slash migration guide (#1518) * add migration guide * Update docs/migrations/support-slashed-denoms.md Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * clarify upgrade name * remove unnecessary store loader * review comment, update migration code Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * rename migration file Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> Co-authored-by: Aditya <adityasripal@gmail.com> Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> (cherry picked from commit 3a235af) # Conflicts: # CHANGELOG.md
* fix to correctly parse denoms with slashes in the base denom * some logic refinement * review comments * add changelog entry an other review comments * review comment * Add slash migration guide (#1518) * add migration guide * Update docs/migrations/support-slashed-denoms.md Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * clarify upgrade name * remove unnecessary store loader * review comment, update migration code Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * rename migration file Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> Co-authored-by: Aditya <adityasripal@gmail.com> Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> (cherry picked from commit 3a235af) # Conflicts: # CHANGELOG.md
* fix to correctly parse denoms with slashes in the base denom * some logic refinement * review comments * add changelog entry an other review comments * review comment * Add slash migration guide (#1518) * add migration guide * Update docs/migrations/support-slashed-denoms.md Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * clarify upgrade name * remove unnecessary store loader * review comment, update migration code Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * rename migration file Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> Co-authored-by: Aditya <adityasripal@gmail.com> Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> (cherry picked from commit 3a235af) # Conflicts: # CHANGELOG.md
…#1451) (#1534) * fix to correctly parse denoms with slashes in the base denom (#1451) * fix to correctly parse denoms with slashes in the base denom * some logic refinement * review comments * add changelog entry an other review comments * review comment * Add slash migration guide (#1518) * add migration guide * Update docs/migrations/support-slashed-denoms.md Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * clarify upgrade name * remove unnecessary store loader * review comment, update migration code Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * rename migration file Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> Co-authored-by: Aditya <adityasripal@gmail.com> Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> (cherry picked from commit 3a235af) # Conflicts: # CHANGELOG.md * fix conflict * fix conflict Co-authored-by: Carlos Rodriguez <carlos@interchain.io>
…#1451) (#1535) * fix to correctly parse denoms with slashes in the base denom (#1451) * fix to correctly parse denoms with slashes in the base denom * some logic refinement * review comments * add changelog entry an other review comments * review comment * Add slash migration guide (#1518) * add migration guide * Update docs/migrations/support-slashed-denoms.md Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * clarify upgrade name * remove unnecessary store loader * review comment, update migration code Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * rename migration file Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> Co-authored-by: Aditya <adityasripal@gmail.com> Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> (cherry picked from commit 3a235af) # Conflicts: # CHANGELOG.md * fix conflict Co-authored-by: Carlos Rodriguez <carlos@interchain.io>
…#1451) (#1536) * fix to correctly parse denoms with slashes in the base denom (#1451) * fix to correctly parse denoms with slashes in the base denom * some logic refinement * review comments * add changelog entry an other review comments * review comment * Add slash migration guide (#1518) * add migration guide * Update docs/migrations/support-slashed-denoms.md Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * clarify upgrade name * remove unnecessary store loader * review comment, update migration code Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * rename migration file Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> Co-authored-by: Aditya <adityasripal@gmail.com> Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> (cherry picked from commit 3a235af) # Conflicts: # CHANGELOG.md * fix conflict Co-authored-by: Carlos Rodriguez <carlos@interchain.io>
…cosmos#1451) (cosmos#1536) * fix to correctly parse denoms with slashes in the base denom (cosmos#1451) * fix to correctly parse denoms with slashes in the base denom * some logic refinement * review comments * add changelog entry an other review comments * review comment * Add slash migration guide (cosmos#1518) * add migration guide * Update docs/migrations/support-slashed-denoms.md Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * clarify upgrade name * remove unnecessary store loader * review comment, update migration code Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * rename migration file Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> Co-authored-by: Aditya <adityasripal@gmail.com> Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> (cherry picked from commit 3a235af) # Conflicts: # CHANGELOG.md * fix conflict Co-authored-by: Carlos Rodriguez <carlos@interchain.io>
* override default docsBranch (cosmos#1355) (cosmos#1390) ## Description closes: cosmos#1354 --- 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. - [ ] 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 - [x] Review `Codecov Report` in the comment section below once CI passes (cherry picked from commit 2709c24) Co-authored-by: Carlos Rodriguez <carlos@interchain.io> * build(deps): bump github.com/cosmos/cosmos-sdk from 0.45.3 to 0.45.4 (cosmos#1300) (cosmos#1365) * build(deps): bump github.com/cosmos/cosmos-sdk from 0.45.3 to 0.45.4 Bumps [github.com/cosmos/cosmos-sdk](https://github.com/cosmos/cosmos-sdk) from 0.45.3 to 0.45.4. - [Release notes](https://github.com/cosmos/cosmos-sdk/releases) - [Changelog](https://github.com/cosmos/cosmos-sdk/blob/v0.45.4/CHANGELOG.md) - [Commits](cosmos/cosmos-sdk@v0.45.3...v0.45.4) --- updated-dependencies: - dependency-name: github.com/cosmos/cosmos-sdk dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * update changelog Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> Co-authored-by: Carlos Rodriguez <carlos@interchain.io> (cherry picked from commit bd08650) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * add empty keepers checking in ibc NewKeeper (backport cosmos#1284) (cosmos#1382) * add empty keepers checking in ibc NewKeeper (cosmos#1284) * add empty keepers checking in ibc NewKeeper * check for empty exported keepers instead of empty sdk-defined keeper structs * Update modules/core/keeper/keeper.go Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * remove func checkEmptyKeepers(), check empty keepers directly within func NewKeeper() * modules/core/keeper KeeperTestSuite -> MsgServerTestSuite; creat new modules/core/keeper KeeperTestSuite for testing ibckeeper.NewKeeper() * update CHANGELOG.md * DummyStakingKeeper -> MockStakingKeeper * refactor modules/core/keeper test * Update modules/core/keeper/keeper_test.go Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * Update modules/core/keeper/keeper.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> (cherry picked from commit f2577f9) # Conflicts: # CHANGELOG.md * fix conflict * fix conflict Co-authored-by: khanh <50263489+catShaark@users.noreply.github.com> Co-authored-by: crodriguezvega <carlos@interchain.io> * fix: prefix ResponseResultType enum for proto linting (cosmos#1143) (cosmos#1393) (cherry picked from commit 5cf580c) Co-authored-by: Damian Nolan <damiannolan@gmail.com> * chore : add selected channel version to MsgChanOpenInitResponse and MsgChanOpenTryResponse (backport cosmos#1279) (cosmos#1374) * chore : add selected channel version to MsgChanOpenInitResponse and MsgChanOpenTryResponse (cosmos#1279) ## Description - Add a version field to MsgChannelOpenInitResponse and MsgChannelOpenTryResponse in proto and gen proto - Set the selected channel version in the [MsgChannelOpenInitResponse](https://github.com/notional-labs/ibc-go/blob/ed7a082565fadb9ce27067fa1efb56c23fafc8ef/modules/core/keeper/msg_server.go#L197) and [MsgChannelOpenTryResponse](https://github.com/notional-labs/ibc-go/blob/ed7a082565fadb9ce27067fa1efb56c23fafc8ef/modules/core/keeper/msg_server.go#L237) --- 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 closes: cosmos#1204 (cherry picked from commit a187803) # Conflicts: # CHANGELOG.md # modules/core/04-channel/types/tx.pb.go * fix conflict * regenerate proto file * go mod tidy Co-authored-by: vuong <56973102+nguyenvuong1122000@users.noreply.github.com> Co-authored-by: Carlos Rodriguez <carlos@interchain.io> * feat: Add sender to fungible_token_packet events (backport cosmos#1414) (cosmos#1427) * Add Sender to funginble_token_packet events (cherry picked from commit f05a7cf) * chore: Updated CHANGELOG.md (cherry picked from commit c809c51) # Conflicts: # CHANGELOG.md * Update CHANGELOG.md (cherry picked from commit d8be3d0) # Conflicts: # CHANGELOG.md * Update CHANGELOG.md Co-authored-by: Damian Nolan <damiannolan@gmail.com> (cherry picked from commit 46d73a0) # Conflicts: # CHANGELOG.md * fix conflicts Co-authored-by: chatton <cianhatton@gmail.com> Co-authored-by: Cian Hatton <cian@interchain.io> Co-authored-by: Carlos Rodriguez <carlos@interchain.io> * add swagger for interchain accounts (cosmos#1402) (cosmos#1411) ## 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. - [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 bf444a6) Co-authored-by: Carlos Rodriguez <carlos@interchain.io> * add actual parameter example to denom-trace and denom-hash CLI queries (backport cosmos#1442) (cosmos#1463) * add actual parameter example to denom-trace and denom-hash CLI queries (cosmos#1442) (cherry picked from commit 8062d01) # Conflicts: # modules/apps/transfer/client/cli/query.go * fix conflict Co-authored-by: Carlos Rodriguez <carlos@interchain.io> * Emit channel close event on ordered channel close (backport cosmos#1464) (cosmos#1476) * Emit channel close event on ordered channel close (cosmos#1464) (cherry picked from commit 9ed5ca4) # Conflicts: # CHANGELOG.md * fix conflict Co-authored-by: Cian Hatton <cian@interchain.io> Co-authored-by: Carlos Rodriguez <carlos@interchain.io> * backport cosmos#1416 (cosmos#1496) Co-authored-by: Cian Hatton <cian@interchain.io> * chore: improve DenomTrace grpc (backport cosmos#1342) (cosmos#1504) * chore: improve DenomTrace grpc (cosmos#1342) * change DenomTrace grpc * update CHANGELOG.md * minor * minor * minor * minor * minor * minor * Update modules/apps/transfer/keeper/grpc_query_test.go Co-authored-by: Carlos Rodriguez <carlos@interchain.io> * Update modules/apps/transfer/keeper/grpc_query_test.go Co-authored-by: Carlos Rodriguez <carlos@interchain.io> * Update CHANGELOG.md Co-authored-by: Damian Nolan <damiannolan@gmail.com> * use TrimPrefix() in DenomTrace() * update migration doc Co-authored-by: Carlos Rodriguez <carlos@interchain.io> Co-authored-by: Damian Nolan <damiannolan@gmail.com> (cherry picked from commit 23e7e7d) # Conflicts: # CHANGELOG.md # docs/ibc/proto-docs.md # docs/migrations/v3-to-v4.md # modules/apps/transfer/client/cli/query.go * fix conflicts Co-authored-by: khanh <50263489+catShaark@users.noreply.github.com> Co-authored-by: crodriguezvega <carlos@interchain.io> * Emit an event to indicate a successful acknowledgement in the ICA module (backport cosmos#1466) (cosmos#1509) * Emit an event to indicate a successful acknowledgement in the ICA module (cosmos#1466) (cherry picked from commit b2ca193) # Conflicts: # modules/apps/27-interchain-accounts/host/keeper/events.go * fix conflicts Co-authored-by: Cian Hatton <cian@interchain.io> Co-authored-by: crodriguezvega <carlos@interchain.io> * chore: Add consensus state heights query (backport cosmos#1336) (cosmos#1507) * chore: Add consensus state heights query (cosmos#1336) * add ConsensusStateHeights query * add cli for ConsensusStateHeights Query * update CHANGELOG.md * Update modules/core/02-client/keeper/grpc_query.go Co-authored-by: Damian Nolan <damiannolan@gmail.com> * Update modules/core/02-client/client/cli/query.go Co-authored-by: Damian Nolan <damiannolan@gmail.com> * Update modules/core/02-client/client/cli/query.go Co-authored-by: Damian Nolan <damiannolan@gmail.com> * Update modules/core/02-client/client/cli/query.go Co-authored-by: Damian Nolan <damiannolan@gmail.com> * update consensus height query * very minor changes in modules/core/02-client grpc_query_test * Update modules/core/02-client/keeper/grpc_query_test.go Co-authored-by: Sean King <seantking@users.noreply.github.com> * Update modules/core/02-client/keeper/grpc_query_test.go Co-authored-by: Sean King <seantking@users.noreply.github.com> * Update modules/core/02-client/keeper/grpc_query_test.go Co-authored-by: Sean King <seantking@users.noreply.github.com> * Update modules/core/02-client/keeper/grpc_query_test.go Co-authored-by: Sean King <seantking@users.noreply.github.com> * Update modules/core/02-client/client/cli/query.go Co-authored-by: Sean King <seantking@users.noreply.github.com> * Update modules/core/02-client/keeper/grpc_query_test.go Co-authored-by: Carlos Rodriguez <carlos@interchain.io> * Update CHANGELOG.md Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * update swagger.yaml; update 02-client grpc_query_test * Update modules/core/02-client/keeper/grpc_query_test.go Co-authored-by: Damian Nolan <damiannolan@gmail.com> * nit Co-authored-by: Damian Nolan <damiannolan@gmail.com> Co-authored-by: Sean King <seantking@users.noreply.github.com> Co-authored-by: Carlos Rodriguez <carlos@interchain.io> Co-authored-by: vuong <56973102+vuong177@users.noreply.github.com> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> (cherry picked from commit 042d818) # Conflicts: # CHANGELOG.md # docs/client/swagger-ui/swagger.yaml * fix conflicts and change gRPC web route to consensus_state/{client_id}/heights Co-authored-by: khanh <50263489+catShaark@users.noreply.github.com> Co-authored-by: crodriguezvega <carlos@interchain.io> * fix: deprecate AllowUpdateAfter...check (backport cosmos#1511) (cosmos#1521) * fix: deprecate AllowUpdateAfter...check (cosmos#1511) * fix: deprecate AllowUpdateAfter...check * update IsMatchingClientState * rm unnecessary fields in testing (cherry picked from commit 5e5e2cd) # Conflicts: # CHANGELOG.md * fix conflicts * Update CHANGELOG.md * Update adr-026-ibc-client-recovery-mechanisms.md Co-authored-by: Charly <charly@interchain.berlin> Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> Co-authored-by: Carlos Rodriguez <carlos@interchain.io> * fix to correctly parse denoms with slashes in the base denom (backport cosmos#1451) (cosmos#1536) * fix to correctly parse denoms with slashes in the base denom (cosmos#1451) * fix to correctly parse denoms with slashes in the base denom * some logic refinement * review comments * add changelog entry an other review comments * review comment * Add slash migration guide (cosmos#1518) * add migration guide * Update docs/migrations/support-slashed-denoms.md Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * clarify upgrade name * remove unnecessary store loader * review comment, update migration code Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * rename migration file Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> Co-authored-by: Aditya <adityasripal@gmail.com> Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> (cherry picked from commit 3a235af) # Conflicts: # CHANGELOG.md * fix conflict Co-authored-by: Carlos Rodriguez <carlos@interchain.io> * Update CHANGELOG.md * Update CHANGELOG.md * Update CHANGELOG.md * Update CHANGELOG.md * feat: added check for wildcard * to allow all message types (cosmos#1512) (cosmos#1537) * added check for wildcard * to allow all message types * update docs * nit (cherry picked from commit 08d91ad) Co-authored-by: Charly <charly@interchain.berlin> * Update versions * Update config.js * Delete v3-to-v4.md * build(deps): bump github.com/cosmos/cosmos-sdk from 0.45.4 to 0.45.5 (backport cosmos#1525) (cosmos#1547) * build(deps): bump github.com/cosmos/cosmos-sdk from 0.45.4 to 0.45.5 (cosmos#1525) * build(deps): bump github.com/cosmos/cosmos-sdk from 0.45.4 to 0.45.5 Bumps [github.com/cosmos/cosmos-sdk](https://github.com/cosmos/cosmos-sdk) from 0.45.4 to 0.45.5. - [Release notes](https://github.com/cosmos/cosmos-sdk/releases) - [Changelog](https://github.com/cosmos/cosmos-sdk/blob/v0.45.5/CHANGELOG.md) - [Commits](cosmos/cosmos-sdk@v0.45.4...v0.45.5) --- updated-dependencies: - dependency-name: github.com/cosmos/cosmos-sdk dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * updating changelog to reflect SDK v0.45.5 upgrade 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 <carlos@interchain.io> (cherry picked from commit 681a558) # Conflicts: # CHANGELOG.md * fix conflicts Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Carlos Rodriguez <carlos@interchain.io> * add migration for base denoms with slashes to docs site (cosmos#1544) (cosmos#1557) ## 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 6c034bc) Co-authored-by: Carlos Rodriguez <carlos@interchain.io> * docs: add upgrade client proposal event (cosmos#1596) (cosmos#1635) (cherry picked from commit 41282c7) Co-authored-by: Carlos Rodriguez <carlos@interchain.io> * feat: emitting an event when handling a client upgrade proposal (backport cosmos#1570) (cosmos#1594) * feat: emitting an event when handling a client upgrade proposal (cosmos#1570) * feat: emitting an event when handling a client upgrade proposal * refactor: only emit event if err is nil * refactor: idiotmatic go: (cherry picked from commit 8422d0c) # Conflicts: # CHANGELOG.md * Update CHANGELOG.md Co-authored-by: Sean King <seantking@users.noreply.github.com> * deps: bumping go version 1.18 (backport cosmos#1627) (cosmos#1656) * deps: bumping go version 1.18 (cosmos#1627) * bumping go version 1.18 * updating broken workflow setup (cherry picked from commit 7d971ec) # Conflicts: # .github/workflows/test.yml # Dockerfile # go.sum * fixing merge conflicts Co-authored-by: Damian Nolan <damiannolan@gmail.com> * build(deps): bump github.com/cosmos/cosmos-sdk from 0.45.5 to 0.45.6 (backport cosmos#1615) (cosmos#1658) * build(deps): bump github.com/cosmos/cosmos-sdk from 0.45.5 to 0.45.6 (cosmos#1615) * build(deps): bump github.com/cosmos/cosmos-sdk from 0.45.5 to 0.45.6 Bumps [github.com/cosmos/cosmos-sdk](https://github.com/cosmos/cosmos-sdk) from 0.45.5 to 0.45.6. - [Release notes](https://github.com/cosmos/cosmos-sdk/releases) - [Changelog](https://github.com/cosmos/cosmos-sdk/blob/main/CHANGELOG.md) - [Commits](cosmos/cosmos-sdk@v0.45.5...v0.45.6) --- updated-dependencies: - dependency-name: github.com/cosmos/cosmos-sdk dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * Update CHANGELOG.md * copying part of codeql workflow to try to make it pass Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Carlos Rodriguez <carlos@interchain.io> Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> (cherry picked from commit e049649) # Conflicts: # .github/workflows/codeql-analysis.yml # CHANGELOG.md * fixing conflicts in changelog.md Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Damian Nolan <damiannolan@gmail.com> * Update CHANGELOG.md * fix typo * chore: denom traces migration handler (backport cosmos#1680) (cosmos#1754) * chore: denom traces migration handler (cosmos#1680) * update code & test * register migrator service (cherry picked from commit be5ccf3) # Conflicts: # CHANGELOG.md # docs/migrations/support-denoms-with-slashes.md # docs/migrations/v3-to-v4.md # modules/apps/transfer/types/trace.go * fix conflicts * fix go version package * put back entry that got removed by mistake Co-authored-by: Charly <charly@interchain.berlin> Co-authored-by: crodriguezvega <carlos@interchain.io> * feat: allow governance to update the TrustingPeriod of the 07-tendermint light client (backport cosmos#1713) (cosmos#1761) * feat: allow governance to update the TrustingPeriod of the 07-tendermint light client (cosmos#1713) * initial commit * format imports * update docs * update CHANGELOG * update upgrade dev docs * update re: pr comments (cherry picked from commit c12789d) * position correctly changelog entry Co-authored-by: Charly <charly@interchain.berlin> Co-authored-by: Carlos Rodriguez <carlos@interchain.io> * fix broken link (cosmos#1776) (cosmos#1808) (cherry picked from commit ef7a5c7) Co-authored-by: Carlos Rodriguez <carlos@interchain.io> * fix: add cosmos_proto.implements_interface (backport cosmos#1740) (cosmos#1817) * fix: add cosmos_proto.implements_interface (cosmos#1740) * fix: add cosmos_proto.implements_interface * changelog * Update CHANGELOG.md Co-authored-by: Carlos Rodriguez <carlos@interchain.io> * run `make proto-all` * run `go mod tidy` Co-authored-by: Carlos Rodriguez <carlos@interchain.io> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> (cherry picked from commit 40d0ff7) # Conflicts: # CHANGELOG.md # modules/core/02-client/types/client.pb.go * fix conflict Co-authored-by: Dan Lynch <pyramation@gmail.com> Co-authored-by: crodriguezvega <carlos@interchain.io> * fix: ics27 check packet data length explicitly over nil check (cosmos#1882) (cosmos#1897) * using len check in favour of nil check for interchain account packet data * adding changelog * updating changelog (cherry picked from commit 73fdde9) Co-authored-by: Damian Nolan <damiannolan@gmail.com> * chore: adding dockerfile and release task to release/3.2.x (cosmos#1932) * fix: prevent blocked addresses from sending ICS 20 transfers (backport cosmos#1907) (cosmos#1945) * fix: prevent blocked addresses from sending ICS 20 transfers (cosmos#1907) * fix bug, add test Ensures that a sender account isn't a blocked address Added test cases for MsgTransfer handling * update documentation * move blocked address check to SendTransfer * add changelog entry (cherry picked from commit f891c29) # Conflicts: # modules/apps/transfer/keeper/relay_test.go * fix conflicts Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * Fixing github action workflows (backport cosmos#1428) (cosmos#1939) * chore: backport cosmos#1905 (cosmos#1978) Co-authored-by: Devashish Dixit <devashish@crypto.com> * fix: "acknowledgement written" logs unsupported type (backport cosmos#1919) (cosmos#1960) * fix: "acknowledgement written" logs unsupported type (cosmos#1919) * fix: "acknowledgement written" logs unsupported type * Updating CHANGELOG.md Co-authored-by: Carlos Rodriguez <carlos@interchain.io> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> (cherry picked from commit 897e7eb) # Conflicts: # CHANGELOG.md * fix conflict Co-authored-by: Joe Abbey <joe.abbey@gmail.com> Co-authored-by: Carlos Rodriguez <carlos@interchain.io> * Update CHANGELOG.md * Update CHANGELOG.md * fix broken link (cosmos#2059) (cosmos#2096) (cherry picked from commit 7d26a87) Co-authored-by: Carlos Rodriguez <carlos@interchain.io> * gofumpt v3.2.x (cosmos#1735) * gofumpt v3.2.x * update Makefile, run make format * remove empty line in comments * chore: fix broken link to bank module spec (backport cosmos#2201) (cosmos#2208) * chore: fix broken link to bank module spec (cosmos#2201) ## 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. - [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 1a0918d) # Conflicts: # docs/apps/transfer/params.md * fix conflict Co-authored-by: Carlos Rodriguez <carlos@interchain.io> * feat: adding interchain account address query to controller submodule (backport cosmos#2193) (cosmos#2291) * feat: adding interchain account address query to controller submodule (cosmos#2193) * adding interchain account address query to ica controller * adding basic cli query * satisfy linter, aligning recvr var naming * Apply suggestions from code review Co-authored-by: Carlos Rodriguez <carlos@interchain.io> * reordering cli args * regenerate protobufs and swagger docs post review suggestions * adding changelog * Update modules/apps/27-interchain-accounts/controller/client/cli/query.go Co-authored-by: Carlos Rodriguez <carlos@interchain.io> (cherry picked from commit e569045) # Conflicts: # CHANGELOG.md # docs/client/swagger-ui/swagger.yaml # docs/ibc/proto-docs.md # modules/apps/27-interchain-accounts/controller/keeper/grpc_query.go # modules/apps/27-interchain-accounts/controller/keeper/grpc_query_test.go # modules/apps/27-interchain-accounts/controller/types/query.pb.go * fix merge conflicts Co-authored-by: Damian Nolan <damiannolan@gmail.com> Co-authored-by: Colin Axnér <25233464+colin-axner@users.noreply.github.com> * `release/v3.3.x` - Bump SDK to v0.45.8 and Tendermint to v0.34.21 (cosmos#2286) * deps: bump SDK to v0.45.8 and tendermint to v0.34.21 * changelog entry * Merge pull request from GHSA-832c-mq9v-367r * fix: use block app hash and tx list to generate interchain account address Generate interchain account addresses using host connection ID, controller PortID, block app hash, and block data hash Update tests to handle non-determinstic address creation Add test case to ensure address generation is block dependent * fix: return error on existing non-interchainaccounts for generated address If an account exists and is not an interchain account return an error Add test cases for existing accounts, both interchain and non interchain account Refactor account tests to be table tests * fix: refactor handshake code to account for block dependent address generation * add more test cases, update error messaging * self review fix * increase test readability * remove msg_server_test.go * fix API breaking changes * self nit * fix tests * fix naming GenerateAddress naming * add test cases for controller side channel reopening * fix cherry-pick conflict * Update modules/apps/27-interchain-accounts/types/account.go Co-authored-by: Damian Nolan <damiannolan@gmail.com> Co-authored-by: Damian Nolan <damiannolan@gmail.com> * fix: add nil checks for controller and host keeper services (backport cosmos#2308) (cosmos#2313) * fix: add nil checks for controller and host keeper services (cosmos#2308) ## 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 888c4a0) # Conflicts: # CHANGELOG.md # modules/apps/27-interchain-accounts/controller/keeper/migrations.go # modules/apps/27-interchain-accounts/module.go * fix merge conflicts Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * update changelog for v3.3.0 release * Update CHANGELOG.md * fix broken link/update link (cosmos#2338) (cosmos#2346) (cherry picked from commit d908b1b) Co-authored-by: Carlos Rodriguez <carlos@interchain.io> * Fix ICAControllerKeeper (cosmos#2303) (cosmos#2332) Co-authored-by: Carlos Rodriguez <carlos@interchain.io> (cherry picked from commit 280db0c) Co-authored-by: Raul Bernal <bernal.raul@gmail.com> * Adding `paramsKeeper.Subspace(icahosttypes.SubModuleName)` (cosmos#2220) (cosmos#2324) * Adding `paramsKeeper.Subspace(icahosttypes.SubModuleName)` Adding `paramsKeeper.Subspace(icahosttypes.SubModuleName)` at `initParamsKeeper` func * fix spaces * adding missing paramsKeeper paramsKeeper.Subspace(icacontrollertypes.SubModuleName) Co-authored-by: Carlos Rodriguez <carlos@interchain.io> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> (cherry picked from commit 7b26bda) Co-authored-by: Raul Bernal <bernal.raul@gmail.com> * MsgTransferResponse add sequence (backport cosmos#2377) (cosmos#2465) * MsgTransferResponse add sequence (cosmos#2377) ## Description Returns sequence from `sendTransfer`, and returns it with the `MsgTransferResponse`. This is not an API breaking change. Retrieving the sequence at the time of creating the transfer is necessary in the packet forward middleware for correlation with multihop packet flows. strangelove-ventures/packet-forward-middleware#33 strangelove-ventures/interchaintest#306 Closes cosmos#1969 --- - [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) Existing test coverage exercises this new method due to the re-routing of `SendTransfer` through `SendPacketTransfer` - [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 3363917) # Conflicts: # docs/ibc/proto-docs.md # modules/apps/transfer/keeper/msg_server.go # modules/apps/transfer/keeper/relay.go # modules/apps/transfer/types/tx.pb.go * fix conflicts Co-authored-by: Andrew Gouin <andrew@gouin.io> Co-authored-by: crodriguezvega <carlos@interchain.io> * fixing dead link to sdk v0.44 (cosmos#2488) (cosmos#2493) Co-authored-by: Carlos Rodriguez <carlos@interchain.io> (cherry picked from commit a1843f8) Co-authored-by: Damian Nolan <damiannolan@gmail.com> * chore: fix broken links (backport cosmos#2511) (cosmos#2521) * fix broken links (cosmos#2511) Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> (cherry picked from commit 4c45212) # Conflicts: # docs/ibc/apps/apps.md # docs/middleware/ics29-fee/fee-distribution.md # modules/apps/transfer/spec/06_metrics.md * Delete fee-distribution.md * fix conflict * Delete apps.md Co-authored-by: Carlos Rodriguez <carlos@interchain.io> * Added optional packet metadata to the packet and message types (backport cosmos#2305) (cosmos#2505) * Added optional packet metadata to the packet and message types (cosmos#2305) * added optional packet metadata to the packet and message types * added docs * breaking the api (backports should add a utility function for this) * adding nil metadata on all the calls * added metadata to the cli * added events * breaking api for FungibleTokenPacketData * hex encoding metadata * added abstraction * fixed bad merge * added tests with metadata * added missing metadata to packet for recv * cleaning up metadata on every test * reset metadata * added metadata flag * lint * Update modules/apps/transfer/client/cli/tx.go Co-authored-by: Damian Nolan <damiannolan@gmail.com> * fixed bad call in tests Co-authored-by: Damian Nolan <damiannolan@gmail.com> (cherry picked from commit 82397d6) # Conflicts: # docs/apps/transfer/messages.md # docs/ibc/proto-docs.md # go.mod # go.sum # modules/apps/29-fee/transfer_test.go # modules/apps/transfer/ibc_module.go # modules/apps/transfer/keeper/mbt_relay_test.go # modules/apps/transfer/keeper/relay_test.go # modules/apps/transfer/spec/05_events.md # modules/apps/transfer/types/packet.pb.go # modules/apps/transfer/types/tx.pb.go # proto/ibc/applications/interchain_accounts/controller/v1/tx.proto * fixing conflicts * fix event emission * fix test * fix broken link * revert unnecessary change * revert unnecessary change * remove api breaking changes * removing more api breaking changes * another api breaking change * remove unused code * another api breaking change * another api breaking change * fix tests * remove test Co-authored-by: Nicolas Lara <nicolaslara@gmail.com> Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> Co-authored-by: Carlos Rodriguez <carlos@interchain.io> * add entry for cosmos#2305 * refactor: adapting transfer metadata bytes field to memo string (backport cosmos#2595) (cosmos#2597) * refactor: adapting transfer metadata bytes field to memo string (cosmos#2595) * adapting transfer metadata bytes field to memo string * updating changelog (cherry picked from commit 05685b3) # Conflicts: # CHANGELOG.md # docs/ibc/proto-docs.md # go.mod # go.sum # modules/apps/29-fee/transfer_test.go # modules/apps/transfer/client/cli/tx.go # modules/apps/transfer/ibc_module.go # modules/apps/transfer/keeper/mbt_relay_test.go # modules/apps/transfer/keeper/msg_server_test.go # modules/apps/transfer/keeper/relay.go # modules/apps/transfer/keeper/relay_test.go # modules/apps/transfer/transfer_test.go # modules/apps/transfer/types/msgs.go # modules/apps/transfer/types/msgs_test.go # modules/apps/transfer/types/packet.go # modules/apps/transfer/types/packet.pb.go # modules/apps/transfer/types/packet_test.go # modules/apps/transfer/types/tx.pb.go * resolving conflicts Co-authored-by: Damian Nolan <damiannolan@gmail.com> * use controller module address instead of module name for NewMsgChannelOpenInit (backport cosmos#2568) (cosmos#2609) * use controller module address instead of module name for NewMsgChannelOpenInit (cosmos#2568) ## Description In controller keeper's `registerInterchainAccount` we execute a `MsgChannelOpenInit` to set up an ica channel. Currently, we have [`icatypes.ModuleName`](https://github.com/cosmos/ibc-go/blob/95cec44c9fb10a2e84a327cdd98c7d588f091f42/modules/apps/27-interchain-accounts/controller/keeper/account.go#L63) as the msg signer. This is not good because the [`ValidateBasic()`](https://github.com/cosmos/ibc-go/blob/692790402a033c1d9647c1e1eded5351332283bf/modules/core/04-channel/types/msgs.go#L34) of `MsgChannelOpenInit` has check if msg signer is bech32 or not. ref cosmos#2566 closes: cosmos#2559 --- 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/main/docs/docs/building-modules/10-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 6105db4) # Conflicts: # modules/apps/27-interchain-accounts/controller/keeper/account.go * resolving conflicts Co-authored-by: khanh-notional <50263489+catShaark@users.noreply.github.com> Co-authored-by: Damian Nolan <damiannolan@gmail.com> * remove port prefix requirement (backport cosmos#2590) (cosmos#2632) * remove port prefix requirement (cosmos#2590) * remove port prefix requirement * chore: remove depcrated test and fix lint * add changelog entry * Update CHANGELOG.md Co-authored-by: Damian Nolan <damiannolan@gmail.com> Co-authored-by: Damian Nolan <damiannolan@gmail.com> (cherry picked from commit 5f9966b) # Conflicts: # modules/apps/27-interchain-accounts/host/keeper/handshake.go * fix conflict Co-authored-by: LaurensKubat <32776056+LaurensKubat@users.noreply.github.com> Co-authored-by: crodriguezvega <carlos@interchain.io> * release/v3.4.x: bump to SDK v0.45.10 (cosmos#2589) * use authtypes.NewModuleAddress * bumps * retract former v3s * fixes * rationale * discard changes to account.go * review comments Co-authored-by: catShaark <gundamaster5@gmail.com> Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> Co-authored-by: khanh-notional <50263489+catShaark@users.noreply.github.com> * fix: skip emission of unpopulated memo field in ics20 (backport cosmos#2651) (cosmos#2653) * fix: skip emission of unpopulated memo field in ics20 (cosmos#2651) ## Description By setting `EmitDefaults` to false, we will not include an empty memo field in the marshaled json bytes closes: cosmos#2645 --- 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/main/docs/docs/building-modules/10-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 393247b) * Update modules/apps/transfer/types/codec_test.go * fix: merge conflict build Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> Co-authored-by: Damian Nolan <damiannolan@gmail.com> * add check send enabled (backport cosmos#2679) (cosmos#2688) * add check send enabled (cosmos#2679) * add check send enabled * changelog (cherry picked from commit b1f494c) # Conflicts: # CHANGELOG.md # modules/apps/transfer/keeper/msg_server.go # modules/apps/transfer/keeper/msg_server_test.go * fix conflicts * fix return value * fix build Co-authored-by: Carlos Rodriguez <carlos@interchain.io> Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * prepare changelog for v3.4.0 release * typo in tag link * Update CHANGELOG.md * Update incorrect PR link in changelog regarding "check x/bank send enabled" fix (backport cosmos#2714) (cosmos#2716) * Update check x/bank sendEnabled link in changelog (cosmos#2714) Co-authored-by: Cian Hatton <cian@interchain.io> (cherry picked from commit 7249d82) # Conflicts: # CHANGELOG.md * fix conflicts Co-authored-by: Calvin Lau <38898718+calvinaco@users.noreply.github.com> Co-authored-by: Colin Axnér <25233464+colin-axner@users.noreply.github.com> * docs: add missing set order functions for ICA (backport cosmos#2740) (cosmos#2754) * add missing set order functions for ica (cosmos#2740) Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> (cherry picked from commit f54143e) # Conflicts: # docs/middleware/ics29-fee/integration.md * Delete integration.md Co-authored-by: Carlos Rodriguez <carlos@interchain.io> * tests compiles * 1. remove allow_update_after_expiry & allow_update_after_misbehaviour as it became deprecated 2. update proposal_handle following v3.4.x upgrade 3. delete fraction as it not used anymore 4. fix test function CreateDMClientHeader 5. add more checks and errors to header Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: Carlos Rodriguez <carlos@interchain.io> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: khanh <50263489+catShaark@users.noreply.github.com> Co-authored-by: Damian Nolan <damiannolan@gmail.com> Co-authored-by: vuong <56973102+nguyenvuong1122000@users.noreply.github.com> Co-authored-by: chatton <cianhatton@gmail.com> Co-authored-by: Cian Hatton <cian@interchain.io> Co-authored-by: Charly <charly@interchain.berlin> Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> Co-authored-by: Sean King <seantking@users.noreply.github.com> Co-authored-by: Dan Lynch <pyramation@gmail.com> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> Co-authored-by: Devashish Dixit <devashish@crypto.com> Co-authored-by: Joe Abbey <joe.abbey@gmail.com> Co-authored-by: Jacob Gadikian <jacobgadikian@gmail.com> Co-authored-by: Raul Bernal <bernal.raul@gmail.com> Co-authored-by: Andrew Gouin <andrew@gouin.io> Co-authored-by: Nicolas Lara <nicolaslara@gmail.com> Co-authored-by: LaurensKubat <32776056+LaurensKubat@users.noreply.github.com> Co-authored-by: catShaark <gundamaster5@gmail.com> Co-authored-by: Calvin Lau <38898718+calvinaco@users.noreply.github.com> Co-authored-by: Michael Tsitrin <michael@dymension.xyz>
…cosmos#1451) (cosmos#1536) * fix to correctly parse denoms with slashes in the base denom (cosmos#1451) * fix to correctly parse denoms with slashes in the base denom * some logic refinement * review comments * add changelog entry an other review comments * review comment * Add slash migration guide (cosmos#1518) * add migration guide * Update docs/migrations/support-slashed-denoms.md Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * clarify upgrade name * remove unnecessary store loader * review comment, update migration code Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * rename migration file Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> Co-authored-by: Aditya <adityasripal@gmail.com> Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> (cherry picked from commit 3a235af) * fix conflict Co-authored-by: Carlos Rodriguez <carlos@interchain.io>
Description
Adds a migration guide for chain developers that are upgrading from a version that does not support slashed denominations to a version that does. Only necessary if the chain has malformed trace information in its state, but recommended to run for all upgrading chains regardless.
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.
docs/
) or specification (x/<module>/spec/
)godoc
comments.Unreleased
section inCHANGELOG.md
Files changed
in the Github PR explorerCodecov Report
in the comment section below once CI passes