1 个稳定版本
3.2.2 | 2022年1月5日 |
---|---|
3.2.1 |
|
2.0.0 |
|
1.0.0 |
|
#15 in #beacon
34 每月下载次数
用于 loterra
230KB
414 行
CosmWasm Starter Pack
这是一个用于在支持它的所有链上的 Cosmos SDK 模块内运行 Rust 智能合约的模板。为了更好地理解框架,请阅读 cosmwasm 仓库 中的概述,并深入了解 cosmwasm 文档。这假设你已经理解了理论,只是想开始编码。
从模板创建新的仓库
假设你已经安装了最新版本的 rust 和 cargo (v1.47.0+) (通过 rustup),然后以下步骤应该会为你创建一个新的仓库以开始合约
首先,安装 cargo-generate。除非你之前已经安装,否则现在运行以下命令
cargo install cargo-generate --features vendored-openssl
现在,使用它来创建你的新合约。转到你想要放置它的文件夹,并运行
0.13 (最新版本)
cargo generate --git https://github.com/CosmWasm/cosmwasm-template.git --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 Actions 和 Circle CI 的模板配置,所以你可以立即开始使用 CI。
需要注意的是,CI(持续集成)使用cargo
命令时带有--locked
参数,以确保它使用与您本地完全相同的版本。这也意味着您必须有一个最新的Cargo.lock
文件,该文件不是自动生成的。第一次设置项目(或添加任何依赖后),您应该确保Cargo.lock
文件已更新,以便CI可以正确测试。这可以通过简单地运行cargo check
或cargo unit-test
来完成。
使用您的项目
一旦您有了自定义仓库,您应该检出Developing来了解如何运行测试和开发代码。或者通过在线教程来更好地了解如何开发。
Publishing包含有关如何将合约发布到世界的有用信息,一旦您准备在运行的区块链上部署它。而Importing包含有关引入已发布的其他合约或crate的信息。
请将此README文件替换为关于您特定项目的信息。您可以保留Developing.md
和Publishing.md
文件作为有用的参考,但在README中请设置一些适当的描述。
依赖项
~6–8MB
~153K SLoC