/solidity_playground

Primary LanguageJavaScriptCreative Commons Attribution Share Alike 4.0 InternationalCC-BY-SA-4.0

Solidity Playground

CC BY-SA 4.0

Introduction

Learning how to make smart contracts in Solidity.

Contents

Requirements

NPM Dependencies

$ npm install

Optional requirements

1. Node Version Manager

Node Version Manager

The node version is in the .nvmrc file, and an example for automatically use this version of node is:

  1. Open the virtual environment .postactivate script.
  2. Paste at the top nvm use.
  3. Either re-activate the environment or source it using the terminal.

2. Python, Virtualenvwrapper & Poetry for Manticore, MythX & Slither tools

Virtualenvwrapper

Poetry

Solc-select

Manticore

MythX CLI

Slither

Manticore, MythX CLI and Slither are different analysis tools of smart contracts and binaries, and its usage is optional (check their documentation to see how they work). They require Python 3.6 or greater and recommend a Python virtual environment.

An example of how to set up their environment:

  1. Install Python 3.6 or greater.

  2. Install virtualenvwrapper, create a virtual environment (i.e. solidity_playground) and activate it.

  3. Install the requirements (in poetry.toml) via Poetry (or comment out the not desired one).

Manticore requires a global installation of solc (Solidity compiler) that matches the one specified in the contracts. An option can be:

  1. Install solc-select.

  2. Open the virtual environment .postactivate script and add the command solc use <solc_version> (e.g. solc use 0.6.12).

  3. Either re-activate the environment or source it using the terminal.

MythX CLI requires:

  1. Sign up in the platform and copy the API key.

  2. Open the virtual environment .postactivate script and create the MYTHX_API_KEY environment variable (i.e. export MYTHX_API_KEY=<API_KEY>).

  3. Either re-activate the environment or source it using the terminal.

IDE Plugins & Extensions

Visual Studio Code

Solidity

Solidity Visual Developer

Prettier - Code formatter

License

This repository is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

CC BY-SA 4.0