Setting up your development environment
Libraries / CLIs
Throughout the guide, we'll be using Solidity and Hardhat. Thankfully, we only require having NodeJS installed globally. Everything else will be happening within a Node package, and as a result the dependencies will be isolated there.
We recommend using nvm to install and manage node versions as you may encounter tooling that requires having versions other than the one you have installed.
Additional Tooling
- Slither (video guide): A static analyzer which will find low-hanging fruit issues in your code.
- Echidna (tutorial): An Ethereum smart contract fuzzer, used for uncovering edge cases.
- prettier-solidity (Example Configuration): A Prettier plugin for automatically formatting your Solidity code.
Plugins for editors
Syntax highlighting is provided in the following plugins per editor:
In addition, there's a few useful VS Code plugins:
As of Solidity v0.8.11 you can configure the Solidity Language Server to report errors and warnings. However, this preview version of the Language Server is still a work in progress and features such as automatic code completion have not yet been added.