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

Download history 11/week @ 2024-03-30 1/week @ 2024-04-06 1/week @ 2024-05-25 1/week @ 2024-06-01 1/week @ 2024-06-29 109/week @ 2024-07-06

每月110次下载
用于 sewup

Apache-2.0

85KB
1.5K 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 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 HelloKVRDBERC-20ERC-721ERC-1155
2021/06/19 RustMeetup(北京) 0.0.1 预发布

用法

sewupsewup-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 示例。有关使用 kvrdb 功能与合约交互的客户端示例,请参阅示例项目。在修改合约地址后,您可以通过执行 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