aboutsummaryrefslogtreecommitdiffstats
path: root/common/bytes.go
diff options
context:
space:
mode:
authorkiel barry <kiel.j.barry@gmail.com>2018-05-29 18:42:21 +0800
committerFelix Lange <fjl@users.noreply.github.com>2018-05-29 18:42:21 +0800
commit84f8c0cc1fbe1ab9c128555392a82ba609820fef (patch)
tree4859fe37105cc88d4d338a9f5bc55e42a017a29f /common/bytes.go
parent998f6564b28ea9241d0052c2abee090d2b9a8b63 (diff)
downloaddexon-84f8c0cc1fbe1ab9c128555392a82ba609820fef.tar.gz
dexon-84f8c0cc1fbe1ab9c128555392a82ba609820fef.tar.zst
dexon-84f8c0cc1fbe1ab9c128555392a82ba609820fef.zip
common: improve documentation comments (#16701)
This commit adds many comments and removes unused code. It also removes the EmptyHash function, which had some uses but was silly.
Diffstat (limited to 'common/bytes.go')
-rw-r--r--common/bytes.go20
1 files changed, 15 insertions, 5 deletions
diff --git a/common/bytes.go b/common/bytes.go
index e2adc8005..cbab2c3fa 100644
--- a/common/bytes.go
+++ b/common/bytes.go
@@ -19,15 +19,20 @@ package common
import "encoding/hex"
+// ToHex returns the hex representation of b, prefixed with '0x'.
+// For empty slices, the return value is "0x0".
+//
+// Deprecated: use hexutil.Encode instead.
func ToHex(b []byte) string {
hex := Bytes2Hex(b)
- // Prefer output of "0x0" instead of "0x"
if len(hex) == 0 {
hex = "0"
}
return "0x" + hex
}
+// FromHex returns the bytes represented by the hexadecimal string s.
+// s may be prefixed with "0x".
func FromHex(s string) []byte {
if len(s) > 1 {
if s[0:2] == "0x" || s[0:2] == "0X" {
@@ -40,9 +45,7 @@ func FromHex(s string) []byte {
return Hex2Bytes(s)
}
-// Copy bytes
-//
-// Returns an exact copy of the provided bytes
+// CopyBytes returns an exact copy of the provided bytes.
func CopyBytes(b []byte) (copiedBytes []byte) {
if b == nil {
return nil
@@ -53,14 +56,17 @@ func CopyBytes(b []byte) (copiedBytes []byte) {
return
}
+// hasHexPrefix validates str begins with '0x' or '0X'.
func hasHexPrefix(str string) bool {
return len(str) >= 2 && str[0] == '0' && (str[1] == 'x' || str[1] == 'X')
}
+// isHexCharacter returns bool of c being a valid hexadecimal.
func isHexCharacter(c byte) bool {
return ('0' <= c && c <= '9') || ('a' <= c && c <= 'f') || ('A' <= c && c <= 'F')
}
+// isHex validates whether each byte is valid hexadecimal string.
func isHex(str string) bool {
if len(str)%2 != 0 {
return false
@@ -73,16 +79,18 @@ func isHex(str string) bool {
return true
}
+// Bytes2Hex returns the hexadecimal encoding of d.
func Bytes2Hex(d []byte) string {
return hex.EncodeToString(d)
}
+// Hex2Bytes returns the bytes represented by the hexadecimal string str.
func Hex2Bytes(str string) []byte {
h, _ := hex.DecodeString(str)
-
return h
}
+// Hex2BytesFixed returns bytes of a specified fixed length flen.
func Hex2BytesFixed(str string, flen int) []byte {
h, _ := hex.DecodeString(str)
if len(h) == flen {
@@ -96,6 +104,7 @@ func Hex2BytesFixed(str string, flen int) []byte {
return hh
}
+// RightPadBytes zero-pads slice to the right up to length l.
func RightPadBytes(slice []byte, l int) []byte {
if l <= len(slice) {
return slice
@@ -107,6 +116,7 @@ func RightPadBytes(slice []byte, l int) []byte {
return padded
}
+// LeftPadBytes zero-pads slice to the left up to length l.
func LeftPadBytes(slice []byte, l int) []byte {
if l <= len(slice) {
return slice