@aztec/stdlib 4.0.0-devnet.2-patch.4 → 4.0.0-devnet.3-patch.1

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 (337) hide show
  1. package/dest/abi/buffer.d.ts +14 -4
  2. package/dest/abi/buffer.d.ts.map +1 -1
  3. package/dest/abi/buffer.js +25 -4
  4. package/dest/abi/decoder.d.ts +6 -45
  5. package/dest/abi/decoder.d.ts.map +1 -1
  6. package/dest/abi/decoder.js +17 -70
  7. package/dest/abi/encoder.d.ts +1 -1
  8. package/dest/abi/encoder.d.ts.map +1 -1
  9. package/dest/abi/encoder.js +37 -6
  10. package/dest/abi/event_metadata_definition.d.ts +3 -1
  11. package/dest/abi/event_metadata_definition.d.ts.map +1 -1
  12. package/dest/abi/event_metadata_definition.js +1 -1
  13. package/dest/abi/function_selector.js +1 -1
  14. package/dest/abi/function_signature_decoder.d.ts +43 -0
  15. package/dest/abi/function_signature_decoder.d.ts.map +1 -0
  16. package/dest/abi/function_signature_decoder.js +66 -0
  17. package/dest/abi/index.d.ts +2 -1
  18. package/dest/abi/index.d.ts.map +1 -1
  19. package/dest/abi/index.js +1 -0
  20. package/dest/abi/utils.d.ts +14 -1
  21. package/dest/abi/utils.d.ts.map +1 -1
  22. package/dest/abi/utils.js +15 -0
  23. package/dest/avm/avm.d.ts +300 -300
  24. package/dest/avm/avm_accumulated_data.js +2 -2
  25. package/dest/avm/avm_circuit_public_inputs.js +2 -2
  26. package/dest/avm/avm_proving_request.d.ts +166 -166
  27. package/dest/avm/revert_code.d.ts +16 -1
  28. package/dest/avm/revert_code.d.ts.map +1 -1
  29. package/dest/avm/revert_code.js +15 -5
  30. package/dest/block/l2_block.d.ts +9 -1
  31. package/dest/block/l2_block.d.ts.map +1 -1
  32. package/dest/block/l2_block.js +12 -2
  33. package/dest/block/l2_block_source.d.ts +16 -8
  34. package/dest/block/l2_block_source.d.ts.map +1 -1
  35. package/dest/block/l2_block_stream/l2_block_stream.d.ts +1 -1
  36. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  37. package/dest/block/l2_block_stream/l2_block_stream.js +10 -0
  38. package/dest/checkpoint/checkpoint.d.ts +2 -1
  39. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  40. package/dest/checkpoint/checkpoint.js +9 -4
  41. package/dest/checkpoint/index.d.ts +2 -1
  42. package/dest/checkpoint/index.d.ts.map +1 -1
  43. package/dest/checkpoint/index.js +1 -0
  44. package/dest/checkpoint/validate.d.ts +36 -0
  45. package/dest/checkpoint/validate.d.ts.map +1 -0
  46. package/dest/checkpoint/validate.js +120 -0
  47. package/dest/config/sequencer-config.d.ts +2 -2
  48. package/dest/config/sequencer-config.d.ts.map +1 -1
  49. package/dest/config/sequencer-config.js +11 -0
  50. package/dest/epoch-helpers/index.d.ts +9 -1
  51. package/dest/epoch-helpers/index.d.ts.map +1 -1
  52. package/dest/epoch-helpers/index.js +13 -2
  53. package/dest/gas/gas_fees.d.ts +1 -1
  54. package/dest/gas/gas_fees.d.ts.map +1 -1
  55. package/dest/gas/gas_fees.js +4 -1
  56. package/dest/hash/hash.d.ts +19 -1
  57. package/dest/hash/hash.d.ts.map +1 -1
  58. package/dest/hash/hash.js +29 -0
  59. package/dest/interfaces/allowed_element.d.ts +26 -20
  60. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  61. package/dest/interfaces/allowed_element.js +8 -8
  62. package/dest/interfaces/archiver.d.ts +1 -1
  63. package/dest/interfaces/archiver.d.ts.map +1 -1
  64. package/dest/interfaces/archiver.js +3 -2
  65. package/dest/interfaces/aztec-node-admin.d.ts +67 -27
  66. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  67. package/dest/interfaces/aztec-node.d.ts +12 -6
  68. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  69. package/dest/interfaces/aztec-node.js +5 -2
  70. package/dest/interfaces/block-builder.d.ts +38 -11
  71. package/dest/interfaces/block-builder.d.ts.map +1 -1
  72. package/dest/interfaces/block-builder.js +13 -6
  73. package/dest/interfaces/configs.d.ts +67 -32
  74. package/dest/interfaces/configs.d.ts.map +1 -1
  75. package/dest/interfaces/configs.js +7 -2
  76. package/dest/interfaces/merkle_tree_operations.d.ts +9 -19
  77. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  78. package/dest/interfaces/p2p.d.ts +3 -8
  79. package/dest/interfaces/p2p.d.ts.map +1 -1
  80. package/dest/interfaces/prover-client.d.ts +6 -1
  81. package/dest/interfaces/prover-client.d.ts.map +1 -1
  82. package/dest/interfaces/prover-client.js +7 -1
  83. package/dest/interfaces/validator.d.ts +67 -25
  84. package/dest/interfaces/validator.d.ts.map +1 -1
  85. package/dest/interfaces/validator.js +6 -2
  86. package/dest/interfaces/world_state.d.ts +5 -4
  87. package/dest/interfaces/world_state.d.ts.map +1 -1
  88. package/dest/kernel/claimed_length_array.js +1 -1
  89. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
  90. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  91. package/dest/kernel/hints/build_note_hash_read_request_hints.js +13 -10
  92. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  93. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  94. package/dest/kernel/hints/build_nullifier_read_request_hints.js +13 -10
  95. package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
  96. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  97. package/dest/kernel/hints/build_transient_data_hints.js +9 -3
  98. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +1 -1
  99. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  100. package/dest/kernel/padded_side_effects.js +1 -1
  101. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +2 -1
  102. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  103. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +4 -0
  104. package/dest/kernel/private_to_avm_accumulated_data.js +2 -2
  105. package/dest/kernel/private_to_public_accumulated_data.js +2 -2
  106. package/dest/kernel/private_to_rollup_accumulated_data.js +1 -1
  107. package/dest/logs/debug_log_store.d.ts +30 -0
  108. package/dest/logs/debug_log_store.d.ts.map +1 -0
  109. package/dest/logs/debug_log_store.js +30 -0
  110. package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
  111. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
  112. package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +35 -20
  113. package/dest/logs/index.d.ts +4 -2
  114. package/dest/logs/index.d.ts.map +1 -1
  115. package/dest/logs/index.js +3 -1
  116. package/dest/logs/log_filter.d.ts +4 -1
  117. package/dest/logs/log_filter.d.ts.map +1 -1
  118. package/dest/logs/log_filter.js +2 -1
  119. package/dest/logs/message_context.d.ts +4 -7
  120. package/dest/logs/message_context.d.ts.map +1 -1
  121. package/dest/logs/message_context.js +23 -9
  122. package/dest/logs/pending_tagged_log.d.ts +2 -3
  123. package/dest/logs/pending_tagged_log.d.ts.map +1 -1
  124. package/dest/logs/pending_tagged_log.js +2 -2
  125. package/dest/logs/pre_tag.d.ts +16 -11
  126. package/dest/logs/pre_tag.d.ts.map +1 -1
  127. package/dest/logs/pre_tag.js +2 -2
  128. package/dest/logs/private_log.js +1 -1
  129. package/dest/logs/public_log.d.ts +4 -3
  130. package/dest/logs/public_log.d.ts.map +1 -1
  131. package/dest/logs/public_log.js +9 -2
  132. package/dest/logs/shared_secret_derivation.d.ts +11 -10
  133. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  134. package/dest/logs/shared_secret_derivation.js +15 -9
  135. package/dest/logs/siloed_tag.d.ts +8 -3
  136. package/dest/logs/siloed_tag.d.ts.map +1 -1
  137. package/dest/logs/siloed_tag.js +11 -2
  138. package/dest/logs/tag.js +1 -1
  139. package/dest/logs/tagging_index_range.d.ts +40 -0
  140. package/dest/logs/tagging_index_range.d.ts.map +1 -0
  141. package/dest/logs/tagging_index_range.js +8 -0
  142. package/dest/logs/tx_scoped_l2_log.d.ts +3 -1
  143. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  144. package/dest/logs/tx_scoped_l2_log.js +7 -0
  145. package/dest/messaging/l1_to_l2_message.d.ts +3 -2
  146. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  147. package/dest/messaging/l1_to_l2_message.js +11 -13
  148. package/dest/messaging/l2_to_l1_membership.d.ts +32 -6
  149. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  150. package/dest/messaging/l2_to_l1_membership.js +69 -26
  151. package/dest/noir/index.d.ts +3 -3
  152. package/dest/noir/index.d.ts.map +1 -1
  153. package/dest/note/note_dao.d.ts +1 -1
  154. package/dest/note/note_dao.d.ts.map +1 -1
  155. package/dest/note/note_dao.js +1 -4
  156. package/dest/p2p/attestation_utils.d.ts +11 -1
  157. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  158. package/dest/p2p/attestation_utils.js +45 -0
  159. package/dest/p2p/checkpoint_proposal.d.ts +1 -6
  160. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  161. package/dest/p2p/checkpoint_proposal.js +13 -23
  162. package/dest/p2p/client_type.d.ts +2 -5
  163. package/dest/p2p/client_type.d.ts.map +1 -1
  164. package/dest/p2p/client_type.js +0 -7
  165. package/dest/p2p/index.d.ts +1 -2
  166. package/dest/p2p/index.d.ts.map +1 -1
  167. package/dest/p2p/index.js +0 -1
  168. package/dest/p2p/peer_error.d.ts +3 -1
  169. package/dest/p2p/peer_error.d.ts.map +1 -1
  170. package/dest/p2p/peer_error.js +5 -0
  171. package/dest/p2p/topic_type.d.ts +3 -4
  172. package/dest/p2p/topic_type.d.ts.map +1 -1
  173. package/dest/p2p/topic_type.js +7 -24
  174. package/dest/parity/parity_base_private_inputs.js +1 -1
  175. package/dest/proofs/chonk_proof.d.ts +1 -1
  176. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  177. package/dest/proofs/chonk_proof.js +7 -1
  178. package/dest/rollup/base_rollup_hints.js +2 -2
  179. package/dest/rollup/block_root_rollup_private_inputs.js +5 -5
  180. package/dest/rollup/checkpoint_rollup_public_inputs.js +1 -1
  181. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +3 -3
  182. package/dest/rollup/root_rollup_public_inputs.js +1 -1
  183. package/dest/rollup/tree_snapshot_diff_hints.js +2 -2
  184. package/dest/slashing/tally.d.ts +7 -2
  185. package/dest/slashing/tally.d.ts.map +1 -1
  186. package/dest/slashing/tally.js +30 -2
  187. package/dest/tests/factories.d.ts +3 -1
  188. package/dest/tests/factories.d.ts.map +1 -1
  189. package/dest/tests/factories.js +8 -0
  190. package/dest/tests/mocks.d.ts +5 -3
  191. package/dest/tests/mocks.d.ts.map +1 -1
  192. package/dest/tests/mocks.js +18 -13
  193. package/dest/tx/block_header.d.ts +3 -1
  194. package/dest/tx/block_header.d.ts.map +1 -1
  195. package/dest/tx/block_header.js +4 -0
  196. package/dest/tx/capsule.d.ts +6 -2
  197. package/dest/tx/capsule.d.ts.map +1 -1
  198. package/dest/tx/capsule.js +9 -3
  199. package/dest/tx/private_execution_result.d.ts +6 -6
  200. package/dest/tx/private_execution_result.d.ts.map +1 -1
  201. package/dest/tx/private_execution_result.js +6 -6
  202. package/dest/tx/profiling.d.ts +17 -5
  203. package/dest/tx/profiling.d.ts.map +1 -1
  204. package/dest/tx/profiling.js +15 -5
  205. package/dest/tx/protocol_contracts.js +2 -2
  206. package/dest/tx/public_simulation_output.d.ts +4 -2
  207. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  208. package/dest/tx/public_simulation_output.js +7 -3
  209. package/dest/tx/simulated_tx.d.ts +5 -2
  210. package/dest/tx/simulated_tx.d.ts.map +1 -1
  211. package/dest/tx/simulated_tx.js +4 -1
  212. package/dest/tx/tx.d.ts +6 -5
  213. package/dest/tx/tx.d.ts.map +1 -1
  214. package/dest/tx/tx.js +18 -6
  215. package/dest/tx/tx_receipt.d.ts +22 -3
  216. package/dest/tx/tx_receipt.d.ts.map +1 -1
  217. package/dest/tx/tx_receipt.js +15 -4
  218. package/dest/tx/validator/error_texts.d.ts +9 -1
  219. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  220. package/dest/tx/validator/error_texts.js +10 -0
  221. package/dest/update-checker/index.d.ts +3 -2
  222. package/dest/update-checker/index.d.ts.map +1 -1
  223. package/dest/update-checker/index.js +2 -1
  224. package/dest/update-checker/package_version.d.ts +3 -0
  225. package/dest/update-checker/package_version.d.ts.map +1 -0
  226. package/dest/update-checker/package_version.js +24 -0
  227. package/dest/update-checker/version_checker.d.ts +25 -0
  228. package/dest/update-checker/version_checker.d.ts.map +1 -0
  229. package/dest/update-checker/version_checker.js +50 -0
  230. package/dest/validators/errors.d.ts +6 -1
  231. package/dest/validators/errors.d.ts.map +1 -1
  232. package/dest/validators/errors.js +7 -0
  233. package/dest/versioning/versioning.d.ts +4 -2
  234. package/dest/versioning/versioning.d.ts.map +1 -1
  235. package/dest/versioning/versioning.js +4 -1
  236. package/dest/vks/vk_data.js +1 -1
  237. package/package.json +10 -10
  238. package/src/abi/buffer.ts +25 -4
  239. package/src/abi/decoder.ts +36 -82
  240. package/src/abi/encoder.ts +49 -6
  241. package/src/abi/event_metadata_definition.ts +2 -0
  242. package/src/abi/function_selector.ts +1 -1
  243. package/src/abi/function_signature_decoder.ts +77 -0
  244. package/src/abi/index.ts +1 -0
  245. package/src/abi/utils.ts +25 -0
  246. package/src/avm/avm_accumulated_data.ts +6 -6
  247. package/src/avm/avm_circuit_public_inputs.ts +4 -4
  248. package/src/avm/revert_code.ts +15 -0
  249. package/src/block/l2_block.ts +13 -1
  250. package/src/block/l2_block_source.ts +16 -7
  251. package/src/block/l2_block_stream/l2_block_stream.ts +21 -0
  252. package/src/checkpoint/checkpoint.ts +12 -3
  253. package/src/checkpoint/index.ts +1 -0
  254. package/src/checkpoint/validate.ts +230 -0
  255. package/src/config/sequencer-config.ts +16 -1
  256. package/src/epoch-helpers/index.ts +22 -0
  257. package/src/gas/README.md +123 -0
  258. package/src/gas/gas_fees.ts +7 -1
  259. package/src/hash/hash.ts +34 -0
  260. package/src/interfaces/allowed_element.ts +29 -9
  261. package/src/interfaces/archiver.ts +3 -2
  262. package/src/interfaces/aztec-node.ts +24 -5
  263. package/src/interfaces/block-builder.ts +60 -14
  264. package/src/interfaces/configs.ts +29 -8
  265. package/src/interfaces/merkle_tree_operations.ts +8 -18
  266. package/src/interfaces/p2p.ts +2 -13
  267. package/src/interfaces/prover-client.ts +8 -0
  268. package/src/interfaces/validator.ts +18 -2
  269. package/src/interfaces/world_state.ts +4 -3
  270. package/src/kernel/claimed_length_array.ts +2 -2
  271. package/src/kernel/hints/build_note_hash_read_request_hints.ts +14 -18
  272. package/src/kernel/hints/build_nullifier_read_request_hints.ts +15 -18
  273. package/src/kernel/hints/build_transient_data_hints.ts +17 -2
  274. package/src/kernel/hints/private_kernel_reset_hints.ts +5 -2
  275. package/src/kernel/hints/read_request_hints.ts +3 -3
  276. package/src/kernel/padded_side_effects.ts +3 -3
  277. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +9 -0
  278. package/src/kernel/private_to_avm_accumulated_data.ts +4 -4
  279. package/src/kernel/private_to_public_accumulated_data.ts +10 -10
  280. package/src/kernel/private_to_rollup_accumulated_data.ts +5 -5
  281. package/src/logs/debug_log_store.ts +54 -0
  282. package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +41 -22
  283. package/src/logs/index.ts +3 -1
  284. package/src/logs/log_filter.ts +5 -0
  285. package/src/logs/message_context.ts +17 -7
  286. package/src/logs/pending_tagged_log.ts +1 -3
  287. package/src/logs/pre_tag.ts +5 -5
  288. package/src/logs/private_log.ts +1 -1
  289. package/src/logs/public_log.ts +15 -3
  290. package/src/logs/shared_secret_derivation.ts +21 -10
  291. package/src/logs/siloed_tag.ts +14 -3
  292. package/src/logs/tag.ts +1 -1
  293. package/src/logs/tagging_index_range.ts +24 -0
  294. package/src/logs/tx_scoped_l2_log.ts +16 -0
  295. package/src/messaging/l1_to_l2_message.ts +12 -9
  296. package/src/messaging/l2_to_l1_membership.ts +98 -33
  297. package/src/noir/index.ts +2 -2
  298. package/src/note/note_dao.ts +1 -4
  299. package/src/p2p/attestation_utils.ts +56 -0
  300. package/src/p2p/checkpoint_proposal.ts +23 -37
  301. package/src/p2p/client_type.ts +0 -6
  302. package/src/p2p/index.ts +0 -1
  303. package/src/p2p/peer_error.ts +7 -0
  304. package/src/p2p/topic_type.ts +8 -15
  305. package/src/parity/parity_base_private_inputs.ts +1 -1
  306. package/src/proofs/chonk_proof.ts +9 -1
  307. package/src/rollup/base_rollup_hints.ts +2 -2
  308. package/src/rollup/block_root_rollup_private_inputs.ts +8 -8
  309. package/src/rollup/checkpoint_rollup_public_inputs.ts +2 -2
  310. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +4 -4
  311. package/src/rollup/root_rollup_public_inputs.ts +2 -2
  312. package/src/rollup/tree_snapshot_diff_hints.ts +5 -5
  313. package/src/slashing/tally.ts +34 -1
  314. package/src/tests/factories.ts +9 -0
  315. package/src/tests/mocks.ts +25 -10
  316. package/src/tx/block_header.ts +6 -0
  317. package/src/tx/capsule.ts +10 -2
  318. package/src/tx/private_execution_result.ts +5 -5
  319. package/src/tx/profiling.ts +14 -5
  320. package/src/tx/protocol_contracts.ts +2 -2
  321. package/src/tx/public_simulation_output.ts +4 -0
  322. package/src/tx/simulated_tx.ts +8 -1
  323. package/src/tx/tx.ts +20 -11
  324. package/src/tx/tx_receipt.ts +17 -2
  325. package/src/tx/validator/error_texts.ts +12 -0
  326. package/src/update-checker/index.ts +2 -1
  327. package/src/update-checker/package_version.ts +30 -0
  328. package/src/update-checker/version_checker.ts +65 -0
  329. package/src/validators/errors.ts +9 -0
  330. package/src/versioning/versioning.ts +4 -1
  331. package/src/vks/vk_data.ts +1 -1
  332. package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
  333. package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
  334. package/dest/update-checker/update-checker.d.ts +0 -49
  335. package/dest/update-checker/update-checker.d.ts.map +0 -1
  336. package/dest/update-checker/update-checker.js +0 -130
  337. package/src/update-checker/update-checker.ts +0 -166
@@ -1,166 +0,0 @@
1
- import { RegistryContract } from '@aztec/ethereum/contracts';
2
- import type { ViemClient } from '@aztec/ethereum/types';
3
- import { EthAddress } from '@aztec/foundation/eth-address';
4
- import { createLogger } from '@aztec/foundation/log';
5
- import { RunningPromise } from '@aztec/foundation/running-promise';
6
- import { fileURLToPath } from '@aztec/foundation/url';
7
-
8
- import { EventEmitter } from 'events';
9
- import { readFileSync } from 'fs';
10
- import { dirname, resolve } from 'path';
11
- import { isDeepStrictEqual } from 'util';
12
- import { z } from 'zod';
13
-
14
- const updateConfigSchema = z.object({
15
- version: z.string().optional(),
16
- publicTelemetry: z.any().optional(),
17
- config: z.any().optional(),
18
- });
19
-
20
- export type EventMap = {
21
- newRollupVersion: [{ currentVersion: bigint; latestVersion: bigint }];
22
- newNodeVersion: [{ currentVersion: string; latestVersion: string }];
23
- updateNodeConfig: [object];
24
- updatePublicTelemetryConfig: [object];
25
- };
26
-
27
- type Config = {
28
- baseURL: URL;
29
- nodeVersion?: string;
30
- checkIntervalMs?: number;
31
- registryContractAddress: EthAddress;
32
- publicClient: ViemClient;
33
- fetch?: typeof fetch;
34
- };
35
-
36
- export class UpdateChecker extends EventEmitter<EventMap> {
37
- private runningPromise: RunningPromise;
38
- private lastPatchedConfig: object = {};
39
- private lastPatchedPublicTelemetryConfig: object = {};
40
-
41
- constructor(
42
- private updatesUrl: URL,
43
- private nodeVersion: string | undefined,
44
- private rollupVersion: bigint,
45
- private fetch: typeof globalThis.fetch,
46
- private getLatestRollupVersion: () => Promise<bigint>,
47
- private checkIntervalMs = 10 * 60_000, // every 10 mins
48
- private log = createLogger('foundation:update-check'),
49
- ) {
50
- super();
51
- this.runningPromise = new RunningPromise(this.runChecks, this.log, this.checkIntervalMs);
52
- }
53
-
54
- public static async new(config: Config): Promise<UpdateChecker> {
55
- const registryContract = new RegistryContract(config.publicClient, config.registryContractAddress);
56
- const getLatestRollupVersion = () => registryContract.getRollupVersions().then(versions => versions.at(-1)!);
57
-
58
- return new UpdateChecker(
59
- config.baseURL,
60
- config.nodeVersion ?? getPackageVersion(),
61
- await getLatestRollupVersion(),
62
- config.fetch ?? fetch,
63
- getLatestRollupVersion,
64
- config.checkIntervalMs,
65
- );
66
- }
67
-
68
- public start(): void {
69
- if (this.runningPromise.isRunning()) {
70
- this.log.debug(`Can't start update checker again`);
71
- return;
72
- }
73
-
74
- this.log.info('Starting update checker', {
75
- nodeVersion: this.nodeVersion,
76
- rollupVersion: this.rollupVersion,
77
- });
78
- this.runningPromise.start();
79
- }
80
-
81
- public stop(): Promise<void> {
82
- if (!this.runningPromise.isRunning()) {
83
- this.log.debug(`Can't stop update checker because it is not running`);
84
- return Promise.resolve();
85
- }
86
- return this.runningPromise.stop();
87
- }
88
-
89
- public trigger(): Promise<void> {
90
- return this.runningPromise.trigger();
91
- }
92
-
93
- private runChecks = async (): Promise<void> => {
94
- await Promise.all([this.checkRollupVersion(), this.checkConfig()]);
95
- };
96
-
97
- private async checkRollupVersion(): Promise<void> {
98
- try {
99
- const canonicalRollupVersion = await this.getLatestRollupVersion();
100
- if (canonicalRollupVersion !== this.rollupVersion) {
101
- this.log.debug('New canonical rollup version', {
102
- currentVersion: this.rollupVersion,
103
- latestVersion: canonicalRollupVersion,
104
- });
105
- this.emit('newRollupVersion', { currentVersion: this.rollupVersion, latestVersion: canonicalRollupVersion });
106
- }
107
- } catch (err) {
108
- this.log.warn(`Failed to check if there is a new rollup`, err);
109
- }
110
- }
111
-
112
- private async checkConfig(): Promise<void> {
113
- try {
114
- const response = await this.fetch(this.updatesUrl);
115
- const body = await response.json();
116
- if (!response.ok) {
117
- this.log.warn(`Unexpected HTTP response checking for updates`, {
118
- status: response.status,
119
- body: await response.text(),
120
- url: this.updatesUrl,
121
- });
122
- }
123
-
124
- const { version, config, publicTelemetry } = updateConfigSchema.parse(body);
125
-
126
- if (this.nodeVersion && version && version !== this.nodeVersion) {
127
- this.log.debug('New node version', { currentVersion: this.nodeVersion, latestVersion: version });
128
- this.emit('newNodeVersion', { currentVersion: this.nodeVersion, latestVersion: version });
129
- }
130
-
131
- if (config && Object.keys(config).length > 0 && !isDeepStrictEqual(config, this.lastPatchedConfig)) {
132
- this.log.debug('New node config', { config });
133
- this.lastPatchedConfig = config;
134
- this.emit('updateNodeConfig', config);
135
- }
136
-
137
- if (
138
- publicTelemetry &&
139
- Object.keys(publicTelemetry).length > 0 &&
140
- !isDeepStrictEqual(publicTelemetry, this.lastPatchedPublicTelemetryConfig)
141
- ) {
142
- this.log.debug('New metrics config', { config });
143
- this.lastPatchedPublicTelemetryConfig = publicTelemetry;
144
- this.emit('updatePublicTelemetryConfig', publicTelemetry);
145
- }
146
- } catch (err) {
147
- this.log.warn(`Failed to check if there is an update`, err);
148
- }
149
- }
150
- }
151
-
152
- /**
153
- * Returns package version.
154
- */
155
- export function getPackageVersion(): string | undefined {
156
- try {
157
- const releasePleaseManifestPath = resolve(
158
- dirname(fileURLToPath(import.meta.url)),
159
- '../../../../.release-please-manifest.json',
160
- );
161
- const version = JSON.parse(readFileSync(releasePleaseManifestPath).toString())['.'];
162
- return version;
163
- } catch {
164
- return undefined;
165
- }
166
- }