@aztec/foundation 0.0.0-test.0 → 0.0.1-commit.0208eb9

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 (701) 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 +28 -4
  50. package/dest/collection/array.d.ts.map +1 -1
  51. package/dest/collection/array.js +108 -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 +4 -5
  115. package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
  116. package/dest/crypto/random/randomness_singleton.js +5 -5
  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/setup.js +4 -1
  211. package/dest/jest/setupAfterEnv.js +3 -0
  212. package/dest/json-rpc/client/fetch.d.ts +3 -3
  213. package/dest/json-rpc/client/fetch.d.ts.map +1 -1
  214. package/dest/json-rpc/client/fetch.js +16 -30
  215. package/dest/json-rpc/client/index.d.ts +1 -1
  216. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +10 -4
  217. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
  218. package/dest/json-rpc/client/safe_json_rpc_client.js +173 -13
  219. package/dest/json-rpc/client/undici.d.ts +1 -1
  220. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  221. package/dest/json-rpc/client/undici.js +27 -11
  222. package/dest/json-rpc/convert.d.ts +3 -10
  223. package/dest/json-rpc/convert.d.ts.map +1 -1
  224. package/dest/json-rpc/convert.js +1 -9
  225. package/dest/json-rpc/errors.d.ts +4 -0
  226. package/dest/json-rpc/errors.d.ts.map +1 -0
  227. package/dest/json-rpc/errors.js +6 -0
  228. package/dest/json-rpc/fixtures/class_a.d.ts +6 -4
  229. package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
  230. package/dest/json-rpc/fixtures/class_b.d.ts +6 -4
  231. package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -1
  232. package/dest/json-rpc/fixtures/test_state.d.ts +1 -1
  233. package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
  234. package/dest/json-rpc/index.d.ts +3 -2
  235. package/dest/json-rpc/index.d.ts.map +1 -1
  236. package/dest/json-rpc/index.js +2 -1
  237. package/dest/json-rpc/js_utils.d.ts +1 -1
  238. package/dest/json-rpc/js_utils.d.ts.map +1 -1
  239. package/dest/json-rpc/server/index.d.ts +1 -1
  240. package/dest/json-rpc/server/safe_json_rpc_server.d.ts +22 -23
  241. package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
  242. package/dest/json-rpc/server/safe_json_rpc_server.js +161 -56
  243. package/dest/json-rpc/test/index.d.ts +1 -1
  244. package/dest/json-rpc/test/integration.d.ts +2 -3
  245. package/dest/json-rpc/test/integration.d.ts.map +1 -1
  246. package/dest/log/console.d.ts +1 -1
  247. package/dest/log/console.d.ts.map +1 -1
  248. package/dest/log/gcloud-logger-config.d.ts +1 -2
  249. package/dest/log/gcloud-logger-config.d.ts.map +1 -1
  250. package/dest/log/gcloud-logger-config.js +1 -9
  251. package/dest/log/index.d.ts +5 -5
  252. package/dest/log/index.d.ts.map +1 -1
  253. package/dest/log/index.js +4 -4
  254. package/dest/log/libp2p_logger.d.ts +5 -2
  255. package/dest/log/libp2p_logger.d.ts.map +1 -1
  256. package/dest/log/libp2p_logger.js +27 -6
  257. package/dest/log/log-filters.d.ts +1 -1
  258. package/dest/log/log-levels.d.ts +1 -1
  259. package/dest/log/log_fn.d.ts +2 -2
  260. package/dest/log/log_fn.d.ts.map +1 -1
  261. package/dest/log/noir_debug_log_util.d.ts +14 -0
  262. package/dest/log/noir_debug_log_util.d.ts.map +1 -0
  263. package/dest/log/noir_debug_log_util.js +14 -0
  264. package/dest/log/pino-logger-server.d.ts +9 -0
  265. package/dest/log/pino-logger-server.d.ts.map +1 -0
  266. package/dest/log/pino-logger-server.js +18 -0
  267. package/dest/log/pino-logger.d.ts +40 -11
  268. package/dest/log/pino-logger.d.ts.map +1 -1
  269. package/dest/log/pino-logger.js +143 -28
  270. package/dest/message/index.d.ts +1 -1
  271. package/dest/message/index.d.ts.map +1 -1
  272. package/dest/mutex/index.d.ts +1 -1
  273. package/dest/mutex/index.d.ts.map +1 -1
  274. package/dest/mutex/mutex_database.d.ts +1 -1
  275. package/dest/mutex/mutex_database.d.ts.map +1 -1
  276. package/dest/noir/index.d.ts +1 -1
  277. package/dest/noir/noir_package_config.d.ts +9 -9
  278. package/dest/number/index.d.ts +3 -0
  279. package/dest/number/index.d.ts.map +1 -0
  280. package/dest/number/index.js +12 -0
  281. package/dest/profiler/index.d.ts +2 -0
  282. package/dest/profiler/index.d.ts.map +1 -0
  283. package/dest/profiler/index.js +1 -0
  284. package/dest/profiler/profiler.d.ts +8 -0
  285. package/dest/profiler/profiler.d.ts.map +1 -0
  286. package/dest/profiler/profiler.js +97 -0
  287. package/dest/promise/index.d.ts +1 -1
  288. package/dest/promise/running-promise.d.ts +2 -2
  289. package/dest/promise/running-promise.d.ts.map +1 -1
  290. package/dest/promise/running-promise.js +2 -2
  291. package/dest/promise/utils.d.ts +1 -1
  292. package/dest/queue/base_memory_queue.d.ts +1 -1
  293. package/dest/queue/base_memory_queue.d.ts.map +1 -1
  294. package/dest/queue/batch_queue.d.ts +2 -2
  295. package/dest/queue/batch_queue.d.ts.map +1 -1
  296. package/dest/queue/batch_queue.js +1 -1
  297. package/dest/queue/bounded_serial_queue.d.ts +1 -1
  298. package/dest/queue/bounded_serial_queue.d.ts.map +1 -1
  299. package/dest/queue/fifo_memory_queue.d.ts +1 -1
  300. package/dest/queue/fifo_memory_queue.d.ts.map +1 -1
  301. package/dest/queue/index.d.ts +1 -1
  302. package/dest/queue/priority_memory_queue.d.ts +1 -1
  303. package/dest/queue/priority_memory_queue.d.ts.map +1 -1
  304. package/dest/queue/priority_queue.d.ts +1 -1
  305. package/dest/queue/priority_queue.d.ts.map +1 -1
  306. package/dest/queue/semaphore.d.ts +5 -1
  307. package/dest/queue/semaphore.d.ts.map +1 -1
  308. package/dest/queue/serial_queue.d.ts +3 -3
  309. package/dest/queue/serial_queue.d.ts.map +1 -1
  310. package/dest/queue/serial_queue.js +7 -5
  311. package/dest/retry/index.d.ts +14 -3
  312. package/dest/retry/index.d.ts.map +1 -1
  313. package/dest/retry/index.js +13 -2
  314. package/dest/running-promise/index.d.ts +1 -1
  315. package/dest/schemas/api.d.ts +1 -1
  316. package/dest/schemas/api.d.ts.map +1 -1
  317. package/dest/schemas/index.d.ts +1 -1
  318. package/dest/schemas/parse.d.ts +1 -1
  319. package/dest/schemas/parse.js +1 -1
  320. package/dest/schemas/schemas.d.ts +21 -20
  321. package/dest/schemas/schemas.d.ts.map +1 -1
  322. package/dest/schemas/schemas.js +29 -11
  323. package/dest/schemas/types.d.ts +31 -1
  324. package/dest/schemas/types.d.ts.map +1 -1
  325. package/dest/schemas/types.js +25 -1
  326. package/dest/schemas/utils.d.ts +4 -6
  327. package/dest/schemas/utils.d.ts.map +1 -1
  328. package/dest/schemas/utils.js +15 -5
  329. package/dest/serialize/buffer_reader.d.ts +34 -6
  330. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  331. package/dest/serialize/buffer_reader.js +57 -6
  332. package/dest/serialize/field_reader.d.ts +12 -3
  333. package/dest/serialize/field_reader.d.ts.map +1 -1
  334. package/dest/serialize/field_reader.js +19 -2
  335. package/dest/serialize/free_funcs.d.ts +25 -23
  336. package/dest/serialize/free_funcs.d.ts.map +1 -1
  337. package/dest/serialize/free_funcs.js +22 -28
  338. package/dest/serialize/index.d.ts +1 -1
  339. package/dest/serialize/serialize.d.ts +6 -7
  340. package/dest/serialize/serialize.d.ts.map +1 -1
  341. package/dest/serialize/serialize.js +1 -1
  342. package/dest/serialize/type_registry.d.ts +1 -1
  343. package/dest/serialize/type_registry.d.ts.map +1 -1
  344. package/dest/serialize/types.d.ts +1 -1
  345. package/dest/sleep/index.d.ts +3 -1
  346. package/dest/sleep/index.d.ts.map +1 -1
  347. package/dest/sleep/index.js +4 -0
  348. package/dest/string/index.d.ts +8 -3
  349. package/dest/string/index.d.ts.map +1 -1
  350. package/dest/string/index.js +27 -1
  351. package/dest/testing/files/index.d.ts +2 -3
  352. package/dest/testing/files/index.d.ts.map +1 -1
  353. package/dest/testing/files/index.js +3 -3
  354. package/dest/testing/formatting.d.ts +4 -0
  355. package/dest/testing/formatting.d.ts.map +1 -0
  356. package/dest/testing/formatting.js +3 -0
  357. package/dest/testing/index.d.ts +2 -1
  358. package/dest/testing/index.d.ts.map +1 -1
  359. package/dest/testing/index.js +1 -0
  360. package/dest/testing/port_allocator.d.ts +1 -1
  361. package/dest/testing/snapshot_serializer.d.ts +1 -1
  362. package/dest/testing/test_data.d.ts +1 -1
  363. package/dest/timer/date.d.ts +4 -2
  364. package/dest/timer/date.d.ts.map +1 -1
  365. package/dest/timer/date.js +8 -3
  366. package/dest/timer/elapsed.d.ts +1 -1
  367. package/dest/timer/index.d.ts +2 -2
  368. package/dest/timer/index.d.ts.map +1 -1
  369. package/dest/timer/index.js +1 -1
  370. package/dest/timer/timeout.d.ts +19 -6
  371. package/dest/timer/timeout.d.ts.map +1 -1
  372. package/dest/timer/timeout.js +43 -22
  373. package/dest/timer/timer.d.ts +1 -1
  374. package/dest/timer/timer.d.ts.map +1 -1
  375. package/dest/transport/dispatch/create_dispatch_fn.d.ts +1 -1
  376. package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +1 -1
  377. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +1 -1
  378. package/dest/transport/dispatch/messages.d.ts +1 -1
  379. package/dest/transport/index.d.ts +1 -2
  380. package/dest/transport/index.d.ts.map +1 -1
  381. package/dest/transport/index.js +0 -1
  382. package/dest/transport/interface/connector.d.ts +1 -1
  383. package/dest/transport/interface/connector.d.ts.map +1 -1
  384. package/dest/transport/interface/listener.d.ts +1 -2
  385. package/dest/transport/interface/listener.d.ts.map +1 -1
  386. package/dest/transport/interface/socket.d.ts +1 -1
  387. package/dest/transport/interface/socket.d.ts.map +1 -1
  388. package/dest/transport/interface/transferable.d.ts +1 -1
  389. package/dest/transport/node/index.d.ts +1 -1
  390. package/dest/transport/node/node_connector.d.ts +1 -2
  391. package/dest/transport/node/node_connector.d.ts.map +1 -1
  392. package/dest/transport/node/node_connector_socket.d.ts +1 -2
  393. package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
  394. package/dest/transport/node/node_listener.d.ts +1 -2
  395. package/dest/transport/node/node_listener.d.ts.map +1 -1
  396. package/dest/transport/node/node_listener_socket.d.ts +1 -2
  397. package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
  398. package/dest/transport/transport_client.d.ts +1 -2
  399. package/dest/transport/transport_client.d.ts.map +1 -1
  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 +17 -0
  403. package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -0
  404. package/dest/trees/balanced_merkle_tree_root.js +51 -0
  405. package/dest/trees/hasher.d.ts +7 -7
  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 +5 -3
  409. package/dest/trees/index.d.ts.map +1 -1
  410. package/dest/trees/index.js +4 -2
  411. package/dest/trees/indexed_merkle_tree.d.ts +1 -3
  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 +2 -4
  415. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
  416. package/dest/trees/indexed_tree_leaf.d.ts +1 -3
  417. package/dest/trees/indexed_tree_leaf.d.ts.map +1 -1
  418. package/dest/trees/membership_witness.d.ts +10 -5
  419. package/dest/trees/membership_witness.d.ts.map +1 -1
  420. package/dest/trees/membership_witness.js +23 -1
  421. package/dest/trees/merkle_tree.d.ts +1 -3
  422. package/dest/trees/merkle_tree.d.ts.map +1 -1
  423. package/dest/trees/merkle_tree_calculator.d.ts +2 -4
  424. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  425. package/dest/trees/merkle_tree_calculator.js +2 -2
  426. package/dest/trees/sibling_path.d.ts +6 -41
  427. package/dest/trees/sibling_path.d.ts.map +1 -1
  428. package/dest/trees/sibling_path.js +3 -3
  429. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +48 -0
  430. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -0
  431. package/dest/trees/unbalanced_merkle_tree_calculator.js +154 -0
  432. package/dest/trees/unbalanced_merkle_tree_root.d.ts +28 -0
  433. package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -0
  434. package/dest/trees/unbalanced_merkle_tree_root.js +84 -0
  435. package/dest/trees/unbalanced_tree_store.d.ts +6 -1
  436. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
  437. package/dest/trees/unbalanced_tree_store.js +55 -1
  438. package/dest/types/index.d.ts +30 -3
  439. package/dest/types/index.d.ts.map +1 -1
  440. package/dest/types/index.js +6 -0
  441. package/dest/url/index.d.ts +1 -1
  442. package/dest/url/index.d.ts.map +1 -1
  443. package/dest/url/index.js +1 -1
  444. package/dest/validation/index.d.ts +1 -1
  445. package/package.json +60 -45
  446. package/src/array/array.ts +13 -16
  447. package/src/array/index.ts +1 -0
  448. package/src/array/sorted_array.ts +133 -0
  449. package/src/async-pool/index.ts +1 -0
  450. package/src/bigint/index.ts +20 -0
  451. package/src/branded-types/block_number.ts +117 -0
  452. package/src/branded-types/checkpoint_number.ts +115 -0
  453. package/src/branded-types/epoch.ts +88 -0
  454. package/src/branded-types/index.ts +7 -0
  455. package/src/branded-types/index_within_checkpoint.ts +88 -0
  456. package/src/branded-types/slot.ts +88 -0
  457. package/src/branded-types/types.ts +2 -0
  458. package/src/buffer/buffer16.ts +133 -0
  459. package/src/buffer/buffer32.ts +10 -8
  460. package/src/buffer/index.ts +1 -0
  461. package/src/collection/array.ts +118 -4
  462. package/src/collection/object.ts +37 -0
  463. package/src/config/env_var.ts +194 -59
  464. package/src/config/index.ts +226 -10
  465. package/src/config/network_config.ts +18 -0
  466. package/src/config/network_name.ts +28 -0
  467. package/src/config/parse-env.ts +4 -0
  468. package/src/config/secret_value.ts +49 -0
  469. package/src/crypto/aes128/index.ts +19 -10
  470. package/src/crypto/bls/bn254_keystore.ts +287 -0
  471. package/src/crypto/bls/index.ts +77 -0
  472. package/src/crypto/bn254/index.ts +64 -0
  473. package/src/crypto/ecdsa/index.ts +41 -23
  474. package/src/crypto/ecdsa/signature.ts +2 -2
  475. package/src/crypto/grumpkin/index.ts +38 -46
  476. package/src/crypto/keys/index.ts +6 -6
  477. package/src/crypto/pedersen/pedersen.wasm.ts +23 -19
  478. package/src/crypto/poseidon/index.ts +27 -29
  479. package/src/crypto/random/index.ts +2 -40
  480. package/src/crypto/random/randomness_singleton.ts +6 -4
  481. package/src/crypto/schnorr/index.ts +22 -18
  482. package/src/crypto/schnorr/signature.ts +2 -2
  483. package/src/crypto/secp256k1/index.ts +15 -11
  484. package/src/crypto/secp256k1-signer/utils.ts +120 -7
  485. package/src/crypto/sha256/index.ts +48 -1
  486. package/src/crypto/sha512/index.ts +1 -1
  487. package/src/crypto/signature/index.ts +1 -1
  488. package/src/crypto/sync/index.ts +1 -1
  489. package/src/crypto/sync/pedersen/index.ts +17 -16
  490. package/src/crypto/sync/poseidon/index.ts +23 -27
  491. package/src/curves/bls12/field.ts +463 -0
  492. package/src/curves/bls12/index.ts +2 -0
  493. package/src/curves/bls12/point.ts +450 -0
  494. package/src/{fields/fields.ts → curves/bn254/field.ts} +84 -63
  495. package/src/curves/bn254/index.ts +2 -0
  496. package/src/curves/bn254/point.ts +170 -0
  497. package/src/curves/grumpkin/index.ts +11 -0
  498. package/src/{fields → curves/grumpkin}/point.ts +27 -10
  499. package/src/eth-address/index.ts +35 -3
  500. package/src/eth-signature/eth_signature.ts +44 -22
  501. package/src/fs/index.ts +1 -0
  502. package/src/fs/try_rm_dir.ts +15 -0
  503. package/src/iterable/filter.ts +1 -1
  504. package/src/iterable/map.ts +1 -1
  505. package/src/iterator/filter.ts +11 -0
  506. package/src/iterator/index.ts +1 -0
  507. package/src/jest/env.mjs +52 -0
  508. package/src/jest/setup.mjs +4 -1
  509. package/src/jest/setupAfterEnv.mjs +3 -0
  510. package/src/json-rpc/client/fetch.ts +14 -33
  511. package/src/json-rpc/client/safe_json_rpc_client.ts +226 -13
  512. package/src/json-rpc/client/undici.ts +29 -18
  513. package/src/json-rpc/convert.ts +3 -12
  514. package/src/json-rpc/errors.ts +6 -0
  515. package/src/json-rpc/fixtures/class_a.ts +4 -1
  516. package/src/json-rpc/fixtures/class_b.ts +4 -1
  517. package/src/json-rpc/index.ts +2 -1
  518. package/src/json-rpc/server/safe_json_rpc_server.ts +141 -48
  519. package/src/json-rpc/test/integration.ts +1 -1
  520. package/src/log/console.ts +4 -1
  521. package/src/log/gcloud-logger-config.ts +3 -7
  522. package/src/log/index.ts +4 -4
  523. package/src/log/libp2p_logger.ts +33 -7
  524. package/src/log/log_fn.ts +1 -1
  525. package/src/log/noir_debug_log_util.ts +21 -0
  526. package/src/log/pino-logger-server.ts +25 -0
  527. package/src/log/pino-logger.ts +169 -37
  528. package/src/message/index.ts +5 -1
  529. package/src/mutex/mutex_database.ts +2 -3
  530. package/src/number/index.ts +14 -0
  531. package/src/profiler/index.ts +1 -0
  532. package/src/profiler/profiler.ts +125 -0
  533. package/src/promise/running-promise.ts +2 -2
  534. package/src/queue/batch_queue.ts +1 -1
  535. package/src/queue/bounded_serial_queue.ts +4 -1
  536. package/src/queue/semaphore.ts +5 -0
  537. package/src/queue/serial_queue.ts +5 -5
  538. package/src/retry/index.ts +28 -5
  539. package/src/schemas/api.ts +4 -4
  540. package/src/schemas/parse.ts +1 -1
  541. package/src/schemas/schemas.ts +42 -13
  542. package/src/schemas/types.ts +33 -0
  543. package/src/schemas/utils.ts +21 -8
  544. package/src/serialize/buffer_reader.ts +81 -12
  545. package/src/serialize/field_reader.ts +28 -4
  546. package/src/serialize/free_funcs.ts +26 -32
  547. package/src/serialize/serialize.ts +3 -1
  548. package/src/sleep/index.ts +6 -0
  549. package/src/string/index.ts +36 -1
  550. package/src/testing/files/index.ts +7 -3
  551. package/src/testing/formatting.ts +3 -0
  552. package/src/testing/index.ts +1 -0
  553. package/src/timer/date.ts +13 -3
  554. package/src/timer/index.ts +1 -1
  555. package/src/timer/timeout.ts +54 -19
  556. package/src/transport/index.ts +0 -1
  557. package/src/transport/interface/connector.ts +0 -1
  558. package/src/transport/interface/listener.ts +2 -3
  559. package/src/transport/interface/socket.ts +2 -3
  560. package/src/transport/transport_client.ts +3 -4
  561. package/src/transport/transport_server.ts +4 -1
  562. package/src/trees/balanced_merkle_tree_root.ts +68 -0
  563. package/src/trees/hasher.ts +13 -4
  564. package/src/trees/index.ts +4 -2
  565. package/src/trees/indexed_merkle_tree.ts +6 -2
  566. package/src/trees/indexed_merkle_tree_calculator.ts +2 -2
  567. package/src/trees/membership_witness.ts +22 -1
  568. package/src/trees/merkle_tree.ts +4 -1
  569. package/src/trees/merkle_tree_calculator.ts +10 -5
  570. package/src/trees/sibling_path.ts +3 -3
  571. package/src/trees/unbalanced_merkle_tree_calculator.ts +176 -0
  572. package/src/trees/unbalanced_merkle_tree_root.ts +115 -0
  573. package/src/trees/unbalanced_tree_store.ts +62 -3
  574. package/src/types/index.ts +35 -4
  575. package/src/url/index.ts +0 -1
  576. package/dest/crypto/index.d.ts +0 -15
  577. package/dest/crypto/index.d.ts.map +0 -1
  578. package/dest/crypto/index.js +0 -14
  579. package/dest/crypto/pedersen/pedersen.elliptic.d.ts +0 -13
  580. package/dest/crypto/pedersen/pedersen.elliptic.d.ts.map +0 -1
  581. package/dest/crypto/pedersen/pedersen.elliptic.js +0 -582
  582. package/dest/fields/coordinate.d.ts +0 -68
  583. package/dest/fields/coordinate.d.ts.map +0 -1
  584. package/dest/fields/coordinate.js +0 -96
  585. package/dest/fields/fields.d.ts +0 -176
  586. package/dest/fields/fields.d.ts.map +0 -1
  587. package/dest/fields/index.d.ts +0 -4
  588. package/dest/fields/index.d.ts.map +0 -1
  589. package/dest/fields/index.js +0 -3
  590. package/dest/fields/point.d.ts.map +0 -1
  591. package/dest/index.d.ts +0 -31
  592. package/dest/index.d.ts.map +0 -1
  593. package/dest/index.js +0 -31
  594. package/dest/json-rpc/server/telemetry.d.ts +0 -2
  595. package/dest/json-rpc/server/telemetry.d.ts.map +0 -1
  596. package/dest/json-rpc/server/telemetry.js +0 -0
  597. package/dest/log/debug.d.ts +0 -56
  598. package/dest/log/debug.d.ts.map +0 -1
  599. package/dest/log/debug.js +0 -75
  600. package/dest/log/log_history.d.ts +0 -31
  601. package/dest/log/log_history.d.ts.map +0 -1
  602. package/dest/log/log_history.js +0 -38
  603. package/dest/transport/browser/index.d.ts +0 -5
  604. package/dest/transport/browser/index.d.ts.map +0 -1
  605. package/dest/transport/browser/index.js +0 -4
  606. package/dest/transport/browser/message_port_socket.d.ts +0 -37
  607. package/dest/transport/browser/message_port_socket.d.ts.map +0 -1
  608. package/dest/transport/browser/message_port_socket.js +0 -42
  609. package/dest/transport/browser/shared_worker_connector.d.ts +0 -19
  610. package/dest/transport/browser/shared_worker_connector.d.ts.map +0 -1
  611. package/dest/transport/browser/shared_worker_connector.js +0 -19
  612. package/dest/transport/browser/shared_worker_listener.d.ts +0 -38
  613. package/dest/transport/browser/shared_worker_listener.d.ts.map +0 -1
  614. package/dest/transport/browser/shared_worker_listener.js +0 -33
  615. package/dest/transport/browser/worker_connector.d.ts +0 -26
  616. package/dest/transport/browser/worker_connector.d.ts.map +0 -1
  617. package/dest/transport/browser/worker_connector.js +0 -30
  618. package/dest/transport/browser/worker_listener.d.ts +0 -39
  619. package/dest/transport/browser/worker_listener.d.ts.map +0 -1
  620. package/dest/transport/browser/worker_listener.js +0 -35
  621. package/dest/trees/unbalanced_merkle_tree.d.ts +0 -17
  622. package/dest/trees/unbalanced_merkle_tree.d.ts.map +0 -1
  623. package/dest/trees/unbalanced_merkle_tree.js +0 -100
  624. package/dest/wasm/empty_wasi_sdk.d.ts +0 -130
  625. package/dest/wasm/empty_wasi_sdk.d.ts.map +0 -1
  626. package/dest/wasm/empty_wasi_sdk.js +0 -148
  627. package/dest/wasm/index.d.ts +0 -2
  628. package/dest/wasm/index.d.ts.map +0 -1
  629. package/dest/wasm/index.js +0 -1
  630. package/dest/wasm/wasm_module.d.ts +0 -136
  631. package/dest/wasm/wasm_module.d.ts.map +0 -1
  632. package/dest/wasm/wasm_module.js +0 -196
  633. package/dest/worker/browser/index.d.ts +0 -3
  634. package/dest/worker/browser/index.d.ts.map +0 -1
  635. package/dest/worker/browser/index.js +0 -2
  636. package/dest/worker/browser/start_web_module.d.ts +0 -7
  637. package/dest/worker/browser/start_web_module.d.ts.map +0 -1
  638. package/dest/worker/browser/start_web_module.js +0 -27
  639. package/dest/worker/browser/web_data_store.d.ts +0 -24
  640. package/dest/worker/browser/web_data_store.d.ts.map +0 -1
  641. package/dest/worker/browser/web_data_store.js +0 -29
  642. package/dest/worker/browser/web_worker.d.ts +0 -10
  643. package/dest/worker/browser/web_worker.d.ts.map +0 -1
  644. package/dest/worker/browser/web_worker.js +0 -25
  645. package/dest/worker/data_store.d.ts +0 -21
  646. package/dest/worker/data_store.d.ts.map +0 -1
  647. package/dest/worker/data_store.js +0 -3
  648. package/dest/worker/index.d.ts +0 -3
  649. package/dest/worker/index.d.ts.map +0 -1
  650. package/dest/worker/index.js +0 -1
  651. package/dest/worker/node/index.d.ts +0 -3
  652. package/dest/worker/node/index.d.ts.map +0 -1
  653. package/dest/worker/node/index.js +0 -2
  654. package/dest/worker/node/node_data_store.d.ts +0 -13
  655. package/dest/worker/node/node_data_store.d.ts.map +0 -1
  656. package/dest/worker/node/node_data_store.js +0 -20
  657. package/dest/worker/node/node_worker.d.ts +0 -6
  658. package/dest/worker/node/node_worker.d.ts.map +0 -1
  659. package/dest/worker/node/node_worker.js +0 -22
  660. package/dest/worker/node/start_node_module.d.ts +0 -7
  661. package/dest/worker/node/start_node_module.d.ts.map +0 -1
  662. package/dest/worker/node/start_node_module.js +0 -31
  663. package/dest/worker/wasm_worker.d.ts +0 -9
  664. package/dest/worker/wasm_worker.d.ts.map +0 -1
  665. package/dest/worker/wasm_worker.js +0 -3
  666. package/dest/worker/worker_pool.d.ts +0 -40
  667. package/dest/worker/worker_pool.d.ts.map +0 -1
  668. package/dest/worker/worker_pool.js +0 -51
  669. package/src/crypto/index.ts +0 -14
  670. package/src/crypto/pedersen/pedersen.elliptic.ts +0 -584
  671. package/src/fields/coordinate.ts +0 -104
  672. package/src/fields/index.ts +0 -3
  673. package/src/index.ts +0 -31
  674. package/src/json-rpc/server/telemetry.ts +0 -0
  675. package/src/log/debug.ts +0 -104
  676. package/src/log/log_history.ts +0 -44
  677. package/src/transport/browser/index.ts +0 -4
  678. package/src/transport/browser/message_port_socket.ts +0 -48
  679. package/src/transport/browser/shared_worker_connector.ts +0 -21
  680. package/src/transport/browser/shared_worker_listener.ts +0 -53
  681. package/src/transport/browser/worker_connector.ts +0 -30
  682. package/src/transport/browser/worker_listener.ts +0 -54
  683. package/src/trees/unbalanced_merkle_tree.ts +0 -103
  684. package/src/wasm/README.md +0 -6
  685. package/src/wasm/empty_wasi_sdk.ts +0 -166
  686. package/src/wasm/fixtures/gcd.wasm +0 -0
  687. package/src/wasm/fixtures/gcd.wat +0 -27
  688. package/src/wasm/index.ts +0 -1
  689. package/src/wasm/wasm_module.ts +0 -260
  690. package/src/worker/browser/index.ts +0 -2
  691. package/src/worker/browser/start_web_module.ts +0 -24
  692. package/src/worker/browser/web_data_store.ts +0 -38
  693. package/src/worker/browser/web_worker.ts +0 -25
  694. package/src/worker/data_store.ts +0 -19
  695. package/src/worker/index.ts +0 -2
  696. package/src/worker/node/index.ts +0 -2
  697. package/src/worker/node/node_data_store.ts +0 -27
  698. package/src/worker/node/node_worker.ts +0 -23
  699. package/src/worker/node/start_node_module.ts +0 -30
  700. package/src/worker/wasm_worker.ts +0 -7
  701. package/src/worker/worker_pool.ts +0 -73
@@ -0,0 +1,115 @@
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
+
5
+ export const computeUnbalancedShaRoot = (leaves: Buffer[]) => computeUnbalancedMerkleTreeRoot(leaves, shaMerkleHash);
6
+
7
+ export const computeUnbalancedPoseidonRoot = async (leaves: Buffer[]) =>
8
+ await computeUnbalancedMerkleTreeRootAsync(leaves, poseidonMerkleHash);
9
+
10
+ export const computeWonkyShaRoot = (leaves: Buffer[]) => computeWonkyMerkleTreeRoot(leaves);
11
+
12
+ /**
13
+ * Computes the Merkle root of an unbalanced tree.
14
+ *
15
+ * Unlike a balanced Merkle tree, which requires the number of leaves to be a power of two, an unbalanced tree can have
16
+ * any number of leaves.
17
+ *
18
+ * The tree is constructed by iteratively extracting the smallest power-of-two-sized subtrees from **right to left**.
19
+ * For each such subtree, it computes the subtree root and then combines all subtree roots (again from right to left)
20
+ * into a single root using the provided hash function.
21
+ *
22
+ * Note: We need the final tree to be as shallow as possible, to minimize the size of the sibling path required to prove
23
+ * membership of a leaf. Therefor, the computation proceeds from right to left - smaller subtrees must always be
24
+ * combined before being merged with a larger sibling on their left.
25
+ *
26
+ * For example, consider an unbalanced tree made of three subtrees of sizes 2, 4, and 8. If we combine the size-2 and
27
+ * size-4 subtrees first (producing a subtree of depth 3), and then merge it with the size-8 subtree (also depth 3), the
28
+ * resulting tree has a maximum depth of 4.
29
+ *
30
+ * But if we instead combine the size-4 and size-8 subtrees first (depth 4), and then merge with the size-2 subtree
31
+ * (depth 1), the final tree has a depth of 5.
32
+ */
33
+ export function computeUnbalancedMerkleTreeRoot(
34
+ leaves: Buffer[],
35
+ hasher = shaMerkleHash,
36
+ emptyRoot = Buffer.alloc(32),
37
+ ): Buffer {
38
+ if (!leaves.length) {
39
+ return emptyRoot;
40
+ }
41
+
42
+ if (leaves.length === 1) {
43
+ return leaves[0];
44
+ }
45
+
46
+ let numRemainingLeaves = leaves.length;
47
+ let subtreeSize = 1;
48
+ let root: Buffer | undefined;
49
+ while (numRemainingLeaves > 1) {
50
+ if ((numRemainingLeaves & subtreeSize) !== 0) {
51
+ const subtreeLeaves = leaves.slice(numRemainingLeaves - subtreeSize, numRemainingLeaves);
52
+ const subtreeRoot = computeBalancedMerkleTreeRoot(subtreeLeaves, hasher);
53
+ if (!root) {
54
+ root = subtreeRoot;
55
+ } else {
56
+ root = hasher(subtreeRoot, root);
57
+ }
58
+
59
+ numRemainingLeaves -= subtreeSize;
60
+ }
61
+
62
+ subtreeSize *= 2;
63
+ }
64
+
65
+ return root!;
66
+ }
67
+
68
+ export async function computeUnbalancedMerkleTreeRootAsync(
69
+ leaves: Buffer[],
70
+ hasher = poseidonMerkleHash,
71
+ emptyRoot = Buffer.alloc(32),
72
+ ): Promise<Buffer> {
73
+ if (!leaves.length) {
74
+ return emptyRoot;
75
+ }
76
+
77
+ if (leaves.length === 1) {
78
+ return leaves[0];
79
+ }
80
+
81
+ let numRemainingLeaves = leaves.length;
82
+ let subtreeSize = 1;
83
+ let root: Buffer | undefined;
84
+ while (numRemainingLeaves > 1) {
85
+ if ((numRemainingLeaves & subtreeSize) !== 0) {
86
+ const subtreeLeaves = leaves.slice(numRemainingLeaves - subtreeSize, numRemainingLeaves);
87
+ const subtreeRoot = await computeBalancedMerkleTreeRootAsync(subtreeLeaves, hasher);
88
+ if (!root) {
89
+ root = subtreeRoot;
90
+ } else {
91
+ root = await hasher(subtreeRoot, root);
92
+ }
93
+
94
+ numRemainingLeaves -= subtreeSize;
95
+ }
96
+
97
+ subtreeSize *= 2;
98
+ }
99
+
100
+ return root!;
101
+ }
102
+
103
+ // A **wonky** tree is a "compressed" unbalanced Merkle tree.
104
+ // It is constructed in the same way as an unbalanced tree: by first creating the largest possible left subtree, with
105
+ // the remaining leaves forming a right subtree that follows the same process recursively.
106
+ // During construction, leaves equal to `valueToCompress` are skipped (compressed) and do not contribute to the tree.
107
+ export function computeWonkyMerkleTreeRoot(
108
+ leaves: Buffer[],
109
+ valueToCompress = Buffer.alloc(32),
110
+ emptyRoot = Buffer.alloc(32),
111
+ hasher = shaMerkleHash,
112
+ ): Buffer {
113
+ const calculator = UnbalancedMerkleTreeCalculator.create(leaves, valueToCompress, emptyRoot, hasher);
114
+ return calculator.getRoot();
115
+ }
@@ -1,5 +1,3 @@
1
- import { findLeafLevelAndIndex } from './unbalanced_merkle_tree.js';
2
-
3
1
  export interface TreeNodeLocation {
4
2
  level: number;
5
3
  index: number;
@@ -68,7 +66,7 @@ export class UnbalancedTreeStore<T> {
68
66
  return [left, right];
69
67
  }
70
68
 
71
- getLeaf(leafIndex: number) {
69
+ getLeaf(leafIndex: number): T | undefined {
72
70
  const { level, indexAtLevel } = findLeafLevelAndIndex(this.#numLeaves, leafIndex);
73
71
  const location = {
74
72
  level,
@@ -81,6 +79,10 @@ export class UnbalancedTreeStore<T> {
81
79
  return this.#nodeMapping.get(this.#getKey(location))?.value;
82
80
  }
83
81
 
82
+ getRoot(): T | undefined {
83
+ return this.getNode({ level: 0, index: 0 });
84
+ }
85
+
84
86
  getParent(location: TreeNodeLocation): T | undefined {
85
87
  const parentLocation = this.getParentLocation(location);
86
88
  return this.getNode(parentLocation);
@@ -100,3 +102,60 @@ export class UnbalancedTreeStore<T> {
100
102
  return `${location.level}-${location.index}`;
101
103
  }
102
104
  }
105
+
106
+ /// Get the depth of the maximum balanced tree that can be created with the given number of leaves. The subtree will be
107
+ /// the left most subtree of the unbalanced tree with a total of `numLeaves` leaves.
108
+ ///
109
+ /// Note: All the leaves may not be used to form the tree. For example, if there are 5 leaves, the maximum depth is 2,
110
+ /// only 4 leaves are used to form a balanced tree.
111
+ function getMaxBalancedSubtreeDepth(numLeaves: number) {
112
+ return Math.floor(Math.log2(numLeaves));
113
+ }
114
+
115
+ /// Get the maximum depth of an unbalanced tree that can be created with the given number of leaves.
116
+ function getMaxUnbalancedTreeDepth(numLeaves: number) {
117
+ return Math.ceil(Math.log2(numLeaves));
118
+ }
119
+
120
+ function findPosition(
121
+ rootLevel: number,
122
+ leafLevel: number,
123
+ numLeaves: number,
124
+ indexOffset: number,
125
+ targetIndex: number,
126
+ ): { level: number; indexAtLevel: number } {
127
+ if (numLeaves <= 1) {
128
+ // Single leaf.
129
+ return { level: rootLevel, indexAtLevel: indexOffset };
130
+ }
131
+
132
+ // The largest balanced tree that can be created with the given number of leaves.
133
+ const maxBalancedTreeDepth = getMaxBalancedSubtreeDepth(numLeaves);
134
+ const numBalancedLeaves = 2 ** maxBalancedTreeDepth;
135
+ const numRemainingLeaves = numLeaves - numBalancedLeaves;
136
+
137
+ if (targetIndex < numBalancedLeaves) {
138
+ // Target is in the balanced tree.
139
+
140
+ // - If numRemainingLeaves is 0: this balanced tree is grown from the current root.
141
+ // - If numRemainingLeaves is not 0: the remaining leaves will form another tree, which will become the right child of the root.
142
+ // And the balanced tree will be the left child of the root.
143
+ // There will be an extra level between the root of the balanced tree and the current root.
144
+ const extraLevel = numRemainingLeaves ? 1 : 0;
145
+
146
+ return { level: rootLevel + maxBalancedTreeDepth + extraLevel, indexAtLevel: indexOffset + targetIndex };
147
+ } else {
148
+ // Target is in the right branch.
149
+ const rightBranchMaxLevel = getMaxUnbalancedTreeDepth(numRemainingLeaves);
150
+ const shiftedUp = leafLevel - rootLevel - rightBranchMaxLevel - 1;
151
+ const nextLeafLevel = leafLevel - shiftedUp;
152
+ const newIndexOffset = (indexOffset + numBalancedLeaves) >> shiftedUp;
153
+ const shiftedTargetIndex = targetIndex - numBalancedLeaves;
154
+ return findPosition(rootLevel + 1, nextLeafLevel, numRemainingLeaves, newIndexOffset, shiftedTargetIndex);
155
+ }
156
+ }
157
+
158
+ export function findLeafLevelAndIndex(numLeaves: number, leafIndex: number) {
159
+ const maxLevel = getMaxUnbalancedTreeDepth(numLeaves);
160
+ return findPosition(0, maxLevel, numLeaves, 0, leafIndex);
161
+ }
@@ -1,12 +1,10 @@
1
1
  /** Strips methods of a type. */
2
2
  export type FieldsOf<T> = {
3
- // eslint-disable-next-line @typescript-eslint/ban-types
4
3
  [P in keyof T as T[P] extends Function ? never : P]: T[P];
5
4
  };
6
5
 
7
6
  /** Extracts methods of a type. */
8
7
  export type FunctionsOf<T> = {
9
- // eslint-disable-next-line @typescript-eslint/ban-types
10
8
  [P in keyof T as T[P] extends Function ? P : never]: T[P];
11
9
  };
12
10
 
@@ -21,5 +19,38 @@ export function unfreeze<T>(obj: T): Writeable<T> {
21
19
  return obj as Writeable<T>;
22
20
  }
23
21
 
24
- /** Maybe exists, maybe not. */
25
- export type Maybe<T extends object> = T | unknown;
22
+ /** Is defined type guard */
23
+ export function isDefined<T>(value: T | undefined): value is T {
24
+ return value !== undefined;
25
+ }
26
+
27
+ /** Type guard for error classes */
28
+ export function isErrorClass<T extends Error>(value: unknown, errorClass: new (...args: any[]) => T): value is T {
29
+ return value instanceof errorClass || (value instanceof Error && value.name === errorClass.name);
30
+ }
31
+
32
+ /** Resolves a record-like type. Lifted from viem. */
33
+ export type Prettify<T> = {
34
+ [K in keyof T]: T[K];
35
+ } & {};
36
+
37
+ /**
38
+ * Type-safe Event Emitter type
39
+ * @example
40
+ * export type ArchiverEmitter = TypedEventEmitter<{
41
+ * [L2BlockSourceEvents.L2PruneUnproven]: (args: L2BlockSourceEvent) => void;
42
+ * [L2BlockSourceEvents.L2BlockProven]: (args: L2BlockSourceEvent) => void;
43
+ * }>;
44
+ * class Archiver extends (EventEmitter as new () => ArchiverEmitter) {
45
+ * // ...
46
+ * }
47
+ */
48
+ export interface TypedEventEmitter<TEventMap extends { [key in keyof TEventMap]: (...args: any[]) => void }> {
49
+ once<K extends keyof TEventMap>(event: K, listener: TEventMap[K]): this;
50
+ on<K extends keyof TEventMap>(event: K, listener: TEventMap[K]): this;
51
+ off<K extends keyof TEventMap>(event: K, listener: TEventMap[K]): this;
52
+ emit<K extends keyof TEventMap>(event: K, ...args: Parameters<TEventMap[K]>): boolean;
53
+ removeListener<K extends keyof TEventMap>(event: K, listener: TEventMap[K]): this;
54
+ removeAllListeners<K extends keyof TEventMap>(event: K): this;
55
+ // Can add other EventEmitter methods if needed, like once(), listenerCount(), etc.
56
+ }
package/src/url/index.ts CHANGED
@@ -1,4 +1,3 @@
1
- /* eslint-disable */
2
1
  // Copyright (c) 2014 Nathan Rajlich <nathan@tootallnate.net>
3
2
  // Permission is hereby granted, free of charge, to any person obtaining
4
3
  // a copy of this software and associated documentation files (the
@@ -1,15 +0,0 @@
1
- export * from './keccak/index.js';
2
- export * from './random/index.js';
3
- export * from './sha256/index.js';
4
- export * from './sha512/index.js';
5
- export * from './pedersen/index.js';
6
- export * from './poseidon/index.js';
7
- export * from './secp256k1-signer/index.js';
8
- export * from './keys/index.js';
9
- export * from './aes128/index.js';
10
- export * from './grumpkin/index.js';
11
- export * from './ecdsa/index.js';
12
- export * from './secp256k1/index.js';
13
- export * from './schnorr/index.js';
14
- export * from './signature/index.js';
15
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/crypto/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
@@ -1,14 +0,0 @@
1
- export * from './keccak/index.js';
2
- export * from './random/index.js';
3
- export * from './sha256/index.js';
4
- export * from './sha512/index.js';
5
- export * from './pedersen/index.js';
6
- export * from './poseidon/index.js';
7
- export * from './secp256k1-signer/index.js';
8
- export * from './keys/index.js';
9
- export * from './aes128/index.js';
10
- export * from './grumpkin/index.js';
11
- export * from './ecdsa/index.js';
12
- export * from './secp256k1/index.js';
13
- export * from './schnorr/index.js';
14
- export * from './signature/index.js';
@@ -1,13 +0,0 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
- /**
4
- * Create a pedersen commitment (point) from an array of input fields.
5
- * Left pads any inputs less than 32 bytes.
6
- */
7
- export declare function pedersenCommit(input: Buffer[], generatorOffset?: number): Buffer[];
8
- /**
9
- * Create a pedersen hash (field) from an array of input fields.
10
- * Left pads any inputs less than 32 bytes.
11
- */
12
- export declare function pedersenHash(input: Buffer[], index?: number): Buffer;
13
- //# sourceMappingURL=pedersen.elliptic.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pedersen.elliptic.d.ts","sourceRoot":"","sources":["../../../src/crypto/pedersen/pedersen.elliptic.ts"],"names":[],"mappings":";;AA+iBA;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,eAAe,SAAI,YAOlE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,SAAI,UAOtD"}