@aztec/prover-client 0.0.1-commit.b9865e97 → 0.0.1-commit.be03c316

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 (78) hide show
  1. package/dest/light/lightweight_checkpoint_builder.d.ts +1 -1
  2. package/dest/light/lightweight_checkpoint_builder.d.ts.map +1 -1
  3. package/dest/light/lightweight_checkpoint_builder.js +3 -1
  4. package/dest/mocks/test_context.d.ts +9 -11
  5. package/dest/mocks/test_context.d.ts.map +1 -1
  6. package/dest/mocks/test_context.js +13 -22
  7. package/dest/orchestrator/block-building-helpers.d.ts +1 -1
  8. package/dest/orchestrator/checkpoint-proving-state.d.ts +13 -36
  9. package/dest/orchestrator/checkpoint-proving-state.d.ts.map +1 -1
  10. package/dest/orchestrator/checkpoint-proving-state.js +18 -125
  11. package/dest/orchestrator/checkpoint-sub-tree-orchestrator.d.ts +116 -62
  12. package/dest/orchestrator/checkpoint-sub-tree-orchestrator.d.ts.map +1 -1
  13. package/dest/orchestrator/checkpoint-sub-tree-orchestrator.js +1005 -90
  14. package/dest/orchestrator/chonk-cache.d.ts +39 -0
  15. package/dest/orchestrator/chonk-cache.d.ts.map +1 -0
  16. package/dest/orchestrator/chonk-cache.js +80 -0
  17. package/dest/orchestrator/index.d.ts +2 -3
  18. package/dest/orchestrator/index.d.ts.map +1 -1
  19. package/dest/orchestrator/index.js +1 -2
  20. package/dest/orchestrator/proving-scheduler.d.ts +26 -17
  21. package/dest/orchestrator/proving-scheduler.d.ts.map +1 -1
  22. package/dest/orchestrator/proving-scheduler.js +28 -25
  23. package/dest/orchestrator/top-tree-orchestrator.d.ts +11 -6
  24. package/dest/orchestrator/top-tree-orchestrator.d.ts.map +1 -1
  25. package/dest/orchestrator/top-tree-orchestrator.js +71 -21
  26. package/dest/orchestrator/top-tree-proving-state.d.ts +1 -1
  27. package/dest/orchestrator/top-tree-proving-state.d.ts.map +1 -1
  28. package/dest/orchestrator/tx-proving-state.d.ts +3 -3
  29. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
  30. package/dest/prover-client/prover-client.d.ts +17 -19
  31. package/dest/prover-client/prover-client.d.ts.map +1 -1
  32. package/dest/prover-client/prover-client.js +24 -25
  33. package/dest/proving_broker/broker_prover_facade.d.ts +3 -3
  34. package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
  35. package/dest/test/epoch_settlement.d.ts +36 -0
  36. package/dest/test/epoch_settlement.d.ts.map +1 -0
  37. package/dest/test/epoch_settlement.js +52 -0
  38. package/dest/test/index.d.ts +2 -0
  39. package/dest/test/index.d.ts.map +1 -0
  40. package/dest/test/index.js +1 -0
  41. package/dest/test/mock_prover.d.ts +1 -1
  42. package/dest/test/mock_prover.js +2 -2
  43. package/package.json +17 -16
  44. package/src/light/lightweight_checkpoint_builder.ts +2 -0
  45. package/src/mocks/test_context.ts +14 -34
  46. package/src/orchestrator/checkpoint-proving-state.ts +14 -168
  47. package/src/orchestrator/checkpoint-sub-tree-orchestrator.ts +902 -129
  48. package/src/orchestrator/chonk-cache.ts +99 -0
  49. package/src/orchestrator/index.ts +1 -2
  50. package/src/orchestrator/proving-scheduler.ts +29 -25
  51. package/src/orchestrator/top-tree-orchestrator.ts +114 -44
  52. package/src/orchestrator/top-tree-proving-state.ts +0 -1
  53. package/src/orchestrator/tx-proving-state.ts +3 -3
  54. package/src/prover-client/prover-client.ts +35 -49
  55. package/src/proving_broker/broker_prover_facade.ts +2 -2
  56. package/src/test/epoch_settlement.ts +82 -0
  57. package/src/test/index.ts +1 -0
  58. package/src/test/mock_prover.ts +2 -2
  59. package/dest/orchestrator/epoch-proving-context.d.ts +0 -51
  60. package/dest/orchestrator/epoch-proving-context.d.ts.map +0 -1
  61. package/dest/orchestrator/epoch-proving-context.js +0 -81
  62. package/dest/orchestrator/epoch-proving-state.d.ts +0 -75
  63. package/dest/orchestrator/epoch-proving-state.d.ts.map +0 -1
  64. package/dest/orchestrator/epoch-proving-state.js +0 -269
  65. package/dest/orchestrator/orchestrator.d.ts +0 -118
  66. package/dest/orchestrator/orchestrator.d.ts.map +0 -1
  67. package/dest/orchestrator/orchestrator.js +0 -1113
  68. package/dest/orchestrator/top-tree-proving-scheduler.d.ts +0 -62
  69. package/dest/orchestrator/top-tree-proving-scheduler.d.ts.map +0 -1
  70. package/dest/orchestrator/top-tree-proving-scheduler.js +0 -73
  71. package/dest/prover-client/server-epoch-prover.d.ts +0 -32
  72. package/dest/prover-client/server-epoch-prover.d.ts.map +0 -1
  73. package/dest/prover-client/server-epoch-prover.js +0 -40
  74. package/src/orchestrator/epoch-proving-context.ts +0 -101
  75. package/src/orchestrator/epoch-proving-state.ts +0 -380
  76. package/src/orchestrator/orchestrator.ts +0 -1111
  77. package/src/orchestrator/top-tree-proving-scheduler.ts +0 -154
  78. package/src/prover-client/server-epoch-prover.ts +0 -69
@@ -0,0 +1,39 @@
1
+ import type { NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
2
+ import { type LoggerBindings } from '@aztec/foundation/log';
3
+ import type { L2Block } from '@aztec/stdlib/block';
4
+ import type { PublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
5
+ import type { PublicChonkVerifierPublicInputs } from '@aztec/stdlib/rollup';
6
+ /** Result of a chonk-verifier proof, cached by tx hash. */
7
+ export type ChonkVerifierProofResult = PublicInputsAndRecursiveProof<PublicChonkVerifierPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>;
8
+ /**
9
+ * Shared cache of `getPublicChonkVerifierProof` results, keyed by tx hash.
10
+ *
11
+ * Owned by the prover-node and shared across every epoch / session: a tx remined into
12
+ * a different block (e.g. after a brief L1 reorg) reuses the already-computed chonk
13
+ * proof rather than redoing it. Entries are released via `releaseForBlocks` once the
14
+ * containing block is no longer interesting to the caller (e.g. its epoch's proof
15
+ * submission window has expired).
16
+ */
17
+ export declare class ChonkCache {
18
+ private readonly cache;
19
+ private readonly pending;
20
+ private readonly log;
21
+ private stopped;
22
+ constructor(bindings?: LoggerBindings);
23
+ /** Returns the cached promise for `txHash`, or `undefined` if none is registered. */
24
+ get(txHash: string): Promise<ChonkVerifierProofResult> | undefined;
25
+ /**
26
+ * Atomic get-or-compute: returns the cached promise for `txHash`, or runs `factory`
27
+ * (passing an AbortSignal the cache controls) and caches its result. Concurrent
28
+ * callers for the same `txHash` share the same promise.
29
+ *
30
+ * Rejected promises are evicted so a future caller can retry. The factory's
31
+ * AbortSignal fires when the cache is stopped.
32
+ */
33
+ getOrCompute(txHash: string, factory: (signal: AbortSignal) => Promise<ChonkVerifierProofResult>): Promise<ChonkVerifierProofResult>;
34
+ /** Drops cache entries for every tx in the supplied blocks. */
35
+ releaseForBlocks(blocks: L2Block[]): void;
36
+ /** Aborts every in-flight chonk-verifier job and clears the cache. */
37
+ stop(): void;
38
+ }
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvbmstY2FjaGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvY2hvbmstY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUseUNBQXlDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRixPQUFPLEVBQWUsS0FBSyxjQUFjLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDdkYsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxLQUFLLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRixPQUFPLEtBQUssRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTVFLDJEQUEyRDtBQUMzRCxNQUFNLE1BQU0sd0JBQXdCLEdBQUcsNkJBQTZCLENBQ2xFLCtCQUErQixFQUMvQixPQUFPLHlDQUF5QyxDQUNqRCxDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxxQkFBYSxVQUFVO0lBQ3JCLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUF3RDtJQUM5RSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBc0M7SUFDOUQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQVM7SUFDN0IsT0FBTyxDQUFDLE9BQU8sQ0FBUztJQUV4QixZQUFZLFFBQVEsQ0FBQyxFQUFFLGNBQWMsRUFFcEM7SUFFRCxxRkFBcUY7SUFDOUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLHdCQUF3QixDQUFDLEdBQUcsU0FBUyxDQUV4RTtJQUVEOzs7Ozs7O09BT0c7SUFDSSxZQUFZLENBQ2pCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsS0FBSyxPQUFPLENBQUMsd0JBQXdCLENBQUMsR0FDbEUsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBbUJuQztJQUVELCtEQUErRDtJQUN4RCxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQWUvQztJQUVELHNFQUFzRTtJQUMvRCxJQUFJLElBQUksSUFBSSxDQVVsQjtDQUNGIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chonk-cache.d.ts","sourceRoot":"","sources":["../../src/orchestrator/chonk-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yCAAyC,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AACvF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AAE5E,2DAA2D;AAC3D,MAAM,MAAM,wBAAwB,GAAG,6BAA6B,CAClE,+BAA+B,EAC/B,OAAO,yCAAyC,CACjD,CAAC;AAEF;;;;;;;;GAQG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwD;IAC9E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAC9D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAS;IAExB,YAAY,QAAQ,CAAC,EAAE,cAAc,EAEpC;IAED,qFAAqF;IAC9E,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,GAAG,SAAS,CAExE;IAED;;;;;;;OAOG;IACI,YAAY,CACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,wBAAwB,CAAC,GAClE,OAAO,CAAC,wBAAwB,CAAC,CAmBnC;IAED,+DAA+D;IACxD,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAe/C;IAED,sEAAsE;IAC/D,IAAI,IAAI,IAAI,CAUlB;CACF"}
@@ -0,0 +1,80 @@
1
+ import { createLogger } from '@aztec/foundation/log';
2
+ /**
3
+ * Shared cache of `getPublicChonkVerifierProof` results, keyed by tx hash.
4
+ *
5
+ * Owned by the prover-node and shared across every epoch / session: a tx remined into
6
+ * a different block (e.g. after a brief L1 reorg) reuses the already-computed chonk
7
+ * proof rather than redoing it. Entries are released via `releaseForBlocks` once the
8
+ * containing block is no longer interesting to the caller (e.g. its epoch's proof
9
+ * submission window has expired).
10
+ */ export class ChonkCache {
11
+ cache = new Map();
12
+ pending = new Map();
13
+ log;
14
+ stopped = false;
15
+ constructor(bindings){
16
+ this.log = createLogger('prover-client:chonk-cache', bindings);
17
+ }
18
+ /** Returns the cached promise for `txHash`, or `undefined` if none is registered. */ get(txHash) {
19
+ return this.cache.get(txHash);
20
+ }
21
+ /**
22
+ * Atomic get-or-compute: returns the cached promise for `txHash`, or runs `factory`
23
+ * (passing an AbortSignal the cache controls) and caches its result. Concurrent
24
+ * callers for the same `txHash` share the same promise.
25
+ *
26
+ * Rejected promises are evicted so a future caller can retry. The factory's
27
+ * AbortSignal fires when the cache is stopped.
28
+ */ getOrCompute(txHash, factory) {
29
+ if (this.stopped) {
30
+ return Promise.reject(new Error('ChonkCache is stopped'));
31
+ }
32
+ const existing = this.cache.get(txHash);
33
+ if (existing) {
34
+ return existing;
35
+ }
36
+ const controller = new AbortController();
37
+ this.pending.set(txHash, controller);
38
+ this.log.debug(`Enqueueing chonk-verifier circuit`, {
39
+ txHash
40
+ });
41
+ const promise = factory(controller.signal).finally(()=>this.pending.delete(txHash));
42
+ // Silently observe the rejection branch and evict so a retry is possible.
43
+ promise.catch((err)=>{
44
+ this.cache.delete(txHash);
45
+ this.log.debug(`Chonk-verifier proof failed; evicted from cache`, {
46
+ txHash,
47
+ error: `${err}`
48
+ });
49
+ });
50
+ this.cache.set(txHash, promise);
51
+ return promise;
52
+ }
53
+ /** Drops cache entries for every tx in the supplied blocks. */ releaseForBlocks(blocks) {
54
+ let released = 0;
55
+ for (const block of blocks){
56
+ for (const txEffect of block.body.txEffects){
57
+ if (this.cache.delete(txEffect.txHash.toString())) {
58
+ released++;
59
+ }
60
+ }
61
+ }
62
+ if (released > 0) {
63
+ this.log.debug(`Released ${released} chonk-verifier cache entries`, {
64
+ blockCount: blocks.length,
65
+ releasedCount: released
66
+ });
67
+ }
68
+ }
69
+ /** Aborts every in-flight chonk-verifier job and clears the cache. */ stop() {
70
+ if (this.stopped) {
71
+ return;
72
+ }
73
+ this.stopped = true;
74
+ for (const controller of this.pending.values()){
75
+ controller.abort();
76
+ }
77
+ this.pending.clear();
78
+ this.cache.clear();
79
+ }
80
+ }
@@ -1,5 +1,4 @@
1
- export { ProvingOrchestrator } from './orchestrator.js';
2
1
  export { CheckpointSubTreeOrchestrator, type SubTreeResult } from './checkpoint-sub-tree-orchestrator.js';
3
- export { EpochProvingContext, type ChonkVerifierProofResult } from './epoch-proving-context.js';
2
+ export { ChonkCache, type ChonkVerifierProofResult } from './chonk-cache.js';
4
3
  export { TopTreeOrchestrator, TopTreeCancelledError, type CheckpointTopTreeData, type TopTreeResult, } from './top-tree-orchestrator.js';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLEtBQUssYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDMUcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLEtBQUssd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixLQUFLLHFCQUFxQixFQUMxQixLQUFLLGFBQWEsR0FDbkIsTUFBTSw0QkFBNEIsQ0FBQyJ9
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDZCQUE2QixFQUFFLEtBQUssYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDMUcsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLHdCQUF3QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0UsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsS0FBSyxxQkFBcUIsRUFDMUIsS0FBSyxhQUFhLEdBQ25CLE1BQU0sNEJBQTRCLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,6BAA6B,EAAE,KAAK,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC1G,OAAO,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAChG,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,GACnB,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,KAAK,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC1G,OAAO,EAAE,UAAU,EAAE,KAAK,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,GACnB,MAAM,4BAA4B,CAAC"}
@@ -1,4 +1,3 @@
1
- export { ProvingOrchestrator } from './orchestrator.js';
2
1
  export { CheckpointSubTreeOrchestrator } from './checkpoint-sub-tree-orchestrator.js';
3
- export { EpochProvingContext } from './epoch-proving-context.js';
2
+ export { ChonkCache } from './chonk-cache.js';
4
3
  export { TopTreeOrchestrator, TopTreeCancelledError } from './top-tree-orchestrator.js';
@@ -1,8 +1,9 @@
1
1
  import { type Logger, type LoggerBindings } from '@aztec/foundation/log';
2
+ import { SerialQueue } from '@aztec/foundation/queue';
2
3
  /**
3
- * Minimal surface a deferred-proving state must expose. Both `EpochProvingState` /
4
- * `CheckpointProvingState` / `BlockProvingState` (used by `ProvingOrchestrator`) and
5
- * `TopTreeProvingState` (used by `TopTreeOrchestrator`) satisfy it.
4
+ * Minimal surface a deferred-proving state must expose. Both `CheckpointProvingState` /
5
+ * `BlockProvingState` (used by `CheckpointSubTreeOrchestrator`) and `TopTreeProvingState`
6
+ * (used by `TopTreeOrchestrator`) satisfy it.
6
7
  */
7
8
  export interface ProvingStateLike {
8
9
  /** Returns false once the state has been cancelled or otherwise invalidated. */
@@ -14,7 +15,16 @@ export interface ProvingStateLike {
14
15
  * Common scheduling infrastructure shared by every orchestrator that drives broker
15
16
  * proving jobs:
16
17
  *
17
- * - One `SerialQueue` (`deferredJobQueue`) acting as the enqueue-throttle.
18
+ * - A shared `SerialQueue` (`deferredJobQueue`) that serialises the *act of handing a
19
+ * job to the broker*, one initiation per event-loop tick. Each queue task kicks off
20
+ * `safeJob` (which submits to the broker) without awaiting it, then yields with
21
+ * `sleep(0)`; the next task therefore runs on the following macrotask. This does NOT
22
+ * cap how many broker jobs are concurrently in flight — the broker's own queue absorbs
23
+ * that. What it bounds is the burst rate: a sub-tree that synchronously discovers
24
+ * thousands of ready jobs can't flood the broker (and monopolise the event loop) in a
25
+ * single tick. The queue is owned by the `ProverClient` and shared across every
26
+ * orchestrator (every sub-tree and top-tree across every concurrent epoch session), so
27
+ * this pacing is applied once globally rather than once-per-orchestrator.
18
28
  * - A list of `AbortController`s (`pendingProvingJobs`) so a `cancel()` can abort
19
29
  * in-flight broker jobs when needed.
20
30
  * - A `deferredProving<T>(state, request, callback, isCancelled?)` method that wraps
@@ -23,24 +33,24 @@ export interface ProvingStateLike {
23
33
  *
24
34
  * Subclasses own their own concrete proving state and define `cancelInternal()` for
25
35
  * the rest of the cleanup work (closing world-state forks, marking sub-trees
26
- * cancelled, etc.). `stop()` lives on the base class and follows the standard pattern
27
- * of grabbing the old queue, calling `cancelInternal()` (which recreates the queue),
28
- * and awaiting the old queue's drain.
36
+ * cancelled, etc.). Because the queue is shared, neither `cancel()` nor `stop()` touch
37
+ * it they only abort this orchestrator's in-flight broker jobs. Queued-but-unrun jobs
38
+ * for a cancelled orchestrator no-op via the guards in `deferredProving`.
29
39
  */
30
40
  export declare abstract class ProvingScheduler {
31
- private readonly enqueueConcurrency;
41
+ private readonly deferredJobQueue;
32
42
  protected pendingProvingJobs: AbortController[];
33
43
  protected logger: Logger;
34
- private deferredJobQueue;
35
- constructor(enqueueConcurrency: number, loggerName?: string, bindings?: LoggerBindings);
44
+ constructor(deferredJobQueue: SerialQueue, loggerName?: string, bindings?: LoggerBindings);
36
45
  /** Number of broker jobs currently in flight. */
37
46
  getNumPendingProvingJobs(): number;
38
47
  /**
39
- * Drains the deferred-job queue, recreates it (so the subclass can be reused), and
40
- * optionally aborts every in-flight broker job. Aborting is the right choice on
48
+ * Optionally aborts every in-flight broker job. Aborting is the right choice on
41
49
  * reorg-driven cancel (where the in-flight inputs are no longer valid) and the
42
50
  * wrong choice on shutdown (where leaving jobs in the broker queue lets a restart
43
- * pick them up).
51
+ * pick them up). The shared queue is not touched — queued-but-unrun jobs belonging
52
+ * to this orchestrator no-op once their controller is aborted (or once their state
53
+ * is marked invalid by the subclass).
44
54
  */
45
55
  protected resetSchedulerState(abortJobs: boolean): void;
46
56
  /**
@@ -50,9 +60,8 @@ export declare abstract class ProvingScheduler {
50
60
  */
51
61
  protected abstract cancelInternal(): void;
52
62
  /**
53
- * Standard stop: grab the old queue, cancel (which recreates the queue), then
54
- * await the old queue's drain so any final job tear-down has unwound before we
55
- * return.
63
+ * Standard stop: cancel this orchestrator's work. The shared queue is owned by the
64
+ * `ProverClient` and outlives every orchestrator, so it is not drained here.
56
65
  */
57
66
  stop(): Promise<void>;
58
67
  /**
@@ -69,4 +78,4 @@ export declare abstract class ProvingScheduler {
69
78
  */
70
79
  protected deferredProving<S extends ProvingStateLike, T>(state: S, request: (signal: AbortSignal) => Promise<T>, callback: (result: T) => void | Promise<void>, isCancelled?: () => boolean): void;
71
80
  }
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZy1zY2hlZHVsZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvcHJvdmluZy1zY2hlZHVsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFFLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBSXZGOzs7O0dBSUc7QUFDSCxNQUFNLFdBQVcsZ0JBQWdCO0lBQy9CLGdGQUFnRjtJQUNoRixXQUFXLElBQUksT0FBTyxDQUFDO0lBQ3ZCLHFEQUFxRDtJQUNyRCxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxJQUFJLENBQUM7Q0FDOUI7QUFFRDs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILDhCQUFzQixnQkFBZ0I7SUFNbEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0I7SUFMckMsU0FBUyxDQUFDLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxDQUFNO0lBQ3JELFNBQVMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ3pCLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBYztJQUV0QyxZQUNtQixrQkFBa0IsRUFBRSxNQUFNLEVBQzNDLFVBQVUsU0FBb0MsRUFDOUMsUUFBUSxDQUFDLEVBQUUsY0FBYyxFQUsxQjtJQUVELGlEQUFpRDtJQUMxQyx3QkFBd0IsSUFBSSxNQUFNLENBRXhDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsU0FBUyxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxPQUFPLEdBQUcsSUFBSSxDQVN0RDtJQUVEOzs7O09BSUc7SUFDSCxTQUFTLENBQUMsUUFBUSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUM7SUFFMUM7Ozs7T0FJRztJQUNVLElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBSWpDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUyxnQkFBZ0IsRUFBRSxDQUFDLEVBQ3JELEtBQUssRUFBRSxDQUFDLEVBQ1IsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQzVDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFDN0MsV0FBVyxHQUFFLE1BQU0sT0FBcUIsR0FDdkMsSUFBSSxDQStDTjtDQUNGIn0=
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZy1zY2hlZHVsZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvcHJvdmluZy1zY2hlZHVsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFFLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUd0RDs7OztHQUlHO0FBQ0gsTUFBTSxXQUFXLGdCQUFnQjtJQUMvQixnRkFBZ0Y7SUFDaEYsV0FBVyxJQUFJLE9BQU8sQ0FBQztJQUN2QixxREFBcUQ7SUFDckQsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDO0NBQzlCO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Qkc7QUFDSCw4QkFBc0IsZ0JBQWdCO0lBS2xDLE9BQU8sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCO0lBSm5DLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsQ0FBTTtJQUNyRCxTQUFTLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUV6QixZQUNtQixnQkFBZ0IsRUFBRSxXQUFXLEVBQzlDLFVBQVUsU0FBb0MsRUFDOUMsUUFBUSxDQUFDLEVBQUUsY0FBYyxFQUcxQjtJQUVELGlEQUFpRDtJQUMxQyx3QkFBd0IsSUFBSSxNQUFNLENBRXhDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsT0FBTyxHQUFHLElBQUksQ0FNdEQ7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUyxDQUFDLFFBQVEsQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDO0lBRTFDOzs7T0FHRztJQUNJLElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBRzNCO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUyxnQkFBZ0IsRUFBRSxDQUFDLEVBQ3JELEtBQUssRUFBRSxDQUFDLEVBQ1IsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQzVDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFDN0MsV0FBVyxHQUFFLE1BQU0sT0FBcUIsR0FDdkMsSUFBSSxDQWlETjtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"proving-scheduler.d.ts","sourceRoot":"","sources":["../../src/orchestrator/proving-scheduler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAIvF;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gFAAgF;IAChF,WAAW,IAAI,OAAO,CAAC;IACvB,qDAAqD;IACrD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,8BAAsB,gBAAgB;IAMlC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IALrC,SAAS,CAAC,kBAAkB,EAAE,eAAe,EAAE,CAAM;IACrD,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,gBAAgB,CAAc;IAEtC,YACmB,kBAAkB,EAAE,MAAM,EAC3C,UAAU,SAAoC,EAC9C,QAAQ,CAAC,EAAE,cAAc,EAK1B;IAED,iDAAiD;IAC1C,wBAAwB,IAAI,MAAM,CAExC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAStD;IAED;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,IAAI,IAAI,CAAC;IAE1C;;;;OAIG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAIjC;IAED;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,eAAe,CAAC,CAAC,SAAS,gBAAgB,EAAE,CAAC,EACrD,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,EAC5C,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAC7C,WAAW,GAAE,MAAM,OAAqB,GACvC,IAAI,CA+CN;CACF"}
1
+ {"version":3,"file":"proving-scheduler.d.ts","sourceRoot":"","sources":["../../src/orchestrator/proving-scheduler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gFAAgF;IAChF,WAAW,IAAI,OAAO,CAAC;IACvB,qDAAqD;IACrD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,8BAAsB,gBAAgB;IAKlC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAJnC,SAAS,CAAC,kBAAkB,EAAE,eAAe,EAAE,CAAM;IACrD,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IAEzB,YACmB,gBAAgB,EAAE,WAAW,EAC9C,UAAU,SAAoC,EAC9C,QAAQ,CAAC,EAAE,cAAc,EAG1B;IAED,iDAAiD;IAC1C,wBAAwB,IAAI,MAAM,CAExC;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAMtD;IAED;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,IAAI,IAAI,CAAC;IAE1C;;;OAGG;IACI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAG3B;IAED;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,eAAe,CAAC,CAAC,SAAS,gBAAgB,EAAE,CAAC,EACrD,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,EAC5C,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAC7C,WAAW,GAAE,MAAM,OAAqB,GACvC,IAAI,CAiDN;CACF"}
@@ -1,12 +1,20 @@
1
1
  import { AbortError } from '@aztec/foundation/error';
2
2
  import { createLogger } from '@aztec/foundation/log';
3
- import { SerialQueue } from '@aztec/foundation/queue';
4
3
  import { sleep } from '@aztec/foundation/sleep';
5
4
  /**
6
5
  * Common scheduling infrastructure shared by every orchestrator that drives broker
7
6
  * proving jobs:
8
7
  *
9
- * - One `SerialQueue` (`deferredJobQueue`) acting as the enqueue-throttle.
8
+ * - A shared `SerialQueue` (`deferredJobQueue`) that serialises the *act of handing a
9
+ * job to the broker*, one initiation per event-loop tick. Each queue task kicks off
10
+ * `safeJob` (which submits to the broker) without awaiting it, then yields with
11
+ * `sleep(0)`; the next task therefore runs on the following macrotask. This does NOT
12
+ * cap how many broker jobs are concurrently in flight — the broker's own queue absorbs
13
+ * that. What it bounds is the burst rate: a sub-tree that synchronously discovers
14
+ * thousands of ready jobs can't flood the broker (and monopolise the event loop) in a
15
+ * single tick. The queue is owned by the `ProverClient` and shared across every
16
+ * orchestrator (every sub-tree and top-tree across every concurrent epoch session), so
17
+ * this pacing is applied once globally rather than once-per-orchestrator.
10
18
  * - A list of `AbortController`s (`pendingProvingJobs`) so a `cancel()` can abort
11
19
  * in-flight broker jobs when needed.
12
20
  * - A `deferredProving<T>(state, request, callback, isCancelled?)` method that wraps
@@ -15,34 +23,29 @@ import { sleep } from '@aztec/foundation/sleep';
15
23
  *
16
24
  * Subclasses own their own concrete proving state and define `cancelInternal()` for
17
25
  * the rest of the cleanup work (closing world-state forks, marking sub-trees
18
- * cancelled, etc.). `stop()` lives on the base class and follows the standard pattern
19
- * of grabbing the old queue, calling `cancelInternal()` (which recreates the queue),
20
- * and awaiting the old queue's drain.
26
+ * cancelled, etc.). Because the queue is shared, neither `cancel()` nor `stop()` touch
27
+ * it they only abort this orchestrator's in-flight broker jobs. Queued-but-unrun jobs
28
+ * for a cancelled orchestrator no-op via the guards in `deferredProving`.
21
29
  */ export class ProvingScheduler {
22
- enqueueConcurrency;
30
+ deferredJobQueue;
23
31
  pendingProvingJobs;
24
32
  logger;
25
- deferredJobQueue;
26
- constructor(enqueueConcurrency, loggerName = 'prover-client:proving-scheduler', bindings){
27
- this.enqueueConcurrency = enqueueConcurrency;
33
+ constructor(deferredJobQueue, loggerName = 'prover-client:proving-scheduler', bindings){
34
+ this.deferredJobQueue = deferredJobQueue;
28
35
  this.pendingProvingJobs = [];
29
36
  this.logger = createLogger(loggerName, bindings);
30
- this.deferredJobQueue = new SerialQueue();
31
- this.deferredJobQueue.start(this.enqueueConcurrency);
32
37
  }
33
38
  /** Number of broker jobs currently in flight. */ getNumPendingProvingJobs() {
34
39
  return this.pendingProvingJobs.length;
35
40
  }
36
41
  /**
37
- * Drains the deferred-job queue, recreates it (so the subclass can be reused), and
38
- * optionally aborts every in-flight broker job. Aborting is the right choice on
42
+ * Optionally aborts every in-flight broker job. Aborting is the right choice on
39
43
  * reorg-driven cancel (where the in-flight inputs are no longer valid) and the
40
44
  * wrong choice on shutdown (where leaving jobs in the broker queue lets a restart
41
- * pick them up).
45
+ * pick them up). The shared queue is not touched — queued-but-unrun jobs belonging
46
+ * to this orchestrator no-op once their controller is aborted (or once their state
47
+ * is marked invalid by the subclass).
42
48
  */ resetSchedulerState(abortJobs) {
43
- void this.deferredJobQueue.cancel();
44
- this.deferredJobQueue = new SerialQueue();
45
- this.deferredJobQueue.start(this.enqueueConcurrency);
46
49
  if (abortJobs) {
47
50
  for (const controller of this.pendingProvingJobs){
48
51
  controller.abort();
@@ -50,13 +53,11 @@ import { sleep } from '@aztec/foundation/sleep';
50
53
  }
51
54
  }
52
55
  /**
53
- * Standard stop: grab the old queue, cancel (which recreates the queue), then
54
- * await the old queue's drain so any final job tear-down has unwound before we
55
- * return.
56
- */ async stop() {
57
- const oldQueue = this.deferredJobQueue;
56
+ * Standard stop: cancel this orchestrator's work. The shared queue is owned by the
57
+ * `ProverClient` and outlives every orchestrator, so it is not drained here.
58
+ */ stop() {
58
59
  this.cancelInternal();
59
- await oldQueue.cancel();
60
+ return Promise.resolve();
60
61
  }
61
62
  /**
62
63
  * Submits a broker request. The returned-via-callback result is dropped if the
@@ -108,9 +109,11 @@ import { sleep } from '@aztec/foundation/sleep';
108
109
  }
109
110
  };
110
111
  void this.deferredJobQueue.put(async ()=>{
112
+ // Kick off the broker submission without awaiting it — awaiting here would serialise all
113
+ // proving (one job at a time) and kill parallelism. The `sleep(0)` yields the event loop
114
+ // so the next queued job initiates on the following macrotask, pacing bursts rather than
115
+ // bounding in-flight broker concurrency (the broker's own queue handles that).
111
116
  void safeJob();
112
- // Yield to the macrotask queue so Node has a chance to interleave other work
113
- // between enqueues.
114
117
  await sleep(0);
115
118
  });
116
119
  }
@@ -4,6 +4,7 @@ import { type ARCHIVE_HEIGHT, type NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } f
4
4
  import type { EpochNumber } from '@aztec/foundation/branded-types';
5
5
  import { Fr } from '@aztec/foundation/curves/bn254';
6
6
  import type { LoggerBindings } from '@aztec/foundation/log';
7
+ import type { SerialQueue } from '@aztec/foundation/queue';
7
8
  import type { Tuple } from '@aztec/foundation/serialize';
8
9
  import type { EthAddress } from '@aztec/stdlib/block';
9
10
  import type { PublicInputsAndRecursiveProof, ServerCircuitProver } from '@aztec/stdlib/interfaces/server';
@@ -11,8 +12,7 @@ import type { Proof } from '@aztec/stdlib/proofs';
11
12
  import { type BlockRollupPublicInputs, type RootRollupPublicInputs } from '@aztec/stdlib/rollup';
12
13
  import type { BlockHeader } from '@aztec/stdlib/tx';
13
14
  import { type TelemetryClient } from '@aztec/telemetry-client';
14
- import { TopTreeProvingScheduler } from './top-tree-proving-scheduler.js';
15
- import { TopTreeProvingState } from './top-tree-proving-state.js';
15
+ import { ProvingScheduler } from './proving-scheduler.js';
16
16
  /** Per-checkpoint data fed into the top tree. */
17
17
  export type CheckpointTopTreeData = {
18
18
  /**
@@ -52,11 +52,12 @@ export declare class TopTreeCancelledError extends Error {
52
52
  * and each checkpoint's root rollup fires the moment its sub-tree's `blockProofs`
53
53
  * promise resolves. Later checkpoints can still be block-level proving in parallel.
54
54
  */
55
- export declare class TopTreeOrchestrator extends TopTreeProvingScheduler {
55
+ export declare class TopTreeOrchestrator extends ProvingScheduler {
56
+ protected readonly prover: ServerCircuitProver;
56
57
  private readonly proverId;
57
58
  private state;
58
59
  private cancelled;
59
- constructor(prover: ServerCircuitProver, proverId: EthAddress, enqueueConcurrency: number, _telemetryClient?: TelemetryClient, bindings?: LoggerBindings);
60
+ constructor(prover: ServerCircuitProver, proverId: EthAddress, deferredJobQueue: SerialQueue, _telemetryClient?: TelemetryClient, bindings?: LoggerBindings);
60
61
  getProverId(): EthAddress;
61
62
  /**
62
63
  * Proves the top tree from per-checkpoint data and pending block-proofs promises.
@@ -75,9 +76,13 @@ export declare class TopTreeOrchestrator extends TopTreeProvingScheduler {
75
76
  }): void;
76
77
  /** Standard shutdown — preserve the broker queue (`abortJobs: false`). */
77
78
  protected cancelInternal(): void;
78
- protected onRootRollupComplete(state: TopTreeProvingState): void;
79
79
  private enqueueCheckpointRoot;
80
80
  private buildCheckpointRootInputs;
81
+ private enqueueCheckpointMergeRollup;
82
+ private enqueueEpochPadding;
83
+ private enqueueRootRollup;
84
+ private checkAndEnqueueNextCheckpointMergeRollup;
85
+ private checkAndEnqueueRootRollup;
81
86
  private computeOutHashHints;
82
87
  }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wLXRyZWUtb3JjaGVzdHJhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3JjaGVzdHJhdG9yL3RvcC10cmVlLW9yY2hlc3RyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTBCLEtBQUssMkJBQTJCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsS0FBSyxjQUFjLEVBR25CLEtBQUsseUNBQXlDLEVBRS9DLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHbkUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVELE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXpELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLDZCQUE2QixFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUcsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNMLEtBQUssdUJBQXVCLEVBSTVCLEtBQUssc0JBQXNCLEVBQzVCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHlCQUF5QixDQUFDO0FBR25GLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWxFLGlEQUFpRDtBQUNqRCxNQUFNLE1BQU0scUJBQXFCLEdBQUc7SUFDbEM7Ozs7T0FJRztJQUNILFdBQVcsRUFBRSxPQUFPLENBQ2xCLDZCQUE2QixDQUFDLHVCQUF1QixFQUFFLE9BQU8seUNBQXlDLENBQUMsRUFBRSxDQUMzRyxDQUFDO0lBQ0YsbUZBQW1GO0lBQ25GLGtCQUFrQixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUM3Qiw4RkFBOEY7SUFDOUYsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ2pCLG9HQUFvRztJQUNwRyxtQkFBbUIsRUFBRSxXQUFXLENBQUM7SUFDakMsbUZBQW1GO0lBQ25GLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyxjQUFjLENBQUMsQ0FBQztDQUM5RCxDQUFDO0FBRUYsc0NBQXNDO0FBQ3RDLE1BQU0sTUFBTSxhQUFhLEdBQUc7SUFDMUIsWUFBWSxFQUFFLHNCQUFzQixDQUFDO0lBQ3JDLEtBQUssRUFBRSxLQUFLLENBQUM7SUFDYixpQkFBaUIsRUFBRSxXQUFXLENBQUM7Q0FDaEMsQ0FBQztBQUVGOzs7R0FHRztBQUNILHFCQUFhLHFCQUFzQixTQUFRLEtBQUs7SUFDOUMsWUFBWSxNQUFNLFNBQStCLEVBR2hEO0NBQ0Y7QUFPRDs7Ozs7Ozs7R0FRRztBQUNILHFCQUFhLG1CQUFvQixTQUFRLHVCQUF1QjtJQU01RCxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVE7SUFMM0IsT0FBTyxDQUFDLEtBQUssQ0FBa0M7SUFDL0MsT0FBTyxDQUFDLFNBQVMsQ0FBUztJQUUxQixZQUNFLE1BQU0sRUFBRSxtQkFBbUIsRUFDVixRQUFRLEVBQUUsVUFBVSxFQUNyQyxrQkFBa0IsRUFBRSxNQUFNLEVBQzFCLGdCQUFnQixHQUFFLGVBQXNDLEVBQ3hELFFBQVEsQ0FBQyxFQUFFLGNBQWMsRUFHMUI7SUFFTSxXQUFXLElBQUksVUFBVSxDQUUvQjtJQUVEOzs7O09BSUc7SUFDVSxLQUFLLENBQ2hCLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLG1CQUFtQixFQUFFLE1BQU0sRUFDM0IsMkJBQTJCLEVBQUUsMkJBQTJCLEVBQ3hELGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxHQUN0QyxPQUFPLENBQUMsYUFBYSxDQUFDLENBcUZ4QjtJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUU7UUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFBO0tBQUUsUUFJbEQ7SUFFRCw0RUFBMEU7SUFDMUUsVUFBbUIsY0FBYyxJQUFJLElBQUksQ0FFeEM7SUFJRCxVQUFtQixvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsbUJBQW1CLFFBRWpFO0lBRUQsT0FBTyxDQUFDLHFCQUFxQjtZQWlDZix5QkFBeUI7WUE2QnpCLG1CQUFtQjtDQXlCbEMifQ==
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wLXRyZWUtb3JjaGVzdHJhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3JjaGVzdHJhdG9yL3RvcC10cmVlLW9yY2hlc3RyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTBCLEtBQUssMkJBQTJCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsS0FBSyxjQUFjLEVBR25CLEtBQUsseUNBQXlDLEVBRS9DLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHbkUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXpELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLDZCQUE2QixFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUcsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNMLEtBQUssdUJBQXVCLEVBSTVCLEtBQUssc0JBQXNCLEVBQzVCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHlCQUF5QixDQUFDO0FBR25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRzFELGlEQUFpRDtBQUNqRCxNQUFNLE1BQU0scUJBQXFCLEdBQUc7SUFDbEM7Ozs7T0FJRztJQUNILFdBQVcsRUFBRSxPQUFPLENBQ2xCLDZCQUE2QixDQUFDLHVCQUF1QixFQUFFLE9BQU8seUNBQXlDLENBQUMsRUFBRSxDQUMzRyxDQUFDO0lBQ0YsbUZBQW1GO0lBQ25GLGtCQUFrQixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUM3Qiw4RkFBOEY7SUFDOUYsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ2pCLG9HQUFvRztJQUNwRyxtQkFBbUIsRUFBRSxXQUFXLENBQUM7SUFDakMsbUZBQW1GO0lBQ25GLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyxjQUFjLENBQUMsQ0FBQztDQUM5RCxDQUFDO0FBRUYsc0NBQXNDO0FBQ3RDLE1BQU0sTUFBTSxhQUFhLEdBQUc7SUFDMUIsWUFBWSxFQUFFLHNCQUFzQixDQUFDO0lBQ3JDLEtBQUssRUFBRSxLQUFLLENBQUM7SUFDYixpQkFBaUIsRUFBRSxXQUFXLENBQUM7Q0FDaEMsQ0FBQztBQUVGOzs7R0FHRztBQUNILHFCQUFhLHFCQUFzQixTQUFRLEtBQUs7SUFDOUMsWUFBWSxNQUFNLFNBQStCLEVBR2hEO0NBQ0Y7QUFPRDs7Ozs7Ozs7R0FRRztBQUNILHFCQUFhLG1CQUFvQixTQUFRLGdCQUFnQjtJQUtyRCxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxtQkFBbUI7SUFDOUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRO0lBTDNCLE9BQU8sQ0FBQyxLQUFLLENBQWtDO0lBQy9DLE9BQU8sQ0FBQyxTQUFTLENBQVM7SUFFMUIsWUFDcUIsTUFBTSxFQUFFLG1CQUFtQixFQUM3QixRQUFRLEVBQUUsVUFBVSxFQUNyQyxnQkFBZ0IsRUFBRSxXQUFXLEVBQzdCLGdCQUFnQixHQUFFLGVBQXNDLEVBQ3hELFFBQVEsQ0FBQyxFQUFFLGNBQWMsRUFHMUI7SUFFTSxXQUFXLElBQUksVUFBVSxDQUUvQjtJQUVEOzs7O09BSUc7SUFDVSxLQUFLLENBQ2hCLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLG1CQUFtQixFQUFFLE1BQU0sRUFDM0IsMkJBQTJCLEVBQUUsMkJBQTJCLEVBQ3hELGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxHQUN0QyxPQUFPLENBQUMsYUFBYSxDQUFDLENBaUZ4QjtJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUU7UUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFBO0tBQUUsUUFJbEQ7SUFFRCw0RUFBMEU7SUFDMUUsVUFBbUIsY0FBYyxJQUFJLElBQUksQ0FFeEM7SUFJRCxPQUFPLENBQUMscUJBQXFCO1lBMkNmLHlCQUF5QjtJQStCdkMsT0FBTyxDQUFDLDRCQUE0QjtJQWVwQyxPQUFPLENBQUMsbUJBQW1CO0lBZTNCLE9BQU8sQ0FBQyxpQkFBaUI7SUFnQnpCLE9BQU8sQ0FBQyx3Q0FBd0M7SUFZaEQsT0FBTyxDQUFDLHlCQUF5QjtZQU9uQixtQkFBbUI7Q0F5QmxDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"top-tree-orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/top-tree-orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAC3F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,yCAAyC,EAE/C,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAGnE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE1G,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EACL,KAAK,uBAAuB,EAI5B,KAAK,sBAAsB,EAC5B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAGnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,iDAAiD;AACjD,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAClB,6BAA6B,CAAC,uBAAuB,EAAE,OAAO,yCAAyC,CAAC,EAAE,CAC3G,CAAC;IACF,mFAAmF;IACnF,kBAAkB,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAC7B,8FAA8F;IAC9F,UAAU,EAAE,EAAE,EAAE,CAAC;IACjB,oGAAoG;IACpG,mBAAmB,EAAE,WAAW,CAAC;IACjC,mFAAmF;IACnF,0BAA0B,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC,CAAC;CAC9D,CAAC;AAEF,sCAAsC;AACtC,MAAM,MAAM,aAAa,GAAG;IAC1B,YAAY,EAAE,sBAAsB,CAAC;IACrC,KAAK,EAAE,KAAK,CAAC;IACb,iBAAiB,EAAE,WAAW,CAAC;CAChC,CAAC;AAEF;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,MAAM,SAA+B,EAGhD;CACF;AAOD;;;;;;;;GAQG;AACH,qBAAa,mBAAoB,SAAQ,uBAAuB;IAM5D,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAL3B,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,SAAS,CAAS;IAE1B,YACE,MAAM,EAAE,mBAAmB,EACV,QAAQ,EAAE,UAAU,EACrC,kBAAkB,EAAE,MAAM,EAC1B,gBAAgB,GAAE,eAAsC,EACxD,QAAQ,CAAC,EAAE,cAAc,EAG1B;IAEM,WAAW,IAAI,UAAU,CAE/B;IAED;;;;OAIG;IACU,KAAK,CAChB,WAAW,EAAE,WAAW,EACxB,mBAAmB,EAAE,MAAM,EAC3B,2BAA2B,EAAE,2BAA2B,EACxD,cAAc,EAAE,qBAAqB,EAAE,GACtC,OAAO,CAAC,aAAa,CAAC,CAqFxB;IAED;;;;;OAKG;IACI,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,QAIlD;IAED,4EAA0E;IAC1E,UAAmB,cAAc,IAAI,IAAI,CAExC;IAID,UAAmB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,QAEjE;IAED,OAAO,CAAC,qBAAqB;YAiCf,yBAAyB;YA6BzB,mBAAmB;CAyBlC"}
1
+ {"version":3,"file":"top-tree-orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/top-tree-orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAC3F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,yCAAyC,EAE/C,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAGnE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE1G,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EACL,KAAK,uBAAuB,EAI5B,KAAK,sBAAsB,EAC5B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAGnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,iDAAiD;AACjD,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAClB,6BAA6B,CAAC,uBAAuB,EAAE,OAAO,yCAAyC,CAAC,EAAE,CAC3G,CAAC;IACF,mFAAmF;IACnF,kBAAkB,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAC7B,8FAA8F;IAC9F,UAAU,EAAE,EAAE,EAAE,CAAC;IACjB,oGAAoG;IACpG,mBAAmB,EAAE,WAAW,CAAC;IACjC,mFAAmF;IACnF,0BAA0B,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC,CAAC;CAC9D,CAAC;AAEF,sCAAsC;AACtC,MAAM,MAAM,aAAa,GAAG;IAC1B,YAAY,EAAE,sBAAsB,CAAC;IACrC,KAAK,EAAE,KAAK,CAAC;IACb,iBAAiB,EAAE,WAAW,CAAC;CAChC,CAAC;AAEF;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,MAAM,SAA+B,EAGhD;CACF;AAOD;;;;;;;;GAQG;AACH,qBAAa,mBAAoB,SAAQ,gBAAgB;IAKrD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,mBAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAL3B,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,SAAS,CAAS;IAE1B,YACqB,MAAM,EAAE,mBAAmB,EAC7B,QAAQ,EAAE,UAAU,EACrC,gBAAgB,EAAE,WAAW,EAC7B,gBAAgB,GAAE,eAAsC,EACxD,QAAQ,CAAC,EAAE,cAAc,EAG1B;IAEM,WAAW,IAAI,UAAU,CAE/B;IAED;;;;OAIG;IACU,KAAK,CAChB,WAAW,EAAE,WAAW,EACxB,mBAAmB,EAAE,MAAM,EAC3B,2BAA2B,EAAE,2BAA2B,EACxD,cAAc,EAAE,qBAAqB,EAAE,GACtC,OAAO,CAAC,aAAa,CAAC,CAiFxB;IAED;;;;;OAKG;IACI,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,QAIlD;IAED,4EAA0E;IAC1E,UAAmB,cAAc,IAAI,IAAI,CAExC;IAID,OAAO,CAAC,qBAAqB;YA2Cf,yBAAyB;IA+BvC,OAAO,CAAC,4BAA4B;IAepC,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,wCAAwC;IAYhD,OAAO,CAAC,yBAAyB;YAOnB,mBAAmB;CAyBlC"}
@@ -10,7 +10,7 @@ import { CheckpointRootRollupHints, CheckpointRootRollupPrivateInputs, Checkpoin
10
10
  import { AppendOnlyTreeSnapshot } from '@aztec/stdlib/trees';
11
11
  import { getTelemetryClient } from '@aztec/telemetry-client';
12
12
  import { buildBlobHints, toProofData } from './block-building-helpers.js';
13
- import { TopTreeProvingScheduler } from './top-tree-proving-scheduler.js';
13
+ import { ProvingScheduler } from './proving-scheduler.js';
14
14
  import { TopTreeProvingState } from './top-tree-proving-state.js';
15
15
  /**
16
16
  * Sentinel thrown by `cancel` so callers can distinguish reorg-driven cancellation from
@@ -29,12 +29,13 @@ import { TopTreeProvingState } from './top-tree-proving-state.js';
29
29
  * out-hash and blob-accumulator hint chains immediately from archiver-derivable data,
30
30
  * and each checkpoint's root rollup fires the moment its sub-tree's `blockProofs`
31
31
  * promise resolves. Later checkpoints can still be block-level proving in parallel.
32
- */ export class TopTreeOrchestrator extends TopTreeProvingScheduler {
32
+ */ export class TopTreeOrchestrator extends ProvingScheduler {
33
+ prover;
33
34
  proverId;
34
35
  state;
35
36
  cancelled;
36
- constructor(prover, proverId, enqueueConcurrency, _telemetryClient = getTelemetryClient(), bindings){
37
- super(prover, enqueueConcurrency, 'prover-client:top-tree-orchestrator', bindings), this.proverId = proverId, this.cancelled = false;
37
+ constructor(prover, proverId, deferredJobQueue, _telemetryClient = getTelemetryClient(), bindings){
38
+ super(deferredJobQueue, 'prover-client:top-tree-orchestrator', bindings), this.prover = prover, this.proverId = proverId, this.cancelled = false;
38
39
  }
39
40
  getProverId() {
40
41
  return this.proverId;
@@ -59,10 +60,9 @@ import { TopTreeProvingState } from './top-tree-proving-state.js';
59
60
  throw new TopTreeCancelledError();
60
61
  }
61
62
  const { promise: completionPromise, resolve, reject } = promiseWithResolvers();
62
- // The completion promise is awaited inside the try/catch below. Attach a no-op catch
63
- // here as well so any spurious unhandled-rejection detection during cancellation
64
- // (where reject() can fire synchronously before the await microtask installs a handler)
65
- // is silenced.
63
+ // The completion promise is awaited below. Attach a no-op catch here as well so any
64
+ // spurious unhandled-rejection detection during cancellation (where reject() can fire
65
+ // synchronously before the await microtask installs a handler) is silenced.
66
66
  completionPromise.catch(()=>{});
67
67
  const startBlobAccumulator = BatchedBlobAccumulator.newWithChallenges(finalBlobBatchingChallenges);
68
68
  this.state = new TopTreeProvingState(epochNumber, totalNumCheckpoints, finalBlobBatchingChallenges, startBlobAccumulator, resolve, (reason)=>reject(this.cancelled ? new TopTreeCancelledError(reason) : new Error(reason)));
@@ -94,16 +94,13 @@ import { TopTreeProvingState } from './top-tree-proving-state.js';
94
94
  this.state?.reject(`Sub-tree for checkpoint ${i} failed: ${err}`);
95
95
  });
96
96
  }
97
- try {
98
- await completionPromise;
99
- await this.state.finalizeBatchedBlob();
100
- return this.state.getEpochProofResult();
101
- } catch (err) {
102
- if (this.cancelled) {
103
- throw new TopTreeCancelledError();
104
- }
105
- throw err;
106
- }
97
+ // The error type is stamped atomically at rejection time by the rejectionCallback above
98
+ // (TopTreeCancelledError iff cancel() drove the rejection). Re-deriving it here from the
99
+ // live `cancelled` flag would mask a genuine failure that lost a race with a late cancel
100
+ // (A-1035), so let the original error propagate untouched.
101
+ await completionPromise;
102
+ await this.state.finalizeBatchedBlob();
103
+ return this.state.getEpochProofResult();
107
104
  }
108
105
  /**
109
106
  * Cancels in-flight proving. If `abortJobs` is true, each pending broker job is aborted
@@ -121,9 +118,6 @@ import { TopTreeProvingState } from './top-tree-proving-state.js';
121
118
  });
122
119
  }
123
120
  // --- internal: per-checkpoint enqueue path ---
124
- onRootRollupComplete(state) {
125
- state.resolve();
126
- }
127
121
  enqueueCheckpointRoot(state, checkpointIndex, blockProofs, cd, outHashHint, startBlobAccumulator) {
128
122
  void this.buildCheckpointRootInputs(blockProofs, cd, outHashHint, startBlobAccumulator).then((inputs)=>{
129
123
  this.deferredProving(state, (signal)=>{
@@ -140,6 +134,13 @@ import { TopTreeProvingState } from './top-tree-proving-state.js';
140
134
  this.checkAndEnqueueNextCheckpointMergeRollup(state, leafLocation);
141
135
  }
142
136
  });
137
+ }, // Without this, an input-building failure rejects a discarded promise, state.reject() is
138
+ // never called, and prove() hangs forever on its completion promise (A-1036).
139
+ (err)=>{
140
+ if (this.cancelled) {
141
+ return;
142
+ }
143
+ state.reject(`Building checkpoint root inputs for checkpoint ${checkpointIndex} failed: ${err}`);
143
144
  });
144
145
  }
145
146
  async buildCheckpointRootInputs(blockProofs, cd, outHashHint, startBlobAccumulator) {
@@ -161,6 +162,55 @@ import { TopTreeProvingState } from './top-tree-proving-state.js';
161
162
  proofDatas[1]
162
163
  ], hints);
163
164
  }
165
+ // --- internal: top-tree proof orchestration (formerly TopTreeProvingScheduler) ---
166
+ enqueueCheckpointMergeRollup(state, location) {
167
+ if (!state.verifyState() || !state.tryStartProvingCheckpointMerge(location)) {
168
+ return;
169
+ }
170
+ const inputs = state.getCheckpointMergeRollupInputs(location);
171
+ this.deferredProving(state, (signal)=>this.prover.getCheckpointMergeRollupProof(inputs, signal, state.epochNumber), (result)=>{
172
+ state.setCheckpointMergeRollupProof(location, result);
173
+ this.checkAndEnqueueNextCheckpointMergeRollup(state, location);
174
+ });
175
+ }
176
+ enqueueEpochPadding(state) {
177
+ if (!state.verifyState() || !state.tryStartProvingPaddingCheckpoint()) {
178
+ return;
179
+ }
180
+ const inputs = state.getPaddingCheckpointInputs();
181
+ this.deferredProving(state, (signal)=>this.prover.getCheckpointPaddingRollupProof(inputs, signal, state.epochNumber), (result)=>{
182
+ state.setCheckpointPaddingProof(result);
183
+ this.checkAndEnqueueRootRollup(state);
184
+ });
185
+ }
186
+ enqueueRootRollup(state) {
187
+ if (!state.verifyState() || !state.tryStartProvingRootRollup()) {
188
+ return;
189
+ }
190
+ const inputs = state.getRootRollupInputs();
191
+ this.deferredProving(state, (signal)=>this.prover.getRootRollupProof(inputs, signal, state.epochNumber), (result)=>{
192
+ this.logger.verbose(`Completed root rollup for epoch ${state.epochNumber}`);
193
+ state.setRootRollupProof(result);
194
+ state.resolve();
195
+ });
196
+ }
197
+ checkAndEnqueueNextCheckpointMergeRollup(state, currentLocation) {
198
+ if (!state.isReadyForCheckpointMerge(currentLocation)) {
199
+ return;
200
+ }
201
+ const parentLocation = state.getParentLocation(currentLocation);
202
+ if (parentLocation.level === 0) {
203
+ this.checkAndEnqueueRootRollup(state);
204
+ } else {
205
+ this.enqueueCheckpointMergeRollup(state, parentLocation);
206
+ }
207
+ }
208
+ checkAndEnqueueRootRollup(state) {
209
+ if (!state.isReadyForRootRollup()) {
210
+ return;
211
+ }
212
+ this.enqueueRootRollup(state);
213
+ }
164
214
  async computeOutHashHints(checkpointData) {
165
215
  const treeCalculator = await MerkleTreeCalculator.create(OUT_HASH_TREE_HEIGHT, undefined, (left, right)=>Promise.resolve(shaMerkleHash(left, right)));
166
216
  const computeHint = async (leaves)=>{
@@ -58,4 +58,4 @@ export declare class TopTreeProvingState {
58
58
  reject(reason: string): void;
59
59
  cancel(): void;
60
60
  }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wLXRyZWUtcHJvdmluZy1zdGF0ZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29yY2hlc3RyYXRvci90b3AtdHJlZS1wcm92aW5nLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxzQkFBc0IsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hHLE9BQU8sS0FBSyxFQUFpQyx5Q0FBeUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBdUIsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRixPQUFPLEtBQUssRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JGLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFDTCxrQ0FBa0MsRUFDbEMsb0NBQW9DLEVBQ3BDLDRCQUE0QixFQUM1Qix1QkFBdUIsRUFDdkIsS0FBSyxzQkFBc0IsRUFDNUIsTUFBTSxzQkFBc0IsQ0FBQztBQVc5Qjs7Ozs7Ozs7R0FRRztBQUNILHFCQUFhLG1CQUFtQjs7YUFhWixXQUFXLEVBQUUsV0FBVzthQUN4QixtQkFBbUIsRUFBRSxNQUFNO2FBQzNCLDJCQUEyQixFQUFFLDJCQUEyQjthQUN4RCxvQkFBb0IsRUFBRSxzQkFBc0I7SUFDNUQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0I7SUFDbkMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUI7SUFqQnBDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FFdEI7SUFDRixPQUFPLENBQUMsc0JBQXNCLENBRWhCO0lBQ2QsT0FBTyxDQUFDLGVBQWUsQ0FBdUY7SUFDOUcsT0FBTyxDQUFDLGtCQUFrQixDQUFxQztJQUMvRCxPQUFPLENBQUMsZ0JBQWdCLENBQTBCO0lBQ2xELE9BQU8sQ0FBQyxTQUFTLENBQThCO0lBRS9DLFlBQ2tCLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLG1CQUFtQixFQUFFLE1BQU0sRUFDM0IsMkJBQTJCLEVBQUUsMkJBQTJCLEVBQ3hELG9CQUFvQixFQUFFLHNCQUFzQixFQUMzQyxrQkFBa0IsRUFBRSxNQUFNLElBQUksRUFDOUIsaUJBQWlCLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxLQUFLLElBQUksRUFNN0Q7SUFJTSw0QkFBNEIsQ0FDakMsZUFBZSxFQUFFLE1BQU0sRUFDdkIsYUFBYSxFQUFFLDZCQUE2QixDQUMxQyw0QkFBNEIsRUFDNUIsT0FBTyx5Q0FBeUMsQ0FDakQsR0FDQSxnQkFBZ0IsQ0FFbEI7SUFJTSw4QkFBOEIsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLFdBTS9EO0lBRU0sNkJBQTZCLENBQ2xDLFFBQVEsRUFBRSxnQkFBZ0IsRUFDMUIsYUFBYSxFQUFFLDZCQUE2QixDQUMxQyw0QkFBNEIsRUFDNUIsT0FBTyx5Q0FBeUMsQ0FDakQsUUFHRjtJQUVNLHlCQUF5QixDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsV0FFMUQ7SUFFTSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLG9CQUVsRDtJQUVNLDhCQUE4QixDQUFDLGFBQWEsRUFBRSxnQkFBZ0Isc0NBTXBFO0lBSU0sZ0NBQWdDLFlBTXRDO0lBRU0seUJBQXlCLENBQzlCLGFBQWEsRUFBRSw2QkFBNkIsQ0FDMUMsNEJBQTRCLEVBQzVCLE9BQU8seUNBQXlDLENBQ2pELFFBR0Y7SUFFTSwwQkFBMEIseUNBRWhDO0lBSU0seUJBQXlCLFlBTS9CO0lBRU0sa0JBQWtCLENBQUMsYUFBYSxFQUFFLDZCQUE2QixDQUFDLHNCQUFzQixDQUFDLFFBRTdGO0lBRU0sb0JBQW9CLFlBRzFCO0lBRU0sbUJBQW1CLDRCQVF6QjtJQUlEOzs7T0FHRztJQUNJLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxzQkFBc0IsUUFFL0Q7SUFFWSxtQkFBbUIsa0JBSy9CO0lBRU0sbUJBQW1CLElBQUk7UUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQUMsWUFBWSxFQUFFLHNCQUFzQixDQUFDO1FBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFBO0tBQUUsQ0FVbkg7SUFJTSxXQUFXLFlBRWpCO0lBRU0sT0FBTyxTQU1iO0lBRU0sTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLFFBTTNCO0lBRU0sTUFBTSxTQUVaO0NBUUYifQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wLXRyZWUtcHJvdmluZy1zdGF0ZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29yY2hlc3RyYXRvci90b3AtdHJlZS1wcm92aW5nLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxzQkFBc0IsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hHLE9BQU8sS0FBSyxFQUFpQyx5Q0FBeUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBdUIsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRixPQUFPLEtBQUssRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JGLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFDTCxrQ0FBa0MsRUFDbEMsb0NBQW9DLEVBQ3BDLDRCQUE0QixFQUM1Qix1QkFBdUIsRUFDdkIsS0FBSyxzQkFBc0IsRUFDNUIsTUFBTSxzQkFBc0IsQ0FBQztBQVc5Qjs7Ozs7Ozs7R0FRRztBQUNILHFCQUFhLG1CQUFtQjs7YUFZWixXQUFXLEVBQUUsV0FBVzthQUN4QixtQkFBbUIsRUFBRSxNQUFNO2FBQzNCLDJCQUEyQixFQUFFLDJCQUEyQjthQUN4RCxvQkFBb0IsRUFBRSxzQkFBc0I7SUFDNUQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0I7SUFDbkMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUI7SUFoQnBDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FFdEI7SUFDRixPQUFPLENBQUMsc0JBQXNCLENBRWhCO0lBQ2QsT0FBTyxDQUFDLGVBQWUsQ0FBdUY7SUFDOUcsT0FBTyxDQUFDLGtCQUFrQixDQUFxQztJQUMvRCxPQUFPLENBQUMsZ0JBQWdCLENBQTBCO0lBQ2xELE9BQU8sQ0FBQyxTQUFTLENBQThCO0lBQy9DLFlBQ2tCLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLG1CQUFtQixFQUFFLE1BQU0sRUFDM0IsMkJBQTJCLEVBQUUsMkJBQTJCLEVBQ3hELG9CQUFvQixFQUFFLHNCQUFzQixFQUMzQyxrQkFBa0IsRUFBRSxNQUFNLElBQUksRUFDOUIsaUJBQWlCLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxLQUFLLElBQUksRUFNN0Q7SUFJTSw0QkFBNEIsQ0FDakMsZUFBZSxFQUFFLE1BQU0sRUFDdkIsYUFBYSxFQUFFLDZCQUE2QixDQUMxQyw0QkFBNEIsRUFDNUIsT0FBTyx5Q0FBeUMsQ0FDakQsR0FDQSxnQkFBZ0IsQ0FFbEI7SUFJTSw4QkFBOEIsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLFdBTS9EO0lBRU0sNkJBQTZCLENBQ2xDLFFBQVEsRUFBRSxnQkFBZ0IsRUFDMUIsYUFBYSxFQUFFLDZCQUE2QixDQUMxQyw0QkFBNEIsRUFDNUIsT0FBTyx5Q0FBeUMsQ0FDakQsUUFHRjtJQUVNLHlCQUF5QixDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsV0FFMUQ7SUFFTSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLG9CQUVsRDtJQUVNLDhCQUE4QixDQUFDLGFBQWEsRUFBRSxnQkFBZ0Isc0NBTXBFO0lBSU0sZ0NBQWdDLFlBTXRDO0lBRU0seUJBQXlCLENBQzlCLGFBQWEsRUFBRSw2QkFBNkIsQ0FDMUMsNEJBQTRCLEVBQzVCLE9BQU8seUNBQXlDLENBQ2pELFFBR0Y7SUFFTSwwQkFBMEIseUNBRWhDO0lBSU0seUJBQXlCLFlBTS9CO0lBRU0sa0JBQWtCLENBQUMsYUFBYSxFQUFFLDZCQUE2QixDQUFDLHNCQUFzQixDQUFDLFFBRTdGO0lBRU0sb0JBQW9CLFlBRzFCO0lBRU0sbUJBQW1CLDRCQVF6QjtJQUlEOzs7T0FHRztJQUNJLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxzQkFBc0IsUUFFL0Q7SUFFWSxtQkFBbUIsa0JBSy9CO0lBRU0sbUJBQW1CLElBQUk7UUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQUMsWUFBWSxFQUFFLHNCQUFzQixDQUFDO1FBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFBO0tBQUUsQ0FVbkg7SUFJTSxXQUFXLFlBRWpCO0lBRU0sT0FBTyxTQU1iO0lBRU0sTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLFFBTTNCO0lBRU0sTUFBTSxTQUVaO0NBUUYifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"top-tree-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/top-tree-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AACxG,OAAO,KAAK,EAAiC,yCAAyC,EAAE,MAAM,kBAAkB,CAAC;AACjH,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,KAAK,gBAAgB,EAAuB,MAAM,yBAAyB,CAAC;AACrF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EACL,kCAAkC,EAClC,oCAAoC,EACpC,4BAA4B,EAC5B,uBAAuB,EACvB,KAAK,sBAAsB,EAC5B,MAAM,sBAAsB,CAAC;AAW9B;;;;;;;;GAQG;AACH,qBAAa,mBAAmB;;aAaZ,WAAW,EAAE,WAAW;aACxB,mBAAmB,EAAE,MAAM;aAC3B,2BAA2B,EAAE,2BAA2B;aACxD,oBAAoB,EAAE,sBAAsB;IAC5D,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAjBpC,OAAO,CAAC,gBAAgB,CAEtB;IACF,OAAO,CAAC,sBAAsB,CAEhB;IACd,OAAO,CAAC,eAAe,CAAuF;IAC9G,OAAO,CAAC,kBAAkB,CAAqC;IAC/D,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,SAAS,CAA8B;IAE/C,YACkB,WAAW,EAAE,WAAW,EACxB,mBAAmB,EAAE,MAAM,EAC3B,2BAA2B,EAAE,2BAA2B,EACxD,oBAAoB,EAAE,sBAAsB,EAC3C,kBAAkB,EAAE,MAAM,IAAI,EAC9B,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,EAM7D;IAIM,4BAA4B,CACjC,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,6BAA6B,CAC1C,4BAA4B,EAC5B,OAAO,yCAAyC,CACjD,GACA,gBAAgB,CAElB;IAIM,8BAA8B,CAAC,QAAQ,EAAE,gBAAgB,WAM/D;IAEM,6BAA6B,CAClC,QAAQ,EAAE,gBAAgB,EAC1B,aAAa,EAAE,6BAA6B,CAC1C,4BAA4B,EAC5B,OAAO,yCAAyC,CACjD,QAGF;IAEM,yBAAyB,CAAC,QAAQ,EAAE,gBAAgB,WAE1D;IAEM,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,oBAElD;IAEM,8BAA8B,CAAC,aAAa,EAAE,gBAAgB,sCAMpE;IAIM,gCAAgC,YAMtC;IAEM,yBAAyB,CAC9B,aAAa,EAAE,6BAA6B,CAC1C,4BAA4B,EAC5B,OAAO,yCAAyC,CACjD,QAGF;IAEM,0BAA0B,yCAEhC;IAIM,yBAAyB,YAM/B;IAEM,kBAAkB,CAAC,aAAa,EAAE,6BAA6B,CAAC,sBAAsB,CAAC,QAE7F;IAEM,oBAAoB,YAG1B;IAEM,mBAAmB,4BAQzB;IAID;;;OAGG;IACI,qBAAqB,CAAC,WAAW,EAAE,sBAAsB,QAE/D;IAEY,mBAAmB,kBAK/B;IAEM,mBAAmB,IAAI;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,YAAY,EAAE,sBAAsB,CAAC;QAAC,iBAAiB,EAAE,WAAW,CAAA;KAAE,CAUnH;IAIM,WAAW,YAEjB;IAEM,OAAO,SAMb;IAEM,MAAM,CAAC,MAAM,EAAE,MAAM,QAM3B;IAEM,MAAM,SAEZ;CAQF"}
1
+ {"version":3,"file":"top-tree-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/top-tree-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AACxG,OAAO,KAAK,EAAiC,yCAAyC,EAAE,MAAM,kBAAkB,CAAC;AACjH,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,KAAK,gBAAgB,EAAuB,MAAM,yBAAyB,CAAC;AACrF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EACL,kCAAkC,EAClC,oCAAoC,EACpC,4BAA4B,EAC5B,uBAAuB,EACvB,KAAK,sBAAsB,EAC5B,MAAM,sBAAsB,CAAC;AAW9B;;;;;;;;GAQG;AACH,qBAAa,mBAAmB;;aAYZ,WAAW,EAAE,WAAW;aACxB,mBAAmB,EAAE,MAAM;aAC3B,2BAA2B,EAAE,2BAA2B;aACxD,oBAAoB,EAAE,sBAAsB;IAC5D,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAhBpC,OAAO,CAAC,gBAAgB,CAEtB;IACF,OAAO,CAAC,sBAAsB,CAEhB;IACd,OAAO,CAAC,eAAe,CAAuF;IAC9G,OAAO,CAAC,kBAAkB,CAAqC;IAC/D,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,SAAS,CAA8B;IAC/C,YACkB,WAAW,EAAE,WAAW,EACxB,mBAAmB,EAAE,MAAM,EAC3B,2BAA2B,EAAE,2BAA2B,EACxD,oBAAoB,EAAE,sBAAsB,EAC3C,kBAAkB,EAAE,MAAM,IAAI,EAC9B,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,EAM7D;IAIM,4BAA4B,CACjC,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,6BAA6B,CAC1C,4BAA4B,EAC5B,OAAO,yCAAyC,CACjD,GACA,gBAAgB,CAElB;IAIM,8BAA8B,CAAC,QAAQ,EAAE,gBAAgB,WAM/D;IAEM,6BAA6B,CAClC,QAAQ,EAAE,gBAAgB,EAC1B,aAAa,EAAE,6BAA6B,CAC1C,4BAA4B,EAC5B,OAAO,yCAAyC,CACjD,QAGF;IAEM,yBAAyB,CAAC,QAAQ,EAAE,gBAAgB,WAE1D;IAEM,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,oBAElD;IAEM,8BAA8B,CAAC,aAAa,EAAE,gBAAgB,sCAMpE;IAIM,gCAAgC,YAMtC;IAEM,yBAAyB,CAC9B,aAAa,EAAE,6BAA6B,CAC1C,4BAA4B,EAC5B,OAAO,yCAAyC,CACjD,QAGF;IAEM,0BAA0B,yCAEhC;IAIM,yBAAyB,YAM/B;IAEM,kBAAkB,CAAC,aAAa,EAAE,6BAA6B,CAAC,sBAAsB,CAAC,QAE7F;IAEM,oBAAoB,YAG1B;IAEM,mBAAmB,4BAQzB;IAID;;;OAGG;IACI,qBAAqB,CAAC,WAAW,EAAE,sBAAsB,QAE/D;IAEY,mBAAmB,kBAK/B;IAEM,mBAAmB,IAAI;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,YAAY,EAAE,sBAAsB,CAAC;QAAC,iBAAiB,EAAE,WAAW,CAAA;KAAE,CAUnH;IAIM,WAAW,YAEjB;IAEM,OAAO,SAMb;IAEM,MAAM,CAAC,MAAM,EAAE,MAAM,QAM3B;IAEM,MAAM,SAEZ;CAQF"}
@@ -1,4 +1,4 @@
1
- import { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
1
+ import { AVM_V2_PROOF_LENGTH_IN_FIELDS, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
2
2
  import type { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
4
4
  import type { PublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
@@ -32,6 +32,6 @@ export declare class TxProvingState {
32
32
  inputs: PrivateTxBaseRollupPrivateInputs;
33
33
  };
34
34
  setPublicChonkVerifierProof(publicChonkVerifierProofAndVk: PublicInputsAndRecursiveProof<PublicChonkVerifierPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>): void;
35
- setAvmProof(avmProof: RecursiveProof<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>): void;
35
+ setAvmProof(avmProof: RecursiveProof<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS>): void;
36
36
  }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHgtcHJvdmluZy1zdGF0ZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29yY2hlc3RyYXRvci90eC1wcm92aW5nLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25ILE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXpELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRixPQUFPLEVBQWtDLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RGLE9BQU8sRUFDTCxLQUFLLGVBQWUsRUFFcEIsZ0NBQWdDLEVBRWhDLCtCQUErQixFQUMvQiwrQkFBK0IsRUFDaEMsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQVFwRDs7OztHQUlHO0FBQ0gscUJBQWEsY0FBYzs7YUFRUCxXQUFXLEVBQUUsV0FBVztJQUN4QyxPQUFPLENBQUMsUUFBUSxDQUFDLGVBQWU7YUFDaEIsYUFBYSxFQUFFLEdBQUcsQ0FBQyxZQUFZLEVBQUUsc0JBQXNCLENBQUM7SUFDeEUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRO0lBVjNCLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUcxQjtJQUNGLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBOEQ7SUFFL0UsWUFDa0IsV0FBVyxFQUFFLFdBQVcsRUFDdkIsZUFBZSxFQUFFLGVBQWUsRUFDakMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxZQUFZLEVBQUUsc0JBQXNCLENBQUMsRUFDdkQsUUFBUSxFQUFFLEVBQUUsRUFDM0I7SUFFSixJQUFJLGVBQWUsWUFFbEI7SUFFTSxLQUFLLFlBRVg7SUFFTSxZQUFZLElBQUksZ0JBQWdCLENBRXRDO0lBRU0sbUNBQW1DLG9FQUV6QztJQUVNLDBCQUEwQjs7Ozs7O01BWWhDO0lBRU0sMkJBQTJCLENBQ2hDLDZCQUE2QixFQUFFLDZCQUE2QixDQUMxRCwrQkFBK0IsRUFDL0IsT0FBTyx5Q0FBeUMsQ0FDakQsUUFHRjtJQUVNLFdBQVcsQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLE9BQU8sb0NBQW9DLENBQUMsUUFFdkY7Q0FvQ0YifQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHgtcHJvdmluZy1zdGF0ZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29yY2hlc3RyYXRvci90eC1wcm92aW5nLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVHLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXpELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRixPQUFPLEVBQWtDLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RGLE9BQU8sRUFDTCxLQUFLLGVBQWUsRUFFcEIsZ0NBQWdDLEVBRWhDLCtCQUErQixFQUMvQiwrQkFBK0IsRUFDaEMsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQVFwRDs7OztHQUlHO0FBQ0gscUJBQWEsY0FBYzs7YUFRUCxXQUFXLEVBQUUsV0FBVztJQUN4QyxPQUFPLENBQUMsUUFBUSxDQUFDLGVBQWU7YUFDaEIsYUFBYSxFQUFFLEdBQUcsQ0FBQyxZQUFZLEVBQUUsc0JBQXNCLENBQUM7SUFDeEUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRO0lBVjNCLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUcxQjtJQUNGLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBdUQ7SUFFeEUsWUFDa0IsV0FBVyxFQUFFLFdBQVcsRUFDdkIsZUFBZSxFQUFFLGVBQWUsRUFDakMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxZQUFZLEVBQUUsc0JBQXNCLENBQUMsRUFDdkQsUUFBUSxFQUFFLEVBQUUsRUFDM0I7SUFFSixJQUFJLGVBQWUsWUFFbEI7SUFFTSxLQUFLLFlBRVg7SUFFTSxZQUFZLElBQUksZ0JBQWdCLENBRXRDO0lBRU0sbUNBQW1DLG9FQUV6QztJQUVNLDBCQUEwQjs7Ozs7O01BWWhDO0lBRU0sMkJBQTJCLENBQ2hDLDZCQUE2QixFQUFFLDZCQUE2QixDQUMxRCwrQkFBK0IsRUFDL0IsT0FBTyx5Q0FBeUMsQ0FDakQsUUFHRjtJQUVNLFdBQVcsQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLE9BQU8sNkJBQTZCLENBQUMsUUFFaEY7Q0FvQ0YifQ==