Maru is a prototype of a lightweight, fast and extensible code analyser for Ethereum smart contracts. It is in the early development stage, and the work will be largerly crowdsourced via Topcoder community. In this challenge you will take care about misc updates and enhancements specified below.
Maru is a NodeJS command-line tool, written in TypeScript. Mocha is used as the test framework.
All to be considered as major:
- Ensure that plugins properly report any exceptions encountered during their execution; i.e. if there is an exception in a Maru analyser module, then an appropriate error message should be shown.
- Add --output (alias -o) command line option to choose between textual (option set to txt) and JSON (option set to json) outputs. The textual output is implemented already, the JSON one should be implemented in this challenge.
- Provide --plugin (alias -p) command line option to execute individual plugin(s), specified by names given as comma-separated value of this argument.
- Update swc-test_cases.js to support the current version of SWC-registry, and work properly for JSON output. Make sure all test cases are executed.
- Parse the SWCs in https://github.com/SmartContractSecurity/SWC-registry/tree/master/entries and output weakness meta data along with the location information.
- Update unit tests.