-
Notifications
You must be signed in to change notification settings - Fork 660
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
docs: update v9 migration doc for merkle path v2 #6708
Conversation
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.
Left some notes! Sorry about the messy diff, but the doc needed to cleaned up a little
### ICS27 - Interchain Accounts | ||
|
||
In [#5785](https://github.com/cosmos/ibc-go/pull/5785) the list of arguments of the `NewKeeper` constructor function of the host submodule was extended with an extra argument for the gRPC query router that the submodule uses when executing a [`MsgModuleQuerySafe`](https://github.com/cosmos/ibc-go/blob/eecfa5c09a4c38a5c9f2cc2a322d2286f45911da/proto/ibc/applications/interchain_accounts/host/v1/tx.proto#L41-L51) to perform queries that are module safe: | ||
|
||
```diff | ||
func NewKeeper( | ||
cdc codec.Codec, key storetypes.StoreKey, legacySubspace icatypes.ParamSubspace, | ||
ics4Wrapper porttypes.ICS4Wrapper, channelKeeper icatypes.ChannelKeeper, | ||
portKeeper icatypes.PortKeeper, accountKeeper icatypes.AccountKeeper, | ||
scopedKeeper exported.ScopedKeeper, msgRouter icatypes.MessageRouter, | ||
+ queryRouter icatypes.QueryRouter, | ||
authority string, | ||
) Keeper | ||
``` | ||
|
||
The legacy function `RegisterInterchainAccount` now takes an extra parameter to specify the ordering of new ICA channels: | ||
|
||
```diff | ||
func (k Keeper) RegisterInterchainAccount( | ||
ctx sdk.Context, | ||
connectionID, owner, | ||
version string, | ||
+ ordering channeltypes.Order | ||
) 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.
I moved this section from core to apps. Sorry about the diff!
- The `exported.ChannelI` and `exported.CounterpartyChannelI` interfaces have been removed. Please use the concrete types. | ||
- The `exported.ConnectionI` and `exported.CounterpartyConnectionI` interfaces have been removed. Please use the concrete types. | ||
- The `exported.Proof` interface has been removed. Please use the `MerkleProof` concrete type. | ||
- The functions `GetState()`, `GetOrdering()`, `GetCounterparty()`, `GetConnectionHops()`, `GetVersion()` of the `Channel` type have been removed. | ||
- The functions `GetPortID()`, `GetChannelID()` of the `CounterpartyChannel` type have been removed. | ||
- The functions `GetClientID()`, `GetState()`, `GetCounterparty()`, `GetVersions()`, and `GetDelayPeriod` of the `Connection` type have been removed. | ||
- The functions `GetClientID()`, `GetConnectionID()`, and `GetPrefix()` of the `CounterpartyConnection` type have been removed. | ||
- The utility function `QueryLatestConsensusState` of `04-channel` CLI has been removed. | ||
- `UnmarshalPacketData` now takes in the context, portID, and channelID. This allows the packet data to be unmarshaled based on the channel version. | ||
- `Router` reference has been removed from IBC core keeper: [#6138](https://github.com/cosmos/ibc-go/pull/6138). Please use `PortKeeper.Router` instead. |
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.
Made bullets
|
||
The utility function `QueryLatestConsensusState` of `04-channel` CLI has been removed. | ||
- The `QueryVerifyMembershipRequest` protobuf message has been modified to include `commitment.v2.MerklePath`. The deprecated `commitment.v1.MerklePath` field has been `reserved`. [See 23-commitment](#23-commitment) |
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.
Entry for change to QueryVerifyMembershipRequest
msg
|
||
The testing package functions `coordinator.Setup`, `coordinator.SetupClients`, `coordinator.SetupConnections`, `coordinator.CreateConnections`, and `coordinator.CreateChannels` have been deprecated and will be removed in v10. | ||
Please use the new functions `path.Setup`, `path.SetupClients`, `path.SetupConnections`, `path.CreateConnections`, `path.CreateChannels`. | ||
- The `MerklePath` type has been deprecated and a new `commitment.v2.MerklePath` type has been introduced (ref: [#6644](https://github.com/cosmos/ibc-go/pull/6644)). The new `commitment.v2.MerklePath` contains `repeated bytes` in favour of `repeated string`. This allows users to prove values stored under keys which contain non-utf8 encoded symbols. As a result, changes have been made the 02-client `Query` service and 08-wasm contract api messages for JSON blobs. See [02-client](#02-client) and [08-wasm](#08-wasm), respectively. |
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.
Entry for 23-commitment changes.
@@ -139,5 +144,6 @@ The `IterateConsensusMetadata` function has been removed. | |||
|
|||
### 08-wasm | |||
|
|||
The `ExportMetadataMsg` struct has been removed and is no longer required for contracts to implement. Core IBC will handle exporting all key/value's written to the store by a light client contract. | |||
The `ZeroCustomFields` interface function has been removed from the `ClientState` interface. Core IBC only used this function to set tendermint client states when scheduling an IBC software upgrade. The interface function has been replaced by a type assertion. | |||
- The `VerifyMembershipMsg` and `VerifyNonMembershipMsg` payloads for `SudoMsg` have been extended to include a new field, `MerklePath`. The existing `Path` field will remain the same. The new `MerklePath` field is used if and only if the provided key path contains non-utf8 encoded symbols, and as a result will encode the JSON field `merkle_path` as a base64 encoded bytestring. See [23-commitment](#23-commitment). |
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.
Entry for 08-wasm contract api additions
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.
Looks great, thank you! ❤️
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.
Looks great. Thank you, @damiannolan
# Conflicts: # docs/docs/05-migrations/13-v8-to-v9.md
Description
Migration docs for changes included in #6644
needs: #6644
closes: #6496
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/
).godoc
comments.Files changed
in the GitHub PR explorer.SonarCloud Report
in the comment section below once CI passes.