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

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 (600) 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 +79 -38
  72. package/dest/config/index.d.ts.map +1 -1
  73. package/dest/config/index.js +103 -64
  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 +10 -177
  90. package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -1
  91. package/dest/crypto/bls/bn254_keystore.js +23 -35
  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 +4 -3
  108. package/dest/crypto/keys/index.d.ts.map +1 -1
  109. package/dest/crypto/keys/index.js +32 -10
  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 +5 -4
  291. package/dest/promise/running-promise.d.ts.map +1 -1
  292. package/dest/promise/running-promise.js +7 -3
  293. package/dest/promise/utils.d.ts +1 -1
  294. package/dest/queue/base_memory_queue.d.ts +2 -2
  295. package/dest/queue/base_memory_queue.d.ts.map +1 -1
  296. package/dest/queue/batch_queue.d.ts +1 -1
  297. package/dest/queue/batch_queue.d.ts.map +1 -1
  298. package/dest/queue/batch_queue.js +1 -0
  299. package/dest/queue/bounded_serial_queue.d.ts +1 -1
  300. package/dest/queue/bounded_serial_queue.d.ts.map +1 -1
  301. package/dest/queue/fifo_memory_queue.d.ts +1 -1
  302. package/dest/queue/fifo_memory_queue.d.ts.map +1 -1
  303. package/dest/queue/index.d.ts +1 -1
  304. package/dest/queue/priority_memory_queue.d.ts +1 -1
  305. package/dest/queue/priority_memory_queue.d.ts.map +1 -1
  306. package/dest/queue/priority_queue.d.ts +1 -1
  307. package/dest/queue/priority_queue.d.ts.map +1 -1
  308. package/dest/queue/semaphore.d.ts +5 -1
  309. package/dest/queue/semaphore.d.ts.map +1 -1
  310. package/dest/queue/serial_queue.d.ts +1 -1
  311. package/dest/queue/serial_queue.d.ts.map +1 -1
  312. package/dest/retry/index.d.ts +41 -3
  313. package/dest/retry/index.d.ts.map +1 -1
  314. package/dest/retry/index.js +55 -2
  315. package/dest/running-promise/index.d.ts +1 -1
  316. package/dest/schemas/api.d.ts +12 -10
  317. package/dest/schemas/api.d.ts.map +1 -1
  318. package/dest/schemas/api.js +7 -1
  319. package/dest/schemas/index.d.ts +1 -1
  320. package/dest/schemas/parse.d.ts +4 -4
  321. package/dest/schemas/parse.d.ts.map +1 -1
  322. package/dest/schemas/parse.js +6 -5
  323. package/dest/schemas/schemas.d.ts +26 -28
  324. package/dest/schemas/schemas.d.ts.map +1 -1
  325. package/dest/schemas/schemas.js +14 -10
  326. package/dest/schemas/types.d.ts +32 -2
  327. package/dest/schemas/types.d.ts.map +1 -1
  328. package/dest/schemas/types.js +25 -1
  329. package/dest/schemas/utils.d.ts +10 -14
  330. package/dest/schemas/utils.d.ts.map +1 -1
  331. package/dest/schemas/utils.js +17 -23
  332. package/dest/serialize/buffer_reader.d.ts +14 -4
  333. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  334. package/dest/serialize/buffer_reader.js +26 -4
  335. package/dest/serialize/buffer_sink.d.ts +134 -0
  336. package/dest/serialize/buffer_sink.d.ts.map +1 -0
  337. package/dest/serialize/buffer_sink.js +297 -0
  338. package/dest/serialize/field_reader.d.ts +2 -2
  339. package/dest/serialize/field_reader.d.ts.map +1 -1
  340. package/dest/serialize/field_reader.js +1 -1
  341. package/dest/serialize/free_funcs.d.ts +2 -2
  342. package/dest/serialize/free_funcs.d.ts.map +1 -1
  343. package/dest/serialize/free_funcs.js +1 -1
  344. package/dest/serialize/index.d.ts +2 -1
  345. package/dest/serialize/index.d.ts.map +1 -1
  346. package/dest/serialize/index.js +1 -0
  347. package/dest/serialize/serialize.d.ts +20 -2
  348. package/dest/serialize/serialize.d.ts.map +1 -1
  349. package/dest/serialize/serialize.js +32 -1
  350. package/dest/serialize/type_registry.d.ts +1 -1
  351. package/dest/serialize/type_registry.d.ts.map +1 -1
  352. package/dest/serialize/types.d.ts +1 -1
  353. package/dest/sleep/index.d.ts +4 -1
  354. package/dest/sleep/index.d.ts.map +1 -1
  355. package/dest/sleep/index.js +14 -1
  356. package/dest/string/index.d.ts +1 -1
  357. package/dest/string/index.js +1 -1
  358. package/dest/testing/files/index.d.ts +3 -3
  359. package/dest/testing/files/index.d.ts.map +1 -1
  360. package/dest/testing/files/index.js +2 -3
  361. package/dest/testing/formatting.d.ts +1 -1
  362. package/dest/testing/index.d.ts +1 -1
  363. package/dest/testing/port_allocator.d.ts +1 -1
  364. package/dest/testing/snapshot_serializer.d.ts +1 -1
  365. package/dest/testing/test_data.d.ts +1 -1
  366. package/dest/timer/date.d.ts +26 -1
  367. package/dest/timer/date.d.ts.map +1 -1
  368. package/dest/timer/date.js +36 -0
  369. package/dest/timer/elapsed.d.ts +1 -1
  370. package/dest/timer/index.d.ts +2 -2
  371. package/dest/timer/index.d.ts.map +1 -1
  372. package/dest/timer/index.js +1 -1
  373. package/dest/timer/timeout.d.ts +3 -1
  374. package/dest/timer/timeout.d.ts.map +1 -1
  375. package/dest/timer/timeout.js +26 -0
  376. package/dest/timer/timer.d.ts +1 -1
  377. package/dest/timer/timer.d.ts.map +1 -1
  378. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +11 -2
  379. package/dest/transport/dispatch/create_dispatch_proxy.d.ts.map +1 -1
  380. package/dest/transport/dispatch/messages.d.ts +1 -1
  381. package/dest/transport/index.d.ts +1 -2
  382. package/dest/transport/index.d.ts.map +1 -1
  383. package/dest/transport/index.js +0 -1
  384. package/dest/transport/interface/connector.d.ts +1 -1
  385. package/dest/transport/interface/listener.d.ts +1 -1
  386. package/dest/transport/interface/socket.d.ts +1 -1
  387. package/dest/transport/interface/transferable.d.ts +1 -1
  388. package/dest/transport/node/index.d.ts +1 -1
  389. package/dest/transport/node/node_connector.d.ts +1 -1
  390. package/dest/transport/node/node_connector.d.ts.map +1 -1
  391. package/dest/transport/node/node_connector_socket.d.ts +1 -1
  392. package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
  393. package/dest/transport/node/node_listener.d.ts +1 -1
  394. package/dest/transport/node/node_listener.d.ts.map +1 -1
  395. package/dest/transport/node/node_listener_socket.d.ts +1 -1
  396. package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
  397. package/dest/transport/transport_client.d.ts +1 -1
  398. package/dest/transport/transport_client.d.ts.map +1 -1
  399. package/dest/transport/transport_client.js +2 -2
  400. package/dest/transport/transport_server.d.ts +1 -10
  401. package/dest/transport/transport_server.d.ts.map +1 -1
  402. package/dest/trees/balanced_merkle_tree_root.d.ts +16 -0
  403. package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -0
  404. package/dest/trees/balanced_merkle_tree_root.js +50 -0
  405. package/dest/trees/hasher.d.ts +4 -1
  406. package/dest/trees/hasher.d.ts.map +1 -1
  407. package/dest/trees/hasher.js +10 -5
  408. package/dest/trees/index.d.ts +4 -3
  409. package/dest/trees/index.d.ts.map +1 -1
  410. package/dest/trees/index.js +3 -2
  411. package/dest/trees/indexed_merkle_tree.d.ts +1 -1
  412. package/dest/trees/indexed_merkle_tree.d.ts.map +1 -1
  413. package/dest/trees/indexed_merkle_tree.js +1 -1
  414. package/dest/trees/indexed_merkle_tree_calculator.d.ts +1 -1
  415. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
  416. package/dest/trees/indexed_merkle_tree_calculator.js +5 -1
  417. package/dest/trees/indexed_tree_leaf.d.ts +1 -1
  418. package/dest/trees/membership_witness.d.ts +3 -18
  419. package/dest/trees/membership_witness.d.ts.map +1 -1
  420. package/dest/trees/membership_witness.js +1 -1
  421. package/dest/trees/merkle_tree.d.ts +1 -1
  422. package/dest/trees/merkle_tree.d.ts.map +1 -1
  423. package/dest/trees/merkle_tree_calculator.d.ts +4 -12
  424. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  425. package/dest/trees/merkle_tree_calculator.js +1 -35
  426. package/dest/trees/sibling_path.d.ts +6 -38
  427. package/dest/trees/sibling_path.d.ts.map +1 -1
  428. package/dest/trees/sibling_path.js +11 -9
  429. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +6 -6
  430. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -1
  431. package/dest/trees/unbalanced_merkle_tree_calculator.js +34 -42
  432. package/dest/trees/unbalanced_merkle_tree_root.d.ts +27 -0
  433. package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -0
  434. package/dest/trees/unbalanced_merkle_tree_root.js +83 -0
  435. package/dest/trees/unbalanced_tree_store.d.ts +5 -1
  436. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
  437. package/dest/trees/unbalanced_tree_store.js +49 -1
  438. package/dest/types/index.d.ts +28 -2
  439. package/dest/types/index.d.ts.map +1 -1
  440. package/dest/types/index.js +21 -0
  441. package/dest/url/index.d.ts +1 -1
  442. package/dest/validation/index.d.ts +1 -1
  443. package/package.json +54 -11
  444. package/src/array/array.ts +0 -16
  445. package/src/array/index.ts +1 -0
  446. package/src/array/sorted_array.ts +138 -0
  447. package/src/bigint-buffer/index.ts +6 -1
  448. package/src/branded-types/block_number.ts +135 -0
  449. package/src/branded-types/buffer32_hash.ts +38 -0
  450. package/src/branded-types/checkpoint_number.ts +130 -0
  451. package/src/branded-types/epoch.ts +88 -0
  452. package/src/branded-types/index.ts +8 -0
  453. package/src/branded-types/index_within_checkpoint.ts +88 -0
  454. package/src/branded-types/slot.ts +93 -0
  455. package/src/branded-types/types.ts +2 -0
  456. package/src/buffer/buffer16.ts +5 -2
  457. package/src/buffer/buffer32.ts +41 -70
  458. package/src/buffer/index.ts +1 -0
  459. package/src/buffer/utils.ts +8 -0
  460. package/src/collection/array.ts +86 -0
  461. package/src/collection/index.ts +2 -0
  462. package/src/collection/lru_map.ts +143 -0
  463. package/src/collection/lru_set.ts +115 -0
  464. package/src/committable/committable.ts +1 -1
  465. package/src/config/env_var.ts +138 -35
  466. package/src/config/index.ts +183 -114
  467. package/src/config/network_config.ts +5 -0
  468. package/src/config/network_name.ts +6 -6
  469. package/src/config/parse-env.ts +4 -0
  470. package/src/config/secret_value.ts +1 -1
  471. package/src/crypto/aes128/index.ts +13 -4
  472. package/src/crypto/bls/bn254_keystore.ts +34 -44
  473. package/src/crypto/bls/index.ts +1 -1
  474. package/src/crypto/bn254/index.ts +50 -156
  475. package/src/crypto/ecdsa/index.ts +4 -4
  476. package/src/crypto/ecdsa/signature.ts +2 -2
  477. package/src/crypto/grumpkin/index.ts +8 -6
  478. package/src/crypto/keys/index.ts +22 -6
  479. package/src/crypto/pedersen/pedersen.wasm.ts +4 -4
  480. package/src/crypto/poseidon/index.ts +43 -45
  481. package/src/crypto/random/randomness_singleton.ts +6 -4
  482. package/src/crypto/schnorr/index.ts +14 -12
  483. package/src/crypto/schnorr/signature.ts +18 -47
  484. package/src/crypto/secp256k1/index.ts +3 -3
  485. package/src/crypto/secp256k1-signer/utils.ts +32 -0
  486. package/src/crypto/sha256/index.ts +1 -1
  487. package/src/crypto/sha512/index.ts +1 -1
  488. package/src/crypto/signature/index.ts +1 -1
  489. package/src/crypto/sync/index.ts +1 -1
  490. package/src/crypto/sync/pedersen/index.ts +1 -1
  491. package/src/crypto/sync/poseidon/index.ts +1 -10
  492. package/src/{fields/bls12_fields.ts → curves/bls12/field.ts} +5 -12
  493. package/src/curves/bls12/index.ts +2 -0
  494. package/src/{fields/bls12_point.ts → curves/bls12/point.ts} +7 -7
  495. package/src/{fields/fields.ts → curves/bn254/field.ts} +82 -84
  496. package/src/curves/bn254/index.ts +2 -0
  497. package/src/curves/bn254/point.ts +170 -0
  498. package/src/curves/grumpkin/index.ts +11 -0
  499. package/src/{fields → curves/grumpkin}/point.ts +47 -45
  500. package/src/eth-address/index.ts +27 -6
  501. package/src/eth-signature/eth_signature.ts +7 -1
  502. package/src/fifo/fifo_frame_reader.ts +113 -0
  503. package/src/fifo/index.ts +1 -0
  504. package/src/fifo_set/fifo_set.ts +52 -0
  505. package/src/fifo_set/index.ts +1 -0
  506. package/src/iterator/filter.ts +11 -0
  507. package/src/iterator/index.ts +1 -0
  508. package/src/jest/setup.mjs +31 -1
  509. package/src/json-rpc/client/fetch.ts +4 -3
  510. package/src/json-rpc/client/safe_json_rpc_client.ts +4 -2
  511. package/src/json-rpc/client/undici.ts +23 -3
  512. package/src/json-rpc/fixtures/test_state.ts +10 -10
  513. package/src/json-rpc/server/api_key_auth.ts +63 -0
  514. package/src/json-rpc/server/index.ts +1 -0
  515. package/src/json-rpc/server/safe_json_rpc_server.ts +32 -14
  516. package/src/log/bigint-utils.ts +25 -0
  517. package/src/log/gcloud-logger-config.ts +5 -0
  518. package/src/log/libp2p_logger.ts +12 -5
  519. package/src/log/log-filters.ts +29 -11
  520. package/src/log/pino-logger-server.ts +25 -0
  521. package/src/log/pino-logger.ts +162 -40
  522. package/src/noir/noir_package_config.ts +32 -20
  523. package/src/promise/running-promise.ts +8 -5
  524. package/src/queue/base_memory_queue.ts +1 -1
  525. package/src/queue/batch_queue.ts +1 -0
  526. package/src/queue/semaphore.ts +5 -0
  527. package/src/retry/index.ts +84 -4
  528. package/src/schemas/api.ts +25 -25
  529. package/src/schemas/parse.ts +9 -6
  530. package/src/schemas/schemas.ts +27 -16
  531. package/src/schemas/types.ts +34 -1
  532. package/src/schemas/utils.ts +25 -46
  533. package/src/serialize/buffer_reader.ts +36 -9
  534. package/src/serialize/buffer_sink.ts +350 -0
  535. package/src/serialize/field_reader.ts +1 -1
  536. package/src/serialize/free_funcs.ts +1 -1
  537. package/src/serialize/index.ts +1 -0
  538. package/src/serialize/serialize.ts +33 -1
  539. package/src/sleep/index.ts +16 -1
  540. package/src/string/index.ts +1 -1
  541. package/src/testing/files/index.ts +2 -3
  542. package/src/timer/date.ts +52 -0
  543. package/src/timer/index.ts +1 -1
  544. package/src/timer/timeout.ts +31 -0
  545. package/src/transport/dispatch/create_dispatch_proxy.ts +11 -1
  546. package/src/transport/index.ts +0 -1
  547. package/src/transport/transport_client.ts +2 -2
  548. package/src/trees/balanced_merkle_tree_root.ts +65 -0
  549. package/src/trees/hasher.ts +12 -0
  550. package/src/trees/index.ts +3 -2
  551. package/src/trees/indexed_merkle_tree.ts +1 -1
  552. package/src/trees/indexed_merkle_tree_calculator.ts +5 -1
  553. package/src/trees/membership_witness.ts +1 -1
  554. package/src/trees/merkle_tree_calculator.ts +4 -43
  555. package/src/trees/sibling_path.ts +12 -7
  556. package/src/trees/unbalanced_merkle_tree_calculator.ts +32 -50
  557. package/src/trees/unbalanced_merkle_tree_root.ts +112 -0
  558. package/src/trees/unbalanced_tree_store.ts +57 -2
  559. package/src/types/index.ts +58 -1
  560. package/dest/crypto/bn254/bn254_utils.d.ts +0 -39
  561. package/dest/crypto/bn254/bn254_utils.d.ts.map +0 -1
  562. package/dest/crypto/bn254/bn254_utils.js +0 -56
  563. package/dest/crypto/index.d.ts +0 -17
  564. package/dest/crypto/index.d.ts.map +0 -1
  565. package/dest/crypto/index.js +0 -16
  566. package/dest/crypto/serialize.d.ts +0 -51
  567. package/dest/crypto/serialize.d.ts.map +0 -1
  568. package/dest/crypto/serialize.js +0 -68
  569. package/dest/fields/bls12_fields.d.ts.map +0 -1
  570. package/dest/fields/bls12_point.d.ts.map +0 -1
  571. package/dest/fields/coordinate.d.ts +0 -66
  572. package/dest/fields/coordinate.d.ts.map +0 -1
  573. package/dest/fields/coordinate.js +0 -96
  574. package/dest/fields/fields.d.ts +0 -179
  575. package/dest/fields/fields.d.ts.map +0 -1
  576. package/dest/fields/index.d.ts +0 -6
  577. package/dest/fields/index.d.ts.map +0 -1
  578. package/dest/fields/index.js +0 -5
  579. package/dest/fields/point.d.ts.map +0 -1
  580. package/dest/index.d.ts +0 -30
  581. package/dest/index.d.ts.map +0 -1
  582. package/dest/index.js +0 -30
  583. package/dest/json-rpc/server/telemetry.d.ts +0 -2
  584. package/dest/json-rpc/server/telemetry.d.ts.map +0 -1
  585. package/dest/json-rpc/server/telemetry.js +0 -0
  586. package/dest/transport/dispatch/create_dispatch_fn.d.ts +0 -25
  587. package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +0 -1
  588. package/dest/transport/dispatch/create_dispatch_fn.js +0 -17
  589. package/dest/trees/unbalanced_merkle_tree.d.ts +0 -28
  590. package/dest/trees/unbalanced_merkle_tree.d.ts.map +0 -1
  591. package/dest/trees/unbalanced_merkle_tree.js +0 -99
  592. package/src/crypto/bn254/bn254_utils.ts +0 -64
  593. package/src/crypto/index.ts +0 -16
  594. package/src/crypto/serialize.ts +0 -85
  595. package/src/fields/coordinate.ts +0 -104
  596. package/src/fields/index.ts +0 -5
  597. package/src/index.ts +0 -30
  598. package/src/json-rpc/server/telemetry.ts +0 -0
  599. package/src/transport/dispatch/create_dispatch_fn.ts +0 -35
  600. package/src/trees/unbalanced_merkle_tree.ts +0 -111
@@ -1,10 +1,6 @@
1
- import { sha256Trunc } from '../crypto/index.js';
1
+ import { shaMerkleHash } from './hasher.js';
2
2
  import { SiblingPath } from './sibling_path.js';
3
3
  import { UnbalancedTreeStore } from './unbalanced_tree_store.js';
4
- export function computeCompressedUnbalancedMerkleTreeRoot(leaves, valueToCompress = Buffer.alloc(32), hasher) {
5
- const calculator = UnbalancedMerkleTreeCalculator.create(leaves, valueToCompress, hasher);
6
- return calculator.getRoot();
7
- }
8
4
  /**
9
5
  * An ephemeral unbalanced Merkle tree implementation.
10
6
  * Follows the rollup implementation which greedily hashes pairs of nodes up the tree.
@@ -15,25 +11,21 @@ export function computeCompressedUnbalancedMerkleTreeRoot(leaves, valueToCompres
15
11
  */ export class UnbalancedMerkleTreeCalculator {
16
12
  leaves;
17
13
  valueToCompress;
14
+ emptyRoot;
18
15
  hasher;
19
16
  store;
20
17
  leafLocations;
21
- constructor(leaves, valueToCompress, hasher){
18
+ constructor(leaves, valueToCompress, emptyRoot, hasher){
22
19
  this.leaves = leaves;
23
20
  this.valueToCompress = valueToCompress;
21
+ this.emptyRoot = emptyRoot;
24
22
  this.hasher = hasher;
25
23
  this.leafLocations = [];
26
- if (leaves.length === 0) {
27
- throw Error('Cannot create a compressed unbalanced tree with 0 leaves.');
28
- }
29
24
  this.store = new UnbalancedTreeStore(leaves.length);
30
25
  this.buildTree();
31
26
  }
32
- static create(leaves, valueToCompress = Buffer.alloc(0), hasher = (left, right)=>sha256Trunc(Buffer.concat([
33
- left,
34
- right
35
- ]))) {
36
- return new UnbalancedMerkleTreeCalculator(leaves, valueToCompress, hasher);
27
+ static create(leaves, valueToCompress = Buffer.alloc(0), emptyRoot = Buffer.alloc(32), hasher = shaMerkleHash) {
28
+ return new UnbalancedMerkleTreeCalculator(leaves, valueToCompress, emptyRoot, hasher);
37
29
  }
38
30
  /**
39
31
  * Returns the root of the tree.
@@ -88,12 +80,12 @@ export function computeCompressedUnbalancedMerkleTreeRoot(leaves, valueToCompres
88
80
  // Start with the leaves that are not compressed.
89
81
  let toProcess = this.leafLocations.filter((_, i)=>!this.leaves[i].equals(this.valueToCompress));
90
82
  if (!toProcess.length) {
91
- // All leaves are compressed. Set 0 to the root.
83
+ // All leaves are compressed. Set empty root to the root.
92
84
  this.store.setNode({
93
85
  level: 0,
94
86
  index: 0
95
87
  }, {
96
- value: Buffer.alloc(32)
88
+ value: this.emptyRoot
97
89
  });
98
90
  return;
99
91
  }
@@ -114,10 +106,7 @@ export function computeCompressedUnbalancedMerkleTreeRoot(leaves, valueToCompres
114
106
  const shouldShiftUp = !sibling || sibling.value.equals(this.valueToCompress);
115
107
  if (shouldShiftUp) {
116
108
  // The node becomes the parent if the sibling is a compressed leaf.
117
- const isLeaf = this.shiftNodeUp(location, parentLocation);
118
- if (!isLeaf) {
119
- this.shiftChildrenUp(location);
120
- }
109
+ this.shiftNodeUp(location, parentLocation);
121
110
  } else {
122
111
  // Hash the value with the (right) sibling and update the parent node.
123
112
  const node = this.store.getNode(location);
@@ -132,31 +121,34 @@ export function computeCompressedUnbalancedMerkleTreeRoot(leaves, valueToCompres
132
121
  toProcess = toProcessNext;
133
122
  }
134
123
  }
135
- shiftNodeUp(fromLocation, toLocation) {
136
- const node = this.store.getNode(fromLocation);
137
- this.store.setNode(toLocation, node);
138
- const isLeaf = node.leafIndex !== undefined;
139
- if (isLeaf) {
140
- // Update the location if the node is a leaf.
141
- this.leafLocations[node.leafIndex] = toLocation;
124
+ shiftNodeUp(from, to) {
125
+ // Collect all nodes that need to shift.
126
+ const nodesToShift = this.collectNodesToShift(from, to);
127
+ // Move all nodes to their new locations.
128
+ for (const { node, newLocation } of nodesToShift){
129
+ this.store.setNode(newLocation, node);
130
+ if (node.leafIndex !== undefined) {
131
+ this.leafLocations[node.leafIndex] = newLocation;
132
+ }
142
133
  }
143
- return isLeaf;
144
134
  }
145
- shiftChildrenUp(parent) {
146
- const [left, right] = this.store.getChildLocations(parent);
147
- const level = parent.level;
148
- const groupSize = 2 ** level;
149
- const computeNewLocation = (index)=>({
150
- level,
151
- index: Math.floor(index / (groupSize * 2)) * groupSize + index % groupSize
152
- });
153
- const isLeftLeaf = this.shiftNodeUp(left, computeNewLocation(left.index));
154
- const isRightLeaf = this.shiftNodeUp(right, computeNewLocation(right.index));
155
- if (!isLeftLeaf) {
156
- this.shiftChildrenUp(left);
135
+ collectNodesToShift(from, to) {
136
+ const node = this.store.getNode(from);
137
+ if (!node) {
138
+ return [];
157
139
  }
158
- if (!isRightLeaf) {
159
- this.shiftChildrenUp(right);
140
+ let result = [
141
+ {
142
+ node,
143
+ newLocation: to
144
+ }
145
+ ];
146
+ // If not a leaf, collect its children.
147
+ if (node.leafIndex === undefined) {
148
+ const [leftChild, rightChild] = this.store.getChildLocations(from);
149
+ const [leftChildNew, rightChildNew] = this.store.getChildLocations(to);
150
+ result = result.concat(this.collectNodesToShift(leftChild, leftChildNew)).concat(this.collectNodesToShift(rightChild, rightChildNew));
160
151
  }
152
+ return result;
161
153
  }
162
154
  }
@@ -0,0 +1,27 @@
1
+ export declare const computeUnbalancedShaRoot: (leaves: Buffer<ArrayBufferLike>[]) => Buffer<ArrayBufferLike>;
2
+ export declare const computeWonkyShaRoot: (leaves: Buffer<ArrayBufferLike>[]) => Buffer<ArrayBufferLike>;
3
+ /**
4
+ * Computes the Merkle root of an unbalanced tree.
5
+ *
6
+ * Unlike a balanced Merkle tree, which requires the number of leaves to be a power of two, an unbalanced tree can have
7
+ * any number of leaves.
8
+ *
9
+ * The tree is constructed by iteratively extracting the smallest power-of-two-sized subtrees from **right to left**.
10
+ * For each such subtree, it computes the subtree root and then combines all subtree roots (again from right to left)
11
+ * into a single root using the provided hash function.
12
+ *
13
+ * Note: We need the final tree to be as shallow as possible, to minimize the size of the sibling path required to prove
14
+ * membership of a leaf. Therefor, the computation proceeds from right to left - smaller subtrees must always be
15
+ * combined before being merged with a larger sibling on their left.
16
+ *
17
+ * For example, consider an unbalanced tree made of three subtrees of sizes 2, 4, and 8. If we combine the size-2 and
18
+ * size-4 subtrees first (producing a subtree of depth 3), and then merge it with the size-8 subtree (also depth 3), the
19
+ * resulting tree has a maximum depth of 4.
20
+ *
21
+ * But if we instead combine the size-4 and size-8 subtrees first (depth 4), and then merge with the size-2 subtree
22
+ * (depth 1), the final tree has a depth of 5.
23
+ */
24
+ export declare function computeUnbalancedMerkleTreeRoot(leaves: Buffer[], hasher?: (lhs: Uint8Array<ArrayBufferLike>, rhs: Uint8Array<ArrayBufferLike>) => Buffer<ArrayBuffer>, emptyRoot?: Buffer<ArrayBuffer>): Buffer;
25
+ export declare function computeUnbalancedMerkleTreeRootAsync(leaves: Buffer[], hasher: (left: Uint8Array, right: Uint8Array) => Promise<Buffer<ArrayBuffer>>, emptyRoot?: Buffer<ArrayBuffer>): Promise<Buffer>;
26
+ export declare function computeWonkyMerkleTreeRoot(leaves: Buffer[], valueToCompress?: Buffer<ArrayBuffer>, emptyRoot?: Buffer<ArrayBuffer>, hasher?: (lhs: Uint8Array<ArrayBufferLike>, rhs: Uint8Array<ArrayBufferLike>) => Buffer<ArrayBuffer>): Buffer;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5iYWxhbmNlZF9tZXJrbGVfdHJlZV9yb290LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJlZXMvdW5iYWxhbmNlZF9tZXJrbGVfdHJlZV9yb290LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLGVBQU8sTUFBTSx3QkFBd0IsZ0VBQStFLENBQUM7QUFFckgsZUFBTyxNQUFNLG1CQUFtQixnRUFBMkQsQ0FBQztBQUU1Rjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCx3QkFBZ0IsK0JBQStCLENBQzdDLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFDaEIsTUFBTSw4RkFBZ0IsRUFDdEIsU0FBUyxzQkFBbUIsR0FDM0IsTUFBTSxDQTZCUjtBQUVELHdCQUFzQixvQ0FBb0MsQ0FDeEQsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUNoQixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEtBQUssT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUM3RSxTQUFTLHNCQUFtQixHQUMzQixPQUFPLENBQUMsTUFBTSxDQUFDLENBNkJqQjtBQU1ELHdCQUFnQiwwQkFBMEIsQ0FDeEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUNoQixlQUFlLHNCQUFtQixFQUNsQyxTQUFTLHNCQUFtQixFQUM1QixNQUFNLDhGQUFnQixHQUNyQixNQUFNLENBR1IifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unbalanced_merkle_tree_root.d.ts","sourceRoot":"","sources":["../../src/trees/unbalanced_merkle_tree_root.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,wBAAwB,gEAA+E,CAAC;AAErH,eAAO,MAAM,mBAAmB,gEAA2D,CAAC;AAE5F;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,8FAAgB,EACtB,SAAS,sBAAmB,GAC3B,MAAM,CA6BR;AAED,wBAAsB,oCAAoC,CACxD,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAC7E,SAAS,sBAAmB,GAC3B,OAAO,CAAC,MAAM,CAAC,CA6BjB;AAMD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EAAE,EAChB,eAAe,sBAAmB,EAClC,SAAS,sBAAmB,EAC5B,MAAM,8FAAgB,GACrB,MAAM,CAGR"}
@@ -0,0 +1,83 @@
1
+ import { computeBalancedMerkleTreeRoot, computeBalancedMerkleTreeRootAsync } from './balanced_merkle_tree_root.js';
2
+ import { shaMerkleHash } from './hasher.js';
3
+ import { UnbalancedMerkleTreeCalculator } from './unbalanced_merkle_tree_calculator.js';
4
+ export const computeUnbalancedShaRoot = (leaves)=>computeUnbalancedMerkleTreeRoot(leaves, shaMerkleHash);
5
+ export const computeWonkyShaRoot = (leaves)=>computeWonkyMerkleTreeRoot(leaves);
6
+ /**
7
+ * Computes the Merkle root of an unbalanced tree.
8
+ *
9
+ * Unlike a balanced Merkle tree, which requires the number of leaves to be a power of two, an unbalanced tree can have
10
+ * any number of leaves.
11
+ *
12
+ * The tree is constructed by iteratively extracting the smallest power-of-two-sized subtrees from **right to left**.
13
+ * For each such subtree, it computes the subtree root and then combines all subtree roots (again from right to left)
14
+ * into a single root using the provided hash function.
15
+ *
16
+ * Note: We need the final tree to be as shallow as possible, to minimize the size of the sibling path required to prove
17
+ * membership of a leaf. Therefor, the computation proceeds from right to left - smaller subtrees must always be
18
+ * combined before being merged with a larger sibling on their left.
19
+ *
20
+ * For example, consider an unbalanced tree made of three subtrees of sizes 2, 4, and 8. If we combine the size-2 and
21
+ * size-4 subtrees first (producing a subtree of depth 3), and then merge it with the size-8 subtree (also depth 3), the
22
+ * resulting tree has a maximum depth of 4.
23
+ *
24
+ * But if we instead combine the size-4 and size-8 subtrees first (depth 4), and then merge with the size-2 subtree
25
+ * (depth 1), the final tree has a depth of 5.
26
+ */ export function computeUnbalancedMerkleTreeRoot(leaves, hasher = shaMerkleHash, emptyRoot = Buffer.alloc(32)) {
27
+ if (!leaves.length) {
28
+ return emptyRoot;
29
+ }
30
+ if (leaves.length === 1) {
31
+ return leaves[0];
32
+ }
33
+ let numRemainingLeaves = leaves.length;
34
+ let subtreeSize = 1;
35
+ let root;
36
+ while(numRemainingLeaves > 1){
37
+ if ((numRemainingLeaves & subtreeSize) !== 0) {
38
+ const subtreeLeaves = leaves.slice(numRemainingLeaves - subtreeSize, numRemainingLeaves);
39
+ const subtreeRoot = computeBalancedMerkleTreeRoot(subtreeLeaves, hasher);
40
+ if (!root) {
41
+ root = subtreeRoot;
42
+ } else {
43
+ root = hasher(subtreeRoot, root);
44
+ }
45
+ numRemainingLeaves -= subtreeSize;
46
+ }
47
+ subtreeSize *= 2;
48
+ }
49
+ return root;
50
+ }
51
+ export async function computeUnbalancedMerkleTreeRootAsync(leaves, hasher, emptyRoot = Buffer.alloc(32)) {
52
+ if (!leaves.length) {
53
+ return emptyRoot;
54
+ }
55
+ if (leaves.length === 1) {
56
+ return leaves[0];
57
+ }
58
+ let numRemainingLeaves = leaves.length;
59
+ let subtreeSize = 1;
60
+ let root;
61
+ while(numRemainingLeaves > 1){
62
+ if ((numRemainingLeaves & subtreeSize) !== 0) {
63
+ const subtreeLeaves = leaves.slice(numRemainingLeaves - subtreeSize, numRemainingLeaves);
64
+ const subtreeRoot = await computeBalancedMerkleTreeRootAsync(subtreeLeaves, hasher);
65
+ if (!root) {
66
+ root = subtreeRoot;
67
+ } else {
68
+ root = await hasher(subtreeRoot, root);
69
+ }
70
+ numRemainingLeaves -= subtreeSize;
71
+ }
72
+ subtreeSize *= 2;
73
+ }
74
+ return root;
75
+ }
76
+ // A **wonky** tree is a "compressed" unbalanced Merkle tree.
77
+ // It is constructed in the same way as an unbalanced tree: by first creating the largest possible left subtree, with
78
+ // the remaining leaves forming a right subtree that follows the same process recursively.
79
+ // During construction, leaves equal to `valueToCompress` are skipped (compressed) and do not contribute to the tree.
80
+ export function computeWonkyMerkleTreeRoot(leaves, valueToCompress = Buffer.alloc(32), emptyRoot = Buffer.alloc(32), hasher = shaMerkleHash) {
81
+ const calculator = UnbalancedMerkleTreeCalculator.create(leaves, valueToCompress, emptyRoot, hasher);
82
+ return calculator.getRoot();
83
+ }
@@ -17,4 +17,8 @@ export declare class UnbalancedTreeStore<T> {
17
17
  getSibling(location: TreeNodeLocation): T | undefined;
18
18
  getChildren(location: TreeNodeLocation): [T | undefined, T | undefined];
19
19
  }
20
- //# sourceMappingURL=unbalanced_tree_store.d.ts.map
20
+ export declare function findLeafLevelAndIndex(numLeaves: number, leafIndex: number): {
21
+ level: number;
22
+ indexAtLevel: number;
23
+ };
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5iYWxhbmNlZF90cmVlX3N0b3JlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJlZXMvdW5iYWxhbmNlZF90cmVlX3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sV0FBVyxnQkFBZ0I7SUFDL0IsS0FBSyxFQUFFLE1BQU0sQ0FBQztJQUNkLEtBQUssRUFBRSxNQUFNLENBQUM7Q0FDZjtBQU9ELHFCQUFhLG1CQUFtQixDQUFDLENBQUM7O0lBSWhDLFlBQVksU0FBUyxFQUFFLE1BQU0sRUFFNUI7SUFFRCxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLGdCQUFnQixDQWVyRDtJQUVELE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxRQVNuRDtJQUVELGlCQUFpQixDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLGdCQUFnQixHQUFHLGdCQUFnQixDQU10RTtJQUVELGtCQUFrQixDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLGdCQUFnQixHQUFHLGdCQUFnQixDQU12RTtJQUVELGlCQUFpQixDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLGdCQUFnQixHQUFHLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsQ0FJMUY7SUFFRCxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sR0FBRyxDQUFDLEdBQUcsU0FBUyxDQU94QztJQUVELE9BQU8sQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FFakQ7SUFFRCxPQUFPLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FFdkI7SUFFRCxTQUFTLENBQUMsUUFBUSxFQUFFLGdCQUFnQixHQUFHLENBQUMsR0FBRyxTQUFTLENBR25EO0lBRUQsVUFBVSxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUdwRDtJQUVELFdBQVcsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsU0FBUyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FHdEU7Q0FLRjtBQXNERCx3QkFBZ0IscUJBQXFCLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTTs7O0VBR3pFIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"unbalanced_tree_store.d.ts","sourceRoot":"","sources":["../../src/trees/unbalanced_tree_store.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAOD,qBAAa,mBAAmB,CAAC,CAAC;;gBAIpB,SAAS,EAAE,MAAM;IAI7B,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,gBAAgB;IAiBtD,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC;IAWpD,iBAAiB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,gBAAgB,GAAG,gBAAgB;IAQvE,kBAAkB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,gBAAgB,GAAG,gBAAgB;IAQxE,iBAAiB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,gBAAgB,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAM3F,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IASzC,OAAO,CAAC,QAAQ,EAAE,gBAAgB,GAAG,CAAC,GAAG,SAAS;IAIlD,OAAO,IAAI,CAAC,GAAG,SAAS;IAIxB,SAAS,CAAC,QAAQ,EAAE,gBAAgB,GAAG,CAAC,GAAG,SAAS;IAKpD,UAAU,CAAC,QAAQ,EAAE,gBAAgB,GAAG,CAAC,GAAG,SAAS;IAKrD,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,SAAS,CAAC;CAQxE"}
1
+ {"version":3,"file":"unbalanced_tree_store.d.ts","sourceRoot":"","sources":["../../src/trees/unbalanced_tree_store.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAOD,qBAAa,mBAAmB,CAAC,CAAC;;IAIhC,YAAY,SAAS,EAAE,MAAM,EAE5B;IAED,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,gBAAgB,CAerD;IAED,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,QASnD;IAED,iBAAiB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,gBAAgB,GAAG,gBAAgB,CAMtE;IAED,kBAAkB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,gBAAgB,GAAG,gBAAgB,CAMvE;IAED,iBAAiB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,gBAAgB,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAI1F;IAED,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAOxC;IAED,OAAO,CAAC,QAAQ,EAAE,gBAAgB,GAAG,CAAC,GAAG,SAAS,CAEjD;IAED,OAAO,IAAI,CAAC,GAAG,SAAS,CAEvB;IAED,SAAS,CAAC,QAAQ,EAAE,gBAAgB,GAAG,CAAC,GAAG,SAAS,CAGnD;IAED,UAAU,CAAC,QAAQ,EAAE,gBAAgB,GAAG,CAAC,GAAG,SAAS,CAGpD;IAED,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,SAAS,CAAC,CAGtE;CAKF;AAsDD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;EAGzE"}
@@ -1,4 +1,3 @@
1
- import { findLeafLevelAndIndex } from './unbalanced_merkle_tree.js';
2
1
  export class UnbalancedTreeStore {
3
2
  #nodeMapping = new Map();
4
3
  #numLeaves;
@@ -98,3 +97,52 @@ export class UnbalancedTreeStore {
98
97
  return `${location.level}-${location.index}`;
99
98
  }
100
99
  }
100
+ /// Get the depth of the maximum balanced tree that can be created with the given number of leaves. The subtree will be
101
+ /// the left most subtree of the unbalanced tree with a total of `numLeaves` leaves.
102
+ ///
103
+ /// Note: All the leaves may not be used to form the tree. For example, if there are 5 leaves, the maximum depth is 2,
104
+ /// only 4 leaves are used to form a balanced tree.
105
+ function getMaxBalancedSubtreeDepth(numLeaves) {
106
+ return Math.floor(Math.log2(numLeaves));
107
+ }
108
+ /// Get the maximum depth of an unbalanced tree that can be created with the given number of leaves.
109
+ function getMaxUnbalancedTreeDepth(numLeaves) {
110
+ return Math.ceil(Math.log2(numLeaves));
111
+ }
112
+ function findPosition(rootLevel, leafLevel, numLeaves, indexOffset, targetIndex) {
113
+ if (numLeaves <= 1) {
114
+ // Single leaf.
115
+ return {
116
+ level: rootLevel,
117
+ indexAtLevel: indexOffset
118
+ };
119
+ }
120
+ // The largest balanced tree that can be created with the given number of leaves.
121
+ const maxBalancedTreeDepth = getMaxBalancedSubtreeDepth(numLeaves);
122
+ const numBalancedLeaves = 2 ** maxBalancedTreeDepth;
123
+ const numRemainingLeaves = numLeaves - numBalancedLeaves;
124
+ if (targetIndex < numBalancedLeaves) {
125
+ // Target is in the balanced tree.
126
+ // - If numRemainingLeaves is 0: this balanced tree is grown from the current root.
127
+ // - If numRemainingLeaves is not 0: the remaining leaves will form another tree, which will become the right child of the root.
128
+ // And the balanced tree will be the left child of the root.
129
+ // There will be an extra level between the root of the balanced tree and the current root.
130
+ const extraLevel = numRemainingLeaves ? 1 : 0;
131
+ return {
132
+ level: rootLevel + maxBalancedTreeDepth + extraLevel,
133
+ indexAtLevel: indexOffset + targetIndex
134
+ };
135
+ } else {
136
+ // Target is in the right branch.
137
+ const rightBranchMaxLevel = getMaxUnbalancedTreeDepth(numRemainingLeaves);
138
+ const shiftedUp = leafLevel - rootLevel - rightBranchMaxLevel - 1;
139
+ const nextLeafLevel = leafLevel - shiftedUp;
140
+ const newIndexOffset = indexOffset + numBalancedLeaves >> shiftedUp;
141
+ const shiftedTargetIndex = targetIndex - numBalancedLeaves;
142
+ return findPosition(rootLevel + 1, nextLeafLevel, numRemainingLeaves, newIndexOffset, shiftedTargetIndex);
143
+ }
144
+ }
145
+ export function findLeafLevelAndIndex(numLeaves, leafIndex) {
146
+ const maxLevel = getMaxUnbalancedTreeDepth(numLeaves);
147
+ return findPosition(0, maxLevel, numLeaves, 0, leafIndex);
148
+ }
@@ -14,15 +14,41 @@ export type Writeable<T> = {
14
14
  };
15
15
  /** Removes readonly modifiers for an object. */
16
16
  export declare function unfreeze<T>(obj: T): Writeable<T>;
17
+ /** Is defined type guard */
18
+ export declare function isDefined<T>(value: T | undefined): value is T;
19
+ /** Type guard for error classes */
20
+ export declare function isErrorClass<T extends Error>(value: unknown, errorClass: new (...args: any[]) => T): value is T;
21
+ /** Returns the first error in the cause chain matching the given error class. */
22
+ export declare function getErrorCause<T extends Error>(err: unknown, errorClass: new (...args: any[]) => T): T | undefined;
17
23
  /** Resolves a record-like type. Lifted from viem. */
18
24
  export type Prettify<T> = {
19
25
  [K in keyof T]: T[K];
20
26
  } & {};
27
+ /** Returns a type T based on a flag: T if true, undefined if false, optional otherwise. */
28
+ export type DefineIfFlag<Opts, Key extends keyof Opts, T> = Opts extends {
29
+ [K in Key]: true;
30
+ } ? T : Opts extends {
31
+ [K in Key]: false;
32
+ } ? never : Opts extends {
33
+ [K in Key]?: boolean;
34
+ } ? T | undefined : never;
35
+ /** Returns a type with fields conditionally required based on a flag */
36
+ export type PickIfFlag<OptsSchema, Opts extends OptsSchema, Key extends keyof OptsSchema, Field extends object> = Opts extends {
37
+ [K in Key]: true;
38
+ } ? Field : Opts extends {
39
+ [K in Key]: false;
40
+ } ? {} : Opts extends {
41
+ [K in Key]?: boolean;
42
+ } ? Partial<Field> : {};
43
+ /** Picks only the defined (non-undefined) properties of a type. */
44
+ export type PickDefined<T> = Prettify<Pick<T, {
45
+ [K in keyof T]: T[K] extends undefined ? never : K;
46
+ }[keyof T]>>;
21
47
  /**
22
48
  * Type-safe Event Emitter type
23
49
  * @example
24
50
  * export type ArchiverEmitter = TypedEventEmitter<{
25
- * [L2BlockSourceEvents.L2PruneDetected]: (args: L2BlockSourceEvent) => void;
51
+ * [L2BlockSourceEvents.L2PruneUnproven]: (args: L2BlockSourceEvent) => void;
26
52
  * [L2BlockSourceEvents.L2BlockProven]: (args: L2BlockSourceEvent) => void;
27
53
  * }>;
28
54
  * class Archiver extends (EventEmitter as new () => ArchiverEmitter) {
@@ -39,4 +65,4 @@ export interface TypedEventEmitter<TEventMap extends {
39
65
  removeListener<K extends keyof TEventMap>(event: K, listener: TEventMap[K]): this;
40
66
  removeAllListeners<K extends keyof TEventMap>(event: K): this;
41
67
  }
42
- //# sourceMappingURL=index.d.ts.map
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQ0FBZ0M7QUFDaEMsTUFBTSxNQUFNLFFBQVEsQ0FBQyxDQUFDLElBQUk7S0FDdkIsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxRQUFRLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQzFELENBQUM7QUFFRixrQ0FBa0M7QUFDbEMsTUFBTSxNQUFNLFdBQVcsQ0FBQyxDQUFDLElBQUk7S0FDMUIsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxRQUFRLEdBQUcsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQzFELENBQUM7QUFFRix1REFBdUQ7QUFDdkQsTUFBTSxNQUFNLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUUvRSw2Q0FBNkM7QUFDN0MsTUFBTSxNQUFNLFNBQVMsQ0FBQyxDQUFDLElBQUk7SUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FBRSxDQUFDO0FBRTlELGdEQUFnRDtBQUNoRCx3QkFBZ0IsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FFaEQ7QUFFRCw0QkFBNEI7QUFDNUIsd0JBQWdCLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxTQUFTLEdBQUcsS0FBSyxJQUFJLENBQUMs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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF,kCAAkC;AAClC,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF,uDAAuD;AACvD,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE/E,6CAA6C;AAC7C,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAE9D,gDAAgD;AAChD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAEhD;AAED,qDAAqD;AACrD,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrB,GAAG,EAAE,CAAC;AAEP;;;;;;;;;;GAUG;AACH,MAAM,WAAW,iBAAiB,CAAC,SAAS,SAAS;KAAG,GAAG,IAAI,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;CAAE;IACzG,IAAI,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACxE,EAAE,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACtE,GAAG,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACvE,IAAI,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IACtF,cAAc,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAClF,kBAAkB,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;CAE/D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF,kCAAkC;AAClC,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF,uDAAuD;AACvD,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE/E,6CAA6C;AAC7C,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAE9D,gDAAgD;AAChD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAEhD;AAED,4BAA4B;AAC5B,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,KAAK,IAAI,CAAC,CAE7D;AAED,mCAAmC;AACnC,wBAAgB,YAAY,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAE/G;AAID,iFAAiF;AACjF,wBAAgB,aAAa,CAAC,CAAC,SAAS,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAcjH;AAED,qDAAqD;AACrD,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrB,GAAG,EAAE,CAAC;AAEP,2FAA2F;AAC3F,MAAM,MAAM,YAAY,CAAC,IAAI,EAAE,GAAG,SAAS,MAAM,IAAI,EAAE,CAAC,IAAI,IAAI,SAAS;KACtE,CAAC,IAAI,GAAG,GAAG,IAAI;CACjB,GACG,CAAC,GACD,IAAI,SAAS;KAAG,CAAC,IAAI,GAAG,GAAG,KAAK;CAAE,GAChC,KAAK,GACL,IAAI,SAAS;KAAG,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO;CAAE,GACnC,CAAC,GAAG,SAAS,GACb,KAAK,CAAC;AAEd,wEAAwE;AACxE,MAAM,MAAM,UAAU,CACpB,UAAU,EACV,IAAI,SAAS,UAAU,EACvB,GAAG,SAAS,MAAM,UAAU,EAC5B,KAAK,SAAS,MAAM,IAClB,IAAI,SAAS;KAAG,CAAC,IAAI,GAAG,GAAG,IAAI;CAAE,GACjC,KAAK,GACL,IAAI,SAAS;KAAG,CAAC,IAAI,GAAG,GAAG,KAAK;CAAE,GAChC,EAAE,GACF,IAAI,SAAS;KAAG,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO;CAAE,GACnC,OAAO,CAAC,KAAK,CAAC,GACd,EAAE,CAAC;AAEX,mEAAmE;AACnE,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC;CAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhH;;;;;;;;;;GAUG;AACH,MAAM,WAAW,iBAAiB,CAAC,SAAS,SAAS;KAAG,GAAG,IAAI,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;CAAE;IACzG,IAAI,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACxE,EAAE,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACtE,GAAG,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACvE,IAAI,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IACtF,cAAc,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAClF,kBAAkB,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;CAE/D"}
@@ -1,3 +1,24 @@
1
1
  /** Strips methods of a type. */ /** Removes readonly modifiers for an object. */ export function unfreeze(obj) {
2
2
  return obj;
3
3
  }
4
+ /** Is defined type guard */ export function isDefined(value) {
5
+ return value !== undefined;
6
+ }
7
+ /** Type guard for error classes */ export function isErrorClass(value, errorClass) {
8
+ return value instanceof errorClass || value instanceof Error && value.name === errorClass.name;
9
+ }
10
+ const MAX_ERR_DEPTH = 10;
11
+ /** Returns the first error in the cause chain matching the given error class. */ export function getErrorCause(err, errorClass) {
12
+ let current = err;
13
+ for(let i = 0; current !== undefined && current !== null && i < MAX_ERR_DEPTH; i++){
14
+ if (isErrorClass(current, errorClass)) {
15
+ return current;
16
+ }
17
+ if (typeof current === 'object' && Object.hasOwn(current, 'cause')) {
18
+ current = current.cause;
19
+ } else {
20
+ return undefined;
21
+ }
22
+ }
23
+ return undefined;
24
+ }
@@ -6,4 +6,4 @@
6
6
  * @api public
7
7
  */
8
8
  export declare function fileURLToPath(uri: string): string;
9
- //# sourceMappingURL=index.d.ts.map
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cmwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUJBOzs7Ozs7R0FNRztBQUVILHdCQUFnQixhQUFhLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBNENqRCJ9
@@ -6,4 +6,4 @@ export declare function required<T>(value: T | undefined, errMsg?: string): T;
6
6
  * @param err - Error message to throw if x isn't met.
7
7
  */
8
8
  export declare function assert(x: any, err: string): asserts x;
9
- //# sourceMappingURL=index.d.ts.map
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlFQUF5RTtBQUN6RSx3QkFBZ0IsUUFBUSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLFNBQVMsRUFBRSxNQUFNLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUtwRTtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsTUFBTSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUlyRCJ9
package/package.json CHANGED
@@ -1,9 +1,29 @@
1
1
  {
2
2
  "name": "@aztec/foundation",
3
- "version": "0.0.1-commit.b655e406",
3
+ "version": "0.0.1-commit.b8a057fa",
4
4
  "type": "module",
5
5
  "main": "./dest/index.js",
6
6
  "types": "./dest/index.d.ts",
7
+ "typedocOptions": {
8
+ "entryPoints": [
9
+ "./src/buffer/index.ts",
10
+ "./src/collection/index.ts",
11
+ "./src/config/index.ts",
12
+ "./src/crypto/random/index.ts",
13
+ "./src/error/index.ts",
14
+ "./src/eth-address/index.ts",
15
+ "./src/json-rpc/index.ts",
16
+ "./src/log/index.ts",
17
+ "./src/retry/index.ts",
18
+ "./src/schemas/index.ts",
19
+ "./src/serialize/index.ts",
20
+ "./src/sleep/index.ts",
21
+ "./src/timer/index.ts",
22
+ "./src/types/index.ts"
23
+ ],
24
+ "name": "Foundation",
25
+ "tsconfig": "./tsconfig.json"
26
+ },
7
27
  "exports": {
8
28
  "./eslint": "./eslint.config.js",
9
29
  "./eslint.docs": "./eslint.config.docs.js",
@@ -12,16 +32,37 @@
12
32
  "./async-map": "./dest/async-map/index.js",
13
33
  "./async-pool": "./dest/async-pool/index.js",
14
34
  "./bigint": "./dest/bigint/index.js",
35
+ "./branded-types": "./dest/branded-types/index.js",
15
36
  "./collection": "./dest/collection/index.js",
16
37
  "./config": "./dest/config/index.js",
17
- "./crypto": "./dest/crypto/index.js",
18
- "./crypto/sync": "./dest/crypto/sync/index.js",
38
+ "./crypto/aes128": "./dest/crypto/aes128/index.js",
39
+ "./crypto/bls": "./dest/crypto/bls/index.js",
19
40
  "./crypto/bls/bn254_keystore": "./dest/crypto/bls/bn254_keystore.js",
41
+ "./crypto/bn254": "./dest/crypto/bn254/index.js",
42
+ "./crypto/ecdsa": "./dest/crypto/ecdsa/index.js",
43
+ "./crypto/grumpkin": "./dest/crypto/grumpkin/index.js",
44
+ "./crypto/keccak": "./dest/crypto/keccak/index.js",
45
+ "./crypto/keys": "./dest/crypto/keys/index.js",
46
+ "./crypto/pedersen": "./dest/crypto/pedersen/index.js",
47
+ "./crypto/poseidon": "./dest/crypto/poseidon/index.js",
48
+ "./crypto/random": "./dest/crypto/random/index.js",
49
+ "./crypto/schnorr": "./dest/crypto/schnorr/index.js",
50
+ "./crypto/secp256k1": "./dest/crypto/secp256k1/index.js",
51
+ "./crypto/secp256k1-signer": "./dest/crypto/secp256k1-signer/index.js",
52
+ "./crypto/sha256": "./dest/crypto/sha256/index.js",
53
+ "./crypto/sha512": "./dest/crypto/sha512/index.js",
54
+ "./crypto/signature": "./dest/crypto/signature/index.js",
55
+ "./crypto/sync": "./dest/crypto/sync/index.js",
56
+ "./curves/bn254": "./dest/curves/bn254/index.js",
57
+ "./curves/grumpkin": "./dest/curves/grumpkin/index.js",
58
+ "./curves/bls12": "./dest/curves/bls12/index.js",
20
59
  "./decorators": "./dest/decorators/index.js",
21
60
  "./error": "./dest/error/index.js",
22
61
  "./eth-address": "./dest/eth-address/index.js",
23
62
  "./eth-signature": "./dest/eth-signature/index.js",
24
63
  "./queue": "./dest/queue/index.js",
64
+ "./fifo": "./dest/fifo/index.js",
65
+ "./fifo-set": "./dest/fifo_set/index.js",
25
66
  "./fs": "./dest/fs/index.js",
26
67
  "./buffer": "./dest/buffer/index.js",
27
68
  "./json-rpc": "./dest/json-rpc/index.js",
@@ -30,9 +71,10 @@
30
71
  "./json-rpc/undici": "./dest/json-rpc/client/undici.js",
31
72
  "./json-rpc/test": "./dest/json-rpc/test/index.js",
32
73
  "./iterable": "./dest/iterable/index.js",
74
+ "./iterator": "./dest/iterator/index.js",
33
75
  "./log": "./dest/log/index.js",
76
+ "./log/server": "./dest/log/pino-logger-server.js",
34
77
  "./mutex": "./dest/mutex/index.js",
35
- "./fields": "./dest/fields/index.js",
36
78
  "./retry": "./dest/retry/index.js",
37
79
  "./running-promise": "./dest/running-promise/index.js",
38
80
  "./serialize": "./dest/serialize/index.js",
@@ -57,8 +99,8 @@
57
99
  "./number": "./dest/number/index.js"
58
100
  },
59
101
  "scripts": {
60
- "build": "yarn clean && tsc -b",
61
- "build:dev": "tsc -b --watch",
102
+ "build": "yarn clean && ../scripts/tsc.sh",
103
+ "build:dev": "../scripts/tsc.sh --watch",
62
104
  "clean": "rm -rf ./dest .tsbuildinfo",
63
105
  "generate": "true",
64
106
  "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
@@ -104,12 +146,12 @@
104
146
  "testEnvironment": "../../foundation/src/jest/env.mjs"
105
147
  },
106
148
  "dependencies": {
107
- "@aztec/bb.js": "0.0.1-commit.b655e406",
149
+ "@aztec/bb.js": "0.0.1-commit.b8a057fa",
108
150
  "@koa/cors": "^5.0.0",
109
151
  "@noble/curves": "=1.7.0",
110
152
  "@noble/hashes": "^1.6.1",
111
153
  "@scure/bip39": "^2.0.1",
112
- "bn.js": "^5.2.1",
154
+ "bn.js": "^5.2.3",
113
155
  "colorette": "^2.0.20",
114
156
  "detect-node": "^2.1.0",
115
157
  "hash.js": "^1.1.7",
@@ -125,7 +167,7 @@
125
167
  "pino-pretty": "^13.0.0",
126
168
  "sha3": "^2.1.4",
127
169
  "undici": "^5.28.5",
128
- "zod": "^3.23.8"
170
+ "zod": "^4"
129
171
  },
130
172
  "devDependencies": {
131
173
  "@jest/globals": "^30.0.0",
@@ -143,10 +185,11 @@
143
185
  "@types/node": "^22.15.17",
144
186
  "@types/pako": "^2.0.0",
145
187
  "@types/supertest": "^2.0.12",
188
+ "@typescript/native-preview": "7.0.0-dev.20260113.1",
146
189
  "comlink": "^4.4.1",
147
190
  "eslint": "^9.26.0",
148
191
  "eslint-config-prettier": "^10.1.5",
149
- "eslint-plugin-import": "^2.31.0",
192
+ "eslint-plugin-import-x": "^4.6.1",
150
193
  "eslint-plugin-jsdoc": "^50.6.14",
151
194
  "eslint-plugin-no-only-tests": "^3.3.0",
152
195
  "eslint-plugin-tsdoc": "^0.4.0",
@@ -157,7 +200,7 @@
157
200
  "ts-node": "^10.9.1",
158
201
  "typescript": "^5.3.3",
159
202
  "typescript-eslint": "^8.32.1",
160
- "viem": "npm:@spalladino/viem@2.38.2-eip7594.0"
203
+ "viem": "npm:@aztec/viem@2.38.2"
161
204
  },
162
205
  "files": [
163
206
  "dest",
@@ -42,22 +42,6 @@ export async function makeTupleAsync<T, N extends number>(length: N, fn: (i: num
42
42
  )) as Tuple<T, N>;
43
43
  }
44
44
 
45
- /**
46
- * Create an array over an integer range, filled with a function 'fn'. However, the latter half of the array are set to zeros.
47
- * see `makeTuple` above.
48
- * @param n - The number of integers.
49
- * @param fn - The generator function.
50
- * @returns The array of numbers.
51
- */
52
- export function makeHalfFullTuple<T, N extends number>(
53
- length: N,
54
- fn: (i: number) => T,
55
- offset = 0,
56
- makeEmpty: () => T,
57
- ) {
58
- return Array.from({ length }, (_: any, i: number) => (i < length / 2 ? fn(i + offset) : makeEmpty())) as Tuple<T, N>;
59
- }
60
-
61
45
  /**
62
46
  * Assert a member of an object is a certain length.
63
47
  * @param obj - An object.
@@ -1 +1,2 @@
1
1
  export * from './array.js';
2
+ export * from './sorted_array.js';