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.
Index ¶
- Constants
- Variables
- func CheckNodeIsInSubnetPendingValidators(subnetID ids.ID, nodeID string) (bool, error)
- func GetCurrentSupply(subnetID ids.ID) error
- func GetDefaultSubnetAirdropKeyInfo(app *application.Lux, blockchainName string) (string, string, string, error)
- func GetFirstEndpoint(clusterInfo *rpcpb.ClusterInfo, chain string) string
- func GetLocallyDeployedSubnets() (map[string]struct{}, error)
- func GetLocallyDeployedSubnetsFromFile(app *application.Lux) ([]string, error)
- func GetPublicSubnetValidators(subnetID ids.ID, network models.Network) ([]platformvm.ClientPermissionlessValidator, error)
- func GetSubnetValidators(subnetID ids.ID) ([]platformvm.ClientPermissionlessValidator, error)
- func HasEndpoints(clusterInfo *rpcpb.ClusterInfo) bool
- func IsSubnetValidator(subnetID ids.ID, nodeID ids.NodeID, network models.Network) (bool, error)
- func IssueAddPermissionlessValidatorTx(kc keychain.Keychain, subnetID ids.ID, nodeID ids.NodeID, stakeAmount uint64, ...) (ids.ID, error)
- func IssueRemoveSubnetValidatorTx(kc keychain.Keychain, subnetID ids.ID, nodeID ids.NodeID) (ids.ID, error)
- func IssueTransformSubnetTx(elasticSubnetConfig models.ElasticSubnetConfig, kc keychain.Keychain, ...) (ids.ID, ids.ID, error)
- func SetDefaultSnapshot(snapshotsDir string, force bool) error
- func ValidateSubnetNameAndGetChains(subnetName string) error
- func WaitForHealthy(ctx context.Context, cli client.Client) (*rpcpb.ClusterInfo, error)
- type LocalDeployer
- func (d *LocalDeployer) BackendStartedHere() bool
- func (d *LocalDeployer) DeployBlockchain(chain string, chainGenesis []byte) (ids.ID, ids.ID, error)
- func (d *LocalDeployer) DeployToLocalNetwork(chain string, chainGenesis []byte, genesisPath string) (ids.ID, ids.ID, error)
- func (d *LocalDeployer) SetupLocalEnv() (string, error)
- func (d *LocalDeployer) StartServer() error
- type PublicDeployer
- func (d *PublicDeployer) AddValidator(controlKeys []string, subnetAuthKeysStrs []string, subnetID ids.ID, ...) (bool, *txs.Tx, []string, error)
- func (d *PublicDeployer) Commit(tx *txs.Tx) (ids.ID, error)
- func (d *PublicDeployer) ConvertL1(controlKeys []string, subnetAuthKeysStrs []string, subnetID ids.ID, ...) (bool, ids.ID, *txs.Tx, []string, error)
- func (d *PublicDeployer) CreateAssetTx(subnetID ids.ID, tokenName string, tokenSymbol string, denomination byte, ...) (ids.ID, error)
- func (d *PublicDeployer) DeployBlockchain(controlKeys []string, subnetAuthKeysStrs []string, subnetID ids.ID, ...) (bool, ids.ID, *txs.Tx, []string, error)
- func (d *PublicDeployer) DeploySubnet(controlKeys []string, threshold uint32) (ids.ID, error)
- func (d *PublicDeployer) ExportToPChainTx(subnetID ids.ID, subnetAssetID ids.ID, owner *secp256k1fx.OutputOwners, ...) (ids.ID, error)
- func (d *PublicDeployer) ImportFromXChain(subnetID ids.ID, owner *secp256k1fx.OutputOwners) (ids.ID, error)
- func (d *PublicDeployer) IncreaseValidatorPChainBalance(validationID ids.ID, balance uint64) error
- func (d *PublicDeployer) RegisterL1Validator(balance uint64, blsInfo signer.ProofOfPossession, message []byte) (ids.ID, ids.ID, error)
- func (d *PublicDeployer) RemoveValidator(controlKeys []string, subnetAuthKeysStrs []string, subnetID ids.ID, ...) (bool, *txs.Tx, []string, error)
- func (d *PublicDeployer) Sign(tx *txs.Tx, subnetAuthKeysStrs []string, subnet ids.ID) error
- func (d *PublicDeployer) TransformSubnetTx(controlKeys []string, subnetAuthKeysStrs []string, ...) (bool, ids.ID, *txs.Tx, []string, error)
- type Publisher
- type WarpSpec
Constants ¶
const (
WriteReadReadPerms = 0o644
)
Variables ¶
var ErrNoSubnetAuthKeysInWallet = errors.New("auth wallet does not contain subnet auth keys")
Functions ¶
func GetCurrentSupply ¶
func GetDefaultSubnetAirdropKeyInfo ¶
func GetDefaultSubnetAirdropKeyInfo(app *application.Lux, blockchainName string) (string, string, string, error)
GetDefaultSubnetAirdropKeyInfo returns the default airdrop key information for a subnet
func GetFirstEndpoint ¶
func GetFirstEndpoint(clusterInfo *rpcpb.ClusterInfo, chain string) string
GetFirstEndpoint get a human readable endpoint for the given chain
func GetLocallyDeployedSubnets ¶
Returns an error if the server cannot be contacted. You may want to ignore this error.
func GetLocallyDeployedSubnetsFromFile ¶
func GetLocallyDeployedSubnetsFromFile(app *application.Lux) ([]string, error)
func GetPublicSubnetValidators ¶
func GetPublicSubnetValidators(subnetID ids.ID, network models.Network) ([]platformvm.ClientPermissionlessValidator, error)
func GetSubnetValidators ¶
func GetSubnetValidators(subnetID ids.ID) ([]platformvm.ClientPermissionlessValidator, error)
func HasEndpoints ¶
func HasEndpoints(clusterInfo *rpcpb.ClusterInfo) bool
HasEndpoints returns true if cluster info contains custom blockchains
func IsSubnetValidator ¶
func IssueTransformSubnetTx ¶
func SetDefaultSnapshot ¶
Initialize default snapshot with bootstrap snapshot archive If force flag is set to true, overwrite the default snapshot if it exists
func ValidateSubnetNameAndGetChains ¶
ValidateSubnetNameAndGetChains validates a subnet name and returns chain information
func WaitForHealthy ¶
WaitForHealthy polls continuously until the network is ready to be used
Types ¶
type LocalDeployer ¶
type LocalDeployer struct {
// contains filtered or unexported fields
}
func NewLocalDeployer ¶
func NewLocalDeployer(app *application.Lux, luxVersion string, vmBin string) *LocalDeployer
func (*LocalDeployer) BackendStartedHere ¶
func (d *LocalDeployer) BackendStartedHere() bool
BackendStartedHere returns true if the backend was started by this run, or false if it found it there already
func (*LocalDeployer) DeployBlockchain ¶
DeployBlockchain deploys a blockchain to the local network
func (*LocalDeployer) DeployToLocalNetwork ¶
func (d *LocalDeployer) DeployToLocalNetwork(chain string, chainGenesis []byte, genesisPath string) (ids.ID, ids.ID, error)
DeployToLocalNetwork does the heavy lifting: * it checks the gRPC is running, if not, it starts it * kicks off the actual deployment
func (*LocalDeployer) SetupLocalEnv ¶
func (d *LocalDeployer) SetupLocalEnv() (string, error)
SetupLocalEnv also does some heavy lifting: * sets up default snapshot if not installed * checks if node is installed in the local binary path * if not, it downloads it and installs it (os - and archive dependent) * returns the location of the node path
func (*LocalDeployer) StartServer ¶
func (d *LocalDeployer) StartServer() error
type PublicDeployer ¶
type PublicDeployer struct {
LocalDeployer
// contains filtered or unexported fields
}
func NewPublicDeployer ¶
func NewPublicDeployer(app *application.Lux, usingLedger bool, kc keychain.Keychain, network models.Network) *PublicDeployer
func (*PublicDeployer) AddValidator ¶
func (d *PublicDeployer) AddValidator( controlKeys []string, subnetAuthKeysStrs []string, subnetID ids.ID, nodeID ids.NodeID, weight uint64, startTime time.Time, duration time.Duration, ) (bool, *txs.Tx, []string, error)
adds a subnet validator to the given [subnetID]
- creates an add subnet validator tx
- sets the change output owner to be a wallet address (if not, it may go to any other subnet auth address)
- signs the tx with the wallet as the owner of fee outputs and a possible subnet auth key
- if partially signed, returns the tx so that it can later on be signed by the rest of the subnet auth keys
- if fully signed, issues it
func (*PublicDeployer) ConvertL1 ¶
func (d *PublicDeployer) ConvertL1( controlKeys []string, subnetAuthKeysStrs []string, subnetID ids.ID, blockchainID ids.ID, managerAddress ethcommon.Address, validators []interface{}, ) (bool, ids.ID, *txs.Tx, []string, error)
ConvertL1 converts a subnet to an L1 (LP99)
func (*PublicDeployer) CreateAssetTx ¶
func (*PublicDeployer) DeployBlockchain ¶
func (d *PublicDeployer) DeployBlockchain( controlKeys []string, subnetAuthKeysStrs []string, subnetID ids.ID, chain string, genesis []byte, ) (bool, ids.ID, *txs.Tx, []string, error)
creates a blockchain for the given [subnetID]
- creates a create blockchain tx
- sets the change output owner to be a wallet address (if not, it may go to any other subnet auth address)
- signs the tx with the wallet as the owner of fee outputs and a possible subnet auth key
- if partially signed, returns the tx so that it can later on be signed by the rest of the subnet auth keys
- if fully signed, issues it
func (*PublicDeployer) DeploySubnet ¶
- creates a subnet for [chain] using the given [controlKeys] and [threshold] as subnet authentication parameters
func (*PublicDeployer) ExportToPChainTx ¶
func (d *PublicDeployer) ExportToPChainTx( subnetID ids.ID, subnetAssetID ids.ID, owner *secp256k1fx.OutputOwners, assetAmount uint64, ) (ids.ID, error)
func (*PublicDeployer) ImportFromXChain ¶
func (d *PublicDeployer) ImportFromXChain( subnetID ids.ID, owner *secp256k1fx.OutputOwners, ) (ids.ID, error)
func (*PublicDeployer) IncreaseValidatorPChainBalance ¶
func (d *PublicDeployer) IncreaseValidatorPChainBalance( validationID ids.ID, balance uint64, ) error
IncreaseValidatorPChainBalance increases a validator's balance on P-chain
func (*PublicDeployer) RegisterL1Validator ¶
func (d *PublicDeployer) RegisterL1Validator( balance uint64, blsInfo signer.ProofOfPossession, message []byte, ) (ids.ID, ids.ID, error)
RegisterL1Validator registers a validator on the P-Chain for an L1 subnet
func (*PublicDeployer) RemoveValidator ¶
func (d *PublicDeployer) RemoveValidator( controlKeys []string, subnetAuthKeysStrs []string, subnetID ids.ID, nodeID ids.NodeID, ) (bool, *txs.Tx, []string, error)
removes a subnet validator from the given subnet - verifies that the wallet is one of the subnet auth keys (so as to sign the AddSubnetValidator tx) - if operation is multisig (len(subnetAuthKeysStrs) > 1):
- creates a remove subnet validator tx
- sets the change output owner to be a wallet address (if not, it may go to any other subnet auth address)
- signs the tx with the wallet as the owner of fee outputs and a possible subnet auth key
- if partially signed, returns the tx so that it can later on be signed by the rest of the subnet auth keys
- if fully signed, issues it
type Publisher ¶
type Publisher interface {
Publish(r *git.Repository, subnetName, vmName string, subnetYAML []byte, vmYAML []byte) error
GetRepo() (*git.Repository, error)
}
func NewPublisher ¶
type WarpSpec ¶
type WarpSpec struct {
SkipWarpDeploy bool
SkipRelayerDeploy bool
WarpVersion string
RelayerVersion string
RelayerBinPath string
RelayerLogLevel string
MessengerContractAddressPath string
MessengerDeployerAddressPath string
MessengerDeployerTxPath string
FundedAddress string
RegistryBydecodePath string
}
WarpSpec contains configuration for Warp deployments