ibc-go icon indicating copy to clipboard operation
ibc-go copied to clipboard

[ICS20-2] Final cleanup for multi denom

Open chatton opened this issue 10 months ago • 1 comments

This issue contains misc. points that have come up and need to be addressed before this feature can be shipped.

  • [ ] GetEscrowAddress uses a hardcoded string with value ics20-1. Reason if this could be changed without breaking backwards compatibility. (See which test(s) failed when changing this constant)
  • [ ] Need to make decision about: adding a new MsgTransferV2 with tokens (and no token field) or use existing MsgTransfer , add the tokens field and deprecate (and later remove) field token.
  • [ ] Maybe for the ICS20V1 and ICS20V2 const strings we could have an enum ICS20Versions with two values V1 and V2.
  • [ ] Add validation for the Token trace in packet v2 ValidateBasic

chatton avatar Apr 08 '24 10:04 chatton

GetEscrowAddress uses a hardcoded string with value ics20-1. Reason if this could be changed without breaking backwards compatibility. (See which test(s) failed when changing this constant)

Beyond backwards compatibility concerns, there was also a lot of address collision concerns pre-launch. The existing constant was verified not to have address collisions, so I'd suggest we leave as is. I'm unsure how outdated that discussion is, but best to not fix something that isn't broken

colin-axner avatar Apr 24 '24 14:04 colin-axner

Addressing the listed bullets:

  1. As per @colin-axner's comment, we can leave as "ics20-1", I will add a comment to make this more explicit.
  2. We will stick with using MsgTransfer and add a Tokens array instead of a MsgTransferV2
  3. Still open for debate, but thinking more about it, just keeping two string constants is fine by me. "ics20-1" and "ics20-2"
  4. Token trace validation has already been included here.

chatton avatar May 21 '24 11:05 chatton

closed by #6345

chatton avatar May 21 '24 14:05 chatton