ibc-go
ibc-go copied to clipboard
[ICS20-2] Final cleanup for multi denom
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
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
Addressing the listed bullets:
- As per @colin-axner's comment, we can leave as "ics20-1", I will add a comment to make this more explicit.
- We will stick with using
MsgTransfer
and add aTokens
array instead of aMsgTransferV2
- Still open for debate, but thinking more about it, just keeping two string constants is fine by me. "ics20-1" and "ics20-2"
- Token trace validation has already been included here.
closed by #6345