github.com/status-im/status-go@v1.1.0/services/wallet/thirdparty/utils/symbols.go (about) 1 package utils 2 3 import "strings" 4 5 var renameMapping = map[string]string{ 6 "STT": "SNT", 7 } 8 9 func RenameSymbols(symbols []string) (renames []string) { 10 for _, symbol := range symbols { 11 renames = append(renames, GetRealSymbol(symbol)) 12 } 13 return 14 } 15 16 func RemoveDuplicates(strings []string) []string { 17 uniqueStrings := make(map[string]bool) 18 var uniqueSlice []string 19 for _, str := range strings { 20 if !uniqueStrings[str] { 21 uniqueStrings[str] = true 22 uniqueSlice = append(uniqueSlice, str) 23 } 24 } 25 return uniqueSlice 26 } 27 28 func GetRealSymbol(symbol string) string { 29 if val, ok := renameMapping[strings.ToUpper(symbol)]; ok { 30 return val 31 } 32 return strings.ToUpper(symbol) 33 } 34 35 func ChunkSymbols(symbols []string, chunkSizeOptional ...int) [][]string { 36 var chunks [][]string 37 chunkSize := 100 38 if len(chunkSizeOptional) > 0 { 39 chunkSize = chunkSizeOptional[0] 40 } 41 42 for i := 0; i < len(symbols); i += chunkSize { 43 end := i + chunkSize 44 45 if end > len(symbols) { 46 end = len(symbols) 47 } 48 49 chunks = append(chunks, symbols[i:end]) 50 } 51 52 return chunks 53 }