Ontology Wasm 一直以来都受到了社区开发人员的广泛关注,而目前 Ontology Wasm 也即将上线本体主网。在上期的技术视点中,我们简要介绍了如何进行相关环境搭建和使用合约模板来进行开发。本期我们将开始初步尝试从零开始开发 Ontology Wasm 合约。
新建合约
$ cargo new --lib helloworld
Created library `helloworld` package
新建的合约目录结构如下:
.
├── Cargo.toml
└── src
└── lib.rs
一个 Rust 版本的 Wasm 合约包含两部分组成,一部分是Cargo.toml配置文件,用于配置项目信息,一部分是src/lib.rs用于编写合约逻辑。
引入Ontology Wasm合约开发工具库
在生成的Cargo.toml文件中引入 Ontology Wasm 合约开发工具库ontio-std,使用[dependencies]配置项来完成引入该工具库的动作。
[package]
name = "helloworld"
version = "0.1.0"
authors = ["Lucas <test@email.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
ontio-std = {git="https://github.com/ontio/ontology-Wasm-cdt-rust.git"}
由于我们合约要以库的形式进行编译,所以还需要在Cargo.toml文件里加上[lib]配置信息,一个完整的 Cargo.toml 配置文件如下:
[package]
name = "helloworld"
version = "0.1.0"
authors = ["Lucas <test@email.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[lib]
crate-type = ["cdylib"]
path = "src/lib.rs"
[dependenci