binutils

package
v1.9.5 Latest Latest
Warning

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

Go to latest
Published: Dec 5, 2025 License: BSD-3-Clause Imports: 37 Imported by: 0

Documentation

Overview

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

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

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

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

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

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

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

Index

Constants

This section is empty.

Variables

View Source
var ErrGRPCTimeout = errors.New("timed out trying to contact backend controller, it is most probably not running")

ErrGRPCTimeout is a common error message if the gRPC server can't be reached

Functions

func CopyFile

func CopyFile(src, dest string) error

func DownloadReleaseVersion deprecated

func DownloadReleaseVersion(
	log luxlog.Logger,
	repo,
	version,
	binDir string,
) (string, error)

DownloadReleaseVersion returns the latest available version from github for the given repo and version, and installs it into the apps `bin` dir. NOTE: If any of the underlying URLs change (github changes, release file names, etc.) this fails The goal MUST be to have some sort of mature binary management

Deprecated: Use GetLatestReleaseVersion

func GetAsyncContext

func GetAsyncContext() context.Context

GetAsyncContext returns a timeout context with the cancel function suppressed

func GetBackendLogFile

func GetBackendLogFile(app *application.Lux) (string, error)

func GetGithubLatestReleaseURL

func GetGithubLatestReleaseURL(org, repo string) string

func GetServerPID

func GetServerPID(app *application.Lux) (int, error)

func InstallArchive

func InstallArchive(ext string, archive []byte, binDir string) error

InstallArchive installs the binary archive downloaded

func InstallBinary

func InstallBinary(
	app *application.Lux,
	version string,
	baseBinDir string,
	installDir string,
	binPrefix,
	org,
	repo string,
	downloader GithubDownloader,
	installer Installer,
) (string, error)

func KillgRPCServerProcess

func KillgRPCServerProcess(app *application.Lux) error

func NewGRPCClient

func NewGRPCClient(opts ...GRPCClientOpOption) (client.Client, error)

NewGRPCClient hides away the details (params) of creating a gRPC server connection

func NewGRPCServer

func NewGRPCServer(snapshotsDir string) (server.Server, error)

NewGRPCClient hides away the details (params) of creating a gRPC server

func NewLedgerAdapter

func NewLedgerAdapter() (keychain.Ledger, error)

NewLedgerAdapter creates a new ledger adapter

func NewLoggerAdapter

func NewLoggerAdapter(logger log.Logger) log.Logger

NewLoggerAdapter returns the logger directly since luxfi/log.Logger already implements the interface

func SetupCustomBin

func SetupCustomBin(app *application.Lux, subnetName string) string

func SetupEVM

func SetupEVM(app *application.Lux, evmVersion string) (string, error)

func SetupLPMBin

func SetupLPMBin(app *application.Lux, vmid string) string

func SetupLux

func SetupLux(app *application.Lux, luxdVersion string) (string, error)

SetupLux is an alias for SetupLuxgo for backward compatibility

func SetupLuxgo

func SetupLuxgo(app *application.Lux, luxdVersion string) (string, error)

func SetupSubnetEVM

func SetupSubnetEVM(app *application.Lux, evmVersion string) (string, string, error)

SetupSubnetEVM is an alias for SetupEVM for backward compatibility

func StartServerProcess

func StartServerProcess(app *application.Lux) error

StartServerProcess starts the gRPC server as a reentrant process of this binary it just executes `cli backend start`

func UpdateLocalSidecarRPC

func UpdateLocalSidecarRPC(app *application.Lux, sc models.Sidecar, rpcVersion int) error

update the RPC version of the VM in the sidecar file

func UpgradeVM

func UpgradeVM(app *application.Lux, vmID string, vmBinPath string) error

func WatchServerProcess

func WatchServerProcess(serverCancel context.CancelFunc, errc chan error, logger luxlog.Logger)

Types

type BinaryChecker

type BinaryChecker interface {
	ExistsWithVersion(name, binaryPrefix, version string) (bool, error)
}

func NewBinaryChecker

func NewBinaryChecker() BinaryChecker

type GRPCClientOp

type GRPCClientOp struct {
	// contains filtered or unexported fields
}

type GRPCClientOpOption

type GRPCClientOpOption func(*GRPCClientOp)

func WithAvoidRPCVersionCheck

func WithAvoidRPCVersionCheck(avoidRPCVersionCheck bool) GRPCClientOpOption

type GithubDownloader

type GithubDownloader interface {
	GetDownloadURL(version string, installer Installer) (string, string, error)
}

func NewEVMDownloader

func NewEVMDownloader() GithubDownloader

func NewLuxDownloader

func NewLuxDownloader() GithubDownloader

func NewLuxdDownloader

func NewLuxdDownloader() GithubDownloader

NewLuxdDownloader is an alias for NewLuxDownloader for compatibility

func NewSubnetEVMDownloader

func NewSubnetEVMDownloader() GithubDownloader

NewSubnetEVMDownloader is an alias for backward compatibility

type Installer

type Installer interface {
	GetArch() (string, string)
}

func NewInstaller

func NewInstaller() Installer

type LedgerAdapter

type LedgerAdapter struct {
	// contains filtered or unexported fields
}

LedgerAdapter wraps ledger.LedgerLux to implement keychain.Ledger interface

func (*LedgerAdapter) Address

func (l *LedgerAdapter) Address(displayHRP string, addressIndex uint32) (ids.ShortID, error)

Address returns a single address at the given index

func (*LedgerAdapter) Addresses

func (l *LedgerAdapter) Addresses(addressIndices []uint32) ([]ids.ShortID, error)

Addresses returns multiple addresses at the given indices

func (*LedgerAdapter) Disconnect

func (l *LedgerAdapter) Disconnect() error

Disconnect closes the connection to the ledger device

func (*LedgerAdapter) GetAddresses added in v1.9.4

func (l *LedgerAdapter) GetAddresses(addressIndices []uint32) ([]ids.ShortID, error)

GetAddresses is an alias for Addresses to satisfy the interface

func (*LedgerAdapter) Sign

func (l *LedgerAdapter) Sign(unsignedTxBytes []byte, addressIndex uint32) ([]byte, error)

Sign signs transaction bytes with a single address index

func (*LedgerAdapter) SignHash

func (l *LedgerAdapter) SignHash(hash []byte, addressIndex uint32) ([]byte, error)

SignHash signs a hash with a single address index

func (*LedgerAdapter) SignTransaction added in v1.9.4

func (l *LedgerAdapter) SignTransaction(unsignedTxBytes []byte, addressIndices []uint32) ([][]byte, error)

SignTransaction signs transaction bytes with multiple address indices

func (*LedgerAdapter) Version

func (l *LedgerAdapter) Version() (*version.Semantic, error)

Version returns the app version

type PluginBinaryDownloader

type PluginBinaryDownloader interface {
	InstallVM(vmID, vmBin string) error
	UpgradeVM(vmID, vmBin string) error
	RemoveVM(vmID string) error
}

func NewPluginBinaryDownloader

func NewPluginBinaryDownloader(app *application.Lux) PluginBinaryDownloader

type ProcessChecker

type ProcessChecker interface {
	// IsServerProcessRunning returns true if the gRPC server is running,
	// or false if not
	IsServerProcessRunning(app *application.Lux) (bool, error)
}

ProcessChecker is responsible for checking if the gRPC server is running

func NewProcessChecker

func NewProcessChecker() ProcessChecker

NewProcessChecker creates a new process checker which can respond if the server is running

Jump to

Keyboard shortcuts

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