Documentation ¶
Overview ¶
Package common contains various helper functions.
Index ¶
- Constants
- Variables
- func AbsolutePath(Datadir string, filename string) string
- func Bytes2Hex(d []byte) string
- func Contains(obj interface{}, target interface{}) (bool, error)
- func CopyBytes(b []byte) (copiedBytes []byte)
- func EmptyHash(h Hash) bool
- func FileExist(filePath string) bool
- func Fnv_hash_to_byte(data ...[]byte) []byte
- func FromHex(s string) []byte
- func Hex2Bytes(str string) []byte
- func Hex2BytesFixed(str string, flen int) []byte
- func IsAddrHas0xPre(str string) bool
- func IsHex(str string) bool
- func IsHexAddress(s string) bool
- func LeftPadBytes(slice []byte, l int) []byte
- func LoadJSON(file string, val interface{}) error
- func MakeName(name, version string) string
- func PrintDepricationWarning(str string)
- func Report(extra ...interface{})
- func RexRep0xToShx(str *string) string
- func RexRepShxTo0x(str *string) string
- func RightPadBytes(slice []byte, l int) []byte
- func ToHex(b []byte) string
- type Address
- func (a Address) Big() *big.Int
- func (a Address) Bytes() []byte
- func (a Address) Format(s fmt.State, c rune)
- func (a Address) Hash() Hash
- func (a Address) Hex() string
- func (a Address) MarshalText() ([]byte, error)
- func (a *Address) Set(other Address)
- func (a *Address) SetBytes(b []byte)
- func (a *Address) SetString(s string)
- func (a Address) Str() string
- func (a Address) String() string
- func (a *Address) UnmarshalJSON(input []byte) error
- func (a *Address) UnmarshalText(input []byte) error
- type AddressHash
- func (a AddressHash) Big() *big.Int
- func (a AddressHash) Bytes() []byte
- func (a AddressHash) Format(s fmt.State, c rune)
- func (a AddressHash) Hash() Hash
- func (a AddressHash) Hex() string
- func (a AddressHash) MarshalText() ([]byte, error)
- func (a *AddressHash) Set(other Address)
- func (ah *AddressHash) SetHashBytes(b []byte)
- func (a *AddressHash) SetString(s string)
- func (a AddressHash) Str() string
- func (a AddressHash) String() string
- func (a *AddressHash) UnmarshalJSON(input []byte) error
- func (a *AddressHash) UnmarshalText(input []byte) error
- type Addresses
- type Hash
- func (h Hash) Big() *big.Int
- func (h Hash) Bytes() []byte
- func (h Hash) Format(s fmt.State, c rune)
- func (h Hash) Generate(rand *rand.Rand, size int) reflect.Value
- func (h Hash) Hex() string
- func (h Hash) MarshalText() ([]byte, error)
- func (h *Hash) Set(other Hash)
- func (h *Hash) SetBytes(b []byte)
- func (h *Hash) SetString(s string)
- func (h Hash) Str() string
- func (h Hash) String() string
- func (h Hash) TerminalString() string
- func (h *Hash) UnmarshalJSON(input []byte) error
- func (h *Hash) UnmarshalText(input []byte) error
- type PrettyDuration
- type StorageSize
- type UnprefixedAddress
- type UnprefixedAddressHash
- type UnprefixedHash
Constants ¶
const ( HashLength = 32 AddressLength = 20 AddressHashLength = 4 )
Variables ¶
var ( Big1 = big.NewInt(1) Big2 = big.NewInt(2) Big3 = big.NewInt(3) Big0 = big.NewInt(0) Big32 = big.NewInt(32) Big256 = big.NewInt(0xff) Big257 = big.NewInt(257) )
Common big integers often used
Functions ¶
func AbsolutePath ¶
func Fnv_hash_to_byte ¶
Fowler–Noll–Vo is a non-cryptographic hash function created by Glenn Fowler, Landon Curt Noll, and Kiem-Phong Vo. The basis of the FNV hash algorithm was taken from an idea sent as reviewer comments to the IEEE POSIX P1003.2 committee by Glenn Fowler and Phong Vo in 1991. In a subsequent ballot round, Landon Curt Noll improved on their algorithm. In an email message to Landon, they named it the Fowler/Noll/Vo or FNV hash. https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function
func Hex2BytesFixed ¶
func IsAddrHas0xPre ¶
func IsHexAddress ¶
IsHexAddress verifies whether a string can represent a valid hex-encoded Shx address or not.
func LeftPadBytes ¶
func MakeName ¶
MakeName creates a node name that follows the shx 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 RexRep0xToShx ¶
func RexRepShxTo0x ¶
func RightPadBytes ¶
Types ¶
type Address ¶
type Address [AddressLength]byte
Address represents the 20 byte address of an Shx account.
func BigToAddress ¶
func BytesToAddress ¶
func HexToAddress ¶
func StringToAddress ¶
func (Address) Format ¶
Format implements fmt.Formatter, forcing the byte slice to be formatted as is, without going through the stringer interface used for logging.
func (Address) MarshalText ¶
MarshalText returns the hex representation of a.
func (*Address) SetBytes ¶
Sets the address to the value of b. If b is larger than len(a) it will panic
func (*Address) UnmarshalJSON ¶
UnmarshalJSON parses a hash in hex syntax.
func (*Address) UnmarshalText ¶
UnmarshalText parses a hash in hex syntax.
type AddressHash ¶
type AddressHash [AddressHashLength]byte
func (AddressHash) Big ¶
func (a AddressHash) Big() *big.Int
func (AddressHash) Bytes ¶
func (a AddressHash) Bytes() []byte
func (AddressHash) Format ¶
func (a AddressHash) 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 (AddressHash) Hash ¶
func (a AddressHash) Hash() Hash
func (AddressHash) Hex ¶
func (a AddressHash) Hex() string
Hex returns an EIP55-compliant hex string representation of the address.
func (AddressHash) MarshalText ¶
func (a AddressHash) MarshalText() ([]byte, error)
MarshalText returns the hex representation of a.
func (*AddressHash) SetHashBytes ¶
func (ah *AddressHash) SetHashBytes(b []byte)
Sets the address to the value of b. If b is larger than len(a) it will panic
func (*AddressHash) SetString ¶
func (a *AddressHash) SetString(s string)
Set string `s` to a. If s is larger than len(a) it will panic
func (AddressHash) Str ¶
func (a AddressHash) Str() string
Get the string representation of the underlying address
func (AddressHash) String ¶
func (a AddressHash) String() string
String implements the stringer interface and is used also by the logger.
func (*AddressHash) UnmarshalJSON ¶
func (a *AddressHash) UnmarshalJSON(input []byte) error
UnmarshalJSON parses a hash in hex syntax.
func (*AddressHash) UnmarshalText ¶
func (a *AddressHash) UnmarshalText(input []byte) error
UnmarshalText parses a hash in hex syntax.
type Hash ¶
type Hash [HashLength]byte
Hash represents the 32 byte Keccak256 hash of arbitrary data.
func BytesToHash ¶
func StringToHash ¶
func (Hash) Format ¶
Format implements fmt.Formatter, forcing the byte slice to be formatted as is, without going through the stringer interface used for logging.
func (Hash) MarshalText ¶
MarshalText returns the hex representation of h.
func (*Hash) 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) SetString ¶
Set string `s` to h. If s is larger than len(h) s will be cropped (from left) to fit.
func (Hash) String ¶
String implements the stringer interface and is used also by the logger when doing full logging into a file.
func (Hash) TerminalString ¶
TerminalString implements log.TerminalStringer, formatting a string for console output during logging.
func (*Hash) UnmarshalJSON ¶
UnmarshalJSON parses a hash in hex syntax.
func (*Hash) UnmarshalText ¶
UnmarshalText parses a hash in hex syntax.
type PrettyDuration ¶
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 StorageSize ¶
type StorageSize float64
func (StorageSize) Int64 ¶
func (self StorageSize) Int64() int64
func (StorageSize) String ¶
func (self StorageSize) String() string
type UnprefixedAddress ¶
type UnprefixedAddress Address
UnprefixedHash 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 UnprefixedAddressHash ¶
type UnprefixedAddressHash AddressHash
UnprefixedHash allows marshaling an Address without 0x prefix.
func (UnprefixedAddressHash) MarshalText ¶
func (a UnprefixedAddressHash) MarshalText() ([]byte, error)
MarshalText encodes the address as hex.
func (*UnprefixedAddressHash) UnmarshalText ¶
func (a *UnprefixedAddressHash) 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.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package bitutil implements fast bitwise operations.
|
Package bitutil implements fast bitwise operations. |
Package compiler wraps the Solidity compiler executable (solc).
|
Package compiler wraps the Solidity compiler executable (solc). |
bn256
Package bn256 implements a particular bilinear group at the 128-bit security level.
|
Package bn256 implements a particular bilinear group at the 128-bit security level. |
secp256k1
Package secp256k1 wraps the bitcoin secp256k1 C library.
|
Package secp256k1 wraps the bitcoin secp256k1 C library. |
sha3
Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202.
|
Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202. |
Package hexutil implements hex encoding with 0x prefix.
|
Package hexutil implements hex encoding with 0x prefix. |
Package log15 provides an opinionated, simple toolkit for best-practice logging that is both human and machine readable.
|
Package log15 provides an opinionated, simple toolkit for best-practice logging that is both human and machine readable. |
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 metrics provides general system and process level metrics collection.
|
Package metrics provides general system and process level metrics collection. |
Package rlp implements the RLP serialization format.
|
Package rlp implements the RLP serialization format. |
Package trie implements Merkle Patricia Tries.
|
Package trie implements Merkle Patricia Tries. |