25 个版本
0.1.14 | 2022年2月27日 |
---|---|
0.1.10 | 2021年12月8日 |
0.1.9 | 2021年11月23日 |
0.0.6 | 2021年7月23日 |
#45 in #rusty
每月110次下载
用于 sewup
85KB
1.5K SLoC
SewUp
Secondstate EWasm Utility Program,是一个库,帮助您使用 Rust 将 Ethereum 项目缝合起来,就像在通用后端中开发一样。Sewup 是一个基于 Ethereum WebAssembly 的区块链 Rust 合约框架,适用于任何 Ethereum WebAssembly 区块链。如果您对 Rust 合约框架有任何疑问,以及这些框架之间的区别,您可以查看这个维基页面的 合约框架。有关在 Doc.rs 上构建文档的 问题,请使用 主分支的文档。此外,还有 维基网站 帮助您使用 sewup,一旦您遇到问题或困惑,您可以在维基上了解更多。
演示文稿 & 示例
日期 | 活动 | 版本 | 幻灯片 | 视频 | 材料 |
---|---|---|---|---|---|
2021/12/03 | ParaState Hackathon IV | 0.1.9 | hackthon4 | todo 应用 | |
2021/11/12 | ParaState Hackathon III | 0.1.7 | hackthon3 | 实用代币 | |
2021/11/3 | ParaState Hackathon II | 0.1.6 | hackthon2 | record2 | 材料, 猜谜游戏 |
2021/10/30 | COSCon'21 | 0.1.4 | coscon21 | ||
2021/10/26 | ParaState Hackathon | 0.1.4 | hackthon1 | record1 | 材料 |
2021/09/07 | 版本 0.1 发布 | 0.1.0 | Hello, KV, RDB, ERC-20, ERC-721, ERC-1155 | ||
2021/06/19 | RustMeetup(北京) | 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轻松设置您的项目。
cargo安装 cargo-sewup
cargo sewup init
您可以使用-m <rusty|auto>
选项来初始化不同类型的 sewup 项目,并且您可以从 ewasm_main! 的文档 和 部署指南的wiki页面 中了解更多关于项目配置的信息。
交互
有这么多客户端可以与合约交互。
对于ERC代币,我们在 wiki页面 提供了 web3js
示例。有关使用 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 的任何网络,请阅读 部署指南 wiki 页面。
SewUp 开发
工作空间中有两个项目和几个示例,合同项目应使用目标 wasm32-unknown-unknown
和标志 -C link-arg=--export-table
构建。您可以在每个示例文件夹中运行 cargo test
来检查您的修改。
依赖项
~3.5–5MB
~95K SLoC