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) Counter() (counter ExtHashCounter)
- func (eh ExtHash) Format(s fmt.State, c rune)
- func (eh ExtHash) Hex() string
- func (eh ExtHash) IsZeroExtended() bool
- func (eh ExtHash) MarshalText() ([]byte, error)
- 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 ExtHashCounter
- 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) ExtendZero() 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 RefCountingMap
- type StorageSize
- type UnprefixedAddress
- type UnprefixedHash
Constants ¶
const ( HashLength = 32 ExtHashCounterLength = 7 ExtHashLength = HashLength + ExtHashCounterLength 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 ¶
func EmptyExtHash ¶
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 ¶
Int64ToByteBigEndian encodes a number as big endian uint64
func Int64ToByteLittleEndian ¶
IntToByteLittleEndian encodes a number as little endian uint64
func IsHexAddress ¶
IsHexAddress verifies whether a string can represent a valid hex-encoded Kaia 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 Kaia convention for such names. It adds the operation system name and Go runtime version the name.
func MakeRandomBytes ¶
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 ¶
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 ¶
TrimLeftZeroes returns a subslice of s without leading zeroes
func TrimRightZeroes ¶
TrimRightZeroes returns a subslice of s without trailing zeroes
Types ¶
type Address ¶
type Address [AddressLength]byte
Address represents the 20 byte address of a Kaia 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 ¶
type Entry struct {
Key, Val []byte
}
func CreateEntries ¶
CreateEntries creates random key/value pairs.
type ExtHash ¶
type ExtHash [ExtHashLength]byte
ExtHash is an extended hash composed of a 32 byte Hash and a 7 byte Counter. ExtHash is used as the reference of Merkle Patricia Trie nodes to enable the KIP-111 live state database pruning. The Hash component shall represent the merkle hash of the node and the Counter component shall differentiate nodes with the same merkle hash.
func BytesToExtHash ¶
BytesToExtHash converts the byte array b to ExtHash. If len(b) is 0 or 32, then b is interpreted as a Hash and zero-extended. If len(b) is 39, then b is interpreted as an ExtHash. Otherwise, this function panics.
func HexToExtHash ¶
func (ExtHash) Counter ¶
func (eh ExtHash) Counter() (counter ExtHashCounter)
Counter returns the 7 byte counter component of an ExtHash
func (ExtHash) IsZeroExtended ¶
IsZeroExtended returns true if the counter component of an ExtHash is zero. A zero counter signifies that the ExtHash is actually a Hash.
func (ExtHash) MarshalText ¶
func (*ExtHash) SetBytes ¶
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 ¶
func (*ExtHash) UnmarshalJSON ¶
func (*ExtHash) UnmarshalText ¶
type ExtHashCounter ¶
type ExtHashCounter [ExtHashCounterLength]byte
func BytesToExtHashCounter ¶
func BytesToExtHashCounter(b []byte) (counter ExtHashCounter)
func HexToExtHashCounter ¶
func HexToExtHashCounter(s string) ExtHashCounter
func (ExtHashCounter) Bytes ¶
func (n ExtHashCounter) Bytes() []byte
func (ExtHashCounter) Hex ¶
func (n ExtHashCounter) 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 ¶
Extend converts Hash to ExtHash by attaching an auto-generated counter Auto-generated counters must be different every time
func (Hash) ExtendZero ¶
ExtendZero converts Hash to ExtHash by attaching the zero counter. A zero counter is attached to a 32-byte Hash of Trie nodes, later to be unextended back to a Hash.
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 ¶
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 RefCountingMap ¶
type RefCountingMap struct {
// contains filtered or unexported fields
}
RefCntMap is a map with reference counting.
func NewRefCountingMap ¶
func NewRefCountingMap() *RefCountingMap
func (*RefCountingMap) Add ¶
func (r *RefCountingMap) Add(key interface{}, value interface{})
Add adds an element to the map and increments its reference count.
func (*RefCountingMap) Get ¶
func (r *RefCountingMap) Get(key interface{}) (interface{}, bool)
Get returns the value associated with the given key.
func (*RefCountingMap) Len ¶
func (r *RefCountingMap) Len() int
Len returns the number of elements in the map.
func (*RefCountingMap) Remove ¶
func (r *RefCountingMap) Remove(key interface{})
Remove decrements the reference count of the element with the given key.
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 lru implements generically-typed LRU caches.
|
Package lru implements generically-typed LRU caches. |
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. |