common

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Mar 1, 2024 License: LGPL-3.0 Imports: 14 Imported by: 1

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 EmptyHash = Hash{}
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 Blake2b8 added in v0.7.0

func Blake2b8(data []byte) (digest [8]byte, err error)

Blake2b8 returns the first 8 bytes of the 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 added in v0.7.0

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 added in v0.3.0

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 added in v0.7.0

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 MustBlake2b8 added in v0.7.0

func MustBlake2b8(data []byte) (digest [8]byte)

MustBlake2b8 returns the first 8 bytes of the Blake2b hash of the input data

func MustHexToBytes added in v0.2.0

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 added in v0.3.0

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

Read4Bytes reads 4 bytes from the reader and returns it

func Read64Bytes added in v0.3.0

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

Read64Bytes reads 64 bytes from the reader and returns it

func Read8Bytes added in v0.3.0

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 added in v0.3.0

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) (res []int, err 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 added in v0.2.0

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

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

func Twox64 added in v0.2.0

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 added in v0.7.0

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 added in v0.7.0

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 added in v0.3.0

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 added in v0.2.0

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 added in v0.3.0

func Sha256(in []byte) Hash

Sha256 returns the SHA2-256 hash of the input data

func Twox256 added in v0.2.0

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

Twox256 returns the twox256 hash of the input data

func (Hash) IsEmpty added in v0.7.0

func (h Hash) IsEmpty() bool

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

func (Hash) MarshalJSON added in v0.3.0

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) Short added in v0.7.0

func (h Hash) Short() string

Short returns the first 4 bytes and the last 4 bytes of the hex string for the hash

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 added in v0.3.0

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 NetworkRole added in v0.8.0

type NetworkRole byte

NetworkRole is the type of node.

const (
	// NoNetworkRole runs a node without networking
	NoNetworkRole NetworkRole = 0
	// FullNodeRole allow you to read the current state of the chain and to submit and validate
	// extrinsics directly on the network without relying on a centralised infrastructure provider.
	FullNodeRole NetworkRole = 1
	// LightClientRole node has only the runtime and the current state, but does not store past
	// blocks and so cannot read historical data without requesting it from a node that has it.
	LightClientRole NetworkRole = 2
	// AuthorityRole runs the node as a block-producing and finalising node
	AuthorityRole NetworkRole = 4
)

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
	Role       NetworkRole
	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