#contract #deployment #cargo #tool #ethereum #ewasm #sewup

bin+lib cargo-sewup

用于初始化SewUp项目并部署ewasm合约的命令行工具

21个发布版本

0.1.14 2022年2月27日
0.1.13 2022年1月31日
0.1.10 2021年12月8日
0.1.9 2021年11月23日
0.0.2 2021年7月30日

#3#ewasm

每月49 次下载

Apache-2.0

36KB
1K SLoC

SewUp

GitHub Workflow Status Generic badge Generic badge Generic badge Generic badge Generic badge

Secondstate EWasm Utility Program,一个库,帮助你使用Rust将Ethereum项目缝合起来,就像在常见的后端开发一样。SewUp是基于Ethereum WebAssembly的区块链Rust合约框架,适用于任何Ethereum WebAssembly区块链。如果你对Rust合约框架有疑问,以及它们之间的区别,你可以查看合约框架的此维基页面。关于在Doc.rs上构建文档的问题,请使用主分支的文档。此外,还有一个维基网站可以帮助你使用SewUp,一旦你遇到问题或困惑,你可以在维基上了解更多。

幻灯片 & 演示

日期 事件 版本 幻灯片 视频 材料
2021/12/03 ParaState黑客松IV 0.1.9 hackthon4 todo应用
2021/11/12 ParaState黑客松III 0.1.7 hackthon3 实用代币
2021/11/3 ParaState黑客松II 0.1.6 hackthon2 record2 材料拼图游戏
2021/10/30 COSCon'21 0.1.4 coscon21
2021/10/26 ParaState黑客松 0.1.4 hackthon1 record1 材料
2021/09/07 版本0.1发布 0.1.0 HelloKVRDBERC-20ERC-721ERC-1155
2021/06/19 Rust聚会(北京) 0.0.1 预发布

用法

sewup及其特性以及sewup-derive添加到Cargo.toml中,然后按照以下设置其他部分,然后你就可以使用SewUp构建合约了。

特性列表(应选择以下之一或一个都不选)

  • kv - 用于将合约编写为具有桶分区键值数据库
  • rdb - 用于将合约编写为关系数据库
  • token - 用于写入ERC-20、ERC-721、ERC-1155代币
  • single-bucket(正在开发中)- 用于无桶分区的存储

此外,我们建议您使用anyhow来处理结果和错误,但不限于,如果您想使用其他错误包,请查看#[ewasm_main(rusty)]并了解更多。如果您想根据不同的处理程序编写返回不同类型数据的合约,请查看#[ewasm_main(auto)]EwasmAny或rdb功能示例,了解如何使用ewasm编写灵活的智能合约。

开发

使用以下命令,您可以使用cargo-sewup轻松设置您的sewup项目。

  • cargo安装 cargo-sewup
  • cargo sewup init您可以使用-m <rusty|auto>选项初始化不同类型的sewup项目,您可以从ewasm_main!的文档和部署指南的wiki页面中了解更多关于项目配置的信息。

交互

有许多客户端可以与合约进行交互。

对于ERC代币,我们在wiki页面中提供了web3js示例。您可以在kvrdb功能的示例中找到与合约交互的客户端。您可以在修改合约地址后,在示例项目中对kv和rdb进行修改,然后使用Cargo run与合约交互。

测试

运行cargo build --release --target=wasm32-unknown-unknown,然后合约将在target/wasm32-unknown-unknown/release/*.wasm中构建。此外,您可以在WasmEdge上运行部署的ewasm合约,并使用cargo test对其进行测试,此外,当合约在WasmEdge上部署时,构造函数也将运行。如果您想了解更多关于测试流程的详细信息,请查看开发指南wiki页面中的测试合约部分。

调试

此外,您可以使用调试宏 sewup::ewasm_dbg! 对您的 ewasm 合同进行调试。另外,使用 ewasm_storage_debug! 可以轻松了解存储的详细信息。所有这些调试方法都应通过 cargo test -- --nocapture 输出的消息来测试合同。要了解更多关于使用方法,请查看 示例 文件夹中的示例。

部署

一旦您想使用 sweup 命令行工具将合同部署到支持 Ewasm 的任何网络,请阅读 部署指南 维基页面。

SewUp 开发

工作空间中有两个项目和几个示例,合同项目应使用目标 wasm32-unknown-unknown 和标志 -C link-arg=--export-table 构建。您可以在每个示例文件夹中运行 cargo test 来检查您的修改。

通过 需要帮助的问题适合初学者的任务 容易参与。最后但同样重要的是,请随时就本项目提出任何问题。

依赖关系

~23–41MB
~602K SLoC