Skip to content

TVM Development Environment - Set up all the core Developer tools and work with TVM blockchains(Everscale, TON, Venom) from a single interface

License

Notifications You must be signed in to change notification settings

everx-labs/everdev

Repository files navigation

EverDev

Everdev is a Node.js package with CLI interface that allows to set up developer environment and develop on TVM compatible blockchains (Everscale, Venom, TON, Gosh, etc).

Get quick help in our telegram channel: Channel on Telegram

NPM package

Use-cases

  • Easily manage(install, update) all the core tools, such as Solidity/C++ Compilers, Evernode-SE
  • Configure networks (including Local Blockchain, Developer Network, Everscale (main) network): add, configure giver contract;
  • Manage keys: add, remove
  • Work with blockchain from CLI

Content table

Installation

Prerequisites

Using NPM

npm i -g everdev

If you see an EACCESS error when you try to install a package globally on Mac or Linux, please see this instruction

Using pre-compiled binaries

You can download precompiled binaries for your platform from the latest release. After download you need to create directory if it does not exists.

For linux/macos:

mkdir -p ~/.everdev/bin

Then unpack everdev from archive into this folder.

For windows:

md $env:HOMEDRIVE$env:HOMEPATH\.everdev\bin

Then move downloaded binary as everdev.exe into this folder.

To make it possible to run everdev from any folder, you need to update the system PATH environment variable.

For linux/macos:

echo 'export PATH=~/.everdev/bin:$PATH' >> ~/.profile && source ~/.profile

For windows run PowerShell and execute this line:

[System.Environment]::SetEnvironmentVariable("PATH", "$env:HOMEDRIVE$env:HOMEPATH\.everdev\bin;$([System.Environment]::GetEnvironmentVariable("PATH", [System.EnvironmentVariableTarget]::User))", [System.EnvironmentVariableTarget]::User)

After trying to run everdev on macos you can see the error: "everdev" cannot be opened because the developer cannot be verified. Open your computer System Preferences > Security & Privacy > Privacy. Here, you should see an option to click "Allow Anyway" next to the "everdev" application in question.

Using docker

Select a base image that provides GLIBC ver. 2.29 or higher if you want to use the Evedev Solidity compiler like ubuntu:20.04:

docker run -it --rm ubuntu:20.04
# apt update &&  apt upgrade -y && apt install -y curl
# curl -L https://github.com/everx-labs/everdev/releases/download/1.3.1/everdev-linux.tgz  --output everdev-linux.tgz
# tar xvf everdev-linux.tgz
# mv everdev /usr/local/bin/

Update

npm r -g everdev
npm i -g everdev

Command Line Interface

Components are downloaded and installed automatically for the target platform upon the first request.

General command syntax

everdev <tool> <command> ...args

Some tools (network, signer, contract, js) and commands have short aliases. For example instead of using everdev network list you can use everdev n l and even shorter everdev nl.

Controller for Everscale Solidity compiler.

Controller for sold - Everscale Solidity compiler driver

Controller for Everscale Clang Compiler.

Controller for network management.

Controller for keys management.

Controller for working with smart contracts.

Controller for Local Node emulator.

Controller for DeBot browser.

Controller for TestSuite4 testing framework.

Cookbook

Quick Start

Get started with essential Everscale Development Tools with Quick Start guide.

Create controller

Find out how to create your own controller for EverDev: Create controller.

View controller info

Learn how to view all available controllers information: View controller info.

Troubleshooting

If you encountered any problem try to seek the solution in Troubleshooting Notes. If it didn't help - please, ask in our telegram channel.

EverDev Extensibility

EverDev Environment is an integration point for development tools related to Everscale Blockchain.

There are two kind of software connected to EverDev:

  • Development tools such as a compilers, networks, debuggers and so on.
  • User Interaction services such as an IDE plugins, CLI, GUI applications etc.

Learn more about creating your own controller: Creating Controller