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 ¶
- Variables
- func CopyFile(src, dest string) error
- func DownloadReleaseVersion(log luxlog.Logger, repo, version, binDir string) (string, error)deprecated
- func GetAsyncContext() context.Context
- func GetBackendLogFile(app *application.Lux) (string, error)
- func GetGithubLatestReleaseURL(org, repo string) string
- func GetServerPID(app *application.Lux) (int, error)
- func InstallArchive(ext string, archive []byte, binDir string) error
- func InstallBinary(app *application.Lux, version string, baseBinDir string, installDir string, ...) (string, error)
- func KillgRPCServerProcess(app *application.Lux) error
- func NewGRPCClient(opts ...GRPCClientOpOption) (client.Client, error)
- func NewGRPCServer(snapshotsDir string) (server.Server, error)
- func NewLedgerAdapter() (keychain.Ledger, error)
- func NewLoggerAdapter(logger log.Logger) log.Logger
- func SetupCustomBin(app *application.Lux, subnetName string) string
- func SetupEVM(app *application.Lux, evmVersion string) (string, error)
- func SetupLPMBin(app *application.Lux, vmid string) string
- func SetupLux(app *application.Lux, luxdVersion string) (string, error)
- func SetupLuxgo(app *application.Lux, luxdVersion string) (string, error)
- func StartServerProcess(app *application.Lux) error
- func UpdateLocalSidecarRPC(app *application.Lux, sc models.Sidecar, rpcVersion int) error
- func UpgradeVM(app *application.Lux, vmID string, vmBinPath string) error
- func WatchServerProcess(serverCancel context.CancelFunc, errc chan error, logger luxlog.Logger)
- type BinaryChecker
- type GRPCClientOp
- type GRPCClientOpOption
- type GithubDownloader
- type Installer
- type LedgerAdapter
- func (l *LedgerAdapter) Address(displayHRP string, addressIndex uint32) (ids.ShortID, error)
- func (l *LedgerAdapter) Addresses(addressIndices []uint32) ([]ids.ShortID, error)
- func (l *LedgerAdapter) Disconnect() error
- func (l *LedgerAdapter) GetAddresses(addressIndices []uint32) ([]ids.ShortID, error)
- func (l *LedgerAdapter) Sign(unsignedTxBytes []byte, addressIndex uint32) ([]byte, error)
- func (l *LedgerAdapter) SignHash(hash []byte, addressIndex uint32) ([]byte, error)
- func (l *LedgerAdapter) SignTransaction(unsignedTxBytes []byte, addressIndices []uint32) ([][]byte, error)
- func (l *LedgerAdapter) Version() (*version.Semantic, error)
- type PluginBinaryDownloader
- type ProcessChecker
Constants ¶
This section is empty.
Variables ¶
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 DownloadReleaseVersion
deprecated
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 ¶
GetAsyncContext returns a timeout context with the cancel function suppressed
func GetBackendLogFile ¶
func GetBackendLogFile(app *application.Lux) (string, error)
func GetServerPID ¶
func GetServerPID(app *application.Lux) (int, error)
func InstallArchive ¶
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 ¶
NewGRPCClient hides away the details (params) of creating a gRPC server
func NewLedgerAdapter ¶
NewLedgerAdapter creates a new ledger adapter
func NewLoggerAdapter ¶
NewLoggerAdapter returns the logger directly since luxfi/log.Logger already implements the interface
func SetupCustomBin ¶
func SetupCustomBin(app *application.Lux, subnetName string) string
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 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 ¶
update the RPC version of the VM in the sidecar file
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
type Installer ¶
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) 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
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