25 个版本
0.1.14 | 2022年2月27日 |
---|---|
0.1.10 | 2021年12月9日 |
0.1.9 | 2021年11月23日 |
0.0.6 | 2021年7月23日 |
#23 in #develop
每月 135 次下载
175KB
4.5K SLoC
SewUp
Secondstate EWasm Utility Program,一个库,帮助你使用 Rust 和像开发通用后端一样轻松地将你的以太坊项目“缝合”起来。Sewup 是一个基于以太坊 WebAssembly 的区块链 Rust 合约框架,适用于任何以太坊 WebAssembly 区块链。如果你对 Rust 合约框架有疑问,以及这些框架之间的区别,你可以查看这个合约框架的 Wiki 页面。关于在 Doc.rs 上构建文档的问题,请友好地使用主分支的文档。此外,还有Wiki 网站帮助你在遇到问题或困惑时学习更多。
幻灯片 & 演示
日期 | 活动 | 版本 | 幻灯片 | 视频 | 材料 |
---|---|---|---|---|---|
2021/12/03 | ParaState Hackathon IV | 0.1.9 | hackthon4 | 待办事项应用 | |
2021/11/12 | ParaState Hackathon III | 0.1.7 | hackthon3 | 实用代币 | |
2021/11/3 | ParaState Hackathon II | 0.1.6 | hackthon2 | 记录2 | 材料, 吊死鬼 |
2021/10/30 | COSCon'21 | 0.1.4 | coscon21 | ||
2021/10/26 | ParaState Hackathon | 0.1.4 | hackthon1 | 记录1 | 材料 |
2021/09/07 | 版本 0.1 发布 | 0.1.0 | 你好, KV, RDB, ERC-20, ERC-721, ERC-1155 | ||
2021/06/19 | Rust meetups (北京) | 0.0.1 | 预发布 |
使用
将具有功能和sewup-derive
的sewup
添加到Cargo.toml中,并按以下设置其他部分,然后您就可以使用sewup构建合约了。
特性列表(应选择以下之一)
- kv - 用于以键值数据库的形式编写合约,具有桶分区
- rdb - 用于以关系数据库的形式编写合约
- token - 用于编写ERC-20、ERC-721、ERC-1155代币
- single-bucket(正在开发中)- 用于无桶分区的存储
此外,我们建议您使用anyhow
来处理您的结果和错误,但不限于,如果您想使用其他错误crate,请查看ewasm_main
和了解更多。如果您想根据不同的处理程序编写返回不同类型数据的合约,请查看auto
和EwasmAny
或rdb特性的示例,了解如何使用ewasm编写灵活的智能合约。
开发
使用以下命令,您可以轻松设置您的sewup项目。
cargo安装cargo-sewup
cargo sewup init
您可以使用-m <rusty|auto>
选项来初始化不同类型的sewup项目,您可以从ewasm_main的文档和部署指南的wiki页面中了解更多关于项目配置的信息。
交互
有许多客户端可以与合约进行交互。
对于ERC代币,我们在wiki页面中提供了web3js
示例。有关使用kv或
rdb特性与合约交互的客户端示例,请查看kv或rdb。您可以在kv和rdb的示例项目中进行操作,然后通过修改合约地址后使用
Cargo run
与合约交互。
测试
运行cargo build --release --target wasm32-unknown-unknown
,然后合约将在target/wasm32-unknown-unknown/release
下构建。此外,您可以在WasmEdge上运行ewasm合约并使用cargo test
进行测试。此外,当合约在WasmEdge上部署时,构造函数也将运行。如果您想了解更多关于测试流程的详细信息,请查看开发指南wiki页面中的测试合约部分。
调试
此外,您可以使用调试宏 sewup::ewasm_dbg!
调试您的 ewasm 合同。此外,使用 ewasm_storage_debug!
可以轻松了解存储的详细信息。所有这些调试方法都应该使用 cargo test -- --nocapture
命令输出的消息来测试合同。有关更多信息,请参阅 示例 文件夹中的示例。
部署
一旦您想使用 sweup 命令行工具将合同部署到任何支持 Ewasm 的网络,请阅读 部署指南 wiki 页面。
SewUp 开发
工作空间中有两个项目和几个示例,合同项目应使用目标 wasm32-unknown-unknown
和标志 -C link-arg=--export-table
构建。您可以在每个示例文件夹中运行 cargo test
来检查您的修改是否通过了测试。
依赖关系
~15MB
~232K SLoC