27 个版本 (7 个重大更新)

0.8.0 2024 年 8 月 21 日
0.7.7 2024 年 7 月 8 日
0.7.6 2024 年 6 月 10 日
0.7.0 2024 年 3 月 30 日
0.3.1 2023 年 7 月 30 日

#624 in 神奇豆子

Download history 49450/week @ 2024-05-04 55363/week @ 2024-05-11 46904/week @ 2024-05-18 54768/week @ 2024-05-25 51548/week @ 2024-06-01 48709/week @ 2024-06-08 56703/week @ 2024-06-15 63008/week @ 2024-06-22 51867/week @ 2024-06-29 54924/week @ 2024-07-06 63775/week @ 2024-07-13 66362/week @ 2024-07-20 59493/week @ 2024-07-27 69565/week @ 2024-08-03 82070/week @ 2024-08-10 66584/week @ 2024-08-17

每月 289,652 次下载
208 个crate中使用 (117 个直接使用)

MIT/Apache

340KB
7K SLoC

alloy-primitives

alloyfoundryrevmreth 共享的基本类型。

类型

  • ruint 重导出的无符号整数
  • 有符号整数,作为围绕 ruint 整数的包装
  • 通过 FixedBytes 的大小固定的字节数组
    • wrap_fixed_bytes!:用于构建命名固定字节数类型的宏
    • Address,这是一个 20 字节的固定大小字节数组,支持 EIP-55 和 EIP-1191 校验和
    • fixed_bytes!address! 和其他宏在编译时构建类型

示例

这个库具有简单直接的基本类型。使用方法相应简单。有关更多信息,请参阅 文档

use alloy_primitives::{address, fixed_bytes, Address, FixedBytes, I256, U256};

// FixedBytes
let n: FixedBytes<6> = fixed_bytes!("1234567890ab");
assert_eq!(n, "0x1234567890ab".parse::<FixedBytes<6>>().unwrap());
assert_eq!(n.to_string(), "0x1234567890ab");

// Uint
let mut n: U256 = "42".parse().unwrap();
n += U256::from(10);
assert_eq!(n.to_string(), "52");

// Signed
let mut n: I256 = "-42".parse().unwrap();
n = -n;
assert_eq!(n.to_string(), "42");

// Address
let addr_str = "0x66f9664f97F2b50F62D13eA064982f936dE76657";
let addr: Address = Address::parse_checksummed(addr_str, None).unwrap();
assert_eq!(addr, address!("66f9664f97F2b50F62D13eA064982f936dE76657"));
assert_eq!(addr.to_checksum(None), addr_str);

// Address checksummed with a custom chain id
let addr_str = "0x66F9664f97f2B50F62d13EA064982F936de76657";
let addr: Address = Address::parse_checksummed(addr_str, Some(30)).unwrap();
assert_eq!(addr, address!("66F9664f97f2B50F62d13EA064982F936de76657"));
assert_eq!(addr.to_checksum(Some(30)), addr_str);

依赖项

~3.5–7MB
~138K SLoC