Documentation ¶
Overview ¶
Package common contains various helper functions.
Index ¶
- Constants
- Variables
- func AbsolutePath(datadir string, filename string) string
- func AnyContains(array []string, vals []string) bool
- func Beautiful(t time.Time) string
- func Bytes2Hex(d []byte) string
- func BytesToFloat32(bytes []byte) float32
- func BytesToFloat64(bytes []byte) float64
- func BytesToInt32(b []byte) int32
- func BytesToInt64(b []byte) int64
- func BytesToUint32(b []byte) uint32
- func BytesToUint64(b []byte) uint64
- func CopyBytes(b []byte) (copiedBytes []byte)
- func DecodeError(err error) (uint32, string)
- func FileExist(filePath string) bool
- func Float32ToBytes(float float32) []byte
- func Float64ToBytes(float float64) []byte
- func FromHex(s string) []byte
- func Hex2Bytes(str string) []byte
- func Int32ToBytes(n int32) []byte
- func Int64ToBytes(n int64) []byte
- func IsHexAddress(s string) bool
- func LeftPadBytes(slice []byte, l int) []byte
- func LoadJSON(file string, val interface{}) error
- func LocalIPv4s() []string
- func Millis(t time.Time) int64
- func MillisToString(t int64) string
- func MillisToTime(millis int64) time.Time
- func MustRlpEncode(val interface{}) []byte
- func PrintDepricationWarning(str string)
- func Report(extra ...interface{})
- func RightPadBytes(slice []byte, l int) []byte
- func StringsContains(array []string, val string) (index int)
- func ToHex(b []byte) stringdeprecated
- func ToHexArray(b [][]byte) []string
- func Uint16ToBytes(val uint16) []byte
- func Uint32ToBytes(val uint32) []byte
- func Uint64ToBytes(val uint64) []byte
- 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) HexWithNoPrefix() string
- func (a Address) MarshalText() ([]byte, error)
- func (a Address) MarshalText2() ([]byte, error)
- func (a *Address) Scan(src interface{}) error
- func (a *Address) SetBytes(b []byte)
- func (a Address) String() string
- func (a *Address) UnmarshalJSON(input []byte) error
- func (a *Address) UnmarshalText(input []byte) error
- func (a Address) Value() (driver.Value, error)
- type AtomicBool
- type BizError
- type BlockConfirmSign
- func (sig *BlockConfirmSign) Bytes() []byte
- func (a BlockConfirmSign) MarshalText() ([]byte, error)
- func (sig *BlockConfirmSign) SetBytes(signSlice []byte)
- func (sig *BlockConfirmSign) String() string
- func (a *BlockConfirmSign) UnmarshalJSON(input []byte) error
- func (a *BlockConfirmSign) 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) HexWithNoPrefix() string
- func (h Hash) MarshalText() ([]byte, error)
- func (h *Hash) Scan(src interface{}) 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
- func (h Hash) Value() (driver.Value, 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 NodeAddress
- func (a NodeAddress) Bytes() []byte
- func (a NodeAddress) Format(s fmt.State, c rune)
- func (a NodeAddress) Hash() Hash
- func (a NodeAddress) Hex() string
- func (a NodeAddress) HexWithNoPrefix() string
- func (a NodeAddress) MarshalText() ([]byte, error)
- func (a *NodeAddress) Scan(src interface{}) error
- func (a *NodeAddress) SetBytes(b []byte)
- func (a NodeAddress) String() string
- func (a *NodeAddress) UnmarshalJSON(input []byte) error
- func (a *NodeAddress) UnmarshalText(input []byte) error
- func (a NodeAddress) Value() (driver.Value, error)
- type PrettyAge
- type PrettyDuration
- type StorageSize
- type Timer
- type UnprefixedAddress
- type UnprefixedHash
- type VersionSign
- func (s VersionSign) Bytes() []byte
- func (s VersionSign) Format(st fmt.State, c rune)
- func (s VersionSign) Hex() string
- func (s VersionSign) HexWithNoPrefix() string
- func (s VersionSign) MarshalText() ([]byte, error)
- func (s *VersionSign) SetBytes(b []byte)
- func (s VersionSign) String() string
- func (s VersionSign) TerminalString() string
- func (s *VersionSign) UnmarshalText(text []byte) error
Constants ¶
const ( STATIC_VALIDATOR_MODE = "static" INNER_VALIDATOR_MODE = "inner" DPOS_VALIDATOR_MODE = "dpos" )
const ( // HashLength is the expected length of the hash HashLength = 32 VersionSignLength = 65 // AddressLength is the expected length of the address AddressLength = 20 BlockConfirmSignLength = 65 ExtraSeal = 65 )
Lengths of hashes and addresses in bytes.
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 ( OkCode = uint32(0) NoErr = &BizError{Code: OkCode, Msg: "ok"} InternalError = &BizError{Code: 1, Msg: "System error"} NotFound = &BizError{Code: 2, Msg: "Object not found"} InvalidParameter = &BizError{Code: 3, Msg: "Invalid parameter"} )
var ( // the meter for the protocol of eth StatusEgressTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/eth/status/OutboundTraffic", nil) NewBlockHashesEgressTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/eth/newBlockHashes/OutboundTraffic", nil) TxTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/eth/tx/OutboundTraffic", nil) GetBlockHeadersEgressTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/eth/getBlockHeaders/OutboundTraffic", nil) BlockHeadersEgressTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/eth/blockHeaders/OutboundTraffic", nil) GetBlockBodiesEgressTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/eth/getBlockBodies/OutboundTraffic", nil) BlockBodiesEgressTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/eth/blockBodies/OutboundTraffic", nil) NewBlockEgressTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/eth/newBlock/OutboundTraffic", nil) PrepareBlockEgressTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/eth/prepareBlock/OutboundTraffic", nil) BlockSignatureEgressTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/eth/blockSignature/OutboundTraffic", nil) PongEgressTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/eth/pong/OutboundTraffic", nil) GetNodeDataEgressTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/eth/getNodeData/OutboundTraffic", nil) NodeDataEgressTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/eth/nodeData/OutboundTraffic", nil) GetReceiptsEgressTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/eth/getReceipts/OutboundTraffic", nil) ReceiptsTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/eth/receipts/OutboundTraffic", nil) // the meter for the protocol of pbft PrepareBlockPBFTEgressTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/pbft/PrepareBlock/OutboundTraffic", nil) PrepareVoteEgressTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/pbft/PrepareVote/OutboundTraffic", nil) ViewChangeEgressTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/pbft/ViewChange/OutboundTraffic", nil) GetPrepareBlockEgressTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/pbft/GetPrepareBlock/OutboundTraffic", nil) PrepareBlockHashEgressTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/pbft/PrepareBlockHash/OutboundTraffic", nil) GetPrepareVoteEgressTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/pbft/GetPrepareVote/OutboundTraffic", nil) PrepareVotesEgressTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/pbft/PrepareVotes/OutboundTraffic", nil) GetBlockQuorumCertEgressTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/pbft/GetBlockQuorumCert/OutboundTraffic", nil) BlockQuorumCertEgressTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/pbft/BlockQuorumCert/OutboundTraffic", nil) PBFTStatusEgressTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/pbft/PBFTStatus/OutboundTraffic", nil) GetQCBlockListEgressTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/pbft/GetQCBlockList/OutboundTraffic", nil) QCBlockListEgressTrafficMeter = metrics.NewRegisteredMeter("p2p/flow/pbft/QCBlockList/OutboundTraffic", nil) )
var ( ZeroHash = HexToHash(Hash{}.String()) ZeroAddr = Address{} ZeroNodeAddr = NodeAddress{} )
Functions ¶
func AbsolutePath ¶
AbsolutePath returns datadir + filename, or filename if it is absolute.
func AnyContains ¶
func BytesToFloat32 ¶
func BytesToFloat64 ¶
func BytesToInt32 ¶
func BytesToInt64 ¶
func BytesToUint32 ¶
func BytesToUint64 ¶
func DecodeError ¶
func Float32ToBytes ¶
func Float64ToBytes ¶
func FromHex ¶
FromHex returns the bytes represented by the hexadecimal string s. s may be prefixed with "0x".
func Int32ToBytes ¶
func Int64ToBytes ¶
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 LocalIPv4s ¶
func LocalIPv4s() []string
func MillisToString ¶
func MillisToTime ¶
func MustRlpEncode ¶
func MustRlpEncode(val interface{}) []byte
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 RightPadBytes ¶
RightPadBytes zero-pads slice to the right up to length l.
func StringsContains ¶
func ToHexArray ¶
ToHexArray creates a array of hex-string based on []byte
func Uint16ToBytes ¶
func Uint32ToBytes ¶
func Uint64ToBytes ¶
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 MustStringToAddress ¶
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) Hex ¶
Hex returns an EIP55-compliant hex string representation of the address.it's use for node address
func (Address) HexWithNoPrefix ¶
func (Address) MarshalText ¶
MarshalText returns the hex representation of a.
func (Address) MarshalText2 ¶
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 AtomicBool ¶
type AtomicBool struct {
// contains filtered or unexported fields
}
AtomicBool is a wrapper around uint32 for usage as a boolean value with atomic access.
func (*AtomicBool) IsSet ¶
func (ab *AtomicBool) IsSet() bool
IsSet returns wether the current boolean value is true.
func (*AtomicBool) Set ¶
func (ab *AtomicBool) Set(value bool)
Set sets the value of the bool regardless of the previous value.
func (*AtomicBool) TrySet ¶
func (ab *AtomicBool) TrySet(value bool) bool
TrySet sets the value of the bool and returns wether the value changed.
type BizError ¶
business error, Gas will not be returned back to caller
func NewBizError ¶
type BlockConfirmSign ¶
type BlockConfirmSign [BlockConfirmSignLength]byte
func NewBlockConfirmSign ¶
func NewBlockConfirmSign(signSlice []byte) *BlockConfirmSign
func (*BlockConfirmSign) Bytes ¶
func (sig *BlockConfirmSign) Bytes() []byte
func (BlockConfirmSign) MarshalText ¶
func (a BlockConfirmSign) MarshalText() ([]byte, error)
MarshalText returns the hex representation of a.
func (*BlockConfirmSign) SetBytes ¶
func (sig *BlockConfirmSign) SetBytes(signSlice []byte)
func (*BlockConfirmSign) String ¶
func (sig *BlockConfirmSign) String() string
func (*BlockConfirmSign) UnmarshalJSON ¶
func (a *BlockConfirmSign) UnmarshalJSON(input []byte) error
UnmarshalJSON parses a hash in hex syntax.
func (*BlockConfirmSign) UnmarshalText ¶
func (a *BlockConfirmSign) 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 ¶
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 GenerateKVHash ¶
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) HexWithNoPrefix ¶
Hex converts a hash to a hex string with no prefix of 0x.
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 NodeAddress ¶
type NodeAddress Address
func BytesToNodeAddress ¶
func BytesToNodeAddress(b []byte) NodeAddress
BytesToAddress returns Address with value b. If b is larger than len(h), b will be cropped from the left.
func HexToNodeAddress ¶
func HexToNodeAddress(s string) NodeAddress
HexToNodeAddress returns NodeAddress with byte values of s. If s is larger than len(h), s will be cropped from the left.
func (NodeAddress) Bytes ¶
func (a NodeAddress) Bytes() []byte
Bytes gets the string representation of the underlying address.
func (NodeAddress) Format ¶
func (a NodeAddress) 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 (NodeAddress) Hash ¶
func (a NodeAddress) Hash() Hash
Hash converts an address to a hash by left-padding it with zeros.
func (NodeAddress) Hex ¶
func (a NodeAddress) Hex() string
Hex returns an EIP55-compliant hex string representation of the address.
func (NodeAddress) HexWithNoPrefix ¶
func (a NodeAddress) HexWithNoPrefix() string
func (NodeAddress) MarshalText ¶
func (a NodeAddress) MarshalText() ([]byte, error)
MarshalText returns the hex representation of a.
func (*NodeAddress) Scan ¶
func (a *NodeAddress) Scan(src interface{}) error
Scan implements Scanner for database/sql.
func (*NodeAddress) SetBytes ¶
func (a *NodeAddress) SetBytes(b []byte)
SetBytes sets the address to the value of b. If b is larger than len(a) it will panic.
func (*NodeAddress) UnmarshalJSON ¶
func (a *NodeAddress) UnmarshalJSON(input []byte) error
UnmarshalJSON parses a hash in hex syntax.
func (*NodeAddress) UnmarshalText ¶
func (a *NodeAddress) UnmarshalText(input []byte) error
UnmarshalText parses a hash in hex syntax.
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 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.
type VersionSign ¶
type VersionSign [VersionSignLength]byte
func BytesToVersionSign ¶
func BytesToVersionSign(b []byte) VersionSign
func HexSign ¶
func HexSign(in string) (VersionSign, error)
HexID converts a hex string to a NodeID. The string may be prefixed with 0x.
func (VersionSign) Bytes ¶
func (s VersionSign) Bytes() []byte
func (VersionSign) Hex ¶
func (s VersionSign) Hex() string
func (VersionSign) HexWithNoPrefix ¶
func (s VersionSign) HexWithNoPrefix() string
func (VersionSign) MarshalText ¶
func (s VersionSign) MarshalText() ([]byte, error)
MarshalText implements the encoding.TextMarshaler interface.
func (*VersionSign) SetBytes ¶
func (s *VersionSign) SetBytes(b []byte)
func (VersionSign) String ¶
func (s VersionSign) String() string
func (VersionSign) TerminalString ¶
func (s VersionSign) TerminalString() string
func (*VersionSign) UnmarshalText ¶
func (s *VersionSign) UnmarshalText(text []byte) error
UnmarshalText implements the encoding.TextUnmarshaler interface.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package bitutil implements fast bitwise operations.
|
Package bitutil implements fast bitwise operations. |
Package compiler wraps the Solidity and Vyper compiler executables (solc; vyper).
|
Package compiler wraps the Solidity and Vyper compiler executables (solc; vyper). |
Package hexutil implements hex encoding with 0x prefix.
|
Package hexutil implements hex encoding with 0x prefix. |
Package json implements encoding and decoding of JSON as defined in RFC 7159.
|
Package json implements encoding and decoding of JSON as defined in RFC 7159. |
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 |