@aztec/prover-client 0.0.1-commit.03f7ef2 → 0.0.1-commit.04852196a

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 (114) hide show
  1. package/dest/light/lightweight_checkpoint_builder.d.ts +22 -6
  2. package/dest/light/lightweight_checkpoint_builder.d.ts.map +1 -1
  3. package/dest/light/lightweight_checkpoint_builder.js +97 -25
  4. package/dest/mocks/fixtures.d.ts +1 -1
  5. package/dest/mocks/fixtures.d.ts.map +1 -1
  6. package/dest/mocks/fixtures.js +2 -1
  7. package/dest/mocks/test_context.d.ts +4 -2
  8. package/dest/mocks/test_context.d.ts.map +1 -1
  9. package/dest/mocks/test_context.js +18 -4
  10. package/dest/orchestrator/block-building-helpers.d.ts +5 -5
  11. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
  12. package/dest/orchestrator/block-building-helpers.js +4 -4
  13. package/dest/orchestrator/block-proving-state.d.ts +4 -1
  14. package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
  15. package/dest/orchestrator/block-proving-state.js +7 -0
  16. package/dest/orchestrator/checkpoint-proving-state.d.ts +17 -4
  17. package/dest/orchestrator/checkpoint-proving-state.d.ts.map +1 -1
  18. package/dest/orchestrator/checkpoint-proving-state.js +37 -4
  19. package/dest/orchestrator/epoch-proving-state.d.ts +7 -6
  20. package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
  21. package/dest/orchestrator/epoch-proving-state.js +37 -1
  22. package/dest/orchestrator/orchestrator.d.ts +19 -4
  23. package/dest/orchestrator/orchestrator.d.ts.map +1 -1
  24. package/dest/orchestrator/orchestrator.js +541 -126
  25. package/dest/orchestrator/orchestrator_metrics.d.ts +1 -1
  26. package/dest/orchestrator/orchestrator_metrics.d.ts.map +1 -1
  27. package/dest/orchestrator/orchestrator_metrics.js +2 -6
  28. package/dest/orchestrator/tx-proving-state.d.ts +5 -4
  29. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
  30. package/dest/orchestrator/tx-proving-state.js +6 -6
  31. package/dest/prover-client/factory.d.ts +3 -3
  32. package/dest/prover-client/factory.d.ts.map +1 -1
  33. package/dest/prover-client/prover-client.d.ts +5 -5
  34. package/dest/prover-client/prover-client.d.ts.map +1 -1
  35. package/dest/prover-client/prover-client.js +15 -10
  36. package/dest/proving_broker/broker_prover_facade.d.ts +7 -5
  37. package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
  38. package/dest/proving_broker/broker_prover_facade.js +3 -3
  39. package/dest/proving_broker/config.d.ts +14 -2
  40. package/dest/proving_broker/config.d.ts.map +1 -1
  41. package/dest/proving_broker/config.js +20 -3
  42. package/dest/proving_broker/proof_store/factory.d.ts +2 -5
  43. package/dest/proving_broker/proof_store/factory.d.ts.map +1 -1
  44. package/dest/proving_broker/proof_store/factory.js +7 -30
  45. package/dest/proving_broker/proof_store/file_store_proof_store.d.ts +18 -0
  46. package/dest/proving_broker/proof_store/file_store_proof_store.d.ts.map +1 -0
  47. package/dest/proving_broker/proof_store/file_store_proof_store.js +60 -0
  48. package/dest/proving_broker/proof_store/index.d.ts +2 -2
  49. package/dest/proving_broker/proof_store/index.d.ts.map +1 -1
  50. package/dest/proving_broker/proof_store/index.js +1 -1
  51. package/dest/proving_broker/proving_agent.d.ts +5 -9
  52. package/dest/proving_broker/proving_agent.d.ts.map +1 -1
  53. package/dest/proving_broker/proving_agent.js +4 -19
  54. package/dest/proving_broker/proving_broker.d.ts +7 -4
  55. package/dest/proving_broker/proving_broker.d.ts.map +1 -1
  56. package/dest/proving_broker/proving_broker.js +37 -14
  57. package/dest/proving_broker/proving_broker_database/persisted.d.ts +3 -2
  58. package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -1
  59. package/dest/proving_broker/proving_broker_database/persisted.js +389 -1
  60. package/dest/proving_broker/proving_broker_instrumentation.d.ts +3 -1
  61. package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -1
  62. package/dest/proving_broker/proving_broker_instrumentation.js +22 -35
  63. package/dest/proving_broker/proving_job_controller.d.ts +4 -3
  64. package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
  65. package/dest/proving_broker/proving_job_controller.js +6 -3
  66. package/dest/proving_broker/rpc.d.ts +4 -2
  67. package/dest/proving_broker/rpc.d.ts.map +1 -1
  68. package/dest/proving_broker/rpc.js +8 -0
  69. package/dest/test/mock_proof_store.d.ts +3 -3
  70. package/dest/test/mock_proof_store.d.ts.map +1 -1
  71. package/dest/test/mock_prover.d.ts +5 -5
  72. package/dest/test/mock_prover.d.ts.map +1 -1
  73. package/dest/test/mock_prover.js +3 -3
  74. package/package.json +18 -20
  75. package/src/light/lightweight_checkpoint_builder.ts +139 -32
  76. package/src/mocks/fixtures.ts +2 -1
  77. package/src/mocks/test_context.ts +13 -3
  78. package/src/orchestrator/block-building-helpers.ts +4 -4
  79. package/src/orchestrator/block-proving-state.ts +9 -0
  80. package/src/orchestrator/checkpoint-proving-state.ts +51 -5
  81. package/src/orchestrator/epoch-proving-state.ts +59 -9
  82. package/src/orchestrator/orchestrator.ts +143 -107
  83. package/src/orchestrator/orchestrator_metrics.ts +2 -6
  84. package/src/orchestrator/tx-proving-state.ts +8 -11
  85. package/src/prover-client/factory.ts +6 -2
  86. package/src/prover-client/prover-client.ts +31 -23
  87. package/src/proving_broker/broker_prover_facade.ts +8 -6
  88. package/src/proving_broker/config.ts +23 -1
  89. package/src/proving_broker/proof_store/factory.ts +10 -32
  90. package/src/proving_broker/proof_store/file_store_proof_store.ts +78 -0
  91. package/src/proving_broker/proof_store/index.ts +1 -1
  92. package/src/proving_broker/proving_agent.ts +6 -19
  93. package/src/proving_broker/proving_broker.ts +38 -11
  94. package/src/proving_broker/proving_broker_database/persisted.ts +15 -1
  95. package/src/proving_broker/proving_broker_instrumentation.ts +23 -35
  96. package/src/proving_broker/proving_job_controller.ts +9 -3
  97. package/src/proving_broker/rpc.ts +14 -0
  98. package/src/test/mock_prover.ts +1 -8
  99. package/dest/block-factory/index.d.ts +0 -2
  100. package/dest/block-factory/index.d.ts.map +0 -1
  101. package/dest/block-factory/index.js +0 -1
  102. package/dest/block-factory/light.d.ts +0 -38
  103. package/dest/block-factory/light.d.ts.map +0 -1
  104. package/dest/block-factory/light.js +0 -108
  105. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts +0 -14
  106. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts.map +0 -1
  107. package/dest/proving_broker/proof_store/gcs_proof_store.js +0 -52
  108. package/dest/proving_broker/proving_agent_instrumentation.d.ts +0 -8
  109. package/dest/proving_broker/proving_agent_instrumentation.d.ts.map +0 -1
  110. package/dest/proving_broker/proving_agent_instrumentation.js +0 -16
  111. package/src/block-factory/index.ts +0 -1
  112. package/src/block-factory/light.ts +0 -137
  113. package/src/proving_broker/proof_store/gcs_proof_store.ts +0 -76
  114. package/src/proving_broker/proving_agent_instrumentation.ts +0 -21
@@ -2,8 +2,8 @@ import type { ProvingJobId } from '@aztec/stdlib/interfaces/server';
2
2
  import { ProvingRequestType } from '@aztec/stdlib/proofs';
3
3
  export declare class MockProofStore {
4
4
  private mockCounter;
5
- private readonly bucketName = "aztec-proving-benchmarks";
6
- private readonly basePath = "proving-jobs";
5
+ private readonly bucketName;
6
+ private readonly basePath;
7
7
  saveProofInput(jobId: ProvingJobId, type: ProvingRequestType): Promise<string>;
8
8
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19wcm9vZl9zdG9yZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QvbW9ja19wcm9vZl9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUcxRCxxQkFBYSxjQUFjO0lBQ3pCLE9BQU8sQ0FBQyxXQUFXLENBQUs7SUFDeEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLDhCQUE4QjtJQUN6RCxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsa0JBQWtCO0lBRTNDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBRzdFO0NBQ0YifQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19wcm9vZl9zdG9yZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QvbW9ja19wcm9vZl9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUcxRCxxQkFBYSxjQUFjO0lBQ3pCLE9BQU8sQ0FBQyxXQUFXLENBQUs7SUFDeEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQThCO0lBQ3pELE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFrQjtJQUUzQyxjQUFjLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUc3RTtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"mock_proof_store.d.ts","sourceRoot":"","sources":["../../src/test/mock_proof_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,8BAA8B;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,kBAAkB;IAE3C,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAG7E;CACF"}
1
+ {"version":3,"file":"mock_proof_store.d.ts","sourceRoot":"","sources":["../../src/test/mock_proof_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAE3C,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAG7E;CACF"}
@@ -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/interfaces/server").ProofAndVerificationKey<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<16400>>;
23
+ getBaseParityProof(_inputs: ParityBasePrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<import("@aztec/stdlib/parity").ParityPublicInputs, 449>>;
24
+ getRootParityProof(_inputs: ParityRootPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<import("@aztec/stdlib/parity").ParityPublicInputs, 449>>;
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,11 +31,11 @@ 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, 519>>;
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>>;
38
38
  getCheckpointPaddingRollupProof(_input: CheckpointPaddingRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
39
39
  getRootRollupProof(_input: RootRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs>>;
40
40
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19wcm92ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L21vY2tfcHJvdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCx5Q0FBeUMsRUFFMUMsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFDTCxLQUFLLFVBQVUsRUFDZixLQUFLLFlBQVksRUFDakIsS0FBSyxrQkFBa0IsRUFDdkIsS0FBSyxnQkFBZ0IsRUFDckIsS0FBSyw2QkFBNkIsRUFDbEMsS0FBSyxtQkFBbUIsRUFHekIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTdGLE9BQU8sS0FBSyxFQUNWLDZCQUE2QixFQUM3Qix1QkFBdUIsRUFDdkIsd0NBQXdDLEVBQ3hDLGlDQUFpQyxFQUNqQyw0QkFBNEIsRUFDNUIseUNBQXlDLEVBQ3pDLG9DQUFvQyxFQUNwQyxrQ0FBa0MsRUFDbEMsb0NBQW9DLEVBQ3BDLDRCQUE0QixFQUM1QixpQ0FBaUMsRUFDakMsNENBQTRDLEVBQzVDLGdDQUFnQyxFQUNoQyxnQ0FBZ0MsRUFDaEMsK0JBQStCLEVBQy9CLCtCQUErQixFQUMvQix1QkFBdUIsRUFDdkIsc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUMxQixvQkFBb0IsRUFDckIsTUFBTSxzQkFBc0IsQ0FBQztBQVc5QixPQUFPLEVBQW9CLEtBQUssVUFBVSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFLM0YscUJBQWEsVUFBVyxZQUFXLGtCQUFrQjtJQU9qRCxPQUFPLENBQUMsVUFBVTtJQU5wQixPQUFPLENBQUMsTUFBTSxDQUFnQjtJQUM5QixPQUFPLENBQUMsTUFBTSxDQUFpQjtJQUUvQixZQUNFLFVBQVUsRUFBRSxNQUFNLEVBQ2xCLE1B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
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19wcm92ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L21vY2tfcHJvdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCx5Q0FBeUMsRUFFMUMsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFDTCxLQUFLLFVBQVUsRUFDZixLQUFLLFlBQVksRUFDakIsS0FBSyxrQkFBa0IsRUFDdkIsS0FBSyxnQkFBZ0IsRUFDckIsS0FBSyw2QkFBNkIsRUFDbEMsS0FBSyxtQkFBbUIsRUFFekIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTdGLE9BQU8sS0FBSyxFQUNWLDZCQUE2QixFQUM3Qix1QkFBdUIsRUFDdkIsd0NBQXdDLEVBQ3hDLGlDQUFpQyxFQUNqQyw0QkFBNEIsRUFDNUIseUNBQXlDLEVBQ3pDLG9DQUFvQyxFQUNwQyxrQ0FBa0MsRUFDbEMsb0NBQW9DLEVBQ3BDLDRCQUE0QixFQUM1QixpQ0FBaUMsRUFDakMsNENBQTRDLEVBQzVDLGdDQUFnQyxFQUNoQyxnQ0FBZ0MsRUFDaEMsK0JBQStCLEVBQy9CLCtCQUErQixFQUMvQix1QkFBdUIsRUFDdkIsc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUMxQixvQkFBb0IsRUFDckIsTUFBTSxzQkFBc0IsQ0FBQztBQVc5QixPQUFPLEVBQW9CLEtBQUssVUFBVSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFLM0YscUJBQWEsVUFBVyxZQUFXLGtCQUFrQjtJQU9qRCxPQUFPLENBQUMsVUFBVTtJQU5wQixPQUFPLENBQUMsTUFBTSxDQUFnQjtJQUM5QixPQUFPLENBQUMsTUFBTSxDQUFpQjtJQUUvQixZQUNFLFVBQVUsRUFBRSxNQUFNLEVBQ2xCLE1B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
@@ -1 +1 @@
1
- {"version":3,"file":"mock_prover.d.ts","sourceRoot":"","sources":["../../src/test/mock_prover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mock_prover.d.ts","sourceRoot":"","sources":["../../src/test/mock_prover.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, AVM_V2_VERIFICATION_KEY_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_PADDED, 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
- import { makeProofAndVerificationKey, makePublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
3
+ import { makePublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
4
4
  import { makeEmptyRecursiveProof, makeRecursiveProof } from '@aztec/stdlib/proofs';
5
5
  import { makeBlockRollupPublicInputs, makeCheckpointRollupPublicInputs, makeParityPublicInputs, makePublicChonkVerifierPublicInputs, makeRootRollupPublicInputs, makeTxRollupPublicInputs } from '@aztec/stdlib/testing';
6
6
  import { VerificationKeyData } from '@aztec/stdlib/vks';
@@ -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(makeProofAndVerificationKey(makeEmptyRecursiveProof(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED), VerificationKeyData.makeFake(AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED)));
47
+ return Promise.resolve(makeEmptyRecursiveProof(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED));
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,10 +1,9 @@
1
1
  {
2
2
  "name": "@aztec/prover-client",
3
- "version": "0.0.1-commit.03f7ef2",
3
+ "version": "0.0.1-commit.04852196a",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
7
- "./block-factory": "./dest/block-factory/index.js",
8
7
  "./broker": "./dest/proving_broker/index.js",
9
8
  "./broker/config": "./dest/proving_broker/config.js",
10
9
  "./orchestrator": "./dest/orchestrator/index.js",
@@ -28,8 +27,8 @@
28
27
  "build:dev": "../scripts/tsc.sh --watch",
29
28
  "clean": "rm -rf ./dest .tsbuildinfo",
30
29
  "bb": "node --no-warnings ./dest/bb/index.js",
31
- "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --testTimeout=3500000 --forceExit",
32
- "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"
30
+ "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --testTimeout=3500000",
31
+ "test:debug": "LOG_LEVEL=debug NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --testTimeout=1500000 --testNamePattern prover/bb_prover/parity"
33
32
  },
34
33
  "jest": {
35
34
  "moduleNameMapper": {
@@ -69,20 +68,19 @@
69
68
  ]
70
69
  },
71
70
  "dependencies": {
72
- "@aztec/bb-prover": "0.0.1-commit.03f7ef2",
73
- "@aztec/blob-lib": "0.0.1-commit.03f7ef2",
74
- "@aztec/constants": "0.0.1-commit.03f7ef2",
75
- "@aztec/ethereum": "0.0.1-commit.03f7ef2",
76
- "@aztec/foundation": "0.0.1-commit.03f7ef2",
77
- "@aztec/kv-store": "0.0.1-commit.03f7ef2",
78
- "@aztec/noir-protocol-circuits-types": "0.0.1-commit.03f7ef2",
79
- "@aztec/noir-types": "0.0.1-commit.03f7ef2",
80
- "@aztec/protocol-contracts": "0.0.1-commit.03f7ef2",
81
- "@aztec/simulator": "0.0.1-commit.03f7ef2",
82
- "@aztec/stdlib": "0.0.1-commit.03f7ef2",
83
- "@aztec/telemetry-client": "0.0.1-commit.03f7ef2",
84
- "@aztec/world-state": "0.0.1-commit.03f7ef2",
85
- "@google-cloud/storage": "^7.15.0",
71
+ "@aztec/bb-prover": "0.0.1-commit.04852196a",
72
+ "@aztec/blob-lib": "0.0.1-commit.04852196a",
73
+ "@aztec/constants": "0.0.1-commit.04852196a",
74
+ "@aztec/ethereum": "0.0.1-commit.04852196a",
75
+ "@aztec/foundation": "0.0.1-commit.04852196a",
76
+ "@aztec/kv-store": "0.0.1-commit.04852196a",
77
+ "@aztec/noir-protocol-circuits-types": "0.0.1-commit.04852196a",
78
+ "@aztec/noir-types": "0.0.1-commit.04852196a",
79
+ "@aztec/protocol-contracts": "0.0.1-commit.04852196a",
80
+ "@aztec/simulator": "0.0.1-commit.04852196a",
81
+ "@aztec/stdlib": "0.0.1-commit.04852196a",
82
+ "@aztec/telemetry-client": "0.0.1-commit.04852196a",
83
+ "@aztec/world-state": "0.0.1-commit.04852196a",
86
84
  "@iarna/toml": "^2.2.5",
87
85
  "commander": "^12.1.0",
88
86
  "lodash.chunk": "^4.2.0",
@@ -91,12 +89,12 @@
91
89
  "zod": "^3.23.8"
92
90
  },
93
91
  "devDependencies": {
94
- "@aztec/noir-contracts.js": "0.0.1-commit.03f7ef2",
92
+ "@aztec/noir-contracts.js": "0.0.1-commit.04852196a",
95
93
  "@jest/globals": "^30.0.0",
96
94
  "@types/jest": "^30.0.0",
97
95
  "@types/node": "^22.15.17",
98
96
  "@types/source-map-support": "^0.5.10",
99
- "@typescript/native-preview": "7.0.0-dev.20251126.1",
97
+ "@typescript/native-preview": "7.0.0-dev.20260113.1",
100
98
  "get-port": "^7.1.0",
101
99
  "jest": "^30.0.0",
102
100
  "jest-mock-extended": "^4.0.0",
@@ -1,18 +1,22 @@
1
1
  import { SpongeBlob, computeBlobsHashFromBlobs, encodeCheckpointEndMarker, getBlobsPerL1Block } from '@aztec/blob-lib';
2
2
  import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants';
3
- import type { CheckpointNumber } from '@aztec/foundation/branded-types';
3
+ import { type CheckpointNumber, IndexWithinCheckpoint } from '@aztec/foundation/branded-types';
4
4
  import { padArrayEnd } from '@aztec/foundation/collection';
5
5
  import { Fr } from '@aztec/foundation/curves/bn254';
6
- import { createLogger } from '@aztec/foundation/log';
7
- import { L2BlockNew } from '@aztec/stdlib/block';
6
+ import { type Logger, type LoggerBindings, createLogger } from '@aztec/foundation/log';
7
+ import { elapsed } from '@aztec/foundation/timer';
8
+ import { L2Block } from '@aztec/stdlib/block';
8
9
  import { Checkpoint } from '@aztec/stdlib/checkpoint';
9
10
  import type { MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
10
- import { computeCheckpointOutHash, computeInHashFromL1ToL2Messages } from '@aztec/stdlib/messaging';
11
+ import {
12
+ accumulateCheckpointOutHashes,
13
+ computeCheckpointOutHash,
14
+ computeInHashFromL1ToL2Messages,
15
+ } from '@aztec/stdlib/messaging';
11
16
  import { CheckpointHeader, computeBlockHeadersHash } from '@aztec/stdlib/rollup';
12
17
  import { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
13
18
  import {
14
19
  type CheckpointGlobalVariables,
15
- ContentCommitment,
16
20
  type GlobalVariables,
17
21
  type ProcessedTx,
18
22
  StateReference,
@@ -31,28 +35,38 @@ import {
31
35
  * Finally completes the checkpoint by computing its header.
32
36
  */
33
37
  export class LightweightCheckpointBuilder {
34
- private readonly logger = createLogger('lightweight-checkpoint-builder');
38
+ private readonly logger: Logger;
35
39
 
36
40
  private lastArchives: AppendOnlyTreeSnapshot[] = [];
37
41
  private spongeBlob: SpongeBlob;
38
- private blocks: L2BlockNew[] = [];
42
+ private blocks: L2Block[] = [];
39
43
  private blobFields: Fr[] = [];
40
44
 
41
45
  constructor(
42
46
  public readonly checkpointNumber: CheckpointNumber,
43
47
  public readonly constants: CheckpointGlobalVariables,
48
+ public feeAssetPriceModifier: bigint,
44
49
  public readonly l1ToL2Messages: Fr[],
50
+ private readonly previousCheckpointOutHashes: Fr[],
45
51
  public readonly db: MerkleTreeWriteOperations,
52
+ bindings?: LoggerBindings,
46
53
  ) {
54
+ this.logger = createLogger('checkpoint-builder', {
55
+ ...bindings,
56
+ instanceId: `checkpoint-${checkpointNumber}`,
57
+ });
47
58
  this.spongeBlob = SpongeBlob.init();
48
- this.logger.debug('Starting new checkpoint', { constants, l1ToL2Messages });
59
+ this.logger.debug('Starting new checkpoint', { constants, l1ToL2Messages, feeAssetPriceModifier });
49
60
  }
50
61
 
51
62
  static async startNewCheckpoint(
52
63
  checkpointNumber: CheckpointNumber,
53
64
  constants: CheckpointGlobalVariables,
54
65
  l1ToL2Messages: Fr[],
66
+ previousCheckpointOutHashes: Fr[],
55
67
  db: MerkleTreeWriteOperations,
68
+ bindings?: LoggerBindings,
69
+ feeAssetPriceModifier: bigint = 0n,
56
70
  ): Promise<LightweightCheckpointBuilder> {
57
71
  // Insert l1-to-l2 messages into the tree.
58
72
  await db.appendLeaves(
@@ -60,7 +74,88 @@ export class LightweightCheckpointBuilder {
60
74
  padArrayEnd<Fr, number>(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP),
61
75
  );
62
76
 
63
- return new LightweightCheckpointBuilder(checkpointNumber, constants, l1ToL2Messages, db);
77
+ return new LightweightCheckpointBuilder(
78
+ checkpointNumber,
79
+ constants,
80
+ feeAssetPriceModifier,
81
+ l1ToL2Messages,
82
+ previousCheckpointOutHashes,
83
+ db,
84
+ bindings,
85
+ );
86
+ }
87
+
88
+ /**
89
+ * Resumes building a checkpoint from existing blocks. This is used for validator re-execution
90
+ * where blocks have already been built and their effects are already in the database.
91
+ * Unlike startNewCheckpoint, this does NOT append l1ToL2Messages to the tree since they
92
+ * were already added when the blocks were originally built.
93
+ */
94
+ static async resumeCheckpoint(
95
+ checkpointNumber: CheckpointNumber,
96
+ constants: CheckpointGlobalVariables,
97
+ feeAssetPriceModifier: bigint,
98
+ l1ToL2Messages: Fr[],
99
+ previousCheckpointOutHashes: Fr[],
100
+ db: MerkleTreeWriteOperations,
101
+ existingBlocks: L2Block[],
102
+ bindings?: LoggerBindings,
103
+ ): Promise<LightweightCheckpointBuilder> {
104
+ const builder = new LightweightCheckpointBuilder(
105
+ checkpointNumber,
106
+ constants,
107
+ feeAssetPriceModifier,
108
+ l1ToL2Messages,
109
+ previousCheckpointOutHashes,
110
+ db,
111
+ bindings,
112
+ );
113
+
114
+ builder.logger.debug('Resuming checkpoint from existing blocks', {
115
+ checkpointNumber,
116
+ numExistingBlocks: existingBlocks.length,
117
+ blockNumbers: existingBlocks.map(b => b.header.getBlockNumber()),
118
+ });
119
+
120
+ // Validate block order and consistency
121
+ for (let i = 1; i < existingBlocks.length; i++) {
122
+ const prev = existingBlocks[i - 1];
123
+ const curr = existingBlocks[i];
124
+ if (curr.number !== prev.number + 1) {
125
+ throw new Error(`Non-sequential block numbers in resumeCheckpoint: ${prev.number} -> ${curr.number}`);
126
+ }
127
+ if (!prev.archive.root.equals(curr.header.lastArchive.root)) {
128
+ throw new Error(`Archive root mismatch between blocks ${prev.number} and ${curr.number}`);
129
+ }
130
+ }
131
+
132
+ for (let i = 0; i < existingBlocks.length; i++) {
133
+ const block = existingBlocks[i];
134
+ const isFirstBlock = i === 0;
135
+
136
+ if (isFirstBlock) {
137
+ builder.lastArchives.push(block.header.lastArchive);
138
+ }
139
+
140
+ builder.lastArchives.push(block.archive);
141
+
142
+ const blockBlobFields = block.toBlobFields();
143
+ await builder.spongeBlob.absorb(blockBlobFields);
144
+ builder.blobFields.push(...blockBlobFields);
145
+
146
+ builder.blocks.push(block);
147
+ }
148
+
149
+ return builder;
150
+ }
151
+
152
+ /** Returns how many blocks have been added to this checkpoint so far */
153
+ public getBlockCount() {
154
+ return this.blocks.length;
155
+ }
156
+
157
+ public getBlocks() {
158
+ return this.blocks;
64
159
  }
65
160
 
66
161
  /**
@@ -71,7 +166,8 @@ export class LightweightCheckpointBuilder {
71
166
  globalVariables: GlobalVariables,
72
167
  txs: ProcessedTx[],
73
168
  opts: { insertTxsEffects?: boolean; expectedEndState?: StateReference } = {},
74
- ): Promise<L2BlockNew> {
169
+ ): Promise<{ block: L2Block; timings: Record<string, number> }> {
170
+ const timings: Record<string, number> = {};
75
171
  const isFirstBlock = this.blocks.length === 0;
76
172
 
77
173
  // Empty blocks are only allowed as the first block in a checkpoint
@@ -80,7 +176,9 @@ export class LightweightCheckpointBuilder {
80
176
  }
81
177
 
82
178
  if (isFirstBlock) {
83
- this.lastArchives.push(await getTreeSnapshot(MerkleTreeId.ARCHIVE, this.db));
179
+ const [msGetInitialArchive, initialArchive] = await elapsed(() => getTreeSnapshot(MerkleTreeId.ARCHIVE, this.db));
180
+ this.lastArchives.push(initialArchive);
181
+ timings.getInitialArchive = msGetInitialArchive;
84
182
  }
85
183
 
86
184
  const lastArchive = this.lastArchives.at(-1)!;
@@ -90,12 +188,17 @@ export class LightweightCheckpointBuilder {
90
188
  `Inserting side effects for ${txs.length} txs for block ${globalVariables.blockNumber} into db`,
91
189
  { txs: txs.map(tx => tx.hash.toString()) },
92
190
  );
191
+ let msInsertSideEffects = 0;
93
192
  for (const tx of txs) {
94
- await insertSideEffects(tx, this.db);
193
+ const [ms] = await elapsed(() => insertSideEffects(tx, this.db));
194
+ msInsertSideEffects += ms;
95
195
  }
196
+ timings.insertSideEffects = msInsertSideEffects;
96
197
  }
97
198
 
98
- const endState = await this.db.getStateReference();
199
+ const [msGetEndState, endState] = await elapsed(() => this.db.getStateReference());
200
+ timings.getEndState = msGetEndState;
201
+
99
202
  if (opts.expectedEndState && !endState.equals(opts.expectedEndState)) {
100
203
  this.logger.error('End state after processing txs does not match expected end state', {
101
204
  globalVariables: globalVariables.toInspect(),
@@ -105,26 +208,24 @@ export class LightweightCheckpointBuilder {
105
208
  throw new Error(`End state does not match expected end state when building block ${globalVariables.blockNumber}`);
106
209
  }
107
210
 
108
- const { header, body, blockBlobFields } = await buildHeaderAndBodyFromTxs(
109
- txs,
110
- lastArchive,
111
- endState,
112
- globalVariables,
113
- this.spongeBlob,
114
- isFirstBlock,
211
+ const [msBuildHeaderAndBody, { header, body, blockBlobFields }] = await elapsed(() =>
212
+ buildHeaderAndBodyFromTxs(txs, lastArchive, endState, globalVariables, this.spongeBlob, isFirstBlock),
115
213
  );
214
+ timings.buildHeaderAndBody = msBuildHeaderAndBody;
116
215
 
117
216
  header.state.validate();
118
217
 
119
218
  await this.db.updateArchive(header);
120
- const newArchive = await getTreeSnapshot(MerkleTreeId.ARCHIVE, this.db);
219
+ const [msUpdateArchive, newArchive] = await elapsed(() => getTreeSnapshot(MerkleTreeId.ARCHIVE, this.db));
220
+ timings.updateArchive = msUpdateArchive;
121
221
  this.lastArchives.push(newArchive);
122
222
 
123
- const indexWithinCheckpoint = this.blocks.length;
124
- const block = new L2BlockNew(newArchive, header, body, this.checkpointNumber, indexWithinCheckpoint);
223
+ const indexWithinCheckpoint = IndexWithinCheckpoint(this.blocks.length);
224
+ const block = new L2Block(newArchive, header, body, this.checkpointNumber, indexWithinCheckpoint);
125
225
  this.blocks.push(block);
126
226
 
127
- await this.spongeBlob.absorb(blockBlobFields);
227
+ const [msSpongeAbsorb] = await elapsed(() => this.spongeBlob.absorb(blockBlobFields));
228
+ timings.spongeAbsorb = msSpongeAbsorb;
128
229
  this.blobFields.push(...blockBlobFields);
129
230
 
130
231
  this.logger.debug(`Built block ${header.getBlockNumber()}`, {
@@ -135,7 +236,7 @@ export class LightweightCheckpointBuilder {
135
236
  txs: block.body.txEffects.map(tx => tx.txHash.toString()),
136
237
  });
137
238
 
138
- return block;
239
+ return { block, timings };
139
240
  }
140
241
 
141
242
  async completeCheckpoint(): Promise<Checkpoint> {
@@ -152,24 +253,27 @@ export class LightweightCheckpointBuilder {
152
253
 
153
254
  const newArchive = this.lastArchives[this.lastArchives.length - 1];
154
255
 
155
- const blobs = getBlobsPerL1Block(this.blobFields);
256
+ const blobs = await getBlobsPerL1Block(this.blobFields);
156
257
  const blobsHash = computeBlobsHashFromBlobs(blobs);
157
258
 
158
259
  const inHash = computeInHashFromL1ToL2Messages(this.l1ToL2Messages);
159
260
 
160
- const outHash = computeCheckpointOutHash(blocks.map(block => block.body.txEffects.map(tx => tx.l2ToL1Msgs)));
161
-
162
261
  const { slotNumber, coinbase, feeRecipient, gasFees } = this.constants;
262
+ const checkpointOutHash = computeCheckpointOutHash(
263
+ blocks.map(block => block.body.txEffects.map(tx => tx.l2ToL1Msgs)),
264
+ );
265
+ const epochOutHash = accumulateCheckpointOutHashes([...this.previousCheckpointOutHashes, checkpointOutHash]);
163
266
 
164
- // TODO(palla/mbps): Should we source this from the constants instead?
165
- // timestamp of a checkpoint is the timestamp of the last block in the checkpoint.
267
+ // All blocks in the checkpoint have the same timestamp
166
268
  const timestamp = blocks[blocks.length - 1].timestamp;
167
269
 
168
270
  const totalManaUsed = blocks.reduce((acc, block) => acc.add(block.header.totalManaUsed), Fr.ZERO);
169
271
 
170
272
  const header = CheckpointHeader.from({
171
273
  lastArchiveRoot: this.lastArchives[0].root,
172
- contentCommitment: new ContentCommitment(blobsHash, inHash, outHash),
274
+ blobsHash,
275
+ inHash,
276
+ epochOutHash,
173
277
  blockHeadersHash,
174
278
  slotNumber,
175
279
  timestamp,
@@ -179,15 +283,18 @@ export class LightweightCheckpointBuilder {
179
283
  totalManaUsed,
180
284
  });
181
285
 
182
- return new Checkpoint(newArchive, header, blocks, this.checkpointNumber);
286
+ return new Checkpoint(newArchive, header, blocks, this.checkpointNumber, this.feeAssetPriceModifier);
183
287
  }
184
288
 
185
289
  clone() {
186
290
  const clone = new LightweightCheckpointBuilder(
187
291
  this.checkpointNumber,
188
292
  this.constants,
293
+ this.feeAssetPriceModifier,
189
294
  [...this.l1ToL2Messages],
295
+ [...this.previousCheckpointOutHashes],
190
296
  this.db,
297
+ this.logger.getBindings(),
191
298
  );
192
299
  clone.lastArchives = [...this.lastArchives];
193
300
  clone.spongeBlob = this.spongeBlob.clone();
@@ -75,7 +75,8 @@ export async function getSimulator(
75
75
  logger?.info(
76
76
  `Using native ACVM at ${config.acvmBinaryPath} and working directory ${config.acvmWorkingDirectory}`,
77
77
  );
78
- return new NativeACVMSimulator(config.acvmWorkingDirectory, config.acvmBinaryPath);
78
+ const acvmLogger = logger?.createChild('acvm-native');
79
+ return new NativeACVMSimulator(config.acvmWorkingDirectory, config.acvmBinaryPath, undefined, acvmLogger);
79
80
  } catch {
80
81
  logger?.warn(`Failed to access ACVM at ${config.acvmBinaryPath}, falling back to WASM`);
81
82
  }
@@ -44,7 +44,9 @@ import { getEnvironmentConfig, getSimulator, makeCheckpointConstants, makeGlobal
44
44
  export class TestContext {
45
45
  private headers: Map<number, BlockHeader> = new Map();
46
46
  private checkpoints: Checkpoint[] = [];
47
+ private checkpointOutHashes: Fr[] = [];
47
48
  private nextCheckpointIndex = 0;
49
+ private nextCheckpointNumber = CheckpointNumber(1);
48
50
  private nextBlockNumber = 1;
49
51
  private epochNumber = 1;
50
52
  private feePayerBalance: Fr;
@@ -150,6 +152,7 @@ export class TestContext {
150
152
 
151
153
  public startNewEpoch() {
152
154
  this.checkpoints = [];
155
+ this.checkpointOutHashes = [];
153
156
  this.nextCheckpointIndex = 0;
154
157
  this.epochNumber++;
155
158
  }
@@ -187,7 +190,8 @@ export class TestContext {
187
190
  }
188
191
 
189
192
  const checkpointIndex = this.nextCheckpointIndex++;
190
- const checkpointNumber = CheckpointNumber(checkpointIndex + 1);
193
+ const checkpointNumber = this.nextCheckpointNumber;
194
+ this.nextCheckpointNumber++;
191
195
  const slotNumber = checkpointNumber * 15; // times an arbitrary number to make it different to the checkpoint number
192
196
 
193
197
  const constants = makeCheckpointConstants(slotNumber, constantOpts);
@@ -204,6 +208,8 @@ export class TestContext {
204
208
 
205
209
  const startBlockNumber = this.nextBlockNumber;
206
210
  const previousBlockHeader = this.getBlockHeader(BlockNumber(startBlockNumber - 1));
211
+ // All blocks in the same slot/checkpoint share the same timestamp.
212
+ const timestamp = BigInt(slotNumber * 26);
207
213
 
208
214
  // Build global variables.
209
215
  const blockGlobalVariables = times(numBlocks, i =>
@@ -211,6 +217,7 @@ export class TestContext {
211
217
  coinbase: constants.coinbase,
212
218
  feeRecipient: constants.feeRecipient,
213
219
  gasFees: constants.gasFees,
220
+ timestamp,
214
221
  }),
215
222
  );
216
223
  this.nextBlockNumber += numBlocks;
@@ -240,10 +247,12 @@ export class TestContext {
240
247
  });
241
248
 
242
249
  const cleanFork = await this.worldState.fork();
250
+ const previousCheckpointOutHashes = this.checkpointOutHashes;
243
251
  const builder = await LightweightCheckpointBuilder.startNewCheckpoint(
244
252
  checkpointNumber,
245
- constants,
253
+ { ...constants, timestamp },
246
254
  l1ToL2Messages,
255
+ previousCheckpointOutHashes,
247
256
  cleanFork,
248
257
  );
249
258
 
@@ -253,7 +262,7 @@ export class TestContext {
253
262
  const txs = blockTxs[i];
254
263
  const state = blockEndStates[i];
255
264
 
256
- const block = await builder.addBlock(blockGlobalVariables[i], txs, {
265
+ const { block } = await builder.addBlock(blockGlobalVariables[i], txs, {
257
266
  expectedEndState: state,
258
267
  insertTxsEffects: true,
259
268
  });
@@ -269,6 +278,7 @@ export class TestContext {
269
278
 
270
279
  const checkpoint = await builder.completeCheckpoint();
271
280
  this.checkpoints.push(checkpoint);
281
+ this.checkpointOutHashes.push(checkpoint.getCheckpointOutHash());
272
282
 
273
283
  return {
274
284
  constants,
@@ -99,7 +99,7 @@ export const insertSideEffectsAndBuildBaseRollupHints = runInSpan(
99
99
 
100
100
  const blockHash = await tx.data.constants.anchorBlockHeader.hash();
101
101
  const anchorBlockArchiveSiblingPath = (
102
- await getMembershipWitnessFor(blockHash, MerkleTreeId.ARCHIVE, ARCHIVE_HEIGHT, db)
102
+ await getMembershipWitnessFor(blockHash.toFr(), MerkleTreeId.ARCHIVE, ARCHIVE_HEIGHT, db)
103
103
  ).siblingPath;
104
104
 
105
105
  const contractClassLogsFields = makeTuple(
@@ -253,8 +253,8 @@ export function getPublicChonkVerifierPrivateInputsFromTx(tx: Tx | ProcessedTx,
253
253
  // Build "hints" as the private inputs for the checkpoint root rollup circuit.
254
254
  // The `blobCommitments` will be accumulated and checked in the root rollup against the `finalBlobChallenges`.
255
255
  // The `blobsHash` will be validated on L1 against the submitted blob data.
256
- export const buildBlobHints = (blobFields: Fr[]) => {
257
- const blobs = getBlobsPerL1Block(blobFields);
256
+ export const buildBlobHints = async (blobFields: Fr[]) => {
257
+ const blobs = await getBlobsPerL1Block(blobFields);
258
258
  const blobCommitments = getBlobCommitmentsFromBlobs(blobs);
259
259
  const blobsHash = computeBlobsHashFromBlobs(blobs);
260
260
  return { blobCommitments, blobs, blobsHash };
@@ -282,7 +282,7 @@ export const buildHeaderFromCircuitOutputs = runInSpan(
282
282
  chainId: constants.chainId,
283
283
  version: constants.version,
284
284
  blockNumber: BlockNumber(blockRootRollupOutput.previousArchive.nextAvailableLeafIndex),
285
- timestamp: blockRootRollupOutput.endTimestamp,
285
+ timestamp: blockRootRollupOutput.timestamp,
286
286
  slotNumber: constants.slotNumber,
287
287
  coinbase: constants.coinbase,
288
288
  feeRecipient: constants.feeRecipient,
@@ -55,6 +55,7 @@ export class BlockProvingState {
55
55
  | ProofState<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
56
56
  | undefined;
57
57
  private builtBlockHeader: BlockHeader | undefined;
58
+ private builtArchive: AppendOnlyTreeSnapshot | undefined;
58
59
  private endState: StateReference | undefined;
59
60
  private endSpongeBlob: SpongeBlob | undefined;
60
61
  private txs: TxProvingState[] = [];
@@ -232,6 +233,14 @@ export class BlockProvingState {
232
233
  return this.builtBlockHeader;
233
234
  }
234
235
 
236
+ public setBuiltArchive(archive: AppendOnlyTreeSnapshot) {
237
+ this.builtArchive = archive;
238
+ }
239
+
240
+ public getBuiltArchive() {
241
+ return this.builtArchive;
242
+ }
243
+
235
244
  public getStartSpongeBlob() {
236
245
  return this.startSpongeBlob;
237
246
  }