20 个版本 (3 个稳定版)

1.2.0 2024 年 7 月 30 日
1.0.0 2024 年 5 月 23 日
0.9.1 2024 年 4 月 15 日
0.8.1 2024 年 3 月 1 日
0.2.0 2022 年 11 月 23 日

#348 in 魔法豆

Download history 136/week @ 2024-05-08 47/week @ 2024-05-15 162/week @ 2024-05-22 3/week @ 2024-06-05 156/week @ 2024-06-12 37/week @ 2024-06-19 3/week @ 2024-06-26 4/week @ 2024-07-03 85/week @ 2024-07-24 49/week @ 2024-07-31

每月 134 次下载
用于 odra-modules

MIT 许可证

230KB
5K SLoC

奥德拉 - Casper 网络的智能合约。

文档 | 安装 | 教程 | Cargo Odra | Discord | 博客

GitHub Workflow Status Code coverage Version License Language

目录

使用方法

使用 Cargo Odra 生成、构建和测试你的代码。

示例

use odra::prelude::*;
use odra::Var;

#[odra::module]
pub struct Flipper {
    value: Var<bool>,
}

#[odra::module]
impl Flipper {
    pub fn init(&mut self) {
        self.value.set(false);
    }

    pub fn set(&mut self, value: bool) {
        self.value.set(value);
    }

    pub fn flip(&mut self) {
        self.value.set(!self.get());
    }

    pub fn get(&self) -> bool {
        self.value.get_or_default()
    }
}

#[cfg(test)]
mod tests {
    use crate::flipper::FlipperHostRef;
    use odra::host::{Deployer, NoArgs};

    #[test]
    fn flipping() {
        let env = odra_test::env();
        let mut contract = FlipperHostRef::deploy(&env, NoArgs);
        assert!(!contract.get());
        contract.flip();
        assert!(contract.get());
    }
}

查看我们的 示例。它展示了 Odra 的大多数功能。

测试

在运行测试之前,请确保你已经安装了以下软件包

  • Rust 工具链(见 rustup.rs)具有 wasm32-unknown-unknown 目标。
  • cargo-odra(见 Cargo Odra
  • just(见 just

运行测试

$ just test

联系方式

需要帮助吗?请写信至 [email protected]

依赖关系

~10MB
~203K SLoC