mirror of
https://github.com/arnaucube/kesto.git
synced 2026-02-06 19:16:44 +01:00
Add poseidon-rs Fr from string & hex examples
This commit is contained in:
2
poseidon-rs-examples/.gitignore
vendored
Normal file
2
poseidon-rs-examples/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
/target
|
||||
Cargo.lock
|
||||
12
poseidon-rs-examples/Cargo.toml
Normal file
12
poseidon-rs-examples/Cargo.toml
Normal file
@@ -0,0 +1,12 @@
|
||||
[package]
|
||||
name = "poseidon-rs-examples"
|
||||
version = "0.0.1"
|
||||
authors = ["arnaucube <root@arnaucube.com>"]
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
ff = {package="ff_ce" , version="0.11", features = ["derive"]}
|
||||
poseidon-rs = "0.0.4"
|
||||
rustc-hex = "1.0.0"
|
||||
num = "0.2.0"
|
||||
num-bigint = "0.2.2"
|
||||
47
poseidon-rs-examples/src/lib.rs
Normal file
47
poseidon-rs-examples/src/lib.rs
Normal file
@@ -0,0 +1,47 @@
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use ff::PrimeField;
|
||||
use poseidon_rs::{Fr, Poseidon};
|
||||
|
||||
// for parsing hex
|
||||
extern crate num;
|
||||
extern crate num_bigint;
|
||||
use num_bigint::BigInt;
|
||||
|
||||
#[test]
|
||||
fn test_usage() {
|
||||
let v: Fr = Fr::from_str(
|
||||
"11043376183861534927536506085090418075369306574649619885724436265926427398571",
|
||||
)
|
||||
.unwrap();
|
||||
let mut to_hash: Vec<Fr> = Vec::new();
|
||||
to_hash.push(v);
|
||||
|
||||
let poseidon = Poseidon::new();
|
||||
let h = poseidon.hash(to_hash).unwrap();
|
||||
assert_eq!(
|
||||
h.to_string(),
|
||||
"Fr(0x28410c403c92a9f18d1f27b22218b3649b3be8640dc160ad53bd21cf02f98d81)"
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_usage_hex() {
|
||||
let b: BigInt = BigInt::parse_bytes(
|
||||
b"186a5454a7c47c73dfc74ac32ea40a57d27eeb4e2bfc6551dd7b66686d3fd1ab", // same value than in previous test, but in hex
|
||||
16,
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
let v: Fr = Fr::from_str(&b.to_string()).unwrap();
|
||||
let mut to_hash: Vec<Fr> = Vec::new();
|
||||
to_hash.push(v);
|
||||
|
||||
let poseidon = Poseidon::new();
|
||||
let h = poseidon.hash(to_hash).unwrap();
|
||||
assert_eq!(
|
||||
h.to_string(),
|
||||
"Fr(0x28410c403c92a9f18d1f27b22218b3649b3be8640dc160ad53bd21cf02f98d81)"
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user