GithubHelp home page GithubHelp logo

liyuechun / cargo-contract Goto Github PK

View Code? Open in Web Editor NEW

This project forked from use-ink/cargo-contract

0.0 2.0 0.0 1.41 MB

Setup and deployment tool for developing Wasm based smart contracts via ink!

License: GNU General Public License v3.0

Rust 100.00%

cargo-contract's Introduction

cargo-contract

CI Status Latest Release stack-exchange

squink, the ink! mascotcargo-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:

  • Find answers to your questions by joining our Stack Exchange community
  • ink! ‒ The main ink! repository with smart contract examples
  • Contracts UI ‒ Frontend for contract deployment and interaction
  • Substrate Contracts Node ‒ Simple Substrate blockchain which includes smart contract functionality

Installation

  • Step 1: rustup component add rust-src.

  • Step 2: Install binaryen in a version >= 99:

    There's only an old version in your distributions package manager? Just use a binary release.

  • Step 3: Install dylint

    • (MacOS) brew install openssl
    • cargo install cargo-dylint dylint-link.
  • Step 4: cargo install --force --locked cargo-contract.

You can always update the cargo-contract binary to the latest version by running the Step 4.

Installation using Docker Image

If you prefer to use Docker instead we have a Docker image available on the Docker Hub:

# Pull the latest stable image.
docker pull paritytech/contracts-ci-linux:production

# Create a new contract in your current directory.
docker run --rm -it -v $(pwd):/sources paritytech/contracts-ci-linux:production \
  cargo +nightly contract new --target-dir /sources my_contract

# Build the contract. This will create the contract file under
# `my_contract/target/ink/my_contract.contract`.
docker run --rm -it -v $(pwd):/sources paritytech/contracts-ci-linux:production \
  cargo +nightly contract build --manifest-path=/sources/my_contract/Cargo.toml

If you want to reproduce other steps of CI process you can use the following guide.

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.

cargo contract upload

Upload a contract to a pallet-contracts enabled chain. See extrinsics.

cargo contract instantiate

Create an instance of a contract on chain. See extrinsics.

cargo contract call

Invoke a message on an existing contract on chain. See extrinsics.

cargo contract decode

Decodes a contracts input or output data.

This can be either an event, an invocation of a contract message, or an invocation of a contract constructor.

The argument has to be given as hex-encoding, starting with 0x.

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.

cargo-contract's People

Contributors

agryaznov avatar ascjones avatar athei avatar austinabell avatar chiefbiiko avatar cmichi avatar dependabot[bot] avatar fbielejec avatar fky2015 avatar flyq avatar forgetso avatar gilescope avatar h4nsu avatar h4x3rotab avatar hcastano avatar honeywest avatar koushiro avatar nuke-web3 avatar pepyakin avatar rcny avatar robbepop avatar satyamakgec avatar sergejparity avatar shawntabrizi avatar statictype avatar stefie avatar trace-andreason avatar tripleight avatar xermicus avatar xgreenx avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.