common

package
v0.0.0-...-b9128f4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 1, 2020 License: GPL-3.0 Imports: 18 Imported by: 0

Documentation

Overview

Package common contains various helper functions.

Index

Constants

View Source
const AddressLength = 20

AddressLength of addresses in bytes

View Source
const HashLength = 32

HashLength of hashes in bytes.

View Source
const PubKeyLength = 65

PubKeyLength of PubKey in bytes

Variables

View Source
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

View Source
var ErrGasLimitReached = errors.New("gas limit reached")

ErrGasLimitReached is returned by the gas pool if the amount of gas required by a transaction is higher than what's left in the block.

Functions

func Bytes2Hex

func Bytes2Hex(d []byte) string

Bytes2Hex returns the hexadecimal encoding of d.

func CopyBytes

func CopyBytes(b []byte) (copiedBytes []byte)

CopyBytes returns an exact copy of the provided bytes.

func FindStringSubmatch

func FindStringSubmatch(reg *regexp.Regexp, name string) (ret []string)

FindStringSubmatch return segment

func FromHex

func FromHex(s string) []byte

FromHex returns the bytes represented by the hexadecimal string s. s may be prefixed with "0x".

func Get256

func Get256() hash.Hash

Get256 returns an initialized SHA3-256 hash ready to use. The caller should call Put256 when finished with the returned object.

func Get512

func Get512() hash.Hash

Get512 returns an initialized SHA3-512 hash ready to use. The caller should call Put512 when finished with the returned object.

func Hex2Bytes

func Hex2Bytes(str string) []byte

Hex2Bytes returns the bytes represented by the hexadecimal string str.

func Hex2BytesFixed

func Hex2BytesFixed(str string, flen int) []byte

Hex2BytesFixed returns bytes of a specified fixed length flen.

func IsHexAddress

func IsHexAddress(s string) bool

IsHexAddress verifies whether a string can represent a valid hex-encoded

address or not.

func IsHexPubKey

func IsHexPubKey(s string) bool

IsHexPubKey verifies whether a string can represent a valid hex-encoded

PubKey or not.

func LeftPadBytes

func LeftPadBytes(slice []byte, l int) []byte

LeftPadBytes zero-pads slice to the left up to length l.

func Put256

func Put256(h hash.Hash)

Put256 resets h and puts it in the freelist.

func Put512

func Put512(h hash.Hash)

Put512 resets h and puts it in the freelist.

func RightPadBytes

func RightPadBytes(slice []byte, l int) []byte

RightPadBytes zero-pads slice to the right up to length l.

func ToHex deprecated

func ToHex(b []byte) string

ToHex returns the hex representation of b, prefixed with '0x'. For empty slices, the return value is "0x0".

Deprecated: use hexutil.Encode instead.

func ToHexArray

func ToHexArray(b [][]byte) []string

ToHexArray creates a array of hex-string based on []byte

func TrimLeftZeroes

func TrimLeftZeroes(s []byte) []byte

TrimLeftZeroes returns a subslice of s without leading zeroes

Types

type AbsTime

type AbsTime time.Duration

AbsTime represents absolute monotonic time.

func Now

func Now() AbsTime

Now returns the current absolute monotonic time.

type AccountAuthor

type AccountAuthor struct {
	Account Name
}

type Address

type Address [AddressLength]byte

Address represents the 20 byte address of an account.

func BigToAddress

func BigToAddress(b *big.Int) Address

BigToAddress returns Address with byte values of b. If b is larger than len(h), b will be cropped from the left.

func BytesToAddress

func BytesToAddress(b []byte) Address

BytesToAddress returns Address with value b. If b is larger than len(h), b will be cropped from the left.

func HexToAddress

func HexToAddress(s string) Address

HexToAddress returns Address with byte values of s. If s is larger than len(h), s will be cropped from the left.

func (Address) Big

func (a Address) Big() *big.Int

Big converts an address to a big integer.

func (Address) Bytes

func (a Address) Bytes() []byte

Bytes gets the string representation of the underlying address.

func (Address) Compare

func (a Address) Compare(x Address) int

func (Address) Format

func (a Address) 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 (Address) Hash

func (a Address) Hash() Hash

Hash converts an address to a hash by left-padding it with zeros.

func (Address) Hex

func (a Address) Hex() string

Hex returns an EIP55-compliant hex string representation of the address.

func (Address) MarshalText

func (a Address) MarshalText() ([]byte, error)

MarshalText returns the hex representation of a. Implements encoding.TextMarshaler is supported by most codec implementations (e.g. for yaml or toml).

func (*Address) SetBytes

func (a *Address) SetBytes(b []byte)

SetBytes sets the address to the value of b. If b is larger than len(a) it will panic.

func (Address) String

func (a Address) String() string

String implements fmt.Stringer.

func (*Address) UnmarshalJSON

func (a *Address) UnmarshalJSON(input []byte) error

UnmarshalJSON parses a hash in hex syntax.

func (*Address) UnmarshalText

func (a *Address) UnmarshalText(input []byte) error

UnmarshalText parses a hash in hex syntax.

type Author

type Author struct {
	Owner  `json:"owner"`
	Weight uint64 `json:"weight"`
}

func NewAuthor

func NewAuthor(owner Owner, weight uint64) *Author

func (*Author) DecodeRLP

func (a *Author) DecodeRLP(s *rlp.Stream) error

func (*Author) EncodeRLP

func (a *Author) EncodeRLP(w io.Writer) error

func (*Author) GetWeight

func (a *Author) GetWeight() uint64

func (*Author) MarshalJSON

func (a *Author) MarshalJSON() ([]byte, error)

func (*Author) UnmarshalJSON

func (a *Author) UnmarshalJSON(data []byte) error

type AuthorJSON

type AuthorJSON struct {
	OwnerStr string `json:"owner"`
	Weight   uint64 `json:"weight"`
	// contains filtered or unexported fields
}

type AuthorType

type AuthorType uint8
const (
	AccountNameType AuthorType = iota
	PubKeyType
	AddressType
)

type GasPool

type GasPool uint64

GasPool tracks the amount of gas available during execution of the transactions in a block. The zero value is a pool with zero gas available.

func (*GasPool) AddGas

func (gp *GasPool) AddGas(amount uint64) *GasPool

AddGas makes gas available for execution.

func (*GasPool) Gas

func (gp *GasPool) Gas() uint64

Gas returns the amount of gas remaining in the pool.

func (*GasPool) String

func (gp *GasPool) String() string

func (*GasPool) SubGas

func (gp *GasPool) SubGas(amount uint64) error

SubGas deducts the given amount from the pool if enough gas is available and returns an error otherwise.

type Hash

type Hash [HashLength]byte

Hash represents the 32 byte Keccak256 hash of arbitrary data.

func BigToHash

func BigToHash(b *big.Int) Hash

BigToHash sets byte representation of b to hash. If b is larger than len(h), b will be cropped from the left.

func BytesToHash

func BytesToHash(b []byte) Hash

BytesToHash sets b to hash. If b is larger than len(h), b will be cropped from the left.

func HexToHash

func HexToHash(s string) Hash

HexToHash sets byte representation of s to hash. If b is larger than len(h), b will be cropped from the left.

func MerkleRoot

func MerkleRoot(nodes []Hash) Hash

MerkleRoot return merkle tree root hash.

func (Hash) Big

func (h Hash) Big() *big.Int

Big converts a hash to a big integer.

func (Hash) Bytes

func (h Hash) Bytes() []byte

Bytes gets the byte representation of the underlying hash.

func (Hash) Format

func (h Hash) 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 (Hash) Hex

func (h Hash) Hex() string

Hex converts a hash to a hex string.

func (Hash) MarshalText

func (h Hash) MarshalText() ([]byte, error)

MarshalText returns the hex representation of h.Implements encoding.TextMarshaler is supported by most codec implementations (e.g. for yaml or toml).

func (*Hash) SetBytes

func (h *Hash) SetBytes(b []byte)

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

func (h Hash) String() string

String implements the stringer interface and is used also by the logger when doing full logging into a file.

func (Hash) TerminalString

func (h Hash) TerminalString() string

TerminalString implements log.TerminalStringer, formatting a string for console output during logging.

func (*Hash) UnmarshalJSON

func (h *Hash) UnmarshalJSON(input []byte) error

UnmarshalJSON parses a hash in hex syntax.

func (*Hash) UnmarshalText

func (h *Hash) UnmarshalText(input []byte) error

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 Name

type Name string

Name represents the account name

func BigToName

func BigToName(b *big.Int) Name

BigToName returns Name with byte values of b.

func BytesToName

func BytesToName(b []byte) Name

BytesToName returns Name with value b.

func StrToName

func StrToName(s string) Name

StrToName returns Name with string of s.

func (Name) Big

func (n Name) Big() *big.Int

Big converts a name to a big integer.

func (Name) Bytes

func (n Name) Bytes() []byte

Bytes converts a name to bytes.

func (Name) IsChildren

func (n Name) IsChildren(name Name) bool

IsChildren name children

func (Name) IsValid

func (n Name) IsValid(reg *regexp.Regexp, length uint64) bool

IsValid verifies whether a string can represent a valid name or not.

func (*Name) SetString

func (n *Name) SetString(s string)

SetString sets the name to the value of b..

func (Name) String

func (n Name) String() string

String converts a name to string.

func (*Name) UnmarshalJSON

func (n *Name) UnmarshalJSON(data []byte) error

UnmarshalJSON parses a hash in hex syntax.

func (*Name) UnmarshalText

func (n *Name) UnmarshalText(input []byte) error

UnmarshalText parses a hash in hex syntax.

type Owner

type Owner interface {
	String() string
}

type PrettyDuration

type PrettyDuration time.Duration

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 PubKey

type PubKey [PubKeyLength]byte

PubKey represents the 64 byte public key

var EmptyPubKey PubKey

EmptyPubKey empty

func BytesToPubKey

func BytesToPubKey(b []byte) PubKey

BytesToPubKey returns PubKey with value b.

func HexToPubKey

func HexToPubKey(s string) PubKey

HexToPubKey returns PubKey with byte values of s.

func (PubKey) Big

func (p PubKey) Big() *big.Int

Big converts a hash to a big integer.

func (PubKey) Bytes

func (p PubKey) Bytes() []byte

Bytes return bytes

func (PubKey) Compare

func (p PubKey) Compare(x PubKey) int

Compare returns an integer comparing two byte slices lexicographically. The result will be 0 if a==b, -1 if a < b, and +1 if a > b. A nil argument is equivalent to an empty slice.

func (PubKey) Hex

func (p PubKey) Hex() string

Hex converts a hash to a hex string.

func (PubKey) MarshalText

func (p PubKey) MarshalText() ([]byte, error)

MarshalText returns the hex representation of p. Implements encoding.TextMarshaler is supported by most codec implementations (e.g. for yaml or toml).

func (*PubKey) SetBytes

func (p *PubKey) SetBytes(key []byte)

SetBytes set bytes to pubkey

func (PubKey) String

func (p PubKey) String() string

String implements fmt.Stringer.

func (*PubKey) UnmarshalJSON

func (p *PubKey) UnmarshalJSON(input []byte) error

UnmarshalJSON parses a hash in hex syntax.

func (*PubKey) UnmarshalText

func (p *PubKey) UnmarshalText(input []byte) error

UnmarshalText parses a hash in hex syntax.

type StorageAuthor

type StorageAuthor struct {
	Type    AuthorType
	DataRaw rlp.RawValue
	Weight  uint64
}

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.Implements encoding.TextMarshaler is supported by most codec implementations (e.g. for yaml or toml).

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. Implements encoding.TextMarshaler is supported by most codec implementations (e.g. for yaml or toml).

func (*UnprefixedHash) UnmarshalText

func (h *UnprefixedHash) UnmarshalText(input []byte) error

UnmarshalText decodes the hash from hex. The 0x prefix is optional.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL