From 599ca95bf22882f8d1bd281ca8b5dcf3e0ad4f01 Mon Sep 17 00:00:00 2001 From: Alejandro Date: Wed, 28 Feb 2024 13:43:09 -0300 Subject: [PATCH] Add sig list task --- packages/ethernaut-signer/src/tasks/list.js | 18 +++++++++++ .../ethernaut-signer/test/tasks/list.test.js | 31 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 packages/ethernaut-signer/src/tasks/list.js create mode 100644 packages/ethernaut-signer/test/tasks/list.test.js diff --git a/packages/ethernaut-signer/src/tasks/list.js b/packages/ethernaut-signer/src/tasks/list.js new file mode 100644 index 00000000..a6595e2b --- /dev/null +++ b/packages/ethernaut-signer/src/tasks/list.js @@ -0,0 +1,18 @@ +const output = require('common/src/output') +const storage = require('../internal/storage') + +require('../scopes/sig') + .task('list', 'Prints all signers') + .setAction(async () => { + try { + const signers = storage.readSigners() + const strs = [] + Object.entries(signers).forEach(([name, signer]) => { + if (name === 'activeSigner') return + strs.push(`- ${name} (${signer.address})`) + }) + output.resultBox(strs.join('\n')) + } catch (err) { + return output.errorBox(err) + } + }) diff --git a/packages/ethernaut-signer/test/tasks/list.test.js b/packages/ethernaut-signer/test/tasks/list.test.js new file mode 100644 index 00000000..df28297d --- /dev/null +++ b/packages/ethernaut-signer/test/tasks/list.test.js @@ -0,0 +1,31 @@ +const { Terminal } = require('common/src/terminal') +const storage = require('../../src/internal/storage') + +describe('list', function () { + const terminal = new Terminal() + + before('add some signers', async function () { + const signers = storage.readSigners() + if (!('test__3' in signers)) signers.test__3 = { address: 'poop1' } + if (!('test__4' in signers)) signers.test__4 = { address: 'poop2' } + storage.storeSigners(signers) + }) + + after('remove signers', async function () { + const signers = storage.readSigners() + if ('test__3' in signers) delete signers.test__3 + if ('test__4' in signers) delete signers.test__4 + storage.storeSigners(signers) + }) + + describe('when calling list', function () { + before('call', async function () { + await terminal.run('npx hardhat sig list') + }) + + it('prints the signers', async function () { + terminal.has('- test__3 (poop1)') + terminal.has('- test__4 (poop2)') + }) + }) +})