common

package
v1.5.0 Latest Latest
Warning

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

Go to latest
Published: May 24, 2023 License: Apache-2.0 Imports: 21 Imported by: 4

Documentation

Overview

Package common contains various helper functions.

Index

Constants

View Source
const (
	DefaultConfRelPath  = "./hpc.toml"
	DefaultConfRootPath = "../conf"
)
View Source
const (
	Title         = "title"
	NamespaceConf = "namespace"
	ReConnectTime = "reConnectTime"
)
View Source
const (
	JSONRPCNodes    = "jsonRPC.nodes"
	JSONRPCPorts    = "jsonRPC.ports"
	JSONRPCPriority = "jsonRPC.priority"
)
View Source
const (
	PollingResendTime            = "polling.resendTime"
	PollingFirstPollingInterval  = "polling.firstPollingInterval"
	PollingFirstPollingTimes     = "polling.firstPollingTimes"
	PollingSecondPollingInterval = "polling.secondPollingInterval"
	PollingSecondPollingTimes    = "polling.secondPollingTimes"
)
View Source
const (
	PrivacySendTcert       = "privacy.sendTcert"
	PrivacySDKcertPath     = "privacy.sdkcertPath"
	PrivacySDKcertPrivPath = "privacy.sdkcertPrivPath"
	PrivacyUniquePubPath   = "privacy.uniquePubPath"
	PrivacyUniquePrivPath  = "privacy.uniquePrivPath"
	PrivacyCfca            = "privacy.cfca"
)
View Source
const (
	SecurityHttps       = "security.https"
	SecurityTlsca       = "security.tlsca"
	SecurityTlspeerCert = "security.tlspeerCert"
	SecurityTlspeerPriv = "security.tlspeerPriv"
	SecurityTlsDomain   = "security.tlsDomain"
)
View Source
const (
	LogOutputLevel = "log.log_level"
	LogDir         = "log.log_dir"
)
View Source
const (
	MaxIdleConns        = "transport.maxIdleConns"
	MaxIdleConnsPerHost = "transport.maxIdleConnsPerHost"
	DailTimeout         = "transport.dailTimeout"
	MaxLifetime         = "transport.maxLifetime"
	MaxStreamLifetime   = "transport.maxStreamLifeTime"
	MaxSendMsgSize      = "transport.maxSendMsgSize"
	MaxRecvMsgSize      = "transport.maxRecvMsgSize"
)
View Source
const (
	InspectorEnable      = "inspector.enable"
	InspectorAccountPath = "inspector.defaultAccount"
	InspectorAccountType = "inspector.accountType"
)
View Source
const (
	CurveNameBN254 = "bn254"
	CurveNameSM9   = "sm9"
)
View Source
const (
	HashLength    = 32
	AddressLength = 20
)

Lengths of hashes and addresses in bytes.

View Source
const (
	GrpcPorts = "grpc.ports"
)
View Source
const (
	TxVersion = "tx.version"
)
View Source
const (
	WebSocketPorts = "webSocket.ports"
)

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)
	BigTrue  = Big1
	BigFalse = Big0
	Big36    = big.NewInt(36)
	Big97    = big.NewInt(97)
	Big98    = big.NewInt(98)
	MaxBig   = String2Big("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")
)

Common big integers often used

Functions

func AbsolutePath

func AbsolutePath(datadir string, filename string) string

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

func BigD

func BigD(data []byte) *big.Int

func BigToBytes

func BigToBytes(num *big.Int, base int) []byte

BigToBytes returns the bytes of a big integer with the size specified by **base**. Attempts to pad the byte array with zeros.

func Bytes2Big

func Bytes2Big(data []byte) *big.Int

func Bytes2Hex

func Bytes2Hex(d []byte) string

Bytes2Hex returns the hexadecimal encoding of d.

func BytesToBig

func BytesToBig(data []byte) *big.Int

func BytesToInt32

func BytesToInt32(bytes []byte) int

BytesToInt32 converts bytes of hex string to int32

func ConvertStringSliceToBoolSlice

func ConvertStringSliceToBoolSlice(input []string) []bool

func ConvertStringSliceToIntSlice

func ConvertStringSliceToIntSlice(input []string) []int

func CopyBytes

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

CopyBytes returns an exact copy of the provided bytes.

func DecodeInt32 added in v1.4.0

func DecodeInt32(r *SliceBytes) (ret int32, num int, err error)

func DecodeInt32ByByte added in v1.4.0

func DecodeInt32ByByte(r []byte) (ret int32, num int, err error)

func DecodeInt33AsInt64 added in v1.4.0

func DecodeInt33AsInt64(r *SliceBytes) (ret int64, num int, err error)

func DecodeInt33AsInt64ByByte added in v1.4.0

func DecodeInt33AsInt64ByByte(r []byte) (ret int64, num int, err error)

func DecodeInt64 added in v1.4.0

func DecodeInt64(r *SliceBytes) (ret int64, num int, err error)

func DecodeInt64ByByte added in v1.4.0

func DecodeInt64ByByte(r []byte) (ret int64, num int, err error)

func DecodeUint32 added in v1.4.0

func DecodeUint32(r *SliceBytes) (ret uint32, num int, err error)

DecodeUint32 decode the bytes to the uint32

func DecodeUint32ByByte added in v1.4.0

func DecodeUint32ByByte(r []byte) (ret uint32, num int, err error)

DecodeUint32 decode the bytes to the uint32

func DecodeUint64 added in v1.4.0

func DecodeUint64(r *SliceBytes) (ret uint64, num uint64, err error)

func DecodeUint64ByByte added in v1.4.0

func DecodeUint64ByByte(r []byte) (ret uint64, num uint64, err error)

func DelHex

func DelHex(str string) string

func EncodeInt32 added in v1.4.0

func EncodeInt32(num int32) []byte

func EncodeInt64 added in v1.4.0

func EncodeInt64(num int64) (b []byte)

func EncodeUint32 added in v1.4.0

func EncodeUint32(num uint32) []byte

func EncodeUint64 added in v1.4.0

func EncodeUint64(num uint64) []byte

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 GetGoPath

func GetGoPath() string

GetGoPath gets the GOPATH in this environment

func GetLogger

func GetLogger(module string) *logging.Logger

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 HexToString

func HexToString(s string) string

func InitLog

func InitLog(vip *viper.Viper)

func IntToBytes2

func IntToBytes2(i int) [2]byte

IntToBytes2 convert int to [2]byte NOTE: i should less than 2^15

func IntToBytes4

func IntToBytes4(i int) [4]byte

IntToBytes4 convert int to [4]byte NOTE: i should less than 2^31

func IsHex

func IsHex(str string) bool

func IsHexAddress

func IsHexAddress(s string) bool

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

func LeftPad

func LeftPad(str string, l int, char string) string

Padding char char at the begin of the string

func LeftPadBytes

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

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

func LeftPadString

func LeftPadString(str string, l int) string

Padding 0 char at the begin of the string

func LeftPadStringWithChar

func LeftPadStringWithChar(str string, l int, c string) string

Padding 0 char at the begin of the string

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 ParseData

func ParseData(data ...interface{}) (ret []byte)

func RandInt

func RandInt(num int) int

func RandomAddress

func RandomAddress() string

func RandomChoice

func RandomChoice(ratio float64) int

Return a random choice with specific ratio, true of false

func RandomInt64

func RandomInt64(lowerLimit, upperLimit int) int64

Return a random int in the specific range

func RandomNonce

func RandomNonce() int64

func RandomString

func RandomString(length int) string
Random utils

Generate random string with specific length

func ReadFileAsString

func ReadFileAsString(path string) (string, error)

func RemoveSubString

func RemoveSubString(str string, begin, end int) (error, string)

func Reset

func Reset()

func RightPadBytes

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

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

func RightPadString

func RightPadString(str string, l int) string

Padding 0 char at the end of the string

func RightPadStringWithChar

func RightPadStringWithChar(str string, l int, c string) string

Padding 0 char at the end of the string

func SetBackend

func SetBackend()

func SetCustomBackend

func SetCustomBackend(customBackend logging.LeveledBackend)

func SplitStringByInterval

func SplitStringByInterval(str string, interval int) []string

func String2Big

func String2Big(num string) *big.Int

func StringToHex

func StringToHex(s string) string

func Strip

func Strip(in []byte, cutset string) []byte

Strip returns a slice of the byte s with all leading and trailing Unicode code points contained in cutset removed.

func ToHex

func ToHex(b []byte) string

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

TODO Deprecated: use hexutil.Encode instead.

func U256

func U256(x *big.Int) *big.Int

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

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

Serialize given address to JSON

func (Address) MarshalText

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

MarshalText returns the hex representation of a.

func (*Address) Set

func (a *Address) Set(other Address)

Sets a to other

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

func (a *Address) SetString(s string)

Set string `s` to a. If s 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(data []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.

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

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

Serialize given hash to JSON

func (Hash) MarshalText

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

MarshalText returns the hex representation of h.

func (*Hash) Set

func (h *Hash) Set(other Hash)

Sets h to other

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

func (h *Hash) SetString(s string)

Set string `s` to h. If s is larger than len(h) it will panic

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.

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 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 SliceBytes added in v1.4.0

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

func NewSliceBytes added in v1.4.0

func NewSliceBytes(bt []byte) *SliceBytes

func (*SliceBytes) Len added in v1.4.0

func (bt *SliceBytes) Len() int

Len is unread len

func (*SliceBytes) MarkTeeRead added in v1.4.0

func (bt *SliceBytes) MarkTeeRead()

func (*SliceBytes) ReadByte added in v1.4.0

func (bt *SliceBytes) ReadByte() (byte, error)

func (*SliceBytes) ReadByteAsInt32 added in v1.4.0

func (bt *SliceBytes) ReadByteAsInt32() (int32, error)

func (*SliceBytes) ReadByteAsInt64 added in v1.4.0

func (bt *SliceBytes) ReadByteAsInt64() (int64, error)

func (*SliceBytes) ReadByteN added in v1.4.0

func (bt *SliceBytes) ReadByteN(n int) ([]byte, error)

ReadByteN read pc+1 ~ pc+n

func (*SliceBytes) TeeRead added in v1.4.0

func (bt *SliceBytes) TeeRead() []byte

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 bitutil implements fast bitwise operations.
Package bitutil implements fast bitwise operations.
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.

Jump to

Keyboard shortcuts

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