Documentation ¶
Overview ¶
Package common contains various helper functions.
Package common - common tools nolint
Index ¶
- Constants
- Variables
- func AbsolutePath(datadir, filename string) string
- func BigFromUint64(value uint64) *big.Int
- func BigUint64(v *big.Int) (uint64, bool)
- func Bytes2Hex(d []byte) string
- func Bytes2HexWithPrefix(d []byte) string
- func CopyBytes(b []byte) (copiedBytes []byte)
- func CurrentDir() (string, error)
- func ExecuteDir() (string, error)
- func FileExist(filePath string) bool
- func FirstN(s string, n int) string
- func FromHex(s string) []byte
- func GetBigInt(data []byte, start, size uint64) *big.Int
- func GetBigIntFromStr(str string) (*big.Int, error)
- func GetData(data []byte, start, size uint64) []byte
- func GetIntFromStr(str string) (int, error)
- func GetUint32FromStr(str string) (uint32, error)
- func GetUint64(data []byte, start, size uint64) (uint64, bool)
- func GetUint64FromStr(str string) (uint64, error)
- func GetUnprefixedHex(str string) (unprefixedHex string, ok, hasUpperChar bool)
- func HasHexPrefix(str string) bool
- func Hex2Bytes(str string) []byte
- func Hex2BytesFixed(str string, flen int) []byte
- func IsEqualIgnoreCase(s1, s2 string) bool
- func IsHex(str string) bool
- func IsHexAddress(s string) bool
- func IsHexCharacter(c byte) bool
- func IsHexHash(s string) bool
- func IsUpperHexCharacter(c byte) bool
- func LeftPadBytes(slice []byte, l int) []byte
- func MakeName(name, version string) string
- func MarshalBigInt(i *big.Int) (string, error)
- func MaxUint64(x, y uint64) uint64
- func MinUint64(x, y uint64) uint64
- func MustMarshalBigInt(i *big.Int) string
- func MustRunBashCommand(cwd, cmdStr string) []string
- func MustRunBashCommandWithEnv(cwd, cmdStr string, env map[string]string) []string
- func MustUnmarshalBigInt(s string) *big.Int
- func Now() int64
- func NowMilli() int64
- func NowMilliStr() string
- func NowStr() string
- func RightPadBytes(slice []byte, l int) []byte
- func ToHex(b []byte) string
- func ToJSONString(content interface{}, pretty bool) string
- func UnmarshalBigInt(s string) (*big.Int, error)
- 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) ImplementsGraphQLType(name string) bool
- func (a Address) LowerHex() string
- func (a Address) MarshalText() ([]byte, error)
- func (a *Address) Scan(src interface{}) error
- func (a *Address) SetBytes(b []byte)
- func (a Address) String() string
- func (a *Address) UnmarshalGraphQL(input interface{}) error
- func (a *Address) UnmarshalJSON(input []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(rander *rand.Rand, size int) reflect.Value
- func (h Hash) Hex() string
- func (Hash) ImplementsGraphQLType(name string) bool
- 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) UnmarshalGraphQL(input interface{}) error
- 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 StorageSize
- type UnprefixedAddress
- type UnprefixedHash
Constants ¶
const (
// AddressLength is the expected length of the address
AddressLength = 20
)
Lengths of addresses in bytes.
const (
// HashLength is the expected length of the hash
HashLength = 32
)
Lengths of hashes in bytes.
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) BigMaxUint64 = new(big.Int).SetUint64(math.MaxUint64) )
Common big integers often used
Functions ¶
func AbsolutePath ¶
AbsolutePath returns datadir + filename, or filename if it is absolute.
func BigFromUint64 ¶
BigFromUint64 new big int from uint64 value.
func Bytes2HexWithPrefix ¶
func FromHex ¶
FromHex returns the bytes represented by the hexadecimal string s. s may be prefixed with "0x".
func GetBigIntFromStr ¶
GetBigIntFromStr new big int from string.
func GetData ¶
GetData get data[start:start+size] (won't out of index range), and right padding the bytes to size long
func GetUint32FromStr ¶
GetUint32FromStr get uint64 from string.
func GetUint64FromStr ¶
GetUint64FromStr get uint64 from string.
func GetUnprefixedHex ¶
GetUnprefixedHex returns (unprefixed hex, is hex string flag, if has uppercase hexadecimal)
func HasHexPrefix ¶
HasHexPrefix validates str begins with '0x' or '0X'.
func Hex2BytesFixed ¶
Hex2BytesFixed returns bytes of a specified fixed length flen.
func IsEqualIgnoreCase ¶
IsEqualIgnoreCase returns if s1 and s2 are equal ignore case.
func IsHexAddress ¶
IsHexAddress verifies whether a string can represent a valid hex-encoded Ethereum address or not.
func IsHexCharacter ¶
IsHexCharacter returns bool of c being a valid hexadecimal.
func IsUpperHexCharacter ¶
IsUpperHexCharacter returns bool of c being a valid uppercase hexadecimal.
func LeftPadBytes ¶
LeftPadBytes zero-pads slice to the left up to length l.
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 MarshalBigInt ¶
MarshalBigInt marshalls big int into text string for consistent encoding
func MustMarshalBigInt ¶
MustMarshalBigInt marshalls big int into text string for consistent encoding. It panics if an error is encountered.
func MustRunBashCommand ¶
MustRunBashCommand for tool usage
func MustUnmarshalBigInt ¶
MustUnmarshalBigInt unmarshalls string from *big.Int. It panics if an error is encountered.
func NowMilliStr ¶
func NowMilliStr() string
NowMilliStr returns now timestamp in miliseconds of string format.
func RightPadBytes ¶
RightPadBytes zero-pads slice to the right up to length l.
func ToJSONString ¶
ToJSONString to json string
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) ImplementsGraphQLType ¶
ImplementsGraphQLType returns true if Hash implements the specified GraphQL type.
func (Address) LowerHex ¶
LowerHex hex encoding address bytes with '0x' prefix and lower case letters
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) UnmarshalGraphQL ¶
UnmarshalGraphQL unmarshals the provided GraphQL query data.
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.
var ( // EmptyHash empty hash EmptyHash Hash )
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) ImplementsGraphQLType ¶
ImplementsGraphQLType returns true if Hash implements the specified GraphQL type.
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) UnmarshalGraphQL ¶
UnmarshalGraphQL unmarshals the provided GraphQL query data.
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 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.