diff --git a/sc_core/src/cryptography.rs b/sc_core/src/cryptography.rs new file mode 100644 index 0000000..419df6f --- /dev/null +++ b/sc_core/src/cryptography.rs @@ -0,0 +1,11 @@ +use light_poseidon::{Poseidon, PoseidonBytesHasher, parameters::bn254_x5}; +use ark_bn254::Fr; +use ark_ff::{BigInteger, PrimeField}; + +fn poseidon_hash(inputs: &[&[u8]]) -> anyhow::Result<[u8; 32]> { + let mut poseidon = Poseidon::::new_circom(2).unwrap(); + + let hash = poseidon.hash_bytes_be(inputs)?; + + Ok(hash) +} diff --git a/sc_core/src/lib.rs b/sc_core/src/lib.rs index 7a67a54..fae3f4c 100644 --- a/sc_core/src/lib.rs +++ b/sc_core/src/lib.rs @@ -1,3 +1,4 @@ pub mod proofs_circuits; pub mod transaction_payloads_tools; pub mod utxo_manipulator; +pub mod cryptography;