Ackee Blockchain Tools for Solidity (Wake)Tools for Solidity is an extension for Visual Studio Code, powered by Wake, that offers most of the language server features and displays real-time results of vulnerability detectors and compiler in custom UI. Different graph types can be generated to better visualize the relations in the code. Features:
Supported graph types:
DependenciesThe Tools for Solidity extension uses the PyPi package eth-wake which requires Python 3.7 or higher. Python 3.12 is experimentally supported. Rosetta is required to be enabled on Apple Silicon (M1, M2 & M3) Macs. To display the generated graphs, Graphviz (DOT) extension must be installed e.g. Graphviz Preview. InstallationThe package eth-wake is installed Alternatively, it can be installed
FeaturesDetectionsVulnerability detections from Wake are shown in our Detections UI with customizable grouping by path, impact, confidence or detector, and filtering by impact and confidence. Go to definitionGo to implementationFind implementations of an unimplemented function or modifier. Find referencesCode lensNumber of references is shown above each declaration. Type hierarchyAlso works for virtual functions. Document linksDocument symbolsHoverIncludes links to documentation for OpenZeppelin contracts. Control flow graphsInheritance graphsDiagnosticsTogether with compiler errors, diagnostics also include results from Wake vulnerability detectors. Detections and compiler warnings may be ignored by adding a comment in one of the following formats:
All comment types may be followed by a list of detector names and compiler warning codes separated by commas. Whitespace is ignored. For example:
Compiler errors cannot be ignored. If no detectors or warning codes are specified, all diagnostics are ignored (or re-enabled in case of Supported commands
Force recompile the opened project/files.
Force rerun Wake vulnerability and issue detectors on the opened project/files.
Generate an inheritance graph for the whole project.
Generate an imports graph for the whole project.
Automatically configure the compiler remappings in a Foundry project. Known Issues
The extension currently does not handle changes external to VS Code. This especially means that files installed into
It is always recommended to open a project as a folder (
The extension relies on the AcknowledgementsWe used juanfranblanco/vscode-solidity as a base of our Solidity grammar. |