#near #token #values #ergonomically #u128 #borsh #near-protocol

no-std near-token

一个用于与 NEAR 代币值进行高效和便捷操作的小型 crate(NEAR 协议)

5 个版本 (3 个重大更改)

新版本 0.3.0 2024 年 8 月 12 日
0.2.3 2024 年 8 月 12 日
0.2.1 2024 年 7 月 31 日
0.2.0 2023 年 10 月 28 日
0.0.1 2023 年 10 月 22 日

#882 in 神奇豆

Download history 611/week @ 2024-04-24 771/week @ 2024-05-01 577/week @ 2024-05-08 977/week @ 2024-05-15 797/week @ 2024-05-22 954/week @ 2024-05-29 922/week @ 2024-06-05 945/week @ 2024-06-12 874/week @ 2024-06-19 966/week @ 2024-06-26 774/week @ 2024-07-03 765/week @ 2024-07-10 1084/week @ 2024-07-17 1015/week @ 2024-07-24 2073/week @ 2024-07-31 1955/week @ 2024-08-07

每月下载量 6,265
17 个 crate 中使用(直接使用 5 个)

MIT/Apache

40KB
754

Crates.io (latest) Docs.rs Rust Version

near-token

near-token 是一个用于在 near-protocol 中处理 代币 的 crate。

该 crate 包含 NearToken 类型以及将数据转换为 NearToken 和 u128 类型值的构造函数。

示例

基本使用

将 near-token 添加到依赖项

cargo add near-token

以下是 near-token crate 的基本用法

use near_token::NearToken;

fn main() {
    const TEN_NEAR: NearToken = NearToken::from_near(10);

    assert_eq!(TEN_NEAR.to_string(), "10.00 NEAR");
    assert_eq!(TEN_NEAR.as_near(), 10);
    assert_eq!(TEN_NEAR.as_millinear(), 10000);
    assert_eq!(TEN_NEAR.as_yoctonear(), 10000000000000000000000000);

    let input_str = "0.123456 NEAR";
    let input_near: NearToken = input_str.parse().unwrap();
    assert_eq!(
        input_near,
        NearToken::from_yoctonear(123456000000000000000000)
    );

}

serde 支持

为了在 serde 序列化结构中使用 NearToken,启用 serde 功能

cargo add near-token --features serde

以下是使用 serde 的 near-token crate 的基本用法

// When `serde` feature is enabled, NearToken can be used in serde-serializable structs.
// NearToken will be serialized to a token-precision u128 value encoded as string.
#[derive(serde::Serialize)]
struct TransferDetails {
    amount: NearToken,
}

fn main() {
    const TEN_NEAR: NearToken = NearToken::from_near(10);

    let details = TransferDetails { amount: TEN_NEAR };
    assert_eq!(
        serde_json::to_string(&details).unwrap(),
        r#"{"amount":"10000000000000000000000000"}"#
    );
}

borsh 支持

为了在 borsh 序列化结构中使用 NearToken,启用 borsh 功能

cargo add near-token --features borsh

以下是使用 borsh 的 near-token crate 的基本用法

use borsh::{to_vec, BorshSerialize};
use near_token::NearToken;

#[derive(BorshSerialize)]
struct TransferDetails {
    amount: NearToken,
}

fn main() {
    const TEN_NEAR: NearToken = NearToken::from_near(10);

    let details = TransferDetails { amount: TEN_NEAR };
    assert_eq!(
        to_vec(&details).unwrap(),
        vec![0, 0, 0, 74, 72, 1, 20, 22, 149, 69, 8, 0, 0, 0, 0, 0]
    );
}

近币信息

NEAR 用于在 NEAR 基础设施上定价计算和存储。网络通过收取 NEAR 交易费来处理更改和交易。

许可证

本项目许可协议为 MIT 许可证Apache-2.0 许可证

依赖项

~0–710KB
~15K SLoC