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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/README.md +281 -21
  2. package/dest/client/sequencer-client.d.ts +34 -11
  3. package/dest/client/sequencer-client.d.ts.map +1 -1
  4. package/dest/client/sequencer-client.js +77 -39
  5. package/dest/config.d.ts +32 -6
  6. package/dest/config.d.ts.map +1 -1
  7. package/dest/config.js +94 -46
  8. package/dest/global_variable_builder/fee_predictor.d.ts +37 -0
  9. package/dest/global_variable_builder/fee_predictor.d.ts.map +1 -0
  10. package/dest/global_variable_builder/fee_predictor.js +138 -0
  11. package/dest/global_variable_builder/fee_provider.d.ts +21 -0
  12. package/dest/global_variable_builder/fee_provider.d.ts.map +1 -0
  13. package/dest/global_variable_builder/fee_provider.js +80 -0
  14. package/dest/global_variable_builder/global_builder.d.ts +13 -28
  15. package/dest/global_variable_builder/global_builder.d.ts.map +1 -1
  16. package/dest/global_variable_builder/global_builder.js +9 -66
  17. package/dest/global_variable_builder/index.d.ts +4 -2
  18. package/dest/global_variable_builder/index.d.ts.map +1 -1
  19. package/dest/global_variable_builder/index.js +2 -0
  20. package/dest/publisher/config.d.ts +51 -17
  21. package/dest/publisher/config.d.ts.map +1 -1
  22. package/dest/publisher/config.js +131 -42
  23. package/dest/publisher/index.d.ts +2 -1
  24. package/dest/publisher/index.d.ts.map +1 -1
  25. package/dest/publisher/l1_to_l2_messaging.d.ts +21 -0
  26. package/dest/publisher/l1_to_l2_messaging.d.ts.map +1 -0
  27. package/dest/publisher/l1_to_l2_messaging.js +70 -0
  28. package/dest/publisher/l1_tx_failed_store/factory.d.ts +11 -0
  29. package/dest/publisher/l1_tx_failed_store/factory.d.ts.map +1 -0
  30. package/dest/publisher/l1_tx_failed_store/factory.js +22 -0
  31. package/dest/publisher/l1_tx_failed_store/failed_tx_store.d.ts +58 -0
  32. package/dest/publisher/l1_tx_failed_store/failed_tx_store.d.ts.map +1 -0
  33. package/dest/publisher/l1_tx_failed_store/failed_tx_store.js +1 -0
  34. package/dest/publisher/l1_tx_failed_store/file_store_failed_tx_store.d.ts +15 -0
  35. package/dest/publisher/l1_tx_failed_store/file_store_failed_tx_store.d.ts.map +1 -0
  36. package/dest/publisher/l1_tx_failed_store/file_store_failed_tx_store.js +34 -0
  37. package/dest/publisher/l1_tx_failed_store/index.d.ts +4 -0
  38. package/dest/publisher/l1_tx_failed_store/index.d.ts.map +1 -0
  39. package/dest/publisher/l1_tx_failed_store/index.js +2 -0
  40. package/dest/publisher/sequencer-bundle-simulator.d.ts +96 -0
  41. package/dest/publisher/sequencer-bundle-simulator.d.ts.map +1 -0
  42. package/dest/publisher/sequencer-bundle-simulator.js +198 -0
  43. package/dest/publisher/sequencer-publisher-factory.d.ts +11 -5
  44. package/dest/publisher/sequencer-publisher-factory.d.ts.map +1 -1
  45. package/dest/publisher/sequencer-publisher-factory.js +27 -3
  46. package/dest/publisher/sequencer-publisher-metrics.d.ts +1 -1
  47. package/dest/publisher/sequencer-publisher-metrics.d.ts.map +1 -1
  48. package/dest/publisher/sequencer-publisher-metrics.js +12 -4
  49. package/dest/publisher/sequencer-publisher.d.ts +107 -68
  50. package/dest/publisher/sequencer-publisher.d.ts.map +1 -1
  51. package/dest/publisher/sequencer-publisher.js +545 -363
  52. package/dest/publisher/write_json.d.ts +11 -0
  53. package/dest/publisher/write_json.d.ts.map +1 -0
  54. package/dest/publisher/write_json.js +57 -0
  55. package/dest/sequencer/automine/automine_factory.d.ts +56 -0
  56. package/dest/sequencer/automine/automine_factory.d.ts.map +1 -0
  57. package/dest/sequencer/automine/automine_factory.js +85 -0
  58. package/dest/sequencer/automine/automine_sequencer.d.ts +189 -0
  59. package/dest/sequencer/automine/automine_sequencer.d.ts.map +1 -0
  60. package/dest/sequencer/automine/automine_sequencer.js +690 -0
  61. package/dest/sequencer/automine/index.d.ts +3 -0
  62. package/dest/sequencer/automine/index.d.ts.map +1 -0
  63. package/dest/sequencer/automine/index.js +2 -0
  64. package/dest/sequencer/checkpoint_proposal_job.d.ts +101 -22
  65. package/dest/sequencer/checkpoint_proposal_job.d.ts.map +1 -1
  66. package/dest/sequencer/checkpoint_proposal_job.js +922 -286
  67. package/dest/sequencer/checkpoint_proposal_job_metrics.d.ts +34 -0
  68. package/dest/sequencer/checkpoint_proposal_job_metrics.d.ts.map +1 -0
  69. package/dest/sequencer/checkpoint_proposal_job_metrics.js +72 -0
  70. package/dest/sequencer/checkpoint_voter.d.ts +1 -2
  71. package/dest/sequencer/checkpoint_voter.d.ts.map +1 -1
  72. package/dest/sequencer/checkpoint_voter.js +2 -5
  73. package/dest/sequencer/errors.d.ts +1 -8
  74. package/dest/sequencer/errors.d.ts.map +1 -1
  75. package/dest/sequencer/errors.js +0 -9
  76. package/dest/sequencer/events.d.ts +62 -5
  77. package/dest/sequencer/events.d.ts.map +1 -1
  78. package/dest/sequencer/metrics.d.ts +23 -8
  79. package/dest/sequencer/metrics.d.ts.map +1 -1
  80. package/dest/sequencer/metrics.js +142 -36
  81. package/dest/sequencer/requests_tracker.d.ts +22 -0
  82. package/dest/sequencer/requests_tracker.d.ts.map +1 -0
  83. package/dest/sequencer/requests_tracker.js +33 -0
  84. package/dest/sequencer/sequencer.d.ts +181 -44
  85. package/dest/sequencer/sequencer.d.ts.map +1 -1
  86. package/dest/sequencer/sequencer.js +614 -216
  87. package/dest/sequencer/types.d.ts +2 -2
  88. package/dest/sequencer/types.d.ts.map +1 -1
  89. package/dest/test/index.d.ts +5 -7
  90. package/dest/test/index.d.ts.map +1 -1
  91. package/dest/test/mock_checkpoint_builder.d.ts +12 -12
  92. package/dest/test/mock_checkpoint_builder.d.ts.map +1 -1
  93. package/dest/test/mock_checkpoint_builder.js +45 -36
  94. package/dest/test/utils.d.ts +17 -3
  95. package/dest/test/utils.d.ts.map +1 -1
  96. package/dest/test/utils.js +28 -9
  97. package/package.json +28 -28
  98. package/src/client/sequencer-client.ts +110 -47
  99. package/src/config.ts +120 -55
  100. package/src/global_variable_builder/README.md +44 -0
  101. package/src/global_variable_builder/fee_predictor.ts +182 -0
  102. package/src/global_variable_builder/fee_provider.ts +97 -0
  103. package/src/global_variable_builder/global_builder.ts +20 -89
  104. package/src/global_variable_builder/index.ts +3 -1
  105. package/src/publisher/config.ts +173 -40
  106. package/src/publisher/index.ts +3 -0
  107. package/src/publisher/l1_to_l2_messaging.ts +85 -0
  108. package/src/publisher/l1_tx_failed_store/factory.ts +32 -0
  109. package/src/publisher/l1_tx_failed_store/failed_tx_store.ts +57 -0
  110. package/src/publisher/l1_tx_failed_store/file_store_failed_tx_store.ts +46 -0
  111. package/src/publisher/l1_tx_failed_store/index.ts +3 -0
  112. package/src/publisher/sequencer-bundle-simulator.ts +254 -0
  113. package/src/publisher/sequencer-publisher-factory.ts +38 -9
  114. package/src/publisher/sequencer-publisher-metrics.ts +7 -3
  115. package/src/publisher/sequencer-publisher.ts +635 -460
  116. package/src/publisher/write_json.ts +78 -0
  117. package/src/sequencer/automine/README.md +60 -0
  118. package/src/sequencer/automine/automine_factory.ts +152 -0
  119. package/src/sequencer/automine/automine_sequencer.ts +796 -0
  120. package/src/sequencer/automine/index.ts +6 -0
  121. package/src/sequencer/checkpoint_proposal_job.ts +1133 -326
  122. package/src/sequencer/checkpoint_proposal_job_metrics.ts +128 -0
  123. package/src/sequencer/checkpoint_voter.ts +1 -12
  124. package/src/sequencer/errors.ts +0 -15
  125. package/src/sequencer/events.ts +66 -5
  126. package/src/sequencer/metrics.ts +164 -39
  127. package/src/sequencer/requests_tracker.ts +43 -0
  128. package/src/sequencer/sequencer.ts +729 -242
  129. package/src/sequencer/types.ts +1 -1
  130. package/src/test/index.ts +4 -6
  131. package/src/test/mock_checkpoint_builder.ts +65 -53
  132. package/src/test/utils.ts +64 -10
  133. package/dest/sequencer/timetable.d.ts +0 -90
  134. package/dest/sequencer/timetable.d.ts.map +0 -1
  135. package/dest/sequencer/timetable.js +0 -226
  136. package/src/sequencer/README.md +0 -531
  137. package/src/sequencer/timetable.ts +0 -282
@@ -0,0 +1,43 @@
1
+ /** A tracked request: the awaitable to wait on, plus an optional interrupt to cancel it early. */
2
+ type TrackedRequest = { promise: Promise<unknown>; interrupt?: () => void };
3
+
4
+ /**
5
+ * Tracks fire-and-forget requests so a shutdown path can interrupt any in-flight work and await it to
6
+ * settle. Each tracked request is a promise plus an optional interrupt callback; the entry removes itself
7
+ * from the bag once its promise settles, so the tracker only ever holds requests that are still in flight.
8
+ */
9
+ export class RequestsTracker {
10
+ private readonly requests = new Map<number, TrackedRequest>();
11
+ private nextId = 0;
12
+
13
+ /** Number of in-flight requests currently tracked. */
14
+ public get size(): number {
15
+ return this.requests.size;
16
+ }
17
+
18
+ /**
19
+ * Tracks a fire-and-forget request. `interrupt`, when provided, is invoked by {@link interruptRequests}
20
+ * to cancel the in-flight work so its promise settles promptly. The entry auto-removes once `promise`
21
+ * settles, whether it resolves or rejects.
22
+ */
23
+ public trackRequest(promise: Promise<unknown>, interrupt?: () => void): void {
24
+ const id = this.nextId++;
25
+ const settled = promise.then(
26
+ () => this.requests.delete(id),
27
+ () => this.requests.delete(id),
28
+ );
29
+ this.requests.set(id, { promise: settled, interrupt });
30
+ }
31
+
32
+ /** Interrupts every in-flight request that was tracked with an interrupt callback. */
33
+ public interruptRequests(): void {
34
+ for (const { interrupt } of this.requests.values()) {
35
+ interrupt?.();
36
+ }
37
+ }
38
+
39
+ /** Awaits every currently in-flight request to settle. */
40
+ public async awaitRequests(): Promise<void> {
41
+ await Promise.all([...this.requests.values()].map(request => request.promise));
42
+ }
43
+ }