GithubHelp home page GithubHelp logo

mingderwang / cosmwasm-examples Goto Github PK

View Code? Open in Web Editor NEW

This project forked from deus-labs/cw-contracts

0.0 2.0 0.0 2.07 MB

Example contracts for using cosmwasm

License: Apache License 2.0

Rust 99.18% Shell 0.82%

cosmwasm-examples's Introduction

Cosmwasm Examples

CircleCI

This repo is a collection of simple contracts built with the cosmwasm framework. Smart contracts here are for only demonstration purposes, not production ready. Production grade smart contracts are collected under cosmwasm-plus.

This repo's organization is relatively simple. The top-level directory is just a placeholder and has no real code. And we use workspaces to add multiple contracts below. This allows us to compile all contracts with one command.

Usage:

The following contracts are available for use. You can view the source code under src and a precompiled wasm ready for deployment under contract.wasm. Take a look here:

  • escrow - A basic escrow with timeout and partial release
  • erc20 - Basic implementation the erc20 interface for CosmWasm, as a base for token designers

Development

Starting a contract

If you want to add a contract, first fork this repo and create a branch for your PR. I suggest setting it up via cosmwasm-template:

cargo generate --git https://github.com/confio/cosmwasm-template.git --name FOO

Then update the README.md to reflect your actual contract (just read the README.md in the autogenerated template - it explains a lot).

Preparing for merge

Before you merge the code, make sure it builds and passes all tests, both in the package, and when calling it from the root packages cargo wasm && cargo test. This should show your package is covered by the CI.

There is also quite some useful information in Development.md and Publishing.md in the newly generated contract.

You should also prepare a compiled contract.wasm before each merge to master. This is not enforced by the CI (a full build each commit), but should be tested on merge. See rust-optimizer for an explanation of how to make a deterministic build.

rm -rf artifacts

docker run --rm -v "$(pwd)":/code \
  --mount type=volume,source="$(basename "$(pwd)")_cache",target=/code/target \
  --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \
  cosmwasm/rust-optimizer:0.10.1

# verify output - these should be the same
sha256sum artifacts/*.wasm
cat artifacts/checksums.txt

If the sha256 hash changes without any code changes, even when compiling on different machines, or removing those cache volumes, then please submit an issue on rust-optimizer.

Once you pass these checks, please open a PR on this repo.

cosmwasm-examples's People

Contributors

anilcse avatar clevinson avatar ethanfrey avatar hxrts avatar levackt avatar maurolacy avatar orkunkl avatar tac0turtle avatar webmaster128 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.