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
128 lines
3.2 KiB
Go
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)
|
|
}
|