Skip to content

Commit 7a7bb05

Browse files
authored
Merge pull request #1913 from onflow/cf/fix-contract-prompt
Fix config contract prompt forcing alias
2 parents 257acb3 + d844dcc commit 7a7bb05

1 file changed

Lines changed: 9 additions & 24 deletions

File tree

internal/prompt/prompt.go

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -207,10 +207,13 @@ func secureNetworkKeyPrompt() string {
207207
return networkKey
208208
}
209209

210-
func addressPrompt(label, errorMessage string) string {
210+
func addressPrompt(label, errorMessage string, allowEmpty bool) string {
211211
addressPrompt := promptui.Prompt{
212212
Label: label,
213213
Validate: func(s string) error {
214+
if allowEmpty && s == "" {
215+
return nil
216+
}
214217
if flow.HexToAddress(s) == flow.EmptyAddress {
215218
return errors.New(errorMessage)
216219
}
@@ -227,25 +230,7 @@ func addressPrompt(label, errorMessage string) string {
227230
}
228231

229232
func AddressPromptOrEmpty(label, errorMessage string) string {
230-
addressPrompt := promptui.Prompt{
231-
Label: label,
232-
Validate: func(s string) error {
233-
if s == "" {
234-
return nil
235-
}
236-
if flow.HexToAddress(s) == flow.EmptyAddress {
237-
return errors.New(errorMessage)
238-
}
239-
return nil
240-
},
241-
}
242-
243-
address, err := addressPrompt.Run()
244-
if err == promptui.ErrInterrupt {
245-
os.Exit(-1)
246-
}
247-
248-
return address
233+
return addressPrompt(label, errorMessage, true)
249234
}
250235

251236
func contractPrompt(contractNames []string) string {
@@ -311,7 +296,7 @@ func NewAccountPrompt() *AccountData {
311296
var err error
312297
account := &AccountData{
313298
Name: NamePrompt(),
314-
Address: addressPrompt("Enter address", "invalid address"),
299+
Address: addressPrompt("Enter address", "invalid address", false),
315300
}
316301

317302
sigAlgoPrompt := promptui.Select{
@@ -396,9 +381,9 @@ func NewContractPrompt() *ContractData {
396381
os.Exit(-1)
397382
}
398383

399-
contract.Emulator = addressPrompt("Enter emulator alias, if exists", "invalid alias address")
400-
contract.Testnet = addressPrompt("Enter testnet alias, if exists", "invalid testnet address")
401-
contract.Mainnet = addressPrompt("Enter mainnet alias, if exists", "invalid mainnet address")
384+
contract.Emulator = AddressPromptOrEmpty("Enter emulator alias, if exists", "invalid alias address")
385+
contract.Testnet = AddressPromptOrEmpty("Enter testnet alias, if exists", "invalid testnet address")
386+
contract.Mainnet = AddressPromptOrEmpty("Enter mainnet alias, if exists", "invalid mainnet address")
402387

403388
return contract
404389
}

0 commit comments

Comments
 (0)