Browse Source

Add poseidon-rs Fr from string & hex examples

pull/1/head
arnaucube 3 years ago
parent
commit
bff7f33916
3 changed files with 61 additions and 0 deletions
  1. +2
    -0
      poseidon-rs-examples/.gitignore
  2. +12
    -0
      poseidon-rs-examples/Cargo.toml
  3. +47
    -0
      poseidon-rs-examples/src/lib.rs

+ 2
- 0
poseidon-rs-examples/.gitignore

@ -0,0 +1,2 @@
/target
Cargo.lock

+ 12
- 0
poseidon-rs-examples/Cargo.toml

@ -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
- 0
poseidon-rs-examples/src/lib.rs

@ -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)"
);
}
}

Loading…
Cancel
Save