Documentation ¶
Overview ¶
Package common contains various helper functions.
Index ¶
- Constants
- Variables
- func AbsolutePath(datadir string, filename string) string
- func BigD(data []byte) *big.Int
- func BigToBytes(num *big.Int, base int) []byte
- func Bytes2Big(data []byte) *big.Int
- func Bytes2Hex(d []byte) string
- func BytesToBig(data []byte) *big.Int
- func BytesToInt32(bytes []byte) int
- func ConvertStringSliceToBoolSlice(input []string) []bool
- func ConvertStringSliceToIntSlice(input []string) []int
- func CopyBytes(b []byte) (copiedBytes []byte)
- func DecodeInt32(r *SliceBytes) (ret int32, num int, err error)
- func DecodeInt32ByByte(r []byte) (ret int32, num int, err error)
- func DecodeInt33AsInt64(r *SliceBytes) (ret int64, num int, err error)
- func DecodeInt33AsInt64ByByte(r []byte) (ret int64, num int, err error)
- func DecodeInt64(r *SliceBytes) (ret int64, num int, err error)
- func DecodeInt64ByByte(r []byte) (ret int64, num int, err error)
- func DecodeUint32(r *SliceBytes) (ret uint32, num int, err error)
- func DecodeUint32ByByte(r []byte) (ret uint32, num int, err error)
- func DecodeUint64(r *SliceBytes) (ret uint64, num uint64, err error)
- func DecodeUint64ByByte(r []byte) (ret uint64, num uint64, err error)
- func DelHex(str string) string
- func EncodeInt32(num int32) []byte
- func EncodeInt64(num int64) (b []byte)
- func EncodeUint32(num uint32) []byte
- func EncodeUint64(num uint64) []byte
- func FileExist(filePath string) bool
- func FromHex(s string) []byte
- func GetGoPath() string
- func GetLogger(module string) *logging.Logger
- func Hex2Bytes(str string) []byte
- func Hex2BytesFixed(str string, flen int) []byte
- func HexToString(s string) string
- func InitLog(vip *viper.Viper)
- func IntToBytes2(i int) [2]byte
- func IntToBytes4(i int) [4]byte
- func IsHex(str string) bool
- func IsHexAddress(s string) bool
- func LeftPad(str string, l int, char string) string
- func LeftPadBytes(slice []byte, l int) []byte
- func LeftPadString(str string, l int) string
- func LeftPadStringWithChar(str string, l int, c string) string
- func LoadJSON(file string, val interface{}) error
- func MakeName(name, version string) string
- func ParseData(data ...interface{}) (ret []byte)
- func RandInt(num int) int
- func RandomAddress() string
- func RandomChoice(ratio float64) int
- func RandomInt64(lowerLimit, upperLimit int) int64
- func RandomNonce() int64
- func RandomString(length int) string
- func ReadFileAsString(path string) (string, error)
- func RemoveSubString(str string, begin, end int) (error, string)
- func Reset()
- func RightPadBytes(slice []byte, l int) []byte
- func RightPadString(str string, l int) string
- func RightPadStringWithChar(str string, l int, c string) string
- func SetBackend()
- func SetCustomBackend(customBackend logging.LeveledBackend)
- func SplitStringByInterval(str string, interval int) []string
- func String2Big(num string) *big.Int
- func StringToHex(s string) string
- func Strip(in []byte, cutset string) []byte
- func ToHex(b []byte) string
- func U256(x *big.Int) *big.Int
- 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) MarshalJSON() ([]byte, error)
- 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) String() string
- func (a *Address) UnmarshalJSON(data []byte) error
- func (a *Address) UnmarshalText(input []byte) error
- 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) MarshalJSON() ([]byte, error)
- 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) String() string
- func (h Hash) TerminalString() string
- func (h *Hash) UnmarshalJSON(input []byte) error
- func (h *Hash) UnmarshalText(input []byte) error
- type MixedcaseAddress
- func (ma *MixedcaseAddress) Address() Address
- func (ma *MixedcaseAddress) MarshalJSON() ([]byte, error)
- func (ma *MixedcaseAddress) Original() string
- func (ma *MixedcaseAddress) String() string
- func (ma *MixedcaseAddress) UnmarshalJSON(input []byte) error
- func (ma *MixedcaseAddress) ValidChecksum() bool
- type PrettyDuration
- type SliceBytes
- func (bt *SliceBytes) Len() int
- func (bt *SliceBytes) MarkTeeRead()
- func (bt *SliceBytes) ReadByte() (byte, error)
- func (bt *SliceBytes) ReadByteAsInt32() (int32, error)
- func (bt *SliceBytes) ReadByteAsInt64() (int64, error)
- func (bt *SliceBytes) ReadByteN(n int) ([]byte, error)
- func (bt *SliceBytes) TeeRead() []byte
- type StorageSize
- type UnprefixedAddress
- type UnprefixedHash
Constants ¶
const ( DefaultConfRelPath = "./hpc.toml" DefaultConfRootPath = "../conf" )
const ( Title = "title" NamespaceConf = "namespace" ReConnectTime = "reConnectTime" )
const ( JSONRPCNodes = "jsonRPC.nodes" JSONRPCPorts = "jsonRPC.ports" JSONRPCPriority = "jsonRPC.priority" )
const ( PollingResendTime = "polling.resendTime" PollingFirstPollingInterval = "polling.firstPollingInterval" PollingFirstPollingTimes = "polling.firstPollingTimes" PollingSecondPollingInterval = "polling.secondPollingInterval" PollingSecondPollingTimes = "polling.secondPollingTimes" )
const ( PrivacySendTcert = "privacy.sendTcert" PrivacySDKcertPath = "privacy.sdkcertPath" PrivacySDKcertPrivPath = "privacy.sdkcertPrivPath" PrivacyUniquePubPath = "privacy.uniquePubPath" PrivacyUniquePrivPath = "privacy.uniquePrivPath" PrivacyCfca = "privacy.cfca" )
const ( SecurityHttps = "security.https" SecurityTlsca = "security.tlsca" SecurityTlspeerCert = "security.tlspeerCert" SecurityTlspeerPriv = "security.tlspeerPriv" SecurityTlsDomain = "security.tlsDomain" )
const ( LogOutputLevel = "log.log_level" LogDir = "log.log_dir" )
const ( MaxIdleConns = "transport.maxIdleConns" MaxIdleConnsPerHost = "transport.maxIdleConnsPerHost" DailTimeout = "transport.dailTimeout" MaxLifetime = "transport.maxLifetime" MaxStreamLifetime = "transport.maxStreamLifeTime" MaxSendMsgSize = "transport.maxSendMsgSize" MaxRecvMsgSize = "transport.maxRecvMsgSize" )
const ( InspectorEnable = "inspector.enable" InspectorAccountPath = "inspector.defaultAccount" InspectorAccountType = "inspector.accountType" )
const ( CurveNameBN254 = "bn254" CurveNameSM9 = "sm9" )
const ( HashLength = 32 AddressLength = 20 )
Lengths of hashes and addresses in bytes.
const (
GrpcPorts = "grpc.ports"
)
const (
TxVersion = "tx.version"
)
const (
WebSocketPorts = "webSocket.ports"
)
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(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 ¶
AbsolutePath returns datadir + filename, or filename if it is absolute.
func BigToBytes ¶
BigToBytes returns the bytes of a big integer with the size specified by **base**. Attempts to pad the byte array with zeros.
func BytesToBig ¶
func BytesToInt32 ¶
BytesToInt32 converts bytes of hex string to int32
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 DecodeInt33AsInt64 ¶ added in v1.4.0
func DecodeInt33AsInt64(r *SliceBytes) (ret int64, num int, err error)
func DecodeInt33AsInt64ByByte ¶ added in v1.4.0
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 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
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 EncodeInt32 ¶ added in v1.4.0
func EncodeInt64 ¶ added in v1.4.0
func EncodeUint32 ¶ added in v1.4.0
func EncodeUint64 ¶ added in v1.4.0
func FromHex ¶
FromHex returns the bytes represented by the hexadecimal string s. s may be prefixed with "0x".
func Hex2BytesFixed ¶
Hex2BytesFixed returns bytes of a specified fixed length flen.
func HexToString ¶
func IntToBytes2 ¶
IntToBytes2 convert int to [2]byte NOTE: i should less than 2^15
func IntToBytes4 ¶
IntToBytes4 convert int to [4]byte NOTE: i should less than 2^31
func IsHexAddress ¶
IsHexAddress verifies whether a string can represent a valid hex-encoded Ethereum address or not.
func LeftPadBytes ¶
LeftPadBytes zero-pads slice to the left up to length l.
func LeftPadString ¶
Padding 0 char at the begin of the string
func LeftPadStringWithChar ¶
Padding 0 char at the begin of the string
func MakeName ¶
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 RandomAddress ¶
func RandomAddress() string
func RandomChoice ¶
Return a random choice with specific ratio, true of false
func RandomInt64 ¶
Return a random int in the specific range
func RandomNonce ¶
func RandomNonce() int64
func ReadFileAsString ¶
func RightPadBytes ¶
RightPadBytes zero-pads slice to the right up to length l.
func RightPadString ¶
Padding 0 char at the end of the string
func RightPadStringWithChar ¶
Padding 0 char at the end of the string
func SetBackend ¶
func SetBackend()
func SetCustomBackend ¶
func SetCustomBackend(customBackend logging.LeveledBackend)
func SplitStringByInterval ¶
func String2Big ¶
func StringToHex ¶
func Strip ¶
Strip returns a slice of the byte s with all leading and trailing Unicode code points contained in cutset removed.
Types ¶
type Address ¶
type Address [AddressLength]byte
Address represents the 20 byte address of an Ethereum 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 (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) MarshalJSON ¶
Serialize given address to JSON
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) UnmarshalJSON ¶
UnmarshalJSON parses a hash in hex syntax.
func (*Address) UnmarshalText ¶
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 ¶
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) 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 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 ¶
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) 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.
Source Files ¶
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. |