/ reference / haskell / src / Poseidon2.hs
Poseidon2.hs
 1  
 2  -- | Poseidon2 hash function for the bn128 curve's scalar field and t=3.
 3  
 4  module Poseidon2 
 5    ( Fr
 6    , sponge1 , sponge2
 7    , calcMerkleRoot , calcMerkleTree
 8    , MerkleTree(..) , depthOf , merkleRootOf , treeBottomLayer 
 9    , MerkleProof(..) , extractMerkleProof , extractMerkleProof_ , reconstructMerkleRoot
10    , compressPair, keyedCompressPair
11    , permutation
12    ) 
13    where
14  
15  --------------------------------------------------------------------------------
16  
17  import ZK.Algebra.Curves.BN128.Fr.Mont (Fr)
18  
19  import Poseidon2.Sponge
20  import Poseidon2.Merkle
21  import Poseidon2.Permutation
22  
23  --------------------------------------------------------------------------------