mukan-ignite/ignite/pkg/chaincmd/in-place-testnet.go
Mukan Erkin Törük 26b204bd04
Some checks are pending
Docs Deploy / build_and_deploy (push) Waiting to run
Generate Docs / cli (push) Waiting to run
Generate Config Doc / cli (push) Waiting to run
Go formatting / go-formatting (push) Waiting to run
Check links / markdown-link-check (push) Waiting to run
Integration / pre-test (push) Waiting to run
Integration / test on (push) Blocked by required conditions
Integration / status (push) Blocked by required conditions
Lint / Lint Go code (push) Waiting to run
Test / test (ubuntu-latest) (push) Waiting to run
feat: fork Ignite CLI v29 as Mukan Ignite — remove cosmos-sdk restrictions
2026-05-11 03:31:37 +03:00

128 lines
3.2 KiB
Go

package chaincmd
import (
"github.com/ignite/cli/v29/ignite/pkg/cmdrunner/step"
)
type InPlaceOption func([]string) []string
func InPlaceWithPrvKey(prvKey string) InPlaceOption {
return func(s []string) []string {
if len(prvKey) > 0 {
return append(s, optionValidatorPrivateKey, prvKey)
}
return s
}
}
func InPlaceWithAccountToFund(accounts string) InPlaceOption {
return func(s []string) []string {
if len(accounts) > 0 {
return append(s, optionAccountToFund, accounts)
}
return s
}
}
func InPlaceWithSkipConfirmation() InPlaceOption {
return func(s []string) []string {
return append(s, optionSkipConfirmation)
}
}
// TestnetInPlaceCommand return command to start testnet in-place.
func (c ChainCmd) TestnetInPlaceCommand(newChainID, newOperatorAddress string, options ...InPlaceOption) step.Option {
command := []string{
commandTestnetInPlace,
newChainID,
newOperatorAddress,
}
// Apply the options provided by the user
for _, apply := range options {
command = apply(command)
}
return c.daemonCommand(command)
}
// Options for testnet multi node.
type MultiNodeOption func([]string) []string
// MultiNodeWithChainID returns a MultiNodeOption that appends the chainID option
// to the provided slice of strings.
func MultiNodeWithChainID(chainID string) MultiNodeOption {
return func(s []string) []string {
if len(chainID) > 0 {
return append(s, optionChainID, chainID)
}
return s
}
}
// MultiNodeWithDirOutput returns a MultiNodeOption that appends the output directory option
// to the provided slice of strings.
func MultiNodeWithDirOutput(dirOutput string) MultiNodeOption {
return func(s []string) []string {
if len(dirOutput) > 0 {
return append(s, optionOutPutDir, dirOutput)
}
return s
}
}
// MultiNodeWithNumValidator returns a MultiNodeOption that appends the number of validators option
// to the provided slice of strings.
func MultiNodeWithNumValidator(numVal string) MultiNodeOption {
return func(s []string) []string {
if len(numVal) > 0 {
return append(s, optionNumValidator, numVal)
}
return s
}
}
// MultiNodeWithValidatorsStakeAmount returns a MultiNodeOption that appends the stake amounts option
// to the provided slice of strings.
func MultiNodeWithValidatorsStakeAmount(satkeAmounts string) MultiNodeOption {
return func(s []string) []string {
if len(satkeAmounts) > 0 {
return append(s, optionAmountStakes, satkeAmounts)
}
return s
}
}
// MultiNodeDirPrefix returns a MultiNodeOption that appends the node directory prefix option
// to the provided slice of strings.
func MultiNodeDirPrefix(nodeDirPrefix string) MultiNodeOption {
return func(s []string) []string {
if len(nodeDirPrefix) > 0 {
return append(s, optionNodeDirPrefix, nodeDirPrefix)
}
return s
}
}
func MultiNodePorts(ports string) MultiNodeOption {
return func(s []string) []string {
if len(ports) > 0 {
return append(s, optionPorts, ports)
}
return s
}
}
// TestnetMultiNodeCommand return command to start testnet multinode.
func (c ChainCmd) TestnetMultiNodeCommand(options ...MultiNodeOption) step.Option {
command := []string{
commandTestnetMultiNode,
}
// Apply the options provided by the user
for _, apply := range options {
command = apply(command)
}
return c.daemonCommand(command)
}