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 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 CoinID
- type CoinSymbol
- type CoinVersion
- type FrozenFund
- type HaltBlock
- 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 TmAddress
- type UnprefixedHash
- type UsedCheck
- type Validator
- type Waitlist
Constants ¶
const ( HashLength = 32 AddressLength = 20 PubKeyLength = 32 CoinSymbolLength = 10 TendermintAddressLength = 20 )
Types lengths
const (
// BasecoinID is an ID of a base coin
BasecoinID = 0
)
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
var CurrentChainID = ChainMainnet
CurrentChainID is current ChainID of the network
Functions ¶
func Hex2BytesFixed ¶
func IsHexAddress ¶
IsHexAddress verifies whether a string can represent a valid hex-encoded Minter address or not.
func LeftPadBytes ¶
func RightPadBytes ¶
Types ¶
type Address ¶
type Address [AddressLength]byte
Address represents 20-byte address in Minter Blockchain
func BigToAddress ¶
BigToAddress converts given big.Int to Address
func BytesToAddress ¶
BytesToAddress converts given byte slice to Address
func HexToAddress ¶
HexToAddress converts given hex string to Address
func StringToAddress ¶
StringToAddress converts given string to Address
func (*Address) Compare ¶
Compare compares addresses. The result will be 0 if a==b, -1 if a < b, and +1 if a > b.
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 ¶ added in v0.8.0
MarshalJSON marshals given address to json format.
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 AppState ¶ added in v0.15.0
type AppState struct { Note string `json:"note"` StartHeight uint64 `json:"start_height"` Validators []Validator `json:"validators,omitempty"` Candidates []Candidate `json:"candidates,omitempty"` BlockListCandidates []Pubkey `json:"block_list_candidates,omitempty"` Waitlist []Waitlist `json:"waitlist,omitempty"` Accounts []Account `json:"accounts,omitempty"` Coins []Coin `json:"coins,omitempty"` FrozenFunds []FrozenFund `json:"frozen_funds,omitempty"` HaltBlocks []HaltBlock `json:"halt_blocks,omitempty"` UsedChecks []UsedCheck `json:"used_checks,omitempty"` MaxGas uint64 `json:"max_gas"` TotalSlashed string `json:"total_slashed"` }
type BitArray ¶ added in v0.15.0
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 ¶ added in v0.15.0
NewBitArray returns a new bit array. It returns nil if the number of bits is zero.
func (*BitArray) Bytes ¶ added in v0.15.0
Bytes returns the byte representation of the bits within the bitarray.
func (*BitArray) GetIndex ¶ added in v0.15.0
GetIndex returns the bit at index i within the bit array. The behavior is undefined if i >= bA.Bits
func (*BitArray) MarshalJSON ¶ added in v0.15.0
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 ¶ added in v0.15.0
SetIndex sets the bit at index i within the bit array. The behavior is undefined if i >= bA.Bits
func (*BitArray) String ¶ added in v0.15.0
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 ¶ added in v0.15.0
StringIndented returns the same thing as String(), but applies the indent at every 10th bit, and twice at every 50th bit.
func (*BitArray) UnmarshalJSON ¶ added in v0.15.0
UnmarshalJSON implements json.Unmarshaler interface by unmarshaling a custom JSON description.
type Candidate ¶ added in v0.15.0
type Candidate struct { ID uint64 `json:"id"` RewardAddress Address `json:"reward_address"` OwnerAddress Address `json:"owner_address"` ControlAddress Address `json:"control_address"` TotalBipStake string `json:"total_bip_stake"` PubKey Pubkey `json:"public_key"` Commission uint64 `json:"commission"` Stakes []Stake `json:"stakes"` Updates []Stake `json:"updates"` Status uint64 `json:"status"` }
type ChainID ¶ added in v0.19.0
type ChainID byte
ChainID is ID of the network (1 - mainnet, 2 - testnet)
type Coin ¶ added in v0.15.0
type Coin struct { ID uint64 `json:"id"` Name string `json:"name"` Symbol CoinSymbol `json:"symbol"` Volume string `json:"volume"` Crr uint64 `json:"crr"` Reserve string `json:"reserve"` MaxSupply string `json:"max_supply"` Version uint64 `json:"version"` OwnerAddress *Address `json:"owner_address"` }
type CoinID ¶ added in v1.2.0
type CoinID uint32
CoinID represents coin id
func BytesToCoinID ¶ added in v1.2.0
BytesToCoinID converts bytes to coin id. Expects LittleEndian encoding.
func GetBaseCoinID ¶ added in v1.2.0
func GetBaseCoinID() CoinID
GetBaseCoinID returns ID of base coin
type CoinSymbol ¶
type CoinSymbol [CoinSymbolLength]byte
CoinSymbol represents the 10 byte coin symbol.
func GetBaseCoin ¶
func GetBaseCoin() CoinSymbol
GetBaseCoin returns the coin symbol of the current ChainID
func StrToCoinBaseSymbol ¶ added in v1.2.0
func StrToCoinBaseSymbol(s string) CoinSymbol
StrToCoinBaseSymbol converts give string to a coin base symbol
func StrToCoinSymbol ¶ added in v0.8.0
func StrToCoinSymbol(s string) CoinSymbol
StrToCoinSymbol converts given string to a coin symbol
func (CoinSymbol) Bytes ¶
func (c CoinSymbol) Bytes() []byte
Bytes returns the bytes representation of the underlying CoinSymbol
func (CoinSymbol) Compare ¶
func (c CoinSymbol) Compare(c2 CoinSymbol) int
Compare compares coin symbols. The result will be 0 if a==b, -1 if a < b, and +1 if a > b.
func (CoinSymbol) IsBaseCoin ¶
func (c CoinSymbol) IsBaseCoin() bool
IsBaseCoin checks if coin is a base coin
func (CoinSymbol) MarshalJSON ¶
func (c CoinSymbol) MarshalJSON() ([]byte, error)
MarshalJSON encodes coin to json
func (CoinSymbol) String ¶
func (c CoinSymbol) String() string
func (*CoinSymbol) UnmarshalJSON ¶ added in v0.15.0
func (c *CoinSymbol) UnmarshalJSON(input []byte) error
UnmarshalJSON parses a coinSymbol from json
type CoinVersion ¶ added in v1.2.0
type CoinVersion = uint16
CoinVersion represents coin version info
func GetVersionFromSymbol ¶ added in v1.2.0
func GetVersionFromSymbol(s string) CoinVersion
GetVersionFromSymbol returns coin version extracted from symbol
type FrozenFund ¶ added in v0.15.0
type Hash ¶
type Hash [HashLength]byte
Hash represents the 32 byte Keccak256 hash of arbitrary data.
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 ¶
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 ¶
SetString sets 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 [PubKeyLength]byte
Pubkey represents 32 byte public key of a validator
func BytesToPubkey ¶ added in v1.1.0
BytesToPubkey decodes given bytes into Pubkey
func HexToPubkey ¶ added in v1.1.3
HexToPubkey decodes given string into Pubkey
func (Pubkey) MarshalJSON ¶ added in v0.8.0
MarshalJSON encodes Pubkey from to json format.
func (Pubkey) MarshalText ¶ added in v0.8.0
MarshalText encodes Pubkey from to text.
func (*Pubkey) UnmarshalJSON ¶ added in v0.15.0
UnmarshalJSON decodes Pubkey from json format.
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 TmAddress ¶ added in v1.1.0
type TmAddress [TendermintAddressLength]byte
TmAddress represents Tendermint address
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.