common

package
v0.0.0-...-1e2cef0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 10, 2023 License: GPL-2.0, GPL-3.0 Imports: 24 Imported by: 0

Documentation

Overview

Package common contains various helper functions.

Package common Self encapsulated list structure supporting concurrent operation

Package common Self encapsulated log printing

Package common Self encapsulated map structure supporting concurrent operation

Index

Constants

View Source
const (
	// Sep  Separator mark
	Sep = "dcrmparm"

	// Sep2  Separator mark
	Sep2 = "smpcmsg"

	// Sep11  Separator mark
	Sep11 = "smpcsep11"

	// SepSave  Separator mark
	SepSave = "dcrmsepsave"
)
View Source
const (
	// HashLength is the expected length of the hash
	HashLength = 32
	// AddressLength is the expected length of the address
	AddressLength = 20
)

Lengths of hashes and addresses in bytes.

Variables

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

Common big integers often used

View Source
var (
	DebugMode = true
)
View Source
var JSONFormat bool

JSONFormat print log in json format

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 Crit

func Crit(msg string, ctx ...interface{})

Crit alias of `Fatal`

func Critf

func Critf(format string, args ...interface{})

Critf alias of `Fatalf`

func Critln

func Critln(msg string, ctx ...interface{})

Critln alias of `Fatalln`

func CurrentTime

func CurrentTime() string

func Debug

func Debug(msg string, ctx ...interface{})

Debug debug

func DebugCall

func DebugCall(callback func())

func DebugInfo

func DebugInfo(msg string, ctx ...interface{})

func Debugf

func Debugf(format string, args ...interface{})

Debugf debugf

func Debugln

func Debugln(msg string, ctx ...interface{})

Debugln debugln

func DefaultDataDir

func DefaultDataDir() string

DefaultDataDir is the default data directory to use for the databases and other persistence requirements.

func Error

func Error(msg string, ctx ...interface{})

Error error

func Errorf

func Errorf(format string, args ...interface{})

Errorf errorf

func Errorln

func Errorln(msg string, ctx ...interface{})

Errorln errorln

func Fatal

func Fatal(msg string, ctx ...interface{})

Fatal fatal

func Fatalf

func Fatalf(format string, args ...interface{})

Fatalf fatalf

func Fatalln

func Fatalln(msg string, ctx ...interface{})

Fatalln fatalln

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 HomeDir

func HomeDir() string

HomeDir get home dir

func Info

func Info(msg string, ctx ...interface{})

Info info

func Infof

func Infof(format string, args ...interface{})

Infof infof

func Infoln

func Infoln(msg string, ctx ...interface{})

Infoln infoln

func InitDir

func InitDir(dir string)

InitDir init data dir

func IsHexAddress

func IsHexAddress(s string) bool

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

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 Panic

func Panic(msg string, ctx ...interface{})

Panic panic

func Panicf

func Panicf(format string, args ...interface{})

Panicf panicf

func Panicln

func Panicln(msg string, ctx ...interface{})

Panicln panicln

func Print

func Print(msg ...interface{})

Print print

func PrintDepricationWarning

func PrintDepricationWarning(str string)

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

func PrintLogToFile

func PrintLogToFile(path string) error

func Printf

func Printf(format string, args ...interface{})

Printf printf

func Println

func Println(msg ...interface{})

Println println

func Report

func Report(extra ...interface{})

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

func RightPadBytes

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

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

func SetLogFile

func SetLogFile(logFile string, logRotation, logMaxAge uint64)

SetLogFile set log file path and rotation

func SetLogger

func SetLogger(logLevel uint32, jsonFormat, colorFormat bool)

SetLogger set log level and format etc

func ToHex deprecated

func ToHex(b []byte) string

ToHex returns the hex representation of b, prefixed with '0x'. For empty slices, the return value is "0x0".

Deprecated: use hexutil.Encode instead.

func Trace

func Trace(msg string, ctx ...interface{})

Trace trace

func Tracef

func Tracef(format string, args ...interface{})

Tracef tracef

func Traceln

func Traceln(msg string, ctx ...interface{})

Traceln traceln

func Warn

func Warn(msg string, ctx ...interface{})

Warn warn

func Warnf

func Warnf(format string, args ...interface{})

Warnf warnf

func Warnln

func Warnln(msg string, ctx ...interface{})

Warnln warnln

func WithFields

func WithFields(ctx ...interface{}) *logrus.Entry

WithFields encapsulate logrus.WithFields

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) Big

func (a Address) Big() *big.Int

Big converts an address to a big integer.

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) 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) 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 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) 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) 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 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 Queue

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

Queue list + sync mutex

func NewQueue

func NewQueue() *Queue

NewQueue new Queue

func (*Queue) Front

func (q *Queue) Front() *list.Element

Front get front element

func (*Queue) InsertBefore

func (q *Queue) InsertBefore(v interface{}, e *list.Element)

InsertBefore insert value before element e

func (*Queue) Len

func (q *Queue) Len() int

Len get the len of Queue

func (*Queue) PushBack

func (q *Queue) PushBack(v interface{})

PushBack put value to Queue

func (*Queue) Remove

func (q *Queue) Remove(e *list.Element)

Remove remove element

type SafeMap

type SafeMap struct {
	sync.RWMutex
	Map map[string]interface{}
}

SafeMap map + sync mutex

func NewSafeMap

func NewSafeMap(size int) *SafeMap

NewSafeMap new SafeMap

func (*SafeMap) DeleteMap

func (sm *SafeMap) DeleteMap(key string)

DeleteMap delete value by key

func (*SafeMap) ListMap

func (sm *SafeMap) ListMap() ([]string, []interface{})

ListMap get all (key,value)

func (*SafeMap) MapLength

func (sm *SafeMap) MapLength() int

MapLength get len of map

func (*SafeMap) ReadMap

func (sm *SafeMap) ReadMap(key string) (interface{}, bool)

ReadMap get value by key

func (*SafeMap) WriteMap

func (sm *SafeMap) WriteMap(key string, value interface{})

WriteMap write value by 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.

Directories

Path Synopsis
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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL