@aztec/prover-client 0.0.1-commit.5daedc8 → 0.0.1-commit.6a729f7

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 (107) hide show
  1. package/dest/config.d.ts +2 -2
  2. package/dest/config.d.ts.map +1 -1
  3. package/dest/config.js +1 -1
  4. package/dest/light/index.d.ts +2 -0
  5. package/dest/light/index.d.ts.map +1 -0
  6. package/dest/light/index.js +1 -0
  7. package/dest/light/lightweight_checkpoint_builder.d.ts +33 -14
  8. package/dest/light/lightweight_checkpoint_builder.d.ts.map +1 -1
  9. package/dest/light/lightweight_checkpoint_builder.js +116 -23
  10. package/dest/mocks/fixtures.d.ts +1 -1
  11. package/dest/mocks/fixtures.d.ts.map +1 -1
  12. package/dest/mocks/fixtures.js +6 -5
  13. package/dest/mocks/test_context.d.ts +5 -3
  14. package/dest/mocks/test_context.d.ts.map +1 -1
  15. package/dest/mocks/test_context.js +25 -11
  16. package/dest/orchestrator/block-building-helpers.d.ts +4 -4
  17. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
  18. package/dest/orchestrator/block-building-helpers.js +5 -4
  19. package/dest/orchestrator/block-proving-state.d.ts +5 -4
  20. package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
  21. package/dest/orchestrator/block-proving-state.js +1 -1
  22. package/dest/orchestrator/checkpoint-proving-state.d.ts +20 -6
  23. package/dest/orchestrator/checkpoint-proving-state.d.ts.map +1 -1
  24. package/dest/orchestrator/checkpoint-proving-state.js +40 -5
  25. package/dest/orchestrator/epoch-proving-state.d.ts +8 -7
  26. package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
  27. package/dest/orchestrator/epoch-proving-state.js +36 -2
  28. package/dest/orchestrator/orchestrator.d.ts +23 -8
  29. package/dest/orchestrator/orchestrator.d.ts.map +1 -1
  30. package/dest/orchestrator/orchestrator.js +540 -137
  31. package/dest/orchestrator/orchestrator_metrics.d.ts +1 -3
  32. package/dest/orchestrator/orchestrator_metrics.d.ts.map +1 -1
  33. package/dest/orchestrator/orchestrator_metrics.js +2 -15
  34. package/dest/orchestrator/tx-proving-state.d.ts +6 -5
  35. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
  36. package/dest/orchestrator/tx-proving-state.js +8 -8
  37. package/dest/prover-client/factory.d.ts +3 -3
  38. package/dest/prover-client/factory.d.ts.map +1 -1
  39. package/dest/prover-client/prover-client.d.ts +3 -3
  40. package/dest/prover-client/prover-client.d.ts.map +1 -1
  41. package/dest/prover-client/prover-client.js +7 -4
  42. package/dest/prover-client/server-epoch-prover.d.ts +5 -5
  43. package/dest/prover-client/server-epoch-prover.d.ts.map +1 -1
  44. package/dest/proving_broker/broker_prover_facade.d.ts +7 -5
  45. package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
  46. package/dest/proving_broker/broker_prover_facade.js +6 -13
  47. package/dest/proving_broker/config.d.ts +6 -2
  48. package/dest/proving_broker/config.d.ts.map +1 -1
  49. package/dest/proving_broker/config.js +8 -2
  50. package/dest/proving_broker/fixtures.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 +1 -1
  55. package/dest/proving_broker/proving_broker.d.ts.map +1 -1
  56. package/dest/proving_broker/proving_broker.js +4 -10
  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 +1 -1
  61. package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -1
  62. package/dest/proving_broker/proving_broker_instrumentation.js +15 -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 +8 -6
  66. package/dest/test/mock_proof_store.d.ts +3 -3
  67. package/dest/test/mock_proof_store.d.ts.map +1 -1
  68. package/dest/test/mock_prover.d.ts +2 -2
  69. package/dest/test/mock_prover.d.ts.map +1 -1
  70. package/dest/test/mock_prover.js +4 -4
  71. package/package.json +20 -19
  72. package/src/config.ts +1 -1
  73. package/src/light/index.ts +1 -0
  74. package/src/light/lightweight_checkpoint_builder.ts +178 -31
  75. package/src/mocks/fixtures.ts +6 -5
  76. package/src/mocks/test_context.ts +25 -10
  77. package/src/orchestrator/block-building-helpers.ts +5 -4
  78. package/src/orchestrator/block-proving-state.ts +3 -2
  79. package/src/orchestrator/checkpoint-proving-state.ts +56 -8
  80. package/src/orchestrator/epoch-proving-state.ts +63 -12
  81. package/src/orchestrator/orchestrator.ts +138 -121
  82. package/src/orchestrator/orchestrator_metrics.ts +2 -25
  83. package/src/orchestrator/tx-proving-state.ts +10 -14
  84. package/src/prover-client/factory.ts +6 -2
  85. package/src/prover-client/prover-client.ts +25 -15
  86. package/src/prover-client/server-epoch-prover.ts +4 -4
  87. package/src/proving_broker/broker_prover_facade.ts +10 -17
  88. package/src/proving_broker/config.ts +10 -1
  89. package/src/proving_broker/fixtures.ts +1 -1
  90. package/src/proving_broker/proving_agent.ts +6 -19
  91. package/src/proving_broker/proving_broker.ts +4 -8
  92. package/src/proving_broker/proving_broker_database/persisted.ts +15 -1
  93. package/src/proving_broker/proving_broker_instrumentation.ts +14 -35
  94. package/src/proving_broker/proving_job_controller.ts +11 -6
  95. package/src/test/mock_prover.ts +2 -14
  96. package/dest/block-factory/index.d.ts +0 -2
  97. package/dest/block-factory/index.d.ts.map +0 -1
  98. package/dest/block-factory/index.js +0 -1
  99. package/dest/block-factory/light.d.ts +0 -38
  100. package/dest/block-factory/light.d.ts.map +0 -1
  101. package/dest/block-factory/light.js +0 -108
  102. package/dest/proving_broker/proving_agent_instrumentation.d.ts +0 -8
  103. package/dest/proving_broker/proving_agent_instrumentation.d.ts.map +0 -1
  104. package/dest/proving_broker/proving_agent_instrumentation.js +0 -16
  105. package/src/block-factory/index.ts +0 -1
  106. package/src/block-factory/light.ts +0 -137
  107. package/src/proving_broker/proving_agent_instrumentation.ts +0 -21
package/dest/config.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { ACVMConfig, BBConfig } from '@aztec/bb-prover';
2
2
  import { type ConfigMappingsType } from '@aztec/foundation/config';
3
- import { type ProverConfig } from '@aztec/stdlib/interfaces/server';
3
+ import { type ProverConfig } from '@aztec/stdlib/interfaces/prover-config';
4
4
  import { type ProverAgentConfig, type ProverBrokerConfig } from './proving_broker/config.js';
5
5
  /** The prover configuration as defined by the user. */
6
6
  export type ProverClientUserConfig = ProverConfig & ProverAgentConfig & ProverBrokerConfig & BBConfig & ACVMConfig;
@@ -14,4 +14,4 @@ export declare const proverClientConfigMappings: ConfigMappingsType<ProverClient
14
14
  * @returns The prover configuration.
15
15
  */
16
16
  export declare function getProverEnvVars(): ProverClientUserConfig;
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsS0FBSyxrQkFBa0IsRUFJeEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsS0FBSyxZQUFZLEVBQXdCLE1BQU0saUNBQWlDLENBQUM7QUFFMUYsT0FBTyxFQUNMLEtBQUssaUJBQWlCLEVBQ3RCLEtBQUssa0JBQWtCLEVBR3hCLE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsdURBQXVEO0FBQ3ZELE1BQU0sTUFBTSxzQkFBc0IsR0FBRyxZQUFZLEdBQUcsaUJBQWlCLEdBQUcsa0JBQWtCLEdBQUcsUUFBUSxHQUFHLFVBQVUsQ0FBQztBQUVuSCxpRUFBaUU7QUFDakUsTUFBTSxNQUFNLGtCQUFrQixHQUFHLHNCQUFzQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUU3RyxlQUFPLE1BQU0sZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FnQ3RFLENBQUM7QUFFRixlQUFPLE1BQU0sMEJBQTBCLEVBQUUsa0JBQWtCLENBQUMsc0JBQXNCLENBS2pGLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsd0JBQWdCLGdCQUFnQixJQUFJLHNCQUFzQixDQUV6RCJ9
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsS0FBSyxrQkFBa0IsRUFJeEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsS0FBSyxZQUFZLEVBQXdCLE1BQU0sd0NBQXdDLENBQUM7QUFFakcsT0FBTyxFQUNMLEtBQUssaUJBQWlCLEVBQ3RCLEtBQUssa0JBQWtCLEVBR3hCLE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsdURBQXVEO0FBQ3ZELE1BQU0sTUFBTSxzQkFBc0IsR0FBRyxZQUFZLEdBQUcsaUJBQWlCLEdBQUcsa0JBQWtCLEdBQUcsUUFBUSxHQUFHLFVBQVUsQ0FBQztBQUVuSCxpRUFBaUU7QUFDakUsTUFBTSxNQUFNLGtCQUFrQixHQUFHLHNCQUFzQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUU3RyxlQUFPLE1BQU0sZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FnQ3RFLENBQUM7QUFFRixlQUFPLE1BQU0sMEJBQTBCLEVBQUUsa0JBQWtCLENBQUMsc0JBQXNCLENBS2pGLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsd0JBQWdCLGdCQUFnQixJQUFJLHNCQUFzQixDQUV6RCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,YAAY,EAAwB,MAAM,iCAAiC,CAAC;AAE1F,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAGxB,MAAM,4BAA4B,CAAC;AAEpC,uDAAuD;AACvD,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEnH,iEAAiE;AACjE,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,GAAG,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC,CAAC;AAE7G,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,CAAC,QAAQ,GAAG,UAAU,CAgCtE,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,kBAAkB,CAAC,sBAAsB,CAKjF,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,sBAAsB,CAEzD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,YAAY,EAAwB,MAAM,wCAAwC,CAAC;AAEjG,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAGxB,MAAM,4BAA4B,CAAC;AAEpC,uDAAuD;AACvD,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEnH,iEAAiE;AACjE,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,GAAG,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC,CAAC;AAE7G,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,CAAC,QAAQ,GAAG,UAAU,CAgCtE,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,kBAAkB,CAAC,sBAAsB,CAKjF,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,sBAAsB,CAEzD"}
package/dest/config.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { booleanConfigHelper, getConfigFromMappings, numberConfigHelper } from '@aztec/foundation/config';
2
- import { proverConfigMappings } from '@aztec/stdlib/interfaces/server';
2
+ import { proverConfigMappings } from '@aztec/stdlib/interfaces/prover-config';
3
3
  import { proverAgentConfigMappings, proverBrokerConfigMappings } from './proving_broker/config.js';
4
4
  export const bbConfigMappings = {
5
5
  acvmWorkingDirectory: {
@@ -0,0 +1,2 @@
1
+ export * from './lightweight_checkpoint_builder.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWdodC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFDQUFxQyxDQUFDIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/light/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './lightweight_checkpoint_builder.js';
@@ -1,28 +1,47 @@
1
- import { Fr } from '@aztec/foundation/fields';
2
- import { L2BlockNew } from '@aztec/stdlib/block';
1
+ import { type CheckpointNumber } from '@aztec/foundation/branded-types';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
+ import { type LoggerBindings } from '@aztec/foundation/log';
4
+ import { L2Block } from '@aztec/stdlib/block';
3
5
  import { Checkpoint } from '@aztec/stdlib/checkpoint';
4
6
  import type { MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
5
- import { CheckpointConstantData } from '@aztec/stdlib/rollup';
6
- import { type GlobalVariables, type ProcessedTx, StateReference } from '@aztec/stdlib/tx';
7
+ import { type CheckpointGlobalVariables, type GlobalVariables, type ProcessedTx, StateReference } from '@aztec/stdlib/tx';
7
8
  /**
8
9
  * Builds a checkpoint and its header and the blocks in it from a set of processed tx without running any circuits.
9
10
  *
10
- * It updates the l1-to-l2 message tree when starting a new checkpoint, inserts the side effects to note hash,
11
- * nullifier, and public data trees, then updates the archive tree when a block is added.
11
+ * It updates the l1-to-l2 message tree when starting a new checkpoint, and then updates the archive tree when each block is added.
12
+ * Finally completes the checkpoint by computing its header.
12
13
  */
13
14
  export declare class LightweightCheckpointBuilder {
14
- private checkpointNumber;
15
- private constants;
16
- private l1ToL2Messages;
17
- private db;
15
+ readonly checkpointNumber: CheckpointNumber;
16
+ readonly constants: CheckpointGlobalVariables;
17
+ readonly l1ToL2Messages: Fr[];
18
+ private readonly previousCheckpointOutHashes;
19
+ readonly db: MerkleTreeWriteOperations;
18
20
  private readonly logger;
19
21
  private lastArchives;
20
22
  private spongeBlob;
21
23
  private blocks;
22
24
  private blobFields;
23
- constructor(checkpointNumber: number, constants: CheckpointConstantData, l1ToL2Messages: Fr[], db: MerkleTreeWriteOperations);
24
- static startNewCheckpoint(checkpointNumber: number, constants: CheckpointConstantData, l1ToL2Messages: Fr[], db: MerkleTreeWriteOperations): Promise<LightweightCheckpointBuilder>;
25
- addBlock(globalVariables: GlobalVariables, endState: StateReference, txs: ProcessedTx[]): Promise<L2BlockNew>;
25
+ constructor(checkpointNumber: CheckpointNumber, constants: CheckpointGlobalVariables, l1ToL2Messages: Fr[], previousCheckpointOutHashes: Fr[], db: MerkleTreeWriteOperations, bindings?: LoggerBindings);
26
+ static startNewCheckpoint(checkpointNumber: CheckpointNumber, constants: CheckpointGlobalVariables, l1ToL2Messages: Fr[], previousCheckpointOutHashes: Fr[], db: MerkleTreeWriteOperations, bindings?: LoggerBindings): Promise<LightweightCheckpointBuilder>;
27
+ /**
28
+ * Resumes building a checkpoint from existing blocks. This is used for validator re-execution
29
+ * where blocks have already been built and their effects are already in the database.
30
+ * Unlike startNewCheckpoint, this does NOT append l1ToL2Messages to the tree since they
31
+ * were already added when the blocks were originally built.
32
+ */
33
+ static resumeCheckpoint(checkpointNumber: CheckpointNumber, constants: CheckpointGlobalVariables, l1ToL2Messages: Fr[], previousCheckpointOutHashes: Fr[], db: MerkleTreeWriteOperations, existingBlocks: L2Block[], bindings?: LoggerBindings): Promise<LightweightCheckpointBuilder>;
34
+ /** Returns how many blocks have been added to this checkpoint so far */
35
+ getBlockCount(): number;
36
+ /**
37
+ * Adds a new block to the checkpoint. The tx effects must have already been inserted into the db if
38
+ * this is called after tx processing, if that's not the case, then set `insertTxsEffects` to true.
39
+ */
40
+ addBlock(globalVariables: GlobalVariables, txs: ProcessedTx[], opts?: {
41
+ insertTxsEffects?: boolean;
42
+ expectedEndState?: StateReference;
43
+ }): Promise<L2Block>;
26
44
  completeCheckpoint(): Promise<Checkpoint>;
45
+ clone(): LightweightCheckpointBuilder;
27
46
  }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHR3ZWlnaHRfY2hlY2twb2ludF9idWlsZGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGlnaHQvbGlnaHR3ZWlnaHRfY2hlY2twb2ludF9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFakYsT0FBTyxFQUFFLHNCQUFzQixFQUE2QyxNQUFNLHNCQUFzQixDQUFDO0FBRXpHLE9BQU8sRUFBcUIsS0FBSyxlQUFlLEVBQUUsS0FBSyxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFRN0c7Ozs7O0dBS0c7QUFDSCxxQkFBYSw0QkFBNEI7SUFRckMsT0FBTyxDQUFDLGdCQUFnQjtJQUN4QixPQUFPLENBQUMsU0FBUztJQUNqQixPQUFPLENBQUMsY0FBYztJQUN0QixPQUFPLENBQUMsRUFBRTtJQVZaLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFrRDtJQUN6RSxPQUFPLENBQUMsWUFBWSxDQUFnQztJQUNwRCxPQUFPLENBQUMsVUFBVSxDQUFhO0lBQy9CLE9BQU8sQ0FBQyxNQUFNLENBQW9CO0lBQ2xDLE9BQU8sQ0FBQyxVQUFVLENBQVk7SUFFOUIsWUFDVSxnQkFBZ0IsRUFBRSxNQUFNLEVBQ3hCLFNBQVMsRUFBRSxzQkFBc0IsRUFDakMsY0FBYyxFQUFFLEVBQUUsRUFBRSxFQUNwQixFQUFFLEVBQUUseUJBQXlCLEVBSXRDO0lBRUQsT0FBYSxrQkFBa0IsQ0FDN0IsZ0JBQWdCLEVBQUUsTUFBTSxFQUN4QixTQUFTLEVBQUUsc0JBQXNCLEVBQ2pDLGNBQWMsRUFBRSxFQUFFLEVBQUUsRUFDcEIsRUFBRSxFQUFFLHlCQUF5QixHQUM1QixPQUFPLENBQUMsNEJBQTRCLENBQUMsQ0FRdkM7SUFFSyxRQUFRLENBQUMsZUFBZSxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBd0NsSDtJQUVLLGtCQUFrQixJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0F5QzlDO0NBQ0YifQ==
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHR3ZWlnaHRfY2hlY2twb2ludF9idWlsZGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGlnaHQvbGlnaHR3ZWlnaHRfY2hlY2twb2ludF9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUF5QixNQUFNLGlDQUFpQyxDQUFDO0FBRS9GLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQWUsS0FBSyxjQUFjLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDdkYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBUWpGLE9BQU8sRUFDTCxLQUFLLHlCQUF5QixFQUM5QixLQUFLLGVBQWUsRUFDcEIsS0FBSyxXQUFXLEVBQ2hCLGNBQWMsRUFDZixNQUFNLGtCQUFrQixDQUFDO0FBUTFCOzs7OztHQUtHO0FBQ0gscUJBQWEsNEJBQTRCO2FBU3JCLGdCQUFnQixFQUFFLGdCQUFnQjthQUNsQyxTQUFTLEVBQUUseUJBQXlCO2FBQ3BDLGNBQWMsRUFBRSxFQUFFLEVBQUU7SUFDcEMsT0FBTyxDQUFDLFFBQVEsQ0FBQywyQkFBMkI7YUFDNUIsRUFBRSxFQUFFLHlCQUF5QjtJQVovQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBUztJQUVoQyxPQUFPLENBQUMsWUFBWSxDQUFnQztJQUNwRCxPQUFPLENBQUMsVUFBVSxDQUFhO0lBQy9CLE9BQU8sQ0FBQyxNQUFNLENBQWlCO0lBQy9CLE9BQU8sQ0FBQyxVQUFVLENBQVk7SUFFOUIsWUFDa0IsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLFNBQVMsRUFBRSx5QkFBeUIsRUFDcEMsY0FBYyxFQUFFLEVBQUUsRUFBRSxFQUNuQiwyQkFBMkIsRUFBRSxFQUFFLEVBQUUsRUFDbEMsRUFBRSxFQUFFLHlCQUF5QixFQUM3QyxRQUFRLENBQUMsRUFBRSxjQUFjLEVBUTFCO0lBRUQsT0FBYSxrQkFBa0IsQ0FDN0IsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLFNBQVMsRUFBRSx5QkFBeUIsRUFDcEMsY0FBYyxFQUFFLEVBQUUsRUFBRSxFQUNwQiwyQkFBMkIsRUFBRSxFQUFFLEVBQUUsRUFDakMsRUFBRSxFQUFFLHlCQUF5QixFQUM3QixRQUFRLENBQUMsRUFBRSxjQUFjLEdBQ3hCLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxDQWV2QztJQUVEOzs7OztPQUtHO0lBQ0gsT0FBYSxnQkFBZ0IsQ0FDM0IsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLFNBQVMsRUFBRSx5QkFBeUIsRUFDcEMsY0FBYyxFQUFFLEVBQUUsRUFBRSxFQUNwQiwyQkFBMkIsRUFBRSxFQUFFLEVBQUUsRUFDakMsRUFBRSxFQUFFLHlCQUF5QixFQUM3QixjQUFjLEVBQUUsT0FBTyxFQUFFLEVBQ3pCLFFBQVEsQ0FBQyxFQUFFLGNBQWMsR0FDeEIsT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBOEN2QztJQUVELHdFQUF3RTtJQUNqRSxhQUFhLFdBRW5CO0lBRUQ7OztPQUdHO0lBQ1UsUUFBUSxDQUNuQixlQUFlLEVBQUUsZUFBZSxFQUNoQyxHQUFHLEVBQUUsV0FBVyxFQUFFLEVBQ2xCLElBQUksR0FBRTtRQUFFLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxDQUFDO1FBQUMsZ0JBQWdCLENBQUMsRUFBRSxjQUFjLENBQUE7S0FBTyxHQUMzRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBaUVsQjtJQUVLLGtCQUFrQixJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0E4QzlDO0lBRUQsS0FBSyxpQ0FjSjtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"lightweight_checkpoint_builder.d.ts","sourceRoot":"","sources":["../../src/light/lightweight_checkpoint_builder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEjF,OAAO,EAAE,sBAAsB,EAA6C,MAAM,sBAAsB,CAAC;AAEzG,OAAO,EAAqB,KAAK,eAAe,EAAE,KAAK,WAAW,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAQ7G;;;;;GAKG;AACH,qBAAa,4BAA4B;IAQrC,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,EAAE;IAVZ,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkD;IACzE,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,UAAU,CAAY;IAE9B,YACU,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,sBAAsB,EACjC,cAAc,EAAE,EAAE,EAAE,EACpB,EAAE,EAAE,yBAAyB,EAItC;IAED,OAAa,kBAAkB,CAC7B,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,sBAAsB,EACjC,cAAc,EAAE,EAAE,EAAE,EACpB,EAAE,EAAE,yBAAyB,GAC5B,OAAO,CAAC,4BAA4B,CAAC,CAQvC;IAEK,QAAQ,CAAC,eAAe,EAAE,eAAe,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAwClH;IAEK,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC,CAyC9C;CACF"}
1
+ {"version":3,"file":"lightweight_checkpoint_builder.d.ts","sourceRoot":"","sources":["../../src/light/lightweight_checkpoint_builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,gBAAgB,EAAyB,MAAM,iCAAiC,CAAC;AAE/F,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAQjF,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,cAAc,EACf,MAAM,kBAAkB,CAAC;AAQ1B;;;;;GAKG;AACH,qBAAa,4BAA4B;aASrB,gBAAgB,EAAE,gBAAgB;aAClC,SAAS,EAAE,yBAAyB;aACpC,cAAc,EAAE,EAAE,EAAE;IACpC,OAAO,CAAC,QAAQ,CAAC,2BAA2B;aAC5B,EAAE,EAAE,yBAAyB;IAZ/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,UAAU,CAAY;IAE9B,YACkB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,yBAAyB,EACpC,cAAc,EAAE,EAAE,EAAE,EACnB,2BAA2B,EAAE,EAAE,EAAE,EAClC,EAAE,EAAE,yBAAyB,EAC7C,QAAQ,CAAC,EAAE,cAAc,EAQ1B;IAED,OAAa,kBAAkB,CAC7B,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,yBAAyB,EACpC,cAAc,EAAE,EAAE,EAAE,EACpB,2BAA2B,EAAE,EAAE,EAAE,EACjC,EAAE,EAAE,yBAAyB,EAC7B,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,4BAA4B,CAAC,CAevC;IAED;;;;;OAKG;IACH,OAAa,gBAAgB,CAC3B,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,yBAAyB,EACpC,cAAc,EAAE,EAAE,EAAE,EACpB,2BAA2B,EAAE,EAAE,EAAE,EACjC,EAAE,EAAE,yBAAyB,EAC7B,cAAc,EAAE,OAAO,EAAE,EACzB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,4BAA4B,CAAC,CA8CvC;IAED,wEAAwE;IACjE,aAAa,WAEnB;IAED;;;OAGG;IACU,QAAQ,CACnB,eAAe,EAAE,eAAe,EAChC,GAAG,EAAE,WAAW,EAAE,EAClB,IAAI,GAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAAC,gBAAgB,CAAC,EAAE,cAAc,CAAA;KAAO,GAC3E,OAAO,CAAC,OAAO,CAAC,CAiElB;IAEK,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC,CA8C9C;IAED,KAAK,iCAcJ;CACF"}
@@ -1,64 +1,132 @@
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 { IndexWithinCheckpoint } from '@aztec/foundation/branded-types';
3
4
  import { padArrayEnd } from '@aztec/foundation/collection';
4
- import { Fr } from '@aztec/foundation/fields';
5
+ import { Fr } from '@aztec/foundation/curves/bn254';
5
6
  import { createLogger } from '@aztec/foundation/log';
6
- import { L2BlockNew } from '@aztec/stdlib/block';
7
+ import { L2Block } from '@aztec/stdlib/block';
7
8
  import { Checkpoint } from '@aztec/stdlib/checkpoint';
8
- import { computeCheckpointOutHash, computeInHashFromL1ToL2Messages } from '@aztec/stdlib/messaging';
9
+ import { accumulateCheckpointOutHashes, computeCheckpointOutHash, computeInHashFromL1ToL2Messages } from '@aztec/stdlib/messaging';
9
10
  import { CheckpointHeader, computeBlockHeadersHash } from '@aztec/stdlib/rollup';
10
11
  import { MerkleTreeId } from '@aztec/stdlib/trees';
11
- import { ContentCommitment } from '@aztec/stdlib/tx';
12
12
  import { buildHeaderAndBodyFromTxs, getTreeSnapshot, insertSideEffects } from '../orchestrator/block-building-helpers.js';
13
13
  /**
14
14
  * Builds a checkpoint and its header and the blocks in it from a set of processed tx without running any circuits.
15
15
  *
16
- * It updates the l1-to-l2 message tree when starting a new checkpoint, inserts the side effects to note hash,
17
- * nullifier, and public data trees, then updates the archive tree when a block is added.
16
+ * It updates the l1-to-l2 message tree when starting a new checkpoint, and then updates the archive tree when each block is added.
17
+ * Finally completes the checkpoint by computing its header.
18
18
  */ export class LightweightCheckpointBuilder {
19
19
  checkpointNumber;
20
20
  constants;
21
21
  l1ToL2Messages;
22
+ previousCheckpointOutHashes;
22
23
  db;
23
24
  logger;
24
25
  lastArchives;
25
26
  spongeBlob;
26
27
  blocks;
27
28
  blobFields;
28
- constructor(checkpointNumber, constants, l1ToL2Messages, db){
29
+ constructor(checkpointNumber, constants, l1ToL2Messages, previousCheckpointOutHashes, db, bindings){
29
30
  this.checkpointNumber = checkpointNumber;
30
31
  this.constants = constants;
31
32
  this.l1ToL2Messages = l1ToL2Messages;
33
+ this.previousCheckpointOutHashes = previousCheckpointOutHashes;
32
34
  this.db = db;
33
- this.logger = createLogger('lightweight-checkpoint-builder');
34
35
  this.lastArchives = [];
35
36
  this.blocks = [];
36
37
  this.blobFields = [];
38
+ this.logger = createLogger('checkpoint-builder', {
39
+ ...bindings,
40
+ instanceId: `checkpoint-${checkpointNumber}`
41
+ });
37
42
  this.spongeBlob = SpongeBlob.init();
38
43
  this.logger.debug('Starting new checkpoint', {
39
- constants: constants.toInspect(),
44
+ constants,
40
45
  l1ToL2Messages
41
46
  });
42
47
  }
43
- static async startNewCheckpoint(checkpointNumber, constants, l1ToL2Messages, db) {
48
+ static async startNewCheckpoint(checkpointNumber, constants, l1ToL2Messages, previousCheckpointOutHashes, db, bindings) {
44
49
  // Insert l1-to-l2 messages into the tree.
45
50
  await db.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, padArrayEnd(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP));
46
- return new LightweightCheckpointBuilder(checkpointNumber, constants, l1ToL2Messages, db);
51
+ return new LightweightCheckpointBuilder(checkpointNumber, constants, l1ToL2Messages, previousCheckpointOutHashes, db, bindings);
52
+ }
53
+ /**
54
+ * Resumes building a checkpoint from existing blocks. This is used for validator re-execution
55
+ * where blocks have already been built and their effects are already in the database.
56
+ * Unlike startNewCheckpoint, this does NOT append l1ToL2Messages to the tree since they
57
+ * were already added when the blocks were originally built.
58
+ */ static async resumeCheckpoint(checkpointNumber, constants, l1ToL2Messages, previousCheckpointOutHashes, db, existingBlocks, bindings) {
59
+ const builder = new LightweightCheckpointBuilder(checkpointNumber, constants, l1ToL2Messages, previousCheckpointOutHashes, db, bindings);
60
+ builder.logger.debug('Resuming checkpoint from existing blocks', {
61
+ checkpointNumber,
62
+ numExistingBlocks: existingBlocks.length,
63
+ blockNumbers: existingBlocks.map((b)=>b.header.getBlockNumber())
64
+ });
65
+ // Validate block order and consistency
66
+ for(let i = 1; i < existingBlocks.length; i++){
67
+ const prev = existingBlocks[i - 1];
68
+ const curr = existingBlocks[i];
69
+ if (curr.number !== prev.number + 1) {
70
+ throw new Error(`Non-sequential block numbers in resumeCheckpoint: ${prev.number} -> ${curr.number}`);
71
+ }
72
+ if (!prev.archive.root.equals(curr.header.lastArchive.root)) {
73
+ throw new Error(`Archive root mismatch between blocks ${prev.number} and ${curr.number}`);
74
+ }
75
+ }
76
+ for(let i = 0; i < existingBlocks.length; i++){
77
+ const block = existingBlocks[i];
78
+ const isFirstBlock = i === 0;
79
+ if (isFirstBlock) {
80
+ builder.lastArchives.push(block.header.lastArchive);
81
+ }
82
+ builder.lastArchives.push(block.archive);
83
+ const blockBlobFields = block.toBlobFields();
84
+ await builder.spongeBlob.absorb(blockBlobFields);
85
+ builder.blobFields.push(...blockBlobFields);
86
+ builder.blocks.push(block);
87
+ }
88
+ return builder;
47
89
  }
48
- async addBlock(globalVariables, endState, txs) {
90
+ /** Returns how many blocks have been added to this checkpoint so far */ getBlockCount() {
91
+ return this.blocks.length;
92
+ }
93
+ /**
94
+ * Adds a new block to the checkpoint. The tx effects must have already been inserted into the db if
95
+ * this is called after tx processing, if that's not the case, then set `insertTxsEffects` to true.
96
+ */ async addBlock(globalVariables, txs, opts = {}) {
49
97
  const isFirstBlock = this.blocks.length === 0;
98
+ // Empty blocks are only allowed as the first block in a checkpoint
99
+ if (!isFirstBlock && txs.length === 0) {
100
+ throw new Error('Cannot add empty block that is not the first block in the checkpoint.');
101
+ }
50
102
  if (isFirstBlock) {
51
103
  this.lastArchives.push(await getTreeSnapshot(MerkleTreeId.ARCHIVE, this.db));
52
104
  }
53
105
  const lastArchive = this.lastArchives.at(-1);
54
- for (const tx of txs){
55
- await insertSideEffects(tx, this.db);
106
+ if (opts.insertTxsEffects) {
107
+ this.logger.debug(`Inserting side effects for ${txs.length} txs for block ${globalVariables.blockNumber} into db`, {
108
+ txs: txs.map((tx)=>tx.hash.toString())
109
+ });
110
+ for (const tx of txs){
111
+ await insertSideEffects(tx, this.db);
112
+ }
113
+ }
114
+ const endState = await this.db.getStateReference();
115
+ if (opts.expectedEndState && !endState.equals(opts.expectedEndState)) {
116
+ this.logger.error('End state after processing txs does not match expected end state', {
117
+ globalVariables: globalVariables.toInspect(),
118
+ expectedEndState: opts.expectedEndState.toInspect(),
119
+ actualEndState: endState.toInspect()
120
+ });
121
+ throw new Error(`End state does not match expected end state when building block ${globalVariables.blockNumber}`);
56
122
  }
57
123
  const { header, body, blockBlobFields } = await buildHeaderAndBodyFromTxs(txs, lastArchive, endState, globalVariables, this.spongeBlob, isFirstBlock);
124
+ header.state.validate();
58
125
  await this.db.updateArchive(header);
59
126
  const newArchive = await getTreeSnapshot(MerkleTreeId.ARCHIVE, this.db);
60
127
  this.lastArchives.push(newArchive);
61
- const block = new L2BlockNew(newArchive, header, body);
128
+ const indexWithinCheckpoint = IndexWithinCheckpoint(this.blocks.length);
129
+ const block = new L2Block(newArchive, header, body, this.checkpointNumber, indexWithinCheckpoint);
62
130
  this.blocks.push(block);
63
131
  await this.spongeBlob.absorb(blockBlobFields);
64
132
  this.blobFields.push(...blockBlobFields);
@@ -73,7 +141,7 @@ import { buildHeaderAndBodyFromTxs, getTreeSnapshot, insertSideEffects } from '.
73
141
  }
74
142
  async completeCheckpoint() {
75
143
  if (!this.blocks.length) {
76
- throw new Error('No blocks added to checkpoint.');
144
+ throw new Error('Cannot complete a checkpoint with no blocks');
77
145
  }
78
146
  const numBlobFields = this.blobFields.length + 1; // +1 for the checkpoint end marker.
79
147
  const checkpointEndMarker = encodeCheckpointEndMarker({
@@ -86,22 +154,47 @@ import { buildHeaderAndBodyFromTxs, getTreeSnapshot, insertSideEffects } from '.
86
154
  const blobs = getBlobsPerL1Block(this.blobFields);
87
155
  const blobsHash = computeBlobsHashFromBlobs(blobs);
88
156
  const inHash = computeInHashFromL1ToL2Messages(this.l1ToL2Messages);
89
- const outHash = computeCheckpointOutHash(blocks.map((block)=>block.body.txEffects.map((tx)=>tx.l2ToL1Msgs)));
90
- const constants = this.constants;
157
+ const { slotNumber, coinbase, feeRecipient, gasFees } = this.constants;
158
+ const checkpointOutHash = computeCheckpointOutHash(blocks.map((block)=>block.body.txEffects.map((tx)=>tx.l2ToL1Msgs)));
159
+ const epochOutHash = accumulateCheckpointOutHashes([
160
+ ...this.previousCheckpointOutHashes,
161
+ checkpointOutHash
162
+ ]);
163
+ // TODO(palla/mbps): Should we source this from the constants instead?
91
164
  // timestamp of a checkpoint is the timestamp of the last block in the checkpoint.
92
165
  const timestamp = blocks[blocks.length - 1].timestamp;
93
166
  const totalManaUsed = blocks.reduce((acc, block)=>acc.add(block.header.totalManaUsed), Fr.ZERO);
94
167
  const header = CheckpointHeader.from({
95
168
  lastArchiveRoot: this.lastArchives[0].root,
169
+ blobsHash,
170
+ inHash,
171
+ epochOutHash,
96
172
  blockHeadersHash,
97
- contentCommitment: new ContentCommitment(blobsHash, inHash, outHash),
98
- slotNumber: constants.slotNumber,
173
+ slotNumber,
99
174
  timestamp,
100
- coinbase: constants.coinbase,
101
- feeRecipient: constants.feeRecipient,
102
- gasFees: constants.gasFees,
175
+ coinbase,
176
+ feeRecipient,
177
+ gasFees,
103
178
  totalManaUsed
104
179
  });
105
180
  return new Checkpoint(newArchive, header, blocks, this.checkpointNumber);
106
181
  }
182
+ clone() {
183
+ const clone = new LightweightCheckpointBuilder(this.checkpointNumber, this.constants, [
184
+ ...this.l1ToL2Messages
185
+ ], [
186
+ ...this.previousCheckpointOutHashes
187
+ ], this.db, this.logger.getBindings());
188
+ clone.lastArchives = [
189
+ ...this.lastArchives
190
+ ];
191
+ clone.spongeBlob = this.spongeBlob.clone();
192
+ clone.blocks = [
193
+ ...this.blocks
194
+ ];
195
+ clone.blobFields = [
196
+ ...this.blobFields
197
+ ];
198
+ return clone;
199
+ }
107
200
  }
@@ -17,4 +17,4 @@ export declare function getSimulator(config: {
17
17
  }, logger?: Logger): Promise<CircuitSimulator>;
18
18
  export declare const makeGlobals: (blockNumber: number, slotNumber?: number, overrides?: Partial<FieldsOf<GlobalVariables> & FieldsOf<CheckpointConstantData>>) => GlobalVariables;
19
19
  export declare const makeCheckpointConstants: (slotNumber: number, overrides?: Partial<FieldsOf<CheckpointConstantData>>) => CheckpointConstantData;
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2Nrcy9maXh0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUl4RCxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBK0MsTUFBTSx5QkFBeUIsQ0FBQztBQUc3RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFpQm5ELGVBQU8sTUFBTSxvQkFBb0I7Ozs7Ozs7Y0FrQ2hDLENBQUM7QUFFRix3QkFBc0IsWUFBWSxDQUNoQyxNQUFNLEVBQUU7SUFBRSxvQkFBb0IsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQUMsY0FBYyxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUE7Q0FBRSxFQUN4RixNQUFNLENBQUMsRUFBRSxNQUFNLEdBQ2QsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBZTNCO0FBRUQsZUFBTyxNQUFNLFdBQVcsa0pBaUJ2QixDQUFDO0FBRUYsZUFBTyxNQUFNLHVCQUF1Qix1R0FnQm5DLENBQUMifQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2Nrcy9maXh0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUl4RCxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBK0MsTUFBTSx5QkFBeUIsQ0FBQztBQUc3RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFpQm5ELGVBQU8sTUFBTSxvQkFBb0I7Ozs7Ozs7Y0FrQ2hDLENBQUM7QUFFRix3QkFBc0IsWUFBWSxDQUNoQyxNQUFNLEVBQUU7SUFBRSxvQkFBb0IsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQUMsY0FBYyxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUE7Q0FBRSxFQUN4RixNQUFNLENBQUMsRUFBRSxNQUFNLEdBQ2QsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBZ0IzQjtBQUVELGVBQU8sTUFBTSxXQUFXLGtKQWlCdkIsQ0FBQztBQUVGLGVBQU8sTUFBTSx1QkFBdUIsdUdBZ0JuQyxDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/mocks/fixtures.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAIxD,OAAO,EAAE,KAAK,gBAAgB,EAA+C,MAAM,yBAAyB,CAAC;AAG7G,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAiBnD,eAAO,MAAM,oBAAoB;;;;;;;cAkChC,CAAC;AAEF,wBAAsB,YAAY,CAChC,MAAM,EAAE;IAAE,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EACxF,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC,CAe3B;AAED,eAAO,MAAM,WAAW,kJAiBvB,CAAC;AAEF,eAAO,MAAM,uBAAuB,uGAgBnC,CAAC"}
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/mocks/fixtures.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAIxD,OAAO,EAAE,KAAK,gBAAgB,EAA+C,MAAM,yBAAyB,CAAC;AAG7G,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAiBnD,eAAO,MAAM,oBAAoB;;;;;;;cAkChC,CAAC;AAEF,wBAAsB,YAAY,CAChC,MAAM,EAAE;IAAE,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EACxF,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC,CAgB3B;AAED,eAAO,MAAM,WAAW,kJAiBvB,CAAC;AAEF,eAAO,MAAM,uBAAuB,uGAgBnC,CAAC"}
@@ -1,7 +1,7 @@
1
- import { SlotNumber } from '@aztec/foundation/branded-types';
2
- import { randomBytes } from '@aztec/foundation/crypto';
1
+ import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
2
+ import { randomBytes } from '@aztec/foundation/crypto/random';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
4
  import { EthAddress } from '@aztec/foundation/eth-address';
4
- import { Fr } from '@aztec/foundation/fields';
5
5
  import { fileURLToPath } from '@aztec/foundation/url';
6
6
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
7
7
  import { protocolContractsHash } from '@aztec/protocol-contracts';
@@ -57,7 +57,8 @@ export async function getSimulator(config, logger) {
57
57
  recursive: true
58
58
  });
59
59
  logger?.info(`Using native ACVM at ${config.acvmBinaryPath} and working directory ${config.acvmWorkingDirectory}`);
60
- return new NativeACVMSimulator(config.acvmWorkingDirectory, config.acvmBinaryPath);
60
+ const acvmLogger = logger?.createChild('acvm-native');
61
+ return new NativeACVMSimulator(config.acvmWorkingDirectory, config.acvmBinaryPath, undefined, acvmLogger);
61
62
  } catch {
62
63
  logger?.warn(`Failed to access ACVM at ${config.acvmBinaryPath}, falling back to WASM`);
63
64
  }
@@ -70,7 +71,7 @@ export const makeGlobals = (blockNumber, slotNumber = blockNumber, overrides = {
70
71
  return GlobalVariables.from({
71
72
  chainId: checkpointConstants.chainId,
72
73
  version: checkpointConstants.version,
73
- blockNumber,
74
+ blockNumber: BlockNumber(blockNumber),
74
75
  slotNumber: SlotNumber(slotNumber),
75
76
  timestamp: BigInt(blockNumber * 123),
76
77
  coinbase: checkpointConstants.coinbase,
@@ -1,5 +1,5 @@
1
1
  import type { BBProverConfig } from '@aztec/bb-prover';
2
- import { Fr } from '@aztec/foundation/fields';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import type { Logger } from '@aztec/foundation/log';
4
4
  import type { FieldsOf } from '@aztec/foundation/types';
5
5
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
@@ -23,7 +23,9 @@ export declare class TestContext {
23
23
  private logger;
24
24
  private headers;
25
25
  private checkpoints;
26
+ private checkpointOutHashes;
26
27
  private nextCheckpointIndex;
28
+ private nextCheckpointNumber;
27
29
  private nextBlockNumber;
28
30
  private epochNumber;
29
31
  private feePayerBalance;
@@ -37,7 +39,7 @@ export declare class TestContext {
37
39
  cleanup(): Promise<void>;
38
40
  startNewEpoch(): void;
39
41
  getBlobFields(): Fr[][];
40
- getFinalBlobChallenges(): Promise<import("../../../blob-lib/dest/types.js").FinalBlobBatchingChallenges>;
42
+ getFinalBlobChallenges(): Promise<import("@aztec/blob-lib").FinalBlobBatchingChallenges>;
41
43
  makeCheckpoint(numBlocks: number, { numTxsPerBlock, numL1ToL2Messages, makeProcessedTxOpts, ...constantOpts }?: {
42
44
  numTxsPerBlock?: number | number[];
43
45
  numL1ToL2Messages?: number;
@@ -61,4 +63,4 @@ declare class TestProvingOrchestrator extends ProvingOrchestrator {
61
63
  protected verifyBuiltBlockAgainstSyncedState(provingState: BlockProvingState): Promise<void>;
62
64
  }
63
65
  export {};
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9jb250ZXh0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9ja3MvdGVzdF9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSXZELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUt4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHM0QsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RyxPQUFPLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RCxPQUFPLEVBQ0wsS0FBSyxXQUFXLEVBQ2hCLEtBQUssZUFBZSxFQUNwQixLQUFLLFdBQVcsRUFHakIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBV2xFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDdEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR3BELHFCQUFhLFdBQVc7SUFTYixVQUFVLEVBQUUsdUJBQXVCO0lBQ25DLE1BQU0sRUFBRSxtQkFBbUI7SUFDM0IsTUFBTSxFQUFFLFVBQVU7SUFDbEIsa0JBQWtCLEVBQUUseUJBQXlCO0lBQzdDLFlBQVksRUFBRSx1QkFBdUI7SUFDNUMsT0FBTyxDQUFDLFFBQVE7SUFFaEIsT0FBTyxDQUFDLG9CQUFvQjtJQUM1QixPQUFPLENBQUMsTUFBTTtJQWhCaEIsT0FBTyxDQUFDLE9BQU8sQ0FBdUM7SUFDdEQsT0FBTyxDQUFDLFdBQVcsQ0FBb0I7SUFDdkMsT0FBTyxDQUFDLG1CQUFtQixDQUFLO0lBQ2hDLE9BQU8sQ0FBQyxlQUFlLENBQUs7SUFDNUIsT0FBTyxDQUFDLFdBQVcsQ0FBSztJQUN4QixPQUFPLENBQUMsZUFBZSxDQUFLO0lBRTVCLFlBQ1MsVUFBVSxFQUFFLHVCQUF1QixFQUNuQyxNQUFNLEVBQUUsbUJBQW1CLEVBQzNCLE1BQU0sRUFBRSxVQUFVLEVBQ2xCLGtCQUFrQixFQUFFLHlCQUF5QixFQUM3QyxZQUFZLEVBQUUsdUJBQXVCLEVBQ3BDLFFBQVEsRUFBRSxZQUFZLEVBQzlCLHNCQUFzQixFQUFFLEVBQUUsRUFDbEIsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEVBQzlCLE1BQU0sRUFBRSxNQUFNLEVBR3ZCO0lBRUQsSUFBVyxXQUFXLDRCQUVyQjtJQUVELE9BQWEsR0FBRyxDQUNkLE1BQU0sRUFBRSxNQUFNLEVBQ2QsRUFDRSxXQUFlLEVBQ2YsWUFBOEcsRUFDL0csR0FBRTtRQUNELFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUNyQixZQUFZLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxjQUFjLEtBQUssT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7S0FDdEUsd0JBdURQO0lBRU0sT0FBTyx1Q0FFYjtJQUVLLE9BQU8sa0JBVVo7SUFFTSxhQUFhLFNBSW5CO0lBR00sYUFBYSxXQUVuQjtJQUVZLHNCQUFzQixtRkFHbEM7SUFFWSxjQUFjLENBQ3pCLFNBQVMsRUFBRSxNQUFNLEVBQ2pCLEVBQ0UsY0FBa0IsRUFDbEIsaUJBQXFCLEVBQ3JCLG1CQUFnQyxFQUNoQyxHQUFHLFlBQVksRUFDaEIsR0FBRTtRQUNELGNBQWMsQ0FBQyxFQUFFLE1BQU0sR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUNuQyxpQkFBaUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUMzQixtQkFBbUIsQ0FBQyxFQUFFLENBQ3BCLG9CQUFvQixFQUFFLGVBQWUsRUFDckMsT0FBTyxFQUFFLE1BQU0sS0FDWixPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNyRCxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsQ0FBTTs7Ozs7Ozs7O09BaUduRDtZQUVhLGVBQWU7SUFvQjdCLE9BQU8sQ0FBQyxjQUFjO1lBT1IsV0FBVztDQThCMUI7QUFFRCxjQUFNLHVCQUF3QixTQUFRLG1CQUFtQjtJQUNoRCwyQ0FBMkMsVUFBUztJQUkzRCxVQUFtQixrQ0FBa0MsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUtwRztDQUNGIn0=
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9jb250ZXh0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9ja3MvdGVzdF9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBS3ZELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUt4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHM0QsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RyxPQUFPLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RCxPQUFPLEVBQ0wsS0FBSyxXQUFXLEVBQ2hCLEtBQUssZUFBZSxFQUNwQixLQUFLLFdBQVcsRUFHakIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBV2xFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDdEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR3BELHFCQUFhLFdBQVc7SUFXYixVQUFVLEVBQUUsdUJBQXVCO0lBQ25DLE1BQU0sRUFBRSxtQkFBbUI7SUFDM0IsTUFBTSxFQUFFLFVBQVU7SUFDbEIsa0JBQWtCLEVBQUUseUJBQXlCO0lBQzdDLFlBQVksRUFBRSx1QkFBdUI7SUFDNUMsT0FBTyxDQUFDLFFBQVE7SUFFaEIsT0FBTyxDQUFDLG9CQUFvQjtJQUM1QixPQUFPLENBQUMsTUFBTTtJQWxCaEIsT0FBTyxDQUFDLE9BQU8sQ0FBdUM7SUFDdEQsT0FBTyxDQUFDLFdBQVcsQ0FBb0I7SUFDdkMsT0FBTyxDQUFDLG1CQUFtQixDQUFZO0lBQ3ZDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBSztJQUNoQyxPQUFPLENBQUMsb0JBQW9CLENBQXVCO0lBQ25ELE9BQU8sQ0FBQyxlQUFlLENBQUs7SUFDNUIsT0FBTyxDQUFDLFdBQVcsQ0FBSztJQUN4QixPQUFPLENBQUMsZUFBZSxDQUFLO0lBRTVCLFlBQ1MsVUFBVSxFQUFFLHVCQUF1QixFQUNuQyxNQUFNLEVBQUUsbUJBQW1CLEVBQzNCLE1BQU0sRUFBRSxVQUFVLEVBQ2xCLGtCQUFrQixFQUFFLHlCQUF5QixFQUM3QyxZQUFZLEVBQUUsdUJBQXVCLEVBQ3BDLFFBQVEsRUFBRSxZQUFZLEVBQzlCLHNCQUFzQixFQUFFLEVBQUUsRUFDbEIsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEVBQzlCLE1BQU0sRUFBRSxNQUFNLEVBR3ZCO0lBRUQsSUFBVyxXQUFXLDRCQUVyQjtJQUVELE9BQWEsR0FBRyxDQUNkLE1BQU0sRUFBRSxNQUFNLEVBQ2QsRUFDRSxXQUFlLEVBQ2YsWUFBOEcsRUFDL0csR0FBRTtRQUNELFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUNyQixZQUFZLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxjQUFjLEtBQUssT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7S0FDdEUsd0JBdURQO0lBRU0sT0FBTyx1Q0FFYjtJQUVLLE9BQU8sa0JBVVo7SUFFTSxhQUFhLFNBS25CO0lBR00sYUFBYSxXQUVuQjtJQUVZLHNCQUFzQixtRUFHbEM7SUFFWSxjQUFjLENBQ3pCLFNBQVMsRUFBRSxNQUFNLEVBQ2pCLEVBQ0UsY0FBa0IsRUFDbEIsaUJBQXFCLEVBQ3JCLG1CQUFnQyxFQUNoQyxHQUFHLFlBQVksRUFDaEIsR0FBRTtRQUNELGNBQWMsQ0FBQyxFQUFFLE1BQU0sR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUNuQyxpQkFBaUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUMzQixtQkFBbUIsQ0FBQyxFQUFFLENBQ3BCLG9CQUFvQixFQUFFLGVBQWUsRUFDckMsT0FBTyxFQUFFLE1BQU0sS0FDWixPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNyRCxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsQ0FBTTs7Ozs7Ozs7O09BMEduRDtZQUVhLGVBQWU7SUFvQjdCLE9BQU8sQ0FBQyxjQUFjO1lBU1IsV0FBVztDQThCMUI7QUFFRCxjQUFNLHVCQUF3QixTQUFRLG1CQUFtQjtJQUNoRCwyQ0FBMkMsVUFBUztJQUkzRCxVQUFtQixrQ0FBa0MsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUtwRztDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"test_context.d.ts","sourceRoot":"","sources":["../../src/mocks/test_context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test_context.d.ts","sourceRoot":"","sources":["../../src/mocks/test_context.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { TestCircuitProver } from '@aztec/bb-prover';
2
2
  import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants';
3
+ import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
3
4
  import { padArrayEnd, times, timesAsync } from '@aztec/foundation/collection';
4
- import { Fr } from '@aztec/foundation/fields';
5
+ import { Fr } from '@aztec/foundation/curves/bn254';
5
6
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
6
7
  import { ProtocolContractsList } from '@aztec/protocol-contracts';
7
8
  import { computeFeePayerBalanceLeafSlot } from '@aztec/protocol-contracts/fee-juice';
@@ -30,7 +31,9 @@ export class TestContext {
30
31
  logger;
31
32
  headers;
32
33
  checkpoints;
34
+ checkpointOutHashes;
33
35
  nextCheckpointIndex;
36
+ nextCheckpointNumber;
34
37
  nextBlockNumber;
35
38
  epochNumber;
36
39
  feePayerBalance;
@@ -45,7 +48,9 @@ export class TestContext {
45
48
  this.logger = logger;
46
49
  this.headers = new Map();
47
50
  this.checkpoints = [];
51
+ this.checkpointOutHashes = [];
48
52
  this.nextCheckpointIndex = 0;
53
+ this.nextCheckpointNumber = CheckpointNumber(1);
49
54
  this.nextBlockNumber = 1;
50
55
  this.epochNumber = 1;
51
56
  this.feePayerBalance = initialFeePayerBalance;
@@ -109,6 +114,7 @@ export class TestContext {
109
114
  }
110
115
  startNewEpoch() {
111
116
  this.checkpoints = [];
117
+ this.checkpointOutHashes = [];
112
118
  this.nextCheckpointIndex = 0;
113
119
  this.epochNumber++;
114
120
  }
@@ -125,7 +131,8 @@ export class TestContext {
125
131
  throw new Error('Cannot make a checkpoint with 0 blocks. Crate an empty block (numTxsPerBlock = 0) if there are no txs.');
126
132
  }
127
133
  const checkpointIndex = this.nextCheckpointIndex++;
128
- const checkpointNumber = checkpointIndex + 1;
134
+ const checkpointNumber = this.nextCheckpointNumber;
135
+ this.nextCheckpointNumber++;
129
136
  const slotNumber = checkpointNumber * 15; // times an arbitrary number to make it different to the checkpoint number
130
137
  const constants = makeCheckpointConstants(slotNumber, constantOpts);
131
138
  const fork = await this.worldState.fork();
@@ -134,12 +141,15 @@ export class TestContext {
134
141
  await fork.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, padArrayEnd(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP));
135
142
  const newL1ToL2Snapshot = await getTreeSnapshot(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, fork);
136
143
  const startBlockNumber = this.nextBlockNumber;
137
- const previousBlockHeader = this.getBlockHeader(startBlockNumber - 1);
144
+ const previousBlockHeader = this.getBlockHeader(BlockNumber(startBlockNumber - 1));
145
+ // All blocks in the same slot/checkpoint share the same timestamp.
146
+ const timestamp = BigInt(slotNumber * 26);
138
147
  // Build global variables.
139
148
  const blockGlobalVariables = times(numBlocks, (i)=>makeGlobals(startBlockNumber + i, slotNumber, {
140
149
  coinbase: constants.coinbase,
141
150
  feeRecipient: constants.feeRecipient,
142
- gasFees: constants.gasFees
151
+ gasFees: constants.gasFees,
152
+ timestamp
143
153
  }));
144
154
  this.nextBlockNumber += numBlocks;
145
155
  // Build txs.
@@ -162,18 +172,21 @@ export class TestContext {
162
172
  return txs;
163
173
  });
164
174
  const cleanFork = await this.worldState.fork();
165
- const builder = await LightweightCheckpointBuilder.startNewCheckpoint(checkpointNumber, constants, l1ToL2Messages, cleanFork);
175
+ const previousCheckpointOutHashes = this.checkpointOutHashes;
176
+ const builder = await LightweightCheckpointBuilder.startNewCheckpoint(checkpointNumber, constants, l1ToL2Messages, previousCheckpointOutHashes, cleanFork);
166
177
  // Add tx effects to db and build block headers.
167
178
  const blocks = [];
168
179
  for(let i = 0; i < numBlocks; i++){
169
- const isFirstBlock = i === 0;
170
180
  const txs = blockTxs[i];
171
181
  const state = blockEndStates[i];
172
- const block = await builder.addBlock(blockGlobalVariables[i], state, txs);
182
+ const block = await builder.addBlock(blockGlobalVariables[i], txs, {
183
+ expectedEndState: state,
184
+ insertTxsEffects: true
185
+ });
173
186
  const header = block.header;
174
187
  this.headers.set(block.number, header);
175
- const blockMsgs = isFirstBlock ? l1ToL2Messages : [];
176
- await this.worldState.handleL2BlockAndMessages(block, blockMsgs, isFirstBlock);
188
+ const blockMsgs = block.indexWithinCheckpoint === 0 ? l1ToL2Messages : [];
189
+ await this.worldState.handleL2BlockAndMessages(block, blockMsgs);
177
190
  blocks.push({
178
191
  header,
179
192
  txs
@@ -181,6 +194,7 @@ export class TestContext {
181
194
  }
182
195
  const checkpoint = await builder.completeCheckpoint();
183
196
  this.checkpoints.push(checkpoint);
197
+ this.checkpointOutHashes.push(checkpoint.getCheckpointOutHash());
184
198
  return {
185
199
  constants,
186
200
  header: checkpoint.header,
@@ -206,10 +220,10 @@ export class TestContext {
206
220
  return tx;
207
221
  }
208
222
  getBlockHeader(blockNumber) {
209
- if (blockNumber > 0 && blockNumber >= this.nextBlockNumber) {
223
+ if (Number(blockNumber) > 0 && Number(blockNumber) >= this.nextBlockNumber) {
210
224
  throw new Error(`Block header not built for block number ${blockNumber}.`);
211
225
  }
212
- return blockNumber === 0 ? this.worldState.getCommitted().getInitialHeader() : this.headers.get(blockNumber);
226
+ return Number(blockNumber) === 0 ? this.worldState.getCommitted().getInitialHeader() : this.headers.get(Number(blockNumber));
213
227
  }
214
228
  async updateTrees(txs, fork) {
215
229
  let startStateReference = await fork.getStateReference();
@@ -1,5 +1,5 @@
1
1
  import { BatchedBlobAccumulator, SpongeBlob } from '@aztec/blob-lib';
2
- import { Fr } from '@aztec/foundation/fields';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { type Bufferable } from '@aztec/foundation/serialize';
4
4
  import { MembershipWitness } from '@aztec/foundation/trees';
5
5
  import { Body } from '@aztec/stdlib/block';
@@ -22,10 +22,10 @@ export declare const insertSideEffects: (tx: ProcessedTx, db: MerkleTreeWriteOpe
22
22
  nullifierInsertionResult: import("@aztec/stdlib/trees").BatchInsertionResult<number, number>;
23
23
  publicDataInsertionResult: import("@aztec/stdlib/trees").SequentialInsertionResult<number>;
24
24
  }>;
25
- export declare function getChonkProofFromTx(tx: Tx | ProcessedTx): RecursiveProof<2049>;
25
+ export declare function getChonkProofFromTx(tx: Tx | ProcessedTx): RecursiveProof<1963>;
26
26
  export declare function getPublicChonkVerifierPrivateInputsFromTx(tx: Tx | ProcessedTx, proverId: Fr): PublicChonkVerifierPrivateInputs;
27
27
  export declare const buildBlobHints: (blobFields: Fr[]) => {
28
- blobCommitments: import("@aztec/foundation/fields").BLS12Point[];
28
+ blobCommitments: import("@aztec/foundation/curves/bls12").BLS12Point[];
29
29
  blobs: import("@aztec/blob-lib").Blob[];
30
30
  blobsHash: Fr;
31
31
  };
@@ -59,4 +59,4 @@ export declare function validatePartialState(partialState: PartialStateReference
59
59
  export declare function validateTx(tx: ProcessedTx): void;
60
60
  export declare function toProofData<T extends Bufferable, PROOF_LENGTH extends number>({ inputs, proof, verificationKey }: PublicInputsAndRecursiveProof<T, PROOF_LENGTH>, vkIndex?: number): ProofData<T, PROOF_LENGTH>;
61
61
  export {};
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYnVpbGRpbmctaGVscGVycy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29yY2hlc3RyYXRvci9ibG9jay1idWlsZGluZy1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsVUFBVSxFQUtYLE1BQU0saUJBQWlCLENBQUM7QUFnQnpCLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsS0FBSyxVQUFVLEVBQWdDLE1BQU0sNkJBQTZCLENBQUM7QUFDNUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFJNUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLDZCQUE2QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFaEgsT0FBTyxFQUFTLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsZ0NBQWdDLEVBRWpDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixZQUFZLEVBSWIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQ0wsV0FBVyxFQUNYLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsS0FBSyxXQUFXLEVBQ2hCLGNBQWMsRUFDZCxFQUFFLEVBQ0gsTUFBTSxrQkFBa0IsQ0FBQztBQUcxQixPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRW5FOztHQUVHO0FBQ0gsS0FBSyxhQUFhLEdBQUcsY0FBYyxHQUFHLGNBQWMsR0FBRyxlQUFlLEdBQUcsZ0JBQWdCLENBQUM7QUFDMUY7O0dBRUc7QUFDSCxNQUFNLE1BQU0sU0FBUyxHQUFHLGFBQWEsR0FBRyxtQkFBbUIsR0FBRyxTQUFTLENBQUM7QUFHeEUsZUFBTyxNQUFNLHdDQUF3QyxtUEEwSHBELENBQUM7QUFFRixlQUFPLE1BQU0saUJBQWlCOzs7RUFvQzdCLENBQUM7QUFFRix3QkFBZ0IsbUJBQW1CLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxXQUFXLHdCQVF2RDtBQUVELHdCQUFnQix5Q0FBeUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLFdBQVcsRUFBRSxRQUFRLEVBQUUsRUFBRSxvQ0FPM0Y7QUFLRCxlQUFPLE1BQU0sY0FBYzs7OztDQUsxQixDQUFDO0FBRUYsZUFBTyxNQUFNLHdCQUF3QixxR0FFcEMsQ0FBQztBQUVGLGVBQU8sTUFBTSxlQUFlLHFHQU8zQixDQUFDO0FBRUYsZUFBTyxNQUFNLDZCQUE2QiwwRUEyQnpDLENBQUM7QUFFRixlQUFPLE1BQU0seUJBQXlCOzs7O0VBMERyQyxDQUFDO0FBRUYsd0JBQXNCLGtCQUFrQixDQUFDLEdBQUcsU0FBUyxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsd0JBQXdCOzs7Ozs7U0FJM0c7QUFFRCx3QkFBc0Isc0JBQXNCLENBQUMsR0FBRyxTQUFTLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSx3QkFBd0I7Ozs7OztTQUkvRztBQUVELHdCQUFzQixlQUFlLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsd0JBQXdCLEdBQUcsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBR3JIO0FBRUQsd0JBQWdCLDBCQUEwQixDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsd0JBTXJFO0FBRUQsd0JBQXNCLHFCQUFxQixDQUN6QyxNQUFNLEVBQUUsWUFBWSxFQUNwQixhQUFhLEVBQUUsTUFBTSxFQUNyQixFQUFFLEVBQUUsd0JBQXdCLEdBQzNCLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQU1mO0FBR0Qsd0JBQXNCLHVCQUF1QixDQUFDLENBQUMsU0FBUyxNQUFNLEVBQzVELEtBQUssRUFBRSxFQUFFLEVBQ1QsTUFBTSxFQUFFLFlBQVksRUFDcEIsTUFBTSxFQUFFLENBQUMsRUFDVCxFQUFFLEVBQUUsd0JBQXdCLEdBQzNCLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQVkvQjtBQUVELHdCQUFnQixvQkFBb0IsQ0FDbEMsWUFBWSxFQUFFLHFCQUFxQixFQUNuQyxhQUFhLEVBQUUsR0FBRyxDQUFDLFlBQVksRUFBRSxzQkFBc0IsQ0FBQyxRQVN6RDtBQXFCRCx3QkFBZ0IsVUFBVSxDQUFDLEVBQUUsRUFBRSxXQUFXLFFBY3pDO0FBRUQsd0JBQWdCLFdBQVcsQ0FBQyxDQUFDLFNBQVMsVUFBVSxFQUFFLFlBQVksU0FBUyxNQUFNLEVBQzNFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLEVBQ2xGLE9BQU8sQ0FBQyxFQUFFLE1BQU0sOEJBS2pCIn0=
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYnVpbGRpbmctaGVscGVycy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29yY2hlc3RyYXRvci9ibG9jay1idWlsZGluZy1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsVUFBVSxFQUtYLE1BQU0saUJBQWlCLENBQUM7QUFpQnpCLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsS0FBSyxVQUFVLEVBQWdDLE1BQU0sNkJBQTZCLENBQUM7QUFDNUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFJNUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLDZCQUE2QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFaEgsT0FBTyxFQUFTLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsZ0NBQWdDLEVBRWpDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixZQUFZLEVBSWIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQ0wsV0FBVyxFQUNYLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsS0FBSyxXQUFXLEVBQ2hCLGNBQWMsRUFDZCxFQUFFLEVBQ0gsTUFBTSxrQkFBa0IsQ0FBQztBQUcxQixPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRW5FOztHQUVHO0FBQ0gsS0FBSyxhQUFhLEdBQUcsY0FBYyxHQUFHLGNBQWMsR0FBRyxlQUFlLEdBQUcsZ0JBQWdCLENBQUM7QUFDMUY7O0dBRUc7QUFDSCxNQUFNLE1BQU0sU0FBUyxHQUFHLGFBQWEsR0FBRyxtQkFBbUIsR0FBRyxTQUFTLENBQUM7QUFHeEUsZUFBTyxNQUFNLHdDQUF3QyxtUEEwSHBELENBQUM7QUFFRixlQUFPLE1BQU0saUJBQWlCOzs7RUFvQzdCLENBQUM7QUFFRix3QkFBZ0IsbUJBQW1CLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxXQUFXLHdCQVF2RDtBQUVELHdCQUFnQix5Q0FBeUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLFdBQVcsRUFBRSxRQUFRLEVBQUUsRUFBRSxvQ0FPM0Y7QUFLRCxlQUFPLE1BQU0sY0FBYzs7OztDQUsxQixDQUFDO0FBRUYsZUFBTyxNQUFNLHdCQUF3QixxR0FFcEMsQ0FBQztBQUVGLGVBQU8sTUFBTSxlQUFlLHFHQU8zQixDQUFDO0FBRUYsZUFBTyxNQUFNLDZCQUE2QiwwRUEyQnpDLENBQUM7QUFFRixlQUFPLE1BQU0seUJBQXlCOzs7O0VBMERyQyxDQUFDO0FBRUYsd0JBQXNCLGtCQUFrQixDQUFDLEdBQUcsU0FBUyxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsd0JBQXdCOzs7Ozs7U0FJM0c7QUFFRCx3QkFBc0Isc0JBQXNCLENBQUMsR0FBRyxTQUFTLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSx3QkFBd0I7Ozs7OztTQUkvRztBQUVELHdCQUFzQixlQUFlLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsd0JBQXdCLEdBQUcsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBR3JIO0FBRUQsd0JBQWdCLDBCQUEwQixDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsd0JBTXJFO0FBRUQsd0JBQXNCLHFCQUFxQixDQUN6QyxNQUFNLEVBQUUsWUFBWSxFQUNwQixhQUFhLEVBQUUsTUFBTSxFQUNyQixFQUFFLEVBQUUsd0JBQXdCLEdBQzNCLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQU1mO0FBR0Qsd0JBQXNCLHVCQUF1QixDQUFDLENBQUMsU0FBUyxNQUFNLEVBQzVELEtBQUssRUFBRSxFQUFFLEVBQ1QsTUFBTSxFQUFFLFlBQVksRUFDcEIsTUFBTSxFQUFFLENBQUMsRUFDVCxFQUFFLEVBQUUsd0JBQXdCLEdBQzNCLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQVkvQjtBQUVELHdCQUFnQixvQkFBb0IsQ0FDbEMsWUFBWSxFQUFFLHFCQUFxQixFQUNuQyxhQUFhLEVBQUUsR0FBRyxDQUFDLFlBQVksRUFBRSxzQkFBc0IsQ0FBQyxRQVN6RDtBQXFCRCx3QkFBZ0IsVUFBVSxDQUFDLEVBQUUsRUFBRSxXQUFXLFFBY3pDO0FBRUQsd0JBQWdCLFdBQVcsQ0FBQyxDQUFDLFNBQVMsVUFBVSxFQUFFLFlBQVksU0FBUyxNQUFNLEVBQzNFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLEVBQ2xGLE9BQU8sQ0FBQyxFQUFFLE1BQU0sOEJBS2pCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"block-building-helpers.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-building-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"block-building-helpers.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-building-helpers.ts"],"names":[],"mappings":"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"}