1.1.11 • Published 2 months ago

ethernaut-ui v1.1.11

Weekly downloads
-
License
ISC
Repository
-
Last release
2 months ago

ethernaut-ui

Intuitive navigation and interactive param collection for hardhat tasks

Navigation

What

Interactivity

This plugin traverses all hardhat tasks found in the hardhat runtime environment and makes them interactive.

What is "interactive"? Interactive means that enquirer prompts will be used to collect missing required parameters. E.g. if the bytes task is ran without its value parameter, the following prompt will be presented:

? Enter value (The value to convert): ›

Things to know:

  • Interactivity can be disabled with the global --non-interactive flag
  • Optional parameters and flags are not collected
  • There is a bug in hardhat where giving a default parameter to a non-optional parameter makes it optional. The solution used is to set it back to optional right after creation. See the create task in ethernaut-wallet.
  • You can define custom prompts for parameters (see ethernaut-interact-ui)
  • You can also define suggestions for parameters. Default values are suggested otherwise.
  • The plugin also adds a pre-parser that allows tasks to be called without a scope. E.g. ethernaut unit is converted to ethernaut util unit

Navigation

Additionally, when no task is specified, the plugin displays enquirer autocomplete prompts to navigate all available tasks and scopes.

Navigation

Installation

npm install ethernaut-ui

Import the plugin in your hardhat.config.js:

require('ethernaut-ui')

Or if you are using TypeScript, in your hardhat.config.ts:

import 'ethernaut-ui'

Required plugins

This plugin does not require any other plugins.

Tasks

This plugin adds the following tasks:

  • help Used to enter navigation when no tasks are passed
  • navigate Navigates tasks and scopes with enquirer

Environment extensions

This plugin adds the following fields to the hre:

hre.ethernaut.ui = {
  nonInteractive: false
}

Configuration

This plugin extends the HardhatUserConfig's ProjectPathsUserConfig object with the following fields:

config.ethernaut.ui = {
  exclude: [
    'some-task',
    'some-scope/another-task',
    'another-scope/*'
  ]
}

Usage

As long as the plugin is required in the project's hardhat config, nothing else is required.

Navigation will be automatically triggered when entering any scope or the root scope, and parameters will be collected whenever they are not provided.

1.1.11

2 months ago

1.1.0

3 months ago

1.1.4

3 months ago

1.1.3

3 months ago

1.0.15

3 months ago

1.0.14

3 months ago

1.0.13

3 months ago

1.0.2

3 months ago

1.0.1

3 months ago

1.0.3

3 months ago

1.0.0-alpha.2

3 months ago

1.0.0-alpha.1

3 months ago