Documentation ¶
Overview ¶
Package common contains various helper functions.
Index ¶
- Constants
- Variables
- func BigBitsArrayToBitsArray(original []*big.Int) []*big.Int
- func BigBitsToBits(original *big.Int) *big.Int
- func BigBitsToBitsFloat(original *big.Int) *big.Float
- func BitsToBigBits(original *big.Int) *big.Int
- func Bytes2Hex(d []byte) string
- func CheckIfBytesAreInternalAndQiAddress(b []byte, nodeLocation Location) error
- func CopyBytes(b []byte) (copiedBytes []byte)
- func EntropyBigBitsToDifficultyBits(bigBits *big.Int) *big.Int
- func FromHex(s string) []byte
- func GetHierarchySizeForExpansionNumber(expansion uint8) (uint64, uint64)
- func Hex2Bytes(str string) []byte
- func Hex2BytesFixed(str string, flen int) []byte
- func IsConversionOutput(a []byte, nodeLocation Location) bool
- func IsHexAddress(s string) bool
- func IsInChainScope(b []byte, nodeLocation Location) bool
- func LeftPadBytes(slice []byte, l int) []byte
- func LogBig(diff *big.Int) *big.Int
- func MakeErrQiAddress(addr string) error
- func MakeErrQuaiAddress(addr string) error
- func NewRange(l, h uint8) addrPrefixRange
- func OrderToString(order int) string
- func ReadMessageFromStream(stream network.Stream, protoversion protocol.ID, ...) ([]byte, error)
- func RightPadBytes(slice []byte, l int) []byte
- func TrimLeftZeroes(s []byte) []byte
- func TrimRightZeroes(s []byte) []byte
- func WriteMessageToStream(stream network.Stream, msg []byte, protoversion protocol.ID, ...) error
- type Address
- func BigToAddress(b *big.Int, nodeLocation Location) Address
- func Bytes20ToAddress(b [20]byte, nodeLocation Location) Address
- func BytesToAddress(b []byte, nodeLocation Location) Address
- func HexToAddress(s string, nodeLocation Location) Address
- func NewAddressFromData(inner AddressData) Address
- func ZeroAddress(nodeLocation Location) Address
- func (a Address) Bytes() []byte
- func (a Address) Bytes20() (addr AddressBytes)
- func (a *Address) DecodeRLP(s *rlp.Stream) error
- func (a Address) EncodeRLP(w io.Writer) error
- func (a Address) Equal(b Address) bool
- func (a Address) Format(s fmt.State, c rune)
- func (a Address) Hash() Hash
- func (a Address) Hex() string
- func (a Address) InternalAddress() (InternalAddress, error)
- func (a Address) InternalAndQiAddress() (InternalAddress, error)
- func (a Address) InternalAndQuaiAddress() (InternalAddress, error)
- func (a Address) IsInQiLedgerScope() bool
- func (a Address) IsInQuaiLedgerScope() bool
- func (a Address) Location() *Location
- func (a *Address) MarshalJSON() ([]byte, error)
- func (a Address) MarshalText() ([]byte, error)
- func (a Address) MixedcaseAddress() MixedcaseAddress
- func (a Address) MixedcaseAddressPtr() *MixedcaseAddress
- func (a *Address) ProtoDecode(protoAddress *ProtoAddress, location Location) error
- func (a Address) ProtoEncode() *ProtoAddress
- func (a *Address) Scan(src interface{}, args ...Location) error
- func (a Address) String() string
- func (a *Address) UnmarshalJSON(input []byte) error
- func (a *Address) UnmarshalText(input []byte) error
- func (a Address) Value() (driver.Value, error)
- type AddressBytes
- func (a AddressBytes) Bytes() []byte
- func (a AddressBytes) Hex() string
- func (a AddressBytes) IsInQuaiLedgerScope() bool
- func (a AddressBytes) Location() *Location
- func (a AddressBytes) MarshalJSON() ([]byte, error)
- func (a *AddressBytes) SetBytes(b []byte)
- func (a AddressBytes) String() string
- func (a *AddressBytes) UnmarshalJSON(input []byte) error
- type AddressData
- type ExternalAddress
- func (a ExternalAddress) Bytes() []byte
- func (a ExternalAddress) Format(s fmt.State, c rune)
- func (a ExternalAddress) Hash() Hash
- func (a ExternalAddress) Hex() string
- func (a ExternalAddress) Location() *Location
- func (a ExternalAddress) MarshalText() ([]byte, error)
- func (a *ExternalAddress) Scan(src interface{}) error
- func (a ExternalAddress) String() string
- func (a *ExternalAddress) UnmarshalJSON(input []byte) error
- func (a *ExternalAddress) UnmarshalText(input []byte) error
- func (a ExternalAddress) Value() (driver.Value, error)
- 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) ProtoDecode(hash *ProtoHash)
- func (h Hash) ProtoEncode() *ProtoHash
- func (h *Hash) Scan(src interface{}) error
- func (h *Hash) SetBytes(b []byte)
- func (h Hash) String() string
- func (h Hash) TerminalString() string
- func (h *Hash) UnmarshalJSON(input []byte) error
- func (h *Hash) UnmarshalText(input []byte) error
- func (h Hash) Value() (driver.Value, error)
- type Hashes
- type InternalAddress
- func (a InternalAddress) Bytes() []byte
- func (a InternalAddress) Bytes20() (addr AddressBytes)
- func (a InternalAddress) Format(s fmt.State, c rune)
- func (a InternalAddress) Hash() Hash
- func (a InternalAddress) Hex() string
- func (a InternalAddress) IsInQiLedgerScope() bool
- func (a InternalAddress) IsInQuaiLedgerScope() bool
- func (a InternalAddress) Location() *Location
- func (a InternalAddress) MarshalText() ([]byte, error)
- func (a *InternalAddress) Scan(src interface{}) error
- func (a InternalAddress) String() string
- func (a *InternalAddress) UnmarshalJSON(input []byte) error
- func (a *InternalAddress) UnmarshalText(input []byte) error
- func (a InternalAddress) Value() (driver.Value, error)
- type Location
- func (loc Location) BytePrefix() byte
- func (loc Location) CommonDom(cmp Location) Location
- func (l Location) ContainsAddress(a Address) bool
- func (loc Location) Context() int
- func (loc Location) DomIndex(nodeLocation Location) int
- func (loc Location) Equal(cmp Location) bool
- func (loc Location) GetDoms() []Location
- func (loc Location) HasRegion() bool
- func (loc Location) HasZone() bool
- func (loc Location) InSameSliceAs(cmp Location) bool
- func (l Location) MarshalJSON() ([]byte, error)
- func (loc Location) Name() string
- func (loc Location) NameAtOrder(order int) string
- func (loc *Location) ProtoDecode(location *ProtoLocation)
- func (loc Location) ProtoEncode() *ProtoLocation
- func (l Location) RPCMarshal() []hexutil.Uint64
- func (loc Location) Region() int
- func (l *Location) SetRegion(region int) error
- func (l *Location) SetZone(zone int) error
- func (loc Location) SubInSlice(slice Location) Location
- func (loc Location) SubIndex(nodeCtx int) int
- func (loc Location) Zone() int
- type MixedcaseAddress
- func (ma *MixedcaseAddress) Address() Address
- func (ma *MixedcaseAddress) MarshalJSON() ([]byte, error)
- func (ma *MixedcaseAddress) Original() string
- func (ma *MixedcaseAddress) String() string
- func (ma *MixedcaseAddress) UnmarshalJSON(input []byte) error
- func (ma *MixedcaseAddress) ValidChecksum() bool
- type PrettyAge
- type PrettyDuration
- type ProtoAddress
- type ProtoHash
- type ProtoHashes
- type ProtoLocation
- type ProtoLocations
- type ProtoNumber
- type StorageSize
- type Unlock
- type UnprefixedAddress
- type UnprefixedHash
Constants ¶
const ( // HashLength is the expected length of the hash HashLength = 32 // AddressLength is the expected length of the address AddressLength = 20 // Constants to mnemonically index into context arrays PRIME_CTX = 0 REGION_CTX = 1 ZONE_CTX = 2 // Depth of the tree, i.e. prime, region, zone HierarchyDepth = 3 MaxRegions = 16 MaxZones = 16 MaxWidth = 16 MaxExpansionNumber = 32 InterlinkDepth = 4 )
Lengths of hashes and addresses in bytes.
const (
MantBits = 64
)
Variables ¶
var ( ErrNilInner = errors.New("Address has nil inner") ErrExternalAddress = errors.New("Address belongs to other zone") )
var ( Big0 = big.NewInt(0) Big1 = big.NewInt(1) Big2 = big.NewInt(2) Big3 = big.NewInt(3) Big8 = big.NewInt(8) Big32 = big.NewInt(32) Big256 = big.NewInt(256) Big257 = big.NewInt(257) Big2e256 = new(big.Int).Exp(big.NewInt(2), big.NewInt(256), big.NewInt(0)) Big2e64 = new(big.Int).Exp(big.NewInt(2), big.NewInt(64), big.NewInt(0)) )
Common big integers often used
var ( // The zero address (0x0) ZeroExternal = ExternalAddress{} Zero = Address{&ZeroExternal} // For utility purposes only. It is out-of-scope for state purposes. )
var (
BootstrapPeers = map[string][]string{
"colosseum": {
"/dns4/bootnode.colosseum0.quai.network/tcp/4001/p2p/12D3KooWNkQ5uA7GSxA4QBZDJgp4QzFgVqJYDW2hZepMqmu8RSbj",
"/dns4/bootnode.colosseum1.quai.network/tcp/4001/p2p/12D3KooWSyfnhGuJAAtQoZuJruuU2dTR8rMrLVK4a9c9utS68pBx",
"/dns4/bootnode.colosseum2.quai.network/tcp/4001/p2p/12D3KooWCQCh2QuBh1Cpc8Lgubwy66j2SHCfDzctRFVnUWahhPB2",
"/dns4/bootnode.colosseum3.quai.network/tcp/4001/p2p/12D3KooWQHFQQTUydBzH3gQ2rNei213SKisrFxaQ2HwLyGG54geZ",
"/dns4/bootnode.colosseum4.quai.network/tcp/4001/p2p/12D3KooWQ28KUBqdei8X1hejB6YUnqxB2PK7bcNZBjJU6YMaDfhJ",
"/dns4/bootnode.colosseum5.quai.network/tcp/4001/p2p/12D3KooWKVZTwbT716mKfHuhjiuVwkpha6NDhm19uqk6vxWz2Eyr",
},
"garden": {
"/dns4/bootnode.garden0.quai.network/tcp/4001/p2p/12D3KooWRQrLVEeJtfyKoJDYWYjryBKR8qxkDooMMzyf2ZpLaZRR",
"/dns4/bootnode.garden1.quai.network/tcp/4001/p2p/12D3KooWLzhZXUdqhwbGpezddPkpGtZ6v7obzPkWVkfY1s6ZsX6S",
"/dns4/bootnode.garden2.quai.network/tcp/4001/p2p/12D3KooWR3xMB6sCpsowQcvtdMKmKbTaiDcDFAXuWABdZVPWaVuo",
"/dns4/bootnode.garden3.quai.network/tcp/4001/p2p/12D3KooWJnWmBukEbZtGPPJvT1r4tQ97CRSGmnjHewcrjNB8oRxU",
},
"orchard": {
"/dns4/bootnode.orchard0.quai.network/tcp/4001/p2p/12D3KooWBv5C4tSS72nBdG6Q12s7vSHYHtFcquBxAKDkfrrzseUz",
"/dns4/bootnode.orchard1.quai.network/tcp/4001/p2p/12D3KooWBAkaxYwJUenjVQPyvtZx6XWjtosyVzBRJxM7wthbWRE5",
"/dns4/bootnode.orchard2.quai.network/tcp/4001/p2p/12D3KooWNN1TqsrEEmitkk1LefwLNgut621sSCdncPoyMVoYT1v4",
},
"lighthouse": {
"/dns4/host-go-quai/tcp/4001/p2p/12D3KooWS83uhvCfyNeAV24nEsp3DHrygDD39rZiVy6Gabv6pqxt",
},
}
)
var (
ErrInvalidLocation = errors.New("invalid location")
)
var File_common_proto_common_proto protoreflect.FileDescriptor
var (
PeerMetrics *prometheus.GaugeVec
)
Functions ¶
func CheckIfBytesAreInternalAndQiAddress ¶ added in v0.29.0
func EntropyBigBitsToDifficultyBits ¶ added in v0.29.0
func FromHex ¶
FromHex returns the bytes represented by the hexadecimal string s. s may be prefixed with "0x".
func GetHierarchySizeForExpansionNumber ¶ added in v0.29.0
GetHierarchySizeForExpansionNumber calculates the number of regions and zones for a given expansion number.
func Hex2BytesFixed ¶
Hex2BytesFixed returns bytes of a specified fixed length flen.
func IsConversionOutput ¶ added in v0.30.0
func IsHexAddress ¶
IsHexAddress verifies whether a string can represent a valid hex-encoded Quai address or not.
func IsInChainScope ¶
func LeftPadBytes ¶
LeftPadBytes zero-pads slice to the left up to length l.
func LogBig ¶ added in v0.35.0
IntrinsicLogEntropy returns the logarithm of the intrinsic entropy reduction of a PoW hash
func MakeErrQiAddress ¶ added in v0.29.0
func MakeErrQuaiAddress ¶ added in v0.32.0
func OrderToString ¶
func ReadMessageFromStream ¶ added in v0.29.0
func ReadMessageFromStream(stream network.Stream, protoversion protocol.ID, reporter libp2pmetrics.Reporter) ([]byte, error)
Reads the message from the stream and returns a byte of data.
func RightPadBytes ¶
RightPadBytes zero-pads slice to the right up to length l.
func TrimLeftZeroes ¶
TrimLeftZeroes returns a subslice of s without leading zeroes
func TrimRightZeroes ¶
TrimRightZeroes returns a subslice of s without trailing zeroes
func WriteMessageToStream ¶ added in v0.29.0
func WriteMessageToStream(stream network.Stream, msg []byte, protoversion protocol.ID, reporter libp2pmetrics.Reporter) error
Writes the message to the stream.
Types ¶
type Address ¶
type Address struct {
// contains filtered or unexported fields
}
func BigToAddress ¶
BigToAddress returns Address with byte values of b. If b is larger than len(h), b will be cropped from the left.
func Bytes20ToAddress ¶
func BytesToAddress ¶
BytesToAddress returns Address with value b. If b is larger than len(h), b will be cropped from the left.
func HexToAddress ¶
HexToAddress returns Address with byte values of s. If s is larger than len(h), s will be cropped from the left.
func NewAddressFromData ¶
func NewAddressFromData(inner AddressData) Address
func ZeroAddress ¶ added in v0.29.0
func (Address) Bytes20 ¶
func (a Address) Bytes20() (addr AddressBytes)
Bytes20 gets the bytes20 representation of the underlying address.
func (Address) Format ¶
Format implements fmt.Formatter. Address supports the %v, %s, %v, %x, %X and %d format verbs.
func (Address) InternalAddress ¶
func (a Address) InternalAddress() (InternalAddress, error)
func (Address) InternalAndQiAddress ¶ added in v0.29.0
func (a Address) InternalAndQiAddress() (InternalAddress, error)
func (Address) InternalAndQuaiAddress ¶ added in v0.29.0
func (a Address) InternalAndQuaiAddress() (InternalAddress, error)
func (Address) IsInQiLedgerScope ¶ added in v0.29.0
func (Address) IsInQuaiLedgerScope ¶ added in v0.29.0
func (*Address) MarshalJSON ¶
MarshalJSON marshals a subscription as its ID.
func (Address) MarshalText ¶
MarshalText returns the hex representation of a.
func (Address) MixedcaseAddress ¶ added in v0.29.0
func (a Address) MixedcaseAddress() MixedcaseAddress
func (Address) MixedcaseAddressPtr ¶ added in v0.34.0
func (a Address) MixedcaseAddressPtr() *MixedcaseAddress
func (*Address) ProtoDecode ¶ added in v0.29.0
func (a *Address) ProtoDecode(protoAddress *ProtoAddress, location Location) error
ProtoDecode converts the protobuf to an address representation.
func (Address) ProtoEncode ¶ added in v0.29.0
func (a Address) ProtoEncode() *ProtoAddress
ProtoEncode converts the address to a protobuf representation.
func (*Address) UnmarshalJSON ¶
UnmarshalJSON parses a hash in hex syntax.
func (*Address) UnmarshalText ¶
UnmarshalText parses a hash in hex syntax.
type AddressBytes ¶
type AddressBytes [AddressLength]byte
func HexToAddressBytes ¶ added in v0.29.0
func HexToAddressBytes(s string) AddressBytes
func (AddressBytes) Bytes ¶ added in v0.39.0
func (a AddressBytes) Bytes() []byte
func (AddressBytes) Hex ¶
func (a AddressBytes) Hex() string
Hex returns a hex string representation of the address.
func (AddressBytes) IsInQuaiLedgerScope ¶ added in v0.29.0
func (a AddressBytes) IsInQuaiLedgerScope() bool
func (AddressBytes) Location ¶ added in v0.29.0
func (a AddressBytes) Location() *Location
func (AddressBytes) MarshalJSON ¶ added in v0.29.0
func (a AddressBytes) MarshalJSON() ([]byte, error)
func (*AddressBytes) SetBytes ¶ added in v0.29.0
func (a *AddressBytes) SetBytes(b []byte)
func (*AddressBytes) UnmarshalJSON ¶ added in v0.29.0
func (a *AddressBytes) UnmarshalJSON(input []byte) error
type AddressData ¶
type AddressData interface { Bytes() []byte Hash() Hash Hex() string String() string Format(s fmt.State, c rune) MarshalText() ([]byte, error) UnmarshalText(input []byte) error UnmarshalJSON(input []byte) error Scan(src interface{}) error Value() (driver.Value, error) Location() *Location // contains filtered or unexported methods }
type ExternalAddress ¶
type ExternalAddress [AddressLength]byte
func (ExternalAddress) Bytes ¶
func (a ExternalAddress) Bytes() []byte
Bytes gets the string representation of the underlying address.
func (ExternalAddress) Format ¶
func (a ExternalAddress) Format(s fmt.State, c rune)
Format implements fmt.Formatter. Address supports the %v, %s, %v, %x, %X and %d format verbs.
func (ExternalAddress) Hash ¶
func (a ExternalAddress) Hash() Hash
Hash converts an address to a hash by left-padding it with zeros.
func (ExternalAddress) Hex ¶
func (a ExternalAddress) Hex() string
Hex returns a hex string representation of the address.
func (ExternalAddress) Location ¶
func (a ExternalAddress) Location() *Location
func (ExternalAddress) MarshalText ¶
func (a ExternalAddress) MarshalText() ([]byte, error)
MarshalText returns the hex representation of a.
func (*ExternalAddress) Scan ¶
func (a *ExternalAddress) Scan(src interface{}) error
Scan implements Scanner for database/sql.
func (ExternalAddress) String ¶
func (a ExternalAddress) String() string
String implements fmt.Stringer.
func (*ExternalAddress) UnmarshalJSON ¶
func (a *ExternalAddress) UnmarshalJSON(input []byte) error
UnmarshalJSON parses a hash in hex syntax.
func (*ExternalAddress) UnmarshalText ¶
func (a *ExternalAddress) UnmarshalText(input []byte) error
UnmarshalText parses a hash in hex syntax.
type Hash ¶
type Hash [HashLength]byte
Hash represents the 32 byte Keccak256 hash of arbitrary data.
func BigToHash ¶
BigToHash sets byte representation of b to hash. If b is larger than len(h), b will be cropped from the left.
func BytesToHash ¶
BytesToHash sets b to hash. If b is larger than len(h), b will be cropped from the left.
func HexToHash ¶
HexToHash sets byte representation of s to hash. If b is larger than len(h), b will be cropped from the left.
func SetBlockHashForQi ¶ added in v0.37.0
SetBlockHashForQuai sets the correct first 4 bytes in the block hash for QIP10 and Qi origin
func SetBlockHashForQuai ¶ added in v0.37.0
SetBlockHashForQuai sets the correct first 4 bytes in the block hash for QIP10 and Quai origin
func (Hash) Format ¶
Format implements fmt.Formatter. Hash supports the %v, %s, %v, %x, %X and %d format verbs.
func (Hash) MarshalText ¶
MarshalText returns the hex representation of h.
func (*Hash) ProtoDecode ¶ added in v0.29.0
ProtoDecode converts the ProtoHash into the Hash type
func (Hash) ProtoEncode ¶ added in v0.29.0
ProtoEncode converts the hash into the ProtoHash type
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) 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 Hashes ¶ added in v0.29.0
type Hashes []Hash
Hashes is a slice of Hash
func (*Hashes) ProtoDecode ¶ added in v0.29.0
func (h *Hashes) ProtoDecode(hashes *ProtoHashes)
func (Hashes) ProtoEncode ¶ added in v0.29.0
func (h Hashes) ProtoEncode() *ProtoHashes
type InternalAddress ¶
type InternalAddress [AddressLength]byte
func ZeroInternal ¶
func ZeroInternal(nodeLocation Location) InternalAddress
func (InternalAddress) Bytes ¶
func (a InternalAddress) Bytes() []byte
Bytes gets the bytes representation of the underlying address.
func (InternalAddress) Bytes20 ¶
func (a InternalAddress) Bytes20() (addr AddressBytes)
Bytes20 gets the bytes20 representation of the underlying address.
func (InternalAddress) Format ¶
func (a InternalAddress) Format(s fmt.State, c rune)
Format implements fmt.Formatter. Address supports the %v, %s, %v, %x, %X and %d format verbs.
func (InternalAddress) Hash ¶
func (a InternalAddress) Hash() Hash
Hash converts an address to a hash by left-padding it with zeros.
func (InternalAddress) Hex ¶
func (a InternalAddress) Hex() string
Hex returns a hex string representation of the address.
func (InternalAddress) IsInQiLedgerScope ¶ added in v0.34.0
func (a InternalAddress) IsInQiLedgerScope() bool
func (InternalAddress) IsInQuaiLedgerScope ¶ added in v0.29.0
func (a InternalAddress) IsInQuaiLedgerScope() bool
func (InternalAddress) Location ¶
func (a InternalAddress) Location() *Location
func (InternalAddress) MarshalText ¶
func (a InternalAddress) MarshalText() ([]byte, error)
MarshalText returns the hex representation of a.
func (*InternalAddress) Scan ¶
func (a *InternalAddress) Scan(src interface{}) error
Scan implements Scanner for database/sql.
func (InternalAddress) String ¶
func (a InternalAddress) String() string
String implements fmt.Stringer.
func (*InternalAddress) UnmarshalJSON ¶
func (a *InternalAddress) UnmarshalJSON(input []byte) error
UnmarshalJSON parses a hash in hex syntax.
func (*InternalAddress) UnmarshalText ¶
func (a *InternalAddress) UnmarshalText(input []byte) error
UnmarshalText parses a hash in hex syntax.
type Location ¶
type Location []byte
Location of a chain within the Quai hierarchy Location is encoded as a path from the root of the tree to the specified chain. Not all indices need to be populated, e.g: prime = [] region[0] = [0] zone[1,2] = [1, 2]
func GenerateLocations ¶ added in v0.29.0
GenerateLocations generates a logical sequence of locations
func LocationFromAddressBytes ¶ added in v0.29.0
Implements the shard topology defined in QIP2
func LocationFromName ¶ added in v0.29.0
LocationFromName parses a location name and returns a Location.
func NewChainsAdded ¶ added in v0.29.0
NewChainsAdded returns the new chains added on the given expansion number
func NewLocation ¶ added in v0.29.0
NewLocation verifies the inputs for region and zone and returns a valid location
func (Location) BytePrefix ¶ added in v0.29.0
Constructs the byte prefix from the location type
func (Location) CommonDom ¶
CommonDom identifies the highest context chain which exists in both locations * zone-0-0 & zone-0-1 would share region-0 as their highest context common dom * zone-0-0 & zone-1-0 would share Prime as their highest context common dom
func (Location) ContainsAddress ¶
Determines if the given address belongs to the location
func (Location) GetDoms ¶ added in v0.29.0
GetDoms returns the dom locations that must be running for a given location For example:
- if a region-0 calls GetDoms() the result will be [prime, region-0]
- if a zone-0-0 calls GetDoms() the result will be [prime, region-0, zone-0-0]
func (Location) InSameSliceAs ¶
func (Location) MarshalJSON ¶ added in v0.29.0
MarshalJSON marshals the location into a JSON array of integers
func (Location) NameAtOrder ¶ added in v0.33.0
func (*Location) ProtoDecode ¶ added in v0.29.0
func (loc *Location) ProtoDecode(location *ProtoLocation)
ProtoDecode converts the ProtoLocation type back into Location
func (Location) ProtoEncode ¶ added in v0.29.0
func (loc Location) ProtoEncode() *ProtoLocation
ProtoEncode converts the Location type into ProtoLocation
func (Location) RPCMarshal ¶
func (Location) SubInSlice ¶
SubInSlice returns the location of the subordinate chain within the specified slice. For example:
- if prime calls SubInSlice(Location{0,0}) the result will be Location{0}, i.e. region-0's location, because Prime's subordinate in that slice is region-0
- if region-0 calls SubInSlice(Location{0,0}) the result will be Location{0,0}, i.e. zone-0-0's location, because region-0's subordinate in that slice is zone-0-0
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, nodeLocation Location) (*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 PrettyAge ¶
PrettyAge is a pretty printed version of a time.Duration value that rounds the values up to a single most significant unit, days/weeks/years included.
type PrettyDuration ¶
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 ProtoAddress ¶ added in v0.29.0
type ProtoAddress struct { Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` // contains filtered or unexported fields }
func (*ProtoAddress) Descriptor
deprecated
added in
v0.29.0
func (*ProtoAddress) Descriptor() ([]byte, []int)
Deprecated: Use ProtoAddress.ProtoReflect.Descriptor instead.
func (*ProtoAddress) GetValue ¶ added in v0.29.0
func (x *ProtoAddress) GetValue() []byte
func (*ProtoAddress) ProtoMessage ¶ added in v0.29.0
func (*ProtoAddress) ProtoMessage()
func (*ProtoAddress) ProtoReflect ¶ added in v0.29.0
func (x *ProtoAddress) ProtoReflect() protoreflect.Message
func (*ProtoAddress) Reset ¶ added in v0.29.0
func (x *ProtoAddress) Reset()
func (*ProtoAddress) String ¶ added in v0.29.0
func (x *ProtoAddress) String() string
type ProtoHash ¶ added in v0.29.0
type ProtoHash struct { Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` // contains filtered or unexported fields }
func (*ProtoHash) Descriptor
deprecated
added in
v0.29.0
func (*ProtoHash) ProtoMessage ¶ added in v0.29.0
func (*ProtoHash) ProtoMessage()
func (*ProtoHash) ProtoReflect ¶ added in v0.29.0
func (x *ProtoHash) ProtoReflect() protoreflect.Message
type ProtoHashes ¶ added in v0.29.0
type ProtoHashes struct { Hashes []*ProtoHash `protobuf:"bytes,1,rep,name=hashes,proto3" json:"hashes,omitempty"` // contains filtered or unexported fields }
func (*ProtoHashes) Descriptor
deprecated
added in
v0.29.0
func (*ProtoHashes) Descriptor() ([]byte, []int)
Deprecated: Use ProtoHashes.ProtoReflect.Descriptor instead.
func (*ProtoHashes) GetHashes ¶ added in v0.29.0
func (x *ProtoHashes) GetHashes() []*ProtoHash
func (*ProtoHashes) ProtoMessage ¶ added in v0.29.0
func (*ProtoHashes) ProtoMessage()
func (*ProtoHashes) ProtoReflect ¶ added in v0.29.0
func (x *ProtoHashes) ProtoReflect() protoreflect.Message
func (*ProtoHashes) Reset ¶ added in v0.29.0
func (x *ProtoHashes) Reset()
func (*ProtoHashes) String ¶ added in v0.29.0
func (x *ProtoHashes) String() string
type ProtoLocation ¶ added in v0.29.0
type ProtoLocation struct { Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` // contains filtered or unexported fields }
func (*ProtoLocation) Descriptor
deprecated
added in
v0.29.0
func (*ProtoLocation) Descriptor() ([]byte, []int)
Deprecated: Use ProtoLocation.ProtoReflect.Descriptor instead.
func (*ProtoLocation) GetValue ¶ added in v0.29.0
func (x *ProtoLocation) GetValue() []byte
func (*ProtoLocation) ProtoMessage ¶ added in v0.29.0
func (*ProtoLocation) ProtoMessage()
func (*ProtoLocation) ProtoReflect ¶ added in v0.29.0
func (x *ProtoLocation) ProtoReflect() protoreflect.Message
func (*ProtoLocation) Reset ¶ added in v0.29.0
func (x *ProtoLocation) Reset()
func (*ProtoLocation) String ¶ added in v0.29.0
func (x *ProtoLocation) String() string
type ProtoLocations ¶ added in v0.29.0
type ProtoLocations struct { Locations []*ProtoLocation `protobuf:"bytes,1,rep,name=locations,proto3" json:"locations,omitempty"` // contains filtered or unexported fields }
func (*ProtoLocations) Descriptor
deprecated
added in
v0.29.0
func (*ProtoLocations) Descriptor() ([]byte, []int)
Deprecated: Use ProtoLocations.ProtoReflect.Descriptor instead.
func (*ProtoLocations) GetLocations ¶ added in v0.29.0
func (x *ProtoLocations) GetLocations() []*ProtoLocation
func (*ProtoLocations) ProtoMessage ¶ added in v0.29.0
func (*ProtoLocations) ProtoMessage()
func (*ProtoLocations) ProtoReflect ¶ added in v0.29.0
func (x *ProtoLocations) ProtoReflect() protoreflect.Message
func (*ProtoLocations) Reset ¶ added in v0.29.0
func (x *ProtoLocations) Reset()
func (*ProtoLocations) String ¶ added in v0.29.0
func (x *ProtoLocations) String() string
type ProtoNumber ¶ added in v0.29.0
type ProtoNumber struct { Value uint64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` // contains filtered or unexported fields }
func (*ProtoNumber) Descriptor
deprecated
added in
v0.29.0
func (*ProtoNumber) Descriptor() ([]byte, []int)
Deprecated: Use ProtoNumber.ProtoReflect.Descriptor instead.
func (*ProtoNumber) GetValue ¶ added in v0.29.0
func (x *ProtoNumber) GetValue() uint64
func (*ProtoNumber) ProtoMessage ¶ added in v0.29.0
func (*ProtoNumber) ProtoMessage()
func (*ProtoNumber) ProtoReflect ¶ added in v0.29.0
func (x *ProtoNumber) ProtoReflect() protoreflect.Message
func (*ProtoNumber) Reset ¶ added in v0.29.0
func (x *ProtoNumber) Reset()
func (*ProtoNumber) String ¶ added in v0.29.0
func (x *ProtoNumber) String() string
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 Unlock ¶ added in v0.39.0
type Unlock struct { Addr InternalAddress Amt *big.Int }
type UnprefixedAddress ¶
type UnprefixedAddress InternalAddress
UnprefixedAddress 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.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package bitutil implements fast bitwise operations.
|
Package bitutil implements fast bitwise operations. |
Package hexutil implements hex encoding with 0x prefix.
|
Package hexutil implements hex encoding with 0x prefix. |
Package math provides integer math utilities.
|
Package math provides integer math utilities. |
Package mclock is a wrapper for a monotonic clock source
|
Package mclock is a wrapper for a monotonic clock source |
Package prque implements a priority queue data structure supporting arbitrary value types and int64 priorities.
|
Package prque implements a priority queue data structure supporting arbitrary value types and int64 priorities. |