github.com/Bytom/bytom@v1.1.2-0.20210127130405-ae40204c0b09/common/bytes.go (about)

     1  // Package common contains various helper functions.
     2  package common
     3  
     4  import (
     5  	"encoding/binary"
     6  	"encoding/hex"
     7  )
     8  
     9  func FromHex(s string) []byte {
    10  	if len(s) > 1 {
    11  		if s[0:2] == "0x" {
    12  			s = s[2:]
    13  		}
    14  		if len(s)%2 == 1 {
    15  			s = "0" + s
    16  		}
    17  		return Hex2Bytes(s)
    18  	}
    19  	return nil
    20  }
    21  
    22  func Bytes2Hex(d []byte) string {
    23  	return hex.EncodeToString(d)
    24  }
    25  
    26  func Hex2Bytes(str string) []byte {
    27  	h, _ := hex.DecodeString(str)
    28  	return h
    29  }
    30  
    31  func Unit64ToBytes(n uint64) []byte {
    32  	buf := make([]byte, 8)
    33  	binary.LittleEndian.PutUint64(buf, n)
    34  	return buf
    35  }
    36  
    37  func BytesToUnit64(b []byte) uint64 {
    38  	return binary.LittleEndian.Uint64(b)
    39  }