Documentation ¶
Overview ¶
Package common contains various helper functions, commonly used data types and constants.
Source Files ¶
Each source file provides functions and types as listed below
- big.go : Defines common big integers often used such as Big1
- bytes.go : Provides conversion functions between a byte slice and other types such as string in Hex format and int
- cache.go : Defines Cache interface and constants such as CacheType
- debug.go : Provides a function to let an user know where to report a bug. It is being used by datasync/downloader
- format.go : Provides a function to print a time.Duration in more readable format
- path.go : Provides functions to check a file's existence and to get an absolute path
- size.go : Provides StorageSize type and its stringer functions
- types.go : Provides commonly used Hash and Address types and its methods
- utils.go : Provides LoadJSON function to read a JSON file
- variables.go : Provides configuration values
Index ¶
- Constants
- Variables
- func AbsolutePath(datadir string, filename string) string
- func Bytes2Hex(d []byte) string
- func CopyBytes(b []byte) (copiedBytes []byte)
- func EmptyAddress(a Address) bool
- func EmptyExtHash(eh ExtHash) bool
- func EmptyHash(h Hash) bool
- func FileExist(filePath string) bool
- func FromHex(s string) []byte
- func GetScaleByCacheUsageLevel(cacheUsageLevelFlag string) (int, error)
- func Hex2Bytes(str string) []byte
- func Hex2BytesFixed(str string, flen int) []byte
- func Int64ToByteBigEndian(number uint64) []byte
- func Int64ToByteLittleEndian(num uint64) []byte
- func IsHexAddress(s string) bool
- func IsPrecompiledContractAddress(addr Address) bool
- func LeftPadBytes(slice []byte, l int) []byte
- func LoadJSON(file string, val interface{}) error
- func MakeName(name, version string) string
- func MakeRandomBytes(n int) []byte
- func PrintDepricationWarning(str string)
- func Report(extra ...interface{})
- func ResetExtHashCounterForTest(counter uint64)
- func RightPadBytes(slice []byte, l int) []byte
- func ToHex(b []byte) stringdeprecated
- func TrimLeftZeroes(s []byte) []byte
- func TrimRightZeroes(s []byte) []byte
- type ARCConfig
- type Address
- 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) SetBytes(b []byte)
- func (a *Address) SetBytesFromFront(b []byte)
- func (a Address) String() string
- func (a *Address) UnmarshalJSON(input []byte) error
- func (a *Address) UnmarshalText(input []byte) error
- type Cache
- type CacheConfiger
- type CacheKey
- type CacheKeyUint64
- type CacheType
- type ConnType
- type Entry
- type ExtHash
- func (eh ExtHash) Bytes() []byte
- func (eh ExtHash) Format(s fmt.State, c rune)
- func (eh ExtHash) Hex() string
- func (eh ExtHash) IsLegacy() bool
- func (eh ExtHash) MarshalText() ([]byte, error)
- func (eh ExtHash) Nonce() (nonce ExtHashNonce)
- func (eh *ExtHash) SetBytes(b []byte)
- func (eh ExtHash) String() string
- func (eh ExtHash) TerminalString() string
- func (eh ExtHash) Unextend() (h Hash)
- func (eh *ExtHash) UnmarshalJSON(input []byte) error
- func (eh *ExtHash) UnmarshalText(input []byte) error
- type ExtHashNonce
- type FIFOCacheConfig
- type GovernanceCacheKey
- type Hash
- func (h Hash) Big() *big.Int
- func (h Hash) Bytes() []byte
- func (h Hash) Extend() ExtHash
- func (h Hash) ExtendLegacy() ExtHash
- 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) SetBytes(b []byte)
- 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 LRUConfig
- type LRUShardConfig
- type PrettyAge
- type PrettyDuration
- type StorageSize
- type UnprefixedAddress
- type UnprefixedHash
Constants ¶
const ( HashLength = 32 ExtHashNonceLength = 7 ExtHashLength = HashLength + ExtHashNonceLength AddressLength = 20 SignatureLength = 65 )
Variables ¶
var ( Big1 = big.NewInt(1) Big2 = big.NewInt(2) Big3 = big.NewInt(3) Big0 = big.NewInt(0) Big32 = big.NewInt(32) Big100 = big.NewInt(100) Big256 = big.NewInt(256) Big257 = big.NewInt(257) )
Common big integers often used
var ( CacheScale int = 100 // Cache size = preset size * CacheScale / 100. Only used when IsScaled == true ScaleByCacheUsageLevel int = 100 // Scale according to cache usage level (%). Only used when IsScaled == true TotalPhysicalMemGB int = getPhysicalMemorySize() // Convert Byte to GByte )
var MaxRequestContentLength = 1024 * 512
Functions ¶
func AbsolutePath ¶
AbsolutePath returns datadir + filename, or filename if it is absolute.
func EmptyAddress ¶ added in v1.6.0
func EmptyExtHash ¶ added in v1.11.0
func FromHex ¶
FromHex returns the bytes represented by the hexadecimal string s. s may be prefixed with "0x".
func GetScaleByCacheUsageLevel ¶
GetScaleByCacheUsageLevel returns the scale according to cacheUsageLevel
func Hex2BytesFixed ¶
Hex2BytesFixed returns bytes of a specified fixed length flen.
func Int64ToByteBigEndian ¶ added in v1.5.0
Int64ToByteBigEndian encodes a number as big endian uint64
func Int64ToByteLittleEndian ¶ added in v1.5.0
IntToByteLittleEndian encodes a number as little endian uint64
func IsHexAddress ¶
IsHexAddress verifies whether a string can represent a valid hex-encoded Klaytn address or not.
func IsPrecompiledContractAddress ¶
IsPrecompiledContractAddress returns true if the input address is in the range of precompiled contract addresses.
func LeftPadBytes ¶
LeftPadBytes zero-pads slice to the left up to length l.
func MakeName ¶
MakeName creates a node name that follows the Klaytn convention for such names. It adds the operation system name and Go runtime version the name.
func MakeRandomBytes ¶ added in v1.5.0
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 ResetExtHashCounterForTest ¶ added in v1.11.0
func ResetExtHashCounterForTest(counter uint64)
ResetExtHashCounterForTest sets the extHashCounter for deterministic testing
func RightPadBytes ¶
RightPadBytes zero-pads slice to the right up to length l.
func TrimLeftZeroes ¶ added in v1.8.0
TrimLeftZeroes returns a subslice of s without leading zeroes
func TrimRightZeroes ¶ added in v1.8.0
TrimRightZeroes returns a subslice of s without trailing zeroes
Types ¶
type Address ¶
type Address [AddressLength]byte
Address represents the 20 byte address of a Klaytn account.
func BigToAddress ¶
BigToAddress returns Address with byte values of b. If b is larger than len(h), b will be cropped from the left.
func BytesToAddress ¶
BytesToAddress returns Address with value b. If b is larger than len(h), b will be cropped from the left.
func HexToAddress ¶
HexToAddress returns Address with byte values of s. If s is larger than len(h), s will be cropped from the left.
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 ¶
SetBytes sets the address to the value of b. If b is larger than len(a) it will panic.
func (*Address) SetBytesFromFront ¶
SetBytesFromFront sets the address to the value of b. If len(b) is larger, take AddressLength bytes from front.
func (*Address) UnmarshalJSON ¶
UnmarshalJSON parses a hash in hex syntax.
func (*Address) UnmarshalText ¶
UnmarshalText parses a hash in hex syntax.
type Cache ¶
type Cache interface { Add(key CacheKey, value interface{}) (evicted bool) Get(key CacheKey) (value interface{}, ok bool) Contains(key CacheKey) bool Purge() }
func NewCache ¶
func NewCache(config CacheConfiger) Cache
type CacheConfiger ¶
type CacheConfiger interface {
// contains filtered or unexported methods
}
type CacheKeyUint64 ¶
type CacheKeyUint64 uint64
type CacheType ¶
type CacheType int
var DefaultCacheType CacheType = FIFOCacheType
it's set by flag.
type Entry ¶ added in v1.7.0
type Entry struct {
Key, Val []byte
}
func CreateEntries ¶ added in v1.7.0
CreateEntries creates random key/value pairs.
type ExtHash ¶ added in v1.11.0
type ExtHash [ExtHashLength]byte
ExtHash is an extended hash composed of a 32 byte Hash and a 7 byte Nonce. ExtHash is used as the reference of Merkle Patricia Trie nodes to enable the KIP-111 online state database pruning. The Hash component shall represent the merkle hash of the node and the Nonce component shall differentiate nodes with the same merkle hash.
func BytesToExtHash ¶ added in v1.11.0
BytesToExtHash converts the byte array b to ExtHash. If len(b) is 0 or 32, then b is interpreted as a Hash and extended with LegacyNonce. If len(b) is 39, then b is interpreted as an ExtHash. Otherwise, this function panics.
func HexToExtHash ¶ added in v1.11.0
func (ExtHash) MarshalText ¶ added in v1.11.0
func (ExtHash) Nonce ¶ added in v1.11.0
func (eh ExtHash) Nonce() (nonce ExtHashNonce)
Nonce returns the 7 byte nonce component of an ExtHash
func (*ExtHash) SetBytes ¶ added in v1.11.0
SetBytes sets the ExtHash to the value of b. If b is larger than ExtHashLength, b will be cropped from the left. If b is smaller than ExtHashLength, b will be right aligned.
func (ExtHash) TerminalString ¶ added in v1.11.0
func (ExtHash) Unextend ¶ added in v1.11.0
Unextend returns the 32 byte Hash component of an ExtHash
func (*ExtHash) UnmarshalJSON ¶ added in v1.11.0
func (*ExtHash) UnmarshalText ¶ added in v1.11.0
type ExtHashNonce ¶ added in v1.11.0
type ExtHashNonce [ExtHashNonceLength]byte
func BytesToExtHashNonce ¶ added in v1.11.0
func BytesToExtHashNonce(b []byte) (nonce ExtHashNonce)
func HexToExtHashNonce ¶ added in v1.11.0
func HexToExtHashNonce(s string) ExtHashNonce
func (ExtHashNonce) Bytes ¶ added in v1.11.0
func (n ExtHashNonce) Bytes() []byte
func (ExtHashNonce) Hex ¶ added in v1.11.0
func (n ExtHashNonce) Hex() string
type FIFOCacheConfig ¶
FIFOCacheConfig is a implementation of CacheConfiger interface for fifoCache.
type GovernanceCacheKey ¶
type GovernanceCacheKey string
type Hash ¶
type Hash [HashLength]byte
Hash represents the 32 byte Keccak256 hash of arbitrary data.
func BigToHash ¶
BigToHash sets byte representation of b to hash. If b is larger than len(h), b will be cropped from the left.
func BytesToHash ¶
BytesToHash sets b to hash. If b is larger than len(h), b will be cropped from the left.
func HexToHash ¶
HexToHash sets byte representation of s to hash. If b is larger than len(h), b will be cropped from the left.
func (Hash) Extend ¶ added in v1.11.0
Extend converts Hash to ExtHash by attaching an auto-generated nonce Auto-generated nonces must be different every time
func (Hash) ExtendLegacy ¶ added in v1.11.0
ExtendLegacy converts Hash to ExtHash by attaching the fixed legacy nonce "0x00000000000045" Legacy nonce are attached to hashes of Trie nodes in the legacy trie database
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 ¶
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 ¶
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 LRUShardConfig ¶
type PrettyAge ¶ added in v1.6.0
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.
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
StorageSize is a wrapper around a float value that supports user friendly formatting.
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 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.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package bitutil implements fast bitwise operations and compression/decompressions.
|
Package bitutil implements fast bitwise operations and compression/decompressions. |
Package compiler wraps the Solidity compiler executable (solc).
|
Package compiler wraps the Solidity compiler executable (solc). |
Package fdlimit handles file descriptors based on the operating system.
|
Package fdlimit handles file descriptors based on the operating system. |
Package hexutil implements hex encoding with 0x prefix.
|
Package hexutil implements hex encoding with 0x prefix. |
Package math provides convenience functions to use big.Int and to parse a string into an integer.
|
Package math provides convenience functions to use big.Int and to parse a string into an integer. |
Package mclock is a wrapper for a monotonic clock source.
|
Package mclock is a wrapper for a monotonic clock source. |
Package profile provides a profiler which can store a key and related TimeRecord.
|
Package profile provides a profiler which can store a key and related TimeRecord. |