@aztec/foundation 0.0.0-test.1 → 0.0.1-commit.0b941701

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 (693) hide show
  1. package/dest/array/array.d.ts +6 -9
  2. package/dest/array/array.d.ts.map +1 -1
  3. package/dest/array/array.js +11 -11
  4. package/dest/array/index.d.ts +2 -1
  5. package/dest/array/index.d.ts.map +1 -1
  6. package/dest/array/index.js +1 -0
  7. package/dest/array/sorted_array.d.ts +10 -0
  8. package/dest/array/sorted_array.d.ts.map +1 -0
  9. package/dest/array/sorted_array.js +106 -0
  10. package/dest/async-map/index.d.ts +1 -1
  11. package/dest/async-pool/index.d.ts +1 -1
  12. package/dest/async-pool/index.d.ts.map +1 -1
  13. package/dest/async-pool/index.js +1 -0
  14. package/dest/bigint/index.d.ts +7 -0
  15. package/dest/bigint/index.d.ts.map +1 -0
  16. package/dest/bigint/index.js +15 -0
  17. package/dest/bigint-buffer/index.d.ts +1 -3
  18. package/dest/bigint-buffer/index.d.ts.map +1 -1
  19. package/dest/branded-types/block_number.d.ts +56 -0
  20. package/dest/branded-types/block_number.d.ts.map +1 -0
  21. package/dest/branded-types/block_number.js +78 -0
  22. package/dest/branded-types/checkpoint_number.d.ts +54 -0
  23. package/dest/branded-types/checkpoint_number.d.ts.map +1 -0
  24. package/dest/branded-types/checkpoint_number.js +77 -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 +7 -0
  29. package/dest/branded-types/index.d.ts.map +1 -0
  30. package/dest/branded-types/index.js +5 -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 +42 -0
  35. package/dest/branded-types/slot.d.ts.map +1 -0
  36. package/dest/branded-types/slot.js +59 -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 +80 -0
  41. package/dest/buffer/buffer16.d.ts.map +1 -0
  42. package/dest/buffer/buffer16.js +102 -0
  43. package/dest/buffer/buffer32.d.ts +5 -9
  44. package/dest/buffer/buffer32.d.ts.map +1 -1
  45. package/dest/buffer/buffer32.js +9 -7
  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/collection/array.d.ts +22 -4
  50. package/dest/collection/array.d.ts.map +1 -1
  51. package/dest/collection/array.js +84 -3
  52. package/dest/collection/index.d.ts +1 -1
  53. package/dest/collection/object.d.ts +17 -1
  54. package/dest/collection/object.d.ts.map +1 -1
  55. package/dest/collection/object.js +25 -0
  56. package/dest/committable/committable.d.ts +1 -1
  57. package/dest/committable/committable.d.ts.map +1 -1
  58. package/dest/committable/index.d.ts +1 -1
  59. package/dest/config/env_var.d.ts +2 -2
  60. package/dest/config/env_var.d.ts.map +1 -1
  61. package/dest/config/index.d.ts +62 -4
  62. package/dest/config/index.d.ts.map +1 -1
  63. package/dest/config/index.js +143 -12
  64. package/dest/config/network_config.d.ts +54 -0
  65. package/dest/config/network_config.d.ts.map +1 -0
  66. package/dest/config/network_config.js +11 -0
  67. package/dest/config/network_name.d.ts +3 -0
  68. package/dest/config/network_name.d.ts.map +1 -0
  69. package/dest/config/network_name.js +19 -0
  70. package/dest/config/parse-env.d.ts +3 -0
  71. package/dest/config/parse-env.d.ts.map +1 -0
  72. package/dest/config/parse-env.js +7 -0
  73. package/dest/config/secret_value.d.ts +28 -0
  74. package/dest/config/secret_value.d.ts.map +1 -0
  75. package/dest/config/secret_value.js +36 -0
  76. package/dest/crypto/aes128/index.d.ts +3 -5
  77. package/dest/crypto/aes128/index.d.ts.map +1 -1
  78. package/dest/crypto/aes128/index.js +19 -6
  79. package/dest/crypto/bls/bn254_keystore.d.ts +296 -0
  80. package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -0
  81. package/dest/crypto/bls/bn254_keystore.js +218 -0
  82. package/dest/crypto/bls/index.d.ts +13 -0
  83. package/dest/crypto/bls/index.d.ts.map +1 -0
  84. package/dest/crypto/bls/index.js +87 -0
  85. package/dest/crypto/bn254/index.d.ts +39 -0
  86. package/dest/crypto/bn254/index.d.ts.map +1 -0
  87. package/dest/crypto/bn254/index.js +56 -0
  88. package/dest/crypto/ecdsa/index.d.ts +3 -3
  89. package/dest/crypto/ecdsa/index.d.ts.map +1 -1
  90. package/dest/crypto/ecdsa/index.js +62 -48
  91. package/dest/crypto/ecdsa/signature.d.ts +3 -5
  92. package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
  93. package/dest/crypto/ecdsa/signature.js +2 -2
  94. package/dest/crypto/grumpkin/index.d.ts +10 -15
  95. package/dest/crypto/grumpkin/index.d.ts.map +1 -1
  96. package/dest/crypto/grumpkin/index.js +61 -55
  97. package/dest/crypto/keccak/index.d.ts +3 -5
  98. package/dest/crypto/keccak/index.d.ts.map +1 -1
  99. package/dest/crypto/keys/index.d.ts +2 -4
  100. package/dest/crypto/keys/index.d.ts.map +1 -1
  101. package/dest/crypto/keys/index.js +8 -5
  102. package/dest/crypto/pedersen/index.d.ts +1 -1
  103. package/dest/crypto/pedersen/pedersen.noble.d.ts +3 -5
  104. package/dest/crypto/pedersen/pedersen.noble.d.ts.map +1 -1
  105. package/dest/crypto/pedersen/pedersen.wasm.d.ts +4 -6
  106. package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
  107. package/dest/crypto/pedersen/pedersen.wasm.js +24 -14
  108. package/dest/crypto/poseidon/index.d.ts +2 -5
  109. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  110. package/dest/crypto/poseidon/index.js +27 -21
  111. package/dest/crypto/random/index.d.ts +2 -4
  112. package/dest/crypto/random/index.d.ts.map +1 -1
  113. package/dest/crypto/random/index.js +2 -34
  114. package/dest/crypto/random/randomness_singleton.d.ts +2 -4
  115. package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
  116. package/dest/crypto/random/randomness_singleton.js +3 -3
  117. package/dest/crypto/schnorr/index.d.ts +3 -2
  118. package/dest/crypto/schnorr/index.d.ts.map +1 -1
  119. package/dest/crypto/schnorr/index.js +30 -38
  120. package/dest/crypto/schnorr/signature.d.ts +5 -7
  121. package/dest/crypto/schnorr/signature.d.ts.map +1 -1
  122. package/dest/crypto/schnorr/signature.js +2 -2
  123. package/dest/crypto/secp256k1/index.d.ts +5 -7
  124. package/dest/crypto/secp256k1/index.d.ts.map +1 -1
  125. package/dest/crypto/secp256k1/index.js +23 -18
  126. package/dest/crypto/secp256k1-signer/index.d.ts +1 -1
  127. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts +1 -1
  128. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts.map +1 -1
  129. package/dest/crypto/secp256k1-signer/utils.d.ts +56 -5
  130. package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
  131. package/dest/crypto/secp256k1-signer/utils.js +92 -6
  132. package/dest/crypto/serialize.d.ts +5 -7
  133. package/dest/crypto/serialize.d.ts.map +1 -1
  134. package/dest/crypto/sha256/index.d.ts +23 -6
  135. package/dest/crypto/sha256/index.d.ts.map +1 -1
  136. package/dest/crypto/sha256/index.js +43 -1
  137. package/dest/crypto/sha512/index.d.ts +3 -5
  138. package/dest/crypto/sha512/index.d.ts.map +1 -1
  139. package/dest/crypto/sha512/index.js +1 -1
  140. package/dest/crypto/signature/index.d.ts +2 -4
  141. package/dest/crypto/signature/index.d.ts.map +1 -1
  142. package/dest/crypto/sync/index.d.ts +1 -1
  143. package/dest/crypto/sync/index.js +1 -1
  144. package/dest/crypto/sync/pedersen/index.d.ts +4 -6
  145. package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
  146. package/dest/crypto/sync/pedersen/index.js +18 -11
  147. package/dest/crypto/sync/poseidon/index.d.ts +2 -5
  148. package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
  149. package/dest/crypto/sync/poseidon/index.js +23 -16
  150. package/dest/curves/bls12/field.d.ts +148 -0
  151. package/dest/curves/bls12/field.d.ts.map +1 -0
  152. package/dest/curves/bls12/field.js +362 -0
  153. package/dest/curves/bls12/index.d.ts +3 -0
  154. package/dest/curves/bls12/index.d.ts.map +1 -0
  155. package/dest/curves/bls12/index.js +2 -0
  156. package/dest/curves/bls12/point.d.ts +229 -0
  157. package/dest/curves/bls12/point.d.ts.map +1 -0
  158. package/dest/curves/bls12/point.js +400 -0
  159. package/dest/curves/bn254/field.d.ts +180 -0
  160. package/dest/curves/bn254/field.d.ts.map +1 -0
  161. package/dest/{fields/fields.js → curves/bn254/field.js} +90 -62
  162. package/dest/curves/bn254/index.d.ts +3 -0
  163. package/dest/curves/bn254/index.d.ts.map +1 -0
  164. package/dest/curves/bn254/index.js +2 -0
  165. package/dest/curves/bn254/point.d.ts +54 -0
  166. package/dest/curves/bn254/point.d.ts.map +1 -0
  167. package/dest/curves/bn254/point.js +143 -0
  168. package/dest/curves/grumpkin/index.d.ts +10 -0
  169. package/dest/curves/grumpkin/index.d.ts.map +1 -0
  170. package/dest/curves/grumpkin/index.js +3 -0
  171. package/dest/{fields → curves/grumpkin}/point.d.ts +14 -7
  172. package/dest/curves/grumpkin/point.d.ts.map +1 -0
  173. package/dest/{fields → curves/grumpkin}/point.js +27 -10
  174. package/dest/decorators/index.d.ts +1 -1
  175. package/dest/decorators/memoize.d.ts +1 -1
  176. package/dest/decorators/memoize.d.ts.map +1 -1
  177. package/dest/error/index.d.ts +1 -1
  178. package/dest/eth-address/index.d.ts +18 -9
  179. package/dest/eth-address/index.d.ts.map +1 -1
  180. package/dest/eth-address/index.js +31 -2
  181. package/dest/eth-signature/eth_signature.d.ts +17 -15
  182. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  183. package/dest/eth-signature/eth_signature.js +31 -17
  184. package/dest/eth-signature/index.d.ts +1 -1
  185. package/dest/fs/index.d.ts +2 -1
  186. package/dest/fs/index.d.ts.map +1 -1
  187. package/dest/fs/index.js +1 -0
  188. package/dest/fs/run_in_dir.d.ts +1 -1
  189. package/dest/fs/try_rm_dir.d.ts +3 -0
  190. package/dest/fs/try_rm_dir.d.ts.map +1 -0
  191. package/dest/fs/try_rm_dir.js +16 -0
  192. package/dest/iterable/all.d.ts +1 -1
  193. package/dest/iterable/filter.d.ts +1 -1
  194. package/dest/iterable/filter.js +1 -1
  195. package/dest/iterable/index.d.ts +1 -1
  196. package/dest/iterable/isAsyncIt.d.ts +1 -1
  197. package/dest/iterable/map.d.ts +1 -1
  198. package/dest/iterable/map.js +1 -1
  199. package/dest/iterable/peek.d.ts +1 -1
  200. package/dest/iterable/sort.d.ts +1 -1
  201. package/dest/iterable/take.d.ts +1 -1
  202. package/dest/iterable/toArray.d.ts +1 -1
  203. package/dest/iterator/filter.d.ts +3 -0
  204. package/dest/iterator/filter.d.ts.map +1 -0
  205. package/dest/iterator/filter.js +7 -0
  206. package/dest/iterator/index.d.ts +2 -0
  207. package/dest/iterator/index.d.ts.map +1 -0
  208. package/dest/iterator/index.js +1 -0
  209. package/dest/jest/env.js +48 -0
  210. package/dest/jest/setupAfterEnv.js +3 -0
  211. package/dest/json-rpc/client/fetch.d.ts +3 -3
  212. package/dest/json-rpc/client/fetch.d.ts.map +1 -1
  213. package/dest/json-rpc/client/fetch.js +16 -30
  214. package/dest/json-rpc/client/index.d.ts +1 -1
  215. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +10 -4
  216. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
  217. package/dest/json-rpc/client/safe_json_rpc_client.js +173 -13
  218. package/dest/json-rpc/client/undici.d.ts +1 -1
  219. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  220. package/dest/json-rpc/client/undici.js +27 -11
  221. package/dest/json-rpc/convert.d.ts +3 -10
  222. package/dest/json-rpc/convert.d.ts.map +1 -1
  223. package/dest/json-rpc/convert.js +1 -9
  224. package/dest/json-rpc/errors.d.ts +4 -0
  225. package/dest/json-rpc/errors.d.ts.map +1 -0
  226. package/dest/json-rpc/errors.js +6 -0
  227. package/dest/json-rpc/fixtures/class_a.d.ts +6 -4
  228. package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
  229. package/dest/json-rpc/fixtures/class_b.d.ts +6 -4
  230. package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -1
  231. package/dest/json-rpc/fixtures/test_state.d.ts +1 -1
  232. package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
  233. package/dest/json-rpc/index.d.ts +3 -2
  234. package/dest/json-rpc/index.d.ts.map +1 -1
  235. package/dest/json-rpc/index.js +2 -1
  236. package/dest/json-rpc/js_utils.d.ts +1 -1
  237. package/dest/json-rpc/js_utils.d.ts.map +1 -1
  238. package/dest/json-rpc/server/index.d.ts +1 -1
  239. package/dest/json-rpc/server/safe_json_rpc_server.d.ts +22 -23
  240. package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
  241. package/dest/json-rpc/server/safe_json_rpc_server.js +161 -56
  242. package/dest/json-rpc/test/index.d.ts +1 -1
  243. package/dest/json-rpc/test/integration.d.ts +2 -3
  244. package/dest/json-rpc/test/integration.d.ts.map +1 -1
  245. package/dest/log/console.d.ts +1 -1
  246. package/dest/log/console.d.ts.map +1 -1
  247. package/dest/log/gcloud-logger-config.d.ts +1 -2
  248. package/dest/log/gcloud-logger-config.d.ts.map +1 -1
  249. package/dest/log/gcloud-logger-config.js +1 -9
  250. package/dest/log/index.d.ts +5 -5
  251. package/dest/log/index.d.ts.map +1 -1
  252. package/dest/log/index.js +4 -4
  253. package/dest/log/libp2p_logger.d.ts +1 -1
  254. package/dest/log/libp2p_logger.js +13 -2
  255. package/dest/log/log-filters.d.ts +1 -1
  256. package/dest/log/log-levels.d.ts +1 -1
  257. package/dest/log/log_fn.d.ts +2 -2
  258. package/dest/log/log_fn.d.ts.map +1 -1
  259. package/dest/log/noir_debug_log_util.d.ts +14 -0
  260. package/dest/log/noir_debug_log_util.d.ts.map +1 -0
  261. package/dest/log/noir_debug_log_util.js +14 -0
  262. package/dest/log/pino-logger.d.ts +4 -4
  263. package/dest/log/pino-logger.d.ts.map +1 -1
  264. package/dest/log/pino-logger.js +29 -3
  265. package/dest/message/index.d.ts +1 -1
  266. package/dest/message/index.d.ts.map +1 -1
  267. package/dest/mutex/index.d.ts +1 -1
  268. package/dest/mutex/index.d.ts.map +1 -1
  269. package/dest/mutex/mutex_database.d.ts +1 -1
  270. package/dest/mutex/mutex_database.d.ts.map +1 -1
  271. package/dest/noir/index.d.ts +1 -1
  272. package/dest/noir/noir_package_config.d.ts +9 -9
  273. package/dest/number/index.d.ts +3 -0
  274. package/dest/number/index.d.ts.map +1 -0
  275. package/dest/number/index.js +12 -0
  276. package/dest/profiler/index.d.ts +2 -0
  277. package/dest/profiler/index.d.ts.map +1 -0
  278. package/dest/profiler/index.js +1 -0
  279. package/dest/profiler/profiler.d.ts +8 -0
  280. package/dest/profiler/profiler.d.ts.map +1 -0
  281. package/dest/profiler/profiler.js +97 -0
  282. package/dest/promise/index.d.ts +1 -1
  283. package/dest/promise/running-promise.d.ts +2 -2
  284. package/dest/promise/running-promise.d.ts.map +1 -1
  285. package/dest/promise/running-promise.js +2 -2
  286. package/dest/promise/utils.d.ts +1 -1
  287. package/dest/queue/base_memory_queue.d.ts +1 -1
  288. package/dest/queue/base_memory_queue.d.ts.map +1 -1
  289. package/dest/queue/batch_queue.d.ts +2 -2
  290. package/dest/queue/batch_queue.d.ts.map +1 -1
  291. package/dest/queue/batch_queue.js +1 -1
  292. package/dest/queue/bounded_serial_queue.d.ts +1 -1
  293. package/dest/queue/bounded_serial_queue.d.ts.map +1 -1
  294. package/dest/queue/fifo_memory_queue.d.ts +1 -1
  295. package/dest/queue/fifo_memory_queue.d.ts.map +1 -1
  296. package/dest/queue/index.d.ts +1 -1
  297. package/dest/queue/priority_memory_queue.d.ts +1 -1
  298. package/dest/queue/priority_memory_queue.d.ts.map +1 -1
  299. package/dest/queue/priority_queue.d.ts +1 -1
  300. package/dest/queue/priority_queue.d.ts.map +1 -1
  301. package/dest/queue/semaphore.d.ts +1 -1
  302. package/dest/queue/semaphore.d.ts.map +1 -1
  303. package/dest/queue/serial_queue.d.ts +3 -3
  304. package/dest/queue/serial_queue.d.ts.map +1 -1
  305. package/dest/queue/serial_queue.js +7 -5
  306. package/dest/retry/index.d.ts +14 -3
  307. package/dest/retry/index.d.ts.map +1 -1
  308. package/dest/retry/index.js +13 -2
  309. package/dest/running-promise/index.d.ts +1 -1
  310. package/dest/schemas/api.d.ts +1 -1
  311. package/dest/schemas/api.d.ts.map +1 -1
  312. package/dest/schemas/index.d.ts +1 -1
  313. package/dest/schemas/parse.d.ts +1 -1
  314. package/dest/schemas/parse.js +1 -1
  315. package/dest/schemas/schemas.d.ts +21 -20
  316. package/dest/schemas/schemas.d.ts.map +1 -1
  317. package/dest/schemas/schemas.js +29 -11
  318. package/dest/schemas/types.d.ts +31 -1
  319. package/dest/schemas/types.d.ts.map +1 -1
  320. package/dest/schemas/types.js +25 -1
  321. package/dest/schemas/utils.d.ts +4 -6
  322. package/dest/schemas/utils.d.ts.map +1 -1
  323. package/dest/schemas/utils.js +15 -5
  324. package/dest/serialize/buffer_reader.d.ts +34 -6
  325. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  326. package/dest/serialize/buffer_reader.js +57 -6
  327. package/dest/serialize/field_reader.d.ts +12 -3
  328. package/dest/serialize/field_reader.d.ts.map +1 -1
  329. package/dest/serialize/field_reader.js +19 -2
  330. package/dest/serialize/free_funcs.d.ts +25 -23
  331. package/dest/serialize/free_funcs.d.ts.map +1 -1
  332. package/dest/serialize/free_funcs.js +22 -28
  333. package/dest/serialize/index.d.ts +1 -1
  334. package/dest/serialize/serialize.d.ts +6 -7
  335. package/dest/serialize/serialize.d.ts.map +1 -1
  336. package/dest/serialize/serialize.js +1 -1
  337. package/dest/serialize/type_registry.d.ts +1 -1
  338. package/dest/serialize/type_registry.d.ts.map +1 -1
  339. package/dest/serialize/types.d.ts +1 -1
  340. package/dest/sleep/index.d.ts +3 -1
  341. package/dest/sleep/index.d.ts.map +1 -1
  342. package/dest/sleep/index.js +4 -0
  343. package/dest/string/index.d.ts +8 -3
  344. package/dest/string/index.d.ts.map +1 -1
  345. package/dest/string/index.js +27 -1
  346. package/dest/testing/files/index.d.ts +2 -3
  347. package/dest/testing/files/index.d.ts.map +1 -1
  348. package/dest/testing/files/index.js +3 -3
  349. package/dest/testing/formatting.d.ts +4 -0
  350. package/dest/testing/formatting.d.ts.map +1 -0
  351. package/dest/testing/formatting.js +3 -0
  352. package/dest/testing/index.d.ts +2 -1
  353. package/dest/testing/index.d.ts.map +1 -1
  354. package/dest/testing/index.js +1 -0
  355. package/dest/testing/port_allocator.d.ts +1 -1
  356. package/dest/testing/snapshot_serializer.d.ts +1 -1
  357. package/dest/testing/test_data.d.ts +1 -1
  358. package/dest/timer/date.d.ts +4 -2
  359. package/dest/timer/date.d.ts.map +1 -1
  360. package/dest/timer/date.js +8 -3
  361. package/dest/timer/elapsed.d.ts +1 -1
  362. package/dest/timer/index.d.ts +2 -2
  363. package/dest/timer/index.d.ts.map +1 -1
  364. package/dest/timer/index.js +1 -1
  365. package/dest/timer/timeout.d.ts +19 -6
  366. package/dest/timer/timeout.d.ts.map +1 -1
  367. package/dest/timer/timeout.js +43 -22
  368. package/dest/timer/timer.d.ts +1 -1
  369. package/dest/timer/timer.d.ts.map +1 -1
  370. package/dest/transport/dispatch/create_dispatch_fn.d.ts +1 -1
  371. package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +1 -1
  372. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +1 -1
  373. package/dest/transport/dispatch/messages.d.ts +1 -1
  374. package/dest/transport/index.d.ts +1 -2
  375. package/dest/transport/index.d.ts.map +1 -1
  376. package/dest/transport/index.js +0 -1
  377. package/dest/transport/interface/connector.d.ts +1 -1
  378. package/dest/transport/interface/connector.d.ts.map +1 -1
  379. package/dest/transport/interface/listener.d.ts +1 -2
  380. package/dest/transport/interface/listener.d.ts.map +1 -1
  381. package/dest/transport/interface/socket.d.ts +1 -1
  382. package/dest/transport/interface/socket.d.ts.map +1 -1
  383. package/dest/transport/interface/transferable.d.ts +1 -1
  384. package/dest/transport/node/index.d.ts +1 -1
  385. package/dest/transport/node/node_connector.d.ts +1 -2
  386. package/dest/transport/node/node_connector.d.ts.map +1 -1
  387. package/dest/transport/node/node_connector_socket.d.ts +1 -2
  388. package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
  389. package/dest/transport/node/node_listener.d.ts +1 -2
  390. package/dest/transport/node/node_listener.d.ts.map +1 -1
  391. package/dest/transport/node/node_listener_socket.d.ts +1 -2
  392. package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
  393. package/dest/transport/transport_client.d.ts +1 -2
  394. package/dest/transport/transport_client.d.ts.map +1 -1
  395. package/dest/transport/transport_server.d.ts +1 -10
  396. package/dest/transport/transport_server.d.ts.map +1 -1
  397. package/dest/trees/balanced_merkle_tree_root.d.ts +17 -0
  398. package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -0
  399. package/dest/trees/balanced_merkle_tree_root.js +51 -0
  400. package/dest/trees/hasher.d.ts +7 -7
  401. package/dest/trees/hasher.d.ts.map +1 -1
  402. package/dest/trees/hasher.js +10 -5
  403. package/dest/trees/index.d.ts +5 -3
  404. package/dest/trees/index.d.ts.map +1 -1
  405. package/dest/trees/index.js +4 -2
  406. package/dest/trees/indexed_merkle_tree.d.ts +1 -3
  407. package/dest/trees/indexed_merkle_tree.d.ts.map +1 -1
  408. package/dest/trees/indexed_merkle_tree.js +1 -1
  409. package/dest/trees/indexed_merkle_tree_calculator.d.ts +2 -4
  410. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
  411. package/dest/trees/indexed_tree_leaf.d.ts +1 -3
  412. package/dest/trees/indexed_tree_leaf.d.ts.map +1 -1
  413. package/dest/trees/membership_witness.d.ts +10 -5
  414. package/dest/trees/membership_witness.d.ts.map +1 -1
  415. package/dest/trees/membership_witness.js +23 -1
  416. package/dest/trees/merkle_tree.d.ts +1 -3
  417. package/dest/trees/merkle_tree.d.ts.map +1 -1
  418. package/dest/trees/merkle_tree_calculator.d.ts +2 -4
  419. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  420. package/dest/trees/merkle_tree_calculator.js +2 -2
  421. package/dest/trees/sibling_path.d.ts +6 -41
  422. package/dest/trees/sibling_path.d.ts.map +1 -1
  423. package/dest/trees/sibling_path.js +3 -3
  424. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +48 -0
  425. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -0
  426. package/dest/trees/unbalanced_merkle_tree_calculator.js +154 -0
  427. package/dest/trees/unbalanced_merkle_tree_root.d.ts +28 -0
  428. package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -0
  429. package/dest/trees/unbalanced_merkle_tree_root.js +84 -0
  430. package/dest/trees/unbalanced_tree_store.d.ts +6 -1
  431. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
  432. package/dest/trees/unbalanced_tree_store.js +55 -1
  433. package/dest/types/index.d.ts +28 -3
  434. package/dest/types/index.d.ts.map +1 -1
  435. package/dest/types/index.js +3 -0
  436. package/dest/url/index.d.ts +1 -1
  437. package/dest/url/index.d.ts.map +1 -1
  438. package/dest/url/index.js +1 -1
  439. package/dest/validation/index.d.ts +1 -1
  440. package/package.json +59 -45
  441. package/src/array/array.ts +13 -16
  442. package/src/array/index.ts +1 -0
  443. package/src/array/sorted_array.ts +133 -0
  444. package/src/async-pool/index.ts +1 -0
  445. package/src/bigint/index.ts +20 -0
  446. package/src/branded-types/block_number.ts +117 -0
  447. package/src/branded-types/checkpoint_number.ts +115 -0
  448. package/src/branded-types/epoch.ts +88 -0
  449. package/src/branded-types/index.ts +7 -0
  450. package/src/branded-types/index_within_checkpoint.ts +88 -0
  451. package/src/branded-types/slot.ts +88 -0
  452. package/src/branded-types/types.ts +2 -0
  453. package/src/buffer/buffer16.ts +133 -0
  454. package/src/buffer/buffer32.ts +10 -8
  455. package/src/buffer/index.ts +1 -0
  456. package/src/collection/array.ts +97 -4
  457. package/src/collection/object.ts +37 -0
  458. package/src/config/env_var.ts +180 -59
  459. package/src/config/index.ts +226 -10
  460. package/src/config/network_config.ts +18 -0
  461. package/src/config/network_name.ts +28 -0
  462. package/src/config/parse-env.ts +4 -0
  463. package/src/config/secret_value.ts +49 -0
  464. package/src/crypto/aes128/index.ts +19 -10
  465. package/src/crypto/bls/bn254_keystore.ts +287 -0
  466. package/src/crypto/bls/index.ts +77 -0
  467. package/src/crypto/bn254/index.ts +64 -0
  468. package/src/crypto/ecdsa/index.ts +41 -23
  469. package/src/crypto/ecdsa/signature.ts +2 -2
  470. package/src/crypto/grumpkin/index.ts +38 -46
  471. package/src/crypto/keys/index.ts +6 -6
  472. package/src/crypto/pedersen/pedersen.wasm.ts +23 -19
  473. package/src/crypto/poseidon/index.ts +27 -29
  474. package/src/crypto/random/index.ts +2 -40
  475. package/src/crypto/random/randomness_singleton.ts +2 -4
  476. package/src/crypto/schnorr/index.ts +22 -18
  477. package/src/crypto/schnorr/signature.ts +2 -2
  478. package/src/crypto/secp256k1/index.ts +15 -11
  479. package/src/crypto/secp256k1-signer/utils.ts +120 -7
  480. package/src/crypto/sha256/index.ts +48 -1
  481. package/src/crypto/sha512/index.ts +1 -1
  482. package/src/crypto/signature/index.ts +1 -1
  483. package/src/crypto/sync/index.ts +1 -1
  484. package/src/crypto/sync/pedersen/index.ts +17 -16
  485. package/src/crypto/sync/poseidon/index.ts +23 -27
  486. package/src/curves/bls12/field.ts +463 -0
  487. package/src/curves/bls12/index.ts +2 -0
  488. package/src/curves/bls12/point.ts +450 -0
  489. package/src/{fields/fields.ts → curves/bn254/field.ts} +84 -63
  490. package/src/curves/bn254/index.ts +2 -0
  491. package/src/curves/bn254/point.ts +170 -0
  492. package/src/curves/grumpkin/index.ts +11 -0
  493. package/src/{fields → curves/grumpkin}/point.ts +27 -10
  494. package/src/eth-address/index.ts +35 -3
  495. package/src/eth-signature/eth_signature.ts +44 -22
  496. package/src/fs/index.ts +1 -0
  497. package/src/fs/try_rm_dir.ts +15 -0
  498. package/src/iterable/filter.ts +1 -1
  499. package/src/iterable/map.ts +1 -1
  500. package/src/iterator/filter.ts +11 -0
  501. package/src/iterator/index.ts +1 -0
  502. package/src/jest/env.mjs +52 -0
  503. package/src/jest/setupAfterEnv.mjs +3 -0
  504. package/src/json-rpc/client/fetch.ts +14 -33
  505. package/src/json-rpc/client/safe_json_rpc_client.ts +226 -13
  506. package/src/json-rpc/client/undici.ts +29 -18
  507. package/src/json-rpc/convert.ts +3 -12
  508. package/src/json-rpc/errors.ts +6 -0
  509. package/src/json-rpc/fixtures/class_a.ts +4 -1
  510. package/src/json-rpc/fixtures/class_b.ts +4 -1
  511. package/src/json-rpc/index.ts +2 -1
  512. package/src/json-rpc/server/safe_json_rpc_server.ts +141 -48
  513. package/src/json-rpc/test/integration.ts +1 -1
  514. package/src/log/console.ts +4 -1
  515. package/src/log/gcloud-logger-config.ts +3 -7
  516. package/src/log/index.ts +4 -4
  517. package/src/log/libp2p_logger.ts +21 -2
  518. package/src/log/log_fn.ts +1 -1
  519. package/src/log/noir_debug_log_util.ts +21 -0
  520. package/src/log/pino-logger.ts +35 -3
  521. package/src/message/index.ts +5 -1
  522. package/src/mutex/mutex_database.ts +2 -3
  523. package/src/number/index.ts +14 -0
  524. package/src/profiler/index.ts +1 -0
  525. package/src/profiler/profiler.ts +125 -0
  526. package/src/promise/running-promise.ts +2 -2
  527. package/src/queue/batch_queue.ts +1 -1
  528. package/src/queue/bounded_serial_queue.ts +4 -1
  529. package/src/queue/serial_queue.ts +5 -5
  530. package/src/retry/index.ts +28 -5
  531. package/src/schemas/api.ts +4 -4
  532. package/src/schemas/parse.ts +1 -1
  533. package/src/schemas/schemas.ts +42 -13
  534. package/src/schemas/types.ts +33 -0
  535. package/src/schemas/utils.ts +21 -8
  536. package/src/serialize/buffer_reader.ts +81 -12
  537. package/src/serialize/field_reader.ts +28 -4
  538. package/src/serialize/free_funcs.ts +26 -32
  539. package/src/serialize/serialize.ts +3 -1
  540. package/src/sleep/index.ts +6 -0
  541. package/src/string/index.ts +36 -1
  542. package/src/testing/files/index.ts +7 -3
  543. package/src/testing/formatting.ts +3 -0
  544. package/src/testing/index.ts +1 -0
  545. package/src/timer/date.ts +13 -3
  546. package/src/timer/index.ts +1 -1
  547. package/src/timer/timeout.ts +54 -19
  548. package/src/transport/index.ts +0 -1
  549. package/src/transport/interface/connector.ts +0 -1
  550. package/src/transport/interface/listener.ts +2 -3
  551. package/src/transport/interface/socket.ts +2 -3
  552. package/src/transport/transport_client.ts +3 -4
  553. package/src/transport/transport_server.ts +4 -1
  554. package/src/trees/balanced_merkle_tree_root.ts +68 -0
  555. package/src/trees/hasher.ts +13 -4
  556. package/src/trees/index.ts +4 -2
  557. package/src/trees/indexed_merkle_tree.ts +6 -2
  558. package/src/trees/indexed_merkle_tree_calculator.ts +2 -2
  559. package/src/trees/membership_witness.ts +22 -1
  560. package/src/trees/merkle_tree.ts +4 -1
  561. package/src/trees/merkle_tree_calculator.ts +10 -5
  562. package/src/trees/sibling_path.ts +3 -3
  563. package/src/trees/unbalanced_merkle_tree_calculator.ts +176 -0
  564. package/src/trees/unbalanced_merkle_tree_root.ts +115 -0
  565. package/src/trees/unbalanced_tree_store.ts +62 -3
  566. package/src/types/index.ts +30 -4
  567. package/src/url/index.ts +0 -1
  568. package/dest/crypto/index.d.ts +0 -15
  569. package/dest/crypto/index.d.ts.map +0 -1
  570. package/dest/crypto/index.js +0 -14
  571. package/dest/crypto/pedersen/pedersen.elliptic.d.ts +0 -13
  572. package/dest/crypto/pedersen/pedersen.elliptic.d.ts.map +0 -1
  573. package/dest/crypto/pedersen/pedersen.elliptic.js +0 -582
  574. package/dest/fields/coordinate.d.ts +0 -68
  575. package/dest/fields/coordinate.d.ts.map +0 -1
  576. package/dest/fields/coordinate.js +0 -96
  577. package/dest/fields/fields.d.ts +0 -176
  578. package/dest/fields/fields.d.ts.map +0 -1
  579. package/dest/fields/index.d.ts +0 -4
  580. package/dest/fields/index.d.ts.map +0 -1
  581. package/dest/fields/index.js +0 -3
  582. package/dest/fields/point.d.ts.map +0 -1
  583. package/dest/index.d.ts +0 -31
  584. package/dest/index.d.ts.map +0 -1
  585. package/dest/index.js +0 -31
  586. package/dest/json-rpc/server/telemetry.d.ts +0 -2
  587. package/dest/json-rpc/server/telemetry.d.ts.map +0 -1
  588. package/dest/json-rpc/server/telemetry.js +0 -0
  589. package/dest/log/debug.d.ts +0 -56
  590. package/dest/log/debug.d.ts.map +0 -1
  591. package/dest/log/debug.js +0 -75
  592. package/dest/log/log_history.d.ts +0 -31
  593. package/dest/log/log_history.d.ts.map +0 -1
  594. package/dest/log/log_history.js +0 -38
  595. package/dest/transport/browser/index.d.ts +0 -5
  596. package/dest/transport/browser/index.d.ts.map +0 -1
  597. package/dest/transport/browser/index.js +0 -4
  598. package/dest/transport/browser/message_port_socket.d.ts +0 -37
  599. package/dest/transport/browser/message_port_socket.d.ts.map +0 -1
  600. package/dest/transport/browser/message_port_socket.js +0 -42
  601. package/dest/transport/browser/shared_worker_connector.d.ts +0 -19
  602. package/dest/transport/browser/shared_worker_connector.d.ts.map +0 -1
  603. package/dest/transport/browser/shared_worker_connector.js +0 -19
  604. package/dest/transport/browser/shared_worker_listener.d.ts +0 -38
  605. package/dest/transport/browser/shared_worker_listener.d.ts.map +0 -1
  606. package/dest/transport/browser/shared_worker_listener.js +0 -33
  607. package/dest/transport/browser/worker_connector.d.ts +0 -26
  608. package/dest/transport/browser/worker_connector.d.ts.map +0 -1
  609. package/dest/transport/browser/worker_connector.js +0 -30
  610. package/dest/transport/browser/worker_listener.d.ts +0 -39
  611. package/dest/transport/browser/worker_listener.d.ts.map +0 -1
  612. package/dest/transport/browser/worker_listener.js +0 -35
  613. package/dest/trees/unbalanced_merkle_tree.d.ts +0 -17
  614. package/dest/trees/unbalanced_merkle_tree.d.ts.map +0 -1
  615. package/dest/trees/unbalanced_merkle_tree.js +0 -100
  616. package/dest/wasm/empty_wasi_sdk.d.ts +0 -130
  617. package/dest/wasm/empty_wasi_sdk.d.ts.map +0 -1
  618. package/dest/wasm/empty_wasi_sdk.js +0 -148
  619. package/dest/wasm/index.d.ts +0 -2
  620. package/dest/wasm/index.d.ts.map +0 -1
  621. package/dest/wasm/index.js +0 -1
  622. package/dest/wasm/wasm_module.d.ts +0 -136
  623. package/dest/wasm/wasm_module.d.ts.map +0 -1
  624. package/dest/wasm/wasm_module.js +0 -196
  625. package/dest/worker/browser/index.d.ts +0 -3
  626. package/dest/worker/browser/index.d.ts.map +0 -1
  627. package/dest/worker/browser/index.js +0 -2
  628. package/dest/worker/browser/start_web_module.d.ts +0 -7
  629. package/dest/worker/browser/start_web_module.d.ts.map +0 -1
  630. package/dest/worker/browser/start_web_module.js +0 -27
  631. package/dest/worker/browser/web_data_store.d.ts +0 -24
  632. package/dest/worker/browser/web_data_store.d.ts.map +0 -1
  633. package/dest/worker/browser/web_data_store.js +0 -29
  634. package/dest/worker/browser/web_worker.d.ts +0 -10
  635. package/dest/worker/browser/web_worker.d.ts.map +0 -1
  636. package/dest/worker/browser/web_worker.js +0 -25
  637. package/dest/worker/data_store.d.ts +0 -21
  638. package/dest/worker/data_store.d.ts.map +0 -1
  639. package/dest/worker/data_store.js +0 -3
  640. package/dest/worker/index.d.ts +0 -3
  641. package/dest/worker/index.d.ts.map +0 -1
  642. package/dest/worker/index.js +0 -1
  643. package/dest/worker/node/index.d.ts +0 -3
  644. package/dest/worker/node/index.d.ts.map +0 -1
  645. package/dest/worker/node/index.js +0 -2
  646. package/dest/worker/node/node_data_store.d.ts +0 -13
  647. package/dest/worker/node/node_data_store.d.ts.map +0 -1
  648. package/dest/worker/node/node_data_store.js +0 -20
  649. package/dest/worker/node/node_worker.d.ts +0 -6
  650. package/dest/worker/node/node_worker.d.ts.map +0 -1
  651. package/dest/worker/node/node_worker.js +0 -22
  652. package/dest/worker/node/start_node_module.d.ts +0 -7
  653. package/dest/worker/node/start_node_module.d.ts.map +0 -1
  654. package/dest/worker/node/start_node_module.js +0 -31
  655. package/dest/worker/wasm_worker.d.ts +0 -9
  656. package/dest/worker/wasm_worker.d.ts.map +0 -1
  657. package/dest/worker/wasm_worker.js +0 -3
  658. package/dest/worker/worker_pool.d.ts +0 -40
  659. package/dest/worker/worker_pool.d.ts.map +0 -1
  660. package/dest/worker/worker_pool.js +0 -51
  661. package/src/crypto/index.ts +0 -14
  662. package/src/crypto/pedersen/pedersen.elliptic.ts +0 -584
  663. package/src/fields/coordinate.ts +0 -104
  664. package/src/fields/index.ts +0 -3
  665. package/src/index.ts +0 -31
  666. package/src/json-rpc/server/telemetry.ts +0 -0
  667. package/src/log/debug.ts +0 -104
  668. package/src/log/log_history.ts +0 -44
  669. package/src/transport/browser/index.ts +0 -4
  670. package/src/transport/browser/message_port_socket.ts +0 -48
  671. package/src/transport/browser/shared_worker_connector.ts +0 -21
  672. package/src/transport/browser/shared_worker_listener.ts +0 -53
  673. package/src/transport/browser/worker_connector.ts +0 -30
  674. package/src/transport/browser/worker_listener.ts +0 -54
  675. package/src/trees/unbalanced_merkle_tree.ts +0 -103
  676. package/src/wasm/README.md +0 -6
  677. package/src/wasm/empty_wasi_sdk.ts +0 -166
  678. package/src/wasm/fixtures/gcd.wasm +0 -0
  679. package/src/wasm/fixtures/gcd.wat +0 -27
  680. package/src/wasm/index.ts +0 -1
  681. package/src/wasm/wasm_module.ts +0 -260
  682. package/src/worker/browser/index.ts +0 -2
  683. package/src/worker/browser/start_web_module.ts +0 -24
  684. package/src/worker/browser/web_data_store.ts +0 -38
  685. package/src/worker/browser/web_worker.ts +0 -25
  686. package/src/worker/data_store.ts +0 -19
  687. package/src/worker/index.ts +0 -2
  688. package/src/worker/node/index.ts +0 -2
  689. package/src/worker/node/node_data_store.ts +0 -27
  690. package/src/worker/node/node_worker.ts +0 -23
  691. package/src/worker/node/start_node_module.ts +0 -30
  692. package/src/worker/wasm_worker.ts +0 -7
  693. package/src/worker/worker_pool.ts +0 -73
@@ -0,0 +1,84 @@
1
+ import { computeBalancedMerkleTreeRoot, computeBalancedMerkleTreeRootAsync } from './balanced_merkle_tree_root.js';
2
+ import { poseidonMerkleHash, shaMerkleHash } from './hasher.js';
3
+ import { UnbalancedMerkleTreeCalculator } from './unbalanced_merkle_tree_calculator.js';
4
+ export const computeUnbalancedShaRoot = (leaves)=>computeUnbalancedMerkleTreeRoot(leaves, shaMerkleHash);
5
+ export const computeUnbalancedPoseidonRoot = async (leaves)=>await computeUnbalancedMerkleTreeRootAsync(leaves, poseidonMerkleHash);
6
+ export const computeWonkyShaRoot = (leaves)=>computeWonkyMerkleTreeRoot(leaves);
7
+ /**
8
+ * Computes the Merkle root of an unbalanced tree.
9
+ *
10
+ * Unlike a balanced Merkle tree, which requires the number of leaves to be a power of two, an unbalanced tree can have
11
+ * any number of leaves.
12
+ *
13
+ * The tree is constructed by iteratively extracting the smallest power-of-two-sized subtrees from **right to left**.
14
+ * For each such subtree, it computes the subtree root and then combines all subtree roots (again from right to left)
15
+ * into a single root using the provided hash function.
16
+ *
17
+ * Note: We need the final tree to be as shallow as possible, to minimize the size of the sibling path required to prove
18
+ * membership of a leaf. Therefor, the computation proceeds from right to left - smaller subtrees must always be
19
+ * combined before being merged with a larger sibling on their left.
20
+ *
21
+ * For example, consider an unbalanced tree made of three subtrees of sizes 2, 4, and 8. If we combine the size-2 and
22
+ * size-4 subtrees first (producing a subtree of depth 3), and then merge it with the size-8 subtree (also depth 3), the
23
+ * resulting tree has a maximum depth of 4.
24
+ *
25
+ * But if we instead combine the size-4 and size-8 subtrees first (depth 4), and then merge with the size-2 subtree
26
+ * (depth 1), the final tree has a depth of 5.
27
+ */ export function computeUnbalancedMerkleTreeRoot(leaves, hasher = shaMerkleHash, emptyRoot = Buffer.alloc(32)) {
28
+ if (!leaves.length) {
29
+ return emptyRoot;
30
+ }
31
+ if (leaves.length === 1) {
32
+ return leaves[0];
33
+ }
34
+ let numRemainingLeaves = leaves.length;
35
+ let subtreeSize = 1;
36
+ let root;
37
+ while(numRemainingLeaves > 1){
38
+ if ((numRemainingLeaves & subtreeSize) !== 0) {
39
+ const subtreeLeaves = leaves.slice(numRemainingLeaves - subtreeSize, numRemainingLeaves);
40
+ const subtreeRoot = computeBalancedMerkleTreeRoot(subtreeLeaves, hasher);
41
+ if (!root) {
42
+ root = subtreeRoot;
43
+ } else {
44
+ root = hasher(subtreeRoot, root);
45
+ }
46
+ numRemainingLeaves -= subtreeSize;
47
+ }
48
+ subtreeSize *= 2;
49
+ }
50
+ return root;
51
+ }
52
+ export async function computeUnbalancedMerkleTreeRootAsync(leaves, hasher = poseidonMerkleHash, emptyRoot = Buffer.alloc(32)) {
53
+ if (!leaves.length) {
54
+ return emptyRoot;
55
+ }
56
+ if (leaves.length === 1) {
57
+ return leaves[0];
58
+ }
59
+ let numRemainingLeaves = leaves.length;
60
+ let subtreeSize = 1;
61
+ let root;
62
+ while(numRemainingLeaves > 1){
63
+ if ((numRemainingLeaves & subtreeSize) !== 0) {
64
+ const subtreeLeaves = leaves.slice(numRemainingLeaves - subtreeSize, numRemainingLeaves);
65
+ const subtreeRoot = await computeBalancedMerkleTreeRootAsync(subtreeLeaves, hasher);
66
+ if (!root) {
67
+ root = subtreeRoot;
68
+ } else {
69
+ root = await hasher(subtreeRoot, root);
70
+ }
71
+ numRemainingLeaves -= subtreeSize;
72
+ }
73
+ subtreeSize *= 2;
74
+ }
75
+ return root;
76
+ }
77
+ // A **wonky** tree is a "compressed" unbalanced Merkle tree.
78
+ // It is constructed in the same way as an unbalanced tree: by first creating the largest possible left subtree, with
79
+ // the remaining leaves forming a right subtree that follows the same process recursively.
80
+ // During construction, leaves equal to `valueToCompress` are skipped (compressed) and do not contribute to the tree.
81
+ export function computeWonkyMerkleTreeRoot(leaves, valueToCompress = Buffer.alloc(32), emptyRoot = Buffer.alloc(32), hasher = shaMerkleHash) {
82
+ const calculator = UnbalancedMerkleTreeCalculator.create(leaves, valueToCompress, emptyRoot, hasher);
83
+ return calculator.getRoot();
84
+ }
@@ -12,8 +12,13 @@ export declare class UnbalancedTreeStore<T> {
12
12
  getChildLocations({ level, index }: TreeNodeLocation): [TreeNodeLocation, TreeNodeLocation];
13
13
  getLeaf(leafIndex: number): T | undefined;
14
14
  getNode(location: TreeNodeLocation): T | undefined;
15
+ getRoot(): T | undefined;
15
16
  getParent(location: TreeNodeLocation): T | undefined;
16
17
  getSibling(location: TreeNodeLocation): T | undefined;
17
18
  getChildren(location: TreeNodeLocation): [T | undefined, T | undefined];
18
19
  }
19
- //# 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;IASzB,OAAO,CAAC,QAAQ,EAAE,gBAAgB,GAAG,CAAC,GAAG,SAAS;IAIlD,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;
@@ -73,6 +72,12 @@ export class UnbalancedTreeStore {
73
72
  getNode(location) {
74
73
  return this.#nodeMapping.get(this.#getKey(location))?.value;
75
74
  }
75
+ getRoot() {
76
+ return this.getNode({
77
+ level: 0,
78
+ index: 0
79
+ });
80
+ }
76
81
  getParent(location) {
77
82
  const parentLocation = this.getParentLocation(location);
78
83
  return this.getNode(parentLocation);
@@ -92,3 +97,52 @@ export class UnbalancedTreeStore {
92
97
  return `${location.level}-${location.index}`;
93
98
  }
94
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,6 +14,31 @@ 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
- /** Maybe exists, maybe not. */
18
- export type Maybe<T extends object> = T | unknown;
19
- //# sourceMappingURL=index.d.ts.map
17
+ /** Is defined type guard */
18
+ export declare function isDefined<T>(value: T | undefined): value is T;
19
+ /** Resolves a record-like type. Lifted from viem. */
20
+ export type Prettify<T> = {
21
+ [K in keyof T]: T[K];
22
+ } & {};
23
+ /**
24
+ * Type-safe Event Emitter type
25
+ * @example
26
+ * export type ArchiverEmitter = TypedEventEmitter<{
27
+ * [L2BlockSourceEvents.L2PruneUnproven]: (args: L2BlockSourceEvent) => void;
28
+ * [L2BlockSourceEvents.L2BlockProven]: (args: L2BlockSourceEvent) => void;
29
+ * }>;
30
+ * class Archiver extends (EventEmitter as new () => ArchiverEmitter) {
31
+ * // ...
32
+ * }
33
+ */
34
+ export interface TypedEventEmitter<TEventMap extends {
35
+ [key in keyof TEventMap]: (...args: any[]) => void;
36
+ }> {
37
+ once<K extends keyof TEventMap>(event: K, listener: TEventMap[K]): this;
38
+ on<K extends keyof TEventMap>(event: K, listener: TEventMap[K]): this;
39
+ off<K extends keyof TEventMap>(event: K, listener: TEventMap[K]): this;
40
+ emit<K extends keyof TEventMap>(event: K, ...args: Parameters<TEventMap[K]>): boolean;
41
+ removeListener<K extends keyof TEventMap>(event: K, listener: TEventMap[K]): this;
42
+ removeAllListeners<K extends keyof TEventMap>(event: K): this;
43
+ }
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQ0FBZ0M7QUFDaEMsTUFBTSxNQUFNLFFBQVEsQ0FBQyxDQUFDLElBQUk7S0FDdkIsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxRQUFRLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQzFELENBQUM7QUFFRixrQ0FBa0M7QUFDbEMsTUFBTSxNQUFNLFdBQVcsQ0FBQyxDQUFDLElBQUk7S0FDMUIsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxRQUFRLEdBQUcsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQzFELENBQUM7QUFFRix1REFBdUQ7QUFDdkQsTUFBTSxNQUFNLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUUvRSw2Q0FBNkM7QUFDN0MsTUFBTSxNQUFNLFNBQVMsQ0FBQyxDQUFDLElBQUk7SUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FBRSxDQUFDO0FBRTlELGdEQUFnRDtBQUNoRCx3QkFBZ0IsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FFaEQ7QUFFRCw0QkFBNEI7QUFDNUIsd0JBQWdCLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxTQUFTLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FFN0Q7QUFFRCxxREFBcUQ7QUFDckQsTUFBTSxNQUFNLFFBQVEsQ0FBQyxDQUFDLElBQUk7S0FDdkIsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDckIsR0FBRyxFQUFFLENBQUM7QUFFUDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxXQUFXLGlCQUFpQixDQUFDLFNBQVMsU0FBUztLQUFHLEdBQUcsSUFBSSxNQUFNLFNBQVMsR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLElBQUk7Q0FBRTtJQUN6RyxJQUFJLENBQUMsQ0FBQyxTQUFTLE1BQU0sU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDeEUsRUFBRSxDQUFDLENBQUMsU0FBUyxNQUFNLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ3RFLEdBQUcsQ0FBQyxDQUFDLFNBQVMsTUFBTSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUN2RSxJQUFJLENBQUMsQ0FBQyxTQUFTLE1BQU0sU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQztJQUN0RixjQUFjLENBQUMsQ0FBQyxTQUFTLE1BQU0sU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDbEYsa0JBQWtCLENBQUMsQ0FBQyxTQUFTLE1BQU0sU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO0NBRS9EIn0=
@@ -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;KAEvB,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;KAE1B,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,+BAA+B;AAC/B,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC"}
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,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,3 +1,6 @@
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
+ }
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/url/index.ts"],"names":[],"mappings":"AAoBA;;;;;;GAMG;AAEH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA4CjD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/url/index.ts"],"names":[],"mappings":"AAmBA;;;;;;GAMG;AAEH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA4CjD"}
package/dest/url/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /* eslint-disable */ // Copyright (c) 2014 Nathan Rajlich <nathan@tootallnate.net>
1
+ // Copyright (c) 2014 Nathan Rajlich <nathan@tootallnate.net>
2
2
  // Permission is hereby granted, free of charge, to any person obtaining
3
3
  // a copy of this software and associated documentation files (the
4
4
  // 'Software'), to deal in the Software without restriction, including
@@ -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,20 +1,41 @@
1
1
  {
2
2
  "name": "@aztec/foundation",
3
- "version": "0.0.0-test.1",
3
+ "version": "0.0.1-commit.0b941701",
4
4
  "type": "module",
5
5
  "main": "./dest/index.js",
6
6
  "types": "./dest/index.d.ts",
7
7
  "exports": {
8
- "./eslint": "./.eslintrc.cjs",
9
- "./eslint.docs": "./.eslintrc.docs.cjs",
8
+ "./eslint": "./eslint.config.js",
9
+ "./eslint.docs": "./eslint.config.docs.js",
10
10
  "./prettier": "./.prettierrc.json",
11
11
  "./abi": "./dest/abi/index.js",
12
12
  "./async-map": "./dest/async-map/index.js",
13
13
  "./async-pool": "./dest/async-pool/index.js",
14
+ "./bigint": "./dest/bigint/index.js",
15
+ "./branded-types": "./dest/branded-types/index.js",
14
16
  "./collection": "./dest/collection/index.js",
15
17
  "./config": "./dest/config/index.js",
16
- "./crypto": "./dest/crypto/index.js",
18
+ "./crypto/aes128": "./dest/crypto/aes128/index.js",
19
+ "./crypto/bls": "./dest/crypto/bls/index.js",
20
+ "./crypto/bls/bn254_keystore": "./dest/crypto/bls/bn254_keystore.js",
21
+ "./crypto/bn254": "./dest/crypto/bn254/index.js",
22
+ "./crypto/ecdsa": "./dest/crypto/ecdsa/index.js",
23
+ "./crypto/grumpkin": "./dest/crypto/grumpkin/index.js",
24
+ "./crypto/keccak": "./dest/crypto/keccak/index.js",
25
+ "./crypto/keys": "./dest/crypto/keys/index.js",
26
+ "./crypto/pedersen": "./dest/crypto/pedersen/index.js",
27
+ "./crypto/poseidon": "./dest/crypto/poseidon/index.js",
28
+ "./crypto/random": "./dest/crypto/random/index.js",
29
+ "./crypto/schnorr": "./dest/crypto/schnorr/index.js",
30
+ "./crypto/secp256k1": "./dest/crypto/secp256k1/index.js",
31
+ "./crypto/secp256k1-signer": "./dest/crypto/secp256k1-signer/index.js",
32
+ "./crypto/sha256": "./dest/crypto/sha256/index.js",
33
+ "./crypto/sha512": "./dest/crypto/sha512/index.js",
34
+ "./crypto/signature": "./dest/crypto/signature/index.js",
17
35
  "./crypto/sync": "./dest/crypto/sync/index.js",
36
+ "./curves/bn254": "./dest/curves/bn254/index.js",
37
+ "./curves/grumpkin": "./dest/curves/grumpkin/index.js",
38
+ "./curves/bls12": "./dest/curves/bls12/index.js",
18
39
  "./decorators": "./dest/decorators/index.js",
19
40
  "./error": "./dest/error/index.js",
20
41
  "./eth-address": "./dest/eth-address/index.js",
@@ -28,9 +49,9 @@
28
49
  "./json-rpc/undici": "./dest/json-rpc/client/undici.js",
29
50
  "./json-rpc/test": "./dest/json-rpc/test/index.js",
30
51
  "./iterable": "./dest/iterable/index.js",
52
+ "./iterator": "./dest/iterator/index.js",
31
53
  "./log": "./dest/log/index.js",
32
54
  "./mutex": "./dest/mutex/index.js",
33
- "./fields": "./dest/fields/index.js",
34
55
  "./retry": "./dest/retry/index.js",
35
56
  "./running-promise": "./dest/running-promise/index.js",
36
57
  "./serialize": "./dest/serialize/index.js",
@@ -38,8 +59,6 @@
38
59
  "./timer": "./dest/timer/index.js",
39
60
  "./transport": "./dest/transport/index.js",
40
61
  "./trees": "./dest/trees/index.js",
41
- "./wasm": "./dest/wasm/index.js",
42
- "./worker": "./dest/worker/index.js",
43
62
  "./bigint-buffer": "./dest/bigint-buffer/index.js",
44
63
  "./types": "./dest/types/index.js",
45
64
  "./schemas": "./dest/schemas/index.js",
@@ -48,19 +67,19 @@
48
67
  "./noir": "./dest/noir/index.js",
49
68
  "./testing": "./dest/testing/index.js",
50
69
  "./testing/files": "./dest/testing/files/index.js",
70
+ "./profiler": "./dest/profiler/index.js",
51
71
  "./array": "./dest/array/index.js",
52
72
  "./validation": "./dest/validation/index.js",
53
73
  "./promise": "./dest/promise/index.js",
54
74
  "./string": "./dest/string/index.js",
55
- "./message": "./dest/message/index.js"
75
+ "./message": "./dest/message/index.js",
76
+ "./number": "./dest/number/index.js"
56
77
  },
57
78
  "scripts": {
58
- "build": "yarn clean && tsc -b",
59
- "build:dev": "tsc -b --watch",
79
+ "build": "yarn clean && ../scripts/tsc.sh",
80
+ "build:dev": "../scripts/tsc.sh --watch",
60
81
  "clean": "rm -rf ./dest .tsbuildinfo",
61
82
  "generate": "true",
62
- "formatting": "run -T prettier --check ./src && run -T eslint ./src",
63
- "formatting:fix": "run -T eslint --fix ./src && run -T prettier -w ./src",
64
83
  "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
65
84
  },
66
85
  "inherits": [
@@ -96,74 +115,69 @@
96
115
  ],
97
116
  "testTimeout": 120000,
98
117
  "setupFilesAfterEnv": [
99
- "../../foundation/src/jest/setup.mjs"
118
+ "../../foundation/src/jest/setupAfterEnv.mjs"
100
119
  ],
101
120
  "setupFiles": [
102
121
  "../../foundation/src/jest/setup.mjs"
103
- ]
122
+ ],
123
+ "testEnvironment": "../../foundation/src/jest/env.mjs"
104
124
  },
105
125
  "dependencies": {
106
- "@aztec/bb.js": "0.0.0-test.1",
126
+ "@aztec/bb.js": "0.0.1-commit.0b941701",
107
127
  "@koa/cors": "^5.0.0",
108
- "@noble/curves": "^1.2.0",
128
+ "@noble/curves": "=1.7.0",
129
+ "@noble/hashes": "^1.6.1",
130
+ "@scure/bip39": "^2.0.1",
109
131
  "bn.js": "^5.2.1",
110
- "c-kzg": "4.0.0-alpha.1",
111
132
  "colorette": "^2.0.20",
112
- "debug": "^4.3.4",
113
133
  "detect-node": "^2.1.0",
114
- "elliptic": "^6.5.4",
115
134
  "hash.js": "^1.1.7",
116
- "koa": "^2.14.2",
135
+ "koa": "^2.16.1",
117
136
  "koa-bodyparser": "^4.4.0",
118
137
  "koa-compress": "^5.1.0",
119
- "koa-router": "^12.0.0",
138
+ "koa-router": "^13.1.1",
120
139
  "leveldown": "^6.1.1",
121
- "levelup": "^5.1.1",
122
140
  "lodash.chunk": "^4.2.0",
123
141
  "lodash.clonedeepwith": "^4.5.0",
124
- "memdown": "^6.1.1",
125
142
  "pako": "^2.1.0",
126
143
  "pino": "^9.5.0",
127
144
  "pino-pretty": "^13.0.0",
128
145
  "sha3": "^2.1.4",
129
- "undici": "^7.3.0",
146
+ "undici": "^5.28.5",
130
147
  "zod": "^3.23.8"
131
148
  },
132
149
  "devDependencies": {
133
- "@jest/globals": "^29.5.0",
150
+ "@jest/globals": "^30.0.0",
134
151
  "@libp2p/interface": "1.3.1",
135
- "@types/bn.js": "^5.1.3",
136
- "@types/debug": "^4.1.7",
137
152
  "@types/detect-node": "^2.0.0",
138
- "@types/elliptic": "^6.4.16",
139
- "@types/jest": "^29.5.0",
140
- "@types/koa": "^2.13.5",
153
+ "@types/jest": "^30.0.0",
154
+ "@types/koa": "^2.15.0",
141
155
  "@types/koa-bodyparser": "^4.3.10",
142
156
  "@types/koa-compress": "^4.0.3",
143
157
  "@types/koa-router": "^7.4.4",
144
158
  "@types/koa__cors": "^4.0.0",
145
159
  "@types/leveldown": "^4.0.3",
146
- "@types/levelup": "^5.1.2",
147
160
  "@types/lodash.chunk": "^4.2.9",
148
161
  "@types/lodash.clonedeepwith": "^4.5.7",
149
- "@types/memdown": "^3.0.1",
150
- "@types/node": "^18.7.23",
162
+ "@types/node": "^22.15.17",
151
163
  "@types/pako": "^2.0.0",
152
164
  "@types/supertest": "^2.0.12",
153
- "@typescript-eslint/eslint-plugin": "^6.2.1",
154
- "@typescript-eslint/parser": "^6.2.1",
165
+ "@typescript/native-preview": "7.0.0-dev.20260113.1",
155
166
  "comlink": "^4.4.1",
156
- "eslint": "^8.21.0",
157
- "eslint-config-prettier": "^8.5.0",
158
- "eslint-plugin-jsdoc": "^40.1.0",
159
- "eslint-plugin-no-only-tests": "^3.1.0",
160
- "eslint-plugin-tsdoc": "^0.2.17",
161
- "jest": "^29.5.0",
162
- "prettier": "^2.7.1",
167
+ "eslint": "^9.26.0",
168
+ "eslint-config-prettier": "^10.1.5",
169
+ "eslint-plugin-import-x": "^4.6.1",
170
+ "eslint-plugin-jsdoc": "^50.6.14",
171
+ "eslint-plugin-no-only-tests": "^3.3.0",
172
+ "eslint-plugin-tsdoc": "^0.4.0",
173
+ "globals": "^16.1.0",
174
+ "jest": "^30.0.0",
175
+ "prettier": "^3.5.3",
163
176
  "supertest": "^6.3.3",
164
177
  "ts-node": "^10.9.1",
165
- "typescript": "^5.0.4",
166
- "viem": "2.22.8"
178
+ "typescript": "^5.3.3",
179
+ "typescript-eslint": "^8.32.1",
180
+ "viem": "npm:@aztec/viem@2.38.2"
167
181
  },
168
182
  "files": [
169
183
  "dest",
@@ -171,6 +185,6 @@
171
185
  "!*.test.*"
172
186
  ],
173
187
  "engines": {
174
- "node": ">=18"
188
+ "node": ">=20.10"
175
189
  }
176
190
  }
@@ -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.
@@ -148,3 +132,16 @@ export function assertRightPadded<T>(arr: T[], isEmpty: (item: T) => boolean) {
148
132
  }
149
133
  }
150
134
  }
135
+
136
+ /**
137
+ * Shuffles an array in-place using the Fisher-Yates algorith,
138
+ * @param arr - The array to shuffle
139
+ */
140
+ export function shuffle<T>(arr: T[]): void {
141
+ for (let i = arr.length - 1; i > 0; i--) {
142
+ const j = (Math.random() * (i + 1)) | 0;
143
+ const temp = arr[i];
144
+ arr[i] = arr[j];
145
+ arr[j] = temp;
146
+ }
147
+ }
@@ -1 +1,2 @@
1
1
  export * from './array.js';
2
+ export * from './sorted_array.js';
@@ -0,0 +1,133 @@
1
+ type Cmp<T> = (a: T, b: T) => -1 | 0 | 1;
2
+
3
+ export function dedupeSortedArray<T>(arr: T[], cmp: Cmp<T>): void {
4
+ for (let i = 0; i < arr.length; i++) {
5
+ let j = i + 1;
6
+ for (; j < arr.length; j++) {
7
+ const res = cmp(arr[i], arr[j]);
8
+ if (res === 0) {
9
+ continue;
10
+ } else if (res < 0) {
11
+ break;
12
+ } else {
13
+ throw new Error('Array not sorted');
14
+ }
15
+ }
16
+
17
+ if (j - i > 1) {
18
+ arr.splice(i + 1, j - i - 1);
19
+ }
20
+ }
21
+ }
22
+
23
+ export function insertIntoSortedArray<T>(arr: T[], item: T, cmp: Cmp<T>, allowDuplicates = true): boolean {
24
+ let start = 0;
25
+ let end = arr.length;
26
+
27
+ while (start < end) {
28
+ const mid = start + (((end - start) / 2) | 0);
29
+ const comparison = cmp(arr[mid], item);
30
+
31
+ if (comparison < 0) {
32
+ start = mid + 1;
33
+ } else {
34
+ end = mid;
35
+ }
36
+ }
37
+
38
+ if (!allowDuplicates) {
39
+ // Check element at insertion point
40
+ if (start < arr.length && cmp(arr[start], item) === 0) {
41
+ return false;
42
+ }
43
+
44
+ // Check element before insertion point (in case we landed after duplicates)
45
+ if (start > 0 && cmp(arr[start - 1], item) === 0) {
46
+ return false;
47
+ }
48
+ }
49
+
50
+ arr.splice(start, 0, item);
51
+ return true;
52
+ }
53
+
54
+ export function findIndexInSortedArray<T, N>(values: T[], needle: N, cmp: (a: T, b: N) => number): number {
55
+ let start = 0;
56
+ let end = values.length - 1;
57
+
58
+ while (start <= end) {
59
+ const mid = start + (((end - start) / 2) | 0);
60
+ const comparison = cmp(values[mid], needle);
61
+
62
+ if (comparison === 0) {
63
+ return mid;
64
+ }
65
+
66
+ if (comparison > 0) {
67
+ end = mid - 1;
68
+ } else {
69
+ start = mid + 1;
70
+ }
71
+ }
72
+
73
+ return -1;
74
+ }
75
+
76
+ export function findInSortedArray<T, N>(values: T[], needle: N, cmp: (a: T, b: N) => number): T | undefined {
77
+ const idx = findIndexInSortedArray(values, needle, cmp);
78
+ return idx > -1 ? values[idx] : undefined;
79
+ }
80
+
81
+ export function removeAnyOf<T, N>(arr: T[], vals: N[], cmp: (a: T, b: N) => -1 | 0 | 1): void {
82
+ let writeIdx = 0;
83
+ let readIdx = 0;
84
+ let valIdx = 0;
85
+
86
+ while (readIdx < arr.length && valIdx < vals.length) {
87
+ const comparison = cmp(arr[readIdx], vals[valIdx]);
88
+
89
+ if (comparison < 0) {
90
+ arr[writeIdx++] = arr[readIdx++];
91
+ } else if (comparison > 0) {
92
+ valIdx++;
93
+ } else {
94
+ readIdx++;
95
+ }
96
+ }
97
+
98
+ while (readIdx < arr.length) {
99
+ arr[writeIdx++] = arr[readIdx++];
100
+ }
101
+
102
+ arr.length = writeIdx;
103
+ }
104
+
105
+ export function removeFromSortedArray<T, N>(arr: T[], val: N, cmp: (a: T, b: N) => -1 | 0 | 1) {
106
+ const idx = findIndexInSortedArray(arr, val, cmp);
107
+ if (idx > -1) {
108
+ arr.splice(idx, 1);
109
+ }
110
+ }
111
+
112
+ export function merge<T>(arr: T[], toInsert: T[], cmp: (a: T, b: T) => -1 | 0 | 1): void {
113
+ const result = new Array<T>(arr.length + toInsert.length);
114
+ let i = 0,
115
+ j = 0,
116
+ k = 0;
117
+
118
+ while (i < arr.length && j < toInsert.length) {
119
+ result[k++] = cmp(arr[i], toInsert[j]) <= 0 ? arr[i++] : toInsert[j++];
120
+ }
121
+
122
+ while (i < arr.length) {
123
+ result[k++] = arr[i++];
124
+ }
125
+ while (j < toInsert.length) {
126
+ result[k++] = toInsert[j++];
127
+ }
128
+
129
+ for (i = 0; i < result.length; i++) {
130
+ arr[i] = result[i];
131
+ }
132
+ arr.length = result.length;
133
+ }
@@ -29,6 +29,7 @@
29
29
  export function asyncPool<T, R>(poolLimit: number, iterable: T[], iteratorFn: (item: T, iterable: T[]) => Promise<R>) {
30
30
  let i = 0;
31
31
  const ret: Promise<R>[] = [];
32
+ // eslint-disable-next-line aztec-custom/no-non-primitive-in-collections
32
33
  const executing: Set<Promise<R>> = new Set();
33
34
  const enqueue = (): Promise<any> => {
34
35
  if (i === iterable.length) {