@aztec/foundation 0.0.1-commit.b655e406 → 0.0.1-commit.b9865e97

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 (598) 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 +15 -0
  8. package/dest/array/sorted_array.d.ts.map +1 -0
  9. package/dest/array/sorted_array.js +109 -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/bigint-buffer/index.d.ts.map +1 -1
  15. package/dest/bigint-buffer/index.js +6 -1
  16. package/dest/branded-types/block_number.d.ts +56 -0
  17. package/dest/branded-types/block_number.d.ts.map +1 -0
  18. package/dest/branded-types/block_number.js +89 -0
  19. package/dest/branded-types/buffer32_hash.d.ts +27 -0
  20. package/dest/branded-types/buffer32_hash.d.ts.map +1 -0
  21. package/dest/branded-types/buffer32_hash.js +12 -0
  22. package/dest/branded-types/checkpoint_number.d.ts +60 -0
  23. package/dest/branded-types/checkpoint_number.d.ts.map +1 -0
  24. package/dest/branded-types/checkpoint_number.js +88 -0
  25. package/dest/branded-types/epoch.d.ts +42 -0
  26. package/dest/branded-types/epoch.d.ts.map +1 -0
  27. package/dest/branded-types/epoch.js +59 -0
  28. package/dest/branded-types/index.d.ts +8 -0
  29. package/dest/branded-types/index.d.ts.map +1 -0
  30. package/dest/branded-types/index.js +6 -0
  31. package/dest/branded-types/index_within_checkpoint.d.ts +42 -0
  32. package/dest/branded-types/index_within_checkpoint.d.ts.map +1 -0
  33. package/dest/branded-types/index_within_checkpoint.js +59 -0
  34. package/dest/branded-types/slot.d.ts +45 -0
  35. package/dest/branded-types/slot.d.ts.map +1 -0
  36. package/dest/branded-types/slot.js +62 -0
  37. package/dest/branded-types/types.d.ts +5 -0
  38. package/dest/branded-types/types.d.ts.map +1 -0
  39. package/dest/branded-types/types.js +1 -0
  40. package/dest/buffer/buffer16.d.ts +4 -2
  41. package/dest/buffer/buffer16.d.ts.map +1 -1
  42. package/dest/buffer/buffer16.js +4 -2
  43. package/dest/buffer/buffer32.d.ts +29 -62
  44. package/dest/buffer/buffer32.d.ts.map +1 -1
  45. package/dest/buffer/buffer32.js +33 -65
  46. package/dest/buffer/index.d.ts +2 -1
  47. package/dest/buffer/index.d.ts.map +1 -1
  48. package/dest/buffer/index.js +1 -0
  49. package/dest/buffer/utils.d.ts +3 -0
  50. package/dest/buffer/utils.d.ts.map +1 -0
  51. package/dest/buffer/utils.js +7 -0
  52. package/dest/collection/array.d.ts +22 -1
  53. package/dest/collection/array.d.ts.map +1 -1
  54. package/dest/collection/array.js +84 -0
  55. package/dest/collection/index.d.ts +3 -1
  56. package/dest/collection/index.d.ts.map +1 -1
  57. package/dest/collection/index.js +2 -0
  58. package/dest/collection/lru_map.d.ts +41 -0
  59. package/dest/collection/lru_map.d.ts.map +1 -0
  60. package/dest/collection/lru_map.js +119 -0
  61. package/dest/collection/lru_set.d.ts +35 -0
  62. package/dest/collection/lru_set.d.ts.map +1 -0
  63. package/dest/collection/lru_set.js +95 -0
  64. package/dest/collection/object.d.ts +1 -1
  65. package/dest/committable/committable.d.ts +1 -1
  66. package/dest/committable/committable.d.ts.map +1 -1
  67. package/dest/committable/committable.js +1 -1
  68. package/dest/committable/index.d.ts +1 -1
  69. package/dest/config/env_var.d.ts +2 -2
  70. package/dest/config/env_var.d.ts.map +1 -1
  71. package/dest/config/index.d.ts +60 -32
  72. package/dest/config/index.d.ts.map +1 -1
  73. package/dest/config/index.js +63 -40
  74. package/dest/config/network_config.d.ts +17 -31
  75. package/dest/config/network_config.d.ts.map +1 -1
  76. package/dest/config/network_config.js +6 -1
  77. package/dest/config/network_name.d.ts +2 -2
  78. package/dest/config/network_name.d.ts.map +1 -1
  79. package/dest/config/network_name.js +3 -3
  80. package/dest/config/parse-env.d.ts +3 -0
  81. package/dest/config/parse-env.d.ts.map +1 -0
  82. package/dest/config/parse-env.js +7 -0
  83. package/dest/config/secret_value.d.ts +2 -2
  84. package/dest/config/secret_value.d.ts.map +1 -1
  85. package/dest/config/secret_value.js +3 -1
  86. package/dest/crypto/aes128/index.d.ts +2 -1
  87. package/dest/crypto/aes128/index.d.ts.map +1 -1
  88. package/dest/crypto/aes128/index.js +13 -8
  89. package/dest/crypto/bls/bn254_keystore.d.ts +9 -176
  90. package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -1
  91. package/dest/crypto/bls/bn254_keystore.js +1 -18
  92. package/dest/crypto/bls/index.d.ts +1 -1
  93. package/dest/crypto/bls/index.js +1 -1
  94. package/dest/crypto/bn254/index.d.ts +35 -51
  95. package/dest/crypto/bn254/index.d.ts.map +1 -1
  96. package/dest/crypto/bn254/index.js +51 -137
  97. package/dest/crypto/ecdsa/index.d.ts +1 -1
  98. package/dest/crypto/ecdsa/index.d.ts.map +1 -1
  99. package/dest/crypto/ecdsa/index.js +4 -12
  100. package/dest/crypto/ecdsa/signature.d.ts +2 -2
  101. package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
  102. package/dest/crypto/ecdsa/signature.js +2 -2
  103. package/dest/crypto/grumpkin/index.d.ts +4 -2
  104. package/dest/crypto/grumpkin/index.d.ts.map +1 -1
  105. package/dest/crypto/grumpkin/index.js +7 -16
  106. package/dest/crypto/keccak/index.d.ts +1 -1
  107. package/dest/crypto/keys/index.d.ts +2 -2
  108. package/dest/crypto/keys/index.d.ts.map +1 -1
  109. package/dest/crypto/keys/index.js +2 -4
  110. package/dest/crypto/pedersen/index.d.ts +1 -1
  111. package/dest/crypto/pedersen/pedersen.noble.d.ts +1 -1
  112. package/dest/crypto/pedersen/pedersen.wasm.d.ts +2 -2
  113. package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
  114. package/dest/crypto/pedersen/pedersen.wasm.js +4 -10
  115. package/dest/crypto/poseidon/index.d.ts +2 -3
  116. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  117. package/dest/crypto/poseidon/index.js +41 -53
  118. package/dest/crypto/random/index.d.ts +1 -1
  119. package/dest/crypto/random/index.d.ts.map +1 -1
  120. package/dest/crypto/random/randomness_singleton.d.ts +4 -3
  121. package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
  122. package/dest/crypto/random/randomness_singleton.js +5 -5
  123. package/dest/crypto/schnorr/index.d.ts +10 -8
  124. package/dest/crypto/schnorr/index.d.ts.map +1 -1
  125. package/dest/crypto/schnorr/index.js +10 -16
  126. package/dest/crypto/schnorr/signature.d.ts +10 -30
  127. package/dest/crypto/schnorr/signature.d.ts.map +1 -1
  128. package/dest/crypto/schnorr/signature.js +21 -37
  129. package/dest/crypto/secp256k1/index.d.ts +1 -1
  130. package/dest/crypto/secp256k1/index.d.ts.map +1 -1
  131. package/dest/crypto/secp256k1/index.js +3 -9
  132. package/dest/crypto/secp256k1-signer/index.d.ts +1 -1
  133. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts +1 -1
  134. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts.map +1 -1
  135. package/dest/crypto/secp256k1-signer/utils.d.ts +12 -1
  136. package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
  137. package/dest/crypto/secp256k1-signer/utils.js +26 -0
  138. package/dest/crypto/sha256/index.d.ts +2 -2
  139. package/dest/crypto/sha256/index.d.ts.map +1 -1
  140. package/dest/crypto/sha256/index.js +1 -1
  141. package/dest/crypto/sha512/index.d.ts +3 -3
  142. package/dest/crypto/sha512/index.d.ts.map +1 -1
  143. package/dest/crypto/sha512/index.js +1 -1
  144. package/dest/crypto/signature/index.d.ts +2 -2
  145. package/dest/crypto/signature/index.d.ts.map +1 -1
  146. package/dest/crypto/sync/index.d.ts +1 -1
  147. package/dest/crypto/sync/index.js +1 -3
  148. package/dest/crypto/sync/pedersen/index.d.ts +2 -2
  149. package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
  150. package/dest/crypto/sync/pedersen/index.js +1 -1
  151. package/dest/crypto/sync/poseidon/index.d.ts +2 -3
  152. package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
  153. package/dest/crypto/sync/poseidon/index.js +1 -9
  154. package/dest/{fields/bls12_fields.d.ts → curves/bls12/field.d.ts} +5 -5
  155. package/dest/curves/bls12/field.d.ts.map +1 -0
  156. package/dest/{fields/bls12_fields.js → curves/bls12/field.js} +11 -13
  157. package/dest/curves/bls12/index.d.ts +3 -0
  158. package/dest/curves/bls12/index.d.ts.map +1 -0
  159. package/dest/curves/bls12/index.js +2 -0
  160. package/dest/{fields/bls12_point.d.ts → curves/bls12/point.d.ts} +5 -5
  161. package/dest/curves/bls12/point.d.ts.map +1 -0
  162. package/dest/{fields/bls12_point.js → curves/bls12/point.js} +10 -8
  163. package/dest/curves/bn254/field.d.ts +185 -0
  164. package/dest/curves/bn254/field.d.ts.map +1 -0
  165. package/dest/{fields/fields.js → curves/bn254/field.js} +70 -61
  166. package/dest/curves/bn254/index.d.ts +3 -0
  167. package/dest/curves/bn254/index.d.ts.map +1 -0
  168. package/dest/curves/bn254/index.js +2 -0
  169. package/dest/curves/bn254/point.d.ts +54 -0
  170. package/dest/curves/bn254/point.d.ts.map +1 -0
  171. package/dest/curves/bn254/point.js +143 -0
  172. package/dest/curves/grumpkin/index.d.ts +10 -0
  173. package/dest/curves/grumpkin/index.d.ts.map +1 -0
  174. package/dest/curves/grumpkin/index.js +3 -0
  175. package/dest/{fields → curves/grumpkin}/point.d.ts +24 -29
  176. package/dest/curves/grumpkin/point.d.ts.map +1 -0
  177. package/dest/{fields → curves/grumpkin}/point.js +51 -48
  178. package/dest/decorators/index.d.ts +1 -1
  179. package/dest/decorators/memoize.d.ts +1 -1
  180. package/dest/decorators/memoize.d.ts.map +1 -1
  181. package/dest/error/index.d.ts +1 -1
  182. package/dest/eth-address/index.d.ts +13 -3
  183. package/dest/eth-address/index.d.ts.map +1 -1
  184. package/dest/eth-address/index.js +27 -6
  185. package/dest/eth-signature/eth_signature.d.ts +3 -2
  186. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  187. package/dest/eth-signature/eth_signature.js +7 -2
  188. package/dest/eth-signature/index.d.ts +1 -1
  189. package/dest/fifo/fifo_frame_reader.d.ts +41 -0
  190. package/dest/fifo/fifo_frame_reader.d.ts.map +1 -0
  191. package/dest/fifo/fifo_frame_reader.js +91 -0
  192. package/dest/fifo/index.d.ts +2 -0
  193. package/dest/fifo/index.d.ts.map +1 -0
  194. package/dest/fifo/index.js +1 -0
  195. package/dest/fifo_set/fifo_set.d.ts +15 -0
  196. package/dest/fifo_set/fifo_set.d.ts.map +1 -0
  197. package/dest/fifo_set/fifo_set.js +39 -0
  198. package/dest/fifo_set/index.d.ts +2 -0
  199. package/dest/fifo_set/index.d.ts.map +1 -0
  200. package/dest/fifo_set/index.js +1 -0
  201. package/dest/fs/index.d.ts +1 -1
  202. package/dest/fs/run_in_dir.d.ts +1 -1
  203. package/dest/fs/try_rm_dir.d.ts +1 -1
  204. package/dest/iterable/all.d.ts +1 -1
  205. package/dest/iterable/filter.d.ts +1 -1
  206. package/dest/iterable/index.d.ts +1 -1
  207. package/dest/iterable/isAsyncIt.d.ts +1 -1
  208. package/dest/iterable/map.d.ts +1 -1
  209. package/dest/iterable/peek.d.ts +1 -1
  210. package/dest/iterable/sort.d.ts +1 -1
  211. package/dest/iterable/take.d.ts +1 -1
  212. package/dest/iterable/toArray.d.ts +1 -1
  213. package/dest/iterator/filter.d.ts +3 -0
  214. package/dest/iterator/filter.d.ts.map +1 -0
  215. package/dest/iterator/filter.js +7 -0
  216. package/dest/iterator/index.d.ts +2 -0
  217. package/dest/iterator/index.d.ts.map +1 -0
  218. package/dest/iterator/index.js +1 -0
  219. package/dest/jest/setup.js +28 -1
  220. package/dest/json-rpc/client/fetch.d.ts +1 -1
  221. package/dest/json-rpc/client/fetch.d.ts.map +1 -1
  222. package/dest/json-rpc/client/fetch.js +4 -3
  223. package/dest/json-rpc/client/index.d.ts +1 -1
  224. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +2 -1
  225. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
  226. package/dest/json-rpc/client/safe_json_rpc_client.js +3 -3
  227. package/dest/json-rpc/client/undici.d.ts +1 -1
  228. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  229. package/dest/json-rpc/client/undici.js +23 -4
  230. package/dest/json-rpc/convert.d.ts +1 -1
  231. package/dest/json-rpc/errors.d.ts +1 -1
  232. package/dest/json-rpc/errors.d.ts.map +1 -1
  233. package/dest/json-rpc/fixtures/class_a.d.ts +1 -1
  234. package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
  235. package/dest/json-rpc/fixtures/class_b.d.ts +1 -1
  236. package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -1
  237. package/dest/json-rpc/fixtures/test_state.d.ts +4 -8
  238. package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
  239. package/dest/json-rpc/fixtures/test_state.js +57 -17
  240. package/dest/json-rpc/index.d.ts +1 -1
  241. package/dest/json-rpc/js_utils.d.ts +1 -1
  242. package/dest/json-rpc/js_utils.d.ts.map +1 -1
  243. package/dest/json-rpc/server/api_key_auth.d.ts +19 -0
  244. package/dest/json-rpc/server/api_key_auth.d.ts.map +1 -0
  245. package/dest/json-rpc/server/api_key_auth.js +57 -0
  246. package/dest/json-rpc/server/index.d.ts +2 -1
  247. package/dest/json-rpc/server/index.d.ts.map +1 -1
  248. package/dest/json-rpc/server/index.js +1 -0
  249. package/dest/json-rpc/server/safe_json_rpc_server.d.ts +8 -3
  250. package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
  251. package/dest/json-rpc/server/safe_json_rpc_server.js +28 -14
  252. package/dest/json-rpc/test/index.d.ts +1 -1
  253. package/dest/json-rpc/test/integration.d.ts +1 -1
  254. package/dest/log/bigint-utils.d.ts +5 -0
  255. package/dest/log/bigint-utils.d.ts.map +1 -0
  256. package/dest/log/bigint-utils.js +21 -0
  257. package/dest/log/console.d.ts +1 -1
  258. package/dest/log/gcloud-logger-config.d.ts +1 -1
  259. package/dest/log/gcloud-logger-config.d.ts.map +1 -1
  260. package/dest/log/gcloud-logger-config.js +3 -0
  261. package/dest/log/index.d.ts +1 -1
  262. package/dest/log/libp2p_logger.d.ts +5 -2
  263. package/dest/log/libp2p_logger.d.ts.map +1 -1
  264. package/dest/log/libp2p_logger.js +14 -4
  265. package/dest/log/log-filters.d.ts +17 -4
  266. package/dest/log/log-filters.d.ts.map +1 -1
  267. package/dest/log/log-filters.js +26 -12
  268. package/dest/log/log-levels.d.ts +1 -1
  269. package/dest/log/log_fn.d.ts +1 -1
  270. package/dest/log/noir_debug_log_util.d.ts +1 -1
  271. package/dest/log/pino-logger-server.d.ts +9 -0
  272. package/dest/log/pino-logger-server.d.ts.map +1 -0
  273. package/dest/log/pino-logger-server.js +18 -0
  274. package/dest/log/pino-logger.d.ts +38 -9
  275. package/dest/log/pino-logger.d.ts.map +1 -1
  276. package/dest/log/pino-logger.js +138 -30
  277. package/dest/message/index.d.ts +1 -1
  278. package/dest/message/index.d.ts.map +1 -1
  279. package/dest/mutex/index.d.ts +1 -1
  280. package/dest/mutex/index.d.ts.map +1 -1
  281. package/dest/mutex/mutex_database.d.ts +1 -1
  282. package/dest/noir/index.d.ts +1 -1
  283. package/dest/noir/noir_package_config.d.ts +19 -104
  284. package/dest/noir/noir_package_config.d.ts.map +1 -1
  285. package/dest/noir/noir_package_config.js +1 -1
  286. package/dest/number/index.d.ts +1 -1
  287. package/dest/profiler/index.d.ts +1 -1
  288. package/dest/profiler/profiler.d.ts +1 -1
  289. package/dest/promise/index.d.ts +1 -1
  290. package/dest/promise/running-promise.d.ts +1 -1
  291. package/dest/promise/running-promise.d.ts.map +1 -1
  292. package/dest/promise/utils.d.ts +1 -1
  293. package/dest/queue/base_memory_queue.d.ts +2 -2
  294. package/dest/queue/base_memory_queue.d.ts.map +1 -1
  295. package/dest/queue/batch_queue.d.ts +1 -1
  296. package/dest/queue/batch_queue.d.ts.map +1 -1
  297. package/dest/queue/batch_queue.js +1 -0
  298. package/dest/queue/bounded_serial_queue.d.ts +1 -1
  299. package/dest/queue/bounded_serial_queue.d.ts.map +1 -1
  300. package/dest/queue/fifo_memory_queue.d.ts +1 -1
  301. package/dest/queue/fifo_memory_queue.d.ts.map +1 -1
  302. package/dest/queue/index.d.ts +1 -1
  303. package/dest/queue/priority_memory_queue.d.ts +1 -1
  304. package/dest/queue/priority_memory_queue.d.ts.map +1 -1
  305. package/dest/queue/priority_queue.d.ts +1 -1
  306. package/dest/queue/priority_queue.d.ts.map +1 -1
  307. package/dest/queue/semaphore.d.ts +5 -1
  308. package/dest/queue/semaphore.d.ts.map +1 -1
  309. package/dest/queue/serial_queue.d.ts +1 -1
  310. package/dest/queue/serial_queue.d.ts.map +1 -1
  311. package/dest/retry/index.d.ts +22 -1
  312. package/dest/retry/index.d.ts.map +1 -1
  313. package/dest/retry/index.js +32 -0
  314. package/dest/running-promise/index.d.ts +1 -1
  315. package/dest/schemas/api.d.ts +12 -10
  316. package/dest/schemas/api.d.ts.map +1 -1
  317. package/dest/schemas/api.js +7 -1
  318. package/dest/schemas/index.d.ts +1 -1
  319. package/dest/schemas/parse.d.ts +4 -4
  320. package/dest/schemas/parse.d.ts.map +1 -1
  321. package/dest/schemas/parse.js +6 -5
  322. package/dest/schemas/schemas.d.ts +26 -28
  323. package/dest/schemas/schemas.d.ts.map +1 -1
  324. package/dest/schemas/schemas.js +14 -10
  325. package/dest/schemas/types.d.ts +32 -2
  326. package/dest/schemas/types.d.ts.map +1 -1
  327. package/dest/schemas/types.js +25 -1
  328. package/dest/schemas/utils.d.ts +10 -14
  329. package/dest/schemas/utils.d.ts.map +1 -1
  330. package/dest/schemas/utils.js +17 -23
  331. package/dest/serialize/buffer_reader.d.ts +14 -4
  332. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  333. package/dest/serialize/buffer_reader.js +26 -4
  334. package/dest/serialize/buffer_sink.d.ts +134 -0
  335. package/dest/serialize/buffer_sink.d.ts.map +1 -0
  336. package/dest/serialize/buffer_sink.js +297 -0
  337. package/dest/serialize/field_reader.d.ts +2 -2
  338. package/dest/serialize/field_reader.d.ts.map +1 -1
  339. package/dest/serialize/field_reader.js +1 -1
  340. package/dest/serialize/free_funcs.d.ts +2 -2
  341. package/dest/serialize/free_funcs.d.ts.map +1 -1
  342. package/dest/serialize/free_funcs.js +1 -1
  343. package/dest/serialize/index.d.ts +2 -1
  344. package/dest/serialize/index.d.ts.map +1 -1
  345. package/dest/serialize/index.js +1 -0
  346. package/dest/serialize/serialize.d.ts +20 -2
  347. package/dest/serialize/serialize.d.ts.map +1 -1
  348. package/dest/serialize/serialize.js +32 -1
  349. package/dest/serialize/type_registry.d.ts +1 -1
  350. package/dest/serialize/type_registry.d.ts.map +1 -1
  351. package/dest/serialize/types.d.ts +1 -1
  352. package/dest/sleep/index.d.ts +4 -1
  353. package/dest/sleep/index.d.ts.map +1 -1
  354. package/dest/sleep/index.js +14 -1
  355. package/dest/string/index.d.ts +1 -1
  356. package/dest/string/index.js +1 -1
  357. package/dest/testing/files/index.d.ts +2 -1
  358. package/dest/testing/files/index.d.ts.map +1 -1
  359. package/dest/testing/files/index.js +1 -1
  360. package/dest/testing/formatting.d.ts +1 -1
  361. package/dest/testing/index.d.ts +1 -1
  362. package/dest/testing/port_allocator.d.ts +1 -1
  363. package/dest/testing/snapshot_serializer.d.ts +1 -1
  364. package/dest/testing/test_data.d.ts +1 -1
  365. package/dest/timer/date.d.ts +26 -1
  366. package/dest/timer/date.d.ts.map +1 -1
  367. package/dest/timer/date.js +36 -0
  368. package/dest/timer/elapsed.d.ts +1 -1
  369. package/dest/timer/index.d.ts +2 -2
  370. package/dest/timer/index.d.ts.map +1 -1
  371. package/dest/timer/index.js +1 -1
  372. package/dest/timer/timeout.d.ts +3 -1
  373. package/dest/timer/timeout.d.ts.map +1 -1
  374. package/dest/timer/timeout.js +26 -0
  375. package/dest/timer/timer.d.ts +1 -1
  376. package/dest/timer/timer.d.ts.map +1 -1
  377. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +11 -2
  378. package/dest/transport/dispatch/create_dispatch_proxy.d.ts.map +1 -1
  379. package/dest/transport/dispatch/messages.d.ts +1 -1
  380. package/dest/transport/index.d.ts +1 -2
  381. package/dest/transport/index.d.ts.map +1 -1
  382. package/dest/transport/index.js +0 -1
  383. package/dest/transport/interface/connector.d.ts +1 -1
  384. package/dest/transport/interface/listener.d.ts +1 -1
  385. package/dest/transport/interface/socket.d.ts +1 -1
  386. package/dest/transport/interface/transferable.d.ts +1 -1
  387. package/dest/transport/node/index.d.ts +1 -1
  388. package/dest/transport/node/node_connector.d.ts +1 -1
  389. package/dest/transport/node/node_connector.d.ts.map +1 -1
  390. package/dest/transport/node/node_connector_socket.d.ts +1 -1
  391. package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
  392. package/dest/transport/node/node_listener.d.ts +1 -1
  393. package/dest/transport/node/node_listener.d.ts.map +1 -1
  394. package/dest/transport/node/node_listener_socket.d.ts +1 -1
  395. package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
  396. package/dest/transport/transport_client.d.ts +1 -1
  397. package/dest/transport/transport_client.d.ts.map +1 -1
  398. package/dest/transport/transport_client.js +2 -2
  399. package/dest/transport/transport_server.d.ts +1 -10
  400. package/dest/transport/transport_server.d.ts.map +1 -1
  401. package/dest/trees/balanced_merkle_tree_root.d.ts +16 -0
  402. package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -0
  403. package/dest/trees/balanced_merkle_tree_root.js +50 -0
  404. package/dest/trees/hasher.d.ts +4 -1
  405. package/dest/trees/hasher.d.ts.map +1 -1
  406. package/dest/trees/hasher.js +10 -5
  407. package/dest/trees/index.d.ts +4 -3
  408. package/dest/trees/index.d.ts.map +1 -1
  409. package/dest/trees/index.js +3 -2
  410. package/dest/trees/indexed_merkle_tree.d.ts +1 -1
  411. package/dest/trees/indexed_merkle_tree.d.ts.map +1 -1
  412. package/dest/trees/indexed_merkle_tree.js +1 -1
  413. package/dest/trees/indexed_merkle_tree_calculator.d.ts +1 -1
  414. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
  415. package/dest/trees/indexed_merkle_tree_calculator.js +5 -1
  416. package/dest/trees/indexed_tree_leaf.d.ts +1 -1
  417. package/dest/trees/membership_witness.d.ts +7 -18
  418. package/dest/trees/membership_witness.d.ts.map +1 -1
  419. package/dest/trees/membership_witness.js +10 -1
  420. package/dest/trees/merkle_tree.d.ts +1 -1
  421. package/dest/trees/merkle_tree.d.ts.map +1 -1
  422. package/dest/trees/merkle_tree_calculator.d.ts +4 -12
  423. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  424. package/dest/trees/merkle_tree_calculator.js +1 -35
  425. package/dest/trees/sibling_path.d.ts +6 -38
  426. package/dest/trees/sibling_path.d.ts.map +1 -1
  427. package/dest/trees/sibling_path.js +11 -9
  428. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +6 -6
  429. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -1
  430. package/dest/trees/unbalanced_merkle_tree_calculator.js +34 -42
  431. package/dest/trees/unbalanced_merkle_tree_root.d.ts +27 -0
  432. package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -0
  433. package/dest/trees/unbalanced_merkle_tree_root.js +83 -0
  434. package/dest/trees/unbalanced_tree_store.d.ts +5 -1
  435. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
  436. package/dest/trees/unbalanced_tree_store.js +49 -1
  437. package/dest/types/index.d.ts +28 -2
  438. package/dest/types/index.d.ts.map +1 -1
  439. package/dest/types/index.js +21 -0
  440. package/dest/url/index.d.ts +1 -1
  441. package/dest/validation/index.d.ts +1 -1
  442. package/package.json +54 -11
  443. package/src/array/array.ts +0 -16
  444. package/src/array/index.ts +1 -0
  445. package/src/array/sorted_array.ts +138 -0
  446. package/src/bigint-buffer/index.ts +6 -1
  447. package/src/branded-types/block_number.ts +135 -0
  448. package/src/branded-types/buffer32_hash.ts +38 -0
  449. package/src/branded-types/checkpoint_number.ts +130 -0
  450. package/src/branded-types/epoch.ts +88 -0
  451. package/src/branded-types/index.ts +8 -0
  452. package/src/branded-types/index_within_checkpoint.ts +88 -0
  453. package/src/branded-types/slot.ts +93 -0
  454. package/src/branded-types/types.ts +2 -0
  455. package/src/buffer/buffer16.ts +5 -2
  456. package/src/buffer/buffer32.ts +41 -70
  457. package/src/buffer/index.ts +1 -0
  458. package/src/buffer/utils.ts +8 -0
  459. package/src/collection/array.ts +86 -0
  460. package/src/collection/index.ts +2 -0
  461. package/src/collection/lru_map.ts +143 -0
  462. package/src/collection/lru_set.ts +115 -0
  463. package/src/committable/committable.ts +1 -1
  464. package/src/config/env_var.ts +118 -34
  465. package/src/config/index.ts +144 -91
  466. package/src/config/network_config.ts +5 -0
  467. package/src/config/network_name.ts +6 -6
  468. package/src/config/parse-env.ts +4 -0
  469. package/src/config/secret_value.ts +1 -1
  470. package/src/crypto/aes128/index.ts +13 -4
  471. package/src/crypto/bls/bn254_keystore.ts +1 -24
  472. package/src/crypto/bls/index.ts +1 -1
  473. package/src/crypto/bn254/index.ts +50 -156
  474. package/src/crypto/ecdsa/index.ts +4 -4
  475. package/src/crypto/ecdsa/signature.ts +2 -2
  476. package/src/crypto/grumpkin/index.ts +8 -6
  477. package/src/crypto/keys/index.ts +2 -2
  478. package/src/crypto/pedersen/pedersen.wasm.ts +4 -4
  479. package/src/crypto/poseidon/index.ts +43 -45
  480. package/src/crypto/random/randomness_singleton.ts +6 -4
  481. package/src/crypto/schnorr/index.ts +14 -12
  482. package/src/crypto/schnorr/signature.ts +18 -47
  483. package/src/crypto/secp256k1/index.ts +3 -3
  484. package/src/crypto/secp256k1-signer/utils.ts +32 -0
  485. package/src/crypto/sha256/index.ts +1 -1
  486. package/src/crypto/sha512/index.ts +1 -1
  487. package/src/crypto/signature/index.ts +1 -1
  488. package/src/crypto/sync/index.ts +1 -1
  489. package/src/crypto/sync/pedersen/index.ts +1 -1
  490. package/src/crypto/sync/poseidon/index.ts +1 -10
  491. package/src/{fields/bls12_fields.ts → curves/bls12/field.ts} +5 -12
  492. package/src/curves/bls12/index.ts +2 -0
  493. package/src/{fields/bls12_point.ts → curves/bls12/point.ts} +7 -7
  494. package/src/{fields/fields.ts → curves/bn254/field.ts} +82 -84
  495. package/src/curves/bn254/index.ts +2 -0
  496. package/src/curves/bn254/point.ts +170 -0
  497. package/src/curves/grumpkin/index.ts +11 -0
  498. package/src/{fields → curves/grumpkin}/point.ts +47 -45
  499. package/src/eth-address/index.ts +27 -6
  500. package/src/eth-signature/eth_signature.ts +7 -1
  501. package/src/fifo/fifo_frame_reader.ts +113 -0
  502. package/src/fifo/index.ts +1 -0
  503. package/src/fifo_set/fifo_set.ts +52 -0
  504. package/src/fifo_set/index.ts +1 -0
  505. package/src/iterator/filter.ts +11 -0
  506. package/src/iterator/index.ts +1 -0
  507. package/src/jest/setup.mjs +31 -1
  508. package/src/json-rpc/client/fetch.ts +4 -3
  509. package/src/json-rpc/client/safe_json_rpc_client.ts +4 -2
  510. package/src/json-rpc/client/undici.ts +23 -3
  511. package/src/json-rpc/fixtures/test_state.ts +10 -10
  512. package/src/json-rpc/server/api_key_auth.ts +63 -0
  513. package/src/json-rpc/server/index.ts +1 -0
  514. package/src/json-rpc/server/safe_json_rpc_server.ts +32 -14
  515. package/src/log/bigint-utils.ts +25 -0
  516. package/src/log/gcloud-logger-config.ts +5 -0
  517. package/src/log/libp2p_logger.ts +12 -5
  518. package/src/log/log-filters.ts +29 -11
  519. package/src/log/pino-logger-server.ts +25 -0
  520. package/src/log/pino-logger.ts +162 -40
  521. package/src/noir/noir_package_config.ts +32 -20
  522. package/src/queue/base_memory_queue.ts +1 -1
  523. package/src/queue/batch_queue.ts +1 -0
  524. package/src/queue/semaphore.ts +5 -0
  525. package/src/retry/index.ts +48 -0
  526. package/src/schemas/api.ts +25 -25
  527. package/src/schemas/parse.ts +9 -6
  528. package/src/schemas/schemas.ts +27 -16
  529. package/src/schemas/types.ts +34 -1
  530. package/src/schemas/utils.ts +25 -46
  531. package/src/serialize/buffer_reader.ts +36 -9
  532. package/src/serialize/buffer_sink.ts +350 -0
  533. package/src/serialize/field_reader.ts +1 -1
  534. package/src/serialize/free_funcs.ts +1 -1
  535. package/src/serialize/index.ts +1 -0
  536. package/src/serialize/serialize.ts +33 -1
  537. package/src/sleep/index.ts +16 -1
  538. package/src/string/index.ts +1 -1
  539. package/src/testing/files/index.ts +1 -1
  540. package/src/timer/date.ts +52 -0
  541. package/src/timer/index.ts +1 -1
  542. package/src/timer/timeout.ts +31 -0
  543. package/src/transport/dispatch/create_dispatch_proxy.ts +11 -1
  544. package/src/transport/index.ts +0 -1
  545. package/src/transport/transport_client.ts +2 -2
  546. package/src/trees/balanced_merkle_tree_root.ts +65 -0
  547. package/src/trees/hasher.ts +12 -0
  548. package/src/trees/index.ts +3 -2
  549. package/src/trees/indexed_merkle_tree.ts +1 -1
  550. package/src/trees/indexed_merkle_tree_calculator.ts +5 -1
  551. package/src/trees/membership_witness.ts +9 -1
  552. package/src/trees/merkle_tree_calculator.ts +4 -43
  553. package/src/trees/sibling_path.ts +12 -7
  554. package/src/trees/unbalanced_merkle_tree_calculator.ts +32 -50
  555. package/src/trees/unbalanced_merkle_tree_root.ts +112 -0
  556. package/src/trees/unbalanced_tree_store.ts +57 -2
  557. package/src/types/index.ts +58 -1
  558. package/dest/crypto/bn254/bn254_utils.d.ts +0 -39
  559. package/dest/crypto/bn254/bn254_utils.d.ts.map +0 -1
  560. package/dest/crypto/bn254/bn254_utils.js +0 -56
  561. package/dest/crypto/index.d.ts +0 -17
  562. package/dest/crypto/index.d.ts.map +0 -1
  563. package/dest/crypto/index.js +0 -16
  564. package/dest/crypto/serialize.d.ts +0 -51
  565. package/dest/crypto/serialize.d.ts.map +0 -1
  566. package/dest/crypto/serialize.js +0 -68
  567. package/dest/fields/bls12_fields.d.ts.map +0 -1
  568. package/dest/fields/bls12_point.d.ts.map +0 -1
  569. package/dest/fields/coordinate.d.ts +0 -66
  570. package/dest/fields/coordinate.d.ts.map +0 -1
  571. package/dest/fields/coordinate.js +0 -96
  572. package/dest/fields/fields.d.ts +0 -179
  573. package/dest/fields/fields.d.ts.map +0 -1
  574. package/dest/fields/index.d.ts +0 -6
  575. package/dest/fields/index.d.ts.map +0 -1
  576. package/dest/fields/index.js +0 -5
  577. package/dest/fields/point.d.ts.map +0 -1
  578. package/dest/index.d.ts +0 -30
  579. package/dest/index.d.ts.map +0 -1
  580. package/dest/index.js +0 -30
  581. package/dest/json-rpc/server/telemetry.d.ts +0 -2
  582. package/dest/json-rpc/server/telemetry.d.ts.map +0 -1
  583. package/dest/json-rpc/server/telemetry.js +0 -0
  584. package/dest/transport/dispatch/create_dispatch_fn.d.ts +0 -25
  585. package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +0 -1
  586. package/dest/transport/dispatch/create_dispatch_fn.js +0 -17
  587. package/dest/trees/unbalanced_merkle_tree.d.ts +0 -28
  588. package/dest/trees/unbalanced_merkle_tree.d.ts.map +0 -1
  589. package/dest/trees/unbalanced_merkle_tree.js +0 -99
  590. package/src/crypto/bn254/bn254_utils.ts +0 -64
  591. package/src/crypto/index.ts +0 -16
  592. package/src/crypto/serialize.ts +0 -85
  593. package/src/fields/coordinate.ts +0 -104
  594. package/src/fields/index.ts +0 -5
  595. package/src/index.ts +0 -30
  596. package/src/json-rpc/server/telemetry.ts +0 -0
  597. package/src/transport/dispatch/create_dispatch_fn.ts +0 -35
  598. package/src/trees/unbalanced_merkle_tree.ts +0 -111
@@ -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 };
@@ -8,22 +10,29 @@ export type { EnvVar, NetworkNames };
8
10
  export type { NetworkConfig, NetworkConfigMap } from './network_config.js';
9
11
  export { NetworkConfigMapSchema, NetworkConfigSchema } from './network_config.js';
10
12
 
11
- export interface ConfigMapping {
13
+ export interface ConfigMapping<T> {
12
14
  env?: EnvVar;
13
- parseEnv?: (val: string) => any;
14
- defaultValue?: any;
15
+ /** Parse an env-var string into `T`. Throws on invalid input. */
16
+ parseEnv?: (val: string) => T;
17
+ defaultValue?: T;
15
18
  printDefault?: (val: any) => string;
16
19
  description: string;
17
20
  isBoolean?: boolean;
18
- 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 {
23
30
  return typeof obj[key] === 'boolean';
24
31
  }
25
32
 
26
- export type ConfigMappingsType<T> = Record<keyof T, ConfigMapping>;
33
+ export type ConfigMappingsType<T> = {
34
+ [K in keyof T]-?: ConfigMapping<Required<T>[K]>;
35
+ };
27
36
 
28
37
  /**
29
38
  * Shared utility function to get a value from environment variables with fallback support.
@@ -59,8 +68,8 @@ export function getValueFromEnvWithFallback<T>(
59
68
  }
60
69
  }
61
70
 
62
- // Parse the value if needed
63
- if (value !== undefined) {
71
+ // Parse the value if needed. Empty strings are treated as "not set".
72
+ if (value !== undefined && value !== '') {
64
73
  return parseFunc ? parseFunc(value) : (value as unknown as T);
65
74
  }
66
75
 
@@ -72,12 +81,22 @@ export function getConfigFromMappings<T>(configMappings: ConfigMappingsType<T>):
72
81
  const config = {} as T;
73
82
 
74
83
  for (const key in configMappings) {
75
- const { env, parseEnv, defaultValue, nested, fallback } = configMappings[key];
76
- if (nested) {
77
- (config as any)[key] = getConfigFromMappings(nested);
78
- } else {
79
- // Use the shared utility function
84
+ const { env, parseEnv, defaultValue, fallback, deprecatedFallback } = configMappings[key];
85
+ try {
80
86
  (config as any)[key] = getValueFromEnvWithFallback(env, parseEnv, defaultValue, fallback);
87
+ } catch (e: any) {
88
+ throw new Error(`Failed to parse config '${key}' (env: ${env ?? 'none'}): ${e.message}`);
89
+ }
90
+
91
+ if (deprecatedFallback?.length) {
92
+ const userLog = createConsoleLogger('[DEPRECATED]');
93
+ for (const { env: deprecatedEnv, message } of deprecatedFallback) {
94
+ if (process.env[deprecatedEnv]) {
95
+ const warningMessage =
96
+ message ?? `Environment variable ${deprecatedEnv} is deprecated. Please use ${env} instead.`;
97
+ userLog(warningMessage, { deprecatedEnvVar: deprecatedEnv, newEnvVar: env });
98
+ }
99
+ }
81
100
  }
82
101
  }
83
102
 
@@ -104,7 +123,7 @@ export function omitConfigMappings<T, K extends keyof T>(
104
123
  * @param defaultVal - The default numerical value to use if the environment variable is not set or is invalid
105
124
  * @returns Object with parseEnv and default values for a numerical config value
106
125
  */
107
- export function numberConfigHelper(defaultVal: number): Pick<ConfigMapping, 'parseEnv' | 'defaultValue'> {
126
+ export function numberConfigHelper(defaultVal: number): Pick<ConfigMapping<number>, 'parseEnv' | 'defaultValue'> {
108
127
  return {
109
128
  parseEnv: (val: string) => safeParseNumber(val, defaultVal),
110
129
  defaultValue: defaultVal,
@@ -119,7 +138,7 @@ export function numberConfigHelper(defaultVal: number): Pick<ConfigMapping, 'par
119
138
  export function floatConfigHelper(
120
139
  defaultVal: number,
121
140
  validationFn?: (val: number) => void,
122
- ): Pick<ConfigMapping, 'parseEnv' | 'defaultValue'> {
141
+ ): Pick<ConfigMapping<number>, 'parseEnv' | 'defaultValue'> {
123
142
  return {
124
143
  parseEnv: (val: string): number => {
125
144
  const parsed = safeParseFloat(val, defaultVal);
@@ -130,16 +149,49 @@ 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<number>, '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
136
172
  * @returns Object with parseEnv and default values for a numerical config value
137
173
  */
138
- export function bigintConfigHelper(defaultVal?: bigint): Pick<ConfigMapping, 'parseEnv' | 'defaultValue'> {
174
+ export function bigintConfigHelper(defaultVal: bigint): Pick<ConfigMapping<bigint>, 'parseEnv' | 'defaultValue'>;
175
+ export function bigintConfigHelper(): Pick<ConfigMapping<bigint | undefined>, 'parseEnv' | 'defaultValue'>;
176
+ export function bigintConfigHelper(
177
+ defaultVal?: bigint,
178
+ ): Pick<ConfigMapping<bigint | undefined>, 'parseEnv' | 'defaultValue'> {
139
179
  return {
140
180
  parseEnv: (val: string) => {
141
- if (val === '') {
142
- return defaultVal;
181
+ // Handle scientific notation (e.g. "1e+23", "2E23") which BigInt() doesn't accept directly.
182
+ // We parse it losslessly using bigint arithmetic instead of going through float64.
183
+ if (/[eE]/.test(val)) {
184
+ const match = val.match(/^(-?\d+(?:\.(\d+))?)[eE]([+-]?\d+)$/);
185
+ if (!match) {
186
+ throw new Error(`Cannot convert '${val}' to a BigInt`);
187
+ }
188
+ const digits = match[1].replace('.', '');
189
+ const decimalPlaces = match[2]?.length ?? 0;
190
+ const exponent = parseInt(match[3], 10) - decimalPlaces;
191
+ if (exponent < 0) {
192
+ throw new Error(`Cannot convert '${val}' to a BigInt: result is not an integer`);
193
+ }
194
+ return BigInt(digits) * 10n ** BigInt(exponent);
143
195
  }
144
196
  return BigInt(val);
145
197
  },
@@ -149,32 +201,37 @@ export function bigintConfigHelper(defaultVal?: bigint): Pick<ConfigMapping, 'pa
149
201
 
150
202
  /**
151
203
  * Generates parseEnv for an optional numerical config value.
204
+ * Empty strings are already handled by getValueFromEnvWithFallback.
152
205
  */
153
- export function optionalNumberConfigHelper(): Pick<ConfigMapping, 'parseEnv'> {
206
+ export function optionalNumberConfigHelper(): Pick<ConfigMapping<number>, 'parseEnv'> {
154
207
  return {
155
- parseEnv: (val: string | undefined) => {
156
- if (val !== undefined && val.length > 0) {
157
- const parsedValue = parseInt(val);
158
- return Number.isSafeInteger(parsedValue) ? parsedValue : undefined;
208
+ parseEnv: (val: string) => {
209
+ const parsedValue = parseInt(val);
210
+ if (!Number.isSafeInteger(parsedValue)) {
211
+ throw new Error(`Invalid number: ${val}`);
159
212
  }
160
- return undefined;
213
+ return parsedValue;
161
214
  },
162
215
  };
163
216
  }
164
217
 
165
218
  /** Generates parseEnv for an enum-like config value. */
219
+ export function enumConfigHelper<T extends string>(
220
+ values: T[],
221
+ defaultValue: NoInfer<T>,
222
+ ): Pick<ConfigMapping<T>, 'parseEnv' | 'defaultValue'>;
223
+ export function enumConfigHelper<T extends string>(
224
+ values: T[],
225
+ ): Pick<ConfigMapping<T | undefined>, 'parseEnv' | 'defaultValue'>;
166
226
  export function enumConfigHelper<T extends string>(
167
227
  values: T[],
168
228
  defaultValue?: NoInfer<T>,
169
- ): Pick<ConfigMapping, 'parseEnv' | 'defaultValue'> {
229
+ ): Pick<ConfigMapping<T | undefined>, 'parseEnv' | 'defaultValue'> {
170
230
  return {
171
231
  parseEnv: (val: string) => {
172
- const sanitizedVal = (val ?? '').trim().toLowerCase();
173
- if (values.includes(sanitizedVal as T)) {
174
- return sanitizedVal as T;
175
- }
176
- if (!val && defaultValue) {
177
- return defaultValue;
232
+ const sanitizedVal = val.trim().toLowerCase();
233
+ if (values.some(v => v.toLowerCase() === sanitizedVal)) {
234
+ return values.find(v => v.toLowerCase() === sanitizedVal)!;
178
235
  }
179
236
  throw new Error(`Invalid config value '${val}' (must be one of ${values.join(', ')})`);
180
237
  },
@@ -189,7 +246,9 @@ export function enumConfigHelper<T extends string>(
189
246
  */
190
247
  export function booleanConfigHelper(
191
248
  defaultVal = false,
192
- ): Required<Pick<ConfigMapping, 'parseEnv' | 'defaultValue' | 'isBoolean'> & { parseVal: (val: string) => boolean }> {
249
+ ): Required<
250
+ Pick<ConfigMapping<boolean>, 'parseEnv' | 'defaultValue' | 'isBoolean'> & { parseVal: (val: string) => boolean }
251
+ > {
193
252
  const parse = (val: string | boolean) => (typeof val === 'boolean' ? val : parseBooleanEnv(val));
194
253
  return {
195
254
  parseEnv: parse,
@@ -199,94 +258,88 @@ export function booleanConfigHelper(
199
258
  };
200
259
  }
201
260
 
202
- export function secretValueConfigHelper<T>(parse: (val: string | undefined) => T): Required<
203
- Pick<ConfigMapping, 'parseEnv' | 'defaultValue' | 'isBoolean'> & {
204
- parseVal: (val: string) => SecretValue<T>;
205
- }
206
- > {
261
+ export function secretValueConfigHelper<T>(parse: (val: string | undefined) => T): Pick<
262
+ ConfigMapping<SecretValue<T>>,
263
+ 'parseEnv' | 'defaultValue'
264
+ > & {
265
+ parseVal: (val: string) => SecretValue<T>;
266
+ } {
207
267
  const wrap = (val: string) => new SecretValue(parse(val));
208
268
  return {
209
269
  parseEnv: wrap,
210
270
  parseVal: wrap,
211
271
  defaultValue: new SecretValue(parse(undefined)),
212
- isBoolean: true,
213
272
  };
214
273
  }
215
274
 
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
- }
275
+ export { parseBooleanEnv } from './parse-env.js';
220
276
 
221
- export function secretStringConfigHelper(): Required<
222
- Pick<ConfigMapping, 'parseEnv' | 'defaultValue' | 'isBoolean'> & {
223
- parseVal: (val: string) => SecretValue<string | undefined>;
224
- }
225
- >;
226
- export function secretStringConfigHelper(defaultValue: string): Required<
227
- Pick<ConfigMapping, 'parseEnv' | 'defaultValue' | 'isBoolean'> & {
228
- parseVal: (val: string) => SecretValue<string>;
229
- }
230
- >;
231
- export function secretStringConfigHelper(defaultValue?: string): Required<
232
- Pick<ConfigMapping, 'parseEnv' | 'defaultValue' | 'isBoolean'> & {
233
- parseVal: (val: string) => SecretValue<string | typeof defaultValue>;
234
- }
235
- > {
277
+ export function secretStringConfigHelper(): {
278
+ parseEnv: (val: string) => SecretValue<string>;
279
+ parseVal: (val: string) => SecretValue<string>;
280
+ defaultValue: undefined;
281
+ };
282
+ export function secretStringConfigHelper(defaultValue: string): {
283
+ parseEnv: (val: string) => SecretValue<string>;
284
+ parseVal: (val: string) => SecretValue<string>;
285
+ defaultValue: SecretValue<string>;
286
+ };
287
+ export function secretStringConfigHelper(defaultValue?: string): {
288
+ parseEnv: (val: string) => SecretValue<string>;
289
+ parseVal: (val: string) => SecretValue<string>;
290
+ defaultValue: SecretValue<string> | undefined;
291
+ } {
236
292
  const parse = (val: string) => new SecretValue(val);
237
293
  return {
238
294
  parseEnv: parse,
239
295
  parseVal: parse,
240
296
  defaultValue: defaultValue !== undefined ? new SecretValue(defaultValue) : undefined,
241
- isBoolean: true,
242
297
  };
243
298
  }
244
299
 
245
- export function secretFrConfigHelper(): Required<
246
- Pick<ConfigMapping, 'parseEnv' | 'defaultValue' | 'isBoolean'> & {
247
- parseVal: (val: string) => SecretValue<Fr | undefined>;
248
- }
249
- >;
250
- export function secretFrConfigHelper(defaultValue: Fr): Required<
251
- Pick<ConfigMapping, 'parseEnv' | 'defaultValue' | 'isBoolean'> & {
252
- parseVal: (val: string) => SecretValue<Fr>;
253
- }
254
- >;
255
- export function secretFrConfigHelper(defaultValue?: Fr): Required<
256
- Pick<ConfigMapping, 'parseEnv' | 'defaultValue' | 'isBoolean'> & {
257
- parseVal: (val: string) => SecretValue<Fr | typeof defaultValue>;
258
- }
259
- > {
300
+ export function secretFrConfigHelper(): {
301
+ parseEnv: (val: string) => SecretValue<Fr>;
302
+ parseVal: (val: string) => SecretValue<Fr>;
303
+ defaultValue: undefined;
304
+ };
305
+ export function secretFrConfigHelper(defaultValue: Fr): {
306
+ parseEnv: (val: string) => SecretValue<Fr>;
307
+ parseVal: (val: string) => SecretValue<Fr>;
308
+ defaultValue: SecretValue<Fr>;
309
+ };
310
+ export function secretFrConfigHelper(defaultValue?: Fr): {
311
+ parseEnv: (val: string) => SecretValue<Fr>;
312
+ parseVal: (val: string) => SecretValue<Fr>;
313
+ defaultValue: SecretValue<Fr> | undefined;
314
+ } {
260
315
  const parse = (val: string) => new SecretValue(Fr.fromHexString(val));
261
316
  return {
262
317
  parseEnv: parse,
263
318
  parseVal: parse,
264
319
  defaultValue: defaultValue !== undefined ? new SecretValue(defaultValue) : undefined,
265
- isBoolean: true,
266
320
  };
267
321
  }
268
322
 
269
- export function secretFqConfigHelper(defaultValue: Fq): Required<
270
- Pick<ConfigMapping, 'parseEnv' | 'defaultValue' | 'isBoolean'> & {
271
- parseVal: (val: string) => SecretValue<Fq>;
272
- }
273
- >;
274
- export function secretFqConfigHelper(): Required<
275
- Pick<ConfigMapping, 'parseEnv' | 'defaultValue' | 'isBoolean'> & {
276
- parseVal: (val: string) => SecretValue<Fq | undefined>;
277
- }
278
- >;
279
- export function secretFqConfigHelper(defaultValue?: Fq): Required<
280
- Pick<ConfigMapping, 'parseEnv' | 'defaultValue' | 'isBoolean'> & {
281
- parseVal: (val: string) => SecretValue<Fq | typeof defaultValue>;
282
- }
283
- > {
323
+ export function secretFqConfigHelper(): {
324
+ parseEnv: (val: string) => SecretValue<Fq>;
325
+ parseVal: (val: string) => SecretValue<Fq>;
326
+ defaultValue: undefined;
327
+ };
328
+ export function secretFqConfigHelper(defaultValue: Fq): {
329
+ parseEnv: (val: string) => SecretValue<Fq>;
330
+ parseVal: (val: string) => SecretValue<Fq>;
331
+ defaultValue: SecretValue<Fq>;
332
+ };
333
+ export function secretFqConfigHelper(defaultValue?: Fq): {
334
+ parseEnv: (val: string) => SecretValue<Fq>;
335
+ parseVal: (val: string) => SecretValue<Fq>;
336
+ defaultValue: SecretValue<Fq> | undefined;
337
+ } {
284
338
  const parse = (val: string) => new SecretValue(Fq.fromHexString(val));
285
339
  return {
286
340
  parseEnv: parse,
287
341
  parseVal: parse,
288
- defaultValue: typeof defaultValue !== 'undefined' ? new SecretValue(defaultValue) : undefined,
289
- isBoolean: true,
342
+ defaultValue: defaultValue !== undefined ? new SecretValue(defaultValue) : undefined,
290
343
  };
291
344
  }
292
345
 
@@ -4,9 +4,14 @@ 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(),
8
+ txCollectionFileStoreUrls: z.array(z.string()).optional(),
7
9
  registryAddress: z.string(),
8
10
  feeAssetHandlerAddress: z.string().optional(),
9
11
  l1ChainId: z.number(),
12
+ blockDurationMs: z.number().positive().optional(),
13
+ txPublicSetupAllowListExtend: z.string().optional(),
14
+ nodeVersion: z.string().optional(),
10
15
  })
11
16
  .passthrough(); // Allow additional unknown fields to pass through
12
17
 
@@ -1,19 +1,17 @@
1
1
  export type NetworkNames =
2
2
  | 'local'
3
- | 'staging-ignition'
4
- | 'staging-public'
3
+ | 'staging'
5
4
  | 'testnet'
6
5
  | 'mainnet'
7
6
  | 'next-net'
8
- | 'devnet';
7
+ | 'devnet'
8
+ | `v${number}-devnet-${number}`;
9
9
 
10
10
  export function getActiveNetworkName(name?: string): NetworkNames {
11
11
  const network = name || process.env.NETWORK;
12
12
  if (!network || network === '' || network === 'local') {
13
13
  return 'local';
14
- } else if (network === 'staging-ignition') {
15
- return network;
16
- } else if (network === 'staging-public') {
14
+ } else if (network === 'staging') {
17
15
  return network;
18
16
  } else if (network === 'testnet' || network === 'alpha-testnet') {
19
17
  return 'testnet';
@@ -23,6 +21,8 @@ export function getActiveNetworkName(name?: string): NetworkNames {
23
21
  return 'next-net';
24
22
  } else if (network === 'devnet') {
25
23
  return 'devnet';
24
+ } else if (/^v\d+-devnet-\d+$/.test(network)) {
25
+ return network as `v${number}-devnet-${number}`;
26
26
  }
27
27
  throw new Error(`Unknown network: ${network}`);
28
28
  }
@@ -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
+ }
@@ -43,7 +43,7 @@ export class SecretValue<T> {
43
43
  /**
44
44
  * Returns a Zod schema
45
45
  */
46
- static schema<O>(valueSchema: ZodType<O, any, any>): ZodType<SecretValue<O>, any, any> {
46
+ static schema<O>(valueSchema: ZodType<O, any>): ZodType<SecretValue<O>, any> {
47
47
  return valueSchema.transform(value => new SecretValue<O>(value));
48
48
  }
49
49
  }
@@ -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,
@@ -59,10 +59,19 @@ export class Aes128 {
59
59
  * @param iv - AES initialization vector.
60
60
  * @param key - Key to decrypt with.
61
61
  * @returns Decrypted data.
62
+ * @throws If the decrypted buffer has invalid PKCS#7 padding.
62
63
  */
63
64
  public async decryptBufferCBC(data: Uint8Array, iv: Uint8Array, key: Uint8Array) {
64
65
  const paddedBuffer = await this.decryptBufferCBCKeepPadding(data, iv, key);
65
- const paddingToRemove = paddedBuffer[paddedBuffer.length - 1];
66
- return paddedBuffer.subarray(0, paddedBuffer.length - paddingToRemove);
66
+ const paddingLen = paddedBuffer[paddedBuffer.length - 1];
67
+ if (paddingLen === 0 || paddingLen > 16) {
68
+ throw new Error(`Invalid PKCS#7 padding length: ${paddingLen}`);
69
+ }
70
+ for (let i = paddedBuffer.length - paddingLen; i < paddedBuffer.length; i++) {
71
+ if (paddedBuffer[i] !== paddingLen) {
72
+ throw new Error('Invalid PKCS#7 padding');
73
+ }
74
+ }
75
+ return paddedBuffer.subarray(0, paddedBuffer.length - paddingLen);
67
76
  }
68
77
  }
@@ -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';
@@ -262,26 +262,3 @@ export function decryptBn254KeystoreFromObject(keystore: Bn254Keystore, password
262
262
  throw new Bn254KeystoreError(`Failed to decrypt keystore: ${String(error)}`, error as Error);
263
263
  }
264
264
  }
265
-
266
- /**
267
- * Validates that a decrypted private key matches the public key in the keystore.
268
- *
269
- * @param privateKeyHex - Decrypted private key (0x-prefixed)
270
- * @param expectedPubkey - Expected public key from keystore
271
- * @param computePublicKey - Function to compute public key from private key
272
- * @returns true if keys match, false otherwise
273
- */
274
- export function verifyBn254Keypair(
275
- privateKeyHex: string,
276
- expectedPubkey: string,
277
- computePublicKey: (privateKey: string) => string,
278
- ): boolean {
279
- try {
280
- const computedPubkey = computePublicKey(privateKeyHex);
281
- const normalizedExpected = expectedPubkey.toLowerCase().replace(/^0x/i, '');
282
- const normalizedComputed = computedPubkey.toLowerCase().replace(/^0x/i, '');
283
- return normalizedExpected === normalizedComputed;
284
- } catch {
285
- return false;
286
- }
287
- }
@@ -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';