@aztec/prover-client 0.0.1-commit.2ed92850 → 0.0.1-commit.3100065

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 (141) hide show
  1. package/dest/config.d.ts +1 -1
  2. package/dest/config.d.ts.map +1 -1
  3. package/dest/config.js +16 -2
  4. package/dest/light/lightweight_checkpoint_builder.d.ts +13 -5
  5. package/dest/light/lightweight_checkpoint_builder.d.ts.map +1 -1
  6. package/dest/light/lightweight_checkpoint_builder.js +64 -25
  7. package/dest/mocks/fixtures.d.ts +1 -1
  8. package/dest/mocks/fixtures.d.ts.map +1 -1
  9. package/dest/mocks/fixtures.js +2 -1
  10. package/dest/mocks/test_context.d.ts +11 -11
  11. package/dest/mocks/test_context.d.ts.map +1 -1
  12. package/dest/mocks/test_context.js +30 -30
  13. package/dest/orchestrator/block-building-helpers.d.ts +4 -4
  14. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
  15. package/dest/orchestrator/block-building-helpers.js +4 -4
  16. package/dest/orchestrator/block-proving-state.d.ts +4 -1
  17. package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
  18. package/dest/orchestrator/block-proving-state.js +7 -0
  19. package/dest/orchestrator/checkpoint-proving-state.d.ts +20 -36
  20. package/dest/orchestrator/checkpoint-proving-state.d.ts.map +1 -1
  21. package/dest/orchestrator/checkpoint-proving-state.js +22 -120
  22. package/dest/orchestrator/checkpoint-sub-tree-orchestrator.d.ts +161 -0
  23. package/dest/orchestrator/checkpoint-sub-tree-orchestrator.d.ts.map +1 -0
  24. package/dest/orchestrator/{orchestrator.js → checkpoint-sub-tree-orchestrator.js} +311 -487
  25. package/dest/orchestrator/chonk-cache.d.ts +39 -0
  26. package/dest/orchestrator/chonk-cache.d.ts.map +1 -0
  27. package/dest/orchestrator/chonk-cache.js +80 -0
  28. package/dest/orchestrator/index.d.ts +4 -2
  29. package/dest/orchestrator/index.d.ts.map +1 -1
  30. package/dest/orchestrator/index.js +3 -1
  31. package/dest/orchestrator/proving-scheduler.d.ts +81 -0
  32. package/dest/orchestrator/proving-scheduler.d.ts.map +1 -0
  33. package/dest/orchestrator/proving-scheduler.js +120 -0
  34. package/dest/orchestrator/top-tree-orchestrator.d.ts +88 -0
  35. package/dest/orchestrator/top-tree-orchestrator.d.ts.map +1 -0
  36. package/dest/orchestrator/top-tree-orchestrator.js +232 -0
  37. package/dest/orchestrator/top-tree-proving-state.d.ts +61 -0
  38. package/dest/orchestrator/top-tree-proving-state.d.ts.map +1 -0
  39. package/dest/orchestrator/top-tree-proving-state.js +185 -0
  40. package/dest/orchestrator/tx-proving-state.d.ts +3 -3
  41. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
  42. package/dest/prover-client/prover-client.d.ts +64 -7
  43. package/dest/prover-client/prover-client.d.ts.map +1 -1
  44. package/dest/prover-client/prover-client.js +66 -14
  45. package/dest/proving_broker/broker_prover_facade.d.ts +6 -5
  46. package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
  47. package/dest/proving_broker/broker_prover_facade.js +21 -22
  48. package/dest/proving_broker/config.d.ts +11 -67
  49. package/dest/proving_broker/config.d.ts.map +1 -1
  50. package/dest/proving_broker/config.js +16 -5
  51. package/dest/proving_broker/index.d.ts +2 -1
  52. package/dest/proving_broker/index.d.ts.map +1 -1
  53. package/dest/proving_broker/index.js +1 -0
  54. package/dest/proving_broker/proof_store/factory.d.ts +2 -5
  55. package/dest/proving_broker/proof_store/factory.d.ts.map +1 -1
  56. package/dest/proving_broker/proof_store/factory.js +7 -30
  57. package/dest/proving_broker/proof_store/file_store_proof_store.d.ts +18 -0
  58. package/dest/proving_broker/proof_store/file_store_proof_store.d.ts.map +1 -0
  59. package/dest/proving_broker/proof_store/file_store_proof_store.js +60 -0
  60. package/dest/proving_broker/proof_store/index.d.ts +2 -2
  61. package/dest/proving_broker/proof_store/index.d.ts.map +1 -1
  62. package/dest/proving_broker/proof_store/index.js +1 -1
  63. package/dest/proving_broker/proving_agent.d.ts +4 -3
  64. package/dest/proving_broker/proving_agent.d.ts.map +1 -1
  65. package/dest/proving_broker/proving_agent.js +4 -4
  66. package/dest/proving_broker/proving_broker.d.ts +8 -5
  67. package/dest/proving_broker/proving_broker.d.ts.map +1 -1
  68. package/dest/proving_broker/proving_broker.js +119 -19
  69. package/dest/proving_broker/proving_broker_database/memory.d.ts +3 -1
  70. package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -1
  71. package/dest/proving_broker/proving_broker_database/memory.js +10 -0
  72. package/dest/proving_broker/proving_broker_database/persisted.d.ts +13 -2
  73. package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -1
  74. package/dest/proving_broker/proving_broker_database/persisted.js +32 -5
  75. package/dest/proving_broker/proving_broker_database.d.ts +15 -1
  76. package/dest/proving_broker/proving_broker_database.d.ts.map +1 -1
  77. package/dest/proving_broker/proving_broker_instrumentation.d.ts +3 -1
  78. package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -1
  79. package/dest/proving_broker/proving_broker_instrumentation.js +18 -7
  80. package/dest/proving_broker/proving_job_controller.d.ts +4 -3
  81. package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
  82. package/dest/proving_broker/proving_job_controller.js +6 -3
  83. package/dest/proving_broker/rpc.d.ts +6 -2
  84. package/dest/proving_broker/rpc.d.ts.map +1 -1
  85. package/dest/proving_broker/rpc.js +87 -23
  86. package/dest/test/epoch_settlement.d.ts +36 -0
  87. package/dest/test/epoch_settlement.d.ts.map +1 -0
  88. package/dest/test/epoch_settlement.js +52 -0
  89. package/dest/test/index.d.ts +2 -0
  90. package/dest/test/index.d.ts.map +1 -0
  91. package/dest/test/index.js +1 -0
  92. package/dest/test/mock_prover.d.ts +4 -4
  93. package/dest/test/mock_prover.js +2 -2
  94. package/package.json +20 -20
  95. package/src/config.ts +18 -2
  96. package/src/light/lightweight_checkpoint_builder.ts +75 -27
  97. package/src/mocks/fixtures.ts +2 -1
  98. package/src/mocks/test_context.ts +26 -43
  99. package/src/orchestrator/block-building-helpers.ts +4 -4
  100. package/src/orchestrator/block-proving-state.ts +9 -0
  101. package/src/orchestrator/checkpoint-proving-state.ts +21 -162
  102. package/src/orchestrator/checkpoint-sub-tree-orchestrator.ts +1044 -0
  103. package/src/orchestrator/chonk-cache.ts +99 -0
  104. package/src/orchestrator/index.ts +8 -1
  105. package/src/orchestrator/proving-scheduler.ts +160 -0
  106. package/src/orchestrator/top-tree-orchestrator.ts +384 -0
  107. package/src/orchestrator/top-tree-proving-state.ts +219 -0
  108. package/src/orchestrator/tx-proving-state.ts +3 -3
  109. package/src/prover-client/prover-client.ts +141 -21
  110. package/src/proving_broker/broker_prover_facade.ts +27 -25
  111. package/src/proving_broker/config.ts +16 -2
  112. package/src/proving_broker/index.ts +1 -0
  113. package/src/proving_broker/proof_store/factory.ts +10 -32
  114. package/src/proving_broker/proof_store/file_store_proof_store.ts +78 -0
  115. package/src/proving_broker/proof_store/index.ts +1 -1
  116. package/src/proving_broker/proving_agent.ts +5 -2
  117. package/src/proving_broker/proving_broker.ts +113 -17
  118. package/src/proving_broker/proving_broker_database/memory.ts +10 -0
  119. package/src/proving_broker/proving_broker_database/persisted.ts +42 -7
  120. package/src/proving_broker/proving_broker_database.ts +16 -0
  121. package/src/proving_broker/proving_broker_instrumentation.ts +19 -6
  122. package/src/proving_broker/proving_job_controller.ts +9 -3
  123. package/src/proving_broker/rpc.ts +46 -20
  124. package/src/test/epoch_settlement.ts +82 -0
  125. package/src/test/index.ts +1 -0
  126. package/src/test/mock_prover.ts +2 -2
  127. package/dest/orchestrator/epoch-proving-state.d.ts +0 -75
  128. package/dest/orchestrator/epoch-proving-state.d.ts.map +0 -1
  129. package/dest/orchestrator/epoch-proving-state.js +0 -267
  130. package/dest/orchestrator/orchestrator.d.ts +0 -126
  131. package/dest/orchestrator/orchestrator.d.ts.map +0 -1
  132. package/dest/prover-client/server-epoch-prover.d.ts +0 -32
  133. package/dest/prover-client/server-epoch-prover.d.ts.map +0 -1
  134. package/dest/prover-client/server-epoch-prover.js +0 -40
  135. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts +0 -14
  136. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts.map +0 -1
  137. package/dest/proving_broker/proof_store/gcs_proof_store.js +0 -52
  138. package/src/orchestrator/epoch-proving-state.ts +0 -378
  139. package/src/orchestrator/orchestrator.ts +0 -1280
  140. package/src/prover-client/server-epoch-prover.ts +0 -69
  141. package/src/proving_broker/proof_store/gcs_proof_store.ts +0 -76
@@ -32,9 +32,23 @@ export interface ProvingBrokerDatabase {
32
32
  * @param err - The error that occurred while processing the proof request
33
33
  */
34
34
  setProvingJobError(id: ProvingJobId, err: string): Promise<void>;
35
+ /**
36
+ * Records that a proof request was cancelled. Unlike a result or error this is not terminal:
37
+ * re-enqueuing the same job id revives it, so the aborted state can survive a restart without
38
+ * permanently blocking the proof.
39
+ * @param id - The ID of the cancelled proof request
40
+ */
41
+ setProvingJobAborted(id: ProvingJobId): Promise<void>;
42
+ /**
43
+ * Clears any stored result for a proof request, returning it to the pending state while keeping
44
+ * the job itself. Used when reviving an aborted job so the revival is persisted and a restart
45
+ * cannot resurrect the stale aborted state.
46
+ * @param id - The ID of the proof request whose result should be cleared
47
+ */
48
+ deleteProvingJobResult(id: ProvingJobId): Promise<void>;
35
49
  /**
36
50
  * Closes the database
37
51
  */
38
52
  close(): Promise<void>;
39
53
  }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZ19icm9rZXJfZGF0YWJhc2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aW5nX2Jyb2tlci9wcm92aW5nX2Jyb2tlcl9kYXRhYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVuSDs7R0FFRztBQUNILE1BQU0sV0FBVyxxQkFBcUI7SUFDcEM7OztPQUdHO0lBQ0gsYUFBYSxDQUFDLEdBQUcsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTlDOzs7T0FHRztJQUNILGtDQUFrQyxDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTVFOztPQUVHO0lBQ0gsY0FBYyxJQUFJLHFCQUFxQixDQUFDLENBQUMsVUFBVSxFQUFFLHVCQUF1QixHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFFM0Y7Ozs7O09BS0c7SUFDSCxtQkFBbUIsQ0FBQyxFQUFFLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxRQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXRFOzs7OztPQUtHO0lBQ0gsa0JBQWtCLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVqRTs7T0FFRztJQUNILEtBQUssSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Q0FDeEIifQ==
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZ19icm9rZXJfZGF0YWJhc2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aW5nX2Jyb2tlci9wcm92aW5nX2Jyb2tlcl9kYXRhYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVuSDs7R0FFRztBQUNILE1BQU0sV0FBVyxxQkFBcUI7SUFDcEM7OztPQUdHO0lBQ0gsYUFBYSxDQUFDLEdBQUcsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTlDOzs7T0FHRztJQUNILGtDQUFrQyxDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTVFOztPQUVHO0lBQ0gsY0FBYyxJQUFJLHFCQUFxQixDQUFDLENBQUMsVUFBVSxFQUFFLHVCQUF1QixHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFFM0Y7Ozs7O09BS0c7SUFDSCxtQkFBbUIsQ0FBQyxFQUFFLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxRQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXRFOzs7OztPQUtHO0lBQ0gsa0JBQWtCLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVqRTs7Ozs7T0FLRztJQUNILG9CQUFvQixDQUFDLEVBQUUsRUFBRSxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXREOzs7OztPQUtHO0lBQ0gsc0JBQXNCLENBQUMsRUFBRSxFQUFFLFlBQVksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFeEQ7O09BRUc7SUFDSCxLQUFLLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0NBQ3hCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"proving_broker_database.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_broker_database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAEnH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;;OAGG;IACH,kCAAkC,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5E;;OAEG;IACH,cAAc,IAAI,qBAAqB,CAAC,CAAC,UAAU,EAAE,uBAAuB,GAAG,SAAS,CAAC,CAAC,CAAC;IAE3F;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtE;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjE;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
1
+ {"version":3,"file":"proving_broker_database.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_broker_database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAEnH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;;OAGG;IACH,kCAAkC,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5E;;OAEG;IACH,cAAc,IAAI,qBAAqB,CAAC,CAAC,UAAU,EAAE,uBAAuB,GAAG,SAAS,CAAC,CAAC,CAAC;IAE3F;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtE;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjE;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtD;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
@@ -7,6 +7,7 @@ export declare class ProvingBrokerInstrumentation {
7
7
  private activeJobs;
8
8
  private resolvedJobs;
9
9
  private rejectedJobs;
10
+ private abortedJobs;
10
11
  private timedOutJobs;
11
12
  private cachedJobs;
12
13
  private totalJobs;
@@ -18,6 +19,7 @@ export declare class ProvingBrokerInstrumentation {
18
19
  monitorActiveJobs(fn: MonitorCallback): void;
19
20
  incResolvedJobs(proofType: ProvingRequestType): void;
20
21
  incRejectedJobs(proofType: ProvingRequestType): void;
22
+ incAbortedJobs(proofType: ProvingRequestType): void;
21
23
  incRetriedJobs(proofType: ProvingRequestType): void;
22
24
  incTimedOutJobs(proofType: ProvingRequestType): void;
23
25
  incCachedJobs(proofType: ProvingRequestType): void;
@@ -26,4 +28,4 @@ export declare class ProvingBrokerInstrumentation {
26
28
  recordJobDuration(proofType: ProvingRequestType, msOrTimer: Timer | number): void;
27
29
  private observe;
28
30
  }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZ19icm9rZXJfaW5zdHJ1bWVudGF0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmluZ19icm9rZXIvcHJvdmluZ19icm9rZXJfaW5zdHJ1bWVudGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFNTCxLQUFLLGVBQWUsRUFFckIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxNQUFNLE1BQU0sZUFBZSxHQUFHLENBQUMsU0FBUyxFQUFFLGtCQUFrQixLQUFLLE1BQU0sQ0FBQztBQUV4RSxxQkFBYSw0QkFBNEI7SUFDdkMsT0FBTyxDQUFDLFNBQVMsQ0FBa0I7SUFDbkMsT0FBTyxDQUFDLFVBQVUsQ0FBa0I7SUFDcEMsT0FBTyxDQUFDLFlBQVksQ0FBZ0I7SUFDcEMsT0FBTyxDQUFDLFlBQVksQ0FBZ0I7SUFDcEMsT0FBTyxDQUFDLFlBQVksQ0FBZ0I7SUFDcEMsT0FBTyxDQUFDLFVBQVUsQ0FBZ0I7SUFDbEMsT0FBTyxDQUFDLFNBQVMsQ0FBZ0I7SUFDakMsT0FBTyxDQUFDLE9BQU8sQ0FBWTtJQUMzQixPQUFPLENBQUMsV0FBVyxDQUFZO0lBQy9CLE9BQU8sQ0FBQyxXQUFXLENBQWdCO0lBRW5DLFlBQVksTUFBTSxFQUFFLGVBQWUsRUFBRSxJQUFJLFNBQWtCLEVBc0IxRDtJQUVELGlCQUFpQixDQUFDLEVBQUUsRUFBRSxlQUFlLFFBRXBDO0lBRUQsaUJBQWlCLENBQUMsRUFBRSxFQUFFLGVBQWUsUUFFcEM7SUFFRCxlQUFlLENBQUMsU0FBUyxFQUFFLGtCQUFrQixRQUk1QztJQUVELGVBQWUsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLFFBSTVDO0lBRUQsY0FBYyxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsUUFJM0M7SUFFRCxlQUFlLENBQUMsU0FBUyxFQUFFLGtCQUFrQixRQUk1QztJQUVELGFBQWEsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLFFBSTFDO0lBRUQsWUFBWSxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsUUFJekM7SUFFRCxhQUFhLENBQUMsU0FBUyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxLQUFLLEdBQUcsTUFBTSxRQUtyRTtJQUVELGlCQUFpQixDQUFDLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsS0FBSyxHQUFHLE1BQU0sUUFLekU7SUFFRCxPQUFPLENBQUMsT0FBTztDQVdoQiJ9
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZ19icm9rZXJfaW5zdHJ1bWVudGF0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmluZ19icm9rZXIvcHJvdmluZ19icm9rZXJfaW5zdHJ1bWVudGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFNTCxLQUFLLGVBQWUsRUFHckIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxNQUFNLE1BQU0sZUFBZSxHQUFHLENBQUMsU0FBUyxFQUFFLGtCQUFrQixLQUFLLE1BQU0sQ0FBQztBQUV4RSxxQkFBYSw0QkFBNEI7SUFDdkMsT0FBTyxDQUFDLFNBQVMsQ0FBa0I7SUFDbkMsT0FBTyxDQUFDLFVBQVUsQ0FBa0I7SUFDcEMsT0FBTyxDQUFDLFlBQVksQ0FBZ0I7SUFDcEMsT0FBTyxDQUFDLFlBQVksQ0FBZ0I7SUFDcEMsT0FBTyxDQUFDLFdBQVcsQ0FBZ0I7SUFDbkMsT0FBTyxDQUFDLFlBQVksQ0FBZ0I7SUFDcEMsT0FBTyxDQUFDLFVBQVUsQ0FBZ0I7SUFDbEMsT0FBTyxDQUFDLFNBQVMsQ0FBZ0I7SUFDakMsT0FBTyxDQUFDLE9BQU8sQ0FBWTtJQUMzQixPQUFPLENBQUMsV0FBVyxDQUFZO0lBQy9CLE9BQU8sQ0FBQyxXQUFXLENBQWdCO0lBRW5DLFlBQVksTUFBTSxFQUFFLGVBQWUsRUFBRSxJQUFJLFNBQWtCLEVBMkIxRDtJQUVELGlCQUFpQixDQUFDLEVBQUUsRUFBRSxlQUFlLFFBRXBDO0lBRUQsaUJBQWlCLENBQUMsRUFBRSxFQUFFLGVBQWUsUUFFcEM7SUFFRCxlQUFlLENBQUMsU0FBUyxFQUFFLGtCQUFrQixRQUk1QztJQUVELGVBQWUsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLFFBSTVDO0lBRUQsY0FBYyxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsUUFJM0M7SUFFRCxjQUFjLENBQUMsU0FBUyxFQUFFLGtCQUFrQixRQUkzQztJQUVELGVBQWUsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLFFBSTVDO0lBRUQsYUFBYSxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsUUFJMUM7SUFFRCxZQUFZLENBQUMsU0FBUyxFQUFFLGtCQUFrQixRQUl6QztJQUVELGFBQWEsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLEtBQUssR0FBRyxNQUFNLFFBS3JFO0lBRUQsaUJBQWlCLENBQUMsU0FBUyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxLQUFLLEdBQUcsTUFBTSxRQUt6RTtJQUVELE9BQU8sQ0FBQyxPQUFPO0NBV2hCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"proving_broker_instrumentation.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_broker_instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAML,KAAK,eAAe,EAErB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,kBAAkB,KAAK,MAAM,CAAC;AAExE,qBAAa,4BAA4B;IACvC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,WAAW,CAAY;IAC/B,OAAO,CAAC,WAAW,CAAgB;IAEnC,YAAY,MAAM,EAAE,eAAe,EAAE,IAAI,SAAkB,EAsB1D;IAED,iBAAiB,CAAC,EAAE,EAAE,eAAe,QAEpC;IAED,iBAAiB,CAAC,EAAE,EAAE,eAAe,QAEpC;IAED,eAAe,CAAC,SAAS,EAAE,kBAAkB,QAI5C;IAED,eAAe,CAAC,SAAS,EAAE,kBAAkB,QAI5C;IAED,cAAc,CAAC,SAAS,EAAE,kBAAkB,QAI3C;IAED,eAAe,CAAC,SAAS,EAAE,kBAAkB,QAI5C;IAED,aAAa,CAAC,SAAS,EAAE,kBAAkB,QAI1C;IAED,YAAY,CAAC,SAAS,EAAE,kBAAkB,QAIzC;IAED,aAAa,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,KAAK,GAAG,MAAM,QAKrE;IAED,iBAAiB,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,KAAK,GAAG,MAAM,QAKzE;IAED,OAAO,CAAC,OAAO;CAWhB"}
1
+ {"version":3,"file":"proving_broker_instrumentation.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_broker_instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAML,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,kBAAkB,KAAK,MAAM,CAAC;AAExE,qBAAa,4BAA4B;IACvC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,WAAW,CAAY;IAC/B,OAAO,CAAC,WAAW,CAAgB;IAEnC,YAAY,MAAM,EAAE,eAAe,EAAE,IAAI,SAAkB,EA2B1D;IAED,iBAAiB,CAAC,EAAE,EAAE,eAAe,QAEpC;IAED,iBAAiB,CAAC,EAAE,EAAE,eAAe,QAEpC;IAED,eAAe,CAAC,SAAS,EAAE,kBAAkB,QAI5C;IAED,eAAe,CAAC,SAAS,EAAE,kBAAkB,QAI5C;IAED,cAAc,CAAC,SAAS,EAAE,kBAAkB,QAI3C;IAED,cAAc,CAAC,SAAS,EAAE,kBAAkB,QAI3C;IAED,eAAe,CAAC,SAAS,EAAE,kBAAkB,QAI5C;IAED,aAAa,CAAC,SAAS,EAAE,kBAAkB,QAI1C;IAED,YAAY,CAAC,SAAS,EAAE,kBAAkB,QAIzC;IAED,aAAa,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,KAAK,GAAG,MAAM,QAKrE;IAED,iBAAiB,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,KAAK,GAAG,MAAM,QAKzE;IAED,OAAO,CAAC,OAAO;CAWhB"}
@@ -1,10 +1,11 @@
1
1
  import { ProvingRequestType } from '@aztec/stdlib/proofs';
2
- import { Attributes, Metrics } from '@aztec/telemetry-client';
2
+ import { Attributes, Metrics, createUpDownCounterWithDefault } from '@aztec/telemetry-client';
3
3
  export class ProvingBrokerInstrumentation {
4
4
  queueSize;
5
5
  activeJobs;
6
6
  resolvedJobs;
7
7
  rejectedJobs;
8
+ abortedJobs;
8
9
  timedOutJobs;
9
10
  cachedJobs;
10
11
  totalJobs;
@@ -15,12 +16,17 @@ export class ProvingBrokerInstrumentation {
15
16
  const meter = client.getMeter(name);
16
17
  this.queueSize = meter.createObservableGauge(Metrics.PROVING_QUEUE_SIZE);
17
18
  this.activeJobs = meter.createObservableGauge(Metrics.PROVING_QUEUE_ACTIVE_JOBS);
18
- this.resolvedJobs = meter.createUpDownCounter(Metrics.PROVING_QUEUE_RESOLVED_JOBS);
19
- this.rejectedJobs = meter.createUpDownCounter(Metrics.PROVING_QUEUE_REJECTED_JOBS);
20
- this.retriedJobs = meter.createUpDownCounter(Metrics.PROVING_QUEUE_RETRIED_JOBS);
21
- this.timedOutJobs = meter.createUpDownCounter(Metrics.PROVING_QUEUE_TIMED_OUT_JOBS);
22
- this.cachedJobs = meter.createUpDownCounter(Metrics.PROVING_QUEUE_CACHED_JOBS);
23
- this.totalJobs = meter.createUpDownCounter(Metrics.PROVING_QUEUE_TOTAL_JOBS);
19
+ const provingJobTypes = Object.values(ProvingRequestType).filter((v)=>typeof v === 'string');
20
+ const provingJobAttrs = {
21
+ [Attributes.PROVING_JOB_TYPE]: provingJobTypes
22
+ };
23
+ this.resolvedJobs = createUpDownCounterWithDefault(meter, Metrics.PROVING_QUEUE_RESOLVED_JOBS, provingJobAttrs);
24
+ this.rejectedJobs = createUpDownCounterWithDefault(meter, Metrics.PROVING_QUEUE_REJECTED_JOBS, provingJobAttrs);
25
+ this.abortedJobs = createUpDownCounterWithDefault(meter, Metrics.PROVING_QUEUE_ABORTED_JOBS, provingJobAttrs);
26
+ this.retriedJobs = createUpDownCounterWithDefault(meter, Metrics.PROVING_QUEUE_RETRIED_JOBS, provingJobAttrs);
27
+ this.timedOutJobs = createUpDownCounterWithDefault(meter, Metrics.PROVING_QUEUE_TIMED_OUT_JOBS, provingJobAttrs);
28
+ this.cachedJobs = createUpDownCounterWithDefault(meter, Metrics.PROVING_QUEUE_CACHED_JOBS, provingJobAttrs);
29
+ this.totalJobs = createUpDownCounterWithDefault(meter, Metrics.PROVING_QUEUE_TOTAL_JOBS, provingJobAttrs);
24
30
  this.jobWait = meter.createHistogram(Metrics.PROVING_QUEUE_JOB_WAIT);
25
31
  this.jobDuration = meter.createHistogram(Metrics.PROVING_QUEUE_JOB_DURATION);
26
32
  }
@@ -40,6 +46,11 @@ export class ProvingBrokerInstrumentation {
40
46
  [Attributes.PROVING_JOB_TYPE]: ProvingRequestType[proofType]
41
47
  });
42
48
  }
49
+ incAbortedJobs(proofType) {
50
+ this.abortedJobs.add(1, {
51
+ [Attributes.PROVING_JOB_TYPE]: ProvingRequestType[proofType]
52
+ });
53
+ }
43
54
  incRetriedJobs(proofType) {
44
55
  this.retriedJobs.add(1, {
45
56
  [Attributes.PROVING_JOB_TYPE]: ProvingRequestType[proofType]
@@ -1,4 +1,5 @@
1
1
  import { EpochNumber } from '@aztec/foundation/branded-types';
2
+ import { type LoggerBindings } from '@aztec/foundation/log';
2
3
  import type { ProvingJobId, ProvingJobInputs, ProvingJobResultsMap, ServerCircuitProver } from '@aztec/stdlib/interfaces/server';
3
4
  import { ProvingRequestType } from '@aztec/stdlib/proofs';
4
5
  export declare enum ProvingJobControllerStatus {
@@ -13,12 +14,12 @@ export declare class ProvingJobController {
13
14
  private startedAt;
14
15
  private circuitProver;
15
16
  private onComplete;
16
- private log;
17
17
  private status;
18
18
  private promise?;
19
19
  private abortController;
20
20
  private result?;
21
- constructor(jobId: ProvingJobId, inputs: ProvingJobInputs, epochNumber: EpochNumber, startedAt: number, circuitProver: ServerCircuitProver, onComplete: () => void, log?: import("@aztec/foundation/log").Logger);
21
+ private log;
22
+ constructor(jobId: ProvingJobId, inputs: ProvingJobInputs, epochNumber: EpochNumber, startedAt: number, circuitProver: ServerCircuitProver, onComplete: () => void, bindings?: LoggerBindings);
22
23
  start(): void;
23
24
  getStatus(): ProvingJobControllerStatus;
24
25
  getResult(): ProvingJobResultsMap[ProvingRequestType] | Error | undefined;
@@ -30,4 +31,4 @@ export declare class ProvingJobController {
30
31
  private run;
31
32
  private generateProof;
32
33
  }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZ19qb2JfY29udHJvbGxlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpbmdfYnJva2VyL3Byb3Zpbmdfam9iX2NvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBSTlELE9BQU8sS0FBSyxFQUNWLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNwQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTFELG9CQUFZLDBCQUEwQjtJQUNwQyxJQUFJLFNBQVM7SUFDYixPQUFPLFlBQVk7SUFDbkIsSUFBSSxTQUFTO0NBQ2Q7QUFFRCxxQkFBYSxvQkFBb0I7SUFPN0IsT0FBTyxDQUFDLEtBQUs7SUFDYixPQUFPLENBQUMsTUFBTTtJQUNkLE9BQU8sQ0FBQyxXQUFXO0lBQ25CLE9BQU8sQ0FBQyxTQUFTO0lBQ2pCLE9BQU8sQ0FBQyxhQUFhO0lBQ3JCLE9BQU8sQ0FBQyxVQUFVO0lBQ2xCLE9BQU8sQ0FBQyxHQUFHO0lBWmIsT0FBTyxDQUFDLE1BQU0sQ0FBK0Q7SUFDN0UsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFnQjtJQUNoQyxPQUFPLENBQUMsZUFBZSxDQUF5QjtJQUNoRCxPQUFPLENBQUMsTUFBTSxDQUFDLENBQW1EO0lBRWxFLFlBQ1UsS0FBSyxFQUFFLFlBQVksRUFDbkIsTUFBTSxFQUFFLGdCQUFnQixFQUN4QixXQUFXLEVBQUUsV0FBVyxFQUN4QixTQUFTLEVBQUUsTUFBTSxFQUNqQixhQUFhLEVBQUUsbUJBQW1CLEVBQ2xDLFVBQVUsRUFBRSxNQUFNLElBQUksRUFDdEIsR0FBRyx5Q0FBK0YsRUFDeEc7SUFFRyxLQUFLLElBQUksSUFBSSxDQWlCbkI7SUFFTSxTQUFTLElBQUksMEJBQTBCLENBRTdDO0lBRU0sU0FBUyxJQUFJLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDLEdBQUcsS0FBSyxHQUFHLFNBQVMsQ0FFL0U7SUFFTSxLQUFLLElBQUksSUFBSSxDQWFuQjtJQUVNLFFBQVEsSUFBSSxZQUFZLENBRTlCO0lBRU0sWUFBWSxJQUFJLGtCQUFrQixDQUV4QztJQUVNLFlBQVksSUFBSSxNQUFNLENBRTVCO0lBRU0sZ0JBQWdCLElBQUksTUFBTSxDQUVoQztJQUVELE9BQU8sQ0FBQyxHQUFHLENBNEJUO1lBRVksYUFBYTtDQWtGNUIifQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZ19qb2JfY29udHJvbGxlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpbmdfYnJva2VyL3Byb3Zpbmdfam9iX2NvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzlELE9BQU8sRUFBZSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RixPQUFPLEtBQUssRUFDVixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDcEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUxRCxvQkFBWSwwQkFBMEI7SUFDcEMsSUFBSSxTQUFTO0lBQ2IsT0FBTyxZQUFZO0lBQ25CLElBQUksU0FBUztDQUNkO0FBRUQscUJBQWEsb0JBQW9CO0lBUTdCLE9BQU8sQ0FBQyxLQUFLO0lBQ2IsT0FBTyxDQUFDLE1BQU07SUFDZCxPQUFPLENBQUMsV0FBVztJQUNuQixPQUFPLENBQUMsU0FBUztJQUNqQixPQUFPLENBQUMsYUFBYTtJQUNyQixPQUFPLENBQUMsVUFBVTtJQVpwQixPQUFPLENBQUMsTUFBTSxDQUErRDtJQUM3RSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQWdCO0lBQ2hDLE9BQU8sQ0FBQyxlQUFlLENBQXlCO0lBQ2hELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBbUQ7SUFDbEUsT0FBTyxDQUFDLEdBQUcsQ0FBUztJQUVwQixZQUNVLEtBQUssRUFBRSxZQUFZLEVBQ25CLE1BQU0sRUFBRSxnQkFBZ0IsRUFDeEIsV0FBVyxFQUFFLFdBQVcsRUFDeEIsU0FBUyxFQUFFLE1BQU0sRUFDakIsYUFBYSxFQUFFLG1CQUFtQixFQUNsQyxVQUFVLEVBQUUsTUFBTSxJQUFJLEVBQzlCLFFBQVEsQ0FBQyxFQUFFLGNBQWMsRUFNMUI7SUFFTSxLQUFLLElBQUksSUFBSSxDQWlCbkI7SUFFTSxTQUFTLElBQUksMEJBQTBCLENBRTdDO0lBRU0sU0FBUyxJQUFJLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDLEdBQUcsS0FBSyxHQUFHLFNBQVMsQ0FFL0U7SUFFTSxLQUFLLElBQUksSUFBSSxDQWFuQjtJQUVNLFFBQVEsSUFBSSxZQUFZLENBRTlCO0lBRU0sWUFBWSxJQUFJLGtCQUFrQixDQUV4QztJQUVNLFlBQVksSUFBSSxNQUFNLENBRTVCO0lBRU0sZ0JBQWdCLElBQUksTUFBTSxDQUVoQztJQUVELE9BQU8sQ0FBQyxHQUFHLENBNEJUO1lBRVksYUFBYTtDQWtGNUIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"proving_job_controller.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_job_controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAI9D,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,oBAAY,0BAA0B;IACpC,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,qBAAa,oBAAoB;IAO7B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,GAAG;IAZb,OAAO,CAAC,MAAM,CAA+D;IAC7E,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,MAAM,CAAC,CAAmD;IAElE,YACU,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,mBAAmB,EAClC,UAAU,EAAE,MAAM,IAAI,EACtB,GAAG,yCAA+F,EACxG;IAEG,KAAK,IAAI,IAAI,CAiBnB;IAEM,SAAS,IAAI,0BAA0B,CAE7C;IAEM,SAAS,IAAI,oBAAoB,CAAC,kBAAkB,CAAC,GAAG,KAAK,GAAG,SAAS,CAE/E;IAEM,KAAK,IAAI,IAAI,CAanB;IAEM,QAAQ,IAAI,YAAY,CAE9B;IAEM,YAAY,IAAI,kBAAkB,CAExC;IAEM,YAAY,IAAI,MAAM,CAE5B;IAEM,gBAAgB,IAAI,MAAM,CAEhC;IAED,OAAO,CAAC,GAAG,CA4BT;YAEY,aAAa;CAkF5B"}
1
+ {"version":3,"file":"proving_job_controller.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_job_controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAG9D,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AACvF,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,oBAAY,0BAA0B;IACpC,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,qBAAa,oBAAoB;IAQ7B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,UAAU;IAZpB,OAAO,CAAC,MAAM,CAA+D;IAC7E,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,MAAM,CAAC,CAAmD;IAClE,OAAO,CAAC,GAAG,CAAS;IAEpB,YACU,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,mBAAmB,EAClC,UAAU,EAAE,MAAM,IAAI,EAC9B,QAAQ,CAAC,EAAE,cAAc,EAM1B;IAEM,KAAK,IAAI,IAAI,CAiBnB;IAEM,SAAS,IAAI,0BAA0B,CAE7C;IAEM,SAAS,IAAI,oBAAoB,CAAC,kBAAkB,CAAC,GAAG,KAAK,GAAG,SAAS,CAE/E;IAEM,KAAK,IAAI,IAAI,CAanB;IAEM,QAAQ,IAAI,YAAY,CAE9B;IAEM,YAAY,IAAI,kBAAkB,CAExC;IAEM,YAAY,IAAI,MAAM,CAE5B;IAEM,gBAAgB,IAAI,MAAM,CAEhC;IAED,OAAO,CAAC,GAAG,CA4BT;YAEY,aAAa;CAkF5B"}
@@ -15,19 +15,18 @@ export class ProvingJobController {
15
15
  startedAt;
16
16
  circuitProver;
17
17
  onComplete;
18
- log;
19
18
  status;
20
19
  promise;
21
20
  abortController;
22
21
  result;
23
- constructor(jobId, inputs, epochNumber, startedAt, circuitProver, onComplete, log = createLogger('prover-client:proving-agent:job-controller-' + randomBytes(4).toString('hex'))){
22
+ log;
23
+ constructor(jobId, inputs, epochNumber, startedAt, circuitProver, onComplete, bindings){
24
24
  this.jobId = jobId;
25
25
  this.inputs = inputs;
26
26
  this.epochNumber = epochNumber;
27
27
  this.startedAt = startedAt;
28
28
  this.circuitProver = circuitProver;
29
29
  this.onComplete = onComplete;
30
- this.log = log;
31
30
  this.status = "idle";
32
31
  this.abortController = new AbortController();
33
32
  this.run = async ()=>{
@@ -61,6 +60,10 @@ export class ProvingJobController {
61
60
  });
62
61
  }
63
62
  };
63
+ this.log = createLogger('prover-client:proving-agent:job-controller', {
64
+ instanceId: randomBytes(4).toString('hex'),
65
+ ...bindings
66
+ });
64
67
  }
65
68
  start() {
66
69
  if (this.status !== "idle") {
@@ -1,9 +1,13 @@
1
- import { type ProvingJobBroker, type ProvingJobConsumer, type ProvingJobProducer } from '@aztec/stdlib/interfaces/server';
1
+ import { type ProvingJobBroker, type ProvingJobBrokerDebug, type ProvingJobConsumer, type ProvingJobProducer } from '@aztec/stdlib/interfaces/server';
2
2
  import { type ApiSchemaFor } from '@aztec/stdlib/schemas';
3
3
  import { type ComponentsVersions } from '@aztec/stdlib/versioning';
4
+ /** Indefinite backoff for broker communication: 1, 1, 1, 2, 4, 4, 4, ... seconds. */
5
+ export declare function proverBrokerBackoff(): Generator<number, void, unknown>;
4
6
  export declare const ProvingJobProducerSchema: ApiSchemaFor<ProvingJobProducer>;
5
7
  export declare const ProvingJobConsumerSchema: ApiSchemaFor<ProvingJobConsumer>;
6
8
  export declare const ProvingJobBrokerSchema: ApiSchemaFor<ProvingJobBroker>;
9
+ export declare const ProvingJobBrokerDebugSchema: ApiSchemaFor<ProvingJobBrokerDebug>;
10
+ export declare const ProvingJobBrokerSchemaWithDebug: ApiSchemaFor<ProvingJobBroker & ProvingJobBrokerDebug>;
7
11
  export declare function createProvingJobBrokerClient(url: string, versions: Partial<ComponentsVersions>, fetch?: (host: string, body: unknown, extraHeaders?: Record<string, string> | undefined, noRetry?: boolean | undefined) => Promise<{
8
12
  response: any;
9
13
  headers: {
@@ -22,4 +26,4 @@ export declare function createProvingJobConsumerClient(url: string, versions: Pa
22
26
  get: (header: string) => string | null | undefined;
23
27
  };
24
28
  }>): ProvingJobConsumer;
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnBjLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmluZ19icm9rZXIvcnBjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFJTCxLQUFLLGdCQUFnQixFQUNyQixLQUFLLGtCQUFrQixFQUV2QixLQUFLLGtCQUFrQixFQUV4QixNQUFNLGlDQUFpQyxDQUFDO0FBRXpDLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBWSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUFnQyxNQUFNLDBCQUEwQixDQUFDO0FBY2pHLGVBQU8sTUFBTSx3QkFBd0IsRUFBRSxZQUFZLENBQUMsa0JBQWtCLENBS3JFLENBQUM7QUFFRixlQUFPLE1BQU0sd0JBQXdCLEVBQUUsWUFBWSxDQUFDLGtCQUFrQixDQWNyRSxDQUFDO0FBRUYsZUFBTyxNQUFNLHNCQUFzQixFQUFFLFlBQVksQ0FBQyxnQkFBZ0IsQ0FHakUsQ0FBQztBQUVGLHdCQUFnQiw0QkFBNEIsQ0FDMUMsR0FBRyxFQUFFLE1BQU0sRUFDWCxRQUFRLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQ3JDLEtBQUs7Ozs7O0VBQW9DLEdBQ3hDLGdCQUFnQixDQU1sQjtBQUVELHdCQUFnQiw4QkFBOEIsQ0FDNUMsR0FBRyxFQUFFLE1BQU0sRUFDWCxRQUFRLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQ3JDLEtBQUs7Ozs7O0VBQW9DLEdBQ3hDLGtCQUFrQixDQU1wQjtBQUVELHdCQUFnQiw4QkFBOEIsQ0FDNUMsR0FBRyxFQUFFLE1BQU0sRUFDWCxRQUFRLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQ3JDLEtBQUs7Ozs7O0VBQW9DLEdBQ3hDLGtCQUFrQixDQU1wQiJ9
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnBjLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmluZ19icm9rZXIvcnBjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFJTCxLQUFLLGdCQUFnQixFQUNyQixLQUFLLHFCQUFxQixFQUMxQixLQUFLLGtCQUFrQixFQUV2QixLQUFLLGtCQUFrQixFQUV4QixNQUFNLGlDQUFpQyxDQUFDO0FBRXpDLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBWSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUFnQyxNQUFNLDBCQUEwQixDQUFDO0FBS2pHLHFGQUFxRjtBQUNyRix3QkFBaUIsbUJBQW1CLHFDQU1uQztBQVdELGVBQU8sTUFBTSx3QkFBd0IsRUFBRSxZQUFZLENBQUMsa0JBQWtCLENBS3JFLENBQUM7QUFFRixlQUFPLE1BQU0sd0JBQXdCLEVBQUUsWUFBWSxDQUFDLGtCQUFrQixDQWlCckUsQ0FBQztBQUVGLGVBQU8sTUFBTSxzQkFBc0IsRUFBRSxZQUFZLENBQUMsZ0JBQWdCLENBR2pFLENBQUM7QUFFRixlQUFPLE1BQU0sMkJBQTJCLEVBQUUsWUFBWSxDQUFDLHFCQUFxQixDQUszRSxDQUFDO0FBRUYsZUFBTyxNQUFNLCtCQUErQixFQUFFLFlBQVksQ0FBQyxnQkFBZ0IsR0FBRyxxQkFBcUIsQ0FHbEcsQ0FBQztBQUVGLHdCQUFnQiw0QkFBNEIsQ0FDMUMsR0FBRyxFQUFFLE1BQU0sRUFDWCxRQUFRLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQ3JDLEtBQUs7Ozs7O0VBQThDLEdBQ2xELGdCQUFnQixDQU1sQjtBQUVELHdCQUFnQiw4QkFBOEIsQ0FDNUMsR0FBRyxFQUFFLE1BQU0sRUFDWCxRQUFRLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQ3JDLEtBQUs7Ozs7O0VBQThDLEdBQ2xELGtCQUFrQixDQU1wQjtBQUVELHdCQUFnQiw4QkFBOEIsQ0FDNUMsR0FBRyxFQUFFLE1BQU0sRUFDWCxRQUFRLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQ3JDLEtBQUs7Ozs7O0VBQThDLEdBQ2xELGtCQUFrQixDQU1wQiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/proving_broker/rpc.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EAEvB,KAAK,kBAAkB,EAExB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,KAAK,YAAY,EAAY,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,KAAK,kBAAkB,EAAgC,MAAM,0BAA0B,CAAC;AAcjG,eAAO,MAAM,wBAAwB,EAAE,YAAY,CAAC,kBAAkB,CAKrE,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,YAAY,CAAC,kBAAkB,CAcrE,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,YAAY,CAAC,gBAAgB,CAGjE,CAAC;AAEF,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACrC,KAAK;;;;;EAAoC,GACxC,gBAAgB,CAMlB;AAED,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACrC,KAAK;;;;;EAAoC,GACxC,kBAAkB,CAMpB;AAED,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACrC,KAAK;;;;;EAAoC,GACxC,kBAAkB,CAMpB"}
1
+ {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/proving_broker/rpc.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EAEvB,KAAK,kBAAkB,EAExB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,KAAK,YAAY,EAAY,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,KAAK,kBAAkB,EAAgC,MAAM,0BAA0B,CAAC;AAKjG,qFAAqF;AACrF,wBAAiB,mBAAmB,qCAMnC;AAWD,eAAO,MAAM,wBAAwB,EAAE,YAAY,CAAC,kBAAkB,CAKrE,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,YAAY,CAAC,kBAAkB,CAiBrE,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,YAAY,CAAC,gBAAgB,CAGjE,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,YAAY,CAAC,qBAAqB,CAK3E,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,YAAY,CAAC,gBAAgB,GAAG,qBAAqB,CAGlG,CAAC;AAEF,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACrC,KAAK;;;;;EAA8C,GAClD,gBAAgB,CAMlB;AAED,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACrC,KAAK;;;;;EAA8C,GAClD,kBAAkB,CAMpB;AAED,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACrC,KAAK;;;;;EAA8C,GAClD,kBAAkB,CAMpB"}
@@ -1,3 +1,4 @@
1
+ import { EpochNumberSchema } from '@aztec/foundation/branded-types';
1
2
  import { createSafeJsonRpcClient } from '@aztec/foundation/json-rpc/client';
2
3
  import { ProofUri, ProvingJob, ProvingJobId, ProvingJobStatus } from '@aztec/stdlib/interfaces/server';
3
4
  import { ProvingRequestType } from '@aztec/stdlib/proofs';
@@ -5,6 +6,19 @@ import { optional } from '@aztec/stdlib/schemas';
5
6
  import { getVersioningResponseHandler } from '@aztec/stdlib/versioning';
6
7
  import { makeTracedFetch } from '@aztec/telemetry-client';
7
8
  import { z } from 'zod';
9
+ /** Indefinite backoff for broker communication: 1, 1, 1, 2, 4, 4, 4, ... seconds. */ export function* proverBrokerBackoff() {
10
+ const v = [
11
+ 1,
12
+ 1,
13
+ 1,
14
+ 2,
15
+ 4
16
+ ];
17
+ let i = 0;
18
+ while(true){
19
+ yield v[Math.min(i++, v.length - 1)];
20
+ }
21
+ }
8
22
  const ProvingJobFilterSchema = z.object({
9
23
  allowList: z.array(z.nativeEnum(ProvingRequestType))
10
24
  });
@@ -13,48 +27,98 @@ const GetProvingJobResponse = z.object({
13
27
  time: z.number()
14
28
  });
15
29
  export const ProvingJobProducerSchema = {
16
- enqueueProvingJob: z.function().args(ProvingJob).returns(ProvingJobStatus),
17
- getProvingJobStatus: z.function().args(ProvingJobId).returns(ProvingJobStatus),
18
- cancelProvingJob: z.function().args(ProvingJobId).returns(z.void()),
19
- getCompletedJobs: z.function().args(z.array(ProvingJobId)).returns(z.array(ProvingJobId))
30
+ enqueueProvingJob: z.function({
31
+ input: z.tuple([
32
+ ProvingJob
33
+ ]),
34
+ output: ProvingJobStatus
35
+ }),
36
+ getProvingJobStatus: z.function({
37
+ input: z.tuple([
38
+ ProvingJobId
39
+ ]),
40
+ output: ProvingJobStatus
41
+ }),
42
+ cancelProvingJob: z.function({
43
+ input: z.tuple([
44
+ ProvingJobId
45
+ ]),
46
+ output: z.void()
47
+ }),
48
+ getCompletedJobs: z.function({
49
+ input: z.tuple([
50
+ z.array(ProvingJobId)
51
+ ]),
52
+ output: z.array(ProvingJobId)
53
+ })
20
54
  };
21
55
  export const ProvingJobConsumerSchema = {
22
- getProvingJob: z.function().args(optional(ProvingJobFilterSchema)).returns(GetProvingJobResponse.optional()),
23
- reportProvingJobError: z.function().args(ProvingJobId, z.string(), optional(z.boolean()), optional(ProvingJobFilterSchema)).returns(GetProvingJobResponse.optional()),
24
- reportProvingJobProgress: z.function().args(ProvingJobId, z.number(), optional(ProvingJobFilterSchema)).returns(GetProvingJobResponse.optional()),
25
- reportProvingJobSuccess: z.function().args(ProvingJobId, ProofUri, optional(ProvingJobFilterSchema)).returns(GetProvingJobResponse.optional())
56
+ getProvingJob: z.function({
57
+ input: z.tuple([
58
+ optional(ProvingJobFilterSchema)
59
+ ]),
60
+ output: GetProvingJobResponse.optional()
61
+ }),
62
+ reportProvingJobError: z.function({
63
+ input: z.tuple([
64
+ ProvingJobId,
65
+ z.string(),
66
+ optional(z.boolean()),
67
+ optional(ProvingJobFilterSchema)
68
+ ]),
69
+ output: GetProvingJobResponse.optional()
70
+ }),
71
+ reportProvingJobProgress: z.function({
72
+ input: z.tuple([
73
+ ProvingJobId,
74
+ z.number(),
75
+ optional(ProvingJobFilterSchema)
76
+ ]),
77
+ output: GetProvingJobResponse.optional()
78
+ }),
79
+ reportProvingJobSuccess: z.function({
80
+ input: z.tuple([
81
+ ProvingJobId,
82
+ ProofUri,
83
+ optional(ProvingJobFilterSchema)
84
+ ]),
85
+ output: GetProvingJobResponse.optional()
86
+ })
26
87
  };
27
88
  export const ProvingJobBrokerSchema = {
28
89
  ...ProvingJobConsumerSchema,
29
90
  ...ProvingJobProducerSchema
30
91
  };
31
- export function createProvingJobBrokerClient(url, versions, fetch = makeTracedFetch([
32
- 1,
33
- 2,
34
- 3
35
- ], false)) {
92
+ export const ProvingJobBrokerDebugSchema = {
93
+ replayProvingJob: z.function({
94
+ input: z.tuple([
95
+ ProvingJobId,
96
+ z.nativeEnum(ProvingRequestType),
97
+ EpochNumberSchema,
98
+ ProofUri
99
+ ]),
100
+ output: ProvingJobStatus
101
+ })
102
+ };
103
+ export const ProvingJobBrokerSchemaWithDebug = {
104
+ ...ProvingJobBrokerSchema,
105
+ ...ProvingJobBrokerDebugSchema
106
+ };
107
+ export function createProvingJobBrokerClient(url, versions, fetch = makeTracedFetch(proverBrokerBackoff, false)) {
36
108
  return createSafeJsonRpcClient(url, ProvingJobBrokerSchema, {
37
109
  namespaceMethods: 'proverBroker',
38
110
  fetch,
39
111
  onResponse: getVersioningResponseHandler(versions)
40
112
  });
41
113
  }
42
- export function createProvingJobProducerClient(url, versions, fetch = makeTracedFetch([
43
- 1,
44
- 2,
45
- 3
46
- ], false)) {
114
+ export function createProvingJobProducerClient(url, versions, fetch = makeTracedFetch(proverBrokerBackoff, false)) {
47
115
  return createSafeJsonRpcClient(url, ProvingJobProducerSchema, {
48
116
  namespaceMethods: 'provingJobProducer',
49
117
  fetch,
50
118
  onResponse: getVersioningResponseHandler(versions)
51
119
  });
52
120
  }
53
- export function createProvingJobConsumerClient(url, versions, fetch = makeTracedFetch([
54
- 1,
55
- 2,
56
- 3
57
- ], false)) {
121
+ export function createProvingJobConsumerClient(url, versions, fetch = makeTracedFetch(proverBrokerBackoff, false)) {
58
122
  return createSafeJsonRpcClient(url, ProvingJobConsumerSchema, {
59
123
  namespaceMethods: 'provingJobConsumer',
60
124
  fetch,
@@ -0,0 +1,36 @@
1
+ import type { RollupCheatCodes } from '@aztec/ethereum/test';
2
+ import type { CheckpointNumber, EpochNumber } from '@aztec/foundation/branded-types';
3
+ import type { Logger } from '@aztec/foundation/log';
4
+ import type { L2BlockSource } from '@aztec/stdlib/block';
5
+ /** Arguments for {@link settleEpochOutbox}. */
6
+ export type SettleEpochOutboxArgs = {
7
+ /** Cheat codes used to write the computed out hash directly into the L1 Outbox storage. */
8
+ rollupCheatCodes: RollupCheatCodes;
9
+ /** Source of checkpointed L2 blocks for the epoch being settled. */
10
+ l2BlockSource: L2BlockSource;
11
+ /** Epoch to settle. */
12
+ epoch: EpochNumber;
13
+ /**
14
+ * When set, only checkpoints up to and including this number are covered. Used to settle a partial
15
+ * epoch (the AZIP-14 Outbox keeps one root per `numCheckpointsInEpoch`, so a prefix of an epoch can
16
+ * be settled and consumed before the epoch completes). When omitted, every checkpointed block in the
17
+ * epoch is covered.
18
+ */
19
+ maxCheckpoint?: CheckpointNumber;
20
+ log: Logger;
21
+ };
22
+ /**
23
+ * Computes the epoch out hash over the checkpointed blocks of an epoch (optionally only up to
24
+ * `maxCheckpoint`) and writes it into the L1 Outbox via cheat codes. This is the synthetic,
25
+ * no-prover equivalent of an epoch root proof landing on L1: it makes the L2-to-L1 messages in the
26
+ * covered checkpoints consumable. It does NOT advance the rollup's proven tip — callers
27
+ * `markAsProven` separately so a single prove call can settle multiple epochs before marking proven.
28
+ *
29
+ * Used by the test-only proving drivers: the `AutomineSequencer`'s auto-settle loop and the standalone
30
+ * `EpochTestSettler`. Lives here (rather than in either consumer) so both share one implementation.
31
+ *
32
+ * @returns The last checkpoint number covered by the settled range, or `undefined` if the epoch has
33
+ * no checkpointed blocks (within the `maxCheckpoint` bound).
34
+ */
35
+ export declare function settleEpochOutbox({ rollupCheatCodes, l2BlockSource, epoch, maxCheckpoint, log }: SettleEpochOutboxArgs): Promise<CheckpointNumber | undefined>;
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2hfc2V0dGxlbWVudC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QvZXBvY2hfc2V0dGxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBYyxNQUFNLGlDQUFpQyxDQUFDO0FBRWpHLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR3pELCtDQUErQztBQUMvQyxNQUFNLE1BQU0scUJBQXFCLEdBQUc7SUFDbEMsMkZBQTJGO0lBQzNGLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO0lBQ25DLG9FQUFvRTtJQUNwRSxhQUFhLEVBQUUsYUFBYSxDQUFDO0lBQzdCLHVCQUF1QjtJQUN2QixLQUFLLEVBQUUsV0FBVyxDQUFDO0lBQ25COzs7OztPQUtHO0lBQ0gsYUFBYSxDQUFDLEVBQUUsZ0JBQWdCLENBQUM7SUFDakMsR0FBRyxFQUFFLE1BQU0sQ0FBQztDQUNiLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCx3QkFBc0IsaUJBQWlCLENBQUMsRUFDdEMsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYixLQUFLLEVBQ0wsYUFBYSxFQUNiLEdBQUcsRUFDSixFQUFFLHFCQUFxQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsQ0FxQy9EIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"epoch_settlement.d.ts","sourceRoot":"","sources":["../../src/test/epoch_settlement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAc,MAAM,iCAAiC,CAAC;AAEjG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,+CAA+C;AAC/C,MAAM,MAAM,qBAAqB,GAAG;IAClC,2FAA2F;IAC3F,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,oEAAoE;IACpE,aAAa,EAAE,aAAa,CAAC;IAC7B,uBAAuB;IACvB,KAAK,EAAE,WAAW,CAAC;IACnB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CAAC,EACtC,gBAAgB,EAChB,aAAa,EACb,KAAK,EACL,aAAa,EACb,GAAG,EACJ,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAqC/D"}
@@ -0,0 +1,52 @@
1
+ import { computeEpochOutHash } from '@aztec/stdlib/messaging';
2
+ /**
3
+ * Computes the epoch out hash over the checkpointed blocks of an epoch (optionally only up to
4
+ * `maxCheckpoint`) and writes it into the L1 Outbox via cheat codes. This is the synthetic,
5
+ * no-prover equivalent of an epoch root proof landing on L1: it makes the L2-to-L1 messages in the
6
+ * covered checkpoints consumable. It does NOT advance the rollup's proven tip — callers
7
+ * `markAsProven` separately so a single prove call can settle multiple epochs before marking proven.
8
+ *
9
+ * Used by the test-only proving drivers: the `AutomineSequencer`'s auto-settle loop and the standalone
10
+ * `EpochTestSettler`. Lives here (rather than in either consumer) so both share one implementation.
11
+ *
12
+ * @returns The last checkpoint number covered by the settled range, or `undefined` if the epoch has
13
+ * no checkpointed blocks (within the `maxCheckpoint` bound).
14
+ */ export async function settleEpochOutbox({ rollupCheatCodes, l2BlockSource, epoch, maxCheckpoint, log }) {
15
+ let blocks = await l2BlockSource.getBlocks({
16
+ epoch,
17
+ onlyCheckpointed: true
18
+ });
19
+ if (maxCheckpoint !== undefined) {
20
+ blocks = blocks.filter((block)=>block.checkpointNumber <= maxCheckpoint);
21
+ }
22
+ if (blocks.length === 0) {
23
+ return undefined;
24
+ }
25
+ log.info(`Settling epoch ${epoch}${maxCheckpoint !== undefined ? ` up to checkpoint ${maxCheckpoint}` : ''} with blocks ${blocks[0]?.header.getBlockNumber()} to ${blocks.at(-1)?.header.getBlockNumber()}`, {
26
+ epoch,
27
+ maxCheckpoint,
28
+ blocks: blocks.map((block)=>block.toBlockInfo())
29
+ });
30
+ const messagesInEpoch = [];
31
+ // Undefined (not SlotNumber.ZERO) so a first checkpointed block at slot 0 still opens checkpoint 0.
32
+ let previousSlotNumber;
33
+ let checkpointIndex = -1;
34
+ for (const block of blocks){
35
+ const slotNumber = block.header.globalVariables.slotNumber;
36
+ if (slotNumber !== previousSlotNumber) {
37
+ checkpointIndex++;
38
+ messagesInEpoch[checkpointIndex] = [];
39
+ previousSlotNumber = slotNumber;
40
+ }
41
+ messagesInEpoch[checkpointIndex].push(block.body.txEffects.map((txEffect)=>txEffect.l2ToL1Msgs));
42
+ }
43
+ const outHash = computeEpochOutHash(messagesInEpoch);
44
+ if (!outHash.isZero()) {
45
+ await rollupCheatCodes.insertOutbox(epoch, messagesInEpoch.length, outHash.toBigInt());
46
+ } else {
47
+ log.info(`No L2 to L1 messages in epoch ${epoch}`, {
48
+ epoch
49
+ });
50
+ }
51
+ return blocks.at(-1)?.checkpointNumber;
52
+ }
@@ -0,0 +1,2 @@
1
+ export { settleEpochOutbox, type SettleEpochOutboxArgs } from './epoch_settlement.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxLQUFLLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUMifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1 @@
1
+ export { settleEpochOutbox } from './epoch_settlement.js';
@@ -19,9 +19,9 @@ export declare class TestBroker implements ProvingJobProducer {
19
19
  }
20
20
  export declare class MockProver implements ServerCircuitProver {
21
21
  constructor();
22
- getAvmProof(_inputs: AvmCircuitInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<import("@aztec/stdlib/proofs").RecursiveProof<16200>>;
23
- getBaseParityProof(_inputs: ParityBasePrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<import("@aztec/stdlib/parity").ParityPublicInputs, 457>>;
24
- getRootParityProof(_inputs: ParityRootPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<import("@aztec/stdlib/parity").ParityPublicInputs, 457>>;
22
+ getAvmProof(_inputs: AvmCircuitInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<import("@aztec/stdlib/proofs").RecursiveProof<15516>>;
23
+ getBaseParityProof(_inputs: ParityBasePrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<import("@aztec/stdlib/parity").ParityPublicInputs, 410>>;
24
+ getRootParityProof(_inputs: ParityRootPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<import("@aztec/stdlib/parity").ParityPublicInputs, 410>>;
25
25
  getPublicChonkVerifierProof(_inputs: PublicChonkVerifierPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<PublicChonkVerifierPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
26
26
  getPrivateTxBaseRollupProof(_baseRollupInput: PrivateTxBaseRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
27
27
  getPublicTxBaseRollupProof(_inputs: PublicTxBaseRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
@@ -31,7 +31,7 @@ export declare class MockProver implements ServerCircuitProver {
31
31
  getBlockRootEmptyTxFirstRollupProof(_input: BlockRootEmptyTxFirstRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
32
32
  getBlockRootRollupProof(_input: BlockRootRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
33
33
  getBlockRootSingleTxRollupProof(_input: BlockRootSingleTxRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
34
- getBlockMergeRollupProof(_input: BlockMergeRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, 531>>;
34
+ getBlockMergeRollupProof(_input: BlockMergeRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, 480>>;
35
35
  getCheckpointRootRollupProof(_input: CheckpointRootRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
36
36
  getCheckpointRootSingleBlockRollupProof(_input: CheckpointRootSingleBlockRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
37
37
  getCheckpointMergeRollupProof(_input: CheckpointMergeRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
@@ -1,4 +1,4 @@
1
- import { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, RECURSIVE_PROOF_LENGTH } from '@aztec/constants';
1
+ import { AVM_V2_PROOF_LENGTH_IN_FIELDS, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, RECURSIVE_PROOF_LENGTH } from '@aztec/constants';
2
2
  import { times } from '@aztec/foundation/collection';
3
3
  import { makePublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
4
4
  import { makeEmptyRecursiveProof, makeRecursiveProof } from '@aztec/stdlib/proofs';
@@ -44,7 +44,7 @@ export class TestBroker {
44
44
  export class MockProver {
45
45
  constructor(){}
46
46
  getAvmProof(_inputs, _signal, _epochNumber) {
47
- return Promise.resolve(makeEmptyRecursiveProof(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED));
47
+ return Promise.resolve(makeEmptyRecursiveProof(AVM_V2_PROOF_LENGTH_IN_FIELDS));
48
48
  }
49
49
  getBaseParityProof(_inputs, _signal, _epochNumber) {
50
50
  return Promise.resolve(makePublicInputsAndRecursiveProof(makeParityPublicInputs(), makeRecursiveProof(RECURSIVE_PROOF_LENGTH), VerificationKeyData.makeFakeHonk()));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/prover-client",
3
- "version": "0.0.1-commit.2ed92850",
3
+ "version": "0.0.1-commit.3100065",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -9,7 +9,8 @@
9
9
  "./orchestrator": "./dest/orchestrator/index.js",
10
10
  "./helpers": "./dest/orchestrator/block-building-helpers.js",
11
11
  "./light": "./dest/light/index.js",
12
- "./config": "./dest/config.js"
12
+ "./config": "./dest/config.js",
13
+ "./test": "./dest/test/index.js"
13
14
  },
14
15
  "typedocOptions": {
15
16
  "entryPoints": [
@@ -27,8 +28,8 @@
27
28
  "build:dev": "../scripts/tsc.sh --watch",
28
29
  "clean": "rm -rf ./dest .tsbuildinfo",
29
30
  "bb": "node --no-warnings ./dest/bb/index.js",
30
- "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --testTimeout=3500000 --forceExit",
31
- "test:debug": "LOG_LEVEL=debug NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --testTimeout=1500000 --forceExit --testNamePattern prover/bb_prover/parity"
31
+ "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --testTimeout=3500000",
32
+ "test:debug": "LOG_LEVEL=\"debug; info: json-rpc, simulator\" NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --testTimeout=1500000 --testNamePattern prover/bb_prover/parity"
32
33
  },
33
34
  "jest": {
34
35
  "moduleNameMapper": {
@@ -68,29 +69,28 @@
68
69
  ]
69
70
  },
70
71
  "dependencies": {
71
- "@aztec/bb-prover": "0.0.1-commit.2ed92850",
72
- "@aztec/blob-lib": "0.0.1-commit.2ed92850",
73
- "@aztec/constants": "0.0.1-commit.2ed92850",
74
- "@aztec/ethereum": "0.0.1-commit.2ed92850",
75
- "@aztec/foundation": "0.0.1-commit.2ed92850",
76
- "@aztec/kv-store": "0.0.1-commit.2ed92850",
77
- "@aztec/noir-protocol-circuits-types": "0.0.1-commit.2ed92850",
78
- "@aztec/noir-types": "0.0.1-commit.2ed92850",
79
- "@aztec/protocol-contracts": "0.0.1-commit.2ed92850",
80
- "@aztec/simulator": "0.0.1-commit.2ed92850",
81
- "@aztec/stdlib": "0.0.1-commit.2ed92850",
82
- "@aztec/telemetry-client": "0.0.1-commit.2ed92850",
83
- "@aztec/world-state": "0.0.1-commit.2ed92850",
84
- "@google-cloud/storage": "^7.15.0",
72
+ "@aztec/bb-prover": "0.0.1-commit.3100065",
73
+ "@aztec/blob-lib": "0.0.1-commit.3100065",
74
+ "@aztec/constants": "0.0.1-commit.3100065",
75
+ "@aztec/ethereum": "0.0.1-commit.3100065",
76
+ "@aztec/foundation": "0.0.1-commit.3100065",
77
+ "@aztec/kv-store": "0.0.1-commit.3100065",
78
+ "@aztec/noir-protocol-circuits-types": "0.0.1-commit.3100065",
79
+ "@aztec/noir-types": "0.0.1-commit.3100065",
80
+ "@aztec/protocol-contracts": "0.0.1-commit.3100065",
81
+ "@aztec/simulator": "0.0.1-commit.3100065",
82
+ "@aztec/stdlib": "0.0.1-commit.3100065",
83
+ "@aztec/telemetry-client": "0.0.1-commit.3100065",
84
+ "@aztec/world-state": "0.0.1-commit.3100065",
85
85
  "@iarna/toml": "^2.2.5",
86
86
  "commander": "^12.1.0",
87
87
  "lodash.chunk": "^4.2.0",
88
88
  "source-map-support": "^0.5.21",
89
89
  "tslib": "^2.4.0",
90
- "zod": "^3.23.8"
90
+ "zod": "^4"
91
91
  },
92
92
  "devDependencies": {
93
- "@aztec/noir-contracts.js": "0.0.1-commit.2ed92850",
93
+ "@aztec/noir-contracts.js": "0.0.1-commit.3100065",
94
94
  "@jest/globals": "^30.0.0",
95
95
  "@types/jest": "^30.0.0",
96
96
  "@types/node": "^22.15.17",