good morning!!!!

Skip to content
Snippets Groups Projects
Select Git revision
  • 44c365c3e2a3ab0f9f6f9c8ae1fa22e51cd3424f
  • master default protected
  • v0.2.16-candidate
  • shivam/rpcAddBorTx
  • default-cli-config
  • shivam/minerRecommitFix
  • vcastellm/pos-296-bump-go-version-in-bor-and-heimdall
  • shivam/ethstats-backend-fix
  • v0.2.16-beta1-candidate
  • v0.2.15-beta3-candidate
  • shivam/newCli-IPC
  • v0.3.0-dev
  • checkpoint-whitelist-master
  • shivam/codecov
  • jdkanani/fix-typo-log
  • shivam/hardcoded-spans-v0.2.14
  • shivam/hardcoded-spans
  • shivam/fast-state-sync
  • shivam/fast-state-sync-master
  • gethv1.10.15-merge
  • fix-txpool-2
  • v0.2.14-tmp-span-hotfix
  • v0.2.15-beta2
  • v0.2.15-beta1
  • v0.3.0-beta3
  • v0.3.0-beta2
  • v0.3.0-beta1
  • v0.2.14
  • v0.2.13
  • v0.2.13-beta2
  • v0.2.13-beta1
  • v0.2.12
  • v0.2.12-beta3
  • v0.2.12-beta1
  • v0.2.12-beta2
  • v0.2.11
  • v0.2.10
  • v0.2.10-beta2
  • v0.2.9
  • v0.2.9-beta1
  • v0.2.8
41 results

metrics.go

Blame
  • Forked from github / maticnetwork / bor
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    types.go 2.27 KiB
    package common
    
    import "math/big"
    
    const (
    	hashLength    = 32
    	addressLength = 20
    )
    
    type (
    	Hash    [hashLength]byte
    	Address [addressLength]byte
    )
    
    func BytesToHash(b []byte) Hash {
    	var h Hash
    	h.SetBytes(b)
    	return h
    }
    func StringToHash(s string) Hash { return BytesToHash([]byte(s)) }
    func BigToHash(b *big.Int) Hash  { return BytesToHash(b.Bytes()) }
    func HexToHash(s string) Hash    { return BytesToHash(FromHex(s)) }
    
    // Don't use the default 'String' method in case we want to overwrite
    
    // Get the string representation of the underlying hash
    func (h Hash) Str() string   { return string(h[:]) }
    func (h Hash) Bytes() []byte { return h[:] }
    func (h Hash) Big() *big.Int { return Bytes2Big(h[:]) }
    func (h Hash) Hex() string   { return "0x" + Bytes2Hex(h[:]) }
    
    // Sets the hash to the value of b. If b is larger than len(h) it will panic
    func (h *Hash) SetBytes(b []byte) {
    	if len(b) > len(h) {
    		b = b[len(b)-hashLength:]
    	}
    
    	copy(h[hashLength-len(b):], b)
    }
    
    // Set string `s` to h. If s is larger than len(h) it will panic
    func (h *Hash) SetString(s string) { h.SetBytes([]byte(s)) }
    
    // Sets h to other
    func (h *Hash) Set(other Hash) {
    	for i, v := range other {
    		h[i] = v
    	}
    }
    
    /////////// Address
    func BytesToAddress(b []byte) Address {
    	var a Address
    	a.SetBytes(b)
    	return a
    }
    func StringToAddress(s string) Address { return BytesToAddress([]byte(s)) }
    func BigToAddress(b *big.Int) Address  { return BytesToAddress(b.Bytes()) }
    func HexToAddress(s string) Address    { return BytesToAddress(FromHex(s)) }
    
    // Get the string representation of the underlying address
    func (a Address) Str() string   { return string(a[:]) }
    func (a Address) Bytes() []byte { return a[:] }
    func (a Address) Big() *big.Int { return Bytes2Big(a[:]) }
    func (a Address) Hash() Hash    { return BytesToHash(a[:]) }
    func (a Address) Hex() string   { return "0x" + Bytes2Hex(a[:]) }
    
    // Sets the address to the value of b. If b is larger than len(a) it will panic
    func (a *Address) SetBytes(b []byte) {
    	if len(b) > len(a) {
    		b = b[len(b)-addressLength:]
    	}
    	copy(a[addressLength-len(b):], b)
    }
    
    // Set string `s` to a. If s is larger than len(a) it will panic
    func (a *Address) SetString(s string) { a.SetBytes([]byte(s)) }
    
    // Sets a to other
    func (a *Address) Set(other Address) {
    	for i, v := range other {
    		a[i] = v
    	}
    }