#unc #token #u128 #data #values #borsh #protocols

无 std unc-token

一个小型 crate,用于以优雅和高效的方式处理 UNC 令牌值(UNC 协议)

7 个版本 (4 个重大更改)

0.10.2 2024年7月4日
0.10.1 2024年5月29日
0.4.0 2024年4月1日
0.3.0 2024年3月6日
0.1.0 2024年3月6日

#530解析器实现

Download history 60/week @ 2024-04-14 11/week @ 2024-04-21 161/week @ 2024-05-12 194/week @ 2024-05-19 386/week @ 2024-05-26 163/week @ 2024-06-02 83/week @ 2024-06-09 35/week @ 2024-06-16 3/week @ 2024-06-23 178/week @ 2024-06-30 17/week @ 2024-07-07 12/week @ 2024-07-14 16/week @ 2024-07-28

每月 52 次下载
用于 9 个 crate(6 个直接使用)

MIT/Apache

37KB
721

Crates.io (latest) Docs.rs Rust Version

unc-token

unc-token 是一个用于在 unc-protocol 中处理 令牌 的 crate。

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

示例

基本

将 unc-token 添加到您的依赖项中

cargo add unc-token

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

use unc_token::UncToken;

fn main() {
    const TEN_UNC: UncToken = UncToken::from_unc(10);

    assert_eq!(TEN_UNC.to_string(), "10.00 UNC");
    assert_eq!(TEN_UNC.as_unc(), 10);
    assert_eq!(TEN_UNC.as_milliunc(), 10000);
    assert_eq!(TEN_UNC.as_attounc(), 10000000000000000000000000);

    let input_str = "0.123456 UNC";
    let input_unc: UncToken = input_str.parse().unwrap();
    assert_eq!(
        input_unc,
        UncToken::from_attounc(123456000000000000000000)
    );

}

serde 支持

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

cargo add unc-token --features serde

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

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

fn main() {
    const TEN_UNC: UncToken = UncToken::from_unc(10);

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

borsh 支持

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

cargo add unc-token --features borsh

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

use borsh::{to_vec, BorshSerialize};
use unc_token::UncToken;

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

fn main() {
    const TEN_UNC: UncToken = UncToken::from_unc(10);

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

UncToken 信息

UNC 用于 UNC 基础设施上的定价计算和存储。网络使用 UNC 交易费来处理更改和交易。

许可证

本项目受 MIT 许可证Apache-2.0 许可证 的许可。

依赖项

~0–600KB
~12K SLoC