common

package
v0.0.0-...-c69f244 Latest Latest
Warning

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

Go to latest
Published: Jul 16, 2022 License: LGPL-3.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// HashLength is the expected length of the common.Hash type
	HashLength = 32
)

Variables

View Source
var (
	// BestBlockHashKey is the db location the hash of the best (unfinalised) block header.
	BestBlockHashKey = []byte("best_hash")
	// LatestStorageHashKey is the db location of the hash of the latest storage trie.
	LatestStorageHashKey = []byte("latest_storage_hash")
	// FinalizedBlockHashKey is the db location of the hash of the latest finalised block header.
	FinalizedBlockHashKey = []byte("finalised_head")
	// GenesisDataKey is the db location of the genesis data.
	GenesisDataKey = []byte("genesis_data")
	// BlockTreeKey is the db location of the encoded block tree structure.
	BlockTreeKey = []byte("block_tree")
	// LatestFinalizedRoundKey is the key where the last finalised grandpa round is stored
	LatestFinalizedRoundKey = []byte("latest_finalised_round")
	// WorkingStorageHashKey is the storage key that the runtime uses to store the latest working state root.
	WorkingStorageHashKey = []byte("working_storage_hash")
	//NodeNameKey is the storage key to store de current node name and avoid create a new name every initialization
	NodeNameKey = []byte("node_name")
	// PruningKey is the storage key to store the current pruning configuration.
	PruningKey = []byte("prune")
	//CodeSubstitutedBlock is the storage key to store block hash of substituted (if there is currently code substituted)
	CodeSubstitutedBlock = []byte("code_substituted_block")
)
View Source
var (
	// CodeKey is the key where runtime code is stored in the trie
	CodeKey = []byte(":code")

	// UpgradedToDualRefKey is set to true (0x01) if the account format has been upgraded to v0.9
	// it's set to empty or false (0x00) otherwise
	UpgradedToDualRefKey = MustHexToBytes("0x26aa394eea5630e07c48ae0c9558cef7c21aab032aaa6e946ca50ad39ab66603")
)
View Source
var ErrNoPrefix = errors.New("could not byteify non 0x prefixed string")

ErrNoPrefix is returned when trying to convert a hex-encoded string with no 0x prefix

Functions

func AppendZeroes

func AppendZeroes(in []byte, l int) []byte

AppendZeroes appends zeroes to the input byte array up until it has length l

func Blake2b128

func Blake2b128(in []byte) ([]byte, error)

Blake2b128 returns the 128-bit blake2b hash of the input data

func BytesToHex

func BytesToHex(in []byte) string

BytesToHex turns a byte slice into a 0x prefixed hex string

func BytesToStringArray

func BytesToStringArray(in [][]byte) []string

BytesToStringArray turns an array of byte arrays into an array strings

func BytesToUint

func BytesToUint(b []byte) (n uint)

BytesToUint converts a bytes slice in Big Endian compact format to a uint. This is to imitate the big.NewInt(0).SetBytes(b) behaviour.

func Concat

func Concat(s1 []byte, s2 ...byte) []byte

Concat concatenates two byte arrays used instead of append to prevent modifying the original byte array

func HashValidator

func HashValidator(field reflect.Value) interface{}

HashValidator validates hash fields

func HexToBytes

func HexToBytes(in string) (b []byte, err error)

HexToBytes turns a 0x prefixed hex string into a byte slice

func HexToUint

func HexToUint(hexString string) (n uint, err error)

HexToUint converts a hex string of bytes in Big Endian compact format to a uint. See BytesToUint for more details.

func MustHexToBytes

func MustHexToBytes(in string) []byte

MustHexToBytes turns a 0x prefixed hex string into a byte slice it panic if it cannot decode the string

func Read32Bytes

func Read32Bytes(r io.Reader) ([32]byte, error)

Read32Bytes reads 32 bytes from the reader and returns it

func Read4Bytes

func Read4Bytes(r io.Reader) ([]byte, error)

Read4Bytes reads 4 bytes from the reader and returns it

func Read64Bytes

func Read64Bytes(r io.Reader) ([64]byte, error)

Read64Bytes reads 64 bytes from the reader and returns it

func Read8Bytes

func Read8Bytes(r io.Reader) ([8]byte, error)

Read8Bytes reads 8 bytes from the reader and returns it

func ReadByte

func ReadByte(r io.Reader) (byte, error)

ReadByte reads a byte from the reader and returns it

func ReadBytes

func ReadBytes(r io.Reader, n int) ([]byte, error)

ReadBytes reads the given number bytes from the reader and returns it

func ReadUint32

func ReadUint32(r io.Reader) (uint32, error)

ReadUint32 reads a 4-byte uint32 from the reader and returns it

func ReadUint64

func ReadUint64(r io.Reader) (uint64, error)

ReadUint64 reads an 8-byte uint32 from the reader and returns it

func StringArrayToBytes

func StringArrayToBytes(in []string) [][]byte

StringArrayToBytes turns an array of strings into an array of byte arrays

func StringToInts

func StringToInts(in string) ([]int, error)

StringToInts turns a string consisting of ints separated by commas into an int array

func SwapByteNibbles

func SwapByteNibbles(b byte) byte

SwapByteNibbles swaps the two nibbles of a byte

func SwapNibbles

func SwapNibbles(k []byte) []byte

SwapNibbles swaps the nibbles for each byte in the byte array

func Twox128Hash

func Twox128Hash(msg []byte) ([]byte, error)

Twox128Hash computes xxHash64 twice with seeds 0 and 1 applied on given byte array

func Twox64

func Twox64(in []byte) ([]byte, error)

Twox64 returns the xx64 hash of the input data

func Uint16ToBytes

func Uint16ToBytes(in uint16) (out []byte)

Uint16ToBytes converts a uint16 into a 2-byte slice

func UintToBytes

func UintToBytes(n uint) (b []byte)

UintToBytes converts a uint into a Big Endian byte slice using a compact number of bytes. This is to imitate the big.Int().Bytes() behaviour.

func UintToHex

func UintToHex(n uint) (hexString string)

UintToHex converts a uint into the hex string representation of a Big Endian byte slice using 4 bytes for values that fit in a uint32 and in 8 bytes otherwise.

Types

type Address

type Address string

Address represents a base58 encoded public key

type Hash

type Hash [32]byte

Hash used to store a blake2b hash

func Blake2bHash

func Blake2bHash(in []byte) (Hash, error)

Blake2bHash returns the 256-bit blake2b hash of the input data

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(in string) (Hash, error)

HexToHash turns a 0x prefixed hex string into type Hash

func Keccak256

func Keccak256(in []byte) (Hash, error)

Keccak256 returns the keccak256 hash of the input data

func MustBlake2bHash

func MustBlake2bHash(in []byte) Hash

MustBlake2bHash returns the 256-bit blake2b hash of the input data. It panics if it fails to hash.

func MustHexToHash

func MustHexToHash(in string) Hash

MustHexToHash turns a 0x prefixed hex string into type Hash it panics if it cannot turn the string into a Hash

func NewHash

func NewHash(in []byte) (res Hash)

NewHash casts a byte array to a Hash if the input is longer than 32 bytes, it takes the first 32 bytes

func ReadHash

func ReadHash(r io.Reader) (Hash, error)

ReadHash reads a 32-byte hash from the reader and returns it

func Sha256

func Sha256(in []byte) Hash

Sha256 returns the SHA2-256 hash of the input data

func Twox256

func Twox256(in []byte) (Hash, error)

Twox256 returns the twox256 hash of the input data

func (Hash) Equal

func (h Hash) Equal(g Hash) bool

Equal compares two hashes

func (Hash) IsEmpty

func (h Hash) IsEmpty() bool

IsEmpty returns true if the hash is empty, false otherwise.

func (Hash) MarshalJSON

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

MarshalJSON converts hash to hex data

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 returns the hex string for the hash

func (Hash) ToBytes

func (h Hash) ToBytes() []byte

ToBytes turns a hash to a byte array

func (*Hash) UnmarshalJSON

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

UnmarshalJSON converts hex data to hash

type Health

type Health struct {
	Peers           int
	IsSyncing       bool
	ShouldHavePeers bool
}

Health is network information about host needed for the rpc server

type NetworkState

type NetworkState struct {
	PeerID     string
	Multiaddrs []ma.Multiaddr
}

NetworkState is network information about host needed for the rpc server and the runtime

type PeerInfo

type PeerInfo struct {
	PeerID     string
	Roles      byte
	BestHash   Hash
	BestNumber uint64
}

PeerInfo is network information about peers needed for the rpc server

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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