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.
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.
Install Erwin from npm
Install the npm package and prepare to invoke its command-line executable.
Before you start
- Node.js/npm environment
Steps
Install the package with the command below.
npm install @__haoyang__/erwinAdd
node_modules/.binto PATH.Invoke the
erwinexecutable.
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.
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
Run the command below with the desired generation options.
npx erwin generateUse
-mto select a feature class such astype,locorscope, and-maxto set an instantiation upper limit.Set
--targetto the intended Solidity grammar accent, such assolang.Use
-oif 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.
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

