@aztec/sequencer-client 0.0.1-commit.f5d02921e → 0.0.1-commit.f7ea82942

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 (69) hide show
  1. package/dest/client/sequencer-client.d.ts +3 -1
  2. package/dest/client/sequencer-client.d.ts.map +1 -1
  3. package/dest/client/sequencer-client.js +3 -4
  4. package/dest/config.d.ts +1 -1
  5. package/dest/config.d.ts.map +1 -1
  6. package/dest/config.js +8 -11
  7. package/dest/global_variable_builder/fee_predictor.d.ts +37 -0
  8. package/dest/global_variable_builder/fee_predictor.d.ts.map +1 -0
  9. package/dest/global_variable_builder/fee_predictor.js +128 -0
  10. package/dest/global_variable_builder/fee_provider.d.ts +21 -0
  11. package/dest/global_variable_builder/fee_provider.d.ts.map +1 -0
  12. package/dest/global_variable_builder/fee_provider.js +58 -0
  13. package/dest/global_variable_builder/global_builder.d.ts +4 -9
  14. package/dest/global_variable_builder/global_builder.d.ts.map +1 -1
  15. package/dest/global_variable_builder/global_builder.js +3 -41
  16. package/dest/global_variable_builder/index.d.ts +3 -1
  17. package/dest/global_variable_builder/index.d.ts.map +1 -1
  18. package/dest/global_variable_builder/index.js +2 -0
  19. package/dest/publisher/config.d.ts +1 -1
  20. package/dest/publisher/config.d.ts.map +1 -1
  21. package/dest/publisher/config.js +2 -2
  22. package/dest/publisher/l1_tx_failed_store/failed_tx_store.d.ts +3 -4
  23. package/dest/publisher/l1_tx_failed_store/failed_tx_store.d.ts.map +1 -1
  24. package/dest/publisher/sequencer-publisher-factory.d.ts +1 -3
  25. package/dest/publisher/sequencer-publisher-factory.d.ts.map +1 -1
  26. package/dest/publisher/sequencer-publisher-factory.js +0 -1
  27. package/dest/publisher/sequencer-publisher.d.ts +16 -35
  28. package/dest/publisher/sequencer-publisher.d.ts.map +1 -1
  29. package/dest/publisher/sequencer-publisher.js +60 -92
  30. package/dest/sequencer/chain_state_overrides.d.ts +25 -0
  31. package/dest/sequencer/chain_state_overrides.d.ts.map +1 -0
  32. package/dest/sequencer/chain_state_overrides.js +39 -0
  33. package/dest/sequencer/checkpoint_proposal_job.d.ts +27 -22
  34. package/dest/sequencer/checkpoint_proposal_job.d.ts.map +1 -1
  35. package/dest/sequencer/checkpoint_proposal_job.js +294 -155
  36. package/dest/sequencer/checkpoint_proposal_job_metrics.d.ts +34 -0
  37. package/dest/sequencer/checkpoint_proposal_job_metrics.d.ts.map +1 -0
  38. package/dest/sequencer/checkpoint_proposal_job_metrics.js +72 -0
  39. package/dest/sequencer/events.d.ts +6 -1
  40. package/dest/sequencer/events.d.ts.map +1 -1
  41. package/dest/sequencer/metrics.d.ts +7 -10
  42. package/dest/sequencer/metrics.d.ts.map +1 -1
  43. package/dest/sequencer/metrics.js +27 -20
  44. package/dest/sequencer/sequencer.d.ts +5 -2
  45. package/dest/sequencer/sequencer.d.ts.map +1 -1
  46. package/dest/sequencer/sequencer.js +31 -23
  47. package/dest/sequencer/timetable.d.ts +14 -1
  48. package/dest/sequencer/timetable.d.ts.map +1 -1
  49. package/dest/sequencer/timetable.js +45 -36
  50. package/package.json +27 -27
  51. package/src/client/sequencer-client.ts +5 -7
  52. package/src/config.ts +8 -11
  53. package/src/global_variable_builder/README.md +44 -0
  54. package/src/global_variable_builder/fee_predictor.ts +172 -0
  55. package/src/global_variable_builder/fee_provider.ts +75 -0
  56. package/src/global_variable_builder/global_builder.ts +7 -54
  57. package/src/global_variable_builder/index.ts +2 -0
  58. package/src/publisher/config.ts +6 -4
  59. package/src/publisher/l1_tx_failed_store/failed_tx_store.ts +3 -1
  60. package/src/publisher/sequencer-publisher-factory.ts +0 -3
  61. package/src/publisher/sequencer-publisher.ts +106 -152
  62. package/src/sequencer/README.md +83 -13
  63. package/src/sequencer/chain_state_overrides.ts +87 -0
  64. package/src/sequencer/checkpoint_proposal_job.ts +365 -205
  65. package/src/sequencer/checkpoint_proposal_job_metrics.ts +128 -0
  66. package/src/sequencer/events.ts +5 -0
  67. package/src/sequencer/metrics.ts +35 -25
  68. package/src/sequencer/sequencer.ts +44 -26
  69. package/src/sequencer/timetable.ts +57 -45
@@ -0,0 +1,87 @@
1
+ import { RollupContract, SimulationOverridesBuilder, type SimulationOverridesPlan } from '@aztec/ethereum/contracts';
2
+ import { CheckpointNumber } from '@aztec/foundation/branded-types';
3
+ import type { Fr } from '@aztec/foundation/curves/bn254';
4
+ import type { Logger } from '@aztec/foundation/log';
5
+ import type { ProposedCheckpointData } from '@aztec/stdlib/checkpoint';
6
+
7
+ type PipelinedParentSimulationOverridesPlanInput = {
8
+ checkpointNumber: CheckpointNumber;
9
+ proposedCheckpointData?: ProposedCheckpointData;
10
+ rollup: RollupContract;
11
+ log: Logger;
12
+ };
13
+
14
+ type SubmissionSimulationOverridesPlanInput = {
15
+ pipelinedParentPlan?: SimulationOverridesPlan;
16
+ invalidateToPendingCheckpointNumber?: CheckpointNumber;
17
+ lastArchiveRoot: Fr;
18
+ pipeliningEnabled: boolean;
19
+ };
20
+
21
+ /** Builds the simulated parent checkpoint view used while constructing a pipelined proposal. */
22
+ export async function buildPipelinedParentSimulationOverridesPlan(
23
+ input: PipelinedParentSimulationOverridesPlanInput,
24
+ ): Promise<SimulationOverridesPlan | undefined> {
25
+ const parentCheckpointNumber = CheckpointNumber(input.checkpointNumber - 1);
26
+ const builder = new SimulationOverridesBuilder().forPendingCheckpoint(parentCheckpointNumber);
27
+
28
+ const pendingFeeHeader = await computePipelinedParentFeeHeader(input);
29
+ if (pendingFeeHeader) {
30
+ builder.withPendingFeeHeader(pendingFeeHeader);
31
+ }
32
+
33
+ return builder.build();
34
+ }
35
+
36
+ /** Builds the simulated chain view used when validating and enqueueing checkpoint submission. */
37
+ export function buildSubmissionSimulationOverridesPlan(
38
+ input: SubmissionSimulationOverridesPlanInput,
39
+ ): SimulationOverridesPlan | undefined {
40
+ const pendingCheckpointNumber =
41
+ input.invalidateToPendingCheckpointNumber ?? input.pipelinedParentPlan?.pendingCheckpointNumber;
42
+
43
+ const builder = SimulationOverridesBuilder.from(input.pipelinedParentPlan).forPendingCheckpoint(
44
+ pendingCheckpointNumber,
45
+ );
46
+
47
+ if (input.pipeliningEnabled && pendingCheckpointNumber !== undefined) {
48
+ builder.withPendingArchive(input.lastArchiveRoot);
49
+ }
50
+
51
+ return builder.build();
52
+ }
53
+
54
+ /** Derives the pending parent fee header used during pipelined proposal simulation. */
55
+ export async function computePipelinedParentFeeHeader(input: PipelinedParentSimulationOverridesPlanInput) {
56
+ if (!input.proposedCheckpointData || input.checkpointNumber < 2) {
57
+ return undefined;
58
+ }
59
+
60
+ const grandparentCheckpointNumber = CheckpointNumber(input.checkpointNumber - 2);
61
+
62
+ try {
63
+ const [grandparentCheckpoint, manaTarget] = await Promise.all([
64
+ input.rollup.getCheckpoint(grandparentCheckpointNumber),
65
+ input.rollup.getManaTarget(),
66
+ ]);
67
+
68
+ if (!grandparentCheckpoint?.feeHeader) {
69
+ input.log.error(
70
+ `Grandparent checkpoint or feeHeader missing for checkpoint ${grandparentCheckpointNumber.toString()}`,
71
+ );
72
+ return undefined;
73
+ }
74
+
75
+ return RollupContract.computeChildFeeHeader(
76
+ grandparentCheckpoint.feeHeader,
77
+ input.proposedCheckpointData.totalManaUsed,
78
+ input.proposedCheckpointData.feeAssetPriceModifier,
79
+ manaTarget,
80
+ );
81
+ } catch (err) {
82
+ input.log.error(
83
+ `Failed to derive pipelined parent fee header for checkpoint ${grandparentCheckpointNumber.toString()}: ${err}`,
84
+ );
85
+ return undefined;
86
+ }
87
+ }