chainutils

package
v2.2.1 Latest Latest
Warning

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

Go to latest
Published: Feb 6, 2026 License: MIT Imports: 37 Imported by: 0

Documentation

Index

Constants

View Source
const (
	P2pPortName = "p2p"
	P2pPort     = 26656

	RpcPortName = "rpc"
	RpcPort     = 26657

	LcdPortName = "lcd"
	LcdPort     = 1317

	GrpcPortName = "grpc"
	GrpcPort     = 9090

	PrometheusPortName = "prometheus"
	PrometheusPort     = 26660

	PrivValPortName = "privvalidator"
	PrivValPort     = 26659

	GenesisFilename = "genesis.json"
)

Variables

This section is empty.

Functions

func AccountAddressFromValidatorAddress

func AccountAddressFromValidatorAddress(valAddr, valPrefix, accPrefix string) (string, error)

func ExtractChainIdFromGenesis

func ExtractChainIdFromGenesis(genesis string) (string, error)

func RetrieveGenesisFromNodeRPC

func RetrieveGenesisFromNodeRPC(ctx context.Context, url string, sha *string) (string, error)

func RetrieveGenesisFromURL

func RetrieveGenesisFromURL(ctx context.Context, url string, sha *string) (string, error)

Types

type Account

type Account struct {
	Mnemonic         string
	Address          string
	ValidatorAddress string
}

func AccountFromMnemonic

func AccountFromMnemonic(mnemonic, accPrefix, valPrefix, hdPath string) (*Account, error)

func CreateAccount

func CreateAccount(accPrefix, valPrefix, hdPath string) (*Account, error)

type AccountAssets

type AccountAssets struct {
	Address string
	Assets  []string
}

type AdditionalVolume

type AdditionalVolume struct {
	Name    string // Volume name
	PVCName string // Full PVC name (nodeName-volumeName)
	Path    string // Mount path
}

type App

type App struct {
	NodeSelector map[string]string
	Affinity     *corev1.Affinity
	// contains filtered or unexported fields
}

func NewApp

func NewApp(client *kubernetes.Clientset, scheme *runtime.Scheme, cfg *rest.Config,
	owner metav1.Object, sdkVersion appsv1.SdkVersion, sdkOpts []sdkcmd.Option, options ...Option) (*App, error)

func (*App) BuildInitPod

func (a *App) BuildInitPod(pvc *corev1.PersistentVolumeClaim, additionalVolumes []AdditionalVolume, initCommands ...*InitCommand) (*corev1.Pod, error)

BuildInitPod constructs the init pod spec without creating it. This is useful for inspecting or modifying the pod before creation.

func (*App) CreateInitPod

func (a *App) CreateInitPod(ctx context.Context, pvc *corev1.PersistentVolumeClaim, timeout time.Duration, additionalVolumes []AdditionalVolume, initCommands ...*InitCommand) error

CreateInitPod creates the init pod without waiting for completion. The caller is responsible for monitoring the pod status and cleaning up. The timeout is enforced via activeDeadlineSeconds on the pod spec.

func (*App) CreateValidator

func (a *App) CreateValidator(
	ctx context.Context,
	pubKey string,
	account *Account,
	nodeInfo *NodeInfo,
	params *Params,
	node string,
) error

func (*App) GenerateConfigFiles

func (a *App) GenerateConfigFiles(ctx context.Context) (map[string]string, error)

func (*App) InitPvcData

func (a *App) InitPvcData(ctx context.Context, pvc *corev1.PersistentVolumeClaim, timeout time.Duration, additionalVolumes []AdditionalVolume, initCommands ...*InitCommand) error

InitPvcData creates an init pod and blocks until it completes or times out. Deprecated: This method blocks the reconciliation loop. Use CreateInitPod with status monitoring in the controller instead. This method is kept for backwards compatibility but will delete any existing init pod, losing progress on restart.

func (*App) LoadGenesisFromConfigMap

func (a *App) LoadGenesisFromConfigMap(ctx context.Context, configMapName string) (string, error)

func (*App) NewGenesis

func (a *App) NewGenesis(ctx context.Context,
	privkeySecret string,
	account *Account,
	nodeInfo *NodeInfo,
	params *Params,
	initCommands ...*InitCommand,
) (string, error)

type Client

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

func NewClient

func NewClient(host string) (*Client, error)

func (*Client) Close

func (c *Client) Close() error

func (*Client) GetAbciInfo

func (c *Client) GetAbciInfo(ctx context.Context) (abci.ResponseInfo, error)

func (*Client) GetBlockHash

func (c *Client) GetBlockHash(ctx context.Context, height int64) (string, error)

func (*Client) GetLatestBlock

func (c *Client) GetLatestBlock(ctx context.Context) (*tmtypes.Block, error)

func (*Client) GetNextUpgrade

func (c *Client) GetNextUpgrade(ctx context.Context) (*upgradetypes.Plan, error)

func (*Client) GetNodeStatus

func (c *Client) GetNodeStatus(ctx context.Context) (*coretypes.ResultStatus, error)

func (*Client) GetValidators

func (c *Client) GetValidators(ctx context.Context) ([]stakingTypes.Validator, error)

func (*Client) IsNodeSyncing

func (c *Client) IsNodeSyncing(ctx context.Context) (bool, error)

func (*Client) NodeInfo

func (c *Client) NodeInfo(ctx context.Context) (*p2p.DefaultNodeInfo, error)

func (*Client) QueryValidator

func (c *Client) QueryValidator(ctx context.Context, address string) (*stakingTypes.Validator, error)

type InitCommand

type InitCommand struct {
	Image     string
	Command   []string
	Args      []string
	Resources corev1.ResourceRequirements
	Env       []corev1.EnvVar
}

type NodeInfo

type NodeInfo struct {
	Moniker  string
	Details  *string
	Website  *string
	Identity *string
}

type Option

type Option func(*App)

func WithAffinityConfig

func WithAffinityConfig(affinity *corev1.Affinity) Option

func WithBinary

func WithBinary(name string) Option

func WithImage

func WithImage(image string) Option

func WithImagePullPolicy

func WithImagePullPolicy(p corev1.PullPolicy) Option

func WithNodeSelector

func WithNodeSelector(selector map[string]string) Option

func WithPriorityClass

func WithPriorityClass(name string) Option

type Params

type Params struct {
	ChainID                 string
	Assets                  []string
	StakeAmount             string
	Accounts                []AccountAssets
	UnbondingTime           string
	VotingPeriod            string
	ExpeditedVotingPeriod   string
	CommissionMaxChangeRate string
	CommissionMaxRate       string
	CommissionRate          string
	MinSelfDelegation       *string
	GasPrices               string
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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