package internal import ( "encoding/hex" "strings" "golang.org/x/text/cases" "golang.org/x/text/unicode/norm" ) func StringSplitArg(stringToSplit, separator string) []interface{} { split := strings.Split(stringToSplit, separator) splitInterface := make([]interface{}, len(split)) for i, s := range split { splitInterface[i] = s } return splitInterface } // NormalizeName Normalize names to remove weird characters and account to capitalization func NormalizeName(s string) string { c := cases.Fold() return c.String(norm.NFD.String(s)) } // ReverseBytesInPlace reverse the bytes. thanks, Satoshi 😒 func ReverseBytesInPlace(s []byte) { for i, j := 0, len(s)-1; i < j; i, j = i+1, j-1 { s[i], s[j] = s[j], s[i] } } // TxIdToTxHash convert the txid to a hash for returning from the hub func TxIdToTxHash(txid string) []byte { t, err := hex.DecodeString(txid) if err != nil { return nil } ReverseBytesInPlace(t) return t } // TxHashToTxId convert the txHash from the response format back to an id func TxHashToTxId(txHash []byte) string { t := make([]byte, len(txHash)) copy(t, txHash) ReverseBytesInPlace(t) return hex.EncodeToString(t) }