4个版本
0.1.3 | 2024年4月10日 |
---|---|
0.1.2 | 2024年4月9日 |
0.1.1 | 2024年4月9日 |
0.1.0 | 2024年2月9日 |
#22 in #integrate
每月 137 次下载
14KB
181 行
OZ Merkle-rs
介绍
OZ Merkle-rs是一个轻量级的、高效的Merkle树实现,用Rust编写,旨在与OpenZeppelin合约无缝集成以进行证明验证。
特性
- 轻量级设计:针对最小内存占用和最大性能进行优化。
- 无缝集成:与OpenZeppelin合约即插即用,便于将其集成到您的区块链项目中。
- Rust实现:利用Rust的安全性和并发特性,确保安全高效的操作。
- Keccak256:支持Keccak256哈希。
入门指南
先决条件
- Rust(推荐使用最新稳定版)
- Cargo(Rust的包管理器)
安装
将oz_merkle_rs
添加到您的Cargo.toml
文件
[dependencies]
oz_merkle_rs = "0.1.1"
基本用法
use oz_merkle_rs::MerkleTree;
use std::str::FromStr;
fn main() {
let data = vec![
(Address::from_str("0x1111111111111111111111111111111111111111").unwrap(),
U256::from_dec_str("1840233889215604334017").unwrap()),
(Address::from_str("0x00393d62f17b07e64f7cdcdf9bdc2fd925b20bba").unwrap(),
U256::from_dec_str("7840233889215604334017").unwrap()),
];
// Create a new Merkle tree from the data
let merkle_tree = MerkleTree::new(data);
}
示例
let data = vec![
(Address::from_str("0x1111111111111111111111111111111111111111").unwrap(),
U256::from_dec_str("1840233889215604334017").unwrap()),
(Address::from_str("0x00393d62f17b07e64f7cdcdf9bdc2fd925b20bba").unwrap(),
U256::from_dec_str("7840233889215604334017").unwrap()),
];
let tree = MerkleTree::new(data);
let node = MerkleTree::hash_node(data[0]);
let proof = tree.get_proof(node).unwrap();
let result = tree.verify_proof(node, proof, tree.get_root().unwrap());
许可证
OZ Merkle-rs是开源的,可在MIT许可证下使用。
依赖关系
~24–41MB
~768K SLoC