@aztec/foundation 0.0.1-commit.a072138 → 0.0.1-commit.a5db02d

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 (317) hide show
  1. package/dest/array/sorted_array.d.ts +6 -1
  2. package/dest/array/sorted_array.d.ts.map +1 -1
  3. package/dest/array/sorted_array.js +18 -15
  4. package/dest/bigint-buffer/index.d.ts +1 -1
  5. package/dest/bigint-buffer/index.d.ts.map +1 -1
  6. package/dest/bigint-buffer/index.js +6 -1
  7. package/dest/branded-types/block_number.d.ts +3 -3
  8. package/dest/branded-types/block_number.d.ts.map +1 -1
  9. package/dest/branded-types/block_number.js +15 -4
  10. package/dest/branded-types/buffer32_hash.d.ts +27 -0
  11. package/dest/branded-types/buffer32_hash.d.ts.map +1 -0
  12. package/dest/branded-types/buffer32_hash.js +12 -0
  13. package/dest/branded-types/checkpoint_number.d.ts +9 -3
  14. package/dest/branded-types/checkpoint_number.d.ts.map +1 -1
  15. package/dest/branded-types/checkpoint_number.js +11 -0
  16. package/dest/branded-types/epoch.d.ts +2 -2
  17. package/dest/branded-types/epoch.d.ts.map +1 -1
  18. package/dest/branded-types/index.d.ts +2 -1
  19. package/dest/branded-types/index.d.ts.map +1 -1
  20. package/dest/branded-types/index.js +1 -0
  21. package/dest/branded-types/index_within_checkpoint.d.ts +2 -2
  22. package/dest/branded-types/index_within_checkpoint.d.ts.map +1 -1
  23. package/dest/branded-types/slot.d.ts +5 -2
  24. package/dest/branded-types/slot.d.ts.map +1 -1
  25. package/dest/branded-types/slot.js +3 -0
  26. package/dest/buffer/buffer16.d.ts +3 -1
  27. package/dest/buffer/buffer16.d.ts.map +1 -1
  28. package/dest/buffer/buffer32.d.ts +28 -61
  29. package/dest/buffer/buffer32.d.ts.map +1 -1
  30. package/dest/buffer/buffer32.js +29 -63
  31. package/dest/buffer/index.d.ts +2 -1
  32. package/dest/buffer/index.d.ts.map +1 -1
  33. package/dest/buffer/index.js +1 -0
  34. package/dest/buffer/utils.d.ts +3 -0
  35. package/dest/buffer/utils.d.ts.map +1 -0
  36. package/dest/buffer/utils.js +7 -0
  37. package/dest/collection/array.d.ts +11 -1
  38. package/dest/collection/array.d.ts.map +1 -1
  39. package/dest/collection/array.js +33 -0
  40. package/dest/collection/index.d.ts +3 -1
  41. package/dest/collection/index.d.ts.map +1 -1
  42. package/dest/collection/index.js +2 -0
  43. package/dest/collection/lru_map.d.ts +41 -0
  44. package/dest/collection/lru_map.d.ts.map +1 -0
  45. package/dest/collection/lru_map.js +119 -0
  46. package/dest/collection/lru_set.d.ts +35 -0
  47. package/dest/collection/lru_set.d.ts.map +1 -0
  48. package/dest/collection/lru_set.js +95 -0
  49. package/dest/committable/committable.js +1 -1
  50. package/dest/config/env_var.d.ts +2 -2
  51. package/dest/config/env_var.d.ts.map +1 -1
  52. package/dest/config/index.d.ts +67 -37
  53. package/dest/config/index.d.ts.map +1 -1
  54. package/dest/config/index.js +86 -70
  55. package/dest/config/network_config.d.ts +15 -41
  56. package/dest/config/network_config.d.ts.map +1 -1
  57. package/dest/config/network_config.js +4 -1
  58. package/dest/config/network_name.d.ts +2 -2
  59. package/dest/config/network_name.d.ts.map +1 -1
  60. package/dest/config/network_name.js +3 -3
  61. package/dest/config/secret_value.d.ts +2 -2
  62. package/dest/config/secret_value.d.ts.map +1 -1
  63. package/dest/crypto/aes128/index.d.ts +2 -1
  64. package/dest/crypto/aes128/index.d.ts.map +1 -1
  65. package/dest/crypto/aes128/index.js +11 -2
  66. package/dest/crypto/bls/bn254_keystore.d.ts +10 -177
  67. package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -1
  68. package/dest/crypto/bls/bn254_keystore.js +22 -34
  69. package/dest/crypto/poseidon/index.d.ts +1 -1
  70. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  71. package/dest/crypto/poseidon/index.js +40 -33
  72. package/dest/crypto/schnorr/index.d.ts +8 -7
  73. package/dest/crypto/schnorr/index.d.ts.map +1 -1
  74. package/dest/crypto/schnorr/index.js +6 -6
  75. package/dest/crypto/schnorr/signature.d.ts +9 -29
  76. package/dest/crypto/schnorr/signature.d.ts.map +1 -1
  77. package/dest/crypto/schnorr/signature.js +20 -36
  78. package/dest/crypto/secp256k1-signer/utils.d.ts +12 -1
  79. package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
  80. package/dest/crypto/secp256k1-signer/utils.js +26 -0
  81. package/dest/curves/bls12/field.d.ts +3 -3
  82. package/dest/curves/bls12/field.d.ts.map +1 -1
  83. package/dest/curves/bls12/field.js +0 -5
  84. package/dest/curves/bls12/point.d.ts +2 -2
  85. package/dest/curves/bls12/point.d.ts.map +1 -1
  86. package/dest/curves/bn254/field.d.ts +24 -19
  87. package/dest/curves/bn254/field.d.ts.map +1 -1
  88. package/dest/curves/bn254/field.js +28 -19
  89. package/dest/curves/grumpkin/point.d.ts +14 -28
  90. package/dest/curves/grumpkin/point.d.ts.map +1 -1
  91. package/dest/curves/grumpkin/point.js +29 -43
  92. package/dest/eth-address/index.d.ts +2 -2
  93. package/dest/eth-address/index.d.ts.map +1 -1
  94. package/dest/eth-address/index.js +0 -3
  95. package/dest/eth-signature/eth_signature.d.ts +3 -2
  96. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  97. package/dest/eth-signature/eth_signature.js +7 -2
  98. package/dest/fifo/fifo_frame_reader.d.ts +41 -0
  99. package/dest/fifo/fifo_frame_reader.d.ts.map +1 -0
  100. package/dest/fifo/fifo_frame_reader.js +74 -0
  101. package/dest/fifo/index.d.ts +2 -0
  102. package/dest/fifo/index.d.ts.map +1 -0
  103. package/dest/fifo/index.js +1 -0
  104. package/dest/fifo_set/fifo_set.d.ts +15 -0
  105. package/dest/fifo_set/fifo_set.d.ts.map +1 -0
  106. package/dest/fifo_set/fifo_set.js +39 -0
  107. package/dest/fifo_set/index.d.ts +2 -0
  108. package/dest/fifo_set/index.d.ts.map +1 -0
  109. package/dest/fifo_set/index.js +1 -0
  110. package/dest/jest/setup.js +24 -0
  111. package/dest/json-rpc/client/fetch.d.ts +1 -1
  112. package/dest/json-rpc/client/fetch.d.ts.map +1 -1
  113. package/dest/json-rpc/client/fetch.js +4 -3
  114. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +2 -1
  115. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
  116. package/dest/json-rpc/client/safe_json_rpc_client.js +3 -3
  117. package/dest/json-rpc/client/undici.d.ts +1 -1
  118. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  119. package/dest/json-rpc/client/undici.js +5 -3
  120. package/dest/json-rpc/fixtures/test_state.d.ts +4 -8
  121. package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
  122. package/dest/json-rpc/fixtures/test_state.js +57 -17
  123. package/dest/json-rpc/server/api_key_auth.d.ts +19 -0
  124. package/dest/json-rpc/server/api_key_auth.d.ts.map +1 -0
  125. package/dest/json-rpc/server/api_key_auth.js +57 -0
  126. package/dest/json-rpc/server/index.d.ts +2 -1
  127. package/dest/json-rpc/server/index.d.ts.map +1 -1
  128. package/dest/json-rpc/server/index.js +1 -0
  129. package/dest/json-rpc/server/safe_json_rpc_server.d.ts +8 -3
  130. package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
  131. package/dest/json-rpc/server/safe_json_rpc_server.js +27 -13
  132. package/dest/log/bigint-utils.d.ts +5 -0
  133. package/dest/log/bigint-utils.d.ts.map +1 -0
  134. package/dest/log/bigint-utils.js +21 -0
  135. package/dest/log/gcloud-logger-config.d.ts +1 -1
  136. package/dest/log/gcloud-logger-config.d.ts.map +1 -1
  137. package/dest/log/gcloud-logger-config.js +3 -0
  138. package/dest/log/log-filters.d.ts +17 -4
  139. package/dest/log/log-filters.d.ts.map +1 -1
  140. package/dest/log/log-filters.js +26 -12
  141. package/dest/log/pino-logger.d.ts +1 -1
  142. package/dest/log/pino-logger.d.ts.map +1 -1
  143. package/dest/log/pino-logger.js +23 -4
  144. package/dest/noir/noir_package_config.d.ts +19 -104
  145. package/dest/noir/noir_package_config.d.ts.map +1 -1
  146. package/dest/noir/noir_package_config.js +1 -1
  147. package/dest/promise/running-promise.d.ts +5 -4
  148. package/dest/promise/running-promise.d.ts.map +1 -1
  149. package/dest/promise/running-promise.js +7 -3
  150. package/dest/queue/base_memory_queue.d.ts +2 -2
  151. package/dest/queue/base_memory_queue.d.ts.map +1 -1
  152. package/dest/queue/batch_queue.d.ts +1 -1
  153. package/dest/queue/batch_queue.d.ts.map +1 -1
  154. package/dest/queue/batch_queue.js +1 -0
  155. package/dest/retry/index.d.ts +31 -3
  156. package/dest/retry/index.d.ts.map +1 -1
  157. package/dest/retry/index.js +44 -2
  158. package/dest/schemas/api.d.ts +12 -10
  159. package/dest/schemas/api.d.ts.map +1 -1
  160. package/dest/schemas/api.js +7 -1
  161. package/dest/schemas/parse.d.ts +4 -4
  162. package/dest/schemas/parse.d.ts.map +1 -1
  163. package/dest/schemas/parse.js +6 -5
  164. package/dest/schemas/schemas.d.ts +15 -15
  165. package/dest/schemas/types.d.ts +3 -3
  166. package/dest/schemas/types.d.ts.map +1 -1
  167. package/dest/schemas/utils.d.ts +7 -11
  168. package/dest/schemas/utils.d.ts.map +1 -1
  169. package/dest/schemas/utils.js +2 -18
  170. package/dest/serialize/buffer_reader.d.ts +8 -1
  171. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  172. package/dest/serialize/buffer_reader.js +13 -0
  173. package/dest/serialize/buffer_sink.d.ts +134 -0
  174. package/dest/serialize/buffer_sink.d.ts.map +1 -0
  175. package/dest/serialize/buffer_sink.js +297 -0
  176. package/dest/serialize/index.d.ts +2 -1
  177. package/dest/serialize/index.d.ts.map +1 -1
  178. package/dest/serialize/index.js +1 -0
  179. package/dest/serialize/serialize.d.ts +19 -1
  180. package/dest/serialize/serialize.d.ts.map +1 -1
  181. package/dest/serialize/serialize.js +31 -0
  182. package/dest/sleep/index.d.ts +2 -1
  183. package/dest/sleep/index.d.ts.map +1 -1
  184. package/dest/sleep/index.js +10 -1
  185. package/dest/string/index.js +1 -1
  186. package/dest/testing/files/index.d.ts +2 -3
  187. package/dest/testing/files/index.d.ts.map +1 -1
  188. package/dest/testing/files/index.js +1 -2
  189. package/dest/timer/date.d.ts +25 -1
  190. package/dest/timer/date.d.ts.map +1 -1
  191. package/dest/timer/date.js +33 -0
  192. package/dest/timer/index.d.ts +2 -2
  193. package/dest/timer/index.d.ts.map +1 -1
  194. package/dest/timer/index.js +1 -1
  195. package/dest/timer/timeout.d.ts +3 -1
  196. package/dest/timer/timeout.d.ts.map +1 -1
  197. package/dest/timer/timeout.js +26 -0
  198. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +11 -2
  199. package/dest/transport/dispatch/create_dispatch_proxy.d.ts.map +1 -1
  200. package/dest/transport/index.d.ts +1 -2
  201. package/dest/transport/index.d.ts.map +1 -1
  202. package/dest/transport/index.js +0 -1
  203. package/dest/transport/transport_client.js +2 -2
  204. package/dest/trees/balanced_merkle_tree_root.d.ts +2 -3
  205. package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -1
  206. package/dest/trees/balanced_merkle_tree_root.js +2 -3
  207. package/dest/trees/hasher.d.ts +3 -2
  208. package/dest/trees/hasher.d.ts.map +1 -1
  209. package/dest/trees/hasher.js +5 -5
  210. package/dest/trees/indexed_merkle_tree_calculator.d.ts +1 -1
  211. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
  212. package/dest/trees/indexed_merkle_tree_calculator.js +5 -1
  213. package/dest/trees/membership_witness.d.ts +2 -6
  214. package/dest/trees/membership_witness.d.ts.map +1 -1
  215. package/dest/trees/membership_witness.js +0 -9
  216. package/dest/trees/merkle_tree_calculator.d.ts +4 -2
  217. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  218. package/dest/trees/merkle_tree_calculator.js +1 -5
  219. package/dest/trees/sibling_path.d.ts +5 -4
  220. package/dest/trees/sibling_path.d.ts.map +1 -1
  221. package/dest/trees/sibling_path.js +10 -8
  222. package/dest/trees/unbalanced_merkle_tree_root.d.ts +2 -3
  223. package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -1
  224. package/dest/trees/unbalanced_merkle_tree_root.js +2 -3
  225. package/dest/types/index.d.ts +23 -1
  226. package/dest/types/index.d.ts.map +1 -1
  227. package/dest/types/index.js +15 -0
  228. package/package.json +26 -4
  229. package/src/array/sorted_array.ts +22 -17
  230. package/src/bigint-buffer/index.ts +6 -1
  231. package/src/branded-types/block_number.ts +20 -2
  232. package/src/branded-types/buffer32_hash.ts +38 -0
  233. package/src/branded-types/checkpoint_number.ts +16 -1
  234. package/src/branded-types/epoch.ts +1 -1
  235. package/src/branded-types/index.ts +1 -0
  236. package/src/branded-types/index_within_checkpoint.ts +1 -1
  237. package/src/branded-types/slot.ts +6 -1
  238. package/src/buffer/buffer16.ts +3 -0
  239. package/src/buffer/buffer32.ts +39 -68
  240. package/src/buffer/index.ts +1 -0
  241. package/src/buffer/utils.ts +8 -0
  242. package/src/collection/array.ts +34 -0
  243. package/src/collection/index.ts +2 -0
  244. package/src/collection/lru_map.ts +143 -0
  245. package/src/collection/lru_set.ts +115 -0
  246. package/src/committable/committable.ts +1 -1
  247. package/src/config/env_var.ts +84 -23
  248. package/src/config/index.ts +157 -121
  249. package/src/config/network_config.ts +3 -0
  250. package/src/config/network_name.ts +6 -6
  251. package/src/config/secret_value.ts +1 -1
  252. package/src/crypto/aes128/index.ts +11 -2
  253. package/src/crypto/bls/bn254_keystore.ts +33 -43
  254. package/src/crypto/poseidon/index.ts +42 -34
  255. package/src/crypto/schnorr/index.ts +9 -8
  256. package/src/crypto/schnorr/signature.ts +17 -46
  257. package/src/crypto/secp256k1-signer/utils.ts +32 -0
  258. package/src/curves/bls12/field.ts +0 -7
  259. package/src/curves/bn254/field.ts +41 -36
  260. package/src/curves/grumpkin/point.ts +23 -40
  261. package/src/eth-address/index.ts +0 -4
  262. package/src/eth-signature/eth_signature.ts +7 -1
  263. package/src/fifo/fifo_frame_reader.ts +98 -0
  264. package/src/fifo/index.ts +1 -0
  265. package/src/fifo_set/fifo_set.ts +52 -0
  266. package/src/fifo_set/index.ts +1 -0
  267. package/src/jest/setup.mjs +27 -0
  268. package/src/json-rpc/client/fetch.ts +4 -3
  269. package/src/json-rpc/client/safe_json_rpc_client.ts +4 -2
  270. package/src/json-rpc/client/undici.ts +5 -3
  271. package/src/json-rpc/fixtures/test_state.ts +10 -10
  272. package/src/json-rpc/server/api_key_auth.ts +63 -0
  273. package/src/json-rpc/server/index.ts +1 -0
  274. package/src/json-rpc/server/safe_json_rpc_server.ts +31 -13
  275. package/src/log/bigint-utils.ts +25 -0
  276. package/src/log/gcloud-logger-config.ts +5 -0
  277. package/src/log/log-filters.ts +29 -11
  278. package/src/log/pino-logger.ts +25 -4
  279. package/src/noir/noir_package_config.ts +32 -20
  280. package/src/promise/running-promise.ts +8 -5
  281. package/src/queue/base_memory_queue.ts +1 -1
  282. package/src/queue/batch_queue.ts +1 -0
  283. package/src/retry/index.ts +66 -4
  284. package/src/schemas/api.ts +25 -25
  285. package/src/schemas/parse.ts +9 -6
  286. package/src/schemas/schemas.ts +4 -4
  287. package/src/schemas/types.ts +2 -2
  288. package/src/schemas/utils.ts +4 -38
  289. package/src/serialize/buffer_reader.ts +15 -0
  290. package/src/serialize/buffer_sink.ts +350 -0
  291. package/src/serialize/index.ts +1 -0
  292. package/src/serialize/serialize.ts +32 -0
  293. package/src/sleep/index.ts +10 -1
  294. package/src/string/index.ts +1 -1
  295. package/src/testing/files/index.ts +1 -2
  296. package/src/timer/date.ts +48 -0
  297. package/src/timer/index.ts +1 -1
  298. package/src/timer/timeout.ts +31 -0
  299. package/src/transport/dispatch/create_dispatch_proxy.ts +11 -1
  300. package/src/transport/index.ts +0 -1
  301. package/src/transport/transport_client.ts +2 -2
  302. package/src/trees/balanced_merkle_tree_root.ts +2 -5
  303. package/src/trees/hasher.ts +6 -3
  304. package/src/trees/indexed_merkle_tree_calculator.ts +5 -1
  305. package/src/trees/membership_witness.ts +0 -8
  306. package/src/trees/merkle_tree_calculator.ts +4 -10
  307. package/src/trees/sibling_path.ts +11 -6
  308. package/src/trees/unbalanced_merkle_tree_root.ts +2 -5
  309. package/src/types/index.ts +47 -0
  310. package/dest/crypto/serialize.d.ts +0 -51
  311. package/dest/crypto/serialize.d.ts.map +0 -1
  312. package/dest/crypto/serialize.js +0 -68
  313. package/dest/transport/dispatch/create_dispatch_fn.d.ts +0 -25
  314. package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +0 -1
  315. package/dest/transport/dispatch/create_dispatch_fn.js +0 -17
  316. package/src/crypto/serialize.ts +0 -85
  317. package/src/transport/dispatch/create_dispatch_fn.ts +0 -35
@@ -138,6 +138,26 @@ export function unique<T>(arr: T[]): T[] {
138
138
  return [...new Set(arr)];
139
139
  }
140
140
 
141
+ /**
142
+ * Removes duplicates from the given array using a key function. The first occurrence of each key is kept.
143
+ * @param arr - The array.
144
+ * @param keyFn - A function that returns a primitive key for each element. Elements with the same key are
145
+ * considered duplicates.
146
+ * @returns A new array.
147
+ */
148
+ export function uniqueBy<T, K extends string | number | bigint>(arr: T[], keyFn: (item: T) => K): T[] {
149
+ const seen = new Set<K>();
150
+ const result: T[] = [];
151
+ for (const item of arr) {
152
+ const key = keyFn(item);
153
+ if (!seen.has(key)) {
154
+ seen.add(key);
155
+ result.push(item);
156
+ }
157
+ }
158
+ return result;
159
+ }
160
+
141
161
  /**
142
162
  * Removes all undefined elements from the array.
143
163
  * @param arr - The array.
@@ -315,3 +335,17 @@ export function partition<T>(items: T[], predicate: (item: T) => boolean): [T[],
315
335
  }
316
336
  return [pass, fail];
317
337
  }
338
+
339
+ /** Partitions the given iterable into two arrays based on the predicate. */
340
+ export async function partitionAsync<T>(items: T[], predicate: (item: T) => Promise<boolean>): Promise<[T[], T[]]> {
341
+ const pass: T[] = [];
342
+ const fail: T[] = [];
343
+ for (const item of items) {
344
+ if (await predicate(item)) {
345
+ pass.push(item);
346
+ } else {
347
+ fail.push(item);
348
+ }
349
+ }
350
+ return [pass, fail];
351
+ }
@@ -1,2 +1,4 @@
1
1
  export * from './array.js';
2
+ export * from './lru_map.js';
3
+ export * from './lru_set.js';
2
4
  export * from './object.js';
@@ -0,0 +1,143 @@
1
+ /** Node in a doubly-linked list used by {@link LruMap}. */
2
+ type LruNode<K, V> = {
3
+ key: K;
4
+ value: V;
5
+ prev: LruNode<K, V> | undefined;
6
+ next: LruNode<K, V> | undefined;
7
+ };
8
+
9
+ /**
10
+ * A bounded key-value map with Least Recently Used (LRU) eviction.
11
+ * Both {@link get} and {@link set} count as an access and refresh the entry's
12
+ * recency, so entries that are actively used stay in the map longest.
13
+ *
14
+ * Uses a doubly-linked list for O(1) ordering and a Map for O(1) lookup.
15
+ * Head = least recent, tail = most recent.
16
+ */
17
+ export class LruMap<K, V> {
18
+ /** Map from key to its linked-list node for O(1) lookup. */
19
+ private readonly map = new Map<K, LruNode<K, V>>();
20
+ private head: LruNode<K, V> | undefined;
21
+ private tail: LruNode<K, V> | undefined;
22
+
23
+ constructor(private readonly maxSize: number) {
24
+ if (maxSize < 1) {
25
+ throw new Error('LruMap maxSize must be at least 1');
26
+ }
27
+ }
28
+
29
+ /** Number of entries in the map. */
30
+ get size(): number {
31
+ return this.map.size;
32
+ }
33
+
34
+ /** Returns true if the key is present, without refreshing its recency. */
35
+ has(key: K): boolean {
36
+ return this.map.has(key);
37
+ }
38
+
39
+ /**
40
+ * Returns the value for the key, or undefined if absent.
41
+ * Refreshes the entry's recency so it becomes the most recently used.
42
+ */
43
+ get(key: K): V | undefined {
44
+ const node = this.map.get(key);
45
+ if (!node) {
46
+ return undefined;
47
+ }
48
+ this.moveToTail(node);
49
+ return node.value;
50
+ }
51
+
52
+ /**
53
+ * Stores a value for the key, refreshing its recency. If the key already exists, overwrites the value.
54
+ * If the map is at capacity, evicts the least recently used entry.
55
+ */
56
+ set(key: K, value: V): void {
57
+ const existing = this.map.get(key);
58
+ if (existing) {
59
+ existing.value = value;
60
+ this.moveToTail(existing);
61
+ return;
62
+ }
63
+
64
+ if (this.map.size >= this.maxSize) {
65
+ this.evictHead();
66
+ }
67
+
68
+ const node: LruNode<K, V> = { key, value, prev: this.tail, next: undefined };
69
+ if (this.tail) {
70
+ this.tail.next = node;
71
+ } else {
72
+ this.head = node;
73
+ }
74
+ this.tail = node;
75
+ this.map.set(key, node);
76
+ }
77
+
78
+ /** Removes the entry for the key, returning true if it was present. */
79
+ delete(key: K): boolean {
80
+ const node = this.map.get(key);
81
+ if (!node) {
82
+ return false;
83
+ }
84
+ this.unlink(node);
85
+ this.map.delete(key);
86
+ return true;
87
+ }
88
+
89
+ /** Removes all entries from the map. */
90
+ clear(): void {
91
+ this.map.clear();
92
+ this.head = undefined;
93
+ this.tail = undefined;
94
+ }
95
+
96
+ /** Unlinks a node from its current position and relinks it at the tail. */
97
+ private moveToTail(node: LruNode<K, V>): void {
98
+ if (node === this.tail) {
99
+ return;
100
+ }
101
+ this.unlink(node);
102
+
103
+ node.prev = this.tail;
104
+ node.next = undefined;
105
+ if (this.tail) {
106
+ this.tail.next = node;
107
+ } else {
108
+ this.head = node;
109
+ }
110
+ this.tail = node;
111
+ }
112
+
113
+ /** Detaches a node from the linked list, fixing up its neighbours and the head/tail pointers. */
114
+ private unlink(node: LruNode<K, V>): void {
115
+ if (node.prev) {
116
+ node.prev.next = node.next;
117
+ } else {
118
+ this.head = node.next;
119
+ }
120
+ if (node.next) {
121
+ node.next.prev = node.prev;
122
+ } else {
123
+ this.tail = node.prev;
124
+ }
125
+ node.prev = undefined;
126
+ node.next = undefined;
127
+ }
128
+
129
+ /** Evicts the head (least recently used) node. */
130
+ private evictHead(): void {
131
+ const oldHead = this.head;
132
+ if (!oldHead) {
133
+ return;
134
+ }
135
+ this.head = oldHead.next;
136
+ if (this.head) {
137
+ this.head.prev = undefined;
138
+ } else {
139
+ this.tail = undefined;
140
+ }
141
+ this.map.delete(oldHead.key);
142
+ }
143
+ }
@@ -0,0 +1,115 @@
1
+ /** Node in a doubly-linked list used by {@link LruSet}. */
2
+ type LruNode<T> = {
3
+ value: T;
4
+ prev: LruNode<T> | undefined;
5
+ next: LruNode<T> | undefined;
6
+ };
7
+
8
+ /**
9
+ * A bounded set with Least Recently Used (LRU) eviction.
10
+ * Both {@link has} and {@link add} count as an access and refresh the entry's
11
+ * recency, so items that are actively checked stay in the set longest.
12
+ *
13
+ * Uses a doubly-linked list for O(1) ordering and a Map for O(1) lookup.
14
+ * Head = least recent, tail = most recent.
15
+ */
16
+ export class LruSet<T> {
17
+ /** Map from value to its linked-list node for O(1) lookup. */
18
+ private readonly map = new Map<T, LruNode<T>>();
19
+ private head: LruNode<T> | undefined;
20
+ private tail: LruNode<T> | undefined;
21
+
22
+ constructor(private readonly maxSize: number) {
23
+ if (maxSize < 1) {
24
+ throw new Error('LruSet maxSize must be at least 1');
25
+ }
26
+ }
27
+
28
+ /** Number of entries in the set. */
29
+ get size(): number {
30
+ return this.map.size;
31
+ }
32
+
33
+ /**
34
+ * Returns true if the item is in the set.
35
+ * Refreshes the item's recency so it becomes the most recently used.
36
+ */
37
+ has(item: T): boolean {
38
+ const node = this.map.get(item);
39
+ if (!node) {
40
+ return false;
41
+ }
42
+ this.moveToTail(node);
43
+ return true;
44
+ }
45
+
46
+ /**
47
+ * Adds an item to the set. If the item already exists, refreshes its recency.
48
+ * If the set is at capacity, evicts the least recently used item.
49
+ */
50
+ add(item: T): void {
51
+ const existing = this.map.get(item);
52
+ if (existing) {
53
+ this.moveToTail(existing);
54
+ return;
55
+ }
56
+
57
+ if (this.map.size >= this.maxSize) {
58
+ this.evictHead();
59
+ }
60
+
61
+ const node: LruNode<T> = { value: item, prev: this.tail, next: undefined };
62
+ if (this.tail) {
63
+ this.tail.next = node;
64
+ } else {
65
+ this.head = node;
66
+ }
67
+ this.tail = node;
68
+ this.map.set(item, node);
69
+ }
70
+
71
+ /** Removes all entries from the set. */
72
+ clear(): void {
73
+ this.map.clear();
74
+ this.head = undefined;
75
+ this.tail = undefined;
76
+ }
77
+
78
+ /** Unlinks a node from its current position and relinks it at the tail. */
79
+ private moveToTail(node: LruNode<T>): void {
80
+ if (node === this.tail) {
81
+ return;
82
+ }
83
+
84
+ // Unlink
85
+ if (node.prev) {
86
+ node.prev.next = node.next;
87
+ } else {
88
+ this.head = node.next;
89
+ }
90
+ if (node.next) {
91
+ node.next.prev = node.prev;
92
+ }
93
+
94
+ // Relink at tail
95
+ node.prev = this.tail;
96
+ node.next = undefined;
97
+ if (this.tail) {
98
+ this.tail.next = node;
99
+ }
100
+ this.tail = node;
101
+ }
102
+
103
+ /** Evicts the head (least recently used) node. */
104
+ private evictHead(): void {
105
+ const oldHead = this.head!;
106
+ this.map.delete(oldHead.value);
107
+
108
+ this.head = oldHead.next;
109
+ if (this.head) {
110
+ this.head.prev = undefined;
111
+ } else {
112
+ this.tail = undefined;
113
+ }
114
+ }
115
+ }
@@ -24,7 +24,7 @@ export class Committable<T> {
24
24
  * Rolls back the uncommitted value.
25
25
  */
26
26
  public rollback() {
27
- this.nextValue === undefined;
27
+ this.nextValue = undefined;
28
28
  }
29
29
 
30
30
  /**
@@ -1,17 +1,22 @@
1
1
  export type EnvVar =
2
2
  | 'REGISTRY_CONTRACT_ADDRESS'
3
3
  | 'FEE_ASSET_HANDLER_CONTRACT_ADDRESS'
4
- | 'SLASH_FACTORY_CONTRACT_ADDRESS'
5
4
  | 'ACVM_BINARY_PATH'
6
5
  | 'ACVM_WORKING_DIRECTORY'
7
6
  | 'API_KEY'
8
7
  | 'API_PREFIX'
9
- | 'ARCHIVER_MAX_LOGS'
10
8
  | 'ARCHIVER_POLLING_INTERVAL_MS'
9
+ | 'ARCHIVER_SKIP_HISTORICAL_LOGS_CHECK'
11
10
  | 'ARCHIVER_URL'
12
11
  | 'ARCHIVER_VIEM_POLLING_INTERVAL_MS'
13
12
  | 'ARCHIVER_BATCH_SIZE'
13
+ | 'ARCHIVER_ORPHAN_PRUNE_NO_PROPOSAL_TOLERANCE'
14
+ | 'ARCHIVER_SKIP_ORPHAN_PROPOSED_BLOCK_PRUNING'
14
15
  | 'AZTEC_ADMIN_PORT'
16
+ | 'AZTEC_NODE_DEBUG'
17
+ | 'AZTEC_ADMIN_API_KEY_HASH'
18
+ | 'AZTEC_DISABLE_ADMIN_API_KEY'
19
+ | 'AZTEC_RESET_ADMIN_API_KEY'
15
20
  | 'AZTEC_NODE_ADMIN_URL'
16
21
  | 'AZTEC_NODE_URL'
17
22
  | 'AZTEC_PORT'
@@ -20,6 +25,9 @@ export type EnvVar =
20
25
  | 'BB_WORKING_DIRECTORY'
21
26
  | 'BB_NUM_IVC_VERIFIERS'
22
27
  | 'BB_IVC_CONCURRENCY'
28
+ | 'BB_CHONK_VERIFY_MAX_BATCH'
29
+ | 'BB_CHONK_VERIFY_BATCH_CONCURRENCY'
30
+ | 'BB_DEBUG_OUTPUT_DIR'
23
31
  | 'BOOTSTRAP_NODES'
24
32
  | 'BLOB_ARCHIVE_API_URL'
25
33
  | 'BLOB_FILE_STORE_URLS'
@@ -47,7 +55,10 @@ export type EnvVar =
47
55
  | 'BOT_TX_MINED_WAIT_SECONDS'
48
56
  | 'BOT_MAX_CONSECUTIVE_ERRORS'
49
57
  | 'BOT_STOP_WHEN_UNHEALTHY'
50
- | 'BOT_AMM_TXS'
58
+ | 'BOT_MODE'
59
+ | 'BOT_L2_TO_L1_MESSAGES_PER_TX'
60
+ | 'BOT_L1_TO_L2_SEED_COUNT'
61
+ | 'BOT_L1_TO_L2_SEED_INTERVAL'
51
62
  | 'COINBASE'
52
63
  | 'CRS_PATH'
53
64
  | 'DATA_DIRECTORY'
@@ -56,6 +67,7 @@ export type EnvVar =
56
67
  | 'BLOB_SINK_MAP_SIZE_KB'
57
68
  | 'P2P_STORE_MAP_SIZE_KB'
58
69
  | 'PROVER_BROKER_STORE_MAP_SIZE_KB'
70
+ | 'SIGNING_PROTECTION_MAP_SIZE_KB'
59
71
  | 'WS_DB_MAP_SIZE_KB'
60
72
  | 'ARCHIVE_TREE_MAP_SIZE_KB'
61
73
  | 'NULLIFIER_TREE_MAP_SIZE_KB'
@@ -64,6 +76,9 @@ export type EnvVar =
64
76
  | 'PUBLIC_DATA_TREE_MAP_SIZE_KB'
65
77
  | 'DEBUG'
66
78
  | 'DEBUG_P2P_DISABLE_COLOCATION_PENALTY'
79
+ | 'ENABLE_PROVER_NODE'
80
+ | 'USE_AUTOMINE_SEQUENCER'
81
+ | 'AUTOMINE_ENABLE_PROVE_EPOCH'
67
82
  | 'ETHEREUM_HOSTS'
68
83
  | 'ETHEREUM_DEBUG_HOSTS'
69
84
  | 'ETHEREUM_ALLOW_NO_DEBUG_HOSTS'
@@ -73,8 +88,10 @@ export type EnvVar =
73
88
  | 'KEY_STORE_DIRECTORY'
74
89
  | 'L1_CHAIN_ID'
75
90
  | 'L1_CONSENSUS_HOST_URLS'
91
+ | 'ETHEREUM_HTTP_TIMEOUT_MS'
76
92
  | 'L1_CONSENSUS_HOST_API_KEYS'
77
93
  | 'L1_CONSENSUS_HOST_API_KEY_HEADERS'
94
+ | 'L1_TX_FAILED_STORE'
78
95
  | 'LOG_JSON'
79
96
  | 'LOG_MULTILINE'
80
97
  | 'LOG_NO_COLOR_PER_ACTOR'
@@ -82,14 +99,16 @@ export type EnvVar =
82
99
  | 'MNEMONIC'
83
100
  | 'NETWORK'
84
101
  | 'NETWORK_CONFIG_LOCATION'
85
- | 'NO_PXE'
102
+ | 'ALLOW_OVERRIDING_NETWORK_CONFIG'
86
103
  | 'USE_GCLOUD_LOGGING'
87
104
  | 'OTEL_EXPORTER_OTLP_METRICS_ENDPOINT'
88
105
  | 'OTEL_EXPORTER_OTLP_TRACES_ENDPOINT'
89
106
  | 'OTEL_EXPORTER_OTLP_LOGS_ENDPOINT'
90
107
  | 'OTEL_COLLECT_INTERVAL_MS'
108
+ | 'OTEL_BSP_MAX_QUEUE_SIZE'
91
109
  | 'OTEL_EXCLUDE_METRICS'
92
110
  | 'OTEL_INCLUDE_METRICS'
111
+ | 'OTEL_MIN_TRACE_DURATION_MS'
93
112
  | 'OTEL_EXPORT_TIMEOUT_MS'
94
113
  | 'PUBLIC_OTEL_EXPORTER_OTLP_METRICS_ENDPOINT'
95
114
  | 'PUBLIC_OTEL_INCLUDE_METRICS'
@@ -118,10 +137,14 @@ export type EnvVar =
118
137
  | 'P2P_GOSSIPSUB_TX_INVALID_MESSAGE_DELIVERIES_WEIGHT'
119
138
  | 'P2P_GOSSIPSUB_TX_TOPIC_WEIGHT'
120
139
  | 'P2P_L2_QUEUE_SIZE'
140
+ | 'P2P_MAX_GOSSIP_CLOCK_DISPARITY_MS'
121
141
  | 'P2P_MAX_PEERS'
142
+ | 'P2P_PEER_BAN_DURATION_SECONDS'
122
143
  | 'P2P_PEER_CHECK_INTERVAL_MS'
144
+ | 'P2P_PEER_FAILED_BAN_TIME_MS'
123
145
  | 'P2P_PEER_PENALTY_VALUES'
124
146
  | 'P2P_QUERY_FOR_IP'
147
+ | 'P2P_PUBLIC_IP_SERVICES'
125
148
  | 'P2P_REQRESP_INDIVIDUAL_REQUEST_TIMEOUT_MS'
126
149
  | 'P2P_REQRESP_DIAL_TIMEOUT_MS'
127
150
  | 'P2P_REQRESP_OVERALL_REQUEST_TIMEOUT_MS'
@@ -140,9 +163,13 @@ export type EnvVar =
140
163
  | 'P2P_PREFERRED_PEERS'
141
164
  | 'P2P_MAX_PENDING_TX_COUNT'
142
165
  | 'P2P_SEEN_MSG_CACHE_SIZE'
143
- | 'P2P_DROP_TX'
144
166
  | 'P2P_DROP_TX_CHANCE'
145
167
  | 'P2P_TX_POOL_DELETE_TXS_AFTER_REORG'
168
+ | 'P2P_MIN_TX_POOL_AGE_MS'
169
+ | 'P2P_MISSING_TX_COLLECTION_DEADLINE_SLOTS'
170
+ | 'P2P_RPC_PRICE_BUMP_PERCENTAGE'
171
+ | 'P2P_KEEP_FINALIZED_TXS_FOR_SLOTS'
172
+ | 'P2P_TX_VALIDATION_CACHE_SIZE'
146
173
  | 'DEBUG_P2P_INSTRUMENT_MESSAGES'
147
174
  | 'PEER_ID_PRIVATE_KEY'
148
175
  | 'PEER_ID_PRIVATE_KEY_PATH'
@@ -156,8 +183,11 @@ export type EnvVar =
156
183
  | 'PROVER_BROKER_BATCH_INTERVAL_MS'
157
184
  | 'PROVER_BROKER_BATCH_SIZE'
158
185
  | 'PROVER_BROKER_MAX_EPOCHS_TO_KEEP_RESULTS_FOR'
186
+ | 'PROVER_BROKER_DEBUG_REPLAY_ENABLED'
159
187
  | 'PROVER_CANCEL_JOBS_ON_STOP'
188
+ | 'PROVER_ENQUEUE_CONCURRENCY'
160
189
  | 'PROVER_COORDINATION_NODE_URLS'
190
+ | 'PROVER_PROOF_STORE'
161
191
  | 'PROVER_FAILED_PROOF_STORE'
162
192
  | 'PROVER_NODE_FAILED_EPOCH_STORE'
163
193
  | 'PROVER_NODE_DISABLE_PROOF_PUBLISH'
@@ -179,6 +209,7 @@ export type EnvVar =
179
209
  | 'PROVER_TEST_DELAY_MS'
180
210
  | 'PROVER_TEST_DELAY_TYPE'
181
211
  | 'PROVER_TEST_VERIFICATION_DELAY_MS'
212
+ | 'PXE_AUTO_SYNC'
182
213
  | 'PXE_L2_BLOCK_BATCH_SIZE'
183
214
  | 'PXE_PROVER_ENABLED'
184
215
  | 'PXE_SYNC_CHAIN_TIP'
@@ -186,41 +217,57 @@ export type EnvVar =
186
217
  | 'RPC_MAX_BODY_SIZE'
187
218
  | 'RPC_SIMULATE_PUBLIC_MAX_GAS_LIMIT'
188
219
  | 'RPC_SIMULATE_PUBLIC_MAX_DEBUG_LOG_MEMORY_READS'
220
+ | 'OFFENSE_COLLECTION_ENABLED'
189
221
  | 'SENTINEL_ENABLED'
190
222
  | 'SENTINEL_HISTORY_LENGTH_IN_EPOCHS'
191
- | 'SENTINEL_HISTORIC_PROVEN_PERFORMANCE_LENGTH_IN_EPOCHS'
192
- | 'SEQ_MAX_BLOCK_SIZE_IN_BYTES'
223
+ | 'SENTINEL_HISTORIC_EPOCH_PERFORMANCE_LENGTH_IN_EPOCHS'
224
+ | 'SENTINEL_EPOCH_END_BUFFER_SLOTS'
193
225
  | 'SEQ_MAX_TX_PER_BLOCK'
226
+ | 'SEQ_MAX_TX_PER_CHECKPOINT'
194
227
  | 'SEQ_MIN_TX_PER_BLOCK'
195
228
  | 'SEQ_PUBLISH_TXS_WITH_PROPOSALS'
196
229
  | 'SEQ_MAX_DA_BLOCK_GAS'
197
230
  | 'SEQ_MAX_L2_BLOCK_GAS'
231
+ | 'SEQ_PER_BLOCK_ALLOCATION_MULTIPLIER'
232
+ | 'SEQ_PER_BLOCK_DA_ALLOCATION_MULTIPLIER'
233
+ | 'SEQ_REDISTRIBUTE_CHECKPOINT_BUDGET'
198
234
  | 'SEQ_PUBLISHER_PRIVATE_KEY'
199
235
  | 'SEQ_PUBLISHER_PRIVATE_KEYS'
200
236
  | 'SEQ_PUBLISHER_ADDRESSES'
201
237
  | 'SEQ_PUBLISHER_ALLOW_INVALID_STATES'
202
238
  | 'SEQ_PUBLISHER_FORWARDER_ADDRESS'
239
+ | 'SEQ_PUBLISHER_PREVIOUS_L1_BLOCK_WAIT_TIMEOUT_MS'
240
+ | 'SEQ_PUBLISHER_PREVIOUS_L1_BLOCK_WAIT_POLL_INTERVAL_MS'
241
+ | 'PUBLISHER_FUNDING_THRESHOLD'
242
+ | 'PUBLISHER_FUNDING_AMOUNT'
203
243
  | 'SEQ_POLLING_INTERVAL_MS'
204
- | 'SEQ_ENFORCE_TIME_TABLE'
205
244
  | 'SEQ_L1_PUBLISHING_TIME_ALLOWANCE_IN_SLOT'
206
245
  | 'SEQ_ATTESTATION_PROPAGATION_TIME'
246
+ | 'SEQ_CHECKPOINT_PROPOSAL_PREPARE_TIME'
247
+ | 'CHECKPOINT_PROPOSAL_SYNC_GRACE_SECONDS'
248
+ | 'SEQ_MIN_BLOCK_DURATION'
207
249
  | 'SEQ_BLOCK_DURATION_MS'
250
+ | 'SEQ_LAST_BLOCK_DURATION_MS'
251
+ | 'SEQ_EXPECTED_BLOCK_PROPOSALS_PER_SLOT'
208
252
  | 'SEQ_BUILD_CHECKPOINT_IF_EMPTY'
209
253
  | 'SEQ_SECONDS_BEFORE_INVALIDATING_BLOCK_AS_COMMITTEE_MEMBER'
210
254
  | 'SEQ_SECONDS_BEFORE_INVALIDATING_BLOCK_AS_NON_COMMITTEE_MEMBER'
211
- | 'SLASH_MIN_PENALTY_PERCENTAGE'
212
- | 'SLASH_MAX_PENALTY_PERCENTAGE'
255
+ | 'SEQ_SKIP_CHECKPOINT_PUBLISH_PERCENT'
213
256
  | 'SLASH_VALIDATORS_ALWAYS'
214
257
  | 'SLASH_VALIDATORS_NEVER'
215
- | 'SLASH_PRUNE_PENALTY'
216
258
  | 'SLASH_DATA_WITHHOLDING_PENALTY'
259
+ | 'SLASH_DATA_WITHHOLDING_TOLERANCE_SLOTS'
217
260
  | 'SLASH_INACTIVITY_PENALTY'
218
261
  | 'SLASH_INACTIVITY_TARGET_PERCENTAGE'
219
262
  | 'SLASH_INACTIVITY_CONSECUTIVE_EPOCH_THRESHOLD'
220
263
  | 'SLASH_INVALID_BLOCK_PENALTY'
264
+ | 'SLASH_INVALID_CHECKPOINT_PROPOSAL_PENALTY'
265
+ | 'SLASH_DUPLICATE_PROPOSAL_PENALTY'
266
+ | 'SLASH_DUPLICATE_ATTESTATION_PENALTY'
221
267
  | 'SLASH_OVERRIDE_PAYLOAD'
222
268
  | 'SLASH_PROPOSE_INVALID_ATTESTATIONS_PENALTY'
223
- | 'SLASH_ATTEST_DESCENDANT_OF_INVALID_PENALTY'
269
+ | 'SLASH_PROPOSE_DESCENDANT_OF_CHECKPOINT_WITH_INVALID_ATTESTATIONS_PENALTY'
270
+ | 'SLASH_ATTEST_INVALID_CHECKPOINT_PROPOSAL_PENALTY'
224
271
  | 'SLASH_UNKNOWN_PENALTY'
225
272
  | 'SLASH_GRACE_PERIOD_L2_SLOTS'
226
273
  | 'SLASH_OFFENSE_EXPIRATION_ROUNDS'
@@ -231,32 +278,42 @@ export type EnvVar =
231
278
  | 'SYNC_SNAPSHOTS_URL'
232
279
  | 'TELEMETRY'
233
280
  | 'TEST_ACCOUNTS'
281
+ | 'TEST_PRELOAD_STANDARD_CONTRACTS'
234
282
  | 'SPONSORED_FPC'
283
+ | 'PREFUND_ADDRESSES'
235
284
  | 'TX_COLLECTION_FAST_NODES_TIMEOUT_BEFORE_REQ_RESP_MS'
236
- | 'TX_COLLECTION_SLOW_NODES_INTERVAL_MS'
237
- | 'TX_COLLECTION_SLOW_REQ_RESP_INTERVAL_MS'
238
- | 'TX_COLLECTION_SLOW_REQ_RESP_TIMEOUT_MS'
239
- | 'TX_COLLECTION_RECONCILE_INTERVAL_MS'
240
- | 'TX_COLLECTION_DISABLE_SLOW_DURING_FAST_REQUESTS'
241
285
  | 'TX_COLLECTION_FAST_NODE_INTERVAL_MS'
242
286
  | 'TX_COLLECTION_FAST_MAX_PARALLEL_REQUESTS_PER_NODE'
243
287
  | 'TX_COLLECTION_NODE_RPC_MAX_BATCH_SIZE'
244
288
  | 'TX_COLLECTION_NODE_RPC_URLS'
245
- | 'TX_COLLECTION_PROPOSAL_TX_COLLECTOR_TYPE'
289
+ | 'TX_COLLECTION_MISSING_TXS_COLLECTOR_TYPE'
290
+ | 'TX_COLLECTION_FILE_STORE_URLS'
291
+ | 'TX_COLLECTION_FILE_STORE_FAST_DELAY_MS'
292
+ | 'TX_COLLECTION_FILE_STORE_FAST_WORKER_COUNT'
293
+ | 'TX_COLLECTION_FILE_STORE_FAST_BACKOFF_BASE_MS'
294
+ | 'TX_COLLECTION_FILE_STORE_FAST_BACKOFF_MAX_MS'
295
+ | 'TX_FILE_STORE_URL'
296
+ | 'TX_FILE_STORE_UPLOAD_CONCURRENCY'
297
+ | 'TX_FILE_STORE_MAX_QUEUE_SIZE'
298
+ | 'TX_FILE_STORE_ENABLED'
246
299
  | 'TX_PUBLIC_SETUP_ALLOWLIST'
247
300
  | 'TXE_PORT'
248
301
  | 'TRANSACTIONS_DISABLED'
249
302
  | 'VALIDATOR_ATTESTATIONS_POLLING_INTERVAL_MS'
250
303
  | 'VALIDATOR_DISABLED'
304
+ | 'VALIDATOR_MAX_DA_BLOCK_GAS'
305
+ | 'VALIDATOR_MAX_L2_BLOCK_GAS'
306
+ | 'VALIDATOR_MAX_TX_PER_BLOCK'
307
+ | 'VALIDATOR_MAX_TX_PER_CHECKPOINT'
251
308
  | 'VALIDATOR_PRIVATE_KEYS'
252
309
  | 'VALIDATOR_PRIVATE_KEY'
253
- | 'VALIDATOR_REEXECUTE'
254
310
  | 'VALIDATOR_ADDRESSES'
255
311
  | 'ROLLUP_VERSION'
256
312
  | 'WS_BLOCK_CHECK_INTERVAL_MS'
257
313
  | 'WS_BLOCK_REQUEST_BATCH_SIZE'
258
314
  | 'L1_READER_VIEM_POLLING_INTERVAL_MS'
259
315
  | 'WS_DATA_DIRECTORY'
316
+ | 'WS_NUM_HISTORIC_CHECKPOINTS'
260
317
  | 'WS_NUM_HISTORIC_BLOCKS'
261
318
  | 'ETHEREUM_SLOT_DURATION'
262
319
  | 'AZTEC_SLOT_DURATION'
@@ -282,7 +339,7 @@ export type EnvVar =
282
339
  | 'AZTEC_SLASH_AMOUNT_SMALL'
283
340
  | 'AZTEC_SLASH_AMOUNT_MEDIUM'
284
341
  | 'AZTEC_SLASH_AMOUNT_LARGE'
285
- | 'AZTEC_SLASHER_FLAVOR'
342
+ | 'AZTEC_SLASHER_ENABLED'
286
343
  | 'AZTEC_GOVERNANCE_PROPOSER_QUORUM'
287
344
  | 'AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE'
288
345
  | 'AZTEC_GOVERNANCE_VOTING_DURATION'
@@ -311,21 +368,25 @@ export type EnvVar =
311
368
  | 'K8S_POD_NAME'
312
369
  | 'K8S_POD_UID'
313
370
  | 'K8S_NAMESPACE_NAME'
314
- | 'VALIDATOR_REEXECUTE_DEADLINE_MS'
315
- | 'AUTO_UPDATE'
316
- | 'AUTO_UPDATE_URL'
371
+ | 'ENABLE_AUTO_SHUTDOWN'
317
372
  | 'WEB3_SIGNER_URL'
318
373
  | 'SKIP_ARCHIVER_INITIAL_SYNC'
319
374
  | 'BLOB_ALLOW_EMPTY_SOURCES'
375
+ | 'BLOB_PREFER_FILESTORES'
376
+ | 'BLOB_FILE_STORE_TIMEOUT_MS'
320
377
  | 'FISHERMAN_MODE'
321
378
  | 'MAX_ALLOWED_ETH_CLIENT_DRIFT_SECONDS'
379
+ | 'MAX_BLOCKS_PER_CHECKPOINT'
322
380
  | 'LEGACY_BLS_CLI'
323
381
  | 'DEBUG_FORCE_TX_PROOF_VERIFICATION'
382
+ | 'VALIDATOR_ALLOW_EPHEMERAL_SIGNING_PROTECTION'
324
383
  | 'VALIDATOR_HA_SIGNING_ENABLED'
325
384
  | 'VALIDATOR_HA_NODE_ID'
326
385
  | 'VALIDATOR_HA_POLLING_INTERVAL_MS'
327
386
  | 'VALIDATOR_HA_SIGNING_TIMEOUT_MS'
387
+ | 'VALIDATOR_SIGNER_CALL_TIMEOUT_MS'
328
388
  | 'VALIDATOR_HA_MAX_STUCK_DUTIES_AGE_MS'
389
+ | 'VALIDATOR_HA_OLD_DUTIES_MAX_AGE_H'
329
390
  | 'VALIDATOR_HA_DATABASE_URL'
330
391
  | 'VALIDATOR_HA_RUN_MIGRATIONS'
331
392
  | 'VALIDATOR_HA_POOL_MAX'