cargo-contract 0.14.0

Setup and deployment tool for developing Wasm based smart contracts via ink!
cargo-contract-0.14.0 is not a library.

CI Status Matrix Chat Discord Chat Latest Release

cargo-contract is a CLI tool which helps you develop smart contracts in Parity's ink!.ink! is a Rust eDSL which allows you to write smart contracts for blockchains built on the Substrate framework.

Guided Tutorial for Beginners  •   ink! Documentation Portal

More relevant links:

  • Talk to us on Element or Discord
  • ink! ‒ The main ink! repository with smart contract examples
  • Canvas UI ‒ Frontend for contract deployment and interaction
  • Canvas Node ‒ Simple Substrate blockchain which includes smart contract functionality

Installation

Docker Image

If you'd prefer to use Docker instead we have a Docker image available on the Docker Hub which contains the dependencies needed to build cargo-contract, as well as a pre-built cargo-contract binary which you can just execute.

Usage

You can always use cargo contract help to print information on available commands and their usage.

For each command there is also a --help flag with info on additional parameters, e.g. cargo contract new --help.

cargo contract new my_contract

Creates an initial smart contract with some scaffolding code into a new folder my_contract .

The contract contains the source code for the Flipper contract, which is about the simplest "smart" contract you can build ‒ a bool which gets flipped from true to false through the flip() function.

cargo +nightly contract build

Compiles the contract into optimized WebAssembly bytecode, generates metadata for it, and bundles both together in a <name>.contract file, which you can use for deploying the contract on-chain.

cargo contract build must be run using the nightly toolchain. If you have rustup installed, the simplest way to do so is cargo +nightly contract build.

To avoid having to always add +nightly you can also set nightly as the default toolchain of a directory by executing rustup override set nightly in it.

cargo contract check

Checks that the code builds as WebAssembly. This command does not output any <name>.contract artifact to the target/ directory.

cargo contract test

Runs test suites defined for a smart contract off-chain.

License

The entire code within this repository is licensed under the GPLv3.

Please contact us if you have questions about the licensing of our products.