5 个版本 (3 个重大更改)
新版本 0.3.0 | 2024 年 8 月 12 日 |
---|---|
0.2.3 |
|
0.2.1 | 2024 年 7 月 31 日 |
0.2.0 | 2023 年 10 月 28 日 |
0.0.1 | 2023 年 10 月 22 日 |
#882 in 神奇豆
每月下载量 6,265
在 17 个 crate 中使用(直接使用 5 个)
40KB
754 行
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