Skip to content

Allow slashes in denom for transfer IBC v2 #8595

@AdityaSripal

Description

@AdityaSripal

Currently the denoms that has slashes in their base denominations are disallowed in IBC v2.

Here is context as to why:

https://github.com/cosmos/ibc-go/blob/main/modules/apps/transfer/v2/ibc_module.go#L64

In order to re-enable this, the simplest solution is to move on to ICS20 v2 (this may be v3 to avoid name conflict with ICS20 v2 in retracted version)

Using this struct as the external packet data will work to ensure that the trace and base denom is explicitly split out from each other in the packet data rather than being implicitly separated through a / denominator:

https://github.com/cosmos/ibc-go/blob/main/modules/apps/transfer/types/packet.go#L20

NOTE: This version should only be enabled for IBC V2 protocol since it will be very easy to roll out new application versions on IBC v2.

The Token representation should be changed to have ClientId in the Hop struct rather than the ChannelId so as to make the IBC v2 terminology the primary term of usage moving forward.

We still must have the port identifiers in the trace. Even though IBC v2 enforces transfer as the only port, IBC v1 does not and we want to enable funds to move across chains with IBC v1 and v2 smoothly. Thus, we should still have port identifiers in the trace so that we can preserve the non-transfer port identifiers that were used in the tokens history when sending over IBC v1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions