Install Prerequisites
In this section, we will set up our machine and install the prerequisites for developing, deploying and interacting with smart contracts on MANTRA Chain.
Last updated
In this section, we will set up our machine and install the prerequisites for developing, deploying and interacting with smart contracts on MANTRA Chain.
Last updated
Go
You can set up Go following the . The latest versions of mantrachaind require go version v1.18+.
Assuming you have never worked with Rust, you will first need to install some tooling.
The standard approach is to use rustup to maintain dependencies and handle updating multiple versions of cargo and rustc, which you will be using.
First, . Once installed, make sure you have the wasm32 target:
Continue running rustup-init.exe, and proceed with the installation.
Optionally:
Install the wasm32 target:
Cargo-generate is a command-line tool used in Rust programming for generating new Rust projects from predefined templates. It allows developers to quickly set up a new project with a specific structure, dependencies, and configuration.
mantrachaind is the backbone of the CosmWasm platform for MANTRA DuKong Chain. The binary is pre-built for both Linux and MacOS clients.
On Linux:
On MacOS:
You should see the following output, or similar, after executing the mantrachaind
command.
If you are on a x86_64 system:
On arm64 (i.e. Apple silicon chips):
jq
is a lightweight and flexible command-line JSON processor. It helps us to slice and filter and map and transform structured JSON data.
Installation will vary depending on your operating system (i.e. Linux, MacOS or Windows).
Linux (Ubuntu / Debian):
MacOS:
Windows:
Git is a free and open-source version control system that allows you to track changes made to code, collaborate with others, and maintain different versions of your project. It's primarily used for source code management, but it can be used to track changes in any set of files.
Linux (Ubuntu / Debian):
MacOS:
Windows:
We will need a good IDE for developing smart contracts with Rust. The following development environments are highly recommended and coupling them with the corresponding Rust plugins will help you learn the syntax, especially if you have no prior experience.
There are other editors out there with varying degrees of Rust support. However, unless you have a strong preference for another editor (e.g., Sublime, Emacs, Vim) , trying one of the two above is recommended, especially if you are new to Rust. Once you are confident in the language, you can always use another editor and customize it to your liking.
First, download and execute rustup-init.exe from or .
If requested, manually download and install Visual C++ Build Tools 2019, from . Make sure "Windows 10 SDK" and "English language pack" are selected.
Download and install , and modify the environment variables to add \<gvim folder> to the PATH.
Download and install . Modify the environment variables to add \<git folder>\bin to PATH.
Turn on Developer Mode (Settings -> Update and Security: For Developers) and enable Device Discovery, to be able to access the Windows 10 server through ssh ().
Docker is essential for setting up and running applications in isolated environments. You can install Docker by following the instructions on the for your respective operating system. If you are a Windows user, make sure to activate the WSL integration in Docker Desktop settings.
You can find all the pre-built binaries on the .
More information can be found in here:
Alternatively, see the '' site for other options.
Go to the official and download the latest version of Git for Windows.
offers great support for Rust, especially when coupled with the extension. This extension makes use of the rust compiler to type-check all your code as you save. This gives the same error messages as the actual compiler would and highlights the errors, but it can be a bit slow to respond (as it runs the compiler). It is a solid option, particularly if you are used to VSCode.
Another option is , Jetbrains’ IDE specifically designed for Rust development. It offers a robust suite of features to streamline the development process, including intelligent code completion, real-time error detection, and powerful refactoring tools. RustRover enhances productivity with its customizable interface, seamless integration with version control systems, and comprehensive debugging capabilities. It is highly recommended, more so, if you are coming from another Jetbrain product (eg. Goland).