@@ -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
229232func 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
251236func 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