Documentation

Overview

    Package common contains various helper functions.

    Index

    Constants

    View Source
    const (
    	// HashLength is the expected length of the hash (in bytes)
    	HashLength = 32
    	// AddressLength is the expected length of the address (in bytes)
    	AddressLength = 20
    	// BlockNumberLength length of uint64 big endian
    	BlockNumberLength = 8
    	// IncarnationLength length of uint64 for contract incarnations
    	IncarnationLength = 8
    )

      Lengths of hashes and addresses in bytes.

      View Source
      const StorageKeyLen = 2*HashLength + IncarnationLength

      Variables

      View Source
      var (
      	Big0   = big.NewInt(0)
      	Big1   = big.NewInt(1)
      	Big2   = big.NewInt(2)
      	Big3   = big.NewInt(3)
      	Big32  = big.NewInt(32)
      	Big256 = big.NewInt(256)
      	Big257 = big.NewInt(257)
      )
      View Source
      var ErrStopped = errors.New("stopped")

      Functions

      func AbsolutePath

      func AbsolutePath(datadir string, filename string) string

        AbsolutePath returns datadir + filename, or filename if it is absolute.

        func Bytes2Hex

        func Bytes2Hex(d []byte) string

          Bytes2Hex returns the hexadecimal encoding of d.

          func CopyBytes

          func CopyBytes(b []byte) (copiedBytes []byte)

            CopyBytes returns an exact copy of the provided bytes.

            func FileExist

            func FileExist(filePath string) bool

              FileExist checks if a file exists at filePath.

              func FromHex

              func FromHex(s string) []byte

                FromHex returns the bytes represented by the hexadecimal string s. s may be prefixed with "0x".

                func Hex2Bytes

                func Hex2Bytes(str string) []byte

                  Hex2Bytes returns the bytes represented by the hexadecimal string str.

                  func Hex2BytesFixed

                  func Hex2BytesFixed(str string, flen int) []byte

                    Hex2BytesFixed returns bytes of a specified fixed length flen.

                    func IsCanceled

                    func IsCanceled(ctx context.Context) bool

                    func IsHexAddress

                    func IsHexAddress(s string) bool

                      IsHexAddress verifies whether a string can represent a valid hex-encoded Ethereum address or not.

                      func KeyCmp

                      func KeyCmp(key1, key2 []byte) (int, bool)

                      func LeftPadBytes

                      func LeftPadBytes(slice []byte, l int) []byte

                        LeftPadBytes zero-pads slice to the left up to length l.

                        func LoadJSON

                        func LoadJSON(file string, val interface{}) error

                          LoadJSON reads the given file and unmarshals its content.

                          func MakeName

                          func MakeName(name, version string) string

                            MakeName creates a node name that follows the ethereum convention for such names. It adds the operation system name and Go runtime version the name.

                            func PrintDepricationWarning

                            func PrintDepricationWarning(str string)

                              PrintDepricationWarning prinst the given string in a box using fmt.Println.

                              func Report

                              func Report(extra ...interface{})

                                Report gives off a warning requesting the user to submit an issue to the github tracker.

                                func ReturnHasherToPool

                                func ReturnHasherToPool(h *Hasher)

                                func RightPadBytes

                                func RightPadBytes(slice []byte, l int) []byte

                                  RightPadBytes zero-pads slice to the right up to length l.

                                  func SafeClose

                                  func SafeClose(ch chan struct{})

                                  func Stopped

                                  func Stopped(ch <-chan struct{}) error

                                  func TrimLeftZeroes

                                  func TrimLeftZeroes(s []byte) []byte

                                    TrimLeftZeroes returns a subslice of s without leading zeroes

                                    func TrimRightZeroes

                                    func TrimRightZeroes(s []byte) []byte

                                      TrimRightZeroes returns a subslice of s without trailing zeroes

                                      Types

                                      type Address

                                      type Address [AddressLength]byte

                                        Address represents the 20 byte address of an Ethereum account.

                                        func BigToAddress

                                        func BigToAddress(b *big.Int) Address

                                          BigToAddress returns Address with byte values of b. If b is larger than len(h), b will be cropped from the left.

                                          func BytesToAddress

                                          func BytesToAddress(b []byte) Address

                                            BytesToAddress returns Address with value b. If b is larger than len(h), b will be cropped from the left.

                                            func HexToAddress

                                            func HexToAddress(s string) Address

                                              HexToAddress returns Address with byte values of s. If s is larger than len(h), s will be cropped from the left.

                                              func (Address) Bytes

                                              func (a Address) Bytes() []byte

                                                Bytes gets the string representation of the underlying address.

                                                func (Address) Format

                                                func (a Address) Format(s fmt.State, c rune)

                                                  Format implements fmt.Formatter, forcing the byte slice to be formatted as is, without going through the stringer interface used for logging.

                                                  func (Address) Hash

                                                  func (a Address) Hash() Hash

                                                    Hash converts an address to a hash by left-padding it with zeros.

                                                    func (Address) Hex

                                                    func (a Address) Hex() string

                                                      Hex returns an EIP55-compliant hex string representation of the address.

                                                      func (Address) ImplementsGraphQLType

                                                      func (a Address) ImplementsGraphQLType(name string) bool

                                                        ImplementsGraphQLType returns true if Hash implements the specified GraphQL type.

                                                        func (Address) MarshalText

                                                        func (a Address) MarshalText() ([]byte, error)

                                                          MarshalText returns the hex representation of a.

                                                          func (*Address) Scan

                                                          func (a *Address) Scan(src interface{}) error

                                                            Scan implements Scanner for database/sql.

                                                            func (*Address) SetBytes

                                                            func (a *Address) SetBytes(b []byte)

                                                              SetBytes sets the address to the value of b. If b is larger than len(a) it will panic.

                                                              func (Address) String

                                                              func (a Address) String() string

                                                                String implements fmt.Stringer.

                                                                func (*Address) UnmarshalGraphQL

                                                                func (a *Address) UnmarshalGraphQL(input interface{}) error

                                                                  UnmarshalGraphQL unmarshals the provided GraphQL query data.

                                                                  func (*Address) UnmarshalJSON

                                                                  func (a *Address) UnmarshalJSON(input []byte) error

                                                                    UnmarshalJSON parses a hash in hex syntax.

                                                                    func (*Address) UnmarshalText

                                                                    func (a *Address) UnmarshalText(input []byte) error

                                                                      UnmarshalText parses a hash in hex syntax.

                                                                      func (Address) Value

                                                                      func (a Address) Value() (driver.Value, error)

                                                                        Value implements valuer for database/sql.

                                                                        type Hash

                                                                        type Hash [HashLength]byte

                                                                          Hash represents the 32 byte Keccak256 hash of arbitrary data.

                                                                          func BigToHash

                                                                          func BigToHash(b *big.Int) Hash

                                                                            BigToHash sets byte representation of b to hash. If b is larger than len(h), b will be cropped from the left.

                                                                            func BytesToHash

                                                                            func BytesToHash(b []byte) Hash

                                                                              BytesToHash sets b to hash. If b is larger than len(h), b will be cropped from the left.

                                                                              func HashData

                                                                              func HashData(data []byte) (Hash, error)

                                                                              func HexToHash

                                                                              func HexToHash(s string) Hash

                                                                                HexToHash sets byte representation of s to hash. If b is larger than len(h), b will be cropped from the left.

                                                                                func (Hash) Big

                                                                                func (h Hash) Big() *big.Int

                                                                                  Big converts a hash to a big integer.

                                                                                  func (Hash) Bytes

                                                                                  func (h Hash) Bytes() []byte

                                                                                    Bytes gets the byte representation of the underlying hash.

                                                                                    func (Hash) Format

                                                                                    func (h Hash) Format(s fmt.State, c rune)

                                                                                      Format implements fmt.Formatter, forcing the byte slice to be formatted as is, without going through the stringer interface used for logging.

                                                                                      func (Hash) Generate

                                                                                      func (h Hash) Generate(rand *rand.Rand, size int) reflect.Value

                                                                                        Generate implements testing/quick.Generator.

                                                                                        func (Hash) Hex

                                                                                        func (h Hash) Hex() string

                                                                                          Hex converts a hash to a hex string.

                                                                                          func (Hash) ImplementsGraphQLType

                                                                                          func (Hash) ImplementsGraphQLType(name string) bool

                                                                                            ImplementsGraphQLType returns true if Hash implements the specified GraphQL type.

                                                                                            func (Hash) MarshalText

                                                                                            func (h Hash) MarshalText() ([]byte, error)

                                                                                              MarshalText returns the hex representation of h.

                                                                                              func (*Hash) Scan

                                                                                              func (h *Hash) Scan(src interface{}) error

                                                                                                Scan implements Scanner for database/sql.

                                                                                                func (*Hash) SetBytes

                                                                                                func (h *Hash) SetBytes(b []byte)

                                                                                                  SetBytes sets the hash to the value of b. If b is larger than len(h), b will be cropped from the left.

                                                                                                  func (Hash) String

                                                                                                  func (h Hash) String() string

                                                                                                    String implements the stringer interface and is used also by the logger when doing full logging into a file.

                                                                                                    func (Hash) TerminalString

                                                                                                    func (h Hash) TerminalString() string

                                                                                                      TerminalString implements log.TerminalStringer, formatting a string for console output during logging.

                                                                                                      func (*Hash) UnmarshalGraphQL

                                                                                                      func (h *Hash) UnmarshalGraphQL(input interface{}) error

                                                                                                        UnmarshalGraphQL unmarshals the provided GraphQL query data.

                                                                                                        func (*Hash) UnmarshalJSON

                                                                                                        func (h *Hash) UnmarshalJSON(input []byte) error

                                                                                                          UnmarshalJSON parses a hash in hex syntax.

                                                                                                          func (*Hash) UnmarshalText

                                                                                                          func (h *Hash) UnmarshalText(input []byte) error

                                                                                                            UnmarshalText parses a hash in hex syntax.

                                                                                                            func (Hash) Value

                                                                                                            func (h Hash) Value() (driver.Value, error)

                                                                                                              Value implements valuer for database/sql.

                                                                                                              type Hasher

                                                                                                              type Hasher struct {
                                                                                                              	Sha keccakState
                                                                                                              }

                                                                                                              func NewHasher

                                                                                                              func NewHasher() *Hasher

                                                                                                              func NewHasher512

                                                                                                              func NewHasher512() *Hasher

                                                                                                              type Hashes

                                                                                                              type Hashes []Hash

                                                                                                                Hashes is a slice of common.Hash, implementing sort.Interface

                                                                                                                func (Hashes) Len

                                                                                                                func (hashes Hashes) Len() int

                                                                                                                func (Hashes) Less

                                                                                                                func (hashes Hashes) Less(i, j int) bool

                                                                                                                func (Hashes) Swap

                                                                                                                func (hashes Hashes) Swap(i, j int)

                                                                                                                type MixedcaseAddress

                                                                                                                type MixedcaseAddress struct {
                                                                                                                	// contains filtered or unexported fields
                                                                                                                }

                                                                                                                  MixedcaseAddress retains the original string, which may or may not be correctly checksummed

                                                                                                                  func NewMixedcaseAddress

                                                                                                                  func NewMixedcaseAddress(addr Address) MixedcaseAddress

                                                                                                                    NewMixedcaseAddress constructor (mainly for testing)

                                                                                                                    func NewMixedcaseAddressFromString

                                                                                                                    func NewMixedcaseAddressFromString(hexaddr string) (*MixedcaseAddress, error)

                                                                                                                      NewMixedcaseAddressFromString is mainly meant for unit-testing

                                                                                                                      func (*MixedcaseAddress) Address

                                                                                                                      func (ma *MixedcaseAddress) Address() Address

                                                                                                                        Address returns the address

                                                                                                                        func (*MixedcaseAddress) MarshalJSON

                                                                                                                        func (ma *MixedcaseAddress) MarshalJSON() ([]byte, error)

                                                                                                                          MarshalJSON marshals the original value

                                                                                                                          func (*MixedcaseAddress) Original

                                                                                                                          func (ma *MixedcaseAddress) Original() string

                                                                                                                            Original returns the mixed-case input string

                                                                                                                            func (*MixedcaseAddress) String

                                                                                                                            func (ma *MixedcaseAddress) String() string

                                                                                                                              String implements fmt.Stringer

                                                                                                                              func (*MixedcaseAddress) UnmarshalJSON

                                                                                                                              func (ma *MixedcaseAddress) UnmarshalJSON(input []byte) error

                                                                                                                                UnmarshalJSON parses MixedcaseAddress

                                                                                                                                func (*MixedcaseAddress) ValidChecksum

                                                                                                                                func (ma *MixedcaseAddress) ValidChecksum() bool

                                                                                                                                  ValidChecksum returns true if the address has valid checksum

                                                                                                                                  type PrettyAge

                                                                                                                                  type PrettyAge time.Time

                                                                                                                                    PrettyAge is a pretty printed version of a time.Duration value that rounds the values up to a single most significant unit, days/weeks/years included.

                                                                                                                                    func (PrettyAge) String

                                                                                                                                    func (t PrettyAge) String() string

                                                                                                                                      String implements the Stringer interface, allowing pretty printing of duration values rounded to the most significant time unit.

                                                                                                                                      type PrettyDuration

                                                                                                                                      type PrettyDuration time.Duration

                                                                                                                                        PrettyDuration is a pretty printed version of a time.Duration value that cuts the unnecessary precision off from the formatted textual representation.

                                                                                                                                        func (PrettyDuration) String

                                                                                                                                        func (d PrettyDuration) String() string

                                                                                                                                          String implements the Stringer interface, allowing pretty printing of duration values rounded to three decimals.

                                                                                                                                          type StorageBucketWriteStats

                                                                                                                                          type StorageBucketWriteStats struct {
                                                                                                                                          	KeyN             StorageCounter // total number of keys
                                                                                                                                          	KeyBytesN        StorageSize    // total number of bytes owned by keys
                                                                                                                                          	ValueBytesN      StorageSize    // total number of bytes owned by values
                                                                                                                                          	TotalPut         StorageCounter
                                                                                                                                          	TotalDelete      StorageCounter
                                                                                                                                          	TotalBytesPut    StorageSize
                                                                                                                                          	TotalBytesDelete StorageSize
                                                                                                                                          }

                                                                                                                                          type StorageCounter

                                                                                                                                          type StorageCounter float64

                                                                                                                                            Counter

                                                                                                                                            func (StorageCounter) MarshalJSON

                                                                                                                                            func (s StorageCounter) MarshalJSON() ([]byte, error)

                                                                                                                                            func (StorageCounter) String

                                                                                                                                            func (s StorageCounter) String() string

                                                                                                                                              String implements the stringer interface.

                                                                                                                                              type StorageKey

                                                                                                                                              type StorageKey [StorageKeyLen]byte

                                                                                                                                                StorageKey is representation of address of a contract storage item It consists of two parts, each of which are 32-byte hashes: 1. Hash of the contract's address 2. Hash of the item's key

                                                                                                                                                type StorageKeys

                                                                                                                                                type StorageKeys []StorageKey

                                                                                                                                                  StorageKeys is a slice of StorageKey, implementing sort.Interface

                                                                                                                                                  func (StorageKeys) Len

                                                                                                                                                  func (keys StorageKeys) Len() int

                                                                                                                                                  func (StorageKeys) Less

                                                                                                                                                  func (keys StorageKeys) Less(i, j int) bool

                                                                                                                                                  func (StorageKeys) Swap

                                                                                                                                                  func (keys StorageKeys) Swap(i, j int)

                                                                                                                                                  type StorageSize

                                                                                                                                                  type StorageSize float64

                                                                                                                                                    StorageSize is a wrapper around a float value that supports user friendly formatting.

                                                                                                                                                    func (StorageSize) MarshalJSON

                                                                                                                                                    func (s StorageSize) MarshalJSON() ([]byte, error)

                                                                                                                                                    func (StorageSize) String

                                                                                                                                                    func (s StorageSize) String() string

                                                                                                                                                      String implements the stringer interface.

                                                                                                                                                      func (StorageSize) TerminalString

                                                                                                                                                      func (s StorageSize) TerminalString() string

                                                                                                                                                        TerminalString implements log.TerminalStringer, formatting a string for console output during logging.

                                                                                                                                                        type Tuples

                                                                                                                                                        type Tuples struct {
                                                                                                                                                        	Values [][]byte
                                                                                                                                                        	SortBy int
                                                                                                                                                        	Length int
                                                                                                                                                        	// contains filtered or unexported fields
                                                                                                                                                        }

                                                                                                                                                          Tuples, eg [(index, bucket, key, value)]

                                                                                                                                                          func NewTuples

                                                                                                                                                          func NewTuples(size, arity, sortBy int) *Tuples

                                                                                                                                                          func (*Tuples) Append

                                                                                                                                                          func (t *Tuples) Append(values ...[]byte) error

                                                                                                                                                          func (Tuples) Len

                                                                                                                                                          func (t Tuples) Len() int

                                                                                                                                                          func (Tuples) Less

                                                                                                                                                          func (t Tuples) Less(i, j int) bool

                                                                                                                                                          func (Tuples) Swap

                                                                                                                                                          func (t Tuples) Swap(i, j int)

                                                                                                                                                          type UnprefixedAddress

                                                                                                                                                          type UnprefixedAddress Address

                                                                                                                                                            UnprefixedAddress allows marshaling an Address without 0x prefix.

                                                                                                                                                            func (UnprefixedAddress) MarshalText

                                                                                                                                                            func (a UnprefixedAddress) MarshalText() ([]byte, error)

                                                                                                                                                              MarshalText encodes the address as hex.

                                                                                                                                                              func (*UnprefixedAddress) UnmarshalText

                                                                                                                                                              func (a *UnprefixedAddress) UnmarshalText(input []byte) error

                                                                                                                                                                UnmarshalText decodes the address from hex. The 0x prefix is optional.

                                                                                                                                                                type UnprefixedHash

                                                                                                                                                                type UnprefixedHash Hash

                                                                                                                                                                  UnprefixedHash allows marshaling a Hash without 0x prefix.

                                                                                                                                                                  func (UnprefixedHash) MarshalText

                                                                                                                                                                  func (h UnprefixedHash) MarshalText() ([]byte, error)

                                                                                                                                                                    MarshalText encodes the hash as hex.

                                                                                                                                                                    func (*UnprefixedHash) UnmarshalText

                                                                                                                                                                    func (h *UnprefixedHash) UnmarshalText(input []byte) error

                                                                                                                                                                      UnmarshalText decodes the hash from hex. The 0x prefix is optional.

                                                                                                                                                                      Directories

                                                                                                                                                                      Path Synopsis
                                                                                                                                                                      Package bitutil implements fast bitwise operations.
                                                                                                                                                                      Package bitutil implements fast bitwise operations.
                                                                                                                                                                      Package compiler wraps the Solidity and Vyper compiler executables (solc; vyper).
                                                                                                                                                                      Package compiler wraps the Solidity and Vyper compiler executables (solc; vyper).
                                                                                                                                                                      Package hexutil implements hex encoding with 0x prefix.
                                                                                                                                                                      Package hexutil implements hex encoding with 0x prefix.
                                                                                                                                                                      Package math provides integer math utilities.
                                                                                                                                                                      Package math provides integer math utilities.
                                                                                                                                                                      Package mclock is a wrapper for a monotonic clock source
                                                                                                                                                                      Package mclock is a wrapper for a monotonic clock source
                                                                                                                                                                      Package prque implements a priority queue data structure supporting arbitrary value types and int64 priorities.
                                                                                                                                                                      Package prque implements a priority queue data structure supporting arbitrary value types and int64 priorities.