@aztec/prover-client 0.0.1-commit.e61ad554 → 0.0.1-commit.ec5f612

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 +12 -5
  2. package/dest/light/lightweight_checkpoint_builder.d.ts.map +1 -1
  3. package/dest/light/lightweight_checkpoint_builder.js +42 -20
  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 +4 -4
  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 +5 -3
  21. package/dest/orchestrator/orchestrator.d.ts.map +1 -1
  22. package/dest/orchestrator/orchestrator.js +105 -113
  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 +9 -1
  30. package/dest/proving_broker/config.d.ts.map +1 -1
  31. package/dest/proving_broker/config.js +13 -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 +15 -16
  58. package/src/light/lightweight_checkpoint_builder.ts +48 -21
  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 +4 -4
  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 +116 -121
  66. package/src/prover-client/prover-client.ts +22 -13
  67. package/src/proving_broker/broker_prover_facade.ts +6 -3
  68. package/src/proving_broker/config.ts +13 -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)=>({
@@ -450,7 +449,8 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
450
449
  metrics;
451
450
  // eslint-disable-next-line aztec-custom/no-non-primitive-in-collections
452
451
  dbs;
453
- constructor(dbProvider, prover, proverId, cancelJobsOnStop = false, telemetryClient = getTelemetryClient()){
452
+ logger;
453
+ constructor(dbProvider, prover, proverId, cancelJobsOnStop = false, telemetryClient = getTelemetryClient(), bindings){
454
454
  this.dbProvider = dbProvider;
455
455
  this.prover = prover;
456
456
  this.proverId = proverId;
@@ -459,6 +459,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
459
459
  this.pendingProvingJobs = [];
460
460
  this.provingPromise = undefined;
461
461
  this.dbs = new Map();
462
+ this.logger = createLogger('prover-client:orchestrator', bindings);
462
463
  this.metrics = new ProvingOrchestratorMetrics(telemetryClient, 'ProvingOrchestrator');
463
464
  }
464
465
  get tracer() {
@@ -483,7 +484,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
483
484
  status: 'failure',
484
485
  reason
485
486
  }));
486
- logger.info(`Starting epoch ${epochNumber} with ${totalNumCheckpoints} checkpoints.`);
487
+ this.logger.info(`Starting epoch ${epochNumber} with ${totalNumCheckpoints} checkpoints.`);
487
488
  this.provingState = new EpochProvingState(epochNumber, totalNumCheckpoints, finalBlobBatchingChallenges, (provingState)=>this.checkAndEnqueueCheckpointRootRollup(provingState), resolve, reject);
488
489
  this.provingPromise = promise;
489
490
  }
@@ -505,10 +506,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
505
506
  const lastBlockNumber = headerOfLastBlockInPreviousCheckpoint.globalVariables.blockNumber;
506
507
  const db = await this.dbProvider.fork(lastBlockNumber);
507
508
  const firstBlockNumber = BlockNumber(lastBlockNumber + 1);
508
- this.dbs.set(firstBlockNumber, {
509
- fork: db,
510
- cleanupPromise: undefined
511
- });
509
+ this.dbs.set(firstBlockNumber, db);
512
510
  // Get archive sibling path before any block in this checkpoint lands.
513
511
  const lastArchiveSiblingPath = await getLastSiblingPath(MerkleTreeId.ARCHIVE, db);
514
512
  // Insert all the l1 to l2 messages into the db. And get the states before and after the insertion.
@@ -533,17 +531,14 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
533
531
  throw new Error(`Checkpoint not accepting further blocks.`);
534
532
  }
535
533
  const constants = checkpointProvingState.constants;
536
- logger.info(`Starting block ${blockNumber} for slot ${constants.slotNumber}.`);
534
+ this.logger.info(`Starting block ${blockNumber} for slot ${constants.slotNumber}.`);
537
535
  // Fork the db only when it's not already set. The db for the first block is set in `startNewCheckpoint`.
538
536
  if (!this.dbs.has(blockNumber)) {
539
537
  // Fork world state at the end of the immediately previous block
540
538
  const db = await this.dbProvider.fork(BlockNumber(blockNumber - 1));
541
- this.dbs.set(blockNumber, {
542
- fork: db,
543
- cleanupPromise: undefined
544
- });
539
+ this.dbs.set(blockNumber, db);
545
540
  }
546
- const db = this.dbs.get(blockNumber).fork;
541
+ const db = this.getDbForBlock(blockNumber);
547
542
  // Get archive snapshot and sibling path before any txs in this block lands.
548
543
  const lastArchiveTreeSnapshot = await getTreeSnapshot(MerkleTreeId.ARCHIVE, db);
549
544
  const lastArchiveSiblingPath = await getRootTreeSiblingPath(MerkleTreeId.ARCHIVE, db);
@@ -578,7 +573,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
578
573
  if (!txs.length) {
579
574
  // To avoid an ugly throw below. If we require an empty block, we can just call setBlockCompleted
580
575
  // on a block with no txs. We cannot do that here because we cannot find the blockNumber without any txs.
581
- logger.warn(`Provided no txs to orchestrator addTxs.`);
576
+ this.logger.warn(`Provided no txs to orchestrator addTxs.`);
582
577
  return;
583
578
  }
584
579
  const blockNumber = BlockNumber(txs[0].globalVariables.blockNumber);
@@ -592,8 +587,8 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
592
587
  if (!provingState.isAcceptingTxs()) {
593
588
  throw new Error(`Block ${blockNumber} has been initialized with transactions.`);
594
589
  }
595
- logger.info(`Adding ${txs.length} transactions to block ${blockNumber}`);
596
- const db = this.dbs.get(blockNumber).fork;
590
+ this.logger.info(`Adding ${txs.length} transactions to block ${blockNumber}`);
591
+ const db = this.getDbForBlock(blockNumber);
597
592
  const lastArchive = provingState.lastArchiveTreeSnapshot;
598
593
  const newL1ToL2MessageTreeSnapshot = provingState.newL1ToL2MessageTreeSnapshot;
599
594
  const spongeBlobState = provingState.getStartSpongeBlob().clone();
@@ -603,7 +598,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
603
598
  throw new Error(`Invalid proving state when adding a tx`);
604
599
  }
605
600
  validateTx(tx);
606
- logger.debug(`Received transaction: ${tx.hash}`);
601
+ this.logger.debug(`Received transaction: ${tx.hash}`);
607
602
  const startSpongeBlob = spongeBlobState.clone();
608
603
  const [hints, treeSnapshots] = await this.prepareBaseRollupInputs(tx, lastArchive, newL1ToL2MessageTreeSnapshot, startSpongeBlob, db);
609
604
  if (!provingState.verifyState()) {
@@ -614,10 +609,10 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
614
609
  const txIndex = provingState.addNewTx(txProvingState);
615
610
  if (txProvingState.requireAvmProof) {
616
611
  this.getOrEnqueueChonkVerifier(provingState, txIndex);
617
- logger.debug(`Enqueueing public VM for tx ${txIndex}`);
612
+ this.logger.debug(`Enqueueing public VM for tx ${txIndex}`);
618
613
  this.enqueueVM(provingState, txIndex);
619
614
  } else {
620
- logger.debug(`Enqueueing base rollup for private-only tx ${txIndex}`);
615
+ this.logger.debug(`Enqueueing base rollup for private-only tx ${txIndex}`);
621
616
  this.enqueueBaseRollup(provingState, txIndex);
622
617
  }
623
618
  } catch (err) {
@@ -647,7 +642,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
647
642
  const txHash = tx.getTxHash().toString();
648
643
  const privateInputs = getPublicChonkVerifierPrivateInputsFromTx(tx, this.proverId.toField());
649
644
  const tubeProof = promiseWithResolvers();
650
- logger.debug(`Starting chonk verifier circuit for tx ${txHash}`);
645
+ this.logger.debug(`Starting chonk verifier circuit for tx ${txHash}`);
651
646
  this.doEnqueueChonkVerifier(txHash, privateInputs, (proof)=>{
652
647
  tubeProof.resolve(proof);
653
648
  });
@@ -676,17 +671,23 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
676
671
  throw new Error(`Block ${blockNumber} is still accepting txs. Call setBlockCompleted after all txs have been added.`);
677
672
  }
678
673
  // Given we've applied every change from this block, now assemble the block header:
679
- logger.verbose(`Block ${blockNumber} completed. Assembling header.`);
674
+ this.logger.verbose(`Block ${blockNumber} completed. Assembling header.`);
680
675
  const header = await provingState.buildBlockHeader();
681
676
  if (expectedHeader && !header.equals(expectedHeader)) {
682
- logger.error(`Block header mismatch: header=${header} expectedHeader=${expectedHeader}`);
677
+ this.logger.error(`Block header mismatch: header=${header} expectedHeader=${expectedHeader}`);
683
678
  throw new Error('Block header mismatch');
684
679
  }
685
- // Get db for this block
686
- const db = this.dbs.get(provingState.blockNumber).fork;
687
- // Update the archive tree, so we're ready to start processing the next block:
688
- logger.verbose(`Updating archive tree with block ${provingState.blockNumber} header ${(await header.hash()).toString()}`);
689
- 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
+ }
690
691
  await this.verifyBuiltBlockAgainstSyncedState(provingState);
691
692
  return header;
692
693
  }
@@ -694,41 +695,38 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
694
695
  async verifyBuiltBlockAgainstSyncedState(provingState) {
695
696
  const builtBlockHeader = provingState.getBuiltBlockHeader();
696
697
  if (!builtBlockHeader) {
697
- logger.debug('Block header not built yet, skipping header check.');
698
+ this.logger.debug('Block header not built yet, skipping header check.');
698
699
  return;
699
700
  }
700
701
  const output = provingState.getBlockRootRollupOutput();
701
702
  if (!output) {
702
- 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.');
703
709
  return;
704
710
  }
705
711
  const header = await buildHeaderFromCircuitOutputs(output);
706
712
  if (!(await header.hash()).equals(await builtBlockHeader.hash())) {
707
- logger.error(`Block header mismatch.\nCircuit: ${inspect(header)}\nComputed: ${inspect(builtBlockHeader)}`);
713
+ this.logger.error(`Block header mismatch.\nCircuit: ${inspect(header)}\nComputed: ${inspect(builtBlockHeader)}`);
708
714
  provingState.reject(`Block header hash mismatch.`);
709
715
  return;
710
716
  }
711
- // Get db for this block
712
717
  const blockNumber = provingState.blockNumber;
713
- const db = this.dbs.get(blockNumber).fork;
714
- const newArchive = await getTreeSnapshot(MerkleTreeId.ARCHIVE, db);
715
718
  const syncedArchive = await getTreeSnapshot(MerkleTreeId.ARCHIVE, this.dbProvider.getSnapshot(blockNumber));
716
719
  if (!syncedArchive.equals(newArchive)) {
717
- 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)}`);
718
721
  provingState.reject(`Archive tree mismatch.`);
719
722
  return;
720
723
  }
721
724
  const circuitArchive = output.newArchive;
722
725
  if (!newArchive.equals(circuitArchive)) {
723
- logger.error(`New archive mismatch.\nCircuit: ${output.newArchive}\nComputed: ${newArchive}`);
726
+ this.logger.error(`New archive mismatch.\nCircuit: ${output.newArchive}\nComputed: ${newArchive}`);
724
727
  provingState.reject(`New archive mismatch.`);
725
728
  return;
726
729
  }
727
- // TODO(palla/prover): This closes the fork only on the happy path. If this epoch orchestrator
728
- // is aborted and never reaches this point, it will leak the fork. We need to add a global cleanup,
729
- // but have to make sure it only runs once all operations are completed, otherwise some function here
730
- // will attempt to access the fork after it was closed.
731
- void this.cleanupDBFork(blockNumber);
732
730
  }
733
731
  /**
734
732
  * Cancel any further proving.
@@ -741,6 +739,17 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
741
739
  }
742
740
  }
743
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;
744
753
  }
745
754
  /**
746
755
  * Returns the proof for the current epoch.
@@ -760,22 +769,6 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
760
769
  });
761
770
  return epochProofResult;
762
771
  }
763
- async cleanupDBFork(blockNumber) {
764
- logger.debug(`Cleaning up world state fork for ${blockNumber}`);
765
- const fork = this.dbs.get(blockNumber);
766
- if (!fork) {
767
- return;
768
- }
769
- try {
770
- if (!fork.cleanupPromise) {
771
- fork.cleanupPromise = fork.fork.close();
772
- }
773
- await fork.cleanupPromise;
774
- this.dbs.delete(blockNumber);
775
- } catch (err) {
776
- logger.error(`Error closing db for block ${blockNumber}`, err);
777
- }
778
- }
779
772
  /**
780
773
  * Enqueue a job to be scheduled
781
774
  * @param provingState - The proving state object being operated on
@@ -783,7 +776,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
783
776
  * @param job - The actual job, returns a promise notifying of the job's completion
784
777
  */ deferredProving(provingState, request, callback) {
785
778
  if (!provingState.verifyState()) {
786
- logger.debug(`Not enqueuing job, state no longer valid`);
779
+ this.logger.debug(`Not enqueuing job, state no longer valid`);
787
780
  return;
788
781
  }
789
782
  const controller = new AbortController();
@@ -798,7 +791,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
798
791
  }
799
792
  const result = await request(controller.signal);
800
793
  if (!provingState.verifyState()) {
801
- logger.debug(`State no longer valid, discarding result`);
794
+ this.logger.debug(`State no longer valid, discarding result`);
802
795
  return;
803
796
  }
804
797
  // we could have been cancelled whilst waiting for the result
@@ -813,7 +806,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
813
806
  // drop this result
814
807
  return;
815
808
  }
816
- logger.error(`Error thrown when proving job`, err);
809
+ this.logger.error(`Error thrown when proving job`, err);
817
810
  provingState.reject(`${err}`);
818
811
  } finally{
819
812
  const index = this.pendingProvingJobs.indexOf(controller);
@@ -869,17 +862,17 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
869
862
  // Executes the next level of merge if all inputs are available
870
863
  enqueueBaseRollup(provingState, txIndex) {
871
864
  if (!provingState.verifyState()) {
872
- logger.debug('Not running base rollup, state invalid');
865
+ this.logger.debug('Not running base rollup, state invalid');
873
866
  return;
874
867
  }
875
868
  if (!provingState.tryStartProvingBase(txIndex)) {
876
- logger.debug(`Base rollup for tx ${txIndex} already started.`);
869
+ this.logger.debug(`Base rollup for tx ${txIndex} already started.`);
877
870
  return;
878
871
  }
879
872
  const txProvingState = provingState.getTxProvingState(txIndex);
880
873
  const { processedTx } = txProvingState;
881
874
  const { rollupType, inputs } = txProvingState.getBaseRollupTypeAndInputs();
882
- logger.debug(`Enqueuing deferred proving base rollup for ${processedTx.hash.toString()}`);
875
+ this.logger.debug(`Enqueuing deferred proving base rollup for ${processedTx.hash.toString()}`);
883
876
  this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, `ProvingOrchestrator.prover.${inputs instanceof PrivateTxBaseRollupPrivateInputs ? 'getPrivateTxBaseRollupProof' : 'getPublicTxBaseRollupProof'}`, {
884
877
  [Attributes.TX_HASH]: processedTx.hash.toString(),
885
878
  [Attributes.PROTOCOL_CIRCUIT_NAME]: rollupType
@@ -890,7 +883,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
890
883
  return this.prover.getPublicTxBaseRollupProof(inputs, signal, provingState.epochNumber);
891
884
  }
892
885
  }), (result)=>{
893
- logger.debug(`Completed proof for ${rollupType} for tx ${processedTx.hash.toString()}`);
886
+ this.logger.debug(`Completed proof for ${rollupType} for tx ${processedTx.hash.toString()}`);
894
887
  validatePartialState(result.inputs.endTreeSnapshots, txProvingState.treeSnapshots);
895
888
  const leafLocation = provingState.setBaseRollupProof(txIndex, result);
896
889
  if (provingState.totalNumTxs === 1) {
@@ -904,14 +897,14 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
904
897
  // Once completed, will enqueue the the public tx base rollup.
905
898
  getOrEnqueueChonkVerifier(provingState, txIndex) {
906
899
  if (!provingState.verifyState()) {
907
- logger.debug('Not running chonk verifier circuit, state invalid');
900
+ this.logger.debug('Not running chonk verifier circuit, state invalid');
908
901
  return;
909
902
  }
910
903
  const txProvingState = provingState.getTxProvingState(txIndex);
911
904
  const txHash = txProvingState.processedTx.hash.toString();
912
905
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH;
913
906
  const handleResult = (result)=>{
914
- logger.debug(`Got chonk verifier proof for tx index: ${txIndex}`, {
907
+ this.logger.debug(`Got chonk verifier proof for tx index: ${txIndex}`, {
915
908
  txHash
916
909
  });
917
910
  txProvingState.setPublicChonkVerifierProof(result);
@@ -919,18 +912,18 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
919
912
  this.checkAndEnqueueBaseRollup(provingState, txIndex);
920
913
  };
921
914
  if (this.provingState?.cachedChonkVerifierProofs.has(txHash)) {
922
- logger.debug(`Chonk verifier proof already enqueued for tx index: ${txIndex}`, {
915
+ this.logger.debug(`Chonk verifier proof already enqueued for tx index: ${txIndex}`, {
923
916
  txHash
924
917
  });
925
918
  void this.provingState.cachedChonkVerifierProofs.get(txHash).then(handleResult);
926
919
  return;
927
920
  }
928
- logger.debug(`Enqueuing chonk verifier circuit for tx index: ${txIndex}`);
921
+ this.logger.debug(`Enqueuing chonk verifier circuit for tx index: ${txIndex}`);
929
922
  this.doEnqueueChonkVerifier(txHash, txProvingState.getPublicChonkVerifierPrivateInputs(), handleResult);
930
923
  }
931
924
  doEnqueueChonkVerifier(txHash, inputs, handler, provingState = this.provingState) {
932
925
  if (!provingState.verifyState()) {
933
- logger.debug('Not running chonk verifier circuit, state invalid');
926
+ this.logger.debug('Not running chonk verifier circuit, state invalid');
934
927
  return;
935
928
  }
936
929
  this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getPublicChonkVerifierProof', {
@@ -942,11 +935,11 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
942
935
  // Enqueues the next level of merge if all inputs are available
943
936
  enqueueMergeRollup(provingState, location) {
944
937
  if (!provingState.verifyState()) {
945
- logger.debug('Not running merge rollup. State no longer valid.');
938
+ this.logger.debug('Not running merge rollup. State no longer valid.');
946
939
  return;
947
940
  }
948
941
  if (!provingState.tryStartProvingMerge(location)) {
949
- logger.debug('Merge rollup already started.');
942
+ this.logger.debug('Merge rollup already started.');
950
943
  return;
951
944
  }
952
945
  const inputs = provingState.getMergeRollupInputs(location);
@@ -960,15 +953,15 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
960
953
  // Executes the block root rollup circuit
961
954
  enqueueBlockRootRollup(provingState) {
962
955
  if (!provingState.verifyState()) {
963
- logger.debug('Not running block root rollup, state no longer valid');
956
+ this.logger.debug('Not running block root rollup, state no longer valid');
964
957
  return;
965
958
  }
966
959
  if (!provingState.tryStartProvingBlockRoot()) {
967
- logger.debug('Block root rollup already started.');
960
+ this.logger.debug('Block root rollup already started.');
968
961
  return;
969
962
  }
970
963
  const { rollupType, inputs } = provingState.getBlockRootRollupTypeAndInputs();
971
- logger.debug(`Enqueuing ${rollupType} for block ${provingState.blockNumber}.`);
964
+ this.logger.debug(`Enqueuing ${rollupType} for block ${provingState.blockNumber}.`);
972
965
  this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getBlockRootRollupProof', {
973
966
  [Attributes.PROTOCOL_CIRCUIT_NAME]: rollupType
974
967
  }, (signal)=>{
@@ -984,29 +977,28 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
984
977
  return this.prover.getBlockRootRollupProof(inputs, signal, provingState.epochNumber);
985
978
  }
986
979
  }), async (result)=>{
987
- logger.debug(`Completed ${rollupType} proof for block ${provingState.blockNumber}`);
980
+ this.logger.debug(`Completed ${rollupType} proof for block ${provingState.blockNumber}`);
988
981
  const leafLocation = provingState.setBlockRootRollupProof(result);
989
982
  const checkpointProvingState = provingState.parentCheckpoint;
990
- // 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.
991
985
  await this.verifyBuiltBlockAgainstSyncedState(provingState);
992
986
  if (checkpointProvingState.totalNumBlocks === 1) {
993
- this.checkAndEnqueueCheckpointRootRollup(checkpointProvingState);
987
+ await this.checkAndEnqueueCheckpointRootRollup(checkpointProvingState);
994
988
  } else {
995
- this.checkAndEnqueueNextBlockMergeRollup(checkpointProvingState, leafLocation);
989
+ await this.checkAndEnqueueNextBlockMergeRollup(checkpointProvingState, leafLocation);
996
990
  }
997
- // We are finished with the block at this point, ensure the fork is cleaned up
998
- void this.cleanupDBFork(provingState.blockNumber);
999
991
  });
1000
992
  }
1001
993
  // Executes the base parity circuit and stores the intermediate state for the root parity circuit
1002
994
  // Enqueues the root parity circuit if all inputs are available
1003
995
  enqueueBaseParityCircuit(checkpointProvingState, provingState, baseParityIndex) {
1004
996
  if (!provingState.verifyState()) {
1005
- logger.debug('Not running base parity. State no longer valid.');
997
+ this.logger.debug('Not running base parity. State no longer valid.');
1006
998
  return;
1007
999
  }
1008
1000
  if (!provingState.tryStartProvingBaseParity(baseParityIndex)) {
1009
- logger.warn(`Base parity ${baseParityIndex} already started.`);
1001
+ this.logger.warn(`Base parity ${baseParityIndex} already started.`);
1010
1002
  return;
1011
1003
  }
1012
1004
  const inputs = checkpointProvingState.getBaseParityInputs(baseParityIndex);
@@ -1027,11 +1019,11 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
1027
1019
  // Enqueues the root rollup proof if all inputs are available
1028
1020
  enqueueRootParityCircuit(provingState) {
1029
1021
  if (!provingState.verifyState()) {
1030
- logger.debug('Not running root parity. State no longer valid.');
1022
+ this.logger.debug('Not running root parity. State no longer valid.');
1031
1023
  return;
1032
1024
  }
1033
1025
  if (!provingState.tryStartProvingRootParity()) {
1034
- logger.debug('Root parity already started.');
1026
+ this.logger.debug('Root parity already started.');
1035
1027
  return;
1036
1028
  }
1037
1029
  const inputs = provingState.getParityRootInputs();
@@ -1046,33 +1038,33 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
1046
1038
  // Enqueues the next level of merge if all inputs are available
1047
1039
  enqueueBlockMergeRollup(provingState, location) {
1048
1040
  if (!provingState.verifyState()) {
1049
- logger.debug('Not running block merge rollup. State no longer valid.');
1041
+ this.logger.debug('Not running block merge rollup. State no longer valid.');
1050
1042
  return;
1051
1043
  }
1052
1044
  if (!provingState.tryStartProvingBlockMerge(location)) {
1053
- logger.debug('Block merge rollup already started.');
1045
+ this.logger.debug('Block merge rollup already started.');
1054
1046
  return;
1055
1047
  }
1056
1048
  const inputs = provingState.getBlockMergeRollupInputs(location);
1057
1049
  this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getBlockMergeRollupProof', {
1058
1050
  [Attributes.PROTOCOL_CIRCUIT_NAME]: 'rollup-block-merge'
1059
- }, (signal)=>this.prover.getBlockMergeRollupProof(inputs, signal, provingState.epochNumber)), (result)=>{
1051
+ }, (signal)=>this.prover.getBlockMergeRollupProof(inputs, signal, provingState.epochNumber)), async (result)=>{
1060
1052
  provingState.setBlockMergeRollupProof(location, result);
1061
- this.checkAndEnqueueNextBlockMergeRollup(provingState, location);
1053
+ await this.checkAndEnqueueNextBlockMergeRollup(provingState, location);
1062
1054
  });
1063
1055
  }
1064
- enqueueCheckpointRootRollup(provingState) {
1056
+ async enqueueCheckpointRootRollup(provingState) {
1065
1057
  if (!provingState.verifyState()) {
1066
- logger.debug('Not running checkpoint root rollup. State no longer valid.');
1058
+ this.logger.debug('Not running checkpoint root rollup. State no longer valid.');
1067
1059
  return;
1068
1060
  }
1069
1061
  if (!provingState.tryStartProvingCheckpointRoot()) {
1070
- logger.debug('Checkpoint root rollup already started.');
1062
+ this.logger.debug('Checkpoint root rollup already started.');
1071
1063
  return;
1072
1064
  }
1073
1065
  const rollupType = provingState.getCheckpointRootRollupType();
1074
- logger.debug(`Enqueuing ${rollupType} for checkpoint ${provingState.index}.`);
1075
- const inputs = provingState.getCheckpointRootRollupInputs();
1066
+ this.logger.debug(`Enqueuing ${rollupType} for checkpoint ${provingState.index}.`);
1067
+ const inputs = await provingState.getCheckpointRootRollupInputs();
1076
1068
  this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getCheckpointRootRollupProof', {
1077
1069
  [Attributes.PROTOCOL_CIRCUIT_NAME]: rollupType
1078
1070
  }, (signal)=>{
@@ -1085,11 +1077,11 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
1085
1077
  const computedEndBlobAccumulatorState = provingState.getEndBlobAccumulator().toBlobAccumulator();
1086
1078
  const circuitEndBlobAccumulatorState = result.inputs.endBlobAccumulator;
1087
1079
  if (!circuitEndBlobAccumulatorState.equals(computedEndBlobAccumulatorState)) {
1088
- 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)}`);
1089
1081
  provingState.reject(`Blob accumulator state mismatch.`);
1090
1082
  return;
1091
1083
  }
1092
- logger.debug(`Completed ${rollupType} proof for checkpoint ${provingState.index}.`);
1084
+ this.logger.debug(`Completed ${rollupType} proof for checkpoint ${provingState.index}.`);
1093
1085
  const leafLocation = provingState.setCheckpointRootRollupProof(result);
1094
1086
  const epochProvingState = provingState.parentEpoch;
1095
1087
  if (epochProvingState.totalNumCheckpoints === 1) {
@@ -1101,37 +1093,37 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
1101
1093
  }
1102
1094
  enqueueCheckpointMergeRollup(provingState, location) {
1103
1095
  if (!provingState.verifyState()) {
1104
- logger.debug('Not running checkpoint merge rollup. State no longer valid.');
1096
+ this.logger.debug('Not running checkpoint merge rollup. State no longer valid.');
1105
1097
  return;
1106
1098
  }
1107
1099
  if (!provingState.tryStartProvingCheckpointMerge(location)) {
1108
- logger.debug('Checkpoint merge rollup already started.');
1100
+ this.logger.debug('Checkpoint merge rollup already started.');
1109
1101
  return;
1110
1102
  }
1111
1103
  const inputs = provingState.getCheckpointMergeRollupInputs(location);
1112
1104
  this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getCheckpointMergeRollupProof', {
1113
1105
  [Attributes.PROTOCOL_CIRCUIT_NAME]: 'rollup-checkpoint-merge'
1114
1106
  }, (signal)=>this.prover.getCheckpointMergeRollupProof(inputs, signal, provingState.epochNumber)), (result)=>{
1115
- logger.debug('Completed proof for checkpoint merge rollup.');
1107
+ this.logger.debug('Completed proof for checkpoint merge rollup.');
1116
1108
  provingState.setCheckpointMergeRollupProof(location, result);
1117
1109
  this.checkAndEnqueueNextCheckpointMergeRollup(provingState, location);
1118
1110
  });
1119
1111
  }
1120
1112
  enqueueEpochPadding(provingState) {
1121
1113
  if (!provingState.verifyState()) {
1122
- logger.debug('Not running epoch padding. State no longer valid.');
1114
+ this.logger.debug('Not running epoch padding. State no longer valid.');
1123
1115
  return;
1124
1116
  }
1125
1117
  if (!provingState.tryStartProvingPaddingCheckpoint()) {
1126
- logger.debug('Padding checkpoint already started.');
1118
+ this.logger.debug('Padding checkpoint already started.');
1127
1119
  return;
1128
1120
  }
1129
- logger.debug('Padding epoch proof with a padding block root proof.');
1121
+ this.logger.debug('Padding epoch proof with a padding block root proof.');
1130
1122
  const inputs = provingState.getPaddingCheckpointInputs();
1131
1123
  this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getCheckpointPaddingRollupProof', {
1132
1124
  [Attributes.PROTOCOL_CIRCUIT_NAME]: 'rollup-checkpoint-padding'
1133
1125
  }, (signal)=>this.prover.getCheckpointPaddingRollupProof(inputs, signal, provingState.epochNumber)), (result)=>{
1134
- logger.debug('Completed proof for padding checkpoint.');
1126
+ this.logger.debug('Completed proof for padding checkpoint.');
1135
1127
  provingState.setCheckpointPaddingProof(result);
1136
1128
  this.checkAndEnqueueRootRollup(provingState);
1137
1129
  });
@@ -1139,15 +1131,15 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
1139
1131
  // Executes the root rollup circuit
1140
1132
  enqueueRootRollup(provingState) {
1141
1133
  if (!provingState.verifyState()) {
1142
- logger.debug('Not running root rollup, state no longer valid');
1134
+ this.logger.debug('Not running root rollup, state no longer valid');
1143
1135
  return;
1144
1136
  }
1145
- logger.debug(`Preparing root rollup`);
1137
+ this.logger.debug(`Preparing root rollup`);
1146
1138
  const inputs = provingState.getRootRollupInputs();
1147
1139
  this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getRootRollupProof', {
1148
1140
  [Attributes.PROTOCOL_CIRCUIT_NAME]: 'rollup-root'
1149
1141
  }, (signal)=>this.prover.getRootRollupProof(inputs, signal, provingState.epochNumber)), (result)=>{
1150
- logger.verbose(`Orchestrator completed root rollup for epoch ${provingState.epochNumber}`);
1142
+ this.logger.verbose(`Orchestrator completed root rollup for epoch ${provingState.epochNumber}`);
1151
1143
  provingState.setRootRollupProof(result);
1152
1144
  provingState.resolve({
1153
1145
  status: 'success'
@@ -1167,27 +1159,27 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
1167
1159
  }
1168
1160
  checkAndEnqueueBlockRootRollup(provingState) {
1169
1161
  if (!provingState.isReadyForBlockRootRollup()) {
1170
- logger.debug('Not ready for block root rollup');
1162
+ this.logger.debug('Not ready for block root rollup');
1171
1163
  return;
1172
1164
  }
1173
1165
  this.enqueueBlockRootRollup(provingState);
1174
1166
  }
1175
- checkAndEnqueueNextBlockMergeRollup(provingState, currentLocation) {
1167
+ async checkAndEnqueueNextBlockMergeRollup(provingState, currentLocation) {
1176
1168
  if (!provingState.isReadyForBlockMerge(currentLocation)) {
1177
1169
  return;
1178
1170
  }
1179
1171
  const parentLocation = provingState.getParentLocation(currentLocation);
1180
1172
  if (parentLocation.level === 0) {
1181
- this.checkAndEnqueueCheckpointRootRollup(provingState);
1173
+ await this.checkAndEnqueueCheckpointRootRollup(provingState);
1182
1174
  } else {
1183
1175
  this.enqueueBlockMergeRollup(provingState, parentLocation);
1184
1176
  }
1185
1177
  }
1186
- checkAndEnqueueCheckpointRootRollup(provingState) {
1178
+ async checkAndEnqueueCheckpointRootRollup(provingState) {
1187
1179
  if (!provingState.isReadyForCheckpointRoot()) {
1188
1180
  return;
1189
1181
  }
1190
- this.enqueueCheckpointRootRollup(provingState);
1182
+ await this.enqueueCheckpointRootRollup(provingState);
1191
1183
  }
1192
1184
  checkAndEnqueueNextCheckpointMergeRollup(provingState, currentLocation) {
1193
1185
  if (!provingState.isReadyForCheckpointMerge(currentLocation)) {
@@ -1202,7 +1194,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
1202
1194
  }
1203
1195
  checkAndEnqueueRootRollup(provingState) {
1204
1196
  if (!provingState.isReadyForRootRollup()) {
1205
- logger.debug('Not ready for root rollup');
1197
+ this.logger.debug('Not ready for root rollup');
1206
1198
  return;
1207
1199
  }
1208
1200
  this.enqueueRootRollup(provingState);
@@ -1214,7 +1206,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
1214
1206
  * @param txIndex - The index of the transaction being proven
1215
1207
  */ enqueueVM(provingState, txIndex) {
1216
1208
  if (!provingState.verifyState()) {
1217
- 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`);
1218
1210
  return;
1219
1211
  }
1220
1212
  const txProvingState = provingState.getTxProvingState(txIndex);
@@ -1225,7 +1217,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
1225
1217
  return await this.prover.getAvmProof(inputs, signal, provingState.epochNumber);
1226
1218
  });
1227
1219
  this.deferredProving(provingState, doAvmProving, (proof)=>{
1228
- logger.debug(`Proven VM for tx index: ${txIndex}`);
1220
+ this.logger.debug(`Proven VM for tx index: ${txIndex}`);
1229
1221
  txProvingState.setAvmProof(proof);
1230
1222
  this.checkAndEnqueueBaseRollup(provingState, txIndex);
1231
1223
  });
@@ -1236,7 +1228,7 @@ _dec = trackSpan('ProvingOrchestrator.startNewBlock', (blockNumber)=>({
1236
1228
  return;
1237
1229
  }
1238
1230
  // We must have completed all proving (chonk verifier proof and (if required) vm proof are generated), we now move to the base rollup.
1239
- logger.debug(`Public functions completed for tx ${txIndex} enqueueing base rollup`);
1231
+ this.logger.debug(`Public functions completed for tx ${txIndex} enqueueing base rollup`);
1240
1232
  this.enqueueBaseRollup(provingState, txIndex);
1241
1233
  }
1242
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLWNsaWVudC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3Zlci1jbGllbnQvcHJvdmVyLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxVQUFVLEVBQUUsS0FBSyxRQUFRLEVBQTJDLE1BQU0sa0JBQWtCLENBQUM7QUFFM0csT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHaEUsT0FBTyxFQUNMLEtBQUssa0JBQWtCLEVBQ3ZCLEtBQUssV0FBVyxFQUNoQixLQUFLLGtCQUFrQixFQUN2QixLQUFLLHdCQUF3QixFQUM3QixLQUFLLGdCQUFnQixFQUNyQixLQUFLLGtCQUFrQixFQUV2QixLQUFLLHdCQUF3QixFQUM3QixLQUFLLG1CQUFtQixFQUV6QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRixPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQU92RCxzSEFBc0g7QUFDdEgscUJBQWEsWUFBYSxZQUFXLGtCQUFrQjtJQVFuRCxPQUFPLENBQUMsTUFBTTtJQUNkLE9BQU8sQ0FBQyxVQUFVO0lBQ2xCLE9BQU8sQ0FBQyxrQkFBa0I7SUFDMUIsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUNwQixPQUFPLENBQUMsU0FBUztJQUNqQixPQUFPLENBQUMsR0FBRztJQVpiLE9BQU8sQ0FBQyxPQUFPLENBQVM7SUFDeEIsT0FBTyxDQUFDLE1BQU0sQ0FBc0I7SUFFcEMsT0FBTyxDQUFDLFVBQVUsQ0FBYTtJQUMvQixPQUFPLENBQUMsZ0JBQWdCLENBQXlCO0lBRWpELE9BQU8sZUFVTjtJQUVNLGlCQUFpQixJQUFJLFdBQVcsQ0FVdEM7SUFFTSxXQUFXLElBQUksVUFBVSxDQUUvQjtJQUVLLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsa0JBQWtCLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBWTNFO0lBRUQ7O09BRUc7SUFDVSxLQUFLLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQU9sQztJQUVEOztPQUVHO0lBQ1UsSUFBSSxrQkFPaEI7SUFFRDs7Ozs7T0FLRztJQUNILE9BQW9CLEdBQUcsQ0FDckIsTUFBTSxFQUFFLGtCQUFrQixFQUMxQixVQUFVLEVBQUUsd0JBQXdCLEdBQUcsd0JBQXdCLEVBQy9ELE1BQU0sRUFBRSxnQkFBZ0IsRUFDeEIsU0FBUyxHQUFFLGVBQXNDLHlCQUtsRDtJQUVNLG1CQUFtQixJQUFJLGtCQUFrQixDQU0vQztZQUVhLG9CQUFvQjtZQW1CcEIsVUFBVTtDQUd6QjtBQUVELHdCQUFnQix3QkFBd0IsQ0FDdEMsTUFBTSxFQUFFLGtCQUFrQixHQUFHLFVBQVUsR0FBRyxRQUFRLEVBQ2xELFNBQVMsRUFBRSxlQUFlLEdBQ3pCLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQVU5QiJ9
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,CAUtC;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"}