#ethereum #up #back-end #develop #kv #token #sew

nightly sewup

一个库,帮助你使用 Rust 和像开发通用后端一样轻松地将你的以太坊项目“缝合”起来

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

Download history 7/week @ 2024-03-30 5/week @ 2024-06-29 130/week @ 2024-07-06

每月 135 次下载

Apache-2.0 和可能 AGPL-3.0

175KB
4.5K SLoC

SewUp

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

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 你好KVRDBERC-20ERC-721ERC-1155
2021/06/19 Rust meetups (北京) 0.0.1 预发布

使用

将具有功能和sewup-derivesewup添加到Cargo.toml中,并按以下设置其他部分,然后您就可以使用sewup构建合约了。

特性列表(应选择以下之一)

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

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

开发

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

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

交互

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

对于ERC代币,我们在wiki页面中提供了web3js示例。有关使用kvrdb特性与合约交互的客户端示例,请查看kvrdb。您可以在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