@aztec/foundation 0.0.1-commit.24de95ac → 0.0.1-commit.29c6b1a3

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 (473) hide show
  1. package/dest/array/array.d.ts +1 -9
  2. package/dest/array/array.d.ts.map +1 -1
  3. package/dest/array/array.js +0 -11
  4. package/dest/array/index.d.ts +2 -1
  5. package/dest/array/index.d.ts.map +1 -1
  6. package/dest/array/index.js +1 -0
  7. package/dest/array/sorted_array.d.ts +10 -0
  8. package/dest/array/sorted_array.d.ts.map +1 -0
  9. package/dest/array/sorted_array.js +106 -0
  10. package/dest/async-map/index.d.ts +1 -1
  11. package/dest/async-pool/index.d.ts +1 -1
  12. package/dest/bigint/index.d.ts +1 -1
  13. package/dest/bigint-buffer/index.d.ts +1 -1
  14. package/dest/branded-types/block_number.d.ts +56 -0
  15. package/dest/branded-types/block_number.d.ts.map +1 -0
  16. package/dest/branded-types/block_number.js +78 -0
  17. package/dest/branded-types/checkpoint_number.d.ts +54 -0
  18. package/dest/branded-types/checkpoint_number.d.ts.map +1 -0
  19. package/dest/branded-types/checkpoint_number.js +77 -0
  20. package/dest/branded-types/epoch.d.ts +42 -0
  21. package/dest/branded-types/epoch.d.ts.map +1 -0
  22. package/dest/branded-types/epoch.js +59 -0
  23. package/dest/branded-types/index.d.ts +7 -0
  24. package/dest/branded-types/index.d.ts.map +1 -0
  25. package/dest/branded-types/index.js +5 -0
  26. package/dest/branded-types/index_within_checkpoint.d.ts +42 -0
  27. package/dest/branded-types/index_within_checkpoint.d.ts.map +1 -0
  28. package/dest/branded-types/index_within_checkpoint.js +59 -0
  29. package/dest/branded-types/slot.d.ts +42 -0
  30. package/dest/branded-types/slot.d.ts.map +1 -0
  31. package/dest/branded-types/slot.js +59 -0
  32. package/dest/branded-types/types.d.ts +5 -0
  33. package/dest/branded-types/types.d.ts.map +1 -0
  34. package/dest/branded-types/types.js +1 -0
  35. package/dest/buffer/buffer16.d.ts +2 -2
  36. package/dest/buffer/buffer16.d.ts.map +1 -1
  37. package/dest/buffer/buffer16.js +4 -2
  38. package/dest/buffer/buffer32.d.ts +2 -2
  39. package/dest/buffer/buffer32.d.ts.map +1 -1
  40. package/dest/buffer/buffer32.js +4 -2
  41. package/dest/buffer/index.d.ts +1 -1
  42. package/dest/collection/array.d.ts +12 -1
  43. package/dest/collection/array.d.ts.map +1 -1
  44. package/dest/collection/array.js +51 -0
  45. package/dest/collection/index.d.ts +1 -1
  46. package/dest/collection/object.d.ts +1 -1
  47. package/dest/committable/committable.d.ts +1 -1
  48. package/dest/committable/committable.d.ts.map +1 -1
  49. package/dest/committable/index.d.ts +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 +15 -4
  53. package/dest/config/index.d.ts.map +1 -1
  54. package/dest/config/index.js +32 -9
  55. package/dest/config/network_config.d.ts +13 -1
  56. package/dest/config/network_config.d.ts.map +1 -1
  57. package/dest/config/network_config.js +3 -1
  58. package/dest/config/network_name.d.ts +1 -1
  59. package/dest/config/parse-env.d.ts +3 -0
  60. package/dest/config/parse-env.d.ts.map +1 -0
  61. package/dest/config/parse-env.js +7 -0
  62. package/dest/config/secret_value.d.ts +1 -1
  63. package/dest/config/secret_value.d.ts.map +1 -1
  64. package/dest/config/secret_value.js +3 -1
  65. package/dest/crypto/aes128/index.d.ts +1 -1
  66. package/dest/crypto/aes128/index.d.ts.map +1 -1
  67. package/dest/crypto/aes128/index.js +2 -6
  68. package/dest/crypto/bls/bn254_keystore.d.ts +15 -15
  69. package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -1
  70. package/dest/crypto/bls/bn254_keystore.js +1 -1
  71. package/dest/crypto/bls/index.d.ts +1 -1
  72. package/dest/crypto/bls/index.js +1 -1
  73. package/dest/crypto/bn254/index.d.ts +35 -51
  74. package/dest/crypto/bn254/index.d.ts.map +1 -1
  75. package/dest/crypto/bn254/index.js +51 -137
  76. package/dest/crypto/ecdsa/index.d.ts +1 -1
  77. package/dest/crypto/ecdsa/index.d.ts.map +1 -1
  78. package/dest/crypto/ecdsa/index.js +4 -12
  79. package/dest/crypto/ecdsa/signature.d.ts +2 -2
  80. package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
  81. package/dest/crypto/ecdsa/signature.js +2 -2
  82. package/dest/crypto/grumpkin/index.d.ts +4 -2
  83. package/dest/crypto/grumpkin/index.d.ts.map +1 -1
  84. package/dest/crypto/grumpkin/index.js +7 -16
  85. package/dest/crypto/keccak/index.d.ts +1 -1
  86. package/dest/crypto/keys/index.d.ts +2 -2
  87. package/dest/crypto/keys/index.d.ts.map +1 -1
  88. package/dest/crypto/keys/index.js +2 -4
  89. package/dest/crypto/pedersen/index.d.ts +1 -1
  90. package/dest/crypto/pedersen/pedersen.noble.d.ts +1 -1
  91. package/dest/crypto/pedersen/pedersen.wasm.d.ts +2 -2
  92. package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
  93. package/dest/crypto/pedersen/pedersen.wasm.js +4 -10
  94. package/dest/crypto/poseidon/index.d.ts +2 -3
  95. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  96. package/dest/crypto/poseidon/index.js +5 -24
  97. package/dest/crypto/random/index.d.ts +1 -1
  98. package/dest/crypto/random/index.d.ts.map +1 -1
  99. package/dest/crypto/random/randomness_singleton.d.ts +2 -2
  100. package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
  101. package/dest/crypto/random/randomness_singleton.js +3 -3
  102. package/dest/crypto/schnorr/index.d.ts +3 -2
  103. package/dest/crypto/schnorr/index.d.ts.map +1 -1
  104. package/dest/crypto/schnorr/index.js +4 -10
  105. package/dest/crypto/schnorr/signature.d.ts +2 -2
  106. package/dest/crypto/schnorr/signature.d.ts.map +1 -1
  107. package/dest/crypto/schnorr/signature.js +2 -2
  108. package/dest/crypto/secp256k1/index.d.ts +1 -1
  109. package/dest/crypto/secp256k1/index.d.ts.map +1 -1
  110. package/dest/crypto/secp256k1/index.js +3 -9
  111. package/dest/crypto/secp256k1-signer/index.d.ts +1 -1
  112. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts +1 -1
  113. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts.map +1 -1
  114. package/dest/crypto/secp256k1-signer/utils.d.ts +1 -1
  115. package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
  116. package/dest/crypto/serialize.d.ts +1 -1
  117. package/dest/crypto/sha256/index.d.ts +2 -2
  118. package/dest/crypto/sha256/index.d.ts.map +1 -1
  119. package/dest/crypto/sha256/index.js +1 -1
  120. package/dest/crypto/sha512/index.d.ts +3 -3
  121. package/dest/crypto/sha512/index.d.ts.map +1 -1
  122. package/dest/crypto/sha512/index.js +1 -1
  123. package/dest/crypto/signature/index.d.ts +2 -2
  124. package/dest/crypto/signature/index.d.ts.map +1 -1
  125. package/dest/crypto/sync/index.d.ts +1 -1
  126. package/dest/crypto/sync/index.js +1 -3
  127. package/dest/crypto/sync/pedersen/index.d.ts +2 -2
  128. package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
  129. package/dest/crypto/sync/pedersen/index.js +1 -1
  130. package/dest/crypto/sync/poseidon/index.d.ts +2 -3
  131. package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
  132. package/dest/crypto/sync/poseidon/index.js +1 -9
  133. package/dest/{fields/bls12_fields.d.ts → curves/bls12/field.d.ts} +3 -3
  134. package/dest/curves/bls12/field.d.ts.map +1 -0
  135. package/dest/{fields/bls12_fields.js → curves/bls12/field.js} +12 -9
  136. package/dest/curves/bls12/index.d.ts +3 -0
  137. package/dest/curves/bls12/index.d.ts.map +1 -0
  138. package/dest/curves/bls12/index.js +2 -0
  139. package/dest/{fields/bls12_point.d.ts → curves/bls12/point.d.ts} +4 -4
  140. package/dest/curves/bls12/point.d.ts.map +1 -0
  141. package/dest/{fields/bls12_point.js → curves/bls12/point.js} +10 -8
  142. package/dest/{fields/fields.d.ts → curves/bn254/field.d.ts} +16 -15
  143. package/dest/curves/bn254/field.d.ts.map +1 -0
  144. package/dest/{fields/fields.js → curves/bn254/field.js} +49 -49
  145. package/dest/curves/bn254/index.d.ts +3 -0
  146. package/dest/curves/bn254/index.d.ts.map +1 -0
  147. package/dest/curves/bn254/index.js +2 -0
  148. package/dest/curves/bn254/point.d.ts +54 -0
  149. package/dest/curves/bn254/point.d.ts.map +1 -0
  150. package/dest/curves/bn254/point.js +143 -0
  151. package/dest/curves/grumpkin/index.d.ts +10 -0
  152. package/dest/curves/grumpkin/index.d.ts.map +1 -0
  153. package/dest/curves/grumpkin/index.js +3 -0
  154. package/dest/{fields → curves/grumpkin}/point.d.ts +12 -3
  155. package/dest/curves/grumpkin/point.d.ts.map +1 -0
  156. package/dest/{fields → curves/grumpkin}/point.js +24 -7
  157. package/dest/decorators/index.d.ts +1 -1
  158. package/dest/decorators/memoize.d.ts +1 -1
  159. package/dest/decorators/memoize.d.ts.map +1 -1
  160. package/dest/error/index.d.ts +1 -1
  161. package/dest/eth-address/index.d.ts +12 -2
  162. package/dest/eth-address/index.d.ts.map +1 -1
  163. package/dest/eth-address/index.js +27 -3
  164. package/dest/eth-signature/eth_signature.d.ts +1 -1
  165. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  166. package/dest/eth-signature/index.d.ts +1 -1
  167. package/dest/fs/index.d.ts +1 -1
  168. package/dest/fs/run_in_dir.d.ts +1 -1
  169. package/dest/fs/try_rm_dir.d.ts +1 -1
  170. package/dest/iterable/all.d.ts +1 -1
  171. package/dest/iterable/filter.d.ts +1 -1
  172. package/dest/iterable/index.d.ts +1 -1
  173. package/dest/iterable/isAsyncIt.d.ts +1 -1
  174. package/dest/iterable/map.d.ts +1 -1
  175. package/dest/iterable/peek.d.ts +1 -1
  176. package/dest/iterable/sort.d.ts +1 -1
  177. package/dest/iterable/take.d.ts +1 -1
  178. package/dest/iterable/toArray.d.ts +1 -1
  179. package/dest/iterator/filter.d.ts +3 -0
  180. package/dest/iterator/filter.d.ts.map +1 -0
  181. package/dest/iterator/filter.js +7 -0
  182. package/dest/iterator/index.d.ts +2 -0
  183. package/dest/iterator/index.d.ts.map +1 -0
  184. package/dest/iterator/index.js +1 -0
  185. package/dest/json-rpc/client/fetch.d.ts +1 -1
  186. package/dest/json-rpc/client/index.d.ts +1 -1
  187. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +1 -1
  188. package/dest/json-rpc/client/undici.d.ts +1 -1
  189. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  190. package/dest/json-rpc/client/undici.js +21 -4
  191. package/dest/json-rpc/convert.d.ts +1 -1
  192. package/dest/json-rpc/errors.d.ts +1 -1
  193. package/dest/json-rpc/errors.d.ts.map +1 -1
  194. package/dest/json-rpc/fixtures/class_a.d.ts +1 -1
  195. package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
  196. package/dest/json-rpc/fixtures/class_b.d.ts +1 -1
  197. package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -1
  198. package/dest/json-rpc/fixtures/test_state.d.ts +1 -1
  199. package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
  200. package/dest/json-rpc/index.d.ts +1 -1
  201. package/dest/json-rpc/js_utils.d.ts +1 -1
  202. package/dest/json-rpc/js_utils.d.ts.map +1 -1
  203. package/dest/json-rpc/server/index.d.ts +1 -1
  204. package/dest/json-rpc/server/safe_json_rpc_server.d.ts +1 -1
  205. package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
  206. package/dest/json-rpc/server/safe_json_rpc_server.js +1 -1
  207. package/dest/json-rpc/test/index.d.ts +1 -1
  208. package/dest/json-rpc/test/integration.d.ts +1 -1
  209. package/dest/log/console.d.ts +1 -1
  210. package/dest/log/gcloud-logger-config.d.ts +1 -1
  211. package/dest/log/gcloud-logger-config.d.ts.map +1 -1
  212. package/dest/log/index.d.ts +1 -1
  213. package/dest/log/libp2p_logger.d.ts +1 -1
  214. package/dest/log/log-filters.d.ts +1 -1
  215. package/dest/log/log-levels.d.ts +1 -1
  216. package/dest/log/log_fn.d.ts +1 -1
  217. package/dest/log/noir_debug_log_util.d.ts +1 -1
  218. package/dest/log/pino-logger.d.ts +2 -2
  219. package/dest/log/pino-logger.d.ts.map +1 -1
  220. package/dest/log/pino-logger.js +1 -1
  221. package/dest/message/index.d.ts +1 -1
  222. package/dest/message/index.d.ts.map +1 -1
  223. package/dest/mutex/index.d.ts +1 -1
  224. package/dest/mutex/index.d.ts.map +1 -1
  225. package/dest/mutex/mutex_database.d.ts +1 -1
  226. package/dest/noir/index.d.ts +1 -1
  227. package/dest/noir/noir_package_config.d.ts +9 -9
  228. package/dest/number/index.d.ts +1 -1
  229. package/dest/profiler/index.d.ts +1 -1
  230. package/dest/profiler/profiler.d.ts +1 -1
  231. package/dest/promise/index.d.ts +1 -1
  232. package/dest/promise/running-promise.d.ts +1 -1
  233. package/dest/promise/running-promise.d.ts.map +1 -1
  234. package/dest/promise/utils.d.ts +1 -1
  235. package/dest/queue/base_memory_queue.d.ts +1 -1
  236. package/dest/queue/base_memory_queue.d.ts.map +1 -1
  237. package/dest/queue/batch_queue.d.ts +1 -1
  238. package/dest/queue/batch_queue.d.ts.map +1 -1
  239. package/dest/queue/bounded_serial_queue.d.ts +1 -1
  240. package/dest/queue/bounded_serial_queue.d.ts.map +1 -1
  241. package/dest/queue/fifo_memory_queue.d.ts +1 -1
  242. package/dest/queue/fifo_memory_queue.d.ts.map +1 -1
  243. package/dest/queue/index.d.ts +1 -1
  244. package/dest/queue/priority_memory_queue.d.ts +1 -1
  245. package/dest/queue/priority_memory_queue.d.ts.map +1 -1
  246. package/dest/queue/priority_queue.d.ts +1 -1
  247. package/dest/queue/priority_queue.d.ts.map +1 -1
  248. package/dest/queue/semaphore.d.ts +5 -1
  249. package/dest/queue/semaphore.d.ts.map +1 -1
  250. package/dest/queue/serial_queue.d.ts +1 -1
  251. package/dest/queue/serial_queue.d.ts.map +1 -1
  252. package/dest/retry/index.d.ts +11 -1
  253. package/dest/retry/index.d.ts.map +1 -1
  254. package/dest/retry/index.js +11 -0
  255. package/dest/running-promise/index.d.ts +1 -1
  256. package/dest/schemas/api.d.ts +1 -1
  257. package/dest/schemas/index.d.ts +1 -1
  258. package/dest/schemas/parse.d.ts +1 -1
  259. package/dest/schemas/schemas.d.ts +15 -17
  260. package/dest/schemas/schemas.d.ts.map +1 -1
  261. package/dest/schemas/schemas.js +14 -10
  262. package/dest/schemas/types.d.ts +31 -1
  263. package/dest/schemas/types.d.ts.map +1 -1
  264. package/dest/schemas/types.js +25 -1
  265. package/dest/schemas/utils.d.ts +4 -4
  266. package/dest/schemas/utils.d.ts.map +1 -1
  267. package/dest/schemas/utils.js +15 -5
  268. package/dest/serialize/buffer_reader.d.ts +7 -4
  269. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  270. package/dest/serialize/buffer_reader.js +13 -4
  271. package/dest/serialize/field_reader.d.ts +2 -2
  272. package/dest/serialize/field_reader.d.ts.map +1 -1
  273. package/dest/serialize/field_reader.js +1 -1
  274. package/dest/serialize/free_funcs.d.ts +2 -2
  275. package/dest/serialize/free_funcs.d.ts.map +1 -1
  276. package/dest/serialize/free_funcs.js +1 -1
  277. package/dest/serialize/index.d.ts +1 -1
  278. package/dest/serialize/serialize.d.ts +2 -2
  279. package/dest/serialize/serialize.d.ts.map +1 -1
  280. package/dest/serialize/serialize.js +1 -1
  281. package/dest/serialize/type_registry.d.ts +1 -1
  282. package/dest/serialize/type_registry.d.ts.map +1 -1
  283. package/dest/serialize/types.d.ts +1 -1
  284. package/dest/sleep/index.d.ts +3 -1
  285. package/dest/sleep/index.d.ts.map +1 -1
  286. package/dest/sleep/index.js +4 -0
  287. package/dest/string/index.d.ts +1 -1
  288. package/dest/testing/files/index.d.ts +2 -1
  289. package/dest/testing/files/index.d.ts.map +1 -1
  290. package/dest/testing/files/index.js +1 -1
  291. package/dest/testing/formatting.d.ts +1 -1
  292. package/dest/testing/index.d.ts +1 -1
  293. package/dest/testing/port_allocator.d.ts +1 -1
  294. package/dest/testing/snapshot_serializer.d.ts +1 -1
  295. package/dest/testing/test_data.d.ts +1 -1
  296. package/dest/timer/date.d.ts +2 -1
  297. package/dest/timer/date.d.ts.map +1 -1
  298. package/dest/timer/date.js +3 -0
  299. package/dest/timer/elapsed.d.ts +1 -1
  300. package/dest/timer/index.d.ts +1 -1
  301. package/dest/timer/timeout.d.ts +1 -1
  302. package/dest/timer/timeout.d.ts.map +1 -1
  303. package/dest/timer/timer.d.ts +1 -1
  304. package/dest/timer/timer.d.ts.map +1 -1
  305. package/dest/transport/dispatch/create_dispatch_fn.d.ts +1 -1
  306. package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +1 -1
  307. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +1 -1
  308. package/dest/transport/dispatch/messages.d.ts +1 -1
  309. package/dest/transport/index.d.ts +1 -1
  310. package/dest/transport/interface/connector.d.ts +1 -1
  311. package/dest/transport/interface/listener.d.ts +1 -1
  312. package/dest/transport/interface/socket.d.ts +1 -1
  313. package/dest/transport/interface/transferable.d.ts +1 -1
  314. package/dest/transport/node/index.d.ts +1 -1
  315. package/dest/transport/node/node_connector.d.ts +1 -1
  316. package/dest/transport/node/node_connector.d.ts.map +1 -1
  317. package/dest/transport/node/node_connector_socket.d.ts +1 -1
  318. package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
  319. package/dest/transport/node/node_listener.d.ts +1 -1
  320. package/dest/transport/node/node_listener.d.ts.map +1 -1
  321. package/dest/transport/node/node_listener_socket.d.ts +1 -1
  322. package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
  323. package/dest/transport/transport_client.d.ts +1 -1
  324. package/dest/transport/transport_client.d.ts.map +1 -1
  325. package/dest/transport/transport_server.d.ts +1 -10
  326. package/dest/transport/transport_server.d.ts.map +1 -1
  327. package/dest/trees/balanced_merkle_tree_root.d.ts +17 -0
  328. package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -0
  329. package/dest/trees/balanced_merkle_tree_root.js +51 -0
  330. package/dest/trees/hasher.d.ts +3 -1
  331. package/dest/trees/hasher.d.ts.map +1 -1
  332. package/dest/trees/hasher.js +10 -5
  333. package/dest/trees/index.d.ts +4 -3
  334. package/dest/trees/index.d.ts.map +1 -1
  335. package/dest/trees/index.js +3 -2
  336. package/dest/trees/indexed_merkle_tree.d.ts +1 -1
  337. package/dest/trees/indexed_merkle_tree.d.ts.map +1 -1
  338. package/dest/trees/indexed_merkle_tree.js +1 -1
  339. package/dest/trees/indexed_merkle_tree_calculator.d.ts +1 -1
  340. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
  341. package/dest/trees/indexed_tree_leaf.d.ts +1 -1
  342. package/dest/trees/membership_witness.d.ts +7 -18
  343. package/dest/trees/membership_witness.d.ts.map +1 -1
  344. package/dest/trees/membership_witness.js +10 -1
  345. package/dest/trees/merkle_tree.d.ts +1 -1
  346. package/dest/trees/merkle_tree.d.ts.map +1 -1
  347. package/dest/trees/merkle_tree_calculator.d.ts +2 -12
  348. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  349. package/dest/trees/merkle_tree_calculator.js +2 -32
  350. package/dest/trees/sibling_path.d.ts +5 -38
  351. package/dest/trees/sibling_path.d.ts.map +1 -1
  352. package/dest/trees/sibling_path.js +3 -3
  353. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +6 -6
  354. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -1
  355. package/dest/trees/unbalanced_merkle_tree_calculator.js +34 -42
  356. package/dest/trees/unbalanced_merkle_tree_root.d.ts +28 -0
  357. package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -0
  358. package/dest/trees/unbalanced_merkle_tree_root.js +84 -0
  359. package/dest/trees/unbalanced_tree_store.d.ts +5 -1
  360. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
  361. package/dest/trees/unbalanced_tree_store.js +49 -1
  362. package/dest/types/index.d.ts +4 -2
  363. package/dest/types/index.d.ts.map +1 -1
  364. package/dest/types/index.js +3 -0
  365. package/dest/url/index.d.ts +1 -1
  366. package/dest/validation/index.d.ts +1 -1
  367. package/package.json +29 -9
  368. package/src/array/array.ts +0 -16
  369. package/src/array/index.ts +1 -0
  370. package/src/array/sorted_array.ts +133 -0
  371. package/src/branded-types/block_number.ts +117 -0
  372. package/src/branded-types/checkpoint_number.ts +115 -0
  373. package/src/branded-types/epoch.ts +88 -0
  374. package/src/branded-types/index.ts +7 -0
  375. package/src/branded-types/index_within_checkpoint.ts +88 -0
  376. package/src/branded-types/slot.ts +88 -0
  377. package/src/branded-types/types.ts +2 -0
  378. package/src/buffer/buffer16.ts +2 -2
  379. package/src/buffer/buffer32.ts +2 -2
  380. package/src/collection/array.ts +52 -0
  381. package/src/config/env_var.ts +49 -13
  382. package/src/config/index.ts +39 -6
  383. package/src/config/network_config.ts +2 -0
  384. package/src/config/parse-env.ts +4 -0
  385. package/src/crypto/aes128/index.ts +2 -2
  386. package/src/crypto/bls/bn254_keystore.ts +1 -1
  387. package/src/crypto/bls/index.ts +1 -1
  388. package/src/crypto/bn254/index.ts +50 -156
  389. package/src/crypto/ecdsa/index.ts +4 -4
  390. package/src/crypto/ecdsa/signature.ts +2 -2
  391. package/src/crypto/grumpkin/index.ts +8 -6
  392. package/src/crypto/keys/index.ts +2 -2
  393. package/src/crypto/pedersen/pedersen.wasm.ts +4 -4
  394. package/src/crypto/poseidon/index.ts +5 -15
  395. package/src/crypto/random/randomness_singleton.ts +2 -4
  396. package/src/crypto/schnorr/index.ts +5 -4
  397. package/src/crypto/schnorr/signature.ts +2 -2
  398. package/src/crypto/secp256k1/index.ts +3 -3
  399. package/src/crypto/sha256/index.ts +1 -1
  400. package/src/crypto/sha512/index.ts +1 -1
  401. package/src/crypto/signature/index.ts +1 -1
  402. package/src/crypto/sync/index.ts +1 -1
  403. package/src/crypto/sync/pedersen/index.ts +1 -1
  404. package/src/crypto/sync/poseidon/index.ts +1 -10
  405. package/src/{fields/bls12_fields.ts → curves/bls12/field.ts} +6 -6
  406. package/src/curves/bls12/index.ts +2 -0
  407. package/src/{fields/bls12_point.ts → curves/bls12/point.ts} +7 -7
  408. package/src/{fields/fields.ts → curves/bn254/field.ts} +49 -56
  409. package/src/curves/bn254/index.ts +2 -0
  410. package/src/curves/bn254/point.ts +170 -0
  411. package/src/curves/grumpkin/index.ts +11 -0
  412. package/src/{fields → curves/grumpkin}/point.ts +26 -7
  413. package/src/eth-address/index.ts +27 -2
  414. package/src/iterator/filter.ts +11 -0
  415. package/src/iterator/index.ts +1 -0
  416. package/src/json-rpc/client/undici.ts +21 -3
  417. package/src/json-rpc/server/safe_json_rpc_server.ts +1 -1
  418. package/src/log/pino-logger.ts +2 -1
  419. package/src/queue/semaphore.ts +5 -0
  420. package/src/retry/index.ts +18 -0
  421. package/src/schemas/schemas.ts +24 -13
  422. package/src/schemas/types.ts +33 -0
  423. package/src/schemas/utils.ts +21 -8
  424. package/src/serialize/buffer_reader.ts +21 -9
  425. package/src/serialize/field_reader.ts +1 -1
  426. package/src/serialize/free_funcs.ts +1 -1
  427. package/src/serialize/serialize.ts +1 -1
  428. package/src/sleep/index.ts +6 -0
  429. package/src/testing/files/index.ts +1 -1
  430. package/src/timer/date.ts +4 -0
  431. package/src/trees/balanced_merkle_tree_root.ts +68 -0
  432. package/src/trees/hasher.ts +9 -0
  433. package/src/trees/index.ts +3 -2
  434. package/src/trees/indexed_merkle_tree.ts +1 -1
  435. package/src/trees/membership_witness.ts +9 -1
  436. package/src/trees/merkle_tree_calculator.ts +2 -35
  437. package/src/trees/sibling_path.ts +3 -3
  438. package/src/trees/unbalanced_merkle_tree_calculator.ts +32 -50
  439. package/src/trees/unbalanced_merkle_tree_root.ts +115 -0
  440. package/src/trees/unbalanced_tree_store.ts +57 -2
  441. package/src/types/index.ts +6 -1
  442. package/dest/crypto/bn254/bn254_utils.d.ts +0 -39
  443. package/dest/crypto/bn254/bn254_utils.d.ts.map +0 -1
  444. package/dest/crypto/bn254/bn254_utils.js +0 -56
  445. package/dest/crypto/index.d.ts +0 -17
  446. package/dest/crypto/index.d.ts.map +0 -1
  447. package/dest/crypto/index.js +0 -16
  448. package/dest/fields/bls12_fields.d.ts.map +0 -1
  449. package/dest/fields/bls12_point.d.ts.map +0 -1
  450. package/dest/fields/coordinate.d.ts +0 -66
  451. package/dest/fields/coordinate.d.ts.map +0 -1
  452. package/dest/fields/coordinate.js +0 -96
  453. package/dest/fields/fields.d.ts.map +0 -1
  454. package/dest/fields/index.d.ts +0 -6
  455. package/dest/fields/index.d.ts.map +0 -1
  456. package/dest/fields/index.js +0 -5
  457. package/dest/fields/point.d.ts.map +0 -1
  458. package/dest/index.d.ts +0 -30
  459. package/dest/index.d.ts.map +0 -1
  460. package/dest/index.js +0 -30
  461. package/dest/json-rpc/server/telemetry.d.ts +0 -2
  462. package/dest/json-rpc/server/telemetry.d.ts.map +0 -1
  463. package/dest/json-rpc/server/telemetry.js +0 -0
  464. package/dest/trees/unbalanced_merkle_tree.d.ts +0 -28
  465. package/dest/trees/unbalanced_merkle_tree.d.ts.map +0 -1
  466. package/dest/trees/unbalanced_merkle_tree.js +0 -99
  467. package/src/crypto/bn254/bn254_utils.ts +0 -64
  468. package/src/crypto/index.ts +0 -16
  469. package/src/fields/coordinate.ts +0 -104
  470. package/src/fields/index.ts +0 -5
  471. package/src/index.ts +0 -30
  472. package/src/json-rpc/server/telemetry.ts +0 -0
  473. package/src/trees/unbalanced_merkle_tree.ts +0 -111
@@ -250,6 +250,58 @@ export function chunk<T>(items: T[], chunkSize: number): T[][] {
250
250
  return chunks;
251
251
  }
252
252
 
253
+ /**
254
+ * Splits the given array into chunks of the given size, wrapping around to the beginning
255
+ * if the last chunk would be smaller than the requested size.
256
+ * Returns empty array for empty input. Returns single chunk with all items if chunkSize <= 0.
257
+ */
258
+ export function chunkWrapAround<T>(items: T[], chunkSize: number): T[][] {
259
+ if (items.length === 0) {
260
+ return [];
261
+ }
262
+ if (chunkSize <= 0 || items.length <= chunkSize) {
263
+ return [items];
264
+ }
265
+ const remainder = items.length % chunkSize;
266
+ if (remainder === 0) {
267
+ return chunk(items, chunkSize);
268
+ }
269
+ const wrapAroundCount = chunkSize - remainder;
270
+ const wrappedItems = [...items, ...items.slice(0, wrapAroundCount)];
271
+ return chunk(wrappedItems, chunkSize);
272
+ }
273
+
274
+ const UNINITIALIZED = Symbol('uninitialized');
275
+
276
+ /**
277
+ * Splits the given iterable into chunks based on the key returned by the given function.
278
+ * Items must be contiguous to be included in the same chunk.
279
+ */
280
+ export function chunkBy<T, U>(items: T[], fn: (item: T) => U): T[][] {
281
+ const chunks: T[][] = [];
282
+ let currentChunk: T[] = [];
283
+ let currentKey: U | typeof UNINITIALIZED = UNINITIALIZED;
284
+
285
+ for (const item of items) {
286
+ const key = fn(item);
287
+ if (currentKey === UNINITIALIZED || key !== currentKey) {
288
+ if (currentChunk.length > 0) {
289
+ chunks.push(currentChunk);
290
+ }
291
+ currentChunk = [item];
292
+ currentKey = key;
293
+ } else {
294
+ currentChunk.push(item);
295
+ }
296
+ }
297
+
298
+ if (currentChunk.length > 0) {
299
+ chunks.push(currentChunk);
300
+ }
301
+
302
+ return chunks;
303
+ }
304
+
253
305
  /** Partitions the given iterable into two arrays based on the predicate. */
254
306
  export function partition<T>(items: T[], predicate: (item: T) => boolean): [T[], T[]] {
255
307
  const pass: T[] = [];
@@ -21,12 +21,13 @@ export type EnvVar =
21
21
  | 'BB_NUM_IVC_VERIFIERS'
22
22
  | 'BB_IVC_CONCURRENCY'
23
23
  | 'BOOTSTRAP_NODES'
24
- | 'BLOB_SINK_ARCHIVE_API_URL'
25
- | 'BLOB_SINK_PORT'
26
- | 'BLOB_SINK_URL'
24
+ | 'BLOB_ARCHIVE_API_URL'
25
+ | 'BLOB_FILE_STORE_URLS'
26
+ | 'BLOB_FILE_STORE_UPLOAD_URL'
27
+ | 'BLOB_HEALTHCHECK_UPLOAD_INTERVAL_MINUTES'
27
28
  | 'BOT_DA_GAS_LIMIT'
28
29
  | 'BOT_FEE_PAYMENT_METHOD'
29
- | 'BOT_BASE_FEE_PADDING'
30
+ | 'BOT_MIN_FEE_PADDING'
30
31
  | 'BOT_FLUSH_SETUP_TRANSACTIONS'
31
32
  | 'BOT_FOLLOW_CHAIN'
32
33
  | 'BOT_L2_GAS_LIMIT'
@@ -63,8 +64,9 @@ export type EnvVar =
63
64
  | 'PUBLIC_DATA_TREE_MAP_SIZE_KB'
64
65
  | 'DEBUG'
65
66
  | 'DEBUG_P2P_DISABLE_COLOCATION_PENALTY'
66
- | 'DEPLOY_AZTEC_CONTRACTS_SALT'
67
67
  | 'ETHEREUM_HOSTS'
68
+ | 'ETHEREUM_DEBUG_HOSTS'
69
+ | 'ETHEREUM_ALLOW_NO_DEBUG_HOSTS'
68
70
  | 'FEE_RECIPIENT'
69
71
  | 'FORCE_COLOR'
70
72
  | 'GOVERNANCE_PROPOSER_PAYLOAD_ADDRESS'
@@ -86,11 +88,16 @@ export type EnvVar =
86
88
  | 'OTEL_EXPORTER_OTLP_LOGS_ENDPOINT'
87
89
  | 'OTEL_COLLECT_INTERVAL_MS'
88
90
  | 'OTEL_EXCLUDE_METRICS'
91
+ | 'OTEL_INCLUDE_METRICS'
89
92
  | 'OTEL_EXPORT_TIMEOUT_MS'
90
93
  | 'PUBLIC_OTEL_EXPORTER_OTLP_METRICS_ENDPOINT'
91
94
  | 'PUBLIC_OTEL_INCLUDE_METRICS'
92
95
  | 'PUBLIC_OTEL_COLLECT_FROM'
93
96
  | 'PUBLIC_OTEL_OPT_OUT'
97
+ | 'P2P_BATCH_TX_REQUESTER_SMART_PARALLEL_WORKER_COUNT'
98
+ | 'P2P_BATCH_TX_REQUESTER_DUMB_PARALLEL_WORKER_COUNT'
99
+ | 'P2P_BATCH_TX_REQUESTER_TX_BATCH_SIZE'
100
+ | 'P2P_BATCH_TX_REQUESTER_BAD_PEER_THRESHOLD'
94
101
  | 'P2P_BLOCK_CHECK_INTERVAL_MS'
95
102
  | 'P2P_BLOCK_REQUEST_BATCH_SIZE'
96
103
  | 'P2P_BOOTSTRAP_NODE_ENR_VERSION_CHECK'
@@ -130,12 +137,12 @@ export type EnvVar =
130
137
  | 'P2P_TRUSTED_PEERS'
131
138
  | 'P2P_PRIVATE_PEERS'
132
139
  | 'P2P_PREFERRED_PEERS'
133
- | 'P2P_MAX_TX_POOL_SIZE'
134
- | 'P2P_TX_POOL_OVERFLOW_FACTOR'
140
+ | 'P2P_MAX_PENDING_TX_COUNT'
135
141
  | 'P2P_SEEN_MSG_CACHE_SIZE'
136
142
  | 'P2P_DROP_TX'
137
143
  | 'P2P_DROP_TX_CHANCE'
138
144
  | 'P2P_TX_POOL_DELETE_TXS_AFTER_REORG'
145
+ | 'DEBUG_P2P_INSTRUMENT_MESSAGES'
139
146
  | 'PEER_ID_PRIVATE_KEY'
140
147
  | 'PEER_ID_PRIVATE_KEY_PATH'
141
148
  | 'PROVER_AGENT_COUNT'
@@ -148,6 +155,7 @@ export type EnvVar =
148
155
  | 'PROVER_BROKER_BATCH_INTERVAL_MS'
149
156
  | 'PROVER_BROKER_BATCH_SIZE'
150
157
  | 'PROVER_BROKER_MAX_EPOCHS_TO_KEEP_RESULTS_FOR'
158
+ | 'PROVER_CANCEL_JOBS_ON_STOP'
151
159
  | 'PROVER_COORDINATION_NODE_URLS'
152
160
  | 'PROVER_FAILED_PROOF_STORE'
153
161
  | 'PROVER_NODE_FAILED_EPOCH_STORE'
@@ -164,12 +172,15 @@ export type EnvVar =
164
172
  | 'PROVER_PUBLISHER_PRIVATE_KEYS'
165
173
  | 'PROVER_PUBLISHER_ADDRESSES'
166
174
  | 'PROVER_PUBLISHER_ALLOW_INVALID_STATES'
175
+ | 'PROVER_PUBLISHER_FORWARDER_ADDRESS'
167
176
  | 'PROVER_REAL_PROOFS'
168
177
  | 'PROVER_TEST_DELAY_FACTOR'
169
178
  | 'PROVER_TEST_DELAY_MS'
170
179
  | 'PROVER_TEST_DELAY_TYPE'
180
+ | 'PROVER_TEST_VERIFICATION_DELAY_MS'
171
181
  | 'PXE_L2_BLOCK_BATCH_SIZE'
172
182
  | 'PXE_PROVER_ENABLED'
183
+ | 'PXE_SYNC_CHAIN_TIP'
173
184
  | 'RPC_MAX_BATCH_SIZE'
174
185
  | 'RPC_MAX_BODY_SIZE'
175
186
  | 'RPC_SIMULATE_PUBLIC_MAX_GAS_LIMIT'
@@ -187,10 +198,13 @@ export type EnvVar =
187
198
  | 'SEQ_PUBLISHER_PRIVATE_KEYS'
188
199
  | 'SEQ_PUBLISHER_ADDRESSES'
189
200
  | 'SEQ_PUBLISHER_ALLOW_INVALID_STATES'
190
- | 'SEQ_TX_POLLING_INTERVAL_MS'
201
+ | 'SEQ_PUBLISHER_FORWARDER_ADDRESS'
202
+ | 'SEQ_POLLING_INTERVAL_MS'
191
203
  | 'SEQ_ENFORCE_TIME_TABLE'
192
- | 'SEQ_MAX_L1_TX_INCLUSION_TIME_INTO_SLOT'
204
+ | 'SEQ_L1_PUBLISHING_TIME_ALLOWANCE_IN_SLOT'
193
205
  | 'SEQ_ATTESTATION_PROPAGATION_TIME'
206
+ | 'SEQ_BLOCK_DURATION_MS'
207
+ | 'SEQ_BUILD_CHECKPOINT_IF_EMPTY'
194
208
  | 'SEQ_SECONDS_BEFORE_INVALIDATING_BLOCK_AS_COMMITTEE_MEMBER'
195
209
  | 'SEQ_SECONDS_BEFORE_INVALIDATING_BLOCK_AS_NON_COMMITTEE_MEMBER'
196
210
  | 'SLASH_MIN_PENALTY_PERCENTAGE'
@@ -227,6 +241,7 @@ export type EnvVar =
227
241
  | 'TX_COLLECTION_FAST_MAX_PARALLEL_REQUESTS_PER_NODE'
228
242
  | 'TX_COLLECTION_NODE_RPC_MAX_BATCH_SIZE'
229
243
  | 'TX_COLLECTION_NODE_RPC_URLS'
244
+ | 'TX_COLLECTION_PROPOSAL_TX_COLLECTOR_TYPE'
230
245
  | 'TX_PUBLIC_SETUP_ALLOWLIST'
231
246
  | 'TXE_PORT'
232
247
  | 'TRANSACTIONS_DISABLED'
@@ -238,7 +253,6 @@ export type EnvVar =
238
253
  | 'VALIDATOR_ADDRESSES'
239
254
  | 'ROLLUP_VERSION'
240
255
  | 'WS_BLOCK_CHECK_INTERVAL_MS'
241
- | 'WS_PROVEN_BLOCKS_ONLY'
242
256
  | 'WS_BLOCK_REQUEST_BATCH_SIZE'
243
257
  | 'L1_READER_VIEM_POLLING_INTERVAL_MS'
244
258
  | 'WS_DATA_DIRECTORY'
@@ -247,13 +261,16 @@ export type EnvVar =
247
261
  | 'AZTEC_SLOT_DURATION'
248
262
  | 'AZTEC_EPOCH_DURATION'
249
263
  | 'AZTEC_TARGET_COMMITTEE_SIZE'
250
- | 'AZTEC_LAG_IN_EPOCHS'
264
+ | 'AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET'
265
+ | 'AZTEC_LAG_IN_EPOCHS_FOR_RANDAO'
266
+ | 'AZTEC_INBOX_LAG'
251
267
  | 'AZTEC_PROOF_SUBMISSION_EPOCHS'
252
268
  | 'AZTEC_ACTIVATION_THRESHOLD'
253
269
  | 'AZTEC_EJECTION_THRESHOLD'
254
270
  | 'AZTEC_LOCAL_EJECTION_THRESHOLD'
255
271
  | 'AZTEC_MANA_TARGET'
256
272
  | 'AZTEC_PROVING_COST_PER_MANA'
273
+ | 'AZTEC_INITIAL_ETH_PER_FEE_ASSET'
257
274
  | 'AZTEC_SLASHING_QUORUM'
258
275
  | 'AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS'
259
276
  | 'AZTEC_SLASHING_LIFETIME_IN_ROUNDS'
@@ -267,13 +284,18 @@ export type EnvVar =
267
284
  | 'AZTEC_SLASHER_FLAVOR'
268
285
  | 'AZTEC_GOVERNANCE_PROPOSER_QUORUM'
269
286
  | 'AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE'
287
+ | 'AZTEC_GOVERNANCE_VOTING_DURATION'
270
288
  | 'AZTEC_EXIT_DELAY_SECONDS'
271
289
  | 'L1_GAS_LIMIT_BUFFER_PERCENTAGE'
272
290
  | 'L1_GAS_PRICE_MAX'
291
+ | 'L1_FEE_PER_GAS_GWEI_MAX'
273
292
  | 'L1_BLOB_FEE_PER_GAS_MAX'
293
+ | 'L1_BLOB_FEE_PER_GAS_GWEI_MAX'
274
294
  | 'L1_PRIORITY_FEE_BUMP_PERCENTAGE'
275
295
  | 'L1_PRIORITY_FEE_RETRY_BUMP_PERCENTAGE'
296
+ | 'L1_MINIMUM_PRIORITY_FEE_PER_GAS_GWEI'
276
297
  | 'L1_FIXED_PRIORITY_FEE_PER_GAS'
298
+ | 'L1_FIXED_PRIORITY_FEE_PER_GAS_GWEI'
277
299
  | 'L1_TX_MONITOR_MAX_ATTEMPTS'
278
300
  | 'L1_TX_MONITOR_CHECK_INTERVAL_MS'
279
301
  | 'L1_TX_MONITOR_STALL_TIME_MS'
@@ -289,9 +311,23 @@ export type EnvVar =
289
311
  | 'K8S_POD_UID'
290
312
  | 'K8S_NAMESPACE_NAME'
291
313
  | 'VALIDATOR_REEXECUTE_DEADLINE_MS'
292
- | 'ALWAYS_REEXECUTE_BLOCK_PROPOSALS'
293
314
  | 'AUTO_UPDATE'
294
315
  | 'AUTO_UPDATE_URL'
295
316
  | 'WEB3_SIGNER_URL'
296
317
  | 'SKIP_ARCHIVER_INITIAL_SYNC'
297
- | 'BLOB_ALLOW_EMPTY_SOURCES';
318
+ | 'BLOB_ALLOW_EMPTY_SOURCES'
319
+ | 'FISHERMAN_MODE'
320
+ | 'MAX_ALLOWED_ETH_CLIENT_DRIFT_SECONDS'
321
+ | 'LEGACY_BLS_CLI'
322
+ | 'DEBUG_FORCE_TX_PROOF_VERIFICATION'
323
+ | 'VALIDATOR_HA_SIGNING_ENABLED'
324
+ | 'VALIDATOR_HA_NODE_ID'
325
+ | 'VALIDATOR_HA_POLLING_INTERVAL_MS'
326
+ | 'VALIDATOR_HA_SIGNING_TIMEOUT_MS'
327
+ | 'VALIDATOR_HA_MAX_STUCK_DUTIES_AGE_MS'
328
+ | 'VALIDATOR_HA_DATABASE_URL'
329
+ | 'VALIDATOR_HA_RUN_MIGRATIONS'
330
+ | 'VALIDATOR_HA_POOL_MAX'
331
+ | 'VALIDATOR_HA_POOL_MIN'
332
+ | 'VALIDATOR_HA_POOL_IDLE_TIMEOUT_MS'
333
+ | 'VALIDATOR_HA_POOL_CONNECTION_TIMEOUT_MS';
@@ -1,6 +1,8 @@
1
- import { Fq, Fr } from '../fields/fields.js';
1
+ import { Fq, Fr } from '../curves/bn254/field.js';
2
+ import { createConsoleLogger } from '../log/console.js';
2
3
  import type { EnvVar } from './env_var.js';
3
4
  import { type NetworkNames, getActiveNetworkName } from './network_name.js';
5
+ import { parseBooleanEnv } from './parse-env.js';
4
6
  import { SecretValue } from './secret_value.js';
5
7
 
6
8
  export { SecretValue, getActiveNetworkName };
@@ -17,6 +19,11 @@ export interface ConfigMapping {
17
19
  isBoolean?: boolean;
18
20
  nested?: Record<string, ConfigMapping>;
19
21
  fallback?: EnvVar[];
22
+ /**
23
+ * List of deprecated env vars that are still supported but will log a warning.
24
+ * These should also be included in the fallback array for parsing.
25
+ */
26
+ deprecatedFallback?: { env: EnvVar; message?: string }[];
20
27
  }
21
28
 
22
29
  export function isBooleanConfigValue<T>(obj: T, key: keyof T): boolean {
@@ -72,12 +79,24 @@ export function getConfigFromMappings<T>(configMappings: ConfigMappingsType<T>):
72
79
  const config = {} as T;
73
80
 
74
81
  for (const key in configMappings) {
75
- const { env, parseEnv, defaultValue, nested, fallback } = configMappings[key];
82
+ const { env, parseEnv, defaultValue, nested, fallback, deprecatedFallback } = configMappings[key];
76
83
  if (nested) {
77
84
  (config as any)[key] = getConfigFromMappings(nested);
78
85
  } else {
79
86
  // Use the shared utility function
80
87
  (config as any)[key] = getValueFromEnvWithFallback(env, parseEnv, defaultValue, fallback);
88
+
89
+ // Check for deprecated env vars and warn if logger is set
90
+ if (deprecatedFallback?.length) {
91
+ const userLog = createConsoleLogger('[DEPRECATED]');
92
+ for (const { env: deprecatedEnv, message } of deprecatedFallback) {
93
+ if (process.env[deprecatedEnv]) {
94
+ const warningMessage =
95
+ message ?? `Environment variable ${deprecatedEnv} is deprecated. Please use ${env} instead.`;
96
+ userLog(warningMessage, { deprecatedEnvVar: deprecatedEnv, newEnvVar: env });
97
+ }
98
+ }
99
+ }
81
100
  }
82
101
  }
83
102
 
@@ -130,6 +149,23 @@ export function floatConfigHelper(
130
149
  };
131
150
  }
132
151
 
152
+ /**
153
+ * Parses an environment variable to a 0-1 percentage value
154
+ */
155
+ export function percentageConfigHelper(defaultVal: number): Pick<ConfigMapping, 'parseEnv' | 'defaultValue'> {
156
+ return {
157
+ parseEnv: (val: string): number => {
158
+ const parsed = safeParseFloat(val, defaultVal);
159
+ if (parsed < 0 || parsed > 1) {
160
+ throw new TypeError(`Invalid percentage value: ${parsed} should be between 0 and 1`);
161
+ }
162
+
163
+ return parsed;
164
+ },
165
+ defaultValue: defaultVal,
166
+ };
167
+ }
168
+
133
169
  /**
134
170
  * Generates parseEnv and default values for a numerical config value.
135
171
  * @param defaultVal - The default numerical value to use if the environment variable is not set or is invalid
@@ -213,10 +249,7 @@ export function secretValueConfigHelper<T>(parse: (val: string | undefined) => T
213
249
  };
214
250
  }
215
251
 
216
- /** Parses an env var as boolean. Returns true only if value is 1, true, or TRUE. */
217
- export function parseBooleanEnv(val: string | undefined): boolean {
218
- return val !== undefined && ['1', 'true', 'TRUE'].includes(val);
219
- }
252
+ export { parseBooleanEnv } from './parse-env.js';
220
253
 
221
254
  export function secretStringConfigHelper(): Required<
222
255
  Pick<ConfigMapping, 'parseEnv' | 'defaultValue' | 'isBoolean'> & {
@@ -4,9 +4,11 @@ export const NetworkConfigSchema = z
4
4
  .object({
5
5
  bootnodes: z.array(z.string()),
6
6
  snapshots: z.array(z.string()),
7
+ blobFileStoreUrls: z.array(z.string()).optional(),
7
8
  registryAddress: z.string(),
8
9
  feeAssetHandlerAddress: z.string().optional(),
9
10
  l1ChainId: z.number(),
11
+ blockDurationMs: z.number().positive().optional(),
10
12
  })
11
13
  .passthrough(); // Allow additional unknown fields to pass through
12
14
 
@@ -0,0 +1,4 @@
1
+ /** Parses an env var as boolean. Returns true only if value is 1, true, or TRUE. */
2
+ export function parseBooleanEnv(val: string | undefined): boolean {
3
+ return val !== undefined && ['1', 'true', 'TRUE'].includes(val);
4
+ }
@@ -22,7 +22,7 @@ export class Aes128 {
22
22
  paddingBuffer.fill(numPaddingBytes);
23
23
  const input = Buffer.concat([data, paddingBuffer]);
24
24
 
25
- await BarretenbergSync.initSingleton({ wasmPath: process.env.BB_WASM_PATH });
25
+ await BarretenbergSync.initSingleton();
26
26
  const api = BarretenbergSync.getSingleton();
27
27
  const response = api.aesEncrypt({
28
28
  plaintext: input,
@@ -42,7 +42,7 @@ export class Aes128 {
42
42
  * @returns Decrypted data.
43
43
  */
44
44
  public async decryptBufferCBCKeepPadding(data: Uint8Array, iv: Uint8Array, key: Uint8Array): Promise<Buffer> {
45
- await BarretenbergSync.initSingleton({ wasmPath: process.env.BB_WASM_PATH });
45
+ await BarretenbergSync.initSingleton();
46
46
  const api = BarretenbergSync.getSingleton();
47
47
  const response = api.aesDecrypt({
48
48
  ciphertext: data,
@@ -1,4 +1,4 @@
1
- import { randomBytes } from '@aztec/foundation/crypto';
1
+ import { randomBytes } from '@aztec/foundation/crypto/random';
2
2
 
3
3
  import { createCipheriv, createDecipheriv, createHash, pbkdf2Sync, randomUUID } from 'crypto';
4
4
  import { readFileSync } from 'fs';
@@ -1,4 +1,4 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import type { Hex } from '@aztec/foundation/string';
3
3
 
4
4
  import { mod } from '@noble/curves/abstract/modular';
@@ -1,170 +1,64 @@
1
- import {
2
- BN254_G1_GENERATOR,
3
- BN254_G2_GENERATOR,
4
- BarretenbergSync,
5
- type Bn254G1Point as BbApiBn254G1Point,
6
- type Bn254G2Point as BbApiBn254G2Point,
7
- } from '@aztec/bb.js';
8
-
9
- import { Fq, Fr } from '../../fields/fields.js';
1
+ import { Fr } from '../../curves/bn254/field.js';
2
+ import { Bn254G1Point, Bn254G2Point } from '../../curves/bn254/point.js';
10
3
 
11
4
  /**
12
- * BN254 G1 point using foundation field classes.
13
- * Represents a point on the BN254 elliptic curve in affine coordinates.
5
+ * BN254 utility functions for point operations.
6
+ * Provides compression, decompression, and public key generation for the BN254 curve.
7
+ * Uses the bb.js Barretenberg backend for point operations.
14
8
  */
15
- export class Bn254G1Point {
16
- constructor(
17
- public readonly x: Fq,
18
- public readonly y: Fq,
19
- ) {}
20
-
21
- private toBbApiPoint(): BbApiBn254G1Point {
22
- return {
23
- x: this.x.toBuffer(),
24
- y: this.y.toBuffer(),
25
- };
26
- }
27
-
28
- private static fromBbApiPoint(point: BbApiBn254G1Point): Bn254G1Point {
29
- return new Bn254G1Point(Fq.fromBuffer(Buffer.from(point.x)), Fq.fromBuffer(Buffer.from(point.y)));
30
- }
31
-
32
- async isOnCurve(): Promise<boolean> {
33
- await BarretenbergSync.initSingleton();
34
- const api = BarretenbergSync.getSingleton();
35
-
36
- const apiPoint = this.toBbApiPoint();
37
- const response = api.bn254G1IsOnCurve({ point: apiPoint });
38
- return response.isOnCurve;
39
- }
40
-
41
- /**
42
- * Get the generator point for BN254 G1, or perform scalar multiplication.
43
- * When called without arguments, returns the base generator point.
44
- * When called with a scalar, returns scalar * generator (useful for public key derivation).
45
- */
46
- static async generator(scalar?: Fr): Promise<Bn254G1Point> {
47
- if (!scalar) {
48
- return new Bn254G1Point(
49
- Fq.fromBuffer(Buffer.from(BN254_G1_GENERATOR.x)),
50
- Fq.fromBuffer(Buffer.from(BN254_G1_GENERATOR.y)),
51
- );
52
- }
53
-
54
- await BarretenbergSync.initSingleton();
55
- const api = BarretenbergSync.getSingleton();
56
-
57
- const response = api.bn254G1Mul({
58
- point: BN254_G1_GENERATOR,
59
- scalar: scalar.toBuffer(),
60
- });
61
-
62
- return Bn254G1Point.fromBbApiPoint(response.point);
63
- }
64
-
65
- /**
66
- * Decompress a BN254 G1 point from compressed form (32 bytes).
67
- * The compressed format encodes the x-coordinate and the sign bit of the y-coordinate
68
- * in the most significant bit.
69
- */
70
- static async fromCompressed(compressed: Buffer): Promise<Bn254G1Point> {
71
- await BarretenbergSync.initSingleton();
72
- const api = BarretenbergSync.getSingleton();
73
-
74
- const response = api.bn254G1FromCompressed({
75
- compressed: new Uint8Array(compressed),
76
- });
77
-
78
- return Bn254G1Point.fromBbApiPoint(response.point);
79
- }
80
9
 
81
- /**
82
- * Compress this BN254 G1 point to 32 bytes.
83
- * The compressed format encodes the x-coordinate and the sign bit of the y-coordinate
84
- * in the most significant bit (bit 255).
85
- */
86
- compress(): Buffer {
87
- const xBytes = this.x.toBuffer();
88
- // Get the least significant bit of y to determine the sign
89
- const yLsb = this.y.toBigInt() & 1n;
90
- // If y is odd, set the most significant bit (bit 255) of the output
91
- if (yLsb === 1n) {
92
- xBytes[0] |= 0x80;
93
- }
94
- return xBytes;
95
- }
10
+ /**
11
+ * Generate a compressed BN254 G1 public key from a private key.
12
+ *
13
+ * @param privateKeyHex - Private key as 0x-prefixed hex string
14
+ * @returns Compressed G1 point (32 bytes with sign bit in MSB)
15
+ */
16
+ export async function computeBn254G1PublicKeyCompressed(privateKeyHex: string): Promise<string> {
17
+ const sk = BigInt(privateKeyHex);
18
+ const skReduced = sk % Fr.MODULUS;
96
19
 
97
- equals(other: Bn254G1Point): boolean {
98
- return this.x.equals(other.x) && this.y.equals(other.y);
99
- }
20
+ // Generate G1 point on BN254 curve using bb.js
21
+ const scalar = Fr.fromString(skReduced.toString());
22
+ const pk1 = await Bn254G1Point.generator(scalar);
100
23
 
101
- toString(): string {
102
- return `Bn254G1Point(x: ${this.x.toString()}, y: ${this.y.toString()})`;
103
- }
24
+ // Compress the point using the primitive method
25
+ return '0x' + pk1.compress().toString('hex');
104
26
  }
105
27
 
106
28
  /**
107
- * BN254 G2 point using foundation field classes.
108
- * Represents a point on the BN254 G2 curve (twist curve) in affine coordinates.
109
- * G2 points use extension field coordinates (Fq2).
29
+ * Generate uncompressed BN254 G1 public key from a private key.
30
+ *
31
+ * @param privateKeyHex - Private key as 0x-prefixed hex string
32
+ * @returns G1 point in affine coordinates
110
33
  */
111
- export class Bn254G2Point {
112
- constructor(
113
- public readonly x: [Fq, Fq],
114
- public readonly y: [Fq, Fq],
115
- ) {}
116
-
117
- private toBbApiPoint(): BbApiBn254G2Point {
118
- return {
119
- x: [this.x[0].toBuffer(), this.x[1].toBuffer()],
120
- y: [this.y[0].toBuffer(), this.y[1].toBuffer()],
121
- };
122
- }
123
-
124
- private static fromBbApiPoint(point: BbApiBn254G2Point): Bn254G2Point {
125
- return new Bn254G2Point(
126
- [Fq.fromBuffer(Buffer.from(point.x[0])), Fq.fromBuffer(Buffer.from(point.x[1]))],
127
- [Fq.fromBuffer(Buffer.from(point.y[0])), Fq.fromBuffer(Buffer.from(point.y[1]))],
128
- );
129
- }
130
-
131
- /**
132
- * Get the generator point for BN254 G2, or perform scalar multiplication.
133
- * When called without arguments, returns the base generator point.
134
- * When called with a scalar, returns scalar * generator.
135
- */
136
- static async generator(scalar?: Fr): Promise<Bn254G2Point> {
137
- if (!scalar) {
138
- return new Bn254G2Point(
139
- [Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.x[0])), Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.x[1]))],
140
- [Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.y[0])), Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.y[1]))],
141
- );
142
- }
143
-
144
- await BarretenbergSync.initSingleton();
145
- const api = BarretenbergSync.getSingleton();
34
+ export async function computeBn254G1PublicKey(privateKeyHex: string): Promise<{ x: bigint; y: bigint }> {
35
+ const sk = BigInt(privateKeyHex);
36
+ const skReduced = sk % Fr.MODULUS;
146
37
 
147
- const response = api.bn254G2Mul({
148
- point: BN254_G2_GENERATOR as BbApiBn254G2Point,
149
- scalar: scalar.toBuffer(),
150
- });
38
+ const scalar = Fr.fromString(skReduced.toString());
39
+ const pk1 = await Bn254G1Point.generator(scalar);
151
40
 
152
- return Bn254G2Point.fromBbApiPoint(response.point);
153
- }
154
-
155
- equals(other: Bn254G2Point): boolean {
156
- return (
157
- this.x[0].equals(other.x[0]) &&
158
- this.x[1].equals(other.x[1]) &&
159
- this.y[0].equals(other.y[0]) &&
160
- this.y[1].equals(other.y[1])
161
- );
162
- }
163
-
164
- toString(): string {
165
- return `Bn254G2Point(x: (${this.x[0].toString()}, ${this.x[1].toString()}), y: (${this.y[0].toString()}, ${this.y[1].toString()}))`;
166
- }
41
+ return { x: pk1.x.toBigInt(), y: pk1.y.toBigInt() };
167
42
  }
168
43
 
169
- // Re-export BN254 point utility functions
170
- export { computeBn254G1PublicKeyCompressed, computeBn254G1PublicKey, computeBn254G2PublicKey } from './bn254_utils.js';
44
+ /**
45
+ * Generate BN254 G2 public key from a private key.
46
+ *
47
+ * @param privateKeyHex - Private key as 0x-prefixed hex string
48
+ * @returns G2 point in affine coordinates
49
+ */
50
+ export async function computeBn254G2PublicKey(privateKeyHex: string): Promise<{
51
+ x: { c0: bigint; c1: bigint };
52
+ y: { c0: bigint; c1: bigint };
53
+ }> {
54
+ const sk = BigInt(privateKeyHex);
55
+ const skReduced = sk % Fr.MODULUS;
56
+
57
+ const scalar = Fr.fromString(skReduced.toString());
58
+ const pk2 = await Bn254G2Point.generator(scalar);
59
+
60
+ return {
61
+ x: { c0: pk2.x[0].toBigInt(), c1: pk2.x[1].toBigInt() },
62
+ y: { c0: pk2.y[0].toBigInt(), c1: pk2.y[1].toBigInt() },
63
+ };
64
+ }
@@ -16,7 +16,7 @@ export class Ecdsa {
16
16
  * @returns A secp256k1 public key.
17
17
  */
18
18
  public async computePublicKey(privateKey: Buffer): Promise<Buffer> {
19
- await BarretenbergSync.initSingleton({ wasmPath: process.env.BB_WASM_PATH });
19
+ await BarretenbergSync.initSingleton();
20
20
  const api = BarretenbergSync.getSingleton();
21
21
  const response =
22
22
  this.curve === 'secp256r1'
@@ -32,7 +32,7 @@ export class Ecdsa {
32
32
  * @returns An ECDSA signature of the form (r, s, v).
33
33
  */
34
34
  public async constructSignature(msg: Uint8Array, privateKey: Buffer) {
35
- await BarretenbergSync.initSingleton({ wasmPath: process.env.BB_WASM_PATH });
35
+ await BarretenbergSync.initSingleton();
36
36
  const api = BarretenbergSync.getSingleton();
37
37
  const response =
38
38
  this.curve === 'secp256r1'
@@ -48,7 +48,7 @@ export class Ecdsa {
48
48
  * @returns The secp256k1 public key of the signer.
49
49
  */
50
50
  public async recoverPublicKey(msg: Uint8Array, sig: EcdsaSignature): Promise<Buffer> {
51
- await BarretenbergSync.initSingleton({ wasmPath: process.env.BB_WASM_PATH });
51
+ await BarretenbergSync.initSingleton();
52
52
  const api = BarretenbergSync.getSingleton();
53
53
  const response =
54
54
  this.curve === 'secp256r1'
@@ -65,7 +65,7 @@ export class Ecdsa {
65
65
  * @returns True or false.
66
66
  */
67
67
  public async verifySignature(msg: Uint8Array, pubKey: Buffer, sig: EcdsaSignature) {
68
- await BarretenbergSync.initSingleton({ wasmPath: process.env.BB_WASM_PATH });
68
+ await BarretenbergSync.initSingleton();
69
69
  const api = BarretenbergSync.getSingleton();
70
70
  const response =
71
71
  this.curve === 'secp256r1'
@@ -1,6 +1,6 @@
1
1
  import { toBufferBE } from '@aztec/foundation/bigint-buffer';
2
- import { randomBytes } from '@aztec/foundation/crypto';
3
- import { Fr } from '@aztec/foundation/fields';
2
+ import { randomBytes } from '@aztec/foundation/crypto/random';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
4
  import { mapTuple } from '@aztec/foundation/serialize';
5
5
 
6
6
  import type { Signature } from '../signature/index.js';