Documentation ¶
Overview ¶
Package common contains various helper functions.
Index ¶
- Constants
- Variables
- func AbsolutePath(Datadir string, filename string) string
- func Bytes2Hex(d []byte) stringdeprecated
- func CheckLemoAddress(lemoAddress string) bool
- func CopyBytes(b []byte) (copiedBytes []byte)
- func EmptyToken(t Token) bool
- func FileExist(filePath string) bool
- func FromHex(s string) []byte
- func GetCheckSum(addressToBytes []byte) byte
- func Hex2Bytes(str string) []bytedeprecated
- func Hex2BytesFixed(str string, flen int) []byte
- func IsEmptyHash(h Hash) bool
- func IsHexAddress(s string) bool
- func IsNil(i interface{}) bool
- func LeftPadBytes(slice []byte, l int) []byte
- func Lemo2Mo(lemo string) *big.Int
- func LoadJSON(file string, val interface{}) error
- func MakeName(name, version string) string
- func RightPadBytes(slice []byte, l int) []byte
- func ToHex(b []byte) string
- type Address
- func (a Address) Big() *big.Int
- func (a Address) Bytes() []byte
- func (a *Address) Decode(lemoAddress string) error
- func (a Address) Format(s fmt.State, c rune)
- func (a Address) Hash() Hash
- func (a Address) Hex() string
- func (a Address) IsContractAddress() bool
- func (a Address) IsTempAddress() bool
- 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) Str() string
- func (a Address) String() string
- func (a *Address) UnmarshalJSON(input []byte) error
- func (a *Address) UnmarshalText(input []byte) error
- type AddressSlice
- 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) MarshalText() ([]byte, error)
- func (h Hash) Prefix() string
- func (h *Hash) Set(other Hash)
- func (h *Hash) SetBytes(b []byte)
- func (h *Hash) SetString(s string)
- func (h Hash) Str() 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 PrettyDuration
- type StorageSize
- type Token
- func (t Token) Big() *big.Int
- func (t Token) Bytes() []byte
- func (t Token) Format(s fmt.State, c rune)
- func (t Token) Generate(rand *rand.Rand, size int) reflect.Value
- func (t Token) Hex() string
- func (t Token) MarshalText() ([]byte, error)
- func (t Token) Prefix() string
- func (t *Token) Set(other Hash)
- func (t *Token) SetBytes(b []byte)
- func (t *Token) SetString(s string)
- func (t Token) Str() string
- func (t Token) String() string
- func (t Token) TerminalString() string
- func (t *Token) UnmarshalJSON(input []byte) error
- func (t *Token) UnmarshalText(input []byte) error
Constants ¶
const ( DataDir = "datadir" ListenPort = "port" MiningEnabled = "mine" RPCEnabled = "rpc" RPCPort = "rpcport" RPCCORSDomain = "rpccorsdomain" RPCVirtualHosts = "rpcvhosts" IPCDisabled = "ipcdisable" IPCPath = "ipcpath" WSEnabled = "ws" WSPort = "wsport" WSAllowedOrigins = "wsorigins" LogLevel = "loglevel" )
const ( HashLength = 32 AddressLength = 20 TempIssuerBytesLength = 9 TokenLength = 32 )
const ( NormalAddressType byte = 0x01 + iota // lemochain 普通地址版本号0x01 ContractAddressType // lemochain 智能合约地址 0x02 TempAddressType // 临时地址版本号 0x03 )
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) )
Common big integers often used
var ( Sha3Nil = HexToHash("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470") // crypto.Keccak256Hash(nil) ErrInvalidAddress = errors.New("invalid LemoChain address") ErrInvalidAddressChecksum = errors.New("address checksum error") )
var ( OneLEMO = big.NewInt(1000000000000000000) ErrParseLemoFail = errors.New("Lemo2Mo parse input lemo failed, please make sure it is a number") )
Functions ¶
func AbsolutePath ¶
func CheckLemoAddress ¶ added in v1.2.0
CheckLemoAddress
func EmptyToken ¶ added in v1.2.0
func GetCheckSum ¶
GetCheckSum get the check digit by doing an exclusive OR operation
func Hex2BytesFixed ¶
func IsEmptyHash ¶ added in v1.4.0
func IsHexAddress ¶
IsHexAddress verifies whether a string can represent a valid hex-encoded Lemochain address or not.
func LeftPadBytes ¶
func MakeName ¶
MakeName creates a node name that follows the lemochain convention for such names. It adds the operation system name and Go runtime version the name.
func RightPadBytes ¶
Types ¶
type Address ¶
type Address [AddressLength]byte
Address represents the 20 byte address of an Lemochain account.
func BigToAddress ¶
func BytesToAddress ¶
func HexToAddress ¶
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) IsContractAddress ¶ added in v1.3.0
IsContractAddress judge contract address
func (Address) IsTempAddress ¶ added in v1.3.0
IsTempAddress judge temp address
func (Address) MarshalText ¶
MarshalText returns the hex representation of a.
func (*Address) SetBytes ¶
Sets the address to the value of b. If b is larger than len(a) it will panic
func (Address) String ¶
String implements the stringer interface and native address is converted to LemoAddress.
func (*Address) UnmarshalJSON ¶
UnmarshalJSON parses a hash in hex syntax.
func (*Address) UnmarshalText ¶
UnmarshalText parses a hash in hex syntax.
type AddressSlice ¶
type AddressSlice []Address
func (AddressSlice) Len ¶
func (a AddressSlice) Len() int
func (AddressSlice) Less ¶
func (a AddressSlice) Less(i, j int) bool
func (AddressSlice) Swap ¶
func (a AddressSlice) Swap(i, j int)
type Hash ¶
type Hash [HashLength]byte
Hash represents the 32 byte Keccak256 hash of arbitrary data.
func BigToToken ¶ added in v1.2.0
func BytesToHash ¶
func HexToToken ¶ added in v1.2.0
func StringToHash ¶
func StringToToken ¶ added in v1.2.0
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 ¶
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 ¶
Set string `s` to h. If s is larger than len(h) s will be cropped (from left) to fit.
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 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 Token ¶ added in v1.2.0
type Token [TokenLength]byte
func BytesToToken ¶ added in v1.2.0
func (Token) Format ¶ added in v1.2.0
Format implements fmt.Formatter, forcing the byte slice to be formatted as is, without going through the stringer interface used for logging.
func (Token) MarshalText ¶ added in v1.2.0
MarshalText returns the hex representation of h.
func (*Token) SetBytes ¶ added in v1.2.0
Sets the hash to the value of b. If b is larger than len(h), 'b' will be cropped (from the left).
func (*Token) SetString ¶ added in v1.2.0
Set string `s` to h. If s is larger than len(h) s will be cropped (from left) to fit.
func (Token) String ¶ added in v1.2.0
String implements the stringer interface and is used also by the logger when doing full logging into a file.
func (Token) TerminalString ¶ added in v1.2.0
TerminalString implements log.TerminalStringer, formatting a string for console output during logging.
func (*Token) UnmarshalJSON ¶ added in v1.2.0
UnmarshalJSON parses a hash in hex syntax.
func (*Token) UnmarshalText ¶ added in v1.2.0
UnmarshalText parses a hash in hex syntax.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
base26 character set are 83456729ABCDFGHJKNPQRSTWYZ
|
base26 character set are 83456729ABCDFGHJKNPQRSTWYZ |
Package bitutil implements fast bitwise operations.
|
Package bitutil implements fast bitwise operations. |
Package compiler wraps the Solidity compiler executable (solc).
|
Package compiler wraps the Solidity compiler executable (solc). |
bn256
Package bn256 implements the Optimal Ate pairing over a 256-bit Barreto-Naehrig curve.
|
Package bn256 implements the Optimal Ate pairing over a 256-bit Barreto-Naehrig curve. |
bn256/cloudflare
Package bn256 implements a particular bilinear group at the 128-bit security level.
|
Package bn256 implements a particular bilinear group at the 128-bit security level. |
bn256/google
Package bn256 implements a particular bilinear group.
|
Package bn256 implements a particular bilinear group. |
secp256k1
Package secp256k1 wraps the bitcoin secp256k1 C library.
|
Package secp256k1 wraps the bitcoin secp256k1 C library. |
sha3
Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202.
|
Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202. |
Package flock provides portable file locking.
|
Package flock provides portable file locking. |
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 |
Package rlp implements the RLP serialization format.
|
Package rlp implements the RLP serialization format. |