@aztec/prover-client 0.65.1 → 0.66.0

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 (144) hide show
  1. package/dest/block_builder/index.d.ts +6 -0
  2. package/dest/block_builder/index.d.ts.map +1 -0
  3. package/dest/block_builder/index.js +2 -0
  4. package/dest/block_builder/light.d.ts +32 -0
  5. package/dest/block_builder/light.d.ts.map +1 -0
  6. package/dest/block_builder/light.js +71 -0
  7. package/dest/config.d.ts +4 -10
  8. package/dest/config.d.ts.map +1 -1
  9. package/dest/config.js +8 -7
  10. package/dest/index.d.ts +2 -2
  11. package/dest/index.d.ts.map +1 -1
  12. package/dest/index.js +3 -3
  13. package/dest/mocks/fixtures.d.ts +1 -2
  14. package/dest/mocks/fixtures.d.ts.map +1 -1
  15. package/dest/mocks/fixtures.js +3 -7
  16. package/dest/mocks/test_context.d.ts +28 -10
  17. package/dest/mocks/test_context.d.ts.map +1 -1
  18. package/dest/mocks/test_context.js +59 -21
  19. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
  20. package/dest/orchestrator/block-building-helpers.js +10 -18
  21. package/dest/orchestrator/block-proving-state.js +2 -2
  22. package/dest/orchestrator/epoch-proving-state.d.ts +5 -6
  23. package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
  24. package/dest/orchestrator/epoch-proving-state.js +10 -12
  25. package/dest/orchestrator/orchestrator.d.ts +8 -6
  26. package/dest/orchestrator/orchestrator.d.ts.map +1 -1
  27. package/dest/orchestrator/orchestrator.js +83 -72
  28. package/dest/orchestrator/tx-proving-state.d.ts +0 -1
  29. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
  30. package/dest/orchestrator/tx-proving-state.js +2 -34
  31. package/dest/prover-agent/memory-proving-queue.d.ts +10 -8
  32. package/dest/prover-agent/memory-proving-queue.d.ts.map +1 -1
  33. package/dest/prover-agent/memory-proving-queue.js +35 -35
  34. package/dest/prover-agent/prover-agent.d.ts +1 -0
  35. package/dest/prover-agent/prover-agent.d.ts.map +1 -1
  36. package/dest/prover-agent/prover-agent.js +12 -9
  37. package/dest/prover-client/factory.d.ts +6 -0
  38. package/dest/prover-client/factory.d.ts.map +1 -0
  39. package/dest/prover-client/factory.js +6 -0
  40. package/dest/prover-client/index.d.ts +3 -0
  41. package/dest/prover-client/index.d.ts.map +1 -0
  42. package/dest/prover-client/index.js +3 -0
  43. package/dest/prover-client/prover-client.d.ts +41 -0
  44. package/dest/prover-client/prover-client.d.ts.map +1 -0
  45. package/dest/prover-client/prover-client.js +107 -0
  46. package/dest/proving_broker/caching_broker_facade.d.ts +30 -0
  47. package/dest/proving_broker/caching_broker_facade.d.ts.map +1 -0
  48. package/dest/proving_broker/caching_broker_facade.js +150 -0
  49. package/dest/proving_broker/factory.d.ts +5 -0
  50. package/dest/proving_broker/factory.d.ts.map +1 -0
  51. package/dest/proving_broker/factory.js +17 -0
  52. package/dest/proving_broker/index.d.ts +9 -0
  53. package/dest/proving_broker/index.d.ts.map +1 -0
  54. package/dest/proving_broker/index.js +9 -0
  55. package/dest/proving_broker/proof_store.d.ts +46 -0
  56. package/dest/proving_broker/proof_store.d.ts.map +1 -0
  57. package/dest/proving_broker/proof_store.js +37 -0
  58. package/dest/proving_broker/prover_cache/memory.d.ts +9 -0
  59. package/dest/proving_broker/prover_cache/memory.d.ts.map +1 -0
  60. package/dest/proving_broker/prover_cache/memory.js +16 -0
  61. package/dest/proving_broker/proving_agent.d.ts +16 -6
  62. package/dest/proving_broker/proving_agent.d.ts.map +1 -1
  63. package/dest/proving_broker/proving_agent.js +59 -20
  64. package/dest/proving_broker/proving_agent_instrumentation.d.ts +8 -0
  65. package/dest/proving_broker/proving_agent_instrumentation.d.ts.map +1 -0
  66. package/dest/proving_broker/proving_agent_instrumentation.js +16 -0
  67. package/dest/proving_broker/proving_broker.d.ts +22 -16
  68. package/dest/proving_broker/proving_broker.d.ts.map +1 -1
  69. package/dest/proving_broker/proving_broker.js +79 -25
  70. package/dest/proving_broker/proving_broker_database/memory.d.ts +14 -0
  71. package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -0
  72. package/dest/proving_broker/proving_broker_database/memory.js +35 -0
  73. package/dest/proving_broker/proving_broker_database/persisted.d.ts +17 -0
  74. package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -0
  75. package/dest/proving_broker/proving_broker_database/persisted.js +43 -0
  76. package/dest/proving_broker/{proving_job_database.d.ts → proving_broker_database.d.ts} +8 -8
  77. package/dest/proving_broker/proving_broker_database.d.ts.map +1 -0
  78. package/dest/proving_broker/proving_broker_database.js +2 -0
  79. package/dest/proving_broker/proving_broker_instrumentation.d.ts +25 -0
  80. package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -0
  81. package/dest/proving_broker/proving_broker_instrumentation.js +91 -0
  82. package/dest/proving_broker/proving_job_controller.d.ts +13 -8
  83. package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
  84. package/dest/proving_broker/proving_job_controller.js +43 -43
  85. package/dest/proving_broker/rpc.d.ts +11 -0
  86. package/dest/proving_broker/rpc.d.ts.map +1 -0
  87. package/dest/proving_broker/rpc.js +44 -0
  88. package/dest/test/mock_prover.d.ts +16 -2
  89. package/dest/test/mock_prover.d.ts.map +1 -1
  90. package/dest/test/mock_prover.js +37 -1
  91. package/package.json +17 -14
  92. package/src/block_builder/index.ts +6 -0
  93. package/src/block_builder/light.ts +117 -0
  94. package/src/config.ts +17 -16
  95. package/src/index.ts +2 -2
  96. package/src/mocks/fixtures.ts +2 -14
  97. package/src/mocks/test_context.ts +81 -25
  98. package/src/orchestrator/block-building-helpers.ts +22 -33
  99. package/src/orchestrator/block-proving-state.ts +1 -1
  100. package/src/orchestrator/epoch-proving-state.ts +10 -13
  101. package/src/orchestrator/orchestrator.ts +97 -77
  102. package/src/orchestrator/tx-proving-state.ts +1 -56
  103. package/src/prover-agent/memory-proving-queue.ts +43 -44
  104. package/src/prover-agent/prover-agent.ts +16 -20
  105. package/src/prover-client/factory.ts +15 -0
  106. package/src/prover-client/index.ts +2 -0
  107. package/src/prover-client/prover-client.ts +172 -0
  108. package/src/proving_broker/caching_broker_facade.ts +312 -0
  109. package/src/proving_broker/factory.ts +25 -0
  110. package/src/proving_broker/index.ts +8 -0
  111. package/src/proving_broker/proof_store.ts +106 -0
  112. package/src/proving_broker/prover_cache/memory.ts +20 -0
  113. package/src/proving_broker/proving_agent.ts +90 -20
  114. package/src/proving_broker/proving_agent_instrumentation.ts +21 -0
  115. package/src/proving_broker/proving_broker.ts +143 -67
  116. package/src/proving_broker/proving_broker_database/memory.ts +43 -0
  117. package/src/proving_broker/proving_broker_database/persisted.ts +60 -0
  118. package/src/proving_broker/{proving_job_database.ts → proving_broker_database.ts} +7 -12
  119. package/src/proving_broker/proving_broker_instrumentation.ts +130 -0
  120. package/src/proving_broker/proving_job_controller.ts +54 -46
  121. package/src/proving_broker/rpc.ts +64 -0
  122. package/src/test/mock_prover.ts +52 -0
  123. package/dest/proving_broker/proving_broker_interface.d.ts +0 -61
  124. package/dest/proving_broker/proving_broker_interface.d.ts.map +0 -1
  125. package/dest/proving_broker/proving_broker_interface.js +0 -2
  126. package/dest/proving_broker/proving_job_database/memory.d.ts +0 -14
  127. package/dest/proving_broker/proving_job_database/memory.d.ts.map +0 -1
  128. package/dest/proving_broker/proving_job_database/memory.js +0 -35
  129. package/dest/proving_broker/proving_job_database/persisted.d.ts +0 -15
  130. package/dest/proving_broker/proving_job_database/persisted.d.ts.map +0 -1
  131. package/dest/proving_broker/proving_job_database/persisted.js +0 -35
  132. package/dest/proving_broker/proving_job_database.d.ts.map +0 -1
  133. package/dest/proving_broker/proving_job_database.js +0 -2
  134. package/dest/tx-prover/factory.d.ts +0 -5
  135. package/dest/tx-prover/factory.d.ts.map +0 -1
  136. package/dest/tx-prover/factory.js +0 -6
  137. package/dest/tx-prover/tx-prover.d.ts +0 -38
  138. package/dest/tx-prover/tx-prover.d.ts.map +0 -1
  139. package/dest/tx-prover/tx-prover.js +0 -93
  140. package/src/proving_broker/proving_broker_interface.ts +0 -74
  141. package/src/proving_broker/proving_job_database/memory.ts +0 -43
  142. package/src/proving_broker/proving_job_database/persisted.ts +0 -45
  143. package/src/tx-prover/factory.ts +0 -9
  144. package/src/tx-prover/tx-prover.ts +0 -130
@@ -216,27 +216,19 @@ export function makeEmptyMembershipWitness(height) {
216
216
  }
217
217
  async function processPublicDataUpdateRequests(tx, db) {
218
218
  const allPublicDataWrites = tx.txEffect.publicDataWrites.map(({ leafSlot, value }) => new PublicDataTreeLeaf(leafSlot, value));
219
- const lowPublicDataWritesPreimages = [];
220
- const lowPublicDataWritesMembershipWitnesses = [];
221
- const publicDataWritesSiblingPaths = [];
222
- for (const write of allPublicDataWrites) {
219
+ const { lowLeavesWitnessData, insertionWitnessData } = await db.sequentialInsert(MerkleTreeId.PUBLIC_DATA_TREE, allPublicDataWrites.map(write => {
223
220
  if (write.isEmpty()) {
224
221
  throw new Error(`Empty public data write in tx: ${toFriendlyJSON(tx)}`);
225
222
  }
226
- // TODO(Alvaro) write a specialized function for this? Internally add_or_update_value uses batch insertion anyway
227
- const { lowLeavesWitnessData, newSubtreeSiblingPath } = await db.batchInsert(MerkleTreeId.PUBLIC_DATA_TREE, [write.toBuffer()],
228
- // TODO(#3675) remove oldValue from update requests
229
- 0);
230
- if (lowLeavesWitnessData === undefined) {
231
- throw new Error(`Could not craft public data batch insertion proofs`);
232
- }
233
- const [lowLeafWitness] = lowLeavesWitnessData;
234
- lowPublicDataWritesPreimages.push(lowLeafWitness.leafPreimage);
235
- lowPublicDataWritesMembershipWitnesses.push(MembershipWitness.fromBufferArray(lowLeafWitness.index, assertLength(lowLeafWitness.siblingPath.toBufferArray(), PUBLIC_DATA_TREE_HEIGHT)));
236
- const insertionSiblingPath = newSubtreeSiblingPath.toFields();
223
+ return write.toBuffer();
224
+ }));
225
+ const lowPublicDataWritesPreimages = lowLeavesWitnessData.map(lowLeafWitness => lowLeafWitness.leafPreimage);
226
+ const lowPublicDataWritesMembershipWitnesses = lowLeavesWitnessData.map(lowLeafWitness => MembershipWitness.fromBufferArray(lowLeafWitness.index, assertLength(lowLeafWitness.siblingPath.toBufferArray(), PUBLIC_DATA_TREE_HEIGHT)));
227
+ const publicDataWritesSiblingPaths = insertionWitnessData.map(w => {
228
+ const insertionSiblingPath = w.siblingPath.toFields();
237
229
  assertLength(insertionSiblingPath, PUBLIC_DATA_TREE_HEIGHT);
238
- publicDataWritesSiblingPaths.push(insertionSiblingPath);
239
- }
230
+ return insertionSiblingPath;
231
+ });
240
232
  return {
241
233
  lowPublicDataWritesPreimages,
242
234
  lowPublicDataWritesMembershipWitnesses,
@@ -291,4 +283,4 @@ export function validateTx(tx) {
291
283
  throw new Error(`Empty public data tree in tx: ${toFriendlyJSON(tx)}`);
292
284
  }
293
285
  }
294
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYnVpbGRpbmctaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvYmxvY2stYnVpbGRpbmctaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsSUFBSSxFQUNKLFlBQVksRUFHWixRQUFRLEVBQ1IsYUFBYSxHQUNkLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUNMLGNBQWMsRUFDZCxzQkFBc0IsRUFFdEIsc0JBQXNCLEVBRXRCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsRUFBRSxFQUVGLE1BQU0sRUFDTixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLDRDQUE0QyxFQUM1QyxpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUVwQix3QkFBd0IsRUFDeEIscUNBQXFDLEVBQ3JDLHdCQUF3QixFQUN4QixxQ0FBcUMsRUFDckMscUJBQXFCLEVBQ3JCLG1DQUFtQyxFQUNuQyxxQkFBcUIsRUFDckIsdUJBQXVCLEVBRXZCLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0Qix5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLHdCQUF3QixFQUN4QixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLDBCQUEwQixFQUUxQixnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLGNBQWMsR0FFZixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXZELE9BQU8sRUFBYyxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUJBQXlC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
286
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYnVpbGRpbmctaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvYmxvY2stYnVpbGRpbmctaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsSUFBSSxFQUNKLFlBQVksRUFHWixRQUFRLEVBQ1IsYUFBYSxHQUNkLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUNMLGNBQWMsRUFDZCxzQkFBc0IsRUFFdEIsc0JBQXNCLEVBRXRCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsRUFBRSxFQUVGLE1BQU0sRUFDTixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLDRDQUE0QyxFQUM1QyxpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUVwQix3QkFBd0IsRUFDeEIscUNBQXFDLEVBQ3JDLHdCQUF3QixFQUN4QixxQ0FBcUMsRUFDckMscUJBQXFCLEVBQ3JCLG1DQUFtQyxFQUNuQyxxQkFBcUIsRUFDckIsdUJBQXVCLEVBRXZCLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0Qix5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLHdCQUF3QixFQUN4QixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLDBCQUEwQixFQUUxQixnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLGNBQWMsR0FFZixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXZELE9BQU8sRUFBYyxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUJBQXlC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
@@ -81,7 +81,7 @@ export class BlockProvingState {
81
81
  }
82
82
  /** Returns the block number as an epoch number. Used for prioritizing proof requests. */
83
83
  get epochNumber() {
84
- return this.globalVariables.blockNumber.toNumber();
84
+ return this.parentEpoch.epochNumber;
85
85
  }
86
86
  /**
87
87
  * Stores the inputs to a merge circuit and determines if the circuit is ready to be executed
@@ -145,4 +145,4 @@ export class BlockProvingState {
145
145
  this.parentEpoch.reject(reason);
146
146
  }
147
147
  }
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stcHJvdmluZy1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvYmxvY2stcHJvdmluZy1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBVUwsK0JBQStCLEdBTWhDLE1BQU0sb0JBQW9CLENBQUM7QUFpQjVCOzs7R0FHRztBQUNILE1BQU0sT0FBTyxpQkFBaUI7SUFXNUIsWUFDa0IsS0FBYSxFQUNiLFdBQW1CLEVBQ25CLGVBQWdDLEVBQ2hDLGlCQUF3RSxFQUN4RSxtQkFBMkMsRUFDM0MsMEJBQXNGLEVBQ3RGLGlDQUF5RCxFQUN6RCxtQkFBMkMsRUFDM0MsMEJBQTRELEVBQzVELGlCQUFxQixFQUNwQixXQUE4QjtRQVYvQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBdUQ7UUFDeEUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUF3QjtRQUMzQywrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTREO1FBQ3RGLHNDQUFpQyxHQUFqQyxpQ0FBaUMsQ0FBd0I7UUFDekQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUF3QjtRQUMzQywrQkFBMEIsR0FBMUIsMEJBQTBCLENBQWtDO1FBQzVELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBSTtRQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFyQnpDLHNCQUFpQixHQUEyQixFQUFFLENBQUM7UUFDL0MscUJBQWdCLEdBQXNFLEVBQUUsQ0FBQztRQUcxRiwyQkFBc0IsR0FBWSxLQUFLLENBQUM7UUFHdkMsUUFBRyxHQUFxQixFQUFFLENBQUM7UUFnQmpDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLCtCQUErQixFQUFFLENBQUMsQ0FBQyxH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
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stcHJvdmluZy1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvYmxvY2stcHJvdmluZy1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBVUwsK0JBQStCLEdBTWhDLE1BQU0sb0JBQW9CLENBQUM7QUFpQjVCOzs7R0FHRztBQUNILE1BQU0sT0FBTyxpQkFBaUI7SUFXNUIsWUFDa0IsS0FBYSxFQUNiLFdBQW1CLEVBQ25CLGVBQWdDLEVBQ2hDLGlCQUF3RSxFQUN4RSxtQkFBMkMsRUFDM0MsMEJBQXNGLEVBQ3RGLGlDQUF5RCxFQUN6RCxtQkFBMkMsRUFDM0MsMEJBQTRELEVBQzVELGlCQUFxQixFQUNwQixXQUE4QjtRQVYvQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBdUQ7UUFDeEUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUF3QjtRQUMzQywrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTREO1FBQ3RGLHNDQUFpQyxHQUFqQyxpQ0FBaUMsQ0FBd0I7UUFDekQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUF3QjtRQUMzQywrQkFBMEIsR0FBMUIsMEJBQTBCLENBQWtDO1FBQzVELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBSTtRQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFyQnpDLHNCQUFpQixHQUEyQixFQUFFLENBQUM7UUFDL0MscUJBQWdCLEdBQXNFLEVBQUUsQ0FBQztRQUcxRiwyQkFBc0IsR0FBWSxLQUFLLENBQUM7UUFHdkMsUUFBRyxHQUFxQixFQUFFLENBQUM7UUFnQmpDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLCtCQUErQixFQUFFLENBQUMsQ0FBQyxH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
@@ -25,6 +25,7 @@ export type ProvingResult = {
25
25
  */
26
26
  export declare class EpochProvingState {
27
27
  readonly epochNumber: number;
28
+ readonly firstBlockNumber: number;
28
29
  readonly totalNumBlocks: number;
29
30
  private completionCallback;
30
31
  private rejectionCallback;
@@ -32,13 +33,11 @@ export declare class EpochProvingState {
32
33
  private mergeRollupInputs;
33
34
  rootRollupPublicInputs: RootRollupPublicInputs | undefined;
34
35
  finalProof: Proof | undefined;
35
- blocks: BlockProvingState[];
36
- constructor(epochNumber: number, totalNumBlocks: number, completionCallback: (result: ProvingResult) => void, rejectionCallback: (reason: string) => void);
37
- /** Returns the current block proving state */
38
- get currentBlock(): BlockProvingState | undefined;
36
+ blocks: (BlockProvingState | undefined)[];
37
+ constructor(epochNumber: number, firstBlockNumber: number, totalNumBlocks: number, completionCallback: (result: ProvingResult) => void, rejectionCallback: (reason: string) => void);
39
38
  get numMergeLevels(): bigint;
40
39
  findMergeLevel(currentLevel: bigint, currentIndex: bigint): bigint[];
41
- startNewBlock(numTxs: number, globalVariables: GlobalVariables, l1ToL2Messages: Fr[], messageTreeSnapshot: AppendOnlyTreeSnapshot, messageTreeRootSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH>, messageTreeSnapshotAfterInsertion: AppendOnlyTreeSnapshot, archiveTreeSnapshot: AppendOnlyTreeSnapshot, archiveTreeRootSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>, previousBlockHash: Fr): number;
40
+ startNewBlock(numTxs: number, globalVariables: GlobalVariables, l1ToL2Messages: Fr[], messageTreeSnapshot: AppendOnlyTreeSnapshot, messageTreeRootSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH>, messageTreeSnapshotAfterInsertion: AppendOnlyTreeSnapshot, archiveTreeSnapshot: AppendOnlyTreeSnapshot, archiveTreeRootSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>, previousBlockHash: Fr): BlockProvingState;
42
41
  verifyState(): boolean;
43
42
  isAcceptingBlocks(): boolean;
44
43
  /**
@@ -53,7 +52,7 @@ export declare class EpochProvingState {
53
52
  RecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH>,
54
53
  VerificationKeyAsFields
55
54
  ], indexWithinMerge: number, indexOfMerge: number): boolean;
56
- getBlockProvingState(index: number): BlockProvingState;
55
+ getBlockProvingStateByBlockNumber(blockNumber: number): BlockProvingState | undefined;
57
56
  getMergeInputs(indexOfMerge: number): BlockMergeRollupInputData;
58
57
  isReadyForRootRollup(): boolean;
59
58
  cancel(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"epoch-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/epoch-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,iCAAiC,EACtC,EAAE,EACF,KAAK,eAAe,EACpB,KAAK,wCAAwC,EAC7C,KAAK,6BAA6B,EAElC,KAAK,KAAK,EACV,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;AAStE,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,CAAC,iCAAiC,GAAG,SAAS,EAAE,iCAAiC,GAAG,SAAS,CAAC,CAAC;IACvG,MAAM,EAAE;QACN,cAAc,CAAC,OAAO,6BAA6B,CAAC,GAAG,SAAS;QAChE,cAAc,CAAC,OAAO,6BAA6B,CAAC,GAAG,SAAS;KACjE,CAAC;IACF,gBAAgB,EAAE,CAAC,uBAAuB,GAAG,SAAS,EAAE,uBAAuB,GAAG,SAAS,CAAC,CAAC;CAC9F,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1F;;;;;GAKG;AACH,qBAAa,iBAAiB;aASV,WAAW,EAAE,MAAM;aACnB,cAAc,EAAE,MAAM;IACtC,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,iBAAiB;IAX3B,OAAO,CAAC,qBAAqB,CAAiD;IAE9E,OAAO,CAAC,iBAAiB,CAAmC;IACrD,sBAAsB,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAC3D,UAAU,EAAE,KAAK,GAAG,SAAS,CAAC;IAC9B,MAAM,EAAE,iBAAiB,EAAE,CAAM;gBAGtB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EAC9B,kBAAkB,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,EACnD,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;IAGrD,8CAA8C;IAC9C,IAAW,YAAY,IAAI,iBAAiB,GAAG,SAAS,CAEvD;IAGD,IAAW,cAAc,WAGxB;IAKM,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IA2BzD,aAAa,CAClB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,EAAE,EAAE,EACpB,mBAAmB,EAAE,sBAAsB,EAC3C,0BAA0B,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wCAAwC,CAAC,EACtF,iCAAiC,EAAE,sBAAsB,EACzD,mBAAmB,EAAE,sBAAsB,EAC3C,0BAA0B,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC,EAC5D,iBAAiB,EAAE,EAAE;IAuBhB,WAAW;IAQX,iBAAiB;IAIxB;;;;;;OAMG;IACI,gBAAgB,CACrB,WAAW,EAAE;QACX,iCAAiC;QACjC,cAAc,CAAC,OAAO,6BAA6B,CAAC;QACpD,uBAAuB;KACxB,EACD,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM;IAsBf,oBAAoB,CAAC,KAAK,EAAE,MAAM;IAKlC,cAAc,CAAC,YAAY,EAAE,MAAM;IAKnC,oBAAoB;IAKpB,MAAM;IAMN,MAAM,CAAC,MAAM,EAAE,MAAM;IAUrB,OAAO,CAAC,MAAM,EAAE,aAAa;CAOrC"}
1
+ {"version":3,"file":"epoch-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/epoch-proving-state.ts"],"names":[],"mappings":"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"}
@@ -15,8 +15,9 @@ var PROVING_STATE_LIFECYCLE;
15
15
  * Captures resolve and reject callbacks to provide a promise base interface to the consumer of our proving.
16
16
  */
17
17
  export class EpochProvingState {
18
- constructor(epochNumber, totalNumBlocks, completionCallback, rejectionCallback) {
18
+ constructor(epochNumber, firstBlockNumber, totalNumBlocks, completionCallback, rejectionCallback) {
19
19
  this.epochNumber = epochNumber;
20
+ this.firstBlockNumber = firstBlockNumber;
20
21
  this.totalNumBlocks = totalNumBlocks;
21
22
  this.completionCallback = completionCallback;
22
23
  this.rejectionCallback = rejectionCallback;
@@ -24,10 +25,6 @@ export class EpochProvingState {
24
25
  this.mergeRollupInputs = [];
25
26
  this.blocks = [];
26
27
  }
27
- /** Returns the current block proving state */
28
- get currentBlock() {
29
- return this.blocks.at(-1);
30
- }
31
28
  // Returns the number of levels of merge rollups
32
29
  get numMergeLevels() {
33
30
  const totalLeaves = Math.max(2, this.totalNumBlocks);
@@ -63,12 +60,13 @@ export class EpochProvingState {
63
60
  // Adds a block to the proving state, returns its index
64
61
  // Will update the proving life cycle if this is the last block
65
62
  startNewBlock(numTxs, globalVariables, l1ToL2Messages, messageTreeSnapshot, messageTreeRootSiblingPath, messageTreeSnapshotAfterInsertion, archiveTreeSnapshot, archiveTreeRootSiblingPath, previousBlockHash) {
66
- const block = new BlockProvingState(this.blocks.length, numTxs, globalVariables, padArrayEnd(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP), messageTreeSnapshot, messageTreeRootSiblingPath, messageTreeSnapshotAfterInsertion, archiveTreeSnapshot, archiveTreeRootSiblingPath, previousBlockHash, this);
67
- this.blocks.push(block);
68
- if (this.blocks.length === this.totalNumBlocks) {
63
+ const index = globalVariables.blockNumber.toNumber() - this.firstBlockNumber;
64
+ const block = new BlockProvingState(index, numTxs, globalVariables, padArrayEnd(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP), messageTreeSnapshot, messageTreeRootSiblingPath, messageTreeSnapshotAfterInsertion, archiveTreeSnapshot, archiveTreeRootSiblingPath, previousBlockHash, this);
65
+ this.blocks[index] = block;
66
+ if (this.blocks.filter(b => !!b).length === this.totalNumBlocks) {
69
67
  this.provingStateLifecycle = PROVING_STATE_LIFECYCLE.PROVING_STATE_FULL;
70
68
  }
71
- return this.blocks.length - 1;
69
+ return block;
72
70
  }
73
71
  // Returns true if this proving state is still valid, false otherwise
74
72
  verifyState() {
@@ -106,8 +104,8 @@ export class EpochProvingState {
106
104
  return true;
107
105
  }
108
106
  // Returns a specific transaction proving state
109
- getBlockProvingState(index) {
110
- return this.blocks[index];
107
+ getBlockProvingStateByBlockNumber(blockNumber) {
108
+ return this.blocks.find(block => block?.blockNumber === blockNumber);
111
109
  }
112
110
  // Returns a set of merge rollup inputs
113
111
  getMergeInputs(indexOfMerge) {
@@ -140,4 +138,4 @@ export class EpochProvingState {
140
138
  this.completionCallback(result);
141
139
  }
142
140
  }
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2gtcHJvdmluZy1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvZXBvY2gtcHJvdmluZy1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBSUwsRUFBRSxFQUlGLG1DQUFtQyxHQUtwQyxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUczRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUk3RCxJQUFLLHVCQUtKO0FBTEQsV0FBSyx1QkFBdUI7SUFDMUIsdUdBQXFCLENBQUE7SUFDckIsaUdBQWtCLENBQUE7SUFDbEIseUdBQXNCLENBQUE7SUFDdEIseUdBQXNCLENBQUE7QUFDeEIsQ0FBQyxFQUxJLHVCQUF1QixLQUF2Qix1QkFBdUIsUUFLM0I7QUFhRDs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxpQkFBaUI7SUFRNUIsWUFDa0IsV0FBbUIsRUFDbkIsY0FBc0IsRUFDOUIsa0JBQW1ELEVBQ25ELGlCQUEyQztRQUhuQyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixtQkFBYyxHQUFkLGNBQWMsQ0FBUTtRQUM5Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQWlDO1FBQ25ELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFYN0MsMEJBQXFCLEdBQUcsdUJBQXVCLENBQUMscUJBQXFCLENBQUM7UUFFdEUsc0JBQWlCLEdBQWdDLEVBQUUsQ0FBQztRQUdyRCxXQUFNLEdBQXdCLEVBQUUsQ0FBQztJQU9yQyxDQUFDO0lBRUosOENBQThDO0lBQzlDLElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELGdEQUFnRDtJQUNoRCxJQUFXLGNBQWM7UUFDdkIsTUFBTSxXQUFXLEdB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
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2gtcHJvdmluZy1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvZXBvY2gtcHJvdmluZy1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBSUwsRUFBRSxFQUlGLG1DQUFtQyxHQUtwQyxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUczRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUk3RCxJQUFLLHVCQUtKO0FBTEQsV0FBSyx1QkFBdUI7SUFDMUIsdUdBQXFCLENBQUE7SUFDckIsaUdBQWtCLENBQUE7SUFDbEIseUdBQXNCLENBQUE7SUFDdEIseUdBQXNCLENBQUE7QUFDeEIsQ0FBQyxFQUxJLHVCQUF1QixLQUF2Qix1QkFBdUIsUUFLM0I7QUFhRDs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxpQkFBaUI7SUFRNUIsWUFDa0IsV0FBbUIsRUFDbkIsZ0JBQXdCLEVBQ3hCLGNBQXNCLEVBQzlCLGtCQUFtRCxFQUNuRCxpQkFBMkM7UUFKbkMsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFRO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUFRO1FBQzlCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBaUM7UUFDbkQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUEwQjtRQVo3QywwQkFBcUIsR0FBRyx1QkFBdUIsQ0FBQyxxQkFBcUIsQ0FBQztRQUV0RSxzQkFBaUIsR0FBZ0MsRUFBRSxDQUFDO1FBR3JELFdBQU0sR0FBc0MsRUFBRSxDQUFDO0lBUW5ELENBQUM7SUFFSixnREFBZ0Q7SUFDaEQsSUFBVyxjQUFjO1FBQ3ZCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNyRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsOERBQThEO0lBQzlELHNFQUFzRTtJQUN0RSx5REFBeUQ7SUFDbEQsY0FBYyxDQUFDLFlBQW9CLEVBQUUsWUFBb0I7UUFDOUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxTQUFpQixFQUFFLEtBQWEsRUFBRSxXQUFvQixFQUFFLEVBQUU7WUFDbEYsU0FBUyxJQUFJLENBQUMsQ0FBQztZQUNmLElBQUksU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNsQixDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzFGLENBQUM7WUFDRCxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ2IsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDOUUsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsR0FBRyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2hHLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQzFDLElBQUksV0FBVyxHQUFHLFlBQVksQ0FBQztRQUMvQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxHQUFHLFlBQVksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2pELENBQUMsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDL0csQ0FBQztRQUNELElBQUksU0FBUyxHQUFHLFlBQVksQ0FBQztRQUM3QixJQUFJLFVBQVUsR0FBRyxZQUFZLENBQUM7UUFDOUIsT0FBTyxTQUFTLElBQUksYUFBYSxJQUFJLFVBQVUsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN0RCxVQUFVLElBQUksRUFBRSxDQUFDO1lBQ2pCLENBQUMsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxHQUFHLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNoRyxDQUFDO1FBQ0QsT0FBTyxDQUFDLFVBQVUsR0FBRyxFQUFFLEVBQUUsU0FBUyxJQUFJLEVBQUUsRUFBRSxTQUFTLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELHVEQUF1RDtJQUN2RCwrREFBK0Q7SUFDeEQsYUFBYSxDQUNsQixNQUFjLEVBQ2QsZUFBZ0MsRUFDaEMsY0FBb0IsRUFDcEIsbUJBQTJDLEVBQzNDLDBCQUFzRixFQUN0RixpQ0FBeUQsRUFDekQsbUJBQTJDLEVBQzNDLDBCQUE0RCxFQUM1RCxpQkFBcUI7UUFFckIsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDN0UsTUFBTSxLQUFLLEdBQUcsSUFBSSxpQkFBaUIsQ0FDakMsS0FBSyxFQUNMLE1BQU0sRUFDTixlQUFlLEVBQ2YsV0FBVyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLG1DQUFtQyxDQUFDLEVBQ3pFLG1CQUFtQixFQUNuQiwwQkFBMEIsRUFDMUIsaUNBQWlDLEVBQ2pDLG1CQUFtQixFQUNuQiwwQkFBMEIsRUFDMUIsaUJBQWlCLEVBQ2pCLElBQUksQ0FDTCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ2hFLElBQUksQ0FBQyxxQkFBcUIsR0FBRyx1QkFBdUIsQ0FBQyxrQkFBa0IsQ0FBQztRQUMxRSxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQscUVBQXFFO0lBQzlELFdBQVc7UUFDaEIsT0FBTyxDQUNMLElBQUksQ0FBQyxxQkFBcUIsS0FBSyx1QkFBdUIsQ0FBQyxxQkFBcUI7WUFDNUUsSUFBSSxDQUFDLHFCQUFxQixLQUFLLHVCQUF1QixDQUFDLGtCQUFrQixDQUMxRSxDQUFDO0lBQ0osQ0FBQztJQUVELHNFQUFzRTtJQUMvRCxpQkFBaUI7UUFDdEIsT0FBTyxJQUFJLENBQUMscUJBQXFCLEtBQUssdUJBQXVCLENBQUMscUJBQXFCLENBQUM7SUFDdEYsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGdCQUFnQixDQUNyQixXQUlDLEVBQ0QsZ0JBQXdCLEVBQ3hCLFlBQW9CO1FBRXBCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUMxQyxNQUFNLGNBQWMsR0FBOEI7Z0JBQ2hELE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Z0JBQzlCLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Z0JBQzlCLGdCQUFnQixFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzthQUN6QyxDQUFDO1lBQ0YsY0FBYyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6RCxjQUFjLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pELGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEdBQUcsY0FBYyxDQUFDO1lBQ3RELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1RCxjQUFjLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pELGNBQWMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekQsY0FBYyxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25FLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELCtDQUErQztJQUN4QyxpQ0FBaUMsQ0FBQyxXQUFtQjtRQUMxRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLFdBQVcsS0FBSyxXQUFXLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsdUNBQXVDO0lBQ2hDLGNBQWMsQ0FBQyxZQUFvQjtRQUN4QyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsNkVBQTZFO0lBQ3RFLG9CQUFvQjtRQUN6QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xILENBQUM7SUFFRCw0RUFBNEU7SUFDckUsTUFBTTtRQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQscUVBQXFFO0lBQ3JFLHVDQUF1QztJQUNoQyxNQUFNLENBQUMsTUFBYztRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDeEIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsdUJBQXVCLENBQUMsc0JBQXNCLENBQUM7UUFDNUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxzRUFBc0U7SUFDdEUsdUNBQXVDO0lBQ2hDLE9BQU8sQ0FBQyxNQUFxQjtRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDeEIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsdUJBQXVCLENBQUMsc0JBQXNCLENBQUM7UUFDNUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7Q0FDRiJ9
@@ -1,6 +1,6 @@
1
1
  import { L2Block, type ProcessedTx, type ServerCircuitProver } from '@aztec/circuit-types';
2
- import { type EpochProver, type MerkleTreeWriteOperations } from '@aztec/circuit-types/interfaces';
3
- import { Fr, type GlobalVariables, type Header } from '@aztec/circuits.js';
2
+ import { type EpochProver, type ForkMerkleTreeOperations } from '@aztec/circuit-types/interfaces';
3
+ import { type AppendOnlyTreeSnapshot, Fr, type GlobalVariables, type Header } from '@aztec/circuits.js';
4
4
  import { type TelemetryClient, type Tracer } from '@aztec/telemetry-client';
5
5
  /**
6
6
  * Implements an event driven proving scheduler to build the recursive proof tree. The idea being:
@@ -16,7 +16,7 @@ import { type TelemetryClient, type Tracer } from '@aztec/telemetry-client';
16
16
  * The orchestrator, managing the flow of recursive proving operations required to build the rollup proof tree.
17
17
  */
18
18
  export declare class ProvingOrchestrator implements EpochProver {
19
- private db;
19
+ private dbProvider;
20
20
  private prover;
21
21
  private readonly proverId;
22
22
  private provingState;
@@ -24,14 +24,15 @@ export declare class ProvingOrchestrator implements EpochProver {
24
24
  private paddingTxProof?;
25
25
  private provingPromise;
26
26
  private metrics;
27
- constructor(db: MerkleTreeWriteOperations, prover: ServerCircuitProver, telemetryClient: TelemetryClient, proverId?: Fr);
27
+ private dbs;
28
+ constructor(dbProvider: ForkMerkleTreeOperations, prover: ServerCircuitProver, telemetryClient: TelemetryClient, proverId?: Fr);
28
29
  get tracer(): Tracer;
29
30
  getProverId(): Fr;
30
31
  /**
31
32
  * Resets the orchestrator's cached padding tx.
32
33
  */
33
34
  reset(): void;
34
- startNewEpoch(epochNumber: number, totalNumBlocks: number): void;
35
+ startNewEpoch(epochNumber: number, firstBlockNumber: number, totalNumBlocks: number): void;
35
36
  /**
36
37
  * Starts off a new block
37
38
  * @param numTxs - The total number of transactions in the block.
@@ -50,11 +51,12 @@ export declare class ProvingOrchestrator implements EpochProver {
50
51
  * Marks the block as full and pads it if required, no more transactions will be accepted.
51
52
  * Computes the block header and updates the archive tree.
52
53
  */
53
- setBlockCompleted(expectedHeader?: Header): Promise<L2Block>;
54
+ setBlockCompleted(blockNumber: number, expectedHeader?: Header): Promise<L2Block>;
54
55
  /** Returns the block as built for a given index. */
55
56
  getBlock(index: number): L2Block;
56
57
  private padEpoch;
57
58
  private buildBlock;
59
+ protected verifyBuiltBlockAgainstSyncedState(l2Block: L2Block, newArchive: AppendOnlyTreeSnapshot): Promise<void>;
58
60
  private enqueuePaddingTxs;
59
61
  /**
60
62
  * Prepares the cached sets of base rollup inputs for padding transactions and proves them
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAEP,KAAK,WAAW,EAChB,KAAK,mBAAmB,EAEzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,yBAAyB,EAE/B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EASL,EAAE,EACF,KAAK,eAAe,EACpB,KAAK,MAAM,EAcZ,MAAM,oBAAoB,CAAC;AAW5B,OAAO,EAAc,KAAK,eAAe,EAAE,KAAK,MAAM,EAAiC,MAAM,yBAAyB,CAAC;AA8BvH;;;;;;;;;GASG;AAEH;;GAEG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IASnD,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAX3B,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,kBAAkB,CAAyB;IACnD,OAAO,CAAC,cAAc,CAAC,CAAgE;IAEvF,OAAO,CAAC,cAAc,CAAiD;IACvE,OAAO,CAAC,OAAO,CAA6B;gBAGlC,EAAE,EAAE,yBAAyB,EAC7B,MAAM,EAAE,mBAAmB,EACnC,eAAe,EAAE,eAAe,EACf,QAAQ,GAAE,EAAY;IAKzC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAEM,WAAW,IAAI,EAAE;IAIxB;;OAEG;IACI,KAAK;IAIL,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;IAWhE;;;;;;;OAOG;IAKU,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,EAAE;IAwFjG;;;OAGG;IAIU,QAAQ,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BrD;;;OAGG;IAYU,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuDzE,oDAAoD;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAiBvC,OAAO,CAAC,QAAQ;YAoDF,UAAU;IAuCxB,OAAO,CAAC,iBAAiB;IA6CzB;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAiBhC;;OAEG;IACI,MAAM;IAQb;;;OAGG;IACH,OAAO,CAAC,kCAAkC;IAmB1C;;OAEG;IACU,aAAa;;;;IAwB1B;;;;OAIG;YACW,kBAAkB;IAShC,OAAO,CAAC,kBAAkB;IAsB1B;;;;;OAKG;IACH,OAAO,CAAC,eAAe;YA4DT,uBAAuB;IAiCrC,OAAO,CAAC,iBAAiB;IAqDzB,OAAO,CAAC,WAAW;IAkCnB,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,sBAAsB;IA4E9B,OAAO,CAAC,wBAAwB;IAmChC,OAAO,CAAC,wBAAwB;IA2BhC,OAAO,CAAC,uBAAuB;IAiC/B,OAAO,CAAC,iBAAiB;IAuCzB,OAAO,CAAC,8BAA8B;IAYtC,OAAO,CAAC,yBAAyB;IAQjC;;;;;;OAMG;IACH,OAAO,CAAC,6BAA6B;IA+BrC;;;;;;OAMG;IACH,OAAO,CAAC,kCAAkC;IAqC1C;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IA2CjB,OAAO,CAAC,4BAA4B;CAWrC"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAEP,KAAK,WAAW,EAChB,KAAK,mBAAmB,EAEzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAG9B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAGL,KAAK,sBAAsB,EAO3B,EAAE,EACF,KAAK,eAAe,EACpB,KAAK,MAAM,EAcZ,MAAM,oBAAoB,CAAC;AAW5B,OAAO,EAAc,KAAK,eAAe,EAAE,KAAK,MAAM,EAAiC,MAAM,yBAAyB,CAAC;AA8BvH;;;;;;;;;GASG;AAEH;;GAEG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IAUnD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAZ3B,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,kBAAkB,CAAyB;IACnD,OAAO,CAAC,cAAc,CAAC,CAAgE;IAEvF,OAAO,CAAC,cAAc,CAAiD;IACvE,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,GAAG,CAAqD;gBAGtD,UAAU,EAAE,wBAAwB,EACpC,MAAM,EAAE,mBAAmB,EACnC,eAAe,EAAE,eAAe,EACf,QAAQ,GAAE,EAAY;IAKzC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAEM,WAAW,IAAI,EAAE;IAIxB;;OAEG;IACI,KAAK;IAIL,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;IAW1F;;;;;;;OAOG;IAKU,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,EAAE;IA8EjG;;;OAGG;IAIU,QAAQ,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCrD;;;OAGG;IAIU,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuD9F,oDAAoD;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAiBvC,OAAO,CAAC,QAAQ;YAuDF,UAAU;cA2CR,kCAAkC,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,sBAAsB;IAavG,OAAO,CAAC,iBAAiB;IA6CzB;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAiBhC;;OAEG;IACI,MAAM;IAQb;;;OAGG;IACH,OAAO,CAAC,kCAAkC;IAmB1C;;OAEG;IACU,aAAa;;;;IAwB1B;;;;OAIG;YACW,kBAAkB;IAShC,OAAO,CAAC,kBAAkB;IAe1B;;;;;OAKG;IACH,OAAO,CAAC,eAAe;YA4DT,uBAAuB;IAmCrC,OAAO,CAAC,iBAAiB;IAqDzB,OAAO,CAAC,WAAW;IAkCnB,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,sBAAsB;IA4E9B,OAAO,CAAC,wBAAwB;IAmChC,OAAO,CAAC,wBAAwB;IA2BhC,OAAO,CAAC,uBAAuB;IAiC/B,OAAO,CAAC,iBAAiB;IAuCzB,OAAO,CAAC,8BAA8B;IAyBtC,OAAO,CAAC,yBAAyB;IAQjC;;;;;;OAMG;IACH,OAAO,CAAC,6BAA6B;IA+BrC;;;;;;OAMG;IACH,OAAO,CAAC,kCAAkC;IAqC1C;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IA2CjB,OAAO,CAAC,4BAA4B;CAWrC"}