@aztec/prover-client 0.0.1-commit.f295ac2 → 0.0.1-commit.f504929

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dest/light/lightweight_checkpoint_builder.d.ts +13 -6
  2. package/dest/light/lightweight_checkpoint_builder.d.ts.map +1 -1
  3. package/dest/light/lightweight_checkpoint_builder.js +44 -22
  4. package/dest/mocks/fixtures.d.ts +1 -1
  5. package/dest/mocks/fixtures.d.ts.map +1 -1
  6. package/dest/mocks/fixtures.js +2 -1
  7. package/dest/mocks/test_context.js +5 -2
  8. package/dest/orchestrator/block-building-helpers.d.ts +4 -4
  9. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
  10. package/dest/orchestrator/block-building-helpers.js +3 -3
  11. package/dest/orchestrator/block-proving-state.d.ts +4 -1
  12. package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
  13. package/dest/orchestrator/block-proving-state.js +7 -0
  14. package/dest/orchestrator/checkpoint-proving-state.d.ts +3 -3
  15. package/dest/orchestrator/checkpoint-proving-state.d.ts.map +1 -1
  16. package/dest/orchestrator/checkpoint-proving-state.js +3 -3
  17. package/dest/orchestrator/epoch-proving-state.d.ts +3 -3
  18. package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
  19. package/dest/orchestrator/epoch-proving-state.js +5 -3
  20. package/dest/orchestrator/orchestrator.d.ts +9 -4
  21. package/dest/orchestrator/orchestrator.d.ts.map +1 -1
  22. package/dest/orchestrator/orchestrator.js +112 -105
  23. package/dest/prover-client/prover-client.d.ts +3 -3
  24. package/dest/prover-client/prover-client.d.ts.map +1 -1
  25. package/dest/prover-client/prover-client.js +15 -10
  26. package/dest/proving_broker/broker_prover_facade.d.ts +4 -3
  27. package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
  28. package/dest/proving_broker/broker_prover_facade.js +3 -3
  29. package/dest/proving_broker/config.d.ts +13 -1
  30. package/dest/proving_broker/config.d.ts.map +1 -1
  31. package/dest/proving_broker/config.js +19 -2
  32. package/dest/proving_broker/proof_store/factory.d.ts +2 -5
  33. package/dest/proving_broker/proof_store/factory.d.ts.map +1 -1
  34. package/dest/proving_broker/proof_store/factory.js +7 -30
  35. package/dest/proving_broker/proof_store/file_store_proof_store.d.ts +18 -0
  36. package/dest/proving_broker/proof_store/file_store_proof_store.d.ts.map +1 -0
  37. package/dest/proving_broker/proof_store/file_store_proof_store.js +60 -0
  38. package/dest/proving_broker/proof_store/index.d.ts +2 -2
  39. package/dest/proving_broker/proof_store/index.d.ts.map +1 -1
  40. package/dest/proving_broker/proof_store/index.js +1 -1
  41. package/dest/proving_broker/proving_agent.d.ts +4 -3
  42. package/dest/proving_broker/proving_agent.d.ts.map +1 -1
  43. package/dest/proving_broker/proving_agent.js +4 -4
  44. package/dest/proving_broker/proving_broker.d.ts +7 -4
  45. package/dest/proving_broker/proving_broker.d.ts.map +1 -1
  46. package/dest/proving_broker/proving_broker.js +36 -4
  47. package/dest/proving_broker/proving_broker_instrumentation.d.ts +3 -1
  48. package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -1
  49. package/dest/proving_broker/proving_broker_instrumentation.js +18 -7
  50. package/dest/proving_broker/proving_job_controller.d.ts +4 -3
  51. package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
  52. package/dest/proving_broker/proving_job_controller.js +6 -3
  53. package/dest/proving_broker/rpc.d.ts +4 -2
  54. package/dest/proving_broker/rpc.d.ts.map +1 -1
  55. package/dest/proving_broker/rpc.js +8 -0
  56. package/dest/test/mock_prover.d.ts +4 -4
  57. package/package.json +17 -18
  58. package/src/light/lightweight_checkpoint_builder.ts +52 -25
  59. package/src/mocks/fixtures.ts +2 -1
  60. package/src/mocks/test_context.ts +2 -2
  61. package/src/orchestrator/block-building-helpers.ts +3 -3
  62. package/src/orchestrator/block-proving-state.ts +9 -0
  63. package/src/orchestrator/checkpoint-proving-state.ts +4 -4
  64. package/src/orchestrator/epoch-proving-state.ts +6 -4
  65. package/src/orchestrator/orchestrator.ts +121 -113
  66. package/src/prover-client/prover-client.ts +29 -14
  67. package/src/proving_broker/broker_prover_facade.ts +6 -3
  68. package/src/proving_broker/config.ts +22 -0
  69. package/src/proving_broker/proof_store/factory.ts +10 -32
  70. package/src/proving_broker/proof_store/file_store_proof_store.ts +78 -0
  71. package/src/proving_broker/proof_store/index.ts +1 -1
  72. package/src/proving_broker/proving_agent.ts +5 -2
  73. package/src/proving_broker/proving_broker.ts +37 -3
  74. package/src/proving_broker/proving_broker_instrumentation.ts +19 -6
  75. package/src/proving_broker/proving_job_controller.ts +9 -3
  76. package/src/proving_broker/rpc.ts +14 -0
  77. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts +0 -14
  78. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts.map +0 -1
  79. package/dest/proving_broker/proof_store/gcs_proof_store.js +0 -52
  80. package/src/proving_broker/proof_store/gcs_proof_store.ts +0 -76
@@ -389,7 +389,6 @@ import { buildHeaderFromCircuitOutputs, getLastSiblingPath, getPublicChonkVerifi
389
389
  import { EpochProvingState } from './epoch-proving-state.js';
390
390
  import { ProvingOrchestratorMetrics } from './orchestrator_metrics.js';
391
391
  import { TxProvingState } from './tx-proving-state.js';
392
- const logger = createLogger('prover-client:orchestrator');
393
392
  _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
394
393
  [Attributes.BLOCK_NUMBER]: blockNumber
395
394
  })), _dec1 = trackSpan('ProvingOrchestrator.addTxs', (txs)=>({
@@ -414,6 +413,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
414
413
  dbProvider;
415
414
  prover;
416
415
  proverId;
416
+ cancelJobsOnStop;
417
417
  static{
418
418
  ({ e: [_initProto] } = _apply_decs_2203_r(this, [
419
419
  [
@@ -449,14 +449,17 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
449
449
  metrics;
450
450
  // eslint-disable-next-line aztec-custom/no-non-primitive-in-collections
451
451
  dbs;
452
- constructor(dbProvider, prover, proverId, telemetryClient = getTelemetryClient()){
452
+ logger;
453
+ constructor(dbProvider, prover, proverId, cancelJobsOnStop = false, telemetryClient = getTelemetryClient(), bindings){
453
454
  this.dbProvider = dbProvider;
454
455
  this.prover = prover;
455
456
  this.proverId = proverId;
457
+ this.cancelJobsOnStop = cancelJobsOnStop;
456
458
  this.provingState = (_initProto(this), undefined);
457
459
  this.pendingProvingJobs = [];
458
460
  this.provingPromise = undefined;
459
461
  this.dbs = new Map();
462
+ this.logger = createLogger('prover-client:orchestrator', bindings);
460
463
  this.metrics = new ProvingOrchestratorMetrics(telemetryClient, 'ProvingOrchestrator');
461
464
  }
462
465
  get tracer() {
@@ -481,7 +484,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
481
484
  status: 'failure',
482
485
  reason
483
486
  }));
484
- logger.info(`Starting epoch ${epochNumber} with ${totalNumCheckpoints} checkpoints.`);
487
+ this.logger.info(`Starting epoch ${epochNumber} with ${totalNumCheckpoints} checkpoints.`);
485
488
  this.provingState = new EpochProvingState(epochNumber, totalNumCheckpoints, finalBlobBatchingChallenges, (provingState)=>this.checkAndEnqueueCheckpointRootRollup(provingState), resolve, reject);
486
489
  this.provingPromise = promise;
487
490
  }
@@ -528,14 +531,14 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
528
531
  throw new Error(`Checkpoint not accepting further blocks.`);
529
532
  }
530
533
  const constants = checkpointProvingState.constants;
531
- logger.info(`Starting block ${blockNumber} for slot ${constants.slotNumber}.`);
534
+ this.logger.info(`Starting block ${blockNumber} for slot ${constants.slotNumber}.`);
532
535
  // Fork the db only when it's not already set. The db for the first block is set in `startNewCheckpoint`.
533
536
  if (!this.dbs.has(blockNumber)) {
534
537
  // Fork world state at the end of the immediately previous block
535
538
  const db = await this.dbProvider.fork(BlockNumber(blockNumber - 1));
536
539
  this.dbs.set(blockNumber, db);
537
540
  }
538
- const db = this.dbs.get(blockNumber);
541
+ const db = this.getDbForBlock(blockNumber);
539
542
  // Get archive snapshot and sibling path before any txs in this block lands.
540
543
  const lastArchiveTreeSnapshot = await getTreeSnapshot(MerkleTreeId.ARCHIVE, db);
541
544
  const lastArchiveSiblingPath = await getRootTreeSiblingPath(MerkleTreeId.ARCHIVE, db);
@@ -570,7 +573,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
570
573
  if (!txs.length) {
571
574
  // To avoid an ugly throw below. If we require an empty block, we can just call setBlockCompleted
572
575
  // on a block with no txs. We cannot do that here because we cannot find the blockNumber without any txs.
573
- logger.warn(`Provided no txs to orchestrator addTxs.`);
576
+ this.logger.warn(`Provided no txs to orchestrator addTxs.`);
574
577
  return;
575
578
  }
576
579
  const blockNumber = BlockNumber(txs[0].globalVariables.blockNumber);
@@ -584,8 +587,8 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
584
587
  if (!provingState.isAcceptingTxs()) {
585
588
  throw new Error(`Block ${blockNumber} has been initialized with transactions.`);
586
589
  }
587
- logger.info(`Adding ${txs.length} transactions to block ${blockNumber}`);
588
- const db = this.dbs.get(blockNumber);
590
+ this.logger.info(`Adding ${txs.length} transactions to block ${blockNumber}`);
591
+ const db = this.getDbForBlock(blockNumber);
589
592
  const lastArchive = provingState.lastArchiveTreeSnapshot;
590
593
  const newL1ToL2MessageTreeSnapshot = provingState.newL1ToL2MessageTreeSnapshot;
591
594
  const spongeBlobState = provingState.getStartSpongeBlob().clone();
@@ -595,7 +598,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
595
598
  throw new Error(`Invalid proving state when adding a tx`);
596
599
  }
597
600
  validateTx(tx);
598
- logger.debug(`Received transaction: ${tx.hash}`);
601
+ this.logger.debug(`Received transaction: ${tx.hash}`);
599
602
  const startSpongeBlob = spongeBlobState.clone();
600
603
  const [hints, treeSnapshots] = await this.prepareBaseRollupInputs(tx, lastArchive, newL1ToL2MessageTreeSnapshot, startSpongeBlob, db);
601
604
  if (!provingState.verifyState()) {
@@ -606,10 +609,10 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
606
609
  const txIndex = provingState.addNewTx(txProvingState);
607
610
  if (txProvingState.requireAvmProof) {
608
611
  this.getOrEnqueueChonkVerifier(provingState, txIndex);
609
- logger.debug(`Enqueueing public VM for tx ${txIndex}`);
612
+ this.logger.debug(`Enqueueing public VM for tx ${txIndex}`);
610
613
  this.enqueueVM(provingState, txIndex);
611
614
  } else {
612
- logger.debug(`Enqueueing base rollup for private-only tx ${txIndex}`);
615
+ this.logger.debug(`Enqueueing base rollup for private-only tx ${txIndex}`);
613
616
  this.enqueueBaseRollup(provingState, txIndex);
614
617
  }
615
618
  } catch (err) {
@@ -639,7 +642,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
639
642
  const txHash = tx.getTxHash().toString();
640
643
  const privateInputs = getPublicChonkVerifierPrivateInputsFromTx(tx, this.proverId.toField());
641
644
  const tubeProof = promiseWithResolvers();
642
- logger.debug(`Starting chonk verifier circuit for tx ${txHash}`);
645
+ this.logger.debug(`Starting chonk verifier circuit for tx ${txHash}`);
643
646
  this.doEnqueueChonkVerifier(txHash, privateInputs, (proof)=>{
644
647
  tubeProof.resolve(proof);
645
648
  });
@@ -668,17 +671,23 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
668
671
  throw new Error(`Block ${blockNumber} is still accepting txs. Call setBlockCompleted after all txs have been added.`);
669
672
  }
670
673
  // Given we've applied every change from this block, now assemble the block header:
671
- logger.verbose(`Block ${blockNumber} completed. Assembling header.`);
674
+ this.logger.verbose(`Block ${blockNumber} completed. Assembling header.`);
672
675
  const header = await provingState.buildBlockHeader();
673
676
  if (expectedHeader && !header.equals(expectedHeader)) {
674
- logger.error(`Block header mismatch: header=${header} expectedHeader=${expectedHeader}`);
677
+ this.logger.error(`Block header mismatch: header=${header} expectedHeader=${expectedHeader}`);
675
678
  throw new Error('Block header mismatch');
676
679
  }
677
- // Get db for this block
678
- const db = this.dbs.get(provingState.blockNumber);
679
- // Update the archive tree, so we're ready to start processing the next block:
680
- logger.verbose(`Updating archive tree with block ${provingState.blockNumber} header ${(await header.hash()).toString()}`);
681
- await db.updateArchive(header);
680
+ // Get db for this block and remove from map — no other code should use it after this point.
681
+ const db = this.getDbForBlock(provingState.blockNumber);
682
+ this.dbs.delete(provingState.blockNumber);
683
+ // Update the archive tree, capture the snapshot, and close the fork deterministically.
684
+ try {
685
+ this.logger.verbose(`Updating archive tree with block ${provingState.blockNumber} header ${(await header.hash()).toString()}`);
686
+ await db.updateArchive(header);
687
+ provingState.setBuiltArchive(await getTreeSnapshot(MerkleTreeId.ARCHIVE, db));
688
+ } finally{
689
+ await db.close();
690
+ }
682
691
  await this.verifyBuiltBlockAgainstSyncedState(provingState);
683
692
  return header;
684
693
  }
@@ -686,49 +695,61 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
686
695
  async verifyBuiltBlockAgainstSyncedState(provingState) {
687
696
  const builtBlockHeader = provingState.getBuiltBlockHeader();
688
697
  if (!builtBlockHeader) {
689
- logger.debug('Block header not built yet, skipping header check.');
698
+ this.logger.debug('Block header not built yet, skipping header check.');
690
699
  return;
691
700
  }
692
701
  const output = provingState.getBlockRootRollupOutput();
693
702
  if (!output) {
694
- logger.debug('Block root rollup proof not built yet, skipping header check.');
703
+ this.logger.debug('Block root rollup proof not built yet, skipping header check.');
704
+ return;
705
+ }
706
+ const newArchive = provingState.getBuiltArchive();
707
+ if (!newArchive) {
708
+ this.logger.debug('Archive snapshot not yet captured, skipping header check.');
695
709
  return;
696
710
  }
697
711
  const header = await buildHeaderFromCircuitOutputs(output);
698
712
  if (!(await header.hash()).equals(await builtBlockHeader.hash())) {
699
- logger.error(`Block header mismatch.\nCircuit: ${inspect(header)}\nComputed: ${inspect(builtBlockHeader)}`);
713
+ this.logger.error(`Block header mismatch.\nCircuit: ${inspect(header)}\nComputed: ${inspect(builtBlockHeader)}`);
700
714
  provingState.reject(`Block header hash mismatch.`);
701
715
  return;
702
716
  }
703
- // Get db for this block
704
717
  const blockNumber = provingState.blockNumber;
705
- const db = this.dbs.get(blockNumber);
706
- const newArchive = await getTreeSnapshot(MerkleTreeId.ARCHIVE, db);
707
718
  const syncedArchive = await getTreeSnapshot(MerkleTreeId.ARCHIVE, this.dbProvider.getSnapshot(blockNumber));
708
719
  if (!syncedArchive.equals(newArchive)) {
709
- logger.error(`Archive tree mismatch for block ${blockNumber}: world state synced to ${inspect(syncedArchive)} but built ${inspect(newArchive)}`);
720
+ this.logger.error(`Archive tree mismatch for block ${blockNumber}: world state synced to ${inspect(syncedArchive)} but built ${inspect(newArchive)}`);
710
721
  provingState.reject(`Archive tree mismatch.`);
711
722
  return;
712
723
  }
713
724
  const circuitArchive = output.newArchive;
714
725
  if (!newArchive.equals(circuitArchive)) {
715
- logger.error(`New archive mismatch.\nCircuit: ${output.newArchive}\nComputed: ${newArchive}`);
726
+ this.logger.error(`New archive mismatch.\nCircuit: ${output.newArchive}\nComputed: ${newArchive}`);
716
727
  provingState.reject(`New archive mismatch.`);
717
728
  return;
718
729
  }
719
- // TODO(palla/prover): This closes the fork only on the happy path. If this epoch orchestrator
720
- // is aborted and never reaches this point, it will leak the fork. We need to add a global cleanup,
721
- // but have to make sure it only runs once all operations are completed, otherwise some function here
722
- // will attempt to access the fork after it was closed.
723
- void this.cleanupDBFork(blockNumber);
724
730
  }
725
731
  /**
726
- * Cancel any further proving
732
+ * Cancel any further proving.
733
+ * If cancelJobsOnStop is true, aborts all pending jobs with the broker (which marks them as 'Aborted').
734
+ * If cancelJobsOnStop is false (default), jobs remain in the broker queue and can be reused on restart/reorg.
727
735
  */ cancel() {
728
- for (const controller of this.pendingProvingJobs){
729
- controller.abort();
736
+ if (this.cancelJobsOnStop) {
737
+ for (const controller of this.pendingProvingJobs){
738
+ controller.abort();
739
+ }
730
740
  }
731
741
  this.provingState?.cancel();
742
+ for (const [blockNumber, db] of this.dbs.entries()){
743
+ void db.close().catch((err)=>this.logger.error(`Error closing db for block ${blockNumber}`, err));
744
+ }
745
+ this.dbs.clear();
746
+ }
747
+ getDbForBlock(blockNumber) {
748
+ const db = this.dbs.get(blockNumber);
749
+ if (!db) {
750
+ throw new Error(`World state fork for block ${blockNumber} not found.`);
751
+ }
752
+ return db;
732
753
  }
733
754
  /**
734
755
  * Returns the proof for the current epoch.
@@ -748,19 +769,6 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
748
769
  });
749
770
  return epochProofResult;
750
771
  }
751
- async cleanupDBFork(blockNumber) {
752
- logger.debug(`Cleaning up world state fork for ${blockNumber}`);
753
- const fork = this.dbs.get(blockNumber);
754
- if (!fork) {
755
- return;
756
- }
757
- try {
758
- await fork.close();
759
- this.dbs.delete(blockNumber);
760
- } catch (err) {
761
- logger.error(`Error closing db for block ${blockNumber}`, err);
762
- }
763
- }
764
772
  /**
765
773
  * Enqueue a job to be scheduled
766
774
  * @param provingState - The proving state object being operated on
@@ -768,7 +776,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
768
776
  * @param job - The actual job, returns a promise notifying of the job's completion
769
777
  */ deferredProving(provingState, request, callback) {
770
778
  if (!provingState.verifyState()) {
771
- logger.debug(`Not enqueuing job, state no longer valid`);
779
+ this.logger.debug(`Not enqueuing job, state no longer valid`);
772
780
  return;
773
781
  }
774
782
  const controller = new AbortController();
@@ -783,7 +791,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
783
791
  }
784
792
  const result = await request(controller.signal);
785
793
  if (!provingState.verifyState()) {
786
- logger.debug(`State no longer valid, discarding result`);
794
+ this.logger.debug(`State no longer valid, discarding result`);
787
795
  return;
788
796
  }
789
797
  // we could have been cancelled whilst waiting for the result
@@ -798,7 +806,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
798
806
  // drop this result
799
807
  return;
800
808
  }
801
- logger.error(`Error thrown when proving job`, err);
809
+ this.logger.error(`Error thrown when proving job`, err);
802
810
  provingState.reject(`${err}`);
803
811
  } finally{
804
812
  const index = this.pendingProvingJobs.indexOf(controller);
@@ -854,17 +862,17 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
854
862
  // Executes the next level of merge if all inputs are available
855
863
  enqueueBaseRollup(provingState, txIndex) {
856
864
  if (!provingState.verifyState()) {
857
- logger.debug('Not running base rollup, state invalid');
865
+ this.logger.debug('Not running base rollup, state invalid');
858
866
  return;
859
867
  }
860
868
  if (!provingState.tryStartProvingBase(txIndex)) {
861
- logger.debug(`Base rollup for tx ${txIndex} already started.`);
869
+ this.logger.debug(`Base rollup for tx ${txIndex} already started.`);
862
870
  return;
863
871
  }
864
872
  const txProvingState = provingState.getTxProvingState(txIndex);
865
873
  const { processedTx } = txProvingState;
866
874
  const { rollupType, inputs } = txProvingState.getBaseRollupTypeAndInputs();
867
- logger.debug(`Enqueuing deferred proving base rollup for ${processedTx.hash.toString()}`);
875
+ this.logger.debug(`Enqueuing deferred proving base rollup for ${processedTx.hash.toString()}`);
868
876
  this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, `ProvingOrchestrator.prover.${inputs instanceof PrivateTxBaseRollupPrivateInputs ? 'getPrivateTxBaseRollupProof' : 'getPublicTxBaseRollupProof'}`, {
869
877
  [Attributes.TX_HASH]: processedTx.hash.toString(),
870
878
  [Attributes.PROTOCOL_CIRCUIT_NAME]: rollupType
@@ -875,7 +883,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
875
883
  return this.prover.getPublicTxBaseRollupProof(inputs, signal, provingState.epochNumber);
876
884
  }
877
885
  }), (result)=>{
878
- logger.debug(`Completed proof for ${rollupType} for tx ${processedTx.hash.toString()}`);
886
+ this.logger.debug(`Completed proof for ${rollupType} for tx ${processedTx.hash.toString()}`);
879
887
  validatePartialState(result.inputs.endTreeSnapshots, txProvingState.treeSnapshots);
880
888
  const leafLocation = provingState.setBaseRollupProof(txIndex, result);
881
889
  if (provingState.totalNumTxs === 1) {
@@ -889,14 +897,14 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
889
897
  // Once completed, will enqueue the the public tx base rollup.
890
898
  getOrEnqueueChonkVerifier(provingState, txIndex) {
891
899
  if (!provingState.verifyState()) {
892
- logger.debug('Not running chonk verifier circuit, state invalid');
900
+ this.logger.debug('Not running chonk verifier circuit, state invalid');
893
901
  return;
894
902
  }
895
903
  const txProvingState = provingState.getTxProvingState(txIndex);
896
904
  const txHash = txProvingState.processedTx.hash.toString();
897
905
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH;
898
906
  const handleResult = (result)=>{
899
- logger.debug(`Got chonk verifier proof for tx index: ${txIndex}`, {
907
+ this.logger.debug(`Got chonk verifier proof for tx index: ${txIndex}`, {
900
908
  txHash
901
909
  });
902
910
  txProvingState.setPublicChonkVerifierProof(result);
@@ -904,18 +912,18 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
904
912
  this.checkAndEnqueueBaseRollup(provingState, txIndex);
905
913
  };
906
914
  if (this.provingState?.cachedChonkVerifierProofs.has(txHash)) {
907
- logger.debug(`Chonk verifier proof already enqueued for tx index: ${txIndex}`, {
915
+ this.logger.debug(`Chonk verifier proof already enqueued for tx index: ${txIndex}`, {
908
916
  txHash
909
917
  });
910
918
  void this.provingState.cachedChonkVerifierProofs.get(txHash).then(handleResult);
911
919
  return;
912
920
  }
913
- logger.debug(`Enqueuing chonk verifier circuit for tx index: ${txIndex}`);
921
+ this.logger.debug(`Enqueuing chonk verifier circuit for tx index: ${txIndex}`);
914
922
  this.doEnqueueChonkVerifier(txHash, txProvingState.getPublicChonkVerifierPrivateInputs(), handleResult);
915
923
  }
916
924
  doEnqueueChonkVerifier(txHash, inputs, handler, provingState = this.provingState) {
917
925
  if (!provingState.verifyState()) {
918
- logger.debug('Not running chonk verifier circuit, state invalid');
926
+ this.logger.debug('Not running chonk verifier circuit, state invalid');
919
927
  return;
920
928
  }
921
929
  this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getPublicChonkVerifierProof', {
@@ -927,11 +935,11 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
927
935
  // Enqueues the next level of merge if all inputs are available
928
936
  enqueueMergeRollup(provingState, location) {
929
937
  if (!provingState.verifyState()) {
930
- logger.debug('Not running merge rollup. State no longer valid.');
938
+ this.logger.debug('Not running merge rollup. State no longer valid.');
931
939
  return;
932
940
  }
933
941
  if (!provingState.tryStartProvingMerge(location)) {
934
- logger.debug('Merge rollup already started.');
942
+ this.logger.debug('Merge rollup already started.');
935
943
  return;
936
944
  }
937
945
  const inputs = provingState.getMergeRollupInputs(location);
@@ -945,15 +953,15 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
945
953
  // Executes the block root rollup circuit
946
954
  enqueueBlockRootRollup(provingState) {
947
955
  if (!provingState.verifyState()) {
948
- logger.debug('Not running block root rollup, state no longer valid');
956
+ this.logger.debug('Not running block root rollup, state no longer valid');
949
957
  return;
950
958
  }
951
959
  if (!provingState.tryStartProvingBlockRoot()) {
952
- logger.debug('Block root rollup already started.');
960
+ this.logger.debug('Block root rollup already started.');
953
961
  return;
954
962
  }
955
963
  const { rollupType, inputs } = provingState.getBlockRootRollupTypeAndInputs();
956
- logger.debug(`Enqueuing ${rollupType} for block ${provingState.blockNumber}.`);
964
+ this.logger.debug(`Enqueuing ${rollupType} for block ${provingState.blockNumber}.`);
957
965
  this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getBlockRootRollupProof', {
958
966
  [Attributes.PROTOCOL_CIRCUIT_NAME]: rollupType
959
967
  }, (signal)=>{
@@ -969,29 +977,28 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
969
977
  return this.prover.getBlockRootRollupProof(inputs, signal, provingState.epochNumber);
970
978
  }
971
979
  }), async (result)=>{
972
- logger.debug(`Completed ${rollupType} proof for block ${provingState.blockNumber}`);
980
+ this.logger.debug(`Completed ${rollupType} proof for block ${provingState.blockNumber}`);
973
981
  const leafLocation = provingState.setBlockRootRollupProof(result);
974
982
  const checkpointProvingState = provingState.parentCheckpoint;
975
- // If the proofs were slower than the block header building, then we need to try validating the block header hashes here.
983
+ // Verification is called from both here and setBlockCompleted. Whichever runs last
984
+ // will be the first to see all three pieces (header, proof output, archive) and run the checks.
976
985
  await this.verifyBuiltBlockAgainstSyncedState(provingState);
977
986
  if (checkpointProvingState.totalNumBlocks === 1) {
978
- this.checkAndEnqueueCheckpointRootRollup(checkpointProvingState);
987
+ await this.checkAndEnqueueCheckpointRootRollup(checkpointProvingState);
979
988
  } else {
980
- this.checkAndEnqueueNextBlockMergeRollup(checkpointProvingState, leafLocation);
989
+ await this.checkAndEnqueueNextBlockMergeRollup(checkpointProvingState, leafLocation);
981
990
  }
982
- // We are finished with the block at this point, ensure the fork is cleaned up
983
- void this.cleanupDBFork(provingState.blockNumber);
984
991
  });
985
992
  }
986
993
  // Executes the base parity circuit and stores the intermediate state for the root parity circuit
987
994
  // Enqueues the root parity circuit if all inputs are available
988
995
  enqueueBaseParityCircuit(checkpointProvingState, provingState, baseParityIndex) {
989
996
  if (!provingState.verifyState()) {
990
- logger.debug('Not running base parity. State no longer valid.');
997
+ this.logger.debug('Not running base parity. State no longer valid.');
991
998
  return;
992
999
  }
993
1000
  if (!provingState.tryStartProvingBaseParity(baseParityIndex)) {
994
- logger.warn(`Base parity ${baseParityIndex} already started.`);
1001
+ this.logger.warn(`Base parity ${baseParityIndex} already started.`);
995
1002
  return;
996
1003
  }
997
1004
  const inputs = checkpointProvingState.getBaseParityInputs(baseParityIndex);
@@ -1012,11 +1019,11 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
1012
1019
  // Enqueues the root rollup proof if all inputs are available
1013
1020
  enqueueRootParityCircuit(provingState) {
1014
1021
  if (!provingState.verifyState()) {
1015
- logger.debug('Not running root parity. State no longer valid.');
1022
+ this.logger.debug('Not running root parity. State no longer valid.');
1016
1023
  return;
1017
1024
  }
1018
1025
  if (!provingState.tryStartProvingRootParity()) {
1019
- logger.debug('Root parity already started.');
1026
+ this.logger.debug('Root parity already started.');
1020
1027
  return;
1021
1028
  }
1022
1029
  const inputs = provingState.getParityRootInputs();
@@ -1031,33 +1038,33 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
1031
1038
  // Enqueues the next level of merge if all inputs are available
1032
1039
  enqueueBlockMergeRollup(provingState, location) {
1033
1040
  if (!provingState.verifyState()) {
1034
- logger.debug('Not running block merge rollup. State no longer valid.');
1041
+ this.logger.debug('Not running block merge rollup. State no longer valid.');
1035
1042
  return;
1036
1043
  }
1037
1044
  if (!provingState.tryStartProvingBlockMerge(location)) {
1038
- logger.debug('Block merge rollup already started.');
1045
+ this.logger.debug('Block merge rollup already started.');
1039
1046
  return;
1040
1047
  }
1041
1048
  const inputs = provingState.getBlockMergeRollupInputs(location);
1042
1049
  this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getBlockMergeRollupProof', {
1043
1050
  [Attributes.PROTOCOL_CIRCUIT_NAME]: 'rollup-block-merge'
1044
- }, (signal)=>this.prover.getBlockMergeRollupProof(inputs, signal, provingState.epochNumber)), (result)=>{
1051
+ }, (signal)=>this.prover.getBlockMergeRollupProof(inputs, signal, provingState.epochNumber)), async (result)=>{
1045
1052
  provingState.setBlockMergeRollupProof(location, result);
1046
- this.checkAndEnqueueNextBlockMergeRollup(provingState, location);
1053
+ await this.checkAndEnqueueNextBlockMergeRollup(provingState, location);
1047
1054
  });
1048
1055
  }
1049
- enqueueCheckpointRootRollup(provingState) {
1056
+ async enqueueCheckpointRootRollup(provingState) {
1050
1057
  if (!provingState.verifyState()) {
1051
- logger.debug('Not running checkpoint root rollup. State no longer valid.');
1058
+ this.logger.debug('Not running checkpoint root rollup. State no longer valid.');
1052
1059
  return;
1053
1060
  }
1054
1061
  if (!provingState.tryStartProvingCheckpointRoot()) {
1055
- logger.debug('Checkpoint root rollup already started.');
1062
+ this.logger.debug('Checkpoint root rollup already started.');
1056
1063
  return;
1057
1064
  }
1058
1065
  const rollupType = provingState.getCheckpointRootRollupType();
1059
- logger.debug(`Enqueuing ${rollupType} for checkpoint ${provingState.index}.`);
1060
- const inputs = provingState.getCheckpointRootRollupInputs();
1066
+ this.logger.debug(`Enqueuing ${rollupType} for checkpoint ${provingState.index}.`);
1067
+ const inputs = await provingState.getCheckpointRootRollupInputs();
1061
1068
  this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getCheckpointRootRollupProof', {
1062
1069
  [Attributes.PROTOCOL_CIRCUIT_NAME]: rollupType
1063
1070
  }, (signal)=>{
@@ -1070,11 +1077,11 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
1070
1077
  const computedEndBlobAccumulatorState = provingState.getEndBlobAccumulator().toBlobAccumulator();
1071
1078
  const circuitEndBlobAccumulatorState = result.inputs.endBlobAccumulator;
1072
1079
  if (!circuitEndBlobAccumulatorState.equals(computedEndBlobAccumulatorState)) {
1073
- logger.error(`Blob accumulator state mismatch.\nCircuit: ${inspect(circuitEndBlobAccumulatorState)}\nComputed: ${inspect(computedEndBlobAccumulatorState)}`);
1080
+ this.logger.error(`Blob accumulator state mismatch.\nCircuit: ${inspect(circuitEndBlobAccumulatorState)}\nComputed: ${inspect(computedEndBlobAccumulatorState)}`);
1074
1081
  provingState.reject(`Blob accumulator state mismatch.`);
1075
1082
  return;
1076
1083
  }
1077
- logger.debug(`Completed ${rollupType} proof for checkpoint ${provingState.index}.`);
1084
+ this.logger.debug(`Completed ${rollupType} proof for checkpoint ${provingState.index}.`);
1078
1085
  const leafLocation = provingState.setCheckpointRootRollupProof(result);
1079
1086
  const epochProvingState = provingState.parentEpoch;
1080
1087
  if (epochProvingState.totalNumCheckpoints === 1) {
@@ -1086,37 +1093,37 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
1086
1093
  }
1087
1094
  enqueueCheckpointMergeRollup(provingState, location) {
1088
1095
  if (!provingState.verifyState()) {
1089
- logger.debug('Not running checkpoint merge rollup. State no longer valid.');
1096
+ this.logger.debug('Not running checkpoint merge rollup. State no longer valid.');
1090
1097
  return;
1091
1098
  }
1092
1099
  if (!provingState.tryStartProvingCheckpointMerge(location)) {
1093
- logger.debug('Checkpoint merge rollup already started.');
1100
+ this.logger.debug('Checkpoint merge rollup already started.');
1094
1101
  return;
1095
1102
  }
1096
1103
  const inputs = provingState.getCheckpointMergeRollupInputs(location);
1097
1104
  this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getCheckpointMergeRollupProof', {
1098
1105
  [Attributes.PROTOCOL_CIRCUIT_NAME]: 'rollup-checkpoint-merge'
1099
1106
  }, (signal)=>this.prover.getCheckpointMergeRollupProof(inputs, signal, provingState.epochNumber)), (result)=>{
1100
- logger.debug('Completed proof for checkpoint merge rollup.');
1107
+ this.logger.debug('Completed proof for checkpoint merge rollup.');
1101
1108
  provingState.setCheckpointMergeRollupProof(location, result);
1102
1109
  this.checkAndEnqueueNextCheckpointMergeRollup(provingState, location);
1103
1110
  });
1104
1111
  }
1105
1112
  enqueueEpochPadding(provingState) {
1106
1113
  if (!provingState.verifyState()) {
1107
- logger.debug('Not running epoch padding. State no longer valid.');
1114
+ this.logger.debug('Not running epoch padding. State no longer valid.');
1108
1115
  return;
1109
1116
  }
1110
1117
  if (!provingState.tryStartProvingPaddingCheckpoint()) {
1111
- logger.debug('Padding checkpoint already started.');
1118
+ this.logger.debug('Padding checkpoint already started.');
1112
1119
  return;
1113
1120
  }
1114
- logger.debug('Padding epoch proof with a padding block root proof.');
1121
+ this.logger.debug('Padding epoch proof with a padding block root proof.');
1115
1122
  const inputs = provingState.getPaddingCheckpointInputs();
1116
1123
  this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getCheckpointPaddingRollupProof', {
1117
1124
  [Attributes.PROTOCOL_CIRCUIT_NAME]: 'rollup-checkpoint-padding'
1118
1125
  }, (signal)=>this.prover.getCheckpointPaddingRollupProof(inputs, signal, provingState.epochNumber)), (result)=>{
1119
- logger.debug('Completed proof for padding checkpoint.');
1126
+ this.logger.debug('Completed proof for padding checkpoint.');
1120
1127
  provingState.setCheckpointPaddingProof(result);
1121
1128
  this.checkAndEnqueueRootRollup(provingState);
1122
1129
  });
@@ -1124,15 +1131,15 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
1124
1131
  // Executes the root rollup circuit
1125
1132
  enqueueRootRollup(provingState) {
1126
1133
  if (!provingState.verifyState()) {
1127
- logger.debug('Not running root rollup, state no longer valid');
1134
+ this.logger.debug('Not running root rollup, state no longer valid');
1128
1135
  return;
1129
1136
  }
1130
- logger.debug(`Preparing root rollup`);
1137
+ this.logger.debug(`Preparing root rollup`);
1131
1138
  const inputs = provingState.getRootRollupInputs();
1132
1139
  this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getRootRollupProof', {
1133
1140
  [Attributes.PROTOCOL_CIRCUIT_NAME]: 'rollup-root'
1134
1141
  }, (signal)=>this.prover.getRootRollupProof(inputs, signal, provingState.epochNumber)), (result)=>{
1135
- logger.verbose(`Orchestrator completed root rollup for epoch ${provingState.epochNumber}`);
1142
+ this.logger.verbose(`Orchestrator completed root rollup for epoch ${provingState.epochNumber}`);
1136
1143
  provingState.setRootRollupProof(result);
1137
1144
  provingState.resolve({
1138
1145
  status: 'success'
@@ -1152,27 +1159,27 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
1152
1159
  }
1153
1160
  checkAndEnqueueBlockRootRollup(provingState) {
1154
1161
  if (!provingState.isReadyForBlockRootRollup()) {
1155
- logger.debug('Not ready for block root rollup');
1162
+ this.logger.debug('Not ready for block root rollup');
1156
1163
  return;
1157
1164
  }
1158
1165
  this.enqueueBlockRootRollup(provingState);
1159
1166
  }
1160
- checkAndEnqueueNextBlockMergeRollup(provingState, currentLocation) {
1167
+ async checkAndEnqueueNextBlockMergeRollup(provingState, currentLocation) {
1161
1168
  if (!provingState.isReadyForBlockMerge(currentLocation)) {
1162
1169
  return;
1163
1170
  }
1164
1171
  const parentLocation = provingState.getParentLocation(currentLocation);
1165
1172
  if (parentLocation.level === 0) {
1166
- this.checkAndEnqueueCheckpointRootRollup(provingState);
1173
+ await this.checkAndEnqueueCheckpointRootRollup(provingState);
1167
1174
  } else {
1168
1175
  this.enqueueBlockMergeRollup(provingState, parentLocation);
1169
1176
  }
1170
1177
  }
1171
- checkAndEnqueueCheckpointRootRollup(provingState) {
1178
+ async checkAndEnqueueCheckpointRootRollup(provingState) {
1172
1179
  if (!provingState.isReadyForCheckpointRoot()) {
1173
1180
  return;
1174
1181
  }
1175
- this.enqueueCheckpointRootRollup(provingState);
1182
+ await this.enqueueCheckpointRootRollup(provingState);
1176
1183
  }
1177
1184
  checkAndEnqueueNextCheckpointMergeRollup(provingState, currentLocation) {
1178
1185
  if (!provingState.isReadyForCheckpointMerge(currentLocation)) {
@@ -1187,7 +1194,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
1187
1194
  }
1188
1195
  checkAndEnqueueRootRollup(provingState) {
1189
1196
  if (!provingState.isReadyForRootRollup()) {
1190
- logger.debug('Not ready for root rollup');
1197
+ this.logger.debug('Not ready for root rollup');
1191
1198
  return;
1192
1199
  }
1193
1200
  this.enqueueRootRollup(provingState);
@@ -1199,7 +1206,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
1199
1206
  * @param txIndex - The index of the transaction being proven
1200
1207
  */ enqueueVM(provingState, txIndex) {
1201
1208
  if (!provingState.verifyState()) {
1202
- logger.debug(`Not running VM circuit as state is no longer valid`);
1209
+ this.logger.debug(`Not running VM circuit as state is no longer valid`);
1203
1210
  return;
1204
1211
  }
1205
1212
  const txProvingState = provingState.getTxProvingState(txIndex);
@@ -1210,7 +1217,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
1210
1217
  return await this.prover.getAvmProof(inputs, signal, provingState.epochNumber);
1211
1218
  });
1212
1219
  this.deferredProving(provingState, doAvmProving, (proof)=>{
1213
- logger.debug(`Proven VM for tx index: ${txIndex}`);
1220
+ this.logger.debug(`Proven VM for tx index: ${txIndex}`);
1214
1221
  txProvingState.setAvmProof(proof);
1215
1222
  this.checkAndEnqueueBaseRollup(provingState, txIndex);
1216
1223
  });
@@ -1221,7 +1228,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
1221
1228
  return;
1222
1229
  }
1223
1230
  // We must have completed all proving (chonk verifier proof and (if required) vm proof are generated), we now move to the base rollup.
1224
- logger.debug(`Public functions completed for tx ${txIndex} enqueueing base rollup`);
1231
+ this.logger.debug(`Public functions completed for tx ${txIndex} enqueueing base rollup`);
1225
1232
  this.enqueueBaseRollup(provingState, txIndex);
1226
1233
  }
1227
1234
  }
@@ -8,13 +8,13 @@ export declare class ProverClient implements EpochProverManager {
8
8
  private config;
9
9
  private worldState;
10
10
  private orchestratorClient;
11
+ private proofStore;
12
+ private failedProofStore;
11
13
  private agentClient?;
12
14
  private telemetry;
13
15
  private log;
14
16
  private running;
15
17
  private agents;
16
- private proofStore;
17
- private failedProofStore;
18
18
  private constructor();
19
19
  createEpochProver(): EpochProver;
20
20
  getProverId(): EthAddress;
@@ -39,4 +39,4 @@ export declare class ProverClient implements EpochProverManager {
39
39
  private stopAgents;
40
40
  }
41
41
  export declare function buildServerCircuitProver(config: ActualProverConfig & ACVMConfig & BBConfig, telemetry: TelemetryClient): Promise<ServerCircuitProver>;
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLWNsaWVudC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3Zlci1jbGllbnQvcHJvdmVyLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxVQUFVLEVBQUUsS0FBSyxRQUFRLEVBQTJDLE1BQU0sa0JBQWtCLENBQUM7QUFFM0csT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHaEUsT0FBTyxFQUNMLEtBQUssa0JBQWtCLEVBQ3ZCLEtBQUssV0FBVyxFQUNoQixLQUFLLGtCQUFrQixFQUN2QixLQUFLLHdCQUF3QixFQUM3QixLQUFLLGdCQUFnQixFQUNyQixLQUFLLGtCQUFrQixFQUV2QixLQUFLLHdCQUF3QixFQUM3QixLQUFLLG1CQUFtQixFQUV6QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRixPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQU92RCxzSEFBc0g7QUFDdEgscUJBQWEsWUFBYSxZQUFXLGtCQUFrQjtJQVFuRCxPQUFPLENBQUMsTUFBTTtJQUNkLE9BQU8sQ0FBQyxVQUFVO0lBQ2xCLE9BQU8sQ0FBQyxrQkFBa0I7SUFDMUIsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUNwQixPQUFPLENBQUMsU0FBUztJQUNqQixPQUFPLENBQUMsR0FBRztJQVpiLE9BQU8sQ0FBQyxPQUFPLENBQVM7SUFDeEIsT0FBTyxDQUFDLE1BQU0sQ0FBc0I7SUFFcEMsT0FBTyxDQUFDLFVBQVUsQ0FBYTtJQUMvQixPQUFPLENBQUMsZ0JBQWdCLENBQXlCO0lBRWpELE9BQU8sZUFVTjtJQUVNLGlCQUFpQixJQUFJLFdBQVcsQ0FJdEM7SUFFTSxXQUFXLElBQUksVUFBVSxDQUUvQjtJQUVLLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsa0JBQWtCLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBWTNFO0lBRUQ7O09BRUc7SUFDVSxLQUFLLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQU9sQztJQUVEOztPQUVHO0lBQ1UsSUFBSSxrQkFPaEI7SUFFRDs7Ozs7T0FLRztJQUNILE9BQW9CLEdBQUcsQ0FDckIsTUFBTSxFQUFFLGtCQUFrQixFQUMxQixVQUFVLEVBQUUsd0JBQXdCLEdBQUcsd0JBQXdCLEVBQy9ELE1BQU0sRUFBRSxnQkFBZ0IsRUFDeEIsU0FBUyxHQUFFLGVBQXNDLHlCQUtsRDtJQUVNLG1CQUFtQixJQUFJLGtCQUFrQixDQU0vQztZQUVhLG9CQUFvQjtZQW1CcEIsVUFBVTtDQUd6QjtBQUVELHdCQUFnQix3QkFBd0IsQ0FDdEMsTUFBTSxFQUFFLGtCQUFrQixHQUFHLFVBQVUsR0FBRyxRQUFRLEVBQ2xELFNBQVMsRUFBRSxlQUFlLEdBQ3pCLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQVU5QiJ9
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLWNsaWVudC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3Zlci1jbGllbnQvcHJvdmVyLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxVQUFVLEVBQUUsS0FBSyxRQUFRLEVBQTJDLE1BQU0sa0JBQWtCLENBQUM7QUFFM0csT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHaEUsT0FBTyxFQUNMLEtBQUssa0JBQWtCLEVBQ3ZCLEtBQUssV0FBVyxFQUNoQixLQUFLLGtCQUFrQixFQUN2QixLQUFLLHdCQUF3QixFQUM3QixLQUFLLGdCQUFnQixFQUNyQixLQUFLLGtCQUFrQixFQUV2QixLQUFLLHdCQUF3QixFQUM3QixLQUFLLG1CQUFtQixFQUV6QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRixPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQU92RCxzSEFBc0g7QUFDdEgscUJBQWEsWUFBYSxZQUFXLGtCQUFrQjtJQUtuRCxPQUFPLENBQUMsTUFBTTtJQUNkLE9BQU8sQ0FBQyxVQUFVO0lBQ2xCLE9BQU8sQ0FBQyxrQkFBa0I7SUFDMUIsT0FBTyxDQUFDLFVBQVU7SUFDbEIsT0FBTyxDQUFDLGdCQUFnQjtJQUN4QixPQUFPLENBQUMsV0FBVyxDQUFDO0lBQ3BCLE9BQU8sQ0FBQyxTQUFTO0lBQ2pCLE9BQU8sQ0FBQyxHQUFHO0lBWGIsT0FBTyxDQUFDLE9BQU8sQ0FBUztJQUN4QixPQUFPLENBQUMsTUFBTSxDQUFzQjtJQUVwQyxPQUFPLGVBU0g7SUFFRyxpQkFBaUIsSUFBSSxXQUFXLENBa0J0QztJQUVNLFdBQVcsSUFBSSxVQUFVLENBRS9CO0lBRUssa0JBQWtCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FZM0U7SUFFRDs7T0FFRztJQUNVLEtBQUssSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBT2xDO0lBRUQ7O09BRUc7SUFDVSxJQUFJLGtCQU9oQjtJQUVEOzs7OztPQUtHO0lBQ0gsT0FBb0IsR0FBRyxDQUNyQixNQUFNLEVBQUUsa0JBQWtCLEVBQzFCLFVBQVUsRUFBRSx3QkFBd0IsR0FBRyx3QkFBd0IsRUFDL0QsTUFBTSxFQUFFLGdCQUFnQixFQUN4QixTQUFTLEdBQUUsZUFBc0MseUJBT2xEO0lBRU0sbUJBQW1CLElBQUksa0JBQWtCLENBTS9DO1lBRWEsb0JBQW9CO1lBcUJwQixVQUFVO0NBR3pCO0FBRUQsd0JBQWdCLHdCQUF3QixDQUN0QyxNQUFNLEVBQUUsa0JBQWtCLEdBQUcsVUFBVSxHQUFHLFFBQVEsRUFDbEQsU0FBUyxFQUFFLGVBQWUsR0FDekIsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBVzlCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"prover-client.d.ts","sourceRoot":"","sources":["../../src/prover-client/prover-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAA2C,MAAM,kBAAkB,CAAC;AAE3G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EAEvB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EAEzB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAEnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAOvD,sHAAsH;AACtH,qBAAa,YAAa,YAAW,kBAAkB;IAQnD,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,WAAW,CAAC;IACpB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,GAAG;IAZb,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,gBAAgB,CAAyB;IAEjD,OAAO,eAUN;IAEM,iBAAiB,IAAI,WAAW,CAItC;IAEM,WAAW,IAAI,UAAU,CAE/B;IAEK,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAY3E;IAED;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAOlC;IAED;;OAEG;IACU,IAAI,kBAOhB;IAED;;;;;OAKG;IACH,OAAoB,GAAG,CACrB,MAAM,EAAE,kBAAkB,EAC1B,UAAU,EAAE,wBAAwB,GAAG,wBAAwB,EAC/D,MAAM,EAAE,gBAAgB,EACxB,SAAS,GAAE,eAAsC,yBAKlD;IAEM,mBAAmB,IAAI,kBAAkB,CAM/C;YAEa,oBAAoB;YAmBpB,UAAU;CAGzB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,kBAAkB,GAAG,UAAU,GAAG,QAAQ,EAClD,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,mBAAmB,CAAC,CAU9B"}
1
+ {"version":3,"file":"prover-client.d.ts","sourceRoot":"","sources":["../../src/prover-client/prover-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAA2C,MAAM,kBAAkB,CAAC;AAE3G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EAEvB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EAEzB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAEnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAOvD,sHAAsH;AACtH,qBAAa,YAAa,YAAW,kBAAkB;IAKnD,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,WAAW,CAAC;IACpB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,GAAG;IAXb,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,eASH;IAEG,iBAAiB,IAAI,WAAW,CAkBtC;IAEM,WAAW,IAAI,UAAU,CAE/B;IAEK,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAY3E;IAED;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAOlC;IAED;;OAEG;IACU,IAAI,kBAOhB;IAED;;;;;OAKG;IACH,OAAoB,GAAG,CACrB,MAAM,EAAE,kBAAkB,EAC1B,UAAU,EAAE,wBAAwB,GAAG,wBAAwB,EAC/D,MAAM,EAAE,gBAAgB,EACxB,SAAS,GAAE,eAAsC,yBAOlD;IAEM,mBAAmB,IAAI,kBAAkB,CAM/C;YAEa,oBAAoB;YAqBpB,UAAU;CAGzB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,kBAAkB,GAAG,UAAU,GAAG,QAAQ,EAClD,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,mBAAmB,CAAC,CAW9B"}