@@ -5,7 +5,7 @@ use lambdaworks_crypto::merkle_tree::merkle::MerkleTree;
55use log:: error;
66
77#[ no_mangle]
8- pub extern "C" fn verify_merkle_tree_batch_ffi (
8+ pub extern "C" fn inner_verify_merkle_tree_batch_ffi (
99 batch_ptr : * const u8 ,
1010 batch_len : usize ,
1111 merkle_root : & [ u8 ; 32 ] ,
@@ -53,6 +53,22 @@ pub extern "C" fn verify_merkle_tree_batch_ffi(
5353 computed_batch_merkle_tree. root == * merkle_root
5454}
5555
56+ #[ no_mangle]
57+ pub extern "C" fn verify_merkle_tree_batch_ffi (
58+ batch_ptr : * const u8 ,
59+ batch_len : usize ,
60+ merkle_root : & [ u8 ; 32 ] ,
61+ ) -> i32 {
62+ let result = std:: panic:: catch_unwind ( || {
63+ inner_verify_merkle_tree_batch_ffi ( batch_ptr, batch_len, merkle_root)
64+ } ) ;
65+
66+ match result {
67+ Ok ( v) => v as i32 ,
68+ Err ( _) => -1 ,
69+ }
70+ }
71+
5672#[ cfg( test) ]
5773mod tests {
5874 use super :: * ;
@@ -75,7 +91,7 @@ mod tests {
7591 let result =
7692 verify_merkle_tree_batch_ffi ( bytes_vec. as_ptr ( ) , bytes_vec. len ( ) , & merkle_root) ;
7793
78- assert_eq ! ( result, true ) ;
94+ assert_eq ! ( result, 1 ) ;
7995 }
8096
8197 #[ test]
@@ -92,7 +108,7 @@ mod tests {
92108 let result =
93109 verify_merkle_tree_batch_ffi ( bytes_vec. as_ptr ( ) , bytes_vec. len ( ) , & merkle_root) ;
94110
95- assert_eq ! ( result, false ) ;
111+ assert_eq ! ( result, 0 ) ;
96112 }
97113
98114 #[ test]
@@ -109,6 +125,6 @@ mod tests {
109125 let result =
110126 verify_merkle_tree_batch_ffi ( bytes_vec. as_ptr ( ) , bytes_vec. len ( ) , & merkle_root) ;
111127
112- assert_eq ! ( result, false ) ;
128+ assert_eq ! ( result, 0 ) ;
113129 }
114130}
0 commit comments