Documentation ¶
Overview ¶
Package common contains various helper functions.
Index ¶
- Constants
- Variables
- func Bytes2Hex(d []byte) string
- func CopyBytes(b []byte) (copiedBytes []byte)
- func EmptyHash(h Hash) bool
- func FromHex(s string, prefix string) []byte
- func Hex2Bytes(str string) []byte
- func Hex2BytesFixed(str string, flen int) []byte
- func IsHexAddress(s string) bool
- func LeftPadBytes(slice []byte, l int) []byte
- func ReplaceAtIndex(in string, r byte, i int) string
- func RightPadBytes(slice []byte, l int) []byte
- func ToHex(b []byte, prefix string) string
- type Account
- type Address
- func (a Address) Big() *big.Int
- func (a Address) Bytes() []byte
- func (a *Address) Compare(a2 Address) int
- func (a Address) Format(s fmt.State, c rune)
- func (a Address) Hash() Hash
- func (a Address) Hex() string
- func (a Address) MarshalJSON() ([]byte, error)
- 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) Unmarshal(input []byte) error
- func (a *Address) UnmarshalJSON(input []byte) error
- func (a *Address) UnmarshalText(input []byte) error
- type AppState
- type Balance
- type BitArray
- func (bA *BitArray) Bytes() []byte
- func (bA *BitArray) GetIndex(i int) bool
- func (bA *BitArray) MarshalJSON() ([]byte, error)
- func (bA *BitArray) SetIndex(i int, v bool) bool
- func (bA *BitArray) Size() uint
- func (bA *BitArray) String() string
- func (bA *BitArray) StringIndented(indent string) string
- func (bA *BitArray) UnmarshalJSON(bz []byte) error
- type Candidate
- type ChainID
- type Coin
- type CoinSymbol
- type FrozenFund
- 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) 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 Multisig
- type Pubkey
- type Stake
- type StorageSize
- type UnprefixedAddress
- type UnprefixedHash
- type UsedCheck
- type Validator
Constants ¶
const ( ChainTestnet = 0x02 ChainMainnet = 0x01 )
const ( HashLength = 32 AddressLength = 20 CoinSymbolLength = 10 )
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(0xff) Big257 = big.NewInt(257) )
Common big integers often used
Functions ¶
func Hex2BytesFixed ¶
func IsHexAddress ¶
IsHexAddress verifies whether a string can represent a valid hex-encoded Noah address or not.
func LeftPadBytes ¶
func RightPadBytes ¶
Types ¶
type Address ¶
type Address [AddressLength]byte
Address represents the 20 byte address of an Ethereum 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) MarshalJSON ¶
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) UnmarshalJSON ¶
UnmarshalJSON parses a hash in hex syntax.
func (*Address) UnmarshalText ¶
UnmarshalText parses a hash in hex syntax.
type AppState ¶
type AppState struct { Note string `json:"note"` StartHeight uint64 `json:"start_height"` Validators []Validator `json:"validators,omitempty"` Candidates []Candidate `json:"candidates,omitempty"` Accounts []Account `json:"accounts,omitempty"` Coins []Coin `json:"coins,omitempty"` FrozenFunds []FrozenFund `json:"frozen_funds,omitempty"` UsedChecks []UsedCheck `json:"used_checks,omitempty"` MaxGas uint64 `json:"max_gas"` TotalSlashed *big.Int `json:"total_slashed"` }
type Balance ¶
type Balance struct { Coin CoinSymbol `json:"coin"` Value *big.Int `json:"value"` }
type BitArray ¶
type BitArray struct { Bits uint `json:"bits"` // NOTE: persisted via reflect, must be exported Elems []uint64 `json:"elems"` // NOTE: persisted via reflect, must be exported // contains filtered or unexported fields }
BitArray is a thread-safe implementation of a bit array.
func NewBitArray ¶
NewBitArray returns a new bit array. It returns nil if the number of bits is zero.
func (*BitArray) GetIndex ¶
GetIndex returns the bit at index i within the bit array. The behavior is undefined if i >= bA.Bits
func (*BitArray) MarshalJSON ¶
MarshalJSON implements json.Marshaler interface by marshaling bit array using a custom format: a string of '-' or 'x' where 'x' denotes the 1 bit.
func (*BitArray) SetIndex ¶
SetIndex sets the bit at index i within the bit array. The behavior is undefined if i >= bA.Bits
func (*BitArray) String ¶
String returns a string representation of BitArray: BA{<bit-string>}, where <bit-string> is a sequence of 'x' (1) and '_' (0). The <bit-string> includes spaces and newlines to help people. For a simple sequence of 'x' and '_' characters with no spaces or newlines, see the MarshalJSON() method. Example: "BA{_x_}" or "nil-BitArray" for nil.
func (*BitArray) StringIndented ¶
StringIndented returns the same thing as String(), but applies the indent at every 10th bit, and twice at every 50th bit.
func (*BitArray) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler interface by unmarshaling a custom JSON description.
type Candidate ¶
type Candidate struct { RewardAddress Address `json:"reward_address"` OwnerAddress Address `json:"owner_address"` TotalNoahStake *big.Int `json:"total_noah_stake"` PubKey Pubkey `json:"pub_key"` Commission uint `json:"commission"` Stakes []Stake `json:"stakes"` CreatedAtBlock uint `json:"created_at_block"` Status byte `json:"status"` }
type ChainID ¶
type ChainID byte
func GetCurrentChainID ¶ added in v0.2.2
func GetCurrentChainID() ChainID
type CoinSymbol ¶
type CoinSymbol [CoinSymbolLength]byte
func GetBaseCoin ¶
func GetBaseCoin() CoinSymbol
func StrToCoinSymbol ¶
func StrToCoinSymbol(s string) CoinSymbol
func (CoinSymbol) Bytes ¶
func (c CoinSymbol) Bytes() []byte
func (CoinSymbol) Compare ¶
func (c CoinSymbol) Compare(c2 CoinSymbol) int
func (CoinSymbol) IsBaseCoin ¶
func (c CoinSymbol) IsBaseCoin() bool
func (CoinSymbol) MarshalJSON ¶
func (c CoinSymbol) MarshalJSON() ([]byte, error)
func (CoinSymbol) String ¶
func (c CoinSymbol) String() string
func (*CoinSymbol) UnmarshalJSON ¶
func (c *CoinSymbol) UnmarshalJSON(input []byte) error
type FrozenFund ¶
type Hash ¶
type Hash [HashLength]byte
Hash represents the 32 byte Keccak256 hash of arbitrary data.
func BytesToHash ¶
func StringToHash ¶
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 Pubkey ¶
type Pubkey []byte
func (Pubkey) MarshalJSON ¶
func (Pubkey) MarshalText ¶
func (*Pubkey) UnmarshalJSON ¶
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
UnprefixedHash 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.