2 个不稳定版本

0.7.0-alpha12022年2月23日
0.6.1 2022年2月16日

#6 in #tgrade

Apache-2.0

41KB
600

CosmWasm Starter Pack

这是一个用于在所有启用它的链上的 Cosmos SDK 模块内运行智能合约的 Rust 智能合约模板。为了更好地理解框架,请阅读 cosmwasm 仓库 中的概述,并深入了解 cosmwasm 文档。这假设您已经理解了理论,只想开始编码。

从模板创建新仓库

假设您已安装最新版本的 rust 和 cargo (v1.51.0+)(通过 rustup),然后以下步骤将为您创建一个新的仓库以开始合约

首先,安装 cargo-generate。除非您之前已安装,否则现在运行此命令

cargo install cargo-generate --features vendored-openssl

现在,使用它来创建您的合约。转到您想要放置合约的文件夹,并运行

0.14(最新版)

cargo generate --git https://github.com/CosmWasm/cosmwasm-template.git --name PROJECT_NAME

0.13

cargo generate --git https://github.com/CosmWasm/cosmwasm-template.git --branch 0.13 --name PROJECT_NAME

0.12

cargo generate --git https://github.com/CosmWasm/cosmwasm-template.git --branch 0.12 --name PROJECT_NAME

0.11

cargo generate --git https://github.com/CosmWasm/cosmwasm-template.git --branch 0.11 --name PROJECT_NAME

0.10

cargo generate --git https://github.com/CosmWasm/cosmwasm-template.git --branch 0.10 --name PROJECT_NAME

0.9

cargo generate --git https://github.com/CosmWasm/cosmwasm-template.git --branch 0.9 --name PROJECT_NAME

0.8

cargo generate --git https://github.com/CosmWasm/cosmwasm-template.git --branch 0.8 --name PROJECT_NAME

现在,您将有一个名为 PROJECT_NAME 的新文件夹(我希望您将其更改为其他名称),其中包含一个简单的工作合约和构建系统,您可以对其进行自定义。

创建仓库

生成后,您将有一个初始化的本地 git 仓库,但没有提交,也没有远程仓库。转到服务器(例如 github)并创建一个新的上游仓库(称为 YOUR-GIT-URL 以下)。然后运行以下命令

# this is needed to create a valid Cargo.lock file (see below)
cargo check
git checkout -b master # in case you generate from non-master
git add .
git commit -m 'Initial Commit'
git remote add origin YOUR-GIT-URL
git push -u origin master

CI 支持

在生成的项目中,我们提供了 GitHub ActionsCircle CI 的模板配置,因此您可以直接开始使用 CI。

注意一点,CI 构建时会使用带有 --locked 选项的 cargo 命令,以确保它使用与您本地完全相同的版本。这也意味着您必须有一个最新的 Cargo.lock 文件,该文件不是自动生成的。第一次设置项目(或在添加任何依赖后),您应该确保 Cargo.lock 文件已更新,以便 CI 能够正确测试。这可以通过简单地运行 cargo checkcargo unit-test 来完成。

使用您的项目

一旦您有了自己的仓库,您应该检出 Developing 来了解如何运行测试和开发代码。或者通过 在线教程 来更好地了解开发过程。

Publishing 包含有关如何将合约发布到全球的信息,一旦您准备在运行中的区块链上部署它。而 Importing 包含有关引入其他已发布合约或crate的信息。

请将此 README 文件替换为有关您特定项目的信息。您可以将 Developing.mdPublishing.md 文件作为有用的参考,但在 README 中请设置一些适当的描述。

依赖项

~3.5–5.5MB
~117K SLoC