@aztec/foundation 0.0.0-test.0 → 0.0.1-commit.03f7ef2

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 (669) 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 +1 -1
  5. package/dest/async-map/index.d.ts +1 -1
  6. package/dest/async-pool/index.d.ts +1 -1
  7. package/dest/async-pool/index.d.ts.map +1 -1
  8. package/dest/async-pool/index.js +1 -0
  9. package/dest/bigint/index.d.ts +7 -0
  10. package/dest/bigint/index.d.ts.map +1 -0
  11. package/dest/bigint/index.js +15 -0
  12. package/dest/bigint-buffer/index.d.ts +1 -3
  13. package/dest/bigint-buffer/index.d.ts.map +1 -1
  14. package/dest/branded-types/block_number.d.ts +53 -0
  15. package/dest/branded-types/block_number.d.ts.map +1 -0
  16. package/dest/branded-types/block_number.js +75 -0
  17. package/dest/branded-types/checkpoint_number.d.ts +46 -0
  18. package/dest/branded-types/checkpoint_number.d.ts.map +1 -0
  19. package/dest/branded-types/checkpoint_number.js +68 -0
  20. package/dest/branded-types/epoch.d.ts +42 -0
  21. package/dest/branded-types/epoch.d.ts.map +1 -0
  22. package/dest/branded-types/epoch.js +59 -0
  23. package/dest/branded-types/index.d.ts +6 -0
  24. package/dest/branded-types/index.d.ts.map +1 -0
  25. package/dest/branded-types/index.js +4 -0
  26. package/dest/branded-types/slot.d.ts +42 -0
  27. package/dest/branded-types/slot.d.ts.map +1 -0
  28. package/dest/branded-types/slot.js +59 -0
  29. package/dest/branded-types/types.d.ts +5 -0
  30. package/dest/branded-types/types.d.ts.map +1 -0
  31. package/dest/branded-types/types.js +1 -0
  32. package/dest/buffer/buffer16.d.ts +77 -0
  33. package/dest/buffer/buffer16.d.ts.map +1 -0
  34. package/dest/buffer/buffer16.js +100 -0
  35. package/dest/buffer/buffer32.d.ts +5 -12
  36. package/dest/buffer/buffer32.d.ts.map +1 -1
  37. package/dest/buffer/buffer32.js +7 -7
  38. package/dest/buffer/index.d.ts +2 -1
  39. package/dest/buffer/index.d.ts.map +1 -1
  40. package/dest/buffer/index.js +1 -0
  41. package/dest/collection/array.d.ts +17 -4
  42. package/dest/collection/array.d.ts.map +1 -1
  43. package/dest/collection/array.js +57 -3
  44. package/dest/collection/index.d.ts +1 -1
  45. package/dest/collection/object.d.ts +17 -1
  46. package/dest/collection/object.d.ts.map +1 -1
  47. package/dest/collection/object.js +25 -0
  48. package/dest/committable/committable.d.ts +1 -1
  49. package/dest/committable/committable.d.ts.map +1 -1
  50. package/dest/committable/index.d.ts +1 -1
  51. package/dest/config/env_var.d.ts +2 -2
  52. package/dest/config/env_var.d.ts.map +1 -1
  53. package/dest/config/index.d.ts +57 -2
  54. package/dest/config/index.d.ts.map +1 -1
  55. package/dest/config/index.js +128 -6
  56. package/dest/config/network_config.d.ts +54 -0
  57. package/dest/config/network_config.d.ts.map +1 -0
  58. package/dest/config/network_config.js +11 -0
  59. package/dest/config/network_name.d.ts +3 -0
  60. package/dest/config/network_name.d.ts.map +1 -0
  61. package/dest/config/network_name.js +19 -0
  62. package/dest/config/secret_value.d.ts +28 -0
  63. package/dest/config/secret_value.d.ts.map +1 -0
  64. package/dest/config/secret_value.js +34 -0
  65. package/dest/crypto/aes128/index.d.ts +3 -5
  66. package/dest/crypto/aes128/index.d.ts.map +1 -1
  67. package/dest/crypto/aes128/index.js +19 -6
  68. package/dest/crypto/bls/bn254_keystore.d.ts +296 -0
  69. package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -0
  70. package/dest/crypto/bls/bn254_keystore.js +218 -0
  71. package/dest/crypto/bls/index.d.ts +13 -0
  72. package/dest/crypto/bls/index.d.ts.map +1 -0
  73. package/dest/crypto/bls/index.js +87 -0
  74. package/dest/crypto/bn254/index.d.ts +39 -0
  75. package/dest/crypto/bn254/index.d.ts.map +1 -0
  76. package/dest/crypto/bn254/index.js +56 -0
  77. package/dest/crypto/ecdsa/index.d.ts +3 -3
  78. package/dest/crypto/ecdsa/index.d.ts.map +1 -1
  79. package/dest/crypto/ecdsa/index.js +62 -48
  80. package/dest/crypto/ecdsa/signature.d.ts +3 -14
  81. package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
  82. package/dest/crypto/ecdsa/signature.js +2 -2
  83. package/dest/crypto/grumpkin/index.d.ts +10 -15
  84. package/dest/crypto/grumpkin/index.d.ts.map +1 -1
  85. package/dest/crypto/grumpkin/index.js +61 -55
  86. package/dest/crypto/keccak/index.d.ts +3 -5
  87. package/dest/crypto/keccak/index.d.ts.map +1 -1
  88. package/dest/crypto/keys/index.d.ts +2 -4
  89. package/dest/crypto/keys/index.d.ts.map +1 -1
  90. package/dest/crypto/keys/index.js +8 -5
  91. package/dest/crypto/pedersen/index.d.ts +1 -1
  92. package/dest/crypto/pedersen/pedersen.noble.d.ts +3 -5
  93. package/dest/crypto/pedersen/pedersen.noble.d.ts.map +1 -1
  94. package/dest/crypto/pedersen/pedersen.wasm.d.ts +4 -6
  95. package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
  96. package/dest/crypto/pedersen/pedersen.wasm.js +24 -14
  97. package/dest/crypto/poseidon/index.d.ts +2 -4
  98. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  99. package/dest/crypto/poseidon/index.js +33 -18
  100. package/dest/crypto/random/index.d.ts +2 -4
  101. package/dest/crypto/random/index.d.ts.map +1 -1
  102. package/dest/crypto/random/index.js +2 -34
  103. package/dest/crypto/random/randomness_singleton.d.ts +1 -3
  104. package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
  105. package/dest/crypto/schnorr/index.d.ts +3 -2
  106. package/dest/crypto/schnorr/index.d.ts.map +1 -1
  107. package/dest/crypto/schnorr/index.js +30 -38
  108. package/dest/crypto/schnorr/signature.d.ts +5 -7
  109. package/dest/crypto/schnorr/signature.d.ts.map +1 -1
  110. package/dest/crypto/schnorr/signature.js +2 -2
  111. package/dest/crypto/secp256k1/index.d.ts +5 -7
  112. package/dest/crypto/secp256k1/index.d.ts.map +1 -1
  113. package/dest/crypto/secp256k1/index.js +23 -18
  114. package/dest/crypto/secp256k1-signer/index.d.ts +1 -1
  115. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts +1 -1
  116. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts.map +1 -1
  117. package/dest/crypto/secp256k1-signer/utils.d.ts +56 -5
  118. package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
  119. package/dest/crypto/secp256k1-signer/utils.js +92 -6
  120. package/dest/crypto/serialize.d.ts +5 -7
  121. package/dest/crypto/serialize.d.ts.map +1 -1
  122. package/dest/crypto/sha256/index.d.ts +23 -6
  123. package/dest/crypto/sha256/index.d.ts.map +1 -1
  124. package/dest/crypto/sha256/index.js +43 -1
  125. package/dest/crypto/sha512/index.d.ts +3 -5
  126. package/dest/crypto/sha512/index.d.ts.map +1 -1
  127. package/dest/crypto/sha512/index.js +1 -1
  128. package/dest/crypto/signature/index.d.ts +2 -4
  129. package/dest/crypto/signature/index.d.ts.map +1 -1
  130. package/dest/crypto/sync/index.d.ts +1 -1
  131. package/dest/crypto/sync/index.js +1 -1
  132. package/dest/crypto/sync/pedersen/index.d.ts +4 -6
  133. package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
  134. package/dest/crypto/sync/pedersen/index.js +18 -11
  135. package/dest/crypto/sync/poseidon/index.d.ts +2 -4
  136. package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
  137. package/dest/crypto/sync/poseidon/index.js +28 -13
  138. package/dest/curves/bls12/field.d.ts +148 -0
  139. package/dest/curves/bls12/field.d.ts.map +1 -0
  140. package/dest/curves/bls12/field.js +359 -0
  141. package/dest/curves/bls12/index.d.ts +3 -0
  142. package/dest/curves/bls12/index.d.ts.map +1 -0
  143. package/dest/curves/bls12/index.js +2 -0
  144. package/dest/curves/bls12/point.d.ts +220 -0
  145. package/dest/curves/bls12/point.d.ts.map +1 -0
  146. package/dest/curves/bls12/point.js +398 -0
  147. package/dest/curves/bn254/field.d.ts +179 -0
  148. package/dest/curves/bn254/field.d.ts.map +1 -0
  149. package/dest/{fields/fields.js → curves/bn254/field.js} +82 -60
  150. package/dest/curves/bn254/index.d.ts +3 -0
  151. package/dest/curves/bn254/index.d.ts.map +1 -0
  152. package/dest/curves/bn254/index.js +2 -0
  153. package/dest/curves/bn254/point.d.ts +54 -0
  154. package/dest/curves/bn254/point.d.ts.map +1 -0
  155. package/dest/curves/bn254/point.js +143 -0
  156. package/dest/curves/grumpkin/index.d.ts +10 -0
  157. package/dest/curves/grumpkin/index.d.ts.map +1 -0
  158. package/dest/curves/grumpkin/index.js +3 -0
  159. package/dest/{fields → curves/grumpkin}/point.d.ts +15 -17
  160. package/dest/curves/grumpkin/point.d.ts.map +1 -0
  161. package/dest/{fields → curves/grumpkin}/point.js +27 -10
  162. package/dest/decorators/index.d.ts +1 -1
  163. package/dest/decorators/memoize.d.ts +1 -1
  164. package/dest/decorators/memoize.d.ts.map +1 -1
  165. package/dest/error/index.d.ts +4 -4
  166. package/dest/error/index.d.ts.map +1 -1
  167. package/dest/eth-address/index.d.ts +18 -9
  168. package/dest/eth-address/index.d.ts.map +1 -1
  169. package/dest/eth-address/index.js +28 -1
  170. package/dest/eth-signature/eth_signature.d.ts +17 -18
  171. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  172. package/dest/eth-signature/eth_signature.js +31 -17
  173. package/dest/eth-signature/index.d.ts +1 -1
  174. package/dest/fs/index.d.ts +2 -1
  175. package/dest/fs/index.d.ts.map +1 -1
  176. package/dest/fs/index.js +1 -0
  177. package/dest/fs/run_in_dir.d.ts +1 -1
  178. package/dest/fs/try_rm_dir.d.ts +3 -0
  179. package/dest/fs/try_rm_dir.d.ts.map +1 -0
  180. package/dest/fs/try_rm_dir.js +16 -0
  181. package/dest/iterable/all.d.ts +1 -1
  182. package/dest/iterable/filter.d.ts +1 -1
  183. package/dest/iterable/filter.js +1 -1
  184. package/dest/iterable/index.d.ts +1 -1
  185. package/dest/iterable/isAsyncIt.d.ts +1 -1
  186. package/dest/iterable/map.d.ts +1 -1
  187. package/dest/iterable/map.js +1 -1
  188. package/dest/iterable/peek.d.ts +1 -1
  189. package/dest/iterable/sort.d.ts +1 -1
  190. package/dest/iterable/take.d.ts +1 -1
  191. package/dest/iterable/toArray.d.ts +1 -1
  192. package/dest/iterator/filter.d.ts +3 -0
  193. package/dest/iterator/filter.d.ts.map +1 -0
  194. package/dest/iterator/filter.js +7 -0
  195. package/dest/iterator/index.d.ts +2 -0
  196. package/dest/iterator/index.d.ts.map +1 -0
  197. package/dest/iterator/index.js +1 -0
  198. package/dest/jest/env.js +48 -0
  199. package/dest/jest/setupAfterEnv.js +3 -0
  200. package/dest/json-rpc/client/fetch.d.ts +3 -3
  201. package/dest/json-rpc/client/fetch.d.ts.map +1 -1
  202. package/dest/json-rpc/client/fetch.js +16 -30
  203. package/dest/json-rpc/client/index.d.ts +1 -1
  204. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +10 -4
  205. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
  206. package/dest/json-rpc/client/safe_json_rpc_client.js +173 -13
  207. package/dest/json-rpc/client/undici.d.ts +1 -1
  208. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  209. package/dest/json-rpc/client/undici.js +6 -7
  210. package/dest/json-rpc/convert.d.ts +3 -10
  211. package/dest/json-rpc/convert.d.ts.map +1 -1
  212. package/dest/json-rpc/convert.js +1 -9
  213. package/dest/json-rpc/errors.d.ts +4 -0
  214. package/dest/json-rpc/errors.d.ts.map +1 -0
  215. package/dest/json-rpc/errors.js +6 -0
  216. package/dest/json-rpc/fixtures/class_a.d.ts +4 -2
  217. package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
  218. package/dest/json-rpc/fixtures/class_b.d.ts +4 -2
  219. package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -1
  220. package/dest/json-rpc/fixtures/test_state.d.ts +1 -1
  221. package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
  222. package/dest/json-rpc/index.d.ts +3 -2
  223. package/dest/json-rpc/index.d.ts.map +1 -1
  224. package/dest/json-rpc/index.js +2 -1
  225. package/dest/json-rpc/js_utils.d.ts +1 -1
  226. package/dest/json-rpc/js_utils.d.ts.map +1 -1
  227. package/dest/json-rpc/server/index.d.ts +1 -1
  228. package/dest/json-rpc/server/safe_json_rpc_server.d.ts +22 -23
  229. package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
  230. package/dest/json-rpc/server/safe_json_rpc_server.js +161 -56
  231. package/dest/json-rpc/server/telemetry.d.ts +1 -1
  232. package/dest/json-rpc/test/index.d.ts +1 -1
  233. package/dest/json-rpc/test/integration.d.ts +2 -3
  234. package/dest/json-rpc/test/integration.d.ts.map +1 -1
  235. package/dest/log/console.d.ts +1 -1
  236. package/dest/log/console.d.ts.map +1 -1
  237. package/dest/log/gcloud-logger-config.d.ts +1 -2
  238. package/dest/log/gcloud-logger-config.d.ts.map +1 -1
  239. package/dest/log/gcloud-logger-config.js +1 -9
  240. package/dest/log/index.d.ts +5 -5
  241. package/dest/log/index.d.ts.map +1 -1
  242. package/dest/log/index.js +4 -4
  243. package/dest/log/libp2p_logger.d.ts +1 -1
  244. package/dest/log/libp2p_logger.js +13 -2
  245. package/dest/log/log-filters.d.ts +1 -1
  246. package/dest/log/log-levels.d.ts +1 -1
  247. package/dest/log/log_fn.d.ts +2 -2
  248. package/dest/log/log_fn.d.ts.map +1 -1
  249. package/dest/log/noir_debug_log_util.d.ts +14 -0
  250. package/dest/log/noir_debug_log_util.d.ts.map +1 -0
  251. package/dest/log/noir_debug_log_util.js +14 -0
  252. package/dest/log/pino-logger.d.ts +4 -4
  253. package/dest/log/pino-logger.d.ts.map +1 -1
  254. package/dest/log/pino-logger.js +28 -2
  255. package/dest/message/index.d.ts +1 -1
  256. package/dest/message/index.d.ts.map +1 -1
  257. package/dest/mutex/index.d.ts +1 -1
  258. package/dest/mutex/index.d.ts.map +1 -1
  259. package/dest/mutex/mutex_database.d.ts +1 -1
  260. package/dest/mutex/mutex_database.d.ts.map +1 -1
  261. package/dest/noir/index.d.ts +1 -1
  262. package/dest/noir/noir_package_config.d.ts +9 -9
  263. package/dest/number/index.d.ts +3 -0
  264. package/dest/number/index.d.ts.map +1 -0
  265. package/dest/number/index.js +12 -0
  266. package/dest/profiler/index.d.ts +2 -0
  267. package/dest/profiler/index.d.ts.map +1 -0
  268. package/dest/profiler/index.js +1 -0
  269. package/dest/profiler/profiler.d.ts +8 -0
  270. package/dest/profiler/profiler.d.ts.map +1 -0
  271. package/dest/profiler/profiler.js +97 -0
  272. package/dest/promise/index.d.ts +1 -1
  273. package/dest/promise/running-promise.d.ts +2 -2
  274. package/dest/promise/running-promise.d.ts.map +1 -1
  275. package/dest/promise/running-promise.js +2 -2
  276. package/dest/promise/utils.d.ts +1 -1
  277. package/dest/queue/base_memory_queue.d.ts +1 -1
  278. package/dest/queue/base_memory_queue.d.ts.map +1 -1
  279. package/dest/queue/batch_queue.d.ts +2 -2
  280. package/dest/queue/batch_queue.d.ts.map +1 -1
  281. package/dest/queue/batch_queue.js +1 -1
  282. package/dest/queue/bounded_serial_queue.d.ts +1 -1
  283. package/dest/queue/bounded_serial_queue.d.ts.map +1 -1
  284. package/dest/queue/fifo_memory_queue.d.ts +1 -1
  285. package/dest/queue/fifo_memory_queue.d.ts.map +1 -1
  286. package/dest/queue/index.d.ts +1 -1
  287. package/dest/queue/priority_memory_queue.d.ts +1 -1
  288. package/dest/queue/priority_memory_queue.d.ts.map +1 -1
  289. package/dest/queue/priority_queue.d.ts +1 -1
  290. package/dest/queue/priority_queue.d.ts.map +1 -1
  291. package/dest/queue/semaphore.d.ts +1 -1
  292. package/dest/queue/semaphore.d.ts.map +1 -1
  293. package/dest/queue/serial_queue.d.ts +3 -3
  294. package/dest/queue/serial_queue.d.ts.map +1 -1
  295. package/dest/queue/serial_queue.js +7 -5
  296. package/dest/retry/index.d.ts +4 -3
  297. package/dest/retry/index.d.ts.map +1 -1
  298. package/dest/retry/index.js +2 -2
  299. package/dest/running-promise/index.d.ts +1 -1
  300. package/dest/schemas/api.d.ts +1 -1
  301. package/dest/schemas/api.d.ts.map +1 -1
  302. package/dest/schemas/index.d.ts +1 -1
  303. package/dest/schemas/parse.d.ts +1 -1
  304. package/dest/schemas/parse.js +1 -1
  305. package/dest/schemas/schemas.d.ts +21 -20
  306. package/dest/schemas/schemas.d.ts.map +1 -1
  307. package/dest/schemas/schemas.js +29 -11
  308. package/dest/schemas/types.d.ts +31 -1
  309. package/dest/schemas/types.d.ts.map +1 -1
  310. package/dest/schemas/types.js +25 -1
  311. package/dest/schemas/utils.d.ts +4 -6
  312. package/dest/schemas/utils.d.ts.map +1 -1
  313. package/dest/schemas/utils.js +15 -5
  314. package/dest/serialize/buffer_reader.d.ts +28 -3
  315. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  316. package/dest/serialize/buffer_reader.js +44 -2
  317. package/dest/serialize/field_reader.d.ts +12 -3
  318. package/dest/serialize/field_reader.d.ts.map +1 -1
  319. package/dest/serialize/field_reader.js +19 -2
  320. package/dest/serialize/free_funcs.d.ts +25 -23
  321. package/dest/serialize/free_funcs.d.ts.map +1 -1
  322. package/dest/serialize/free_funcs.js +22 -28
  323. package/dest/serialize/index.d.ts +1 -1
  324. package/dest/serialize/serialize.d.ts +6 -7
  325. package/dest/serialize/serialize.d.ts.map +1 -1
  326. package/dest/serialize/serialize.js +1 -1
  327. package/dest/serialize/type_registry.d.ts +1 -1
  328. package/dest/serialize/type_registry.d.ts.map +1 -1
  329. package/dest/serialize/types.d.ts +1 -1
  330. package/dest/sleep/index.d.ts +3 -1
  331. package/dest/sleep/index.d.ts.map +1 -1
  332. package/dest/sleep/index.js +4 -0
  333. package/dest/string/index.d.ts +8 -3
  334. package/dest/string/index.d.ts.map +1 -1
  335. package/dest/string/index.js +27 -1
  336. package/dest/testing/files/index.d.ts +2 -3
  337. package/dest/testing/files/index.d.ts.map +1 -1
  338. package/dest/testing/files/index.js +3 -3
  339. package/dest/testing/formatting.d.ts +4 -0
  340. package/dest/testing/formatting.d.ts.map +1 -0
  341. package/dest/testing/formatting.js +3 -0
  342. package/dest/testing/index.d.ts +2 -1
  343. package/dest/testing/index.d.ts.map +1 -1
  344. package/dest/testing/index.js +1 -0
  345. package/dest/testing/port_allocator.d.ts +1 -1
  346. package/dest/testing/snapshot_serializer.d.ts +1 -1
  347. package/dest/testing/test_data.d.ts +1 -1
  348. package/dest/timer/date.d.ts +4 -2
  349. package/dest/timer/date.d.ts.map +1 -1
  350. package/dest/timer/date.js +8 -3
  351. package/dest/timer/elapsed.d.ts +1 -1
  352. package/dest/timer/index.d.ts +2 -2
  353. package/dest/timer/index.d.ts.map +1 -1
  354. package/dest/timer/index.js +1 -1
  355. package/dest/timer/timeout.d.ts +19 -6
  356. package/dest/timer/timeout.d.ts.map +1 -1
  357. package/dest/timer/timeout.js +43 -22
  358. package/dest/timer/timer.d.ts +1 -1
  359. package/dest/timer/timer.d.ts.map +1 -1
  360. package/dest/transport/dispatch/create_dispatch_fn.d.ts +1 -1
  361. package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +1 -1
  362. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +1 -1
  363. package/dest/transport/dispatch/messages.d.ts +1 -1
  364. package/dest/transport/index.d.ts +1 -2
  365. package/dest/transport/index.d.ts.map +1 -1
  366. package/dest/transport/index.js +0 -1
  367. package/dest/transport/interface/connector.d.ts +1 -1
  368. package/dest/transport/interface/connector.d.ts.map +1 -1
  369. package/dest/transport/interface/listener.d.ts +1 -2
  370. package/dest/transport/interface/listener.d.ts.map +1 -1
  371. package/dest/transport/interface/socket.d.ts +1 -1
  372. package/dest/transport/interface/socket.d.ts.map +1 -1
  373. package/dest/transport/interface/transferable.d.ts +1 -1
  374. package/dest/transport/node/index.d.ts +1 -1
  375. package/dest/transport/node/node_connector.d.ts +1 -2
  376. package/dest/transport/node/node_connector.d.ts.map +1 -1
  377. package/dest/transport/node/node_connector_socket.d.ts +1 -2
  378. package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
  379. package/dest/transport/node/node_listener.d.ts +1 -2
  380. package/dest/transport/node/node_listener.d.ts.map +1 -1
  381. package/dest/transport/node/node_listener_socket.d.ts +1 -2
  382. package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
  383. package/dest/transport/transport_client.d.ts +1 -2
  384. package/dest/transport/transport_client.d.ts.map +1 -1
  385. package/dest/transport/transport_server.d.ts +1 -10
  386. package/dest/transport/transport_server.d.ts.map +1 -1
  387. package/dest/trees/balanced_merkle_tree.d.ts +22 -0
  388. package/dest/trees/balanced_merkle_tree.d.ts.map +1 -0
  389. package/dest/trees/balanced_merkle_tree.js +66 -0
  390. package/dest/trees/hasher.d.ts +5 -7
  391. package/dest/trees/hasher.d.ts.map +1 -1
  392. package/dest/trees/index.d.ts +3 -1
  393. package/dest/trees/index.d.ts.map +1 -1
  394. package/dest/trees/index.js +2 -0
  395. package/dest/trees/indexed_merkle_tree.d.ts +1 -3
  396. package/dest/trees/indexed_merkle_tree.d.ts.map +1 -1
  397. package/dest/trees/indexed_merkle_tree.js +1 -1
  398. package/dest/trees/indexed_merkle_tree_calculator.d.ts +2 -4
  399. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
  400. package/dest/trees/indexed_tree_leaf.d.ts +1 -3
  401. package/dest/trees/indexed_tree_leaf.d.ts.map +1 -1
  402. package/dest/trees/membership_witness.d.ts +6 -11
  403. package/dest/trees/membership_witness.d.ts.map +1 -1
  404. package/dest/trees/membership_witness.js +14 -1
  405. package/dest/trees/merkle_tree.d.ts +1 -3
  406. package/dest/trees/merkle_tree.d.ts.map +1 -1
  407. package/dest/trees/merkle_tree_calculator.d.ts +2 -4
  408. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  409. package/dest/trees/merkle_tree_calculator.js +1 -1
  410. package/dest/trees/sibling_path.d.ts +6 -42
  411. package/dest/trees/sibling_path.d.ts.map +1 -1
  412. package/dest/trees/sibling_path.js +2 -2
  413. package/dest/trees/unbalanced_merkle_tree.d.ts +23 -10
  414. package/dest/trees/unbalanced_merkle_tree.d.ts.map +1 -1
  415. package/dest/trees/unbalanced_merkle_tree.js +72 -50
  416. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +49 -0
  417. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -0
  418. package/dest/trees/unbalanced_merkle_tree_calculator.js +158 -0
  419. package/dest/trees/unbalanced_tree_store.d.ts +2 -1
  420. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
  421. package/dest/trees/unbalanced_tree_store.js +6 -0
  422. package/dest/types/index.d.ts +28 -3
  423. package/dest/types/index.d.ts.map +1 -1
  424. package/dest/types/index.js +3 -0
  425. package/dest/url/index.d.ts +1 -1
  426. package/dest/url/index.d.ts.map +1 -1
  427. package/dest/url/index.js +1 -1
  428. package/dest/validation/index.d.ts +1 -1
  429. package/package.json +59 -45
  430. package/src/array/array.ts +13 -16
  431. package/src/async-pool/index.ts +1 -0
  432. package/src/bigint/index.ts +20 -0
  433. package/src/branded-types/block_number.ts +112 -0
  434. package/src/branded-types/checkpoint_number.ts +100 -0
  435. package/src/branded-types/epoch.ts +88 -0
  436. package/src/branded-types/index.ts +6 -0
  437. package/src/branded-types/slot.ts +88 -0
  438. package/src/branded-types/types.ts +2 -0
  439. package/src/buffer/buffer16.ts +133 -0
  440. package/src/buffer/buffer32.ts +10 -8
  441. package/src/buffer/index.ts +1 -0
  442. package/src/collection/array.ts +66 -4
  443. package/src/collection/object.ts +37 -0
  444. package/src/config/env_var.ts +164 -55
  445. package/src/config/index.ts +208 -7
  446. package/src/config/network_config.ts +18 -0
  447. package/src/config/network_name.ts +28 -0
  448. package/src/config/secret_value.ts +49 -0
  449. package/src/crypto/aes128/index.ts +19 -10
  450. package/src/crypto/bls/bn254_keystore.ts +287 -0
  451. package/src/crypto/bls/index.ts +77 -0
  452. package/src/crypto/bn254/index.ts +64 -0
  453. package/src/crypto/ecdsa/index.ts +41 -23
  454. package/src/crypto/ecdsa/signature.ts +2 -2
  455. package/src/crypto/grumpkin/index.ts +38 -46
  456. package/src/crypto/keys/index.ts +6 -6
  457. package/src/crypto/pedersen/pedersen.wasm.ts +23 -19
  458. package/src/crypto/poseidon/index.ts +33 -25
  459. package/src/crypto/random/index.ts +2 -40
  460. package/src/crypto/schnorr/index.ts +22 -18
  461. package/src/crypto/schnorr/signature.ts +2 -2
  462. package/src/crypto/secp256k1/index.ts +15 -11
  463. package/src/crypto/secp256k1-signer/utils.ts +120 -7
  464. package/src/crypto/sha256/index.ts +48 -1
  465. package/src/crypto/sha512/index.ts +1 -1
  466. package/src/crypto/signature/index.ts +1 -1
  467. package/src/crypto/sync/index.ts +1 -1
  468. package/src/crypto/sync/pedersen/index.ts +17 -16
  469. package/src/crypto/sync/poseidon/index.ts +28 -23
  470. package/src/curves/bls12/field.ts +463 -0
  471. package/src/curves/bls12/index.ts +2 -0
  472. package/src/curves/bls12/point.ts +450 -0
  473. package/src/{fields/fields.ts → curves/bn254/field.ts} +80 -63
  474. package/src/curves/bn254/index.ts +2 -0
  475. package/src/curves/bn254/point.ts +170 -0
  476. package/src/curves/grumpkin/index.ts +11 -0
  477. package/src/{fields → curves/grumpkin}/point.ts +27 -10
  478. package/src/eth-address/index.ts +35 -3
  479. package/src/eth-signature/eth_signature.ts +44 -22
  480. package/src/fs/index.ts +1 -0
  481. package/src/fs/try_rm_dir.ts +15 -0
  482. package/src/iterable/filter.ts +1 -1
  483. package/src/iterable/map.ts +1 -1
  484. package/src/iterator/filter.ts +11 -0
  485. package/src/iterator/index.ts +1 -0
  486. package/src/jest/env.mjs +52 -0
  487. package/src/jest/setupAfterEnv.mjs +3 -0
  488. package/src/json-rpc/client/fetch.ts +14 -33
  489. package/src/json-rpc/client/safe_json_rpc_client.ts +226 -13
  490. package/src/json-rpc/client/undici.ts +8 -15
  491. package/src/json-rpc/convert.ts +3 -12
  492. package/src/json-rpc/errors.ts +6 -0
  493. package/src/json-rpc/fixtures/class_a.ts +4 -1
  494. package/src/json-rpc/fixtures/class_b.ts +4 -1
  495. package/src/json-rpc/index.ts +2 -1
  496. package/src/json-rpc/server/safe_json_rpc_server.ts +141 -48
  497. package/src/json-rpc/test/integration.ts +1 -1
  498. package/src/log/console.ts +4 -1
  499. package/src/log/gcloud-logger-config.ts +3 -7
  500. package/src/log/index.ts +4 -4
  501. package/src/log/libp2p_logger.ts +21 -2
  502. package/src/log/log_fn.ts +1 -1
  503. package/src/log/noir_debug_log_util.ts +21 -0
  504. package/src/log/pino-logger.ts +33 -2
  505. package/src/message/index.ts +5 -1
  506. package/src/mutex/mutex_database.ts +2 -3
  507. package/src/number/index.ts +14 -0
  508. package/src/profiler/index.ts +1 -0
  509. package/src/profiler/profiler.ts +125 -0
  510. package/src/promise/running-promise.ts +2 -2
  511. package/src/queue/batch_queue.ts +1 -1
  512. package/src/queue/bounded_serial_queue.ts +4 -1
  513. package/src/queue/serial_queue.ts +5 -5
  514. package/src/retry/index.ts +10 -5
  515. package/src/schemas/api.ts +4 -4
  516. package/src/schemas/parse.ts +1 -1
  517. package/src/schemas/schemas.ts +42 -13
  518. package/src/schemas/types.ts +33 -0
  519. package/src/schemas/utils.ts +21 -8
  520. package/src/serialize/buffer_reader.ts +60 -3
  521. package/src/serialize/field_reader.ts +28 -4
  522. package/src/serialize/free_funcs.ts +26 -32
  523. package/src/serialize/serialize.ts +3 -1
  524. package/src/sleep/index.ts +6 -0
  525. package/src/string/index.ts +36 -1
  526. package/src/testing/files/index.ts +7 -3
  527. package/src/testing/formatting.ts +3 -0
  528. package/src/testing/index.ts +1 -0
  529. package/src/timer/date.ts +13 -3
  530. package/src/timer/index.ts +1 -1
  531. package/src/timer/timeout.ts +54 -19
  532. package/src/transport/index.ts +0 -1
  533. package/src/transport/interface/connector.ts +0 -1
  534. package/src/transport/interface/listener.ts +2 -3
  535. package/src/transport/interface/socket.ts +2 -3
  536. package/src/transport/transport_client.ts +3 -4
  537. package/src/transport/transport_server.ts +4 -1
  538. package/src/trees/balanced_merkle_tree.ts +84 -0
  539. package/src/trees/hasher.ts +4 -4
  540. package/src/trees/index.ts +2 -0
  541. package/src/trees/indexed_merkle_tree.ts +6 -2
  542. package/src/trees/indexed_merkle_tree_calculator.ts +2 -2
  543. package/src/trees/membership_witness.ts +14 -1
  544. package/src/trees/merkle_tree.ts +4 -1
  545. package/src/trees/merkle_tree_calculator.ts +10 -5
  546. package/src/trees/sibling_path.ts +2 -2
  547. package/src/trees/unbalanced_merkle_tree.ts +98 -42
  548. package/src/trees/unbalanced_merkle_tree_calculator.ts +187 -0
  549. package/src/trees/unbalanced_tree_store.ts +5 -1
  550. package/src/types/index.ts +30 -4
  551. package/src/url/index.ts +0 -1
  552. package/dest/crypto/index.d.ts +0 -15
  553. package/dest/crypto/index.d.ts.map +0 -1
  554. package/dest/crypto/index.js +0 -14
  555. package/dest/crypto/pedersen/pedersen.elliptic.d.ts +0 -13
  556. package/dest/crypto/pedersen/pedersen.elliptic.d.ts.map +0 -1
  557. package/dest/crypto/pedersen/pedersen.elliptic.js +0 -582
  558. package/dest/fields/coordinate.d.ts +0 -68
  559. package/dest/fields/coordinate.d.ts.map +0 -1
  560. package/dest/fields/coordinate.js +0 -96
  561. package/dest/fields/fields.d.ts +0 -176
  562. package/dest/fields/fields.d.ts.map +0 -1
  563. package/dest/fields/index.d.ts +0 -4
  564. package/dest/fields/index.d.ts.map +0 -1
  565. package/dest/fields/index.js +0 -3
  566. package/dest/fields/point.d.ts.map +0 -1
  567. package/dest/index.d.ts +0 -31
  568. package/dest/index.d.ts.map +0 -1
  569. package/dest/index.js +0 -31
  570. package/dest/log/debug.d.ts +0 -56
  571. package/dest/log/debug.d.ts.map +0 -1
  572. package/dest/log/debug.js +0 -75
  573. package/dest/log/log_history.d.ts +0 -31
  574. package/dest/log/log_history.d.ts.map +0 -1
  575. package/dest/log/log_history.js +0 -38
  576. package/dest/transport/browser/index.d.ts +0 -5
  577. package/dest/transport/browser/index.d.ts.map +0 -1
  578. package/dest/transport/browser/index.js +0 -4
  579. package/dest/transport/browser/message_port_socket.d.ts +0 -37
  580. package/dest/transport/browser/message_port_socket.d.ts.map +0 -1
  581. package/dest/transport/browser/message_port_socket.js +0 -42
  582. package/dest/transport/browser/shared_worker_connector.d.ts +0 -19
  583. package/dest/transport/browser/shared_worker_connector.d.ts.map +0 -1
  584. package/dest/transport/browser/shared_worker_connector.js +0 -19
  585. package/dest/transport/browser/shared_worker_listener.d.ts +0 -38
  586. package/dest/transport/browser/shared_worker_listener.d.ts.map +0 -1
  587. package/dest/transport/browser/shared_worker_listener.js +0 -33
  588. package/dest/transport/browser/worker_connector.d.ts +0 -26
  589. package/dest/transport/browser/worker_connector.d.ts.map +0 -1
  590. package/dest/transport/browser/worker_connector.js +0 -30
  591. package/dest/transport/browser/worker_listener.d.ts +0 -39
  592. package/dest/transport/browser/worker_listener.d.ts.map +0 -1
  593. package/dest/transport/browser/worker_listener.js +0 -35
  594. package/dest/wasm/empty_wasi_sdk.d.ts +0 -130
  595. package/dest/wasm/empty_wasi_sdk.d.ts.map +0 -1
  596. package/dest/wasm/empty_wasi_sdk.js +0 -148
  597. package/dest/wasm/index.d.ts +0 -2
  598. package/dest/wasm/index.d.ts.map +0 -1
  599. package/dest/wasm/index.js +0 -1
  600. package/dest/wasm/wasm_module.d.ts +0 -136
  601. package/dest/wasm/wasm_module.d.ts.map +0 -1
  602. package/dest/wasm/wasm_module.js +0 -196
  603. package/dest/worker/browser/index.d.ts +0 -3
  604. package/dest/worker/browser/index.d.ts.map +0 -1
  605. package/dest/worker/browser/index.js +0 -2
  606. package/dest/worker/browser/start_web_module.d.ts +0 -7
  607. package/dest/worker/browser/start_web_module.d.ts.map +0 -1
  608. package/dest/worker/browser/start_web_module.js +0 -27
  609. package/dest/worker/browser/web_data_store.d.ts +0 -24
  610. package/dest/worker/browser/web_data_store.d.ts.map +0 -1
  611. package/dest/worker/browser/web_data_store.js +0 -29
  612. package/dest/worker/browser/web_worker.d.ts +0 -10
  613. package/dest/worker/browser/web_worker.d.ts.map +0 -1
  614. package/dest/worker/browser/web_worker.js +0 -25
  615. package/dest/worker/data_store.d.ts +0 -21
  616. package/dest/worker/data_store.d.ts.map +0 -1
  617. package/dest/worker/data_store.js +0 -3
  618. package/dest/worker/index.d.ts +0 -3
  619. package/dest/worker/index.d.ts.map +0 -1
  620. package/dest/worker/index.js +0 -1
  621. package/dest/worker/node/index.d.ts +0 -3
  622. package/dest/worker/node/index.d.ts.map +0 -1
  623. package/dest/worker/node/index.js +0 -2
  624. package/dest/worker/node/node_data_store.d.ts +0 -13
  625. package/dest/worker/node/node_data_store.d.ts.map +0 -1
  626. package/dest/worker/node/node_data_store.js +0 -20
  627. package/dest/worker/node/node_worker.d.ts +0 -6
  628. package/dest/worker/node/node_worker.d.ts.map +0 -1
  629. package/dest/worker/node/node_worker.js +0 -22
  630. package/dest/worker/node/start_node_module.d.ts +0 -7
  631. package/dest/worker/node/start_node_module.d.ts.map +0 -1
  632. package/dest/worker/node/start_node_module.js +0 -31
  633. package/dest/worker/wasm_worker.d.ts +0 -9
  634. package/dest/worker/wasm_worker.d.ts.map +0 -1
  635. package/dest/worker/wasm_worker.js +0 -3
  636. package/dest/worker/worker_pool.d.ts +0 -40
  637. package/dest/worker/worker_pool.d.ts.map +0 -1
  638. package/dest/worker/worker_pool.js +0 -51
  639. package/src/crypto/index.ts +0 -14
  640. package/src/crypto/pedersen/pedersen.elliptic.ts +0 -584
  641. package/src/fields/coordinate.ts +0 -104
  642. package/src/fields/index.ts +0 -3
  643. package/src/index.ts +0 -31
  644. package/src/log/debug.ts +0 -104
  645. package/src/log/log_history.ts +0 -44
  646. package/src/transport/browser/index.ts +0 -4
  647. package/src/transport/browser/message_port_socket.ts +0 -48
  648. package/src/transport/browser/shared_worker_connector.ts +0 -21
  649. package/src/transport/browser/shared_worker_listener.ts +0 -53
  650. package/src/transport/browser/worker_connector.ts +0 -30
  651. package/src/transport/browser/worker_listener.ts +0 -54
  652. package/src/wasm/README.md +0 -6
  653. package/src/wasm/empty_wasi_sdk.ts +0 -166
  654. package/src/wasm/fixtures/gcd.wasm +0 -0
  655. package/src/wasm/fixtures/gcd.wat +0 -27
  656. package/src/wasm/index.ts +0 -1
  657. package/src/wasm/wasm_module.ts +0 -260
  658. package/src/worker/browser/index.ts +0 -2
  659. package/src/worker/browser/start_web_module.ts +0 -24
  660. package/src/worker/browser/web_data_store.ts +0 -38
  661. package/src/worker/browser/web_worker.ts +0 -25
  662. package/src/worker/data_store.ts +0 -19
  663. package/src/worker/index.ts +0 -2
  664. package/src/worker/node/index.ts +0 -2
  665. package/src/worker/node/node_data_store.ts +0 -27
  666. package/src/worker/node/node_worker.ts +0 -23
  667. package/src/worker/node/start_node_module.ts +0 -30
  668. package/src/worker/wasm_worker.ts +0 -7
  669. package/src/worker/worker_pool.ts +0 -73
@@ -0,0 +1,22 @@
1
+ import type { AsyncHasher, Hasher } from './hasher.js';
2
+ export declare const shaMerkleHash: Hasher['hash'];
3
+ export declare const pedersenMerkleHash: AsyncHasher['hash'];
4
+ export declare const poseidonMerkleHash: AsyncHasher['hash'];
5
+ export declare const computeBalancedShaRoot: (leaves: Buffer<ArrayBufferLike>[]) => Buffer<ArrayBufferLike>;
6
+ export declare const computeBalancedPedersenRoot: (leaves: Buffer<ArrayBufferLike>[]) => Promise<Buffer<ArrayBufferLike>>;
7
+ export declare const computeBalancedPoseidonRoot: (leaves: Buffer<ArrayBufferLike>[]) => Promise<Buffer<ArrayBufferLike>>;
8
+ /**
9
+ * Computes the Merkle root with the provided leaves **synchronously**.
10
+ * This method uses a synchronous hash function (defaults to `sha256Trunc`).
11
+ *
12
+ * @throws If the number of leaves is not a power of two.
13
+ */
14
+ export declare function computeBalancedMerkleTreeRoot(leaves: Buffer[], hasher?: (lhs: Uint8Array<ArrayBufferLike>, rhs: Uint8Array<ArrayBufferLike>) => Buffer<ArrayBuffer>): Buffer;
15
+ /**
16
+ * Computes the Merkle root with the provided leaves **asynchronously**.
17
+ * This method uses an asynchronous hash function (defaults to `pedersenHash`).
18
+ *
19
+ * @throws If the number of leaves is not a power of two.
20
+ */
21
+ export declare function computeBalancedMerkleTreeRootAsync(leaves: Buffer[], hasher?: (lhs: Uint8Array<ArrayBufferLike>, rhs: Uint8Array<ArrayBufferLike>) => Promise<Buffer<ArrayBuffer>>): Promise<Buffer>;
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFsYW5jZWRfbWVya2xlX3RyZWUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmVlcy9iYWxhbmNlZF9tZXJrbGVfdHJlZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXZELGVBQU8sTUFBTSxhQUFhLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FDeUIsQ0FBQztBQUVuRSxlQUFPLE1BQU0sa0JBQWtCLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FDeUIsQ0FBQztBQUU3RSxlQUFPLE1BQU0sa0JBQWtCLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FDcUIsQ0FBQztBQUV6RSxlQUFPLE1BQU0sc0JBQXNCLGdFQUE4RCxDQUFDO0FBRWxHLGVBQU8sTUFBTSwyQkFBMkIseUVBQzhCLENBQUM7QUFFdkUsZUFBTyxNQUFNLDJCQUEyQix5RUFDOEIsQ0FBQztBQUV2RTs7Ozs7R0FLRztBQUNILHdCQUFnQiw2QkFBNkIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsTUFBTSw4RkFBZ0IsR0FBRyxNQUFNLENBZTlGO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBc0Isa0NBQWtDLENBQ3RELE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFDaEIsTUFBTSx1R0FBcUIsR0FDMUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQWVqQiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balanced_merkle_tree.d.ts","sourceRoot":"","sources":["../../src/trees/balanced_merkle_tree.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEvD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,CACyB,CAAC;AAEnE,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CACyB,CAAC;AAE7E,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CACqB,CAAC;AAEzE,eAAO,MAAM,sBAAsB,gEAA8D,CAAC;AAElG,eAAO,MAAM,2BAA2B,yEAC8B,CAAC;AAEvE,eAAO,MAAM,2BAA2B,yEAC8B,CAAC;AAEvE;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,8FAAgB,GAAG,MAAM,CAe9F;AAED;;;;;GAKG;AACH,wBAAsB,kCAAkC,CACtD,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,uGAAqB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAejB"}
@@ -0,0 +1,66 @@
1
+ import { pedersenHash as pedersenHashArray } from '@aztec/foundation/crypto/pedersen';
2
+ import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
3
+ import { sha256Trunc } from '@aztec/foundation/crypto/sha256';
4
+ export const shaMerkleHash = (left, right)=>sha256Trunc(Buffer.concat([
5
+ left,
6
+ right
7
+ ]));
8
+ export const pedersenMerkleHash = async (left, right)=>(await pedersenHashArray([
9
+ left,
10
+ right
11
+ ])).toBuffer();
12
+ export const poseidonMerkleHash = async (left, right)=>(await poseidon2Hash([
13
+ left,
14
+ right
15
+ ])).toBuffer();
16
+ export const computeBalancedShaRoot = (leaves)=>computeBalancedMerkleTreeRoot(leaves);
17
+ export const computeBalancedPedersenRoot = async (leaves)=>await computeBalancedMerkleTreeRootAsync(leaves, pedersenMerkleHash);
18
+ export const computeBalancedPoseidonRoot = async (leaves)=>await computeBalancedMerkleTreeRootAsync(leaves, poseidonMerkleHash);
19
+ /**
20
+ * Computes the Merkle root with the provided leaves **synchronously**.
21
+ * This method uses a synchronous hash function (defaults to `sha256Trunc`).
22
+ *
23
+ * @throws If the number of leaves is not a power of two.
24
+ */ export function computeBalancedMerkleTreeRoot(leaves, hasher = shaMerkleHash) {
25
+ const height = getTreeHeight(leaves);
26
+ let nodes = leaves.slice();
27
+ for(let i = 0; i < height; ++i){
28
+ let j = 0;
29
+ for(; j < nodes.length / 2; ++j){
30
+ const l = nodes[j * 2];
31
+ const r = nodes[j * 2 + 1];
32
+ nodes[j] = hasher(l, r);
33
+ }
34
+ nodes = nodes.slice(0, j);
35
+ }
36
+ return nodes[0];
37
+ }
38
+ /**
39
+ * Computes the Merkle root with the provided leaves **asynchronously**.
40
+ * This method uses an asynchronous hash function (defaults to `pedersenHash`).
41
+ *
42
+ * @throws If the number of leaves is not a power of two.
43
+ */ export async function computeBalancedMerkleTreeRootAsync(leaves, hasher = poseidonMerkleHash) {
44
+ const height = getTreeHeight(leaves);
45
+ let nodes = leaves.slice();
46
+ for(let i = 0; i < height; ++i){
47
+ let j = 0;
48
+ for(; j < nodes.length / 2; ++j){
49
+ const l = nodes[j * 2];
50
+ const r = nodes[j * 2 + 1];
51
+ nodes[j] = await hasher(l, r);
52
+ }
53
+ nodes = nodes.slice(0, j);
54
+ }
55
+ return nodes[0];
56
+ }
57
+ function getTreeHeight(leaves) {
58
+ if (leaves.length === 0) {
59
+ throw new Error('Cannot compute a Merkle root with no leaves');
60
+ }
61
+ const height = Math.log2(leaves.length);
62
+ if (!Number.isInteger(height)) {
63
+ throw new Error('Cannot compute a Merkle root with a non-power-of-two number of leaves');
64
+ }
65
+ return height;
66
+ }
@@ -1,5 +1,3 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  /**
4
2
  * Defines hasher interface used by Merkle trees.
5
3
  */
@@ -10,13 +8,13 @@ export interface Hasher {
10
8
  * @param rhs - The second array.
11
9
  * @returns The new 32-byte hash.
12
10
  */
13
- hash(lhs: Uint8Array, rhs: Uint8Array): Buffer;
11
+ hash(lhs: Uint8Array, rhs: Uint8Array): Buffer<ArrayBuffer>;
14
12
  /**
15
13
  * Hashes an array of buffers.
16
14
  * @param inputs - The array of buffers to hash.
17
15
  * @returns The resulting 32-byte hash.
18
16
  */
19
- hashInputs(inputs: Buffer[]): Buffer;
17
+ hashInputs(inputs: Buffer[]): Buffer<ArrayBuffer>;
20
18
  }
21
19
  /**
22
20
  * Defines an async hasher interface used by Merkle trees.
@@ -28,12 +26,12 @@ export interface AsyncHasher {
28
26
  * @param rhs - The second array.
29
27
  * @returns The new 32-byte hash.
30
28
  */
31
- hash(lhs: Uint8Array, rhs: Uint8Array): Promise<Buffer>;
29
+ hash(lhs: Uint8Array, rhs: Uint8Array): Promise<Buffer<ArrayBuffer>>;
32
30
  /**
33
31
  * Hashes an array of buffers.
34
32
  * @param inputs - The array of buffers to hash.
35
33
  * @returns The resulting 32-byte hash.
36
34
  */
37
- hashInputs(inputs: Buffer[]): Promise<Buffer>;
35
+ hashInputs(inputs: Buffer[]): Promise<Buffer<ArrayBuffer>>;
38
36
  }
39
- //# sourceMappingURL=hasher.d.ts.map
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzaGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJlZXMvaGFzaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxXQUFXLE1BQU07SUFDckI7Ozs7O09BS0c7SUFDSCxJQUFJLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsVUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUU1RDs7OztPQUlHO0lBQ0gsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7Q0FDbkQ7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyxXQUFXO0lBQzFCOzs7OztPQUtHO0lBQ0gsSUFBSSxDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFFckU7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0NBQzVEIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"hasher.d.ts","sourceRoot":"","sources":["../../src/trees/hasher.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;;;;OAKG;IACH,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAAC;IAE/C;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAExD;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/C"}
1
+ {"version":3,"file":"hasher.d.ts","sourceRoot":"","sources":["../../src/trees/hasher.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;;;;OAKG;IACH,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAE5D;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAErE;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;CAC5D"}
@@ -1,3 +1,4 @@
1
+ export * from './balanced_merkle_tree.js';
1
2
  export * from './unbalanced_merkle_tree.js';
2
3
  export * from './unbalanced_tree_store.js';
3
4
  export * from './merkle_tree_calculator.js';
@@ -8,4 +9,5 @@ export * from './sibling_path.js';
8
9
  export * from './membership_witness.js';
9
10
  export * from './hasher.js';
10
11
  export * from './indexed_tree_leaf.js';
11
- //# sourceMappingURL=index.d.ts.map
12
+ export * from './unbalanced_merkle_tree_calculator.js';
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmVlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsd0NBQXdDLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/trees/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/trees/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,wCAAwC,CAAC"}
@@ -1,3 +1,4 @@
1
+ export * from './balanced_merkle_tree.js';
1
2
  export * from './unbalanced_merkle_tree.js';
2
3
  export * from './unbalanced_tree_store.js';
3
4
  export * from './merkle_tree_calculator.js';
@@ -8,3 +9,4 @@ export * from './sibling_path.js';
8
9
  export * from './membership_witness.js';
9
10
  export * from './hasher.js';
10
11
  export * from './indexed_tree_leaf.js';
12
+ export * from './unbalanced_merkle_tree_calculator.js';
@@ -1,5 +1,3 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  import type { IndexedTreeLeafPreimage } from './indexed_tree_leaf.js';
4
2
  import { MembershipWitness } from './membership_witness.js';
5
3
  import { MerkleTree } from './merkle_tree.js';
@@ -10,4 +8,4 @@ export declare class IndexedMerkleTree<T extends IndexedTreeLeafPreimage, N exte
10
8
  getLowLeaf(value: bigint): T;
11
9
  getMembershipWitness(leafIndexOrLeaf: number | Buffer): MembershipWitness<N>;
12
10
  }
13
- //# sourceMappingURL=indexed_merkle_tree.d.ts.map
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhlZF9tZXJrbGVfdHJlZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RyZWVzL2luZGV4ZWRfbWVya2xlX3RyZWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFOUMseUlBQXlJO0FBQ3pJLHFCQUFhLGlCQUFpQixDQUFDLENBQUMsU0FBUyx1QkFBdUIsRUFBRSxDQUFDLFNBQVMsTUFBTSxDQUFFLFNBQVEsVUFBVTthQUlsRixhQUFhLEVBQUUsQ0FBQyxFQUFFO0lBSHBDLFlBQ0UsTUFBTSxFQUFFLENBQUMsRUFDVCxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQ0MsYUFBYSxFQUFFLENBQUMsRUFBRSxFQUduQztJQUVNLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FZbEM7SUFFTSxvQkFBb0IsQ0FBQyxlQUFlLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FRbEY7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"indexed_merkle_tree.d.ts","sourceRoot":"","sources":["../../src/trees/indexed_merkle_tree.ts"],"names":[],"mappings":";;AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,yIAAyI;AACzI,qBAAa,iBAAiB,CAAC,CAAC,SAAS,uBAAuB,EAAE,CAAC,SAAS,MAAM,CAAE,SAAQ,UAAU;aAC5C,aAAa,EAAE,CAAC,EAAE;gBAA9D,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAkB,aAAa,EAAE,CAAC,EAAE;IAInE,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC;IAc5B,oBAAoB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC;CASpF"}
1
+ {"version":3,"file":"indexed_merkle_tree.d.ts","sourceRoot":"","sources":["../../src/trees/indexed_merkle_tree.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,yIAAyI;AACzI,qBAAa,iBAAiB,CAAC,CAAC,SAAS,uBAAuB,EAAE,CAAC,SAAS,MAAM,CAAE,SAAQ,UAAU;aAIlF,aAAa,EAAE,CAAC,EAAE;IAHpC,YACE,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,MAAM,EAAE,EACC,aAAa,EAAE,CAAC,EAAE,EAGnC;IAEM,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAYlC;IAEM,oBAAoB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAQlF;CACF"}
@@ -1,4 +1,4 @@
1
- import { Fr } from '../fields/index.js';
1
+ import { Fr } from '../curves/bn254/index.js';
2
2
  import { assertLength } from '../serialize/index.js';
3
3
  import { MembershipWitness } from './membership_witness.js';
4
4
  import { MerkleTree } from './merkle_tree.js';
@@ -1,5 +1,3 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  import type { IndexedTreeLeafPreimage } from '@aztec/foundation/trees';
4
2
  import type { AsyncHasher } from './hasher.js';
5
3
  import { IndexedMerkleTree } from './indexed_merkle_tree.js';
@@ -15,9 +13,9 @@ export declare class IndexedMerkleTreeCalculator<T extends IndexedTreeLeafPreima
15
13
  private hasher;
16
14
  private factory;
17
15
  private constructor();
18
- static create<T extends IndexedTreeLeafPreimage, N extends number>(height: N, hasher: AsyncHasher, factory: LeafPreimageFactory<T>, zeroLeaf?: Buffer): Promise<IndexedMerkleTreeCalculator<T, N>>;
16
+ static create<T extends IndexedTreeLeafPreimage, N extends number>(height: N, hasher: AsyncHasher, factory: LeafPreimageFactory<T>, zeroLeaf?: Buffer<ArrayBuffer>): Promise<IndexedMerkleTreeCalculator<T, N>>;
19
17
  computeTree(values: Buffer[]): Promise<IndexedMerkleTree<T, N>>;
20
18
  computeTreeRoot(leaves?: Buffer[]): Promise<Buffer>;
21
19
  }
22
20
  export {};
23
- //# sourceMappingURL=indexed_merkle_tree_calculator.d.ts.map
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhlZF9tZXJrbGVfdHJlZV9jYWxjdWxhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJlZXMvaW5kZXhlZF9tZXJrbGVfdHJlZV9jYWxjdWxhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdkUsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTdELFVBQVUsbUJBQW1CLENBQUMsQ0FBQyxTQUFTLHVCQUF1QjtJQUM3RCxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUM7Q0FDL0I7QUFFRDs7R0FFRztBQUNILHFCQUFhLDJCQUEyQixDQUFDLENBQUMsU0FBUyx1QkFBdUIsRUFBRSxDQUFDLFNBQVMsTUFBTTtJQUV4RixPQUFPLENBQUMsTUFBTTtJQUNkLE9BQU8sQ0FBQyxVQUFVO0lBQ2xCLE9BQU8sQ0FBQyxNQUFNO0lBQ2QsT0FBTyxDQUFDLE9BQU87SUFKakIsT0FBTyxlQUtIO0lBRUosT0FBYSxNQUFNLENBQUMsQ0FBQyxTQUFTLHVCQUF1QixFQUFFLENBQUMsU0FBUyxNQUFNLEVBQ3JFLE1BQU0sRUFBRSxDQUFDLEVBQ1QsTUFBTSxFQUFFLFdBQVcsRUFDbkIsT0FBTyxFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxFQUMvQixRQUFRLHNCQUFtQiw4Q0FPNUI7SUFFSyxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FxQ3BFO0lBRUssZUFBZSxDQUFDLE1BQU0sR0FBRSxNQUFNLEVBQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBa0I1RDtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"indexed_merkle_tree_calculator.d.ts","sourceRoot":"","sources":["../../src/trees/indexed_merkle_tree_calculator.ts"],"names":[],"mappings":";;AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,UAAU,mBAAmB,CAAC,CAAC,SAAS,uBAAuB;IAC7D,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,2BAA2B,CAAC,CAAC,SAAS,uBAAuB,EAAE,CAAC,SAAS,MAAM;IAExF,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IAJjB,OAAO;WAOM,MAAM,CAAC,CAAC,SAAS,uBAAuB,EAAE,CAAC,SAAS,MAAM,EACrE,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAC/B,QAAQ,SAAmB;IASvB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAuC/D,eAAe,CAAC,MAAM,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;CAmB9D"}
1
+ {"version":3,"file":"indexed_merkle_tree_calculator.d.ts","sourceRoot":"","sources":["../../src/trees/indexed_merkle_tree_calculator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,UAAU,mBAAmB,CAAC,CAAC,SAAS,uBAAuB;IAC7D,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,2BAA2B,CAAC,CAAC,SAAS,uBAAuB,EAAE,CAAC,SAAS,MAAM;IAExF,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IAJjB,OAAO,eAKH;IAEJ,OAAa,MAAM,CAAC,CAAC,SAAS,uBAAuB,EAAE,CAAC,SAAS,MAAM,EACrE,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAC/B,QAAQ,sBAAmB,8CAO5B;IAEK,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAqCpE;IAEK,eAAe,CAAC,MAAM,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAkB5D;CACF"}
@@ -1,5 +1,3 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  /**
4
2
  * A leaf of an indexed merkle tree.
5
3
  */
@@ -54,4 +52,4 @@ export interface IndexedTreeLeafPreimage extends TreeLeafPreimage {
54
52
  */
55
53
  getNextIndex(): bigint;
56
54
  }
57
- //# sourceMappingURL=indexed_tree_leaf.d.ts.map
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhlZF90cmVlX2xlYWYuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmVlcy9pbmRleGVkX3RyZWVfbGVhZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sV0FBVyxlQUFlO0lBQzlCOztPQUVHO0lBQ0gsTUFBTSxJQUFJLE1BQU0sQ0FBQztJQUNqQjs7T0FFRztJQUNILFFBQVEsSUFBSSxNQUFNLENBQUM7SUFDbkI7O09BRUc7SUFDSCxPQUFPLElBQUksT0FBTyxDQUFDO0lBQ25COzs7O09BSUc7SUFDSCxRQUFRLENBQUMsT0FBTyxFQUFFLGVBQWUsR0FBRyxlQUFlLENBQUM7Q0FDckQ7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyxnQkFBZ0I7SUFDL0I7O09BRUc7SUFDSCxNQUFNLElBQUksTUFBTSxDQUFDO0lBQ2pCOztPQUVHO0lBQ0gsTUFBTSxJQUFJLGVBQWUsQ0FBQztJQUMxQjs7T0FFRztJQUNILFFBQVEsSUFBSSxNQUFNLENBQUM7SUFDbkI7O09BRUc7SUFDSCxZQUFZLElBQUksTUFBTSxFQUFFLENBQUM7Q0FDMUI7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyx1QkFBd0IsU0FBUSxnQkFBZ0I7SUFDL0QsVUFBVSxJQUFJLE1BQU0sQ0FBQztJQUNyQjs7T0FFRztJQUNILFlBQVksSUFBSSxNQUFNLENBQUM7Q0FDeEIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"indexed_tree_leaf.d.ts","sourceRoot":"","sources":["../../src/trees/indexed_tree_leaf.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC;IACjB;;OAEG;IACH,QAAQ,IAAI,MAAM,CAAC;IACnB;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,eAAe,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC;IACjB;;OAEG;IACH,MAAM,IAAI,eAAe,CAAC;IAC1B;;OAEG;IACH,QAAQ,IAAI,MAAM,CAAC;IACnB;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAC/D,UAAU,IAAI,MAAM,CAAC;IACrB;;OAEG;IACH,YAAY,IAAI,MAAM,CAAC;CACxB"}
1
+ {"version":3,"file":"indexed_tree_leaf.d.ts","sourceRoot":"","sources":["../../src/trees/indexed_tree_leaf.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC;IACjB;;OAEG;IACH,QAAQ,IAAI,MAAM,CAAC;IACnB;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,eAAe,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC;IACjB;;OAEG;IACH,MAAM,IAAI,eAAe,CAAC;IAC1B;;OAEG;IACH,QAAQ,IAAI,MAAM,CAAC;IACnB;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAC/D,UAAU,IAAI,MAAM,CAAC;IACrB;;OAEG;IACH,YAAY,IAAI,MAAM,CAAC;CACxB"}
@@ -1,19 +1,11 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
- import { Fr } from '../fields/fields.js';
1
+ import { Fr } from '../curves/bn254/field.js';
4
2
  import { BufferReader, type Tuple } from '../serialize/index.js';
5
3
  import type { SiblingPath } from './sibling_path.js';
6
4
  /**
7
5
  * Contains information which can be used to prove that a leaf is a member of a Merkle tree.
8
6
  */
9
7
  export declare class MembershipWitness<N extends number> {
10
- /**
11
- * Index of a leaf in the Merkle tree.
12
- */
13
8
  leafIndex: bigint;
14
- /**
15
- * Sibling path of the leaf in the Merkle tree.
16
- */
17
9
  siblingPath: Tuple<Fr, N>;
18
10
  constructor(
19
11
  /**
@@ -28,7 +20,10 @@ export declare class MembershipWitness<N extends number> {
28
20
  * Sibling path of the leaf in the Merkle tree.
29
21
  */
30
22
  siblingPath: Tuple<Fr, N>);
31
- toBuffer(): Buffer;
23
+ toBuffer(): Buffer<ArrayBufferLike>;
24
+ toJSON(): Buffer<ArrayBufferLike>;
25
+ toFields(): Fr[];
26
+ static schemaFor<N extends number>(size: N): import("zod").ZodEffects<import("../schemas/types.js").ZodFor<Buffer<ArrayBufferLike>>, MembershipWitness<N>, any>;
32
27
  /**
33
28
  * Creates a random membership witness. Used for testing purposes.
34
29
  * @param pathSize - Number of fields in the sibling path.
@@ -59,4 +54,4 @@ export declare class MembershipWitness<N extends number> {
59
54
  };
60
55
  static fromSiblingPath<N extends number>(leafIndex: bigint, siblingPath: SiblingPath<N>): MembershipWitness<N>;
61
56
  }
62
- //# sourceMappingURL=membership_witness.d.ts.map
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVyc2hpcF93aXRuZXNzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJlZXMvbWVtYmVyc2hpcF93aXRuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssS0FBSyxFQUFxQixNQUFNLHVCQUF1QixDQUFDO0FBQ3BGLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXJEOztHQUVHO0FBQ0gscUJBQWEsaUJBQWlCLENBQUMsQ0FBQyxTQUFTLE1BQU07SUFTcEMsU0FBUyxFQUFFLE1BQU07SUFJakIsV0FBVyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBWmxDO0lBQ0U7O09BRUc7SUFDSCxRQUFRLEVBQUUsQ0FBQztJQUNYOztPQUVHO0lBQ0ksU0FBUyxFQUFFLE1BQU07SUFDeEI7O09BRUc7SUFDSSxXQUFXLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFHakM7SUFFRCxRQUFRLDRCQUVQO0lBRUQsTUFBTSw0QkFFTDtJQUVELFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FFZjtJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxzSEFFekM7SUFFRDs7OztPQUlHO0lBQ0gsT0FBYyxNQUFNLENBQUMsQ0FBQyxTQUFTLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQyx3QkFRakQ7SUFFRDs7Ozs7T0FLRztJQUNILE9BQWMsS0FBSyxDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxTQUFTLFNBQUssR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FLdkY7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FNL0c7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBS2hHO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxTQUFTLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHO1FBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQUUsQ0FTbEg7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUU3RztDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"membership_witness.d.ts","sourceRoot":"","sources":["../../src/trees/membership_witness.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAqB,MAAM,uBAAuB,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,qBAAa,iBAAiB,CAAC,CAAC,SAAS,MAAM;IAM3C;;OAEG;IACI,SAAS,EAAE,MAAM;IACxB;;OAEG;IACI,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;;IAXhC;;OAEG;IACH,QAAQ,EAAE,CAAC;IACX;;OAEG;IACI,SAAS,EAAE,MAAM;IACxB;;OAEG;IACI,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAKlC,QAAQ;IAIR;;;;OAIG;WACW,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC;IAUlD;;;;;OAKG;WACW,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,SAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAOxF,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAQhH;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,IAAI,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAOjG;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG;QAAE,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;KAAE;IAWnH,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;CAG/G"}
1
+ {"version":3,"file":"membership_witness.d.ts","sourceRoot":"","sources":["../../src/trees/membership_witness.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAqB,MAAM,uBAAuB,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,qBAAa,iBAAiB,CAAC,CAAC,SAAS,MAAM;IASpC,SAAS,EAAE,MAAM;IAIjB,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAZlC;IACE;;OAEG;IACH,QAAQ,EAAE,CAAC;IACX;;OAEG;IACI,SAAS,EAAE,MAAM;IACxB;;OAEG;IACI,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAGjC;IAED,QAAQ,4BAEP;IAED,MAAM,4BAEL;IAED,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,sHAEzC;IAED;;;;OAIG;IACH,OAAc,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,wBAQjD;IAED;;;;;OAKG;IACH,OAAc,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,SAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAKvF;IAED,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAM/G;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,IAAI,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAKhG;IAED;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG;QAAE,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;KAAE,CASlH;IAED,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAE7G;CACF"}
@@ -1,6 +1,7 @@
1
1
  import { assertMemberLength } from '../array/array.js';
2
2
  import { toBigIntBE, toBufferBE } from '../bigint-buffer/index.js';
3
- import { Fr } from '../fields/fields.js';
3
+ import { Fr } from '../curves/bn254/field.js';
4
+ import { schemas } from '../schemas/schemas.js';
4
5
  import { BufferReader, serializeToBuffer } from '../serialize/index.js';
5
6
  /**
6
7
  * Contains information which can be used to prove that a leaf is a member of a Merkle tree.
@@ -21,6 +22,18 @@ import { BufferReader, serializeToBuffer } from '../serialize/index.js';
21
22
  toBuffer() {
22
23
  return serializeToBuffer(toBufferBE(this.leafIndex, 32), ...this.siblingPath);
23
24
  }
25
+ toJSON() {
26
+ return this.toBuffer();
27
+ }
28
+ toFields() {
29
+ return [
30
+ new Fr(this.leafIndex),
31
+ ...this.siblingPath
32
+ ];
33
+ }
34
+ static schemaFor(size) {
35
+ return schemas.Buffer.transform((b)=>MembershipWitness.fromBuffer(b, size));
36
+ }
24
37
  /**
25
38
  * Creates a random membership witness. Used for testing purposes.
26
39
  * @param pathSize - Number of fields in the sibling path.
@@ -1,5 +1,3 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  /** A simple immutable Merkle tree container. Use a MerkleTreeCalculator to create a new instance from a set of leaves. */
4
2
  export declare class MerkleTree {
5
3
  readonly height: number;
@@ -15,4 +13,4 @@ export declare class MerkleTree {
15
13
  /** Returns a nice string representation of the tree, useful for debugging purposes. */
16
14
  drawTree(elemSize?: number): string;
17
15
  }
18
- //# sourceMappingURL=merkle_tree.d.ts.map
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmVlcy9tZXJrbGVfdHJlZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwSEFBMEg7QUFDMUgscUJBQWEsVUFBVTthQUVILE1BQU0sRUFBRSxNQUFNO2FBQ2QsS0FBSyxFQUFFLE1BQU0sRUFBRTtJQUZqQyxZQUNrQixNQUFNLEVBQUUsTUFBTSxFQUNkLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFNaEM7SUFFRCxJQUFJLElBQUksSUFBSSxNQUFNLENBRWpCO0lBRUQsSUFBSSxNQUFNLElBQUksTUFBTSxFQUFFLENBRXJCO0lBRUQsd0ZBQXdGO0lBQ2pGLGNBQWMsQ0FBQyxTQUFTLEVBQUUsTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQzVDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBd0I5QyxrREFBa0Q7SUFDM0MsUUFBUSxDQUFDLE9BQU8sRUFBRSxNQUFNLFVBRTlCO0lBRUQsdUZBQXVGO0lBQ2hGLFFBQVEsQ0FBQyxRQUFRLFNBQUksVUFxQjNCO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"merkle_tree.d.ts","sourceRoot":"","sources":["../../src/trees/merkle_tree.ts"],"names":[],"mappings":";;AAAA,0HAA0H;AAC1H,qBAAa,UAAU;aACO,MAAM,EAAE,MAAM;aAAkB,KAAK,EAAE,MAAM,EAAE;gBAA/C,MAAM,EAAE,MAAM,EAAkB,KAAK,EAAE,MAAM,EAAE;IAO3E,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,MAAM,IAAI,MAAM,EAAE,CAErB;IAED,wFAAwF;IACjF,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAC3C,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAwB7C,kDAAkD;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM;IAI/B,uFAAuF;IAChF,QAAQ,CAAC,QAAQ,SAAI;CAsB7B"}
1
+ {"version":3,"file":"merkle_tree.d.ts","sourceRoot":"","sources":["../../src/trees/merkle_tree.ts"],"names":[],"mappings":"AAAA,0HAA0H;AAC1H,qBAAa,UAAU;aAEH,MAAM,EAAE,MAAM;aACd,KAAK,EAAE,MAAM,EAAE;IAFjC,YACkB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EAMhC;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,MAAM,IAAI,MAAM,EAAE,CAErB;IAED,wFAAwF;IACjF,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5C,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAwB9C,kDAAkD;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,UAE9B;IAED,uFAAuF;IAChF,QAAQ,CAAC,QAAQ,SAAI,UAqB3B;CACF"}
@@ -1,5 +1,3 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  import { MerkleTree } from './merkle_tree.js';
4
2
  /**
5
3
  * Merkle tree calculator.
@@ -9,8 +7,8 @@ export declare class MerkleTreeCalculator {
9
7
  private zeroHashes;
10
8
  private hasher;
11
9
  private constructor();
12
- static create(height: number, zeroLeaf?: Buffer, hasher?: (left: Buffer, right: Buffer) => Promise<Buffer>): Promise<MerkleTreeCalculator>;
10
+ static create(height: number, zeroLeaf?: Buffer, hasher?: (left: Buffer<ArrayBufferLike>, right: Buffer<ArrayBufferLike>) => Promise<Buffer<ArrayBuffer>>): Promise<MerkleTreeCalculator>;
13
11
  computeTree(leaves?: Buffer[]): Promise<MerkleTree>;
14
12
  computeTreeRoot(leaves?: Buffer[]): Promise<Buffer>;
15
13
  }
16
- //# sourceMappingURL=merkle_tree_calculator.d.ts.map
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfY2FsY3VsYXRvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RyZWVzL21lcmtsZV90cmVlX2NhbGN1bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTlDOztHQUVHO0FBQ0gscUJBQWEsb0JBQW9CO0lBRTdCLE9BQU8sQ0FBQyxNQUFNO0lBQ2QsT0FBTyxDQUFDLFVBQVU7SUFDbEIsT0FBTyxDQUFDLE1BQU07SUFIaEIsT0FBTyxlQU1OO0lBRUQsT0FBYSxNQUFNLENBQ2pCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsUUFBUSxHQUFFLE1BQXlCLEVBQ25DLE1BQU0sa0dBQ2lFLGlDQU94RTtJQUVLLFdBQVcsQ0FBQyxNQUFNLEdBQUUsTUFBTSxFQUFPLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQW9CNUQ7SUFFSyxlQUFlLENBQUMsTUFBTSxHQUFFLE1BQU0sRUFBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FrQjVEO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"merkle_tree_calculator.d.ts","sourceRoot":"","sources":["../../src/trees/merkle_tree_calculator.ts"],"names":[],"mappings":";;AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,qBAAa,oBAAoB;IACX,OAAO,CAAC,MAAM;IAAU,OAAO,CAAC,UAAU;IAAY,OAAO,CAAC,MAAM;IAAxF,OAAO;WAIM,MAAM,CACjB,MAAM,EAAE,MAAM,EACd,QAAQ,SAAmB,EAC3B,MAAM,UAAgB,MAAM,SAAS,MAAM,oBAAmD;IAS1F,WAAW,CAAC,MAAM,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IAsBvD,eAAe,CAAC,MAAM,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;CAmB9D"}
1
+ {"version":3,"file":"merkle_tree_calculator.d.ts","sourceRoot":"","sources":["../../src/trees/merkle_tree_calculator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IAHhB,OAAO,eAMN;IAED,OAAa,MAAM,CACjB,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAAyB,EACnC,MAAM,kGACiE,iCAOxE;IAEK,WAAW,CAAC,MAAM,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAoB5D;IAEK,eAAe,CAAC,MAAM,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAkB5D;CACF"}
@@ -1,4 +1,4 @@
1
- import { pedersenHash } from '@aztec/foundation/crypto';
1
+ import { pedersenHash } from '@aztec/foundation/crypto/pedersen';
2
2
  import { MerkleTree } from './merkle_tree.js';
3
3
  /**
4
4
  * Merkle tree calculator.
@@ -1,6 +1,4 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
- import { Fr } from '../fields/index.js';
1
+ import { Fr } from '../curves/bn254/index.js';
4
2
  import { type Tuple } from '../serialize/index.js';
5
3
  import type { Hasher } from './hasher.js';
6
4
  /**
@@ -14,7 +12,6 @@ import type { Hasher } from './hasher.js';
14
12
  * And the elements would be ordered as: [ leaf_at_index_2, node_at_level_2_index_0, node_at_level_1_index_1 ].
15
13
  */
16
14
  export declare class SiblingPath<N extends number> {
17
- /** Size of the sibling path (number of fields it contains). */
18
15
  pathSize: N;
19
16
  private data;
20
17
  /**
@@ -27,42 +24,9 @@ export declare class SiblingPath<N extends number> {
27
24
  pathSize: N,
28
25
  /** The sibling path data. */
29
26
  path: Buffer[]);
30
- static get schema(): import("zod").ZodEffects<import("zod").ZodUnion<[import("zod").ZodEffects<import("zod").ZodEffects<import("zod").ZodString, string, string>, Buffer, string>, import("zod").ZodEffects<import("zod").ZodObject<{
31
- type: import("zod").ZodLiteral<"Buffer">;
32
- data: import("zod").ZodArray<import("zod").ZodNumber, "many">;
33
- }, "strip", import("zod").ZodTypeAny, {
34
- type: "Buffer";
35
- data: number[];
36
- }, {
37
- type: "Buffer";
38
- data: number[];
39
- }>, Buffer, {
40
- type: "Buffer";
41
- data: number[];
42
- }>]>, SiblingPath<number>, string | {
43
- type: "Buffer";
44
- data: number[];
45
- }>;
46
- static schemaFor<N extends number>(size: N): import("zod").ZodEffects<import("zod").ZodEffects<import("zod").ZodUnion<[import("zod").ZodEffects<import("zod").ZodEffects<import("zod").ZodString, string, string>, Buffer, string>, import("zod").ZodEffects<import("zod").ZodObject<{
47
- type: import("zod").ZodLiteral<"Buffer">;
48
- data: import("zod").ZodArray<import("zod").ZodNumber, "many">;
49
- }, "strip", import("zod").ZodTypeAny, {
50
- type: "Buffer";
51
- data: number[];
52
- }, {
53
- type: "Buffer";
54
- data: number[];
55
- }>, Buffer, {
56
- type: "Buffer";
57
- data: number[];
58
- }>]>, SiblingPath<N>, string | {
59
- type: "Buffer";
60
- data: number[];
61
- }>, SiblingPath<N>, string | {
62
- type: "Buffer";
63
- data: number[];
64
- }>;
65
- toJSON(): Buffer;
27
+ static get schema(): import("zod").ZodEffects<import("../schemas/types.js").ZodFor<Buffer<ArrayBufferLike>>, SiblingPath<number>, any>;
28
+ static schemaFor<N extends number>(size: N): import("zod").ZodEffects<import("zod").ZodEffects<import("../schemas/types.js").ZodFor<Buffer<ArrayBufferLike>>, SiblingPath<N>, any>, SiblingPath<N>, any>;
29
+ toJSON(): Buffer<ArrayBufferLike>;
66
30
  /**
67
31
  * Returns sibling path hashed up from the a element.
68
32
  * @param size - The number of elements in a given path.
@@ -128,5 +92,5 @@ export declare class SiblingPath<N extends number> {
128
92
  getSubtreeSiblingPath<SubtreeHeight extends number, SubtreeSiblingPathHeight extends number>(subtreeHeight: SubtreeHeight): SiblingPath<SubtreeSiblingPathHeight>;
129
93
  }
130
94
  /** Computes the expected root of a merkle tree given a leaf and its sibling path. */
131
- export declare function computeRootFromSiblingPath(leaf: Buffer, siblingPath: Buffer[], index: number, hasher?: (left: Buffer, right: Buffer) => Promise<Buffer>): Promise<Buffer>;
132
- //# sourceMappingURL=sibling_path.d.ts.map
95
+ export declare function computeRootFromSiblingPath(leaf: Buffer, siblingPath: Buffer[], index: number, hasher?: (left: Buffer<ArrayBufferLike>, right: Buffer<ArrayBufferLike>) => Promise<Buffer<ArrayBufferLike>>): Promise<Buffer<ArrayBufferLike>>;
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2libGluZ19wYXRoLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJlZXMvc2libGluZ19wYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5QyxPQUFPLEVBQ0wsS0FBSyxLQUFLLEVBSVgsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUM7Ozs7Ozs7OztHQVNHO0FBQ0gscUJBQWEsV0FBVyxDQUFDLENBQUMsU0FBUyxNQUFNO0lBVTlCLFFBQVEsRUFBRSxDQUFDO0lBVHBCLE9BQU8sQ0FBQyxJQUFJLENBQW1CO0lBRS9COzs7O09BSUc7SUFDSDtJQUNFLCtEQUErRDtJQUN4RCxRQUFRLEVBQUUsQ0FBQztJQUNsQiw2QkFBNkI7SUFDN0IsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUdmO0lBRUQsTUFBTSxLQUFLLE1BQU0sc0hBRWhCO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLCtKQUt6QztJQUVELE1BQU0sNEJBRUw7SUFFRDs7Ozs7O09BTUc7SUFDSCxPQUFjLElBQUksQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FRakc7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsa0JBR3hDO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxJQUFJLE1BQU0sQ0FFeEI7SUFFRDs7O09BR0c7SUFDSSxhQUFhLElBQUksTUFBTSxFQUFFLENBRS9CO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUV0QjtJQUVEOzs7T0FHRztJQUNJLE9BQU8sSUFBSSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUc3QjtJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFJLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUczRTtJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFJOzs7TUFRM0Q7SUFFRDs7O09BR0c7SUFDSSxRQUFRLElBQUksTUFBTSxDQUV4QjtJQUVEOzs7O09BSUc7SUFDSCxPQUFjLFVBQVUsQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUV2RTtJQUVEOzs7O09BSUc7SUFDSSxxQkFBcUIsQ0FBQyxhQUFhLFNBQVMsTUFBTSxFQUFFLHdCQUF3QixTQUFTLE1BQU0sRUFDaEcsYUFBYSxFQUFFLGFBQWEsR0FDM0IsV0FBVyxDQUFDLHdCQUF3QixDQUFDLENBS3ZDO0NBQ0Y7QUFFRCxxRkFBcUY7QUFDckYsd0JBQXNCLDBCQUEwQixDQUM5QyxJQUFJLEVBQUUsTUFBTSxFQUNaLFdBQVcsRUFBRSxNQUFNLEVBQUUsRUFDckIsS0FBSyxFQUFFLE1BQU0sRUFDYixNQUFNLHNHQUF3RixvQ0FRL0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"sibling_path.d.ts","sourceRoot":"","sources":["../../src/trees/sibling_path.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,OAAO,EACL,KAAK,KAAK,EAIX,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;;;;;GASG;AACH,qBAAa,WAAW,CAAC,CAAC,SAAS,MAAM;IASrC,+DAA+D;IACxD,QAAQ,EAAE,CAAC;IATpB,OAAO,CAAC,IAAI,CAAmB;IAE/B;;;;OAIG;;IAED,+DAA+D;IACxD,QAAQ,EAAE,CAAC;IAClB,6BAA6B;IAC7B,IAAI,EAAE,MAAM,EAAE;IAKhB,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;OAEhB;IAED,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC;;;;;;;;;;;;;;;;;;;IAO1C,MAAM;IAIN;;;;;;OAMG;WACW,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC;IAUlG,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC;IAKzC;;;OAGG;IACI,QAAQ,IAAI,MAAM;IAIzB;;;OAGG;IACI,aAAa,IAAI,MAAM,EAAE;IAIhC;;;OAGG;IACI,QAAQ,IAAI,EAAE,EAAE;IAIvB;;;OAGG;IACI,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAK9B;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,WAAW,CAAC,CAAC,CAAC;IAK5E;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI;;;;IAU5D;;;OAGG;IACI,QAAQ,IAAI,MAAM;IAIzB;;;;OAIG;WACW,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC;IAIxE;;;;OAIG;IACI,qBAAqB,CAAC,aAAa,SAAS,MAAM,EAAE,wBAAwB,SAAS,MAAM,EAChG,aAAa,EAAE,aAAa,GAC3B,WAAW,CAAC,wBAAwB,CAAC;CAMzC;AAED,qFAAqF;AACrF,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EAAE,EACrB,KAAK,EAAE,MAAM,EACb,MAAM,UAAgB,MAAM,SAAS,MAAM,oBAAmD,mBAQ/F"}
1
+ {"version":3,"file":"sibling_path.d.ts","sourceRoot":"","sources":["../../src/trees/sibling_path.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EACL,KAAK,KAAK,EAIX,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;;;;;GASG;AACH,qBAAa,WAAW,CAAC,CAAC,SAAS,MAAM;IAU9B,QAAQ,EAAE,CAAC;IATpB,OAAO,CAAC,IAAI,CAAmB;IAE/B;;;;OAIG;IACH;IACE,+DAA+D;IACxD,QAAQ,EAAE,CAAC;IAClB,6BAA6B;IAC7B,IAAI,EAAE,MAAM,EAAE,EAGf;IAED,MAAM,KAAK,MAAM,sHAEhB;IAED,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,+JAKzC;IAED,MAAM,4BAEL;IAED;;;;;;OAMG;IACH,OAAc,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAQjG;IAED,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,kBAGxC;IAED;;;OAGG;IACI,QAAQ,IAAI,MAAM,CAExB;IAED;;;OAGG;IACI,aAAa,IAAI,MAAM,EAAE,CAE/B;IAED;;;OAGG;IACI,QAAQ,IAAI,EAAE,EAAE,CAEtB;IAED;;;OAGG;IACI,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAG7B;IAED;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAG3E;IAED;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI;;;MAQ3D;IAED;;;OAGG;IACI,QAAQ,IAAI,MAAM,CAExB;IAED;;;;OAIG;IACH,OAAc,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAEvE;IAED;;;;OAIG;IACI,qBAAqB,CAAC,aAAa,SAAS,MAAM,EAAE,wBAAwB,SAAS,MAAM,EAChG,aAAa,EAAE,aAAa,GAC3B,WAAW,CAAC,wBAAwB,CAAC,CAKvC;CACF;AAED,qFAAqF;AACrF,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EAAE,EACrB,KAAK,EAAE,MAAM,EACb,MAAM,sGAAwF,oCAQ/F"}
@@ -1,6 +1,6 @@
1
1
  import { makeTuple } from '../array/array.js';
2
- import { pedersenHash } from '../crypto/index.js';
3
- import { Fr } from '../fields/index.js';
2
+ import { pedersenHash } from '../crypto/pedersen/index.js';
3
+ import { Fr } from '../curves/bn254/index.js';
4
4
  import { schemas } from '../schemas/index.js';
5
5
  import { assertLength, deserializeArrayFromVector, serializeArrayOfBufferableToVector } from '../serialize/index.js';
6
6
  import { bufferToHex, hexToBuffer } from '../string/index.js';
@@ -1,17 +1,30 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
- import { sha256Trunc } from '../crypto/sha256/index.js';
1
+ export declare const computeUnbalancedShaRoot: (leaves: Buffer<ArrayBufferLike>[]) => Buffer<ArrayBufferLike>;
2
+ export declare const computeUnbalancedPoseidonRoot: (leaves: Buffer<ArrayBufferLike>[]) => Promise<Buffer<ArrayBufferLike>>;
4
3
  /**
5
- * Computes the merkle root for an unbalanced tree.
4
+ * Computes the Merkle root of an unbalanced tree.
6
5
  *
7
- * @dev Adapted from unbalanced_tree.ts.
8
- * Calculates the tree upwards layer by layer until we reach the root.
9
- * The L1 calculation instead computes the tree from right to left (slightly cheaper gas).
10
- * TODO: A more thorough investigation of which method is cheaper, then use that method everywhere.
6
+ * Unlike a balanced Merkle tree, which requires the number of leaves to be a power of two, an unbalanced tree can have
7
+ * any number of leaves.
8
+ *
9
+ * The tree is constructed by iteratively extracting the smallest power-of-two-sized subtrees from **right to left**.
10
+ * For each such subtree, it computes the subtree root and then combines all subtree roots (again from right to left)
11
+ * into a single root using the provided hash function.
12
+ *
13
+ * Note: We need the final tree to be as shallow as possible, to minimize the size of the sibling path required to prove
14
+ * membership of a leaf. Therefor, the computation proceeds from right to left - smaller subtrees must always be
15
+ * combined before being merged with a larger sibling on their left.
16
+ *
17
+ * For example, consider an unbalanced tree made of three subtrees of sizes 2, 4, and 8. If we combine the size-2 and
18
+ * size-4 subtrees first (producing a subtree of depth 3), and then merge it with the size-8 subtree (also depth 3), the
19
+ * resulting tree has a maximum depth of 4.
20
+ *
21
+ * But if we instead combine the size-4 and size-8 subtrees first (depth 4), and then merge with the size-2 subtree
22
+ * (depth 1), the final tree has a depth of 5.
11
23
  */
12
- export declare function computeUnbalancedMerkleRoot(leaves: Buffer[], emptyLeaf?: Buffer, hasher?: typeof sha256Trunc): Buffer;
24
+ export declare function computeUnbalancedMerkleTreeRoot(leaves: Buffer[], hasher?: (lhs: Uint8Array<ArrayBufferLike>, rhs: Uint8Array<ArrayBufferLike>) => Buffer<ArrayBuffer>, emptyRoot?: Buffer<ArrayBuffer>): Buffer;
25
+ export declare function computeUnbalancedMerkleTreeRootAsync(leaves: Buffer[], hasher?: (lhs: Uint8Array<ArrayBufferLike>, rhs: Uint8Array<ArrayBufferLike>) => Promise<Buffer<ArrayBuffer>>, emptyRoot?: Buffer<ArrayBuffer>): Promise<Buffer>;
13
26
  export declare function findLeafLevelAndIndex(numLeaves: number, leafIndex: number): {
14
27
  level: number;
15
28
  indexAtLevel: number;
16
29
  };
17
- //# sourceMappingURL=unbalanced_merkle_tree.d.ts.map
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5iYWxhbmNlZF9tZXJrbGVfdHJlZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RyZWVzL3VuYmFsYW5jZWRfbWVya2xlX3RyZWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsZUFBTyxNQUFNLHdCQUF3QixnRUFBK0UsQ0FBQztBQUVySCxlQUFPLE1BQU0sNkJBQTZCLHlFQUM4QixDQUFDO0FBRXpFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQUNILHdCQUFnQiwrQkFBK0IsQ0FDN0MsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUNoQixNQUFNLDhGQUFnQixFQUN0QixTQUFTLHNCQUFtQixHQUMzQixNQUFNLENBNkJSO0FBRUQsd0JBQXNCLG9DQUFvQyxDQUN4RCxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQ2hCLE1BQU0sdUdBQXFCLEVBQzNCLFNBQVMsc0JBQW1CLEdBQzNCLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0E2QmpCO0FBc0RELHdCQUFnQixxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNOzs7RUFHekUifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"unbalanced_merkle_tree.d.ts","sourceRoot":"","sources":["../../src/trees/unbalanced_merkle_tree.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,qBAAc,GAAG,MAAM,CAwC9G;AAgDD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;EAGzE"}
1
+ {"version":3,"file":"unbalanced_merkle_tree.d.ts","sourceRoot":"","sources":["../../src/trees/unbalanced_merkle_tree.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,wBAAwB,gEAA+E,CAAC;AAErH,eAAO,MAAM,6BAA6B,yEAC8B,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,8FAAgB,EACtB,SAAS,sBAAmB,GAC3B,MAAM,CA6BR;AAED,wBAAsB,oCAAoC,CACxD,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,uGAAqB,EAC3B,SAAS,sBAAmB,GAC3B,OAAO,CAAC,MAAM,CAAC,CA6BjB;AAsDD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;EAGzE"}