diff --git a/modules/apps/transfer/types/denom.go b/modules/apps/transfer/types/denom.go index eb601def846..22aa437eb90 100644 --- a/modules/apps/transfer/types/denom.go +++ b/modules/apps/transfer/types/denom.go @@ -192,19 +192,19 @@ func validateIBCDenom(denom string) error { return err } - denomSplit := strings.SplitN(denom, "/", 2) + prefix, remainder, found := strings.Cut(denom, "/") - switch { - case denom == DenomPrefix: + if denom == DenomPrefix { return errorsmod.Wrapf(ErrInvalidDenomForTransfer, "denomination should be prefixed with the format 'ibc/{hash(trace + \"/\" + %s)}'", denom) + } - case len(denomSplit) == 2 && denomSplit[0] == DenomPrefix: - if strings.TrimSpace(denomSplit[1]) == "" { + if found && prefix == DenomPrefix { + if strings.TrimSpace(remainder) == "" { return errorsmod.Wrapf(ErrInvalidDenomForTransfer, "denomination should be prefixed with the format 'ibc/{hash(trace + \"/\" + %s)}'", denom) } - if _, err := ParseHexHash(denomSplit[1]); err != nil { - return errorsmod.Wrapf(err, "invalid denom trace hash %s", denomSplit[1]) + if _, err := ParseHexHash(remainder); err != nil { + return errorsmod.Wrapf(err, "invalid denom trace hash %s", remainder) } }