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 }