diff --git a/common/string.go b/common/string.go index a4d221b74..2818f5ed5 100644 --- a/common/string.go +++ b/common/string.go @@ -1,12 +1,15 @@ package common import ( + "encoding/hex" "fmt" "strings" ) +// Fmt shorthand, XXX DEPRECATED var Fmt = fmt.Sprintf +// RightPadString adds spaces to the right of a string to make it length totalLength func RightPadString(s string, totalLength int) string { remaining := totalLength - len(s) if remaining > 0 { @@ -15,6 +18,7 @@ func RightPadString(s string, totalLength int) string { return s } +// LeftPadString adds spaces to the left of a string to make it length totalLength func LeftPadString(s string, totalLength int) string { remaining := totalLength - len(s) if remaining > 0 { @@ -22,3 +26,23 @@ func LeftPadString(s string, totalLength int) string { } return s } + +// IsHex returns true for non-empty hex-string prefixed with "0x" +func IsHex(s string) bool { + if len(s) > 2 && s[:2] == "0x" { + _, err := hex.DecodeString(s[2:]) + if err != nil { + return false + } + return true + } + return false +} + +// StripHex returns hex string without leading "0x" +func StripHex(s string) string { + if IsHex(s) { + return s[2:] + } + return s +}