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 在 解析器实现 中
每月 52 次下载
用于 9 个 crate(6 个直接使用)
37KB
721 行
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