good morning!!!!

Skip to content
Snippets Groups Projects
Select Git revision
  • 6e182b298130efe7c8153f94e7ec7bc217190d58
  • master default protected
  • add-tests
  • extensions
  • gateway
  • codec-bundle
  • renovate/github.com-gfx-labs-sse-digest
  • renovate/golang.org-x-net-0.x
  • renovate/golang-1.x
  • jsonv2
  • garet
  • check
  • http-curse
  • whatthefuck
  • pool
  • envelope
  • mod
  • simplify
  • new-interface
  • v2
  • master-old
  • v0.8.0
  • v0.7.0
  • v0.6.1
  • v0.6.0
  • v0.5.4
  • v0.5.3
  • v0.5.2
  • v0.5.1
  • v0.5.0
  • v0.4.19
  • v0.4.18
  • v0.4.17
  • v0.4.16
  • v0.4.15
  • v0.4.14
  • v0.4.13
  • v0.4.12
  • v0.4.11
  • v0.4.10
  • v0.4.9
41 results

router_tree.go

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    bytes.go 1.93 KiB
    package ethutil
    
    import (
    	"bytes"
    	"encoding/binary"
    	"fmt"
    )
    
    // Number to bytes
    //
    // Returns the number in bytes with the specified base
    func NumberToBytes(num interface{}, bits int) []byte {
    	buf := new(bytes.Buffer)
    	err := binary.Write(buf, binary.BigEndian, num)
    	if err != nil {
    		fmt.Println("NumberToBytes failed:", err)
    	}
    
    	return buf.Bytes()[buf.Len()-(bits/8):]
    }
    
    // Bytes to number
    //
    // Attempts to cast a byte slice to a unsigned integer
    func BytesToNumber(b []byte) uint64 {
    	var number uint64
    
    	// Make sure the buffer is 64bits
    	data := make([]byte, 8)
    	data = append(data[:len(b)], b...)
    
    	buf := bytes.NewReader(data)
    	err := binary.Read(buf, binary.BigEndian, &number)
    	if err != nil {
    		fmt.Println("BytesToNumber failed:", err)
    	}
    
    	return number
    }
    
    // Read variable int
    //
    // Read a variable length number in big endian byte order
    func ReadVarint(reader *bytes.Reader) (ret uint64) {
    	if reader.Len() == 8 {
    		var num uint64
    		binary.Read(reader, binary.BigEndian, &num)
    		ret = uint64(num)
    	} else if reader.Len() == 4 {
    		var num uint32
    		binary.Read(reader, binary.BigEndian, &num)
    		ret = uint64(num)
    	} else if reader.Len() == 2 {
    		var num uint16
    		binary.Read(reader, binary.BigEndian, &num)
    		ret = uint64(num)
    	} else {
    		var num uint8
    		binary.Read(reader, binary.BigEndian, &num)
    		ret = uint64(num)
    	}
    
    	return ret
    }
    
    // Binary length
    //
    // Returns the true binary length of the given number
    func BinaryLength(num int) int {
    	if num == 0 {
    		return 0
    	}
    
    	return 1 + BinaryLength(num>>8)
    }
    
    // Copy bytes
    //
    // Returns an exact copy of the provided bytes
    func CopyBytes(b []byte) (copiedBytes []byte) {
    	copiedBytes = make([]byte, len(b))
    	copy(copiedBytes, b)
    
    	return
    }
    
    func IsHex(str string) bool {
    	l := len(str)
    	return l >= 4 && l%2 == 0 && str[0:2] == "0x"
    }
    
    func StringToByteFunc(str string, cb func(str string) []byte) (ret []byte) {
    	if str[0:2] == "0x" {
    		ret = FromHex(str[2:])
    	} else {
    		ret = cb(str)
    	}
    
    	return
    }