Skip to content

Concordium/concordium-smart-contract-tools

Concordium Smart Contract Tools

This repository contains tools to support smart contracts on and off-chain.

Contributor Covenant

  • cargo-concordium which is a small tool for developing smart contracts. It uses the API exposed in wasm-chain-integration to execute smart contracts directly and can initialize and update smart contracts, in a desired state. See the --help option of the tool for details on how to invoke it. It can also be used to build contracts embedded with schemas (see section about contract schemas).
  • vscode-smart-contracts A VS Code extension providing snippets and the functionality of cargo-concordium as commands inside the editor.

Contributing

This repository's CI automatically checks formatting and common problems in rust. Changes to any of the packages must be such that

  • cargo clippy --all produces no warnings
  • rust fmt makes no changes.

Everything in this repository should build with stable rust at the moment (at least version 1.44 and up), however the fmt tool must be from a nightly release since some of the configuration options are not stable. One way to run the fmt tool is

 cargo +nightly-2022-06-09 fmt

(the exact version used by the CI can be found in .github/workflows/ci.yaml file). You will need to have a recent enough nightly version installed, which can be done via

rustup toolchain install nightly-2022-06-09

or similar, using the rustup tool. See the documentation of the tool for more details.

In order to contribute you should make a merge request and not push directly to master.