utils

package
v1.8.0 Latest Latest
Warning

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

Go to latest
Published: Sep 23, 2025 License: BSD-3-Clause Imports: 40 Imported by: 0

Documentation

Overview

Copyright (C) 2025, Lux Industries Inc. All rights reserved. See the file LICENSE for licensing terms.

Copyright (C) 2025, Lux Industries Inc. All rights reserved. See the file LICENSE for licensing terms.

Copyright (C) 2023, Lux Industries Inc. All rights reserved. See the file LICENSE for licensing terms.

Copyright (C) 2025, Lux Industries Inc. All rights reserved. See the file LICENSE for licensing terms.

Copyright (C) 2022, Lux Industries Inc. All rights reserved. See the file LICENSE for licensing terms.

Copyright (C) 2020-2025, Lux Industries Inc. All rights reserved. See the file LICENSE for licensing terms.

Copyright (C) 2025, Lux Industries, Inc. All rights reserved. See the file LICENSE for licensing terms.

Copyright (C) 2025, Lux Industries Inc. All rights reserved. See the file LICENSE for licensing terms.

Copyright (C) 2022, Lux Industries Inc. All rights reserved. See the file LICENSE for licensing terms.

Copyright (C) 2025, Lux Industries, Inc. All rights reserved. See the file LICENSE for licensing terms.

Copyright (C) 2025, Lux Industries, Inc. All rights reserved. See the file LICENSE for licensing terms.

Copyright (C) 2025, Lux Industries, Inc. All rights reserved. See the file LICENSE for licensing terms.

Copyright (C) 2025, Lux Industries Inc. All rights reserved. See the file LICENSE for licensing terms.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddSingleQuotes

func AddSingleQuotes(s []string) []string

AddSingleQuotes adds single quotes to each string in the given slice.

func AppendSlices

func AppendSlices[T any](slices ...[]T) []T

AppendSlices appends multiple slices into a single slice.

func Belongs

func Belongs[T comparable](input []T, elem T) bool

func ByteSliceIsSubnetEvmGenesis

func ByteSliceIsSubnetEvmGenesis(bytes []byte) bool

ByteSliceIsSubnetEvmGenesis checks if a byte slice is a SubnetEVM genesis

func CleanupString

func CleanupString(s string) string

Cleans up a string by trimming \r and \n characters.

func CleanupStrings

func CleanupStrings(s []string) []string

CleanupStrings cleans up a slice of strings by trimming \r and \n characters.

func CombineSCPPath

func CombineSCPPath(host, path string) string

CombineSCPPath combines the given host and path into a single item for scp.

func DirExists

func DirExists(dirName string) bool

DirExists checks if a directory exists.

func ExpandHome

func ExpandHome(path string) string

ExpandHome expands ~ symbol to home directory

func FileExists

func FileExists(filename string) bool

FileExists checks if a file exists.

func FindErrorLogs

func FindErrorLogs(rootDirs ...string)

FindErrorLogs is a utility function, we will NOT do error handling, as this is supposed to be called during error handling itself we don't want to make it even more complex

func FormatAmount

func FormatAmount(amount *big.Int, decimals uint8) string

Formats an amount of base units as a string representing the amount in the given denomination. (i.e. An amount of 54321 with a decimals value of 3 results in the stirng "54.321")

func GetAPIContext

func GetAPIContext() (context.Context, context.CancelFunc)

Context for API requests

func GetAPILargeContext

func GetAPILargeContext() (context.Context, context.CancelFunc)

Context for API requests with large timeout

func GetBlockchainIDFromAlias

func GetBlockchainIDFromAlias(endpoint string, alias string) (ids.ID, error)

GetBlockchainIDFromAlias gets a blockchain ID from its alias on the network

func GetBlockchainTx

func GetBlockchainTx(endpoint string, blockchainID ids.ID) (interface{}, error)

GetBlockchainTx retrieves a blockchain transaction from the network

func GetCLIVersion

func GetCLIVersion() string

func GetChainID

func GetChainID(genesisData []byte) (*big.Int, error)

GetChainID extracts the chain ID from genesis data

func GetDefaultBlockchainAirdropKeyName

func GetDefaultBlockchainAirdropKeyName(blockchainName string) string

GetDefaultBlockchainAirdropKeyName returns the default key name for blockchain airdrops

func GetIPPort

func GetIPPort(uri string) (netip.AddrPort, error)

GetIPPort parses netip.IPPort from string that also may include http schema

func GetJSONKey

func GetJSONKey[T any](m map[string]interface{}, key string) (T, error)

GetJSONKey retrieves a value from a map by key and returns it as the specified type

func GetKeyNames

func GetKeyNames(keyDir string, includeEwoq bool) ([]string, error)

GetKeyNames returns a list of key names

func GetL1ValidatorUptimeSeconds

func GetL1ValidatorUptimeSeconds(rpcURL string, nodeID ids.NodeID) (uint64, error)

GetL1ValidatorUptimeSeconds returns the uptime of the L1 validator

func GetNetworkBalance

func GetNetworkBalance(address ids.ShortID, network models.Network) (uint64, error)

GetNetworkBalance returns the balance of an address on the P-chain

func GetNodeParams

func GetNodeParams(nodeDir string) (
	ids.NodeID,
	[]byte,
	[]byte,
	error,
)

GetNodeParams returns node id, bls public key and bls proof of possession

func GetRemainingValidationTime

func GetRemainingValidationTime(networkEndpoint string, nodeID ids.NodeID, subnetID ids.ID, startTime time.Time) (time.Duration, error)

func GetSCPCommandString

func GetSCPCommandString(certFilePath string, sourceIP, sourcePath string, destIP, destPath string, recursive, withCompression bool) (string, error)

GetSCPCommandString returns the SCP command string for the given source and destination paths.

func GetSCPTargetPath

func GetSCPTargetPath(ip, path string) string

GetSCPTargetPath returns the target path for the given source path and target directory.

func GetSHA256FromDisk

func GetSHA256FromDisk(binPath string) (string, error)

func GetSSHConnectionString

func GetSSHConnectionString(publicIP, certFilePath string) string

GetSSHConnectionString returns the SSH connection string for the given public IP and certificate file path.

func GetTimedContext

func GetTimedContext(timeout time.Duration) (context.Context, context.CancelFunc)

Timed Context

func GetUserIPAddress

func GetUserIPAddress() (string, error)

GetUserIPAddress retrieves the IP address of the user.

func HandleTracking

func HandleTracking(cmd *cobra.Command, app interface{}, flags map[string]string)

func HandleUserMetricsPreference

func HandleUserMetricsPreference(app interface{}) error

func IsSSHAgentAvailable

func IsSSHAgentAvailable() bool

IsSSHAgentAvailable checks if the SSH agent is available.

func IsSSHAgentIdentityValid

func IsSSHAgentIdentityValid(identity string) (bool, error)

func IsSSHPubKey

func IsSSHPubKey(pubkey string) bool

IsSSHPubKey checks if the given string is a valid SSH public key.

func IsValidIP

func IsValidIP(ipStr string) bool

func IsValidIPPort

func IsValidIPPort(ipPortPair string) bool

IsValidIPPort checks if an string IP:port pair is valid.

func IsValidURL

func IsValidURL(urlString string) bool

IsValidURL checks if a URL is valid.

func ListSSHAgentIdentities

func ListSSHAgentIdentities() ([]string, error)

ListSSHAgentIdentities returns a list of SSH identities from ssh-agent.

func Map

func Map[T, U any](input []T, f func(T) U) []U

func NetworkIDFromGenesis

func NetworkIDFromGenesis(genesis []byte) (uint32, error)

NetworkIDFromGenesis returns the network ID in the given genesis

func NewBlsSecretKeyBytes

func NewBlsSecretKeyBytes() ([]byte, error)

func PointersSlice

func PointersSlice[T any](values []T) []*T

PointersSlice converts a slice of values to a slice of pointers

func PrintMetricsOptOutPrompt

func PrintMetricsOptOutPrompt()

func ReadJSON

func ReadJSON(path string, v interface{}) error

ReadJSON reads a JSON file and unmarshals it into the provided interface

func ReadSSHAgentIdentityPublicKey

func ReadSSHAgentIdentityPublicKey(identityName string) (string, error)

func Retry

func Retry[T any](
	fn func() (T, error),
	maxAttempts int,
	retryInterval time.Duration,
) (T, error)

Retry retries the given function until it succeeds or the maximum number of attempts is reached.

func RetryWithContextGen

func RetryWithContextGen[T any](
	ctxGen func() (context.Context, context.CancelFunc),
	fn func(context.Context) (T, error),
	maxAttempts int,
	retryInterval time.Duration,
) (T, error)

RetryWithContext retries the given function until it succeeds or the maximum number of attempts is reached. For each retry, it generates a fresh context to be used on the call

func SearchSHA256File

func SearchSHA256File(file []byte, toSearch string) (string, error)

func SplitComaSeparatedInt

func SplitComaSeparatedInt(s string) []int

SplitComaSeparatedInt splits a comma-separated string into a slice of integers.

func SplitComaSeparatedString

func SplitComaSeparatedString(s string) []string

SplitComaSeparatedString splits and trims a comma-separated string into a slice of strings.

func SplitLuxgoRPCURI

func SplitLuxgoRPCURI(requestURI string) (string, string, error)

SplitRPCURI splits the RPC URI into `endpoint` and `chain`. Reverse operation of `fmt.Sprintf("%s/ext/bc/%s", endpoint, chain)`. returns the `uri` and `chain` as strings, or an error if the request URI is invalid.

func SplitSCPPath

func SplitSCPPath(path string) (string, string)

SplitSCPPath splits the given path into host and path.

func SplitStringWithQuotes

func SplitStringWithQuotes(str string, r rune) []string

SplitStringWithQuotes split string with a rune comma ignore quoted

func ToBLSPoP

func ToBLSPoP(keyBytes []byte) (
	[]byte,
	[]byte,
	error,
)

func ToNodeID

func ToNodeID(certBytes []byte) (ids.NodeID, error)

func TrackMetrics

func TrackMetrics(command *cobra.Command, flags map[string]string)

func TrimHexa

func TrimHexa(s string) string

Removes the leading 0x/0X part of a hexadecimal string representation

func Uint32Sort

func Uint32Sort(arr []uint32)

func Unique

func Unique[T comparable](arr []T) []T

Unique returns a new slice containing only the unique elements from the input slice.

func ValidateJSON

func ValidateJSON(path string) ([]byte, error)

ValidateJSON takes a json string and returns it's byte representation if it contains valid JSON

func WrapContext

func WrapContext[T any](
	f func() (T, error),
) func(context.Context) (T, error)

WrapContext adds a context based timeout to a given function

func WriteJSON

func WriteJSON(path string, v interface{}) error

WriteJSON writes the provided interface to a JSON file

Types

type Account

type Account struct {
	Balance *big.Int          `json:"balance"`
	Code    []byte            `json:"code,omitempty"`
	Storage map[string]string `json:"storage,omitempty"`
	Nonce   uint64            `json:"nonce,omitempty"`
}

Account represents an account in the genesis allocation

type SubnetEvmGenesis

type SubnetEvmGenesis struct {
	Config     map[string]interface{} `json:"config"`
	Alloc      map[string]Account     `json:"alloc"`
	Timestamp  uint64                 `json:"timestamp,omitempty"`
	GasLimit   uint64                 `json:"gasLimit"`
	Difficulty string                 `json:"difficulty,omitempty"`
	MixHash    string                 `json:"mixHash,omitempty"`
	Coinbase   string                 `json:"coinbase,omitempty"`
	Number     string                 `json:"number,omitempty"`
	GasUsed    string                 `json:"gasUsed,omitempty"`
	ParentHash string                 `json:"parentHash,omitempty"`
}

SubnetEvmGenesis represents a subnet EVM genesis configuration

func ByteSliceToSubnetEvmGenesis

func ByteSliceToSubnetEvmGenesis(bytes []byte) (*SubnetEvmGenesis, error)

ByteSliceToSubnetEvmGenesis converts a byte slice to a SubnetEVM genesis

Jump to

Keyboard shortcuts

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