OpenViSTAI · Agents · Blockchain · Crypto
Menu
Developer Tools

Erwin

Erwin is a TypeScript command-line tool that generates randomized Solidity programs, including through bounded exhaustive instantiation of types, storage locations and scopes.

Independent OpenViST project profile, based on linked sources.

Erwin — OpenViST project profile in Developer Tools.
OpenViST project illustration. See the linked sources for product details.
Understand the project

Practical overview

When it fits

Use Erwin when you need generated Solidity programs for compiler or static-analyzer testing, particularly when you want to explore selected language-feature combinations rather than generate a single program in one pass.

Who it is for

  • Solidity compiler and static-analyzer developers exploring robustness with generated test inputs.
  • Researchers studying randomized program generation and smart-contract tooling.

Documented uses

  • Generate randomized Solidity programs for test corpora.
  • Vary types, storage locations or scopes through bounded exhaustive instantiation.
  • Route generated inputs through documented compiler or analyzer testing workflows.
Before you choose

Requirements & limits

The public repository identifies the project as GPL-3.0 licensed and documents installation through npm or Git.

  • The generator separates intermediate-representation creation from bounded instantiation of types, locations and scopes.
  • A target option selects the Solidity grammar accent; the README names Solidity, Solang and Solar.
  • The testing workflows require the selected compiler or analyzer and its configuration, such as a compiler path in the documented Solidity example.
  • The project is described in its README as under development.

Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.

Source-based practical guide

Install Erwin from npm

Install the npm package and prepare to invoke its command-line executable.

Before you start

  • Node.js/npm environment

Steps

  1. Install the package with the command below.

    Documented command
    npm install @__haoyang__/erwin
  2. Add node_modules/.bin to PATH.

  3. Invoke the erwin executable.

Expected outcome

The README's documented npm installation path makes Erwin's command-line executable available for invocation.

Guide limitations

  • These steps cover installation and invocation only; generation options and output behavior depend on the chosen command.
Source-based practical guide

Generate bounded-instantiation Solidity test programs

Generate programs using bounded exhaustive instantiation for a selected language-feature class and target grammar.

Before you start

  • Erwin installed from npm or Git
  • Command-line access to Erwin

Steps

  1. Run the command below with the desired generation options.

    Documented command
    npx erwin generate
  2. Use -m to select a feature class such as type, loc or scope, and -max to set an instantiation upper limit.

  3. Set --target to the intended Solidity grammar accent, such as solang.

  4. Use -o if a different output directory is needed.

Expected outcome

Erwin writes generated programs to `generated_programs` by default, or to the directory selected with `-o`.

Guide limitations

  • The project describes itself as under development.
  • Compiler-specific testing workflows require additional tool configuration beyond basic program generation.
Evidence and transparency

Sources & review

Source record details
Source availability
Active
Sources checked
9 October 2026
Original website title
haoyang9804/Erwin · Official homepage title · retained in its source language