diff --git a/cmd/init.go b/cmd/init.go index 212f355..8907bb6 100644 --- a/cmd/init.go +++ b/cmd/init.go @@ -92,6 +92,14 @@ func initCommon(args []string) error { return err } + if err := validateRemoteNodeVsBlockChainNodeFlags(initOptions.RemoteNodeURL, initOptions.BlockchainNodeProvider); err != nil { + return err + } + + if err := validateRemoteNodeDeployVsContractAddressFlags(initOptions.RemoteNodeDeploy, initOptions.ContractAddress); err != nil { + return err + } + fmt.Println("initializing new FireFly stack...") if len(args) > 0 { @@ -260,6 +268,20 @@ func validatePrivateTransactionManagerBlockchainConnectorCombination(privateTran return nil } +func validateRemoteNodeVsBlockChainNodeFlags(remoteNodeUrl, blockchainNodePorvider string) error { + if len(remoteNodeUrl) != 0 && blockchainNodePorvider != "geth" { + return errors.New("both flags `remote-node-url` and `blockchain-node` can't be specified") + } + return nil +} + +func validateRemoteNodeDeployVsContractAddressFlags(remoteNodeDeploy bool, contractAddress string) error { + if remoteNodeDeploy && len(contractAddress) != 0 { + return errors.New("both flags `contract-address` and `remote-node-deploy` can't be specified") + } + return nil +} + func validateTokensProvider(input []string, blockchainNodeProviderInput string) error { tokenProviders := make([]fftypes.FFEnum, len(input)) for i, t := range input {