Skip to content

Commit ac08411

Browse files
committed
Add non-async methods to get provers
1 parent f5b78d6 commit ac08411

File tree

4 files changed

+55
-10
lines changed

4 files changed

+55
-10
lines changed

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ledger/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ tuple-map = "0.4.0"
9393
wasm-bindgen = "=0.2.92"
9494
wasm-bindgen-test = "0.3"
9595
web-sys = { version = "0.3", features = ["Blob", "DedicatedWorkerGlobalScope", "MessageEvent", "Url", "Worker", "WorkerType", "WorkerOptions", "console", "Window", "Performance" ] }
96+
tokio = { version = "1.37", features = ["macros", "rt-multi-thread"] }
9697

9798
[features]
9899
# Put zstd behind a feature, cargo always re-compile it without touching the files

ledger/src/proofs/provers.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,14 @@ mod prover_makers {
358358
tx_wrap_prover,
359359
}
360360
}
361+
362+
pub fn make_blocking(
363+
block_verifier_index: Option<BlockVerifier>,
364+
tx_verifier_index: Option<TransactionVerifier>,
365+
) -> Self {
366+
tokio::runtime::Handle::current()
367+
.block_on(async { Self::make(block_verifier_index, tx_verifier_index).await });
368+
}
361369
}
362370

363371
impl TransactionProver {
@@ -373,6 +381,11 @@ mod prover_makers {
373381
merge_step_prover,
374382
}
375383
}
384+
385+
pub fn make_blocking(tx_verifier_index: Option<TransactionVerifier>) -> Self {
386+
tokio::runtime::Handle::current()
387+
.block_on(async { Self::make(tx_verifier_index).await });
388+
}
376389
}
377390

378391
impl ZkappProver {
@@ -393,6 +406,11 @@ mod prover_makers {
393406
step_proof_prover,
394407
}
395408
}
409+
410+
pub fn make_blocking(tx_verifier_index: Option<TransactionVerifier>) -> Self {
411+
tokio::runtime::Handle::current()
412+
.block_on(async { Self::make(tx_verifier_index).await });
413+
}
396414
}
397415
}
398416

ledger/src/proofs/transaction.rs

Lines changed: 35 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4391,11 +4391,36 @@ pub(super) mod tests {
43914391
(statement, [p1, p2], message)
43924392
}
43934393

4394+
#[cfg(not(target_family = "wasm"))]
4395+
fn get_block_prover() -> BlockProver {
4396+
BlockProver::make(None, None)
4397+
}
4398+
#[cfg(target_family = "wasm")]
4399+
fn get_block_prover() -> BlockProver {
4400+
BlockProver::make_blocking(None, None)
4401+
}
4402+
#[cfg(not(target_family = "wasm"))]
4403+
fn get_tx_prover() -> TransactionProver {
4404+
TransactionProver::make(None)
4405+
}
4406+
#[cfg(target_family = "wasm")]
4407+
fn get_tx_prover() -> TransactionProver {
4408+
TransactionProver::make_blocking(None)
4409+
}
4410+
#[cfg(not(target_family = "wasm"))]
4411+
fn get_zkapp_prover() -> ZkappProver {
4412+
ZkappProver::make(None)
4413+
}
4414+
#[cfg(target_family = "wasm")]
4415+
fn get_zkapp_prover() -> ZkappProver {
4416+
ZkappProver::make_blocking(None)
4417+
}
4418+
43944419
#[allow(unused)]
43954420
#[test]
43964421
fn test_make_verifier_index() {
4397-
BlockProver::make(None, None);
4398-
TransactionProver::make(None);
4422+
get_block_prover();
4423+
get_tx_prover();
43994424

44004425
// use crate::proofs::caching::verifier_index_to_bytes;
44014426
// use crate::proofs::verifier_index::get_verifier_index;
@@ -4478,7 +4503,7 @@ pub(super) mod tests {
44784503
tx_step_prover,
44794504
tx_wrap_prover,
44804505
merge_step_prover: _,
4481-
} = TransactionProver::make(None);
4506+
} = get_tx_prover();
44824507

44834508
let mut witnesses: Witness<Fp> = Witness::new::<StepTransactionProof>();
44844509
// witnesses.ocaml_aux = read_witnesses("tx_fps.txt").unwrap();
@@ -4604,7 +4629,7 @@ pub(super) mod tests {
46044629
tx_step_prover: _,
46054630
tx_wrap_prover,
46064631
merge_step_prover,
4607-
} = TransactionProver::make(None);
4632+
} = get_tx_prover();
46084633

46094634
let mut witnesses: Witness<Fp> = Witness::new::<StepMergeProof>();
46104635
// witnesses.ocaml_aux = read_witnesses("fps_merge.txt").unwrap();
@@ -4653,7 +4678,7 @@ pub(super) mod tests {
46534678
step_opt_signed_opt_signed_prover,
46544679
step_opt_signed_prover,
46554680
step_proof_prover,
4656-
} = ZkappProver::make(None);
4681+
} = get_zkapp_prover();
46574682

46584683
dbg!(step_opt_signed_opt_signed_prover.rows_rev.len());
46594684
// dbg!(step_opt_signed_opt_signed_prover.rows_rev.iter().map(|v| v.len()).collect::<Vec<_>>());
@@ -4698,7 +4723,7 @@ pub(super) mod tests {
46984723
step_opt_signed_opt_signed_prover,
46994724
step_opt_signed_prover,
47004725
step_proof_prover,
4701-
} = ZkappProver::make(None);
4726+
} = get_zkapp_prover();
47024727

47034728
let LedgerProof { proof, .. } = generate_zkapp_proof(ZkappParams {
47044729
statement: &statement,
@@ -4740,7 +4765,7 @@ pub(super) mod tests {
47404765
block_step_prover,
47414766
block_wrap_prover,
47424767
tx_wrap_prover,
4743-
} = BlockProver::make(None, None);
4768+
} = get_block_prover();
47444769
let mut witnesses: Witness<Fp> = Witness::new::<StepBlockProof>();
47454770
// witnesses.ocaml_aux = read_witnesses("block_fps.txt").unwrap();
47464771

@@ -4782,15 +4807,15 @@ pub(super) mod tests {
47824807
block_step_prover,
47834808
block_wrap_prover,
47844809
tx_wrap_prover: _,
4785-
} = BlockProver::make(None, None);
4786-
let TransactionProver { tx_step_prover, .. } = TransactionProver::make(None);
4810+
} = get_block_prover();
4811+
let TransactionProver { tx_step_prover, .. } = get_tx_prover();
47874812
let ZkappProver {
47884813
tx_wrap_prover,
47894814
merge_step_prover,
47904815
step_opt_signed_opt_signed_prover: zkapp_step_opt_signed_opt_signed_prover,
47914816
step_opt_signed_prover: zkapp_step_opt_signed_prover,
47924817
step_proof_prover: zkapp_step_proof_prover,
4793-
} = ZkappProver::make(None);
4818+
} = get_zkapp_prover();
47944819

47954820
// TODO: Compare checksum with OCaml
47964821
#[rustfmt::skip]

0 commit comments

Comments
 (0)