mirror of
https://github.com/logos-storage/logos-storage-proofs.git
synced 2026-01-02 13:33:10 +00:00
refactor
This commit is contained in:
parent
3e8bf7d68e
commit
af3069682d
73
src/ffi.rs
73
src/ffi.rs
@ -76,79 +76,6 @@ pub unsafe extern "C" fn init(
|
|||||||
/// Use after constructing a StorageProofs object with init
|
/// Use after constructing a StorageProofs object with init
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub unsafe extern "C" fn prove(
|
pub unsafe extern "C" fn prove(
|
||||||
prover_ptr: *mut StorageProofs,
|
|
||||||
chunks: *const Buffer,
|
|
||||||
siblings: *const Buffer,
|
|
||||||
hashes: *const Buffer,
|
|
||||||
path: *const i32,
|
|
||||||
path_len: usize,
|
|
||||||
pubkey: *const Buffer,
|
|
||||||
root: *const Buffer,
|
|
||||||
salt: *const Buffer,
|
|
||||||
) -> *mut ProofCtx {
|
|
||||||
let chunks = {
|
|
||||||
let slice = std::slice::from_raw_parts((*chunks).data, (*chunks).len);
|
|
||||||
slice
|
|
||||||
.chunks(U256::BYTES)
|
|
||||||
.map(|c| U256::try_from_le_slice(c).unwrap())
|
|
||||||
.collect::<Vec<U256>>()
|
|
||||||
};
|
|
||||||
|
|
||||||
let siblings = {
|
|
||||||
let slice = std::slice::from_raw_parts((*siblings).data, (*siblings).len);
|
|
||||||
slice
|
|
||||||
.chunks(U256::BYTES)
|
|
||||||
.map(|c| U256::try_from_le_slice(c).unwrap())
|
|
||||||
.collect::<Vec<U256>>()
|
|
||||||
};
|
|
||||||
|
|
||||||
let hashes = {
|
|
||||||
let slice = std::slice::from_raw_parts((*hashes).data, (*hashes).len);
|
|
||||||
slice
|
|
||||||
.chunks(U256::BYTES)
|
|
||||||
.map(|c| U256::try_from_le_slice(c).unwrap())
|
|
||||||
.collect::<Vec<U256>>()
|
|
||||||
};
|
|
||||||
|
|
||||||
let path = {
|
|
||||||
let slice = std::slice::from_raw_parts(path, path_len);
|
|
||||||
slice.to_vec()
|
|
||||||
};
|
|
||||||
|
|
||||||
let _pubkey =
|
|
||||||
U256::try_from_le_slice(std::slice::from_raw_parts((*pubkey).data, (*pubkey).len)).unwrap();
|
|
||||||
|
|
||||||
let root =
|
|
||||||
U256::try_from_le_slice(std::slice::from_raw_parts((*root).data, (*root).len)).unwrap();
|
|
||||||
|
|
||||||
let salt =
|
|
||||||
U256::try_from_le_slice(std::slice::from_raw_parts((*salt).data, (*salt).len)).unwrap();
|
|
||||||
|
|
||||||
let proof_bytes = &mut Vec::new();
|
|
||||||
let public_inputs_bytes = &mut Vec::new();
|
|
||||||
|
|
||||||
let mut _prover = &mut *prover_ptr;
|
|
||||||
_prover
|
|
||||||
.prove(
|
|
||||||
chunks.as_slice(),
|
|
||||||
siblings.as_slice(),
|
|
||||||
hashes.as_slice(),
|
|
||||||
path.as_slice(),
|
|
||||||
root,
|
|
||||||
salt,
|
|
||||||
proof_bytes,
|
|
||||||
public_inputs_bytes,
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
Box::into_raw(Box::new(ProofCtx::new(proof_bytes, public_inputs_bytes)))
|
|
||||||
}
|
|
||||||
|
|
||||||
/// # Safety
|
|
||||||
///
|
|
||||||
/// Use after constructing a StorageProofs object with init
|
|
||||||
#[no_mangle]
|
|
||||||
pub unsafe extern "C" fn prove_mpack(
|
|
||||||
prover_ptr: *mut StorageProofs,
|
prover_ptr: *mut StorageProofs,
|
||||||
args: *const Buffer,
|
args: *const Buffer,
|
||||||
) -> *mut ProofCtx {
|
) -> *mut ProofCtx {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user