Documentation ¶
Overview ¶
Package common contains various helper functions.
Index ¶
- Constants
- Variables
- func AbsolutePath(datadir string, filename string) string
- func BigToByte128(I *big.Int) ([]byte, bool)
- func BoolToBytes(b bool) []byte
- func Byte128ToBig(b []byte, s bool) *big.Int
- func Bytes2Hex(d []byte) string
- func BytesCombine(pBytes ...[]byte) []byte
- func BytesToFloat32(bytes []byte) float32
- func BytesToFloat64(bytes []byte) float64
- func BytesToInt32(b []byte) int32
- func BytesToInt64(b []byte) int64
- func CallResAsBool(bts []byte) bool
- func CallResAsFloat128(bts []byte) *big.Float
- func CallResAsFloat32(bts []byte) float32
- func CallResAsFloat64(bts []byte) float64
- func CallResAsInt128(bts []byte) *big.Int
- func CallResAsInt32(bts []byte) int32
- func CallResAsInt64(bts []byte) int64
- func CallResAsString(bts []byte) string
- func CallResAsUint128(bts []byte) *big.Int
- func CallResAsUint32(bts []byte) uint32
- func CallResAsUint64(bts []byte) uint64
- func CheckRequiredFields(isEmpty func(reflect.Value) bool, data interface{}) error
- func CheckRequiredFieldsIsEmpty(data interface{}) error
- func CopyBytes(b []byte) (copiedBytes []byte)
- func CurrentGoRoutineID() string
- func EmptyHash(h Hash) bool
- func ErrPrintln(a ...interface{})
- func FileExist(filePath string) bool
- func Float32ToBytes(float float32) []byte
- func Float64ToBytes(float float64) []byte
- func FromHex(s string) []byte
- func GenCallData(funcName string, params []interface{}) []byte
- func GenerateWasmData(txType int64, funcName string, params []interface{}) ([]byte, error)
- func GetCurrentInterpreterType() string
- func GetParallelPoolSize() int
- func Hex2Bytes(str string) []byte
- func Hex2BytesFixed(str string, flen int) []byte
- func Int16ToBytes(n int16) []byte
- func Int32ToBytes(n int32) []byte
- func Int64ToBytes(n int64) []byte
- func Int8ToBytes(n int8) []byte
- func IntToBytes(n int) []byte
- func IsBytesEmpty(input []byte) bool
- func IsHexAddress(s string) bool
- func IsHexZeroAddress(s string) bool
- func IsSafeNumber(number string, bit int, isUnsigned bool) (res bool)
- func IsWasmContractCode(code []byte) (ok bool, tx_type int64, abi, bytecode []byte)
- func LeftPadBytes(slice []byte, l int) []byte
- func LoadJSON(file string, val interface{}) error
- func MakeName(name, version string) string
- func PaddingLeft(src []byte, bytes int) []byte
- func ParseWasmCodeRlpData(rlpData []byte) (int64, []byte, []byte, error)
- func PrintDepricationWarning(str string)
- func Report(extra ...interface{})
- func RevertBytes(bts []byte)
- func RightPadBytes(slice []byte, l int) []byte
- func SetCurrentInterpreterType(cit string)
- func SetParallelPoolSize(size int)
- func ToBytes(source interface{}) ([]byte, error)
- func ToHex(b []byte) stringdeprecated
- func Uint16ToBytes(n uint16) []byte
- func Uint32ToBytes(n uint32) []byte
- func Uint64ToBytes(n uint64) []byte
- func Uint8ToBytes(n uint8) []byte
- func UintToBytes(n uint) []byte
- func WasmCallResultCompatibleSolInt64(res []byte) []byte
- func WasmCallResultCompatibleSolString(res []byte) []byte
- 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) HexWithNoPrefix() 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) UnmarshalJSON(input []byte) error
- func (a *Address) UnmarshalText(input []byte) error
- func (a Address) Value() (driver.Value, error)
- type BlockConfirmSign
- type CommonResult
- type DBItem
- type DBItems
- 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 NodeInfo
- type PrettyAge
- type PrettyDuration
- type ReplayParam
- type StorageSize
- type SystemConfig
- func (sc *SystemConfig) GenerateNodeData()
- func (sc *SystemConfig) GetBlockGasLimit() int64
- func (sc *SystemConfig) GetConsensusNodes() []*NodeInfo
- func (sc *SystemConfig) GetConsensusNodesFilterDelay(number uint64, nodes []NodeInfo) []NodeInfo
- func (sc *SystemConfig) GetContractAddress(name string) Address
- func (sc *SystemConfig) GetDeletedNodes() []*NodeInfo
- func (sc *SystemConfig) GetGasContractAddress() Address
- func (sc *SystemConfig) GetGasContractName() string
- func (sc *SystemConfig) GetHighsetNumber() *big.Int
- func (sc *SystemConfig) GetIsTxUseGas() bool
- func (sc *SystemConfig) GetNodeTypes(publicKey string) int32
- func (sc *SystemConfig) GetNormalNodes() []NodeInfo
- func (sc *SystemConfig) GetTxGasLimit() int64
- func (sc *SystemConfig) IfCheckContractDeployPermission() int64
- func (sc *SystemConfig) IsBlockUseTrieHash() bool
- func (sc *SystemConfig) IsProduceEmptyBlock() bool
- func (sc *SystemConfig) IsUseDAG() bool
- func (sc *SystemConfig) IsValidJoinNode(publicKey string) bool
- type SystemParameter
- type UnprefixedAddress
- type UnprefixedHash
- type VRFParams
Constants ¶
const ( // HashLength is the expected length of the hash HashLength = 32 // AddressLength is the expected length of the address AddressLength = 20 BlockConfirmSignLength = 65 )
Lengths of hashes and addresses in bytes.
const ( CallContractFlag = 9 TxTypeCallSollCompatibleWasm = 14 )
tx-type
const JSONRequiredTag = "required"
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 ( Sys_pivot_key = bcwasmutil.SerilizString("sys_pivot_key") Sys_old_system_contract_key = bcwasmutil.SerilizString("sys_old_system_contract_key") Sys_old_super_admin_key = bcwasmutil.SerilizString("sys_old_super_admin_key") )
var SysCfg = &SystemConfig{ SystemConfigMu: &sync.RWMutex{}, Nodes: make([]NodeInfo, 0), nodeMap: make(map[string]*NodeInfo), ConsensusNodes: make([]*NodeInfo, 0), DeleteNodes: make([]*NodeInfo, 0), HighsetNumber: new(big.Int).SetInt64(0), SysParam: &SystemParameter{ BlockGasLimit: 0xffffffffffff, TxGasLimit: 100000000000000, VRF: VRFParams{ ElectionEpoch: 0, NextElectionBlock: 0, ValidatorCount: 0, }, IsBlockUseTrieHash: true, IsUseDAG: false, }, ContractAddress: make(map[string]Address), ReplayParam: &ReplayParam{ Pivot: 0, OldSysContracts: make(map[Address]string), OldSuperAdmin: NullAddress, }, }
Functions ¶
func AbsolutePath ¶
AbsolutePath returns datadir + filename, or filename if it is absolute.
func BigToByte128 ¶
BigToByte128 convert big.Int to 128-bit big endian,assuming it will not overflow
func BoolToBytes ¶
func Byte128ToBig ¶
Byte128ToBig convert byte[] big endian to big.Int, s indecates whether b is signed
func BytesCombine ¶
func BytesToFloat32 ¶
func BytesToFloat64 ¶
func BytesToInt32 ¶
func BytesToInt64 ¶
func CallResAsBool ¶
func CallResAsFloat128 ¶
func CallResAsFloat32 ¶
func CallResAsFloat64 ¶
func CallResAsInt128 ¶
func CallResAsInt32 ¶
func CallResAsInt64 ¶
func CallResAsString ¶
func CallResAsUint128 ¶
func CallResAsUint32 ¶
func CallResAsUint64 ¶
func CheckRequiredFields ¶
func CheckRequiredFieldsIsEmpty ¶
func CheckRequiredFieldsIsEmpty(data interface{}) error
func CurrentGoRoutineID ¶
func CurrentGoRoutineID() string
func ErrPrintln ¶
func ErrPrintln(a ...interface{})
func Float32ToBytes ¶
func Float64ToBytes ¶
func FromHex ¶
FromHex returns the bytes represented by the hexadecimal string s. s may be prefixed with "0x".
func GenCallData ¶
func GenerateWasmData ¶
func GetCurrentInterpreterType ¶
func GetCurrentInterpreterType() string
func GetParallelPoolSize ¶ added in v1.1.0
func GetParallelPoolSize() int
func Hex2BytesFixed ¶
Hex2BytesFixed returns bytes of a specified fixed length flen.
func Int16ToBytes ¶
func Int32ToBytes ¶
func Int64ToBytes ¶
func Int8ToBytes ¶
func IntToBytes ¶
func IsBytesEmpty ¶
func IsHexAddress ¶
IsHexAddress verifies whether a string can represent a valid hex-encoded Ethereum address or not.
func IsWasmContractCode ¶
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 PaddingLeft ¶
func ParseWasmCodeRlpData ¶
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 RevertBytes ¶
func RevertBytes(bts []byte)
func RightPadBytes ¶
RightPadBytes zero-pads slice to the right up to length l.
func SetCurrentInterpreterType ¶
func SetCurrentInterpreterType(cit string)
func SetParallelPoolSize ¶ added in v1.1.0
func SetParallelPoolSize(size int)
func Uint16ToBytes ¶
func Uint32ToBytes ¶
func Uint64ToBytes ¶
func Uint8ToBytes ¶
func UintToBytes ¶
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) HexWithNoPrefix ¶
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 BlockConfirmSign ¶
type BlockConfirmSign [BlockConfirmSignLength]byte
func NewBlockConfirmSign ¶
func NewBlockConfirmSign(signSlice []byte) *BlockConfirmSign
func (*BlockConfirmSign) String ¶
func (sig *BlockConfirmSign) String() string
type CommonResult ¶
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) 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 NodeInfo ¶
type NodeInfo struct { Name string `json:"name,omitempty"` Owner string `json:"owner,omitempty"` Desc string `json:"desc,omitempty"` Types int32 `json:"type,omitempty"` // status 1为正常节点, 2为删除节点 Status int32 `json:"status,omitempty"` ExternalIP string `json:"externalIP,omitempty"` InternalIP string `json:"internalIP,omitempty"` PublicKey string `json:"publicKey,omitempty"` RpcPort int32 `json:"rpcPort,omitempty"` P2pPort int32 `json:"p2pPort,omitempty"` // delay set validatorSet DelayNum uint64 `json:"delayNum,omitempty"` }
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 ReplayParam ¶
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 SystemConfig ¶
type SystemConfig struct { SystemConfigMu *sync.RWMutex SysParam *SystemParameter Nodes []NodeInfo ConsensusNodes []*NodeInfo DeleteNodes []*NodeInfo HighsetNumber *big.Int ContractAddress map[string]Address ReplayParam *ReplayParam // contains filtered or unexported fields }
func (*SystemConfig) GenerateNodeData ¶
func (sc *SystemConfig) GenerateNodeData()
func (*SystemConfig) GetBlockGasLimit ¶
func (sc *SystemConfig) GetBlockGasLimit() int64
func (*SystemConfig) GetConsensusNodes ¶
func (sc *SystemConfig) GetConsensusNodes() []*NodeInfo
func (*SystemConfig) GetConsensusNodesFilterDelay ¶
func (sc *SystemConfig) GetConsensusNodesFilterDelay(number uint64, nodes []NodeInfo) []NodeInfo
func (*SystemConfig) GetContractAddress ¶
func (sc *SystemConfig) GetContractAddress(name string) Address
func (*SystemConfig) GetDeletedNodes ¶
func (sc *SystemConfig) GetDeletedNodes() []*NodeInfo
func (*SystemConfig) GetGasContractAddress ¶
func (sc *SystemConfig) GetGasContractAddress() Address
func (*SystemConfig) GetGasContractName ¶
func (sc *SystemConfig) GetGasContractName() string
func (*SystemConfig) GetHighsetNumber ¶
func (sc *SystemConfig) GetHighsetNumber() *big.Int
func (*SystemConfig) GetIsTxUseGas ¶
func (sc *SystemConfig) GetIsTxUseGas() bool
func (*SystemConfig) GetNodeTypes ¶
func (sc *SystemConfig) GetNodeTypes(publicKey string) int32
func (*SystemConfig) GetNormalNodes ¶
func (sc *SystemConfig) GetNormalNodes() []NodeInfo
func (*SystemConfig) GetTxGasLimit ¶
func (sc *SystemConfig) GetTxGasLimit() int64
func (*SystemConfig) IfCheckContractDeployPermission ¶
func (sc *SystemConfig) IfCheckContractDeployPermission() int64
func (*SystemConfig) IsBlockUseTrieHash ¶
func (sc *SystemConfig) IsBlockUseTrieHash() bool
func (*SystemConfig) IsProduceEmptyBlock ¶
func (sc *SystemConfig) IsProduceEmptyBlock() bool
func (*SystemConfig) IsUseDAG ¶ added in v1.1.0
func (sc *SystemConfig) IsUseDAG() bool
func (*SystemConfig) IsValidJoinNode ¶
func (sc *SystemConfig) IsValidJoinNode(publicKey string) bool
type SystemParameter ¶
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 compiler wraps the Solidity compiler executable (solc).
|
Package compiler wraps the Solidity compiler executable (solc). |
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 |