From 0ce3cbb29a2a05779ed30439a4995cf52e4fd9e3 Mon Sep 17 00:00:00 2001 From: Alejandro Date: Sat, 16 Mar 2024 21:16:55 -0500 Subject: [PATCH] Do not exit interactive mode when no confirm --- packages/ethernaut-interact/src/internal/connect-signer.js | 3 ++- packages/ethernaut-interact/src/internal/interact.js | 2 ++ packages/ethernaut-interact/src/internal/warn-prompt.js | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/ethernaut-interact/src/internal/connect-signer.js b/packages/ethernaut-interact/src/internal/connect-signer.js index 32a702c7..b5fea3f0 100644 --- a/packages/ethernaut-interact/src/internal/connect-signer.js +++ b/packages/ethernaut-interact/src/internal/connect-signer.js @@ -24,9 +24,10 @@ module.exports = async function connectSigner(noConfirm) { ) if (balance <= 0 && !noConfirm) { - await warnWithPrompt( + const response = await warnWithPrompt( 'WARNING! Signer balance is 0. You may not be able to send transactions.', ) + if (response === false) return } return signer diff --git a/packages/ethernaut-interact/src/internal/interact.js b/packages/ethernaut-interact/src/internal/interact.js index 4372c47e..0d2ce98b 100644 --- a/packages/ethernaut-interact/src/internal/interact.js +++ b/packages/ethernaut-interact/src/internal/interact.js @@ -77,6 +77,8 @@ module.exports = async function interact({ return await executeRead(contract, sig, params) } else { const signer = await connectSigner(noConfirm) + if (!signer) return + contract = contract.connect(signer) return await executeWrite( diff --git a/packages/ethernaut-interact/src/internal/warn-prompt.js b/packages/ethernaut-interact/src/internal/warn-prompt.js index 0f85f7bc..f4923900 100644 --- a/packages/ethernaut-interact/src/internal/warn-prompt.js +++ b/packages/ethernaut-interact/src/internal/warn-prompt.js @@ -7,5 +7,6 @@ module.exports = async function warnWithPrompt(message) { type: 'confirm', message: 'Continue anyway?', }) - if (!response) process.exit(0) + if (response === undefined) process.exit(0) + return response }