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

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 (434) hide show
  1. package/dest/array/array.d.ts +1 -9
  2. package/dest/array/array.d.ts.map +1 -1
  3. package/dest/array/array.js +0 -11
  4. package/dest/array/index.d.ts +2 -1
  5. package/dest/array/index.d.ts.map +1 -1
  6. package/dest/array/index.js +1 -0
  7. package/dest/array/sorted_array.d.ts +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/bigint/index.d.ts +1 -1
  13. package/dest/bigint-buffer/index.d.ts +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 +2 -5
  33. package/dest/buffer/buffer16.d.ts.map +1 -1
  34. package/dest/buffer/buffer16.js +1 -1
  35. package/dest/buffer/buffer32.d.ts +2 -5
  36. package/dest/buffer/buffer32.d.ts.map +1 -1
  37. package/dest/buffer/buffer32.js +1 -1
  38. package/dest/buffer/index.d.ts +1 -1
  39. package/dest/collection/array.d.ts +1 -1
  40. package/dest/collection/index.d.ts +1 -1
  41. package/dest/collection/object.d.ts +1 -1
  42. package/dest/committable/committable.d.ts +1 -1
  43. package/dest/committable/committable.d.ts.map +1 -1
  44. package/dest/committable/index.d.ts +1 -1
  45. package/dest/config/env_var.d.ts +2 -2
  46. package/dest/config/env_var.d.ts.map +1 -1
  47. package/dest/config/index.d.ts +10 -2
  48. package/dest/config/index.d.ts.map +1 -1
  49. package/dest/config/index.js +16 -2
  50. package/dest/config/network_config.d.ts +13 -1
  51. package/dest/config/network_config.d.ts.map +1 -1
  52. package/dest/config/network_config.js +3 -1
  53. package/dest/config/network_name.d.ts +1 -1
  54. package/dest/config/secret_value.d.ts +1 -1
  55. package/dest/config/secret_value.d.ts.map +1 -1
  56. package/dest/crypto/aes128/index.d.ts +1 -1
  57. package/dest/crypto/aes128/index.d.ts.map +1 -1
  58. package/dest/crypto/aes128/index.js +2 -6
  59. package/dest/crypto/bls/bn254_keystore.d.ts +15 -15
  60. package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -1
  61. package/dest/crypto/bls/bn254_keystore.js +1 -1
  62. package/dest/crypto/bls/index.d.ts +1 -1
  63. package/dest/crypto/bls/index.js +1 -1
  64. package/dest/crypto/bn254/index.d.ts +35 -51
  65. package/dest/crypto/bn254/index.d.ts.map +1 -1
  66. package/dest/crypto/bn254/index.js +51 -137
  67. package/dest/crypto/ecdsa/index.d.ts +1 -1
  68. package/dest/crypto/ecdsa/index.d.ts.map +1 -1
  69. package/dest/crypto/ecdsa/index.js +4 -12
  70. package/dest/crypto/ecdsa/signature.d.ts +2 -11
  71. package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
  72. package/dest/crypto/ecdsa/signature.js +2 -2
  73. package/dest/crypto/grumpkin/index.d.ts +4 -2
  74. package/dest/crypto/grumpkin/index.d.ts.map +1 -1
  75. package/dest/crypto/grumpkin/index.js +7 -16
  76. package/dest/crypto/keccak/index.d.ts +1 -1
  77. package/dest/crypto/keys/index.d.ts +2 -2
  78. package/dest/crypto/keys/index.d.ts.map +1 -1
  79. package/dest/crypto/keys/index.js +2 -4
  80. package/dest/crypto/pedersen/index.d.ts +1 -1
  81. package/dest/crypto/pedersen/pedersen.noble.d.ts +1 -1
  82. package/dest/crypto/pedersen/pedersen.wasm.d.ts +2 -2
  83. package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
  84. package/dest/crypto/pedersen/pedersen.wasm.js +4 -10
  85. package/dest/crypto/poseidon/index.d.ts +2 -2
  86. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  87. package/dest/crypto/poseidon/index.js +6 -16
  88. package/dest/crypto/random/index.d.ts +1 -1
  89. package/dest/crypto/random/index.d.ts.map +1 -1
  90. package/dest/crypto/random/randomness_singleton.d.ts +1 -1
  91. package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
  92. package/dest/crypto/schnorr/index.d.ts +3 -2
  93. package/dest/crypto/schnorr/index.d.ts.map +1 -1
  94. package/dest/crypto/schnorr/index.js +4 -10
  95. package/dest/crypto/schnorr/signature.d.ts +2 -2
  96. package/dest/crypto/schnorr/signature.d.ts.map +1 -1
  97. package/dest/crypto/schnorr/signature.js +2 -2
  98. package/dest/crypto/secp256k1/index.d.ts +1 -1
  99. package/dest/crypto/secp256k1/index.d.ts.map +1 -1
  100. package/dest/crypto/secp256k1/index.js +3 -9
  101. package/dest/crypto/secp256k1-signer/index.d.ts +1 -1
  102. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts +1 -1
  103. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts.map +1 -1
  104. package/dest/crypto/secp256k1-signer/utils.d.ts +1 -1
  105. package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
  106. package/dest/crypto/serialize.d.ts +1 -1
  107. package/dest/crypto/sha256/index.d.ts +2 -2
  108. package/dest/crypto/sha256/index.d.ts.map +1 -1
  109. package/dest/crypto/sha256/index.js +1 -1
  110. package/dest/crypto/sha512/index.d.ts +3 -3
  111. package/dest/crypto/sha512/index.d.ts.map +1 -1
  112. package/dest/crypto/sha512/index.js +1 -1
  113. package/dest/crypto/signature/index.d.ts +2 -2
  114. package/dest/crypto/signature/index.d.ts.map +1 -1
  115. package/dest/crypto/sync/index.d.ts +1 -1
  116. package/dest/crypto/sync/index.js +1 -3
  117. package/dest/crypto/sync/pedersen/index.d.ts +2 -2
  118. package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
  119. package/dest/crypto/sync/pedersen/index.js +1 -1
  120. package/dest/crypto/sync/poseidon/index.d.ts +2 -2
  121. package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
  122. package/dest/crypto/sync/poseidon/index.js +1 -1
  123. package/dest/{fields/bls12_fields.d.ts → curves/bls12/field.d.ts} +3 -3
  124. package/dest/curves/bls12/field.d.ts.map +1 -0
  125. package/dest/{fields/bls12_fields.js → curves/bls12/field.js} +6 -6
  126. package/dest/curves/bls12/index.d.ts +3 -0
  127. package/dest/curves/bls12/index.d.ts.map +1 -0
  128. package/dest/curves/bls12/index.js +2 -0
  129. package/dest/{fields/bls12_point.d.ts → curves/bls12/point.d.ts} +4 -13
  130. package/dest/curves/bls12/point.d.ts.map +1 -0
  131. package/dest/{fields/bls12_point.js → curves/bls12/point.js} +7 -7
  132. package/dest/{fields/fields.d.ts → curves/bn254/field.d.ts} +16 -15
  133. package/dest/curves/bn254/field.d.ts.map +1 -0
  134. package/dest/{fields/fields.js → curves/bn254/field.js} +44 -47
  135. package/dest/curves/bn254/index.d.ts +3 -0
  136. package/dest/curves/bn254/index.d.ts.map +1 -0
  137. package/dest/curves/bn254/index.js +2 -0
  138. package/dest/curves/bn254/point.d.ts +54 -0
  139. package/dest/curves/bn254/point.d.ts.map +1 -0
  140. package/dest/curves/bn254/point.js +143 -0
  141. package/dest/curves/grumpkin/index.d.ts +10 -0
  142. package/dest/curves/grumpkin/index.d.ts.map +1 -0
  143. package/dest/curves/grumpkin/index.js +3 -0
  144. package/dest/{fields → curves/grumpkin}/point.d.ts +13 -13
  145. package/dest/curves/grumpkin/point.d.ts.map +1 -0
  146. package/dest/{fields → curves/grumpkin}/point.js +24 -7
  147. package/dest/decorators/index.d.ts +1 -1
  148. package/dest/decorators/memoize.d.ts +1 -1
  149. package/dest/decorators/memoize.d.ts.map +1 -1
  150. package/dest/error/index.d.ts +4 -4
  151. package/dest/error/index.d.ts.map +1 -1
  152. package/dest/eth-address/index.d.ts +12 -2
  153. package/dest/eth-address/index.d.ts.map +1 -1
  154. package/dest/eth-address/index.js +23 -1
  155. package/dest/eth-signature/eth_signature.d.ts +1 -4
  156. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  157. package/dest/eth-signature/index.d.ts +1 -1
  158. package/dest/fs/index.d.ts +1 -1
  159. package/dest/fs/run_in_dir.d.ts +1 -1
  160. package/dest/fs/try_rm_dir.d.ts +1 -1
  161. package/dest/iterable/all.d.ts +1 -1
  162. package/dest/iterable/filter.d.ts +1 -1
  163. package/dest/iterable/index.d.ts +1 -1
  164. package/dest/iterable/isAsyncIt.d.ts +1 -1
  165. package/dest/iterable/map.d.ts +1 -1
  166. package/dest/iterable/peek.d.ts +1 -1
  167. package/dest/iterable/sort.d.ts +1 -1
  168. package/dest/iterable/take.d.ts +1 -1
  169. package/dest/iterable/toArray.d.ts +1 -1
  170. package/dest/iterator/filter.d.ts +3 -0
  171. package/dest/iterator/filter.d.ts.map +1 -0
  172. package/dest/iterator/filter.js +7 -0
  173. package/dest/iterator/index.d.ts +2 -0
  174. package/dest/iterator/index.d.ts.map +1 -0
  175. package/dest/iterator/index.js +1 -0
  176. package/dest/json-rpc/client/fetch.d.ts +1 -1
  177. package/dest/json-rpc/client/index.d.ts +1 -1
  178. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +1 -1
  179. package/dest/json-rpc/client/undici.d.ts +1 -1
  180. package/dest/json-rpc/convert.d.ts +1 -1
  181. package/dest/json-rpc/errors.d.ts +1 -1
  182. package/dest/json-rpc/errors.d.ts.map +1 -1
  183. package/dest/json-rpc/fixtures/class_a.d.ts +3 -3
  184. package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
  185. package/dest/json-rpc/fixtures/class_b.d.ts +3 -3
  186. package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -1
  187. package/dest/json-rpc/fixtures/test_state.d.ts +1 -1
  188. package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
  189. package/dest/json-rpc/index.d.ts +1 -1
  190. package/dest/json-rpc/js_utils.d.ts +1 -1
  191. package/dest/json-rpc/js_utils.d.ts.map +1 -1
  192. package/dest/json-rpc/server/index.d.ts +1 -1
  193. package/dest/json-rpc/server/safe_json_rpc_server.d.ts +1 -1
  194. package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
  195. package/dest/json-rpc/server/telemetry.d.ts +1 -1
  196. package/dest/json-rpc/test/index.d.ts +1 -1
  197. package/dest/json-rpc/test/integration.d.ts +1 -1
  198. package/dest/log/console.d.ts +1 -1
  199. package/dest/log/gcloud-logger-config.d.ts +1 -1
  200. package/dest/log/gcloud-logger-config.d.ts.map +1 -1
  201. package/dest/log/index.d.ts +1 -1
  202. package/dest/log/libp2p_logger.d.ts +1 -1
  203. package/dest/log/log-filters.d.ts +1 -1
  204. package/dest/log/log-levels.d.ts +1 -1
  205. package/dest/log/log_fn.d.ts +1 -1
  206. package/dest/log/noir_debug_log_util.d.ts +1 -1
  207. package/dest/log/pino-logger.d.ts +2 -2
  208. package/dest/message/index.d.ts +1 -1
  209. package/dest/message/index.d.ts.map +1 -1
  210. package/dest/mutex/index.d.ts +1 -1
  211. package/dest/mutex/index.d.ts.map +1 -1
  212. package/dest/mutex/mutex_database.d.ts +1 -1
  213. package/dest/noir/index.d.ts +1 -1
  214. package/dest/noir/noir_package_config.d.ts +9 -9
  215. package/dest/number/index.d.ts +1 -1
  216. package/dest/profiler/index.d.ts +1 -1
  217. package/dest/profiler/profiler.d.ts +1 -1
  218. package/dest/promise/index.d.ts +1 -1
  219. package/dest/promise/running-promise.d.ts +1 -1
  220. package/dest/promise/running-promise.d.ts.map +1 -1
  221. package/dest/promise/utils.d.ts +1 -1
  222. package/dest/queue/base_memory_queue.d.ts +1 -1
  223. package/dest/queue/base_memory_queue.d.ts.map +1 -1
  224. package/dest/queue/batch_queue.d.ts +1 -1
  225. package/dest/queue/batch_queue.d.ts.map +1 -1
  226. package/dest/queue/bounded_serial_queue.d.ts +1 -1
  227. package/dest/queue/bounded_serial_queue.d.ts.map +1 -1
  228. package/dest/queue/fifo_memory_queue.d.ts +1 -1
  229. package/dest/queue/fifo_memory_queue.d.ts.map +1 -1
  230. package/dest/queue/index.d.ts +1 -1
  231. package/dest/queue/priority_memory_queue.d.ts +1 -1
  232. package/dest/queue/priority_memory_queue.d.ts.map +1 -1
  233. package/dest/queue/priority_queue.d.ts +1 -1
  234. package/dest/queue/priority_queue.d.ts.map +1 -1
  235. package/dest/queue/semaphore.d.ts +1 -1
  236. package/dest/queue/semaphore.d.ts.map +1 -1
  237. package/dest/queue/serial_queue.d.ts +1 -1
  238. package/dest/queue/serial_queue.d.ts.map +1 -1
  239. package/dest/retry/index.d.ts +1 -1
  240. package/dest/running-promise/index.d.ts +1 -1
  241. package/dest/schemas/api.d.ts +1 -1
  242. package/dest/schemas/index.d.ts +1 -1
  243. package/dest/schemas/parse.d.ts +1 -1
  244. package/dest/schemas/schemas.d.ts +15 -17
  245. package/dest/schemas/schemas.d.ts.map +1 -1
  246. package/dest/schemas/schemas.js +14 -10
  247. package/dest/schemas/types.d.ts +31 -1
  248. package/dest/schemas/types.d.ts.map +1 -1
  249. package/dest/schemas/types.js +25 -1
  250. package/dest/schemas/utils.d.ts +4 -4
  251. package/dest/schemas/utils.d.ts.map +1 -1
  252. package/dest/schemas/utils.js +15 -5
  253. package/dest/serialize/buffer_reader.d.ts +1 -1
  254. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  255. package/dest/serialize/field_reader.d.ts +2 -2
  256. package/dest/serialize/field_reader.d.ts.map +1 -1
  257. package/dest/serialize/field_reader.js +1 -1
  258. package/dest/serialize/free_funcs.d.ts +2 -2
  259. package/dest/serialize/free_funcs.d.ts.map +1 -1
  260. package/dest/serialize/free_funcs.js +1 -1
  261. package/dest/serialize/index.d.ts +1 -1
  262. package/dest/serialize/serialize.d.ts +2 -2
  263. package/dest/serialize/serialize.d.ts.map +1 -1
  264. package/dest/serialize/serialize.js +1 -1
  265. package/dest/serialize/type_registry.d.ts +1 -1
  266. package/dest/serialize/type_registry.d.ts.map +1 -1
  267. package/dest/serialize/types.d.ts +1 -1
  268. package/dest/sleep/index.d.ts +3 -1
  269. package/dest/sleep/index.d.ts.map +1 -1
  270. package/dest/sleep/index.js +4 -0
  271. package/dest/string/index.d.ts +1 -1
  272. package/dest/testing/files/index.d.ts +2 -1
  273. package/dest/testing/files/index.d.ts.map +1 -1
  274. package/dest/testing/files/index.js +1 -1
  275. package/dest/testing/formatting.d.ts +1 -1
  276. package/dest/testing/index.d.ts +1 -1
  277. package/dest/testing/port_allocator.d.ts +1 -1
  278. package/dest/testing/snapshot_serializer.d.ts +1 -1
  279. package/dest/testing/test_data.d.ts +1 -1
  280. package/dest/timer/date.d.ts +2 -1
  281. package/dest/timer/date.d.ts.map +1 -1
  282. package/dest/timer/date.js +3 -0
  283. package/dest/timer/elapsed.d.ts +1 -1
  284. package/dest/timer/index.d.ts +1 -1
  285. package/dest/timer/timeout.d.ts +1 -1
  286. package/dest/timer/timeout.d.ts.map +1 -1
  287. package/dest/timer/timer.d.ts +1 -1
  288. package/dest/timer/timer.d.ts.map +1 -1
  289. package/dest/transport/dispatch/create_dispatch_fn.d.ts +1 -1
  290. package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +1 -1
  291. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +1 -1
  292. package/dest/transport/dispatch/messages.d.ts +1 -1
  293. package/dest/transport/index.d.ts +1 -1
  294. package/dest/transport/interface/connector.d.ts +1 -1
  295. package/dest/transport/interface/listener.d.ts +1 -1
  296. package/dest/transport/interface/socket.d.ts +1 -1
  297. package/dest/transport/interface/transferable.d.ts +1 -1
  298. package/dest/transport/node/index.d.ts +1 -1
  299. package/dest/transport/node/node_connector.d.ts +1 -1
  300. package/dest/transport/node/node_connector.d.ts.map +1 -1
  301. package/dest/transport/node/node_connector_socket.d.ts +1 -1
  302. package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
  303. package/dest/transport/node/node_listener.d.ts +1 -1
  304. package/dest/transport/node/node_listener.d.ts.map +1 -1
  305. package/dest/transport/node/node_listener_socket.d.ts +1 -1
  306. package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
  307. package/dest/transport/transport_client.d.ts +1 -1
  308. package/dest/transport/transport_client.d.ts.map +1 -1
  309. package/dest/transport/transport_server.d.ts +1 -10
  310. package/dest/transport/transport_server.d.ts.map +1 -1
  311. package/dest/trees/balanced_merkle_tree.d.ts +22 -0
  312. package/dest/trees/balanced_merkle_tree.d.ts.map +1 -0
  313. package/dest/trees/balanced_merkle_tree.js +66 -0
  314. package/dest/trees/hasher.d.ts +1 -1
  315. package/dest/trees/index.d.ts +2 -1
  316. package/dest/trees/index.d.ts.map +1 -1
  317. package/dest/trees/index.js +1 -0
  318. package/dest/trees/indexed_merkle_tree.d.ts +1 -1
  319. package/dest/trees/indexed_merkle_tree.d.ts.map +1 -1
  320. package/dest/trees/indexed_merkle_tree.js +1 -1
  321. package/dest/trees/indexed_merkle_tree_calculator.d.ts +1 -1
  322. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
  323. package/dest/trees/indexed_tree_leaf.d.ts +1 -1
  324. package/dest/trees/membership_witness.d.ts +3 -24
  325. package/dest/trees/membership_witness.d.ts.map +1 -1
  326. package/dest/trees/membership_witness.js +1 -1
  327. package/dest/trees/merkle_tree.d.ts +1 -1
  328. package/dest/trees/merkle_tree.d.ts.map +1 -1
  329. package/dest/trees/merkle_tree_calculator.d.ts +2 -12
  330. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  331. package/dest/trees/merkle_tree_calculator.js +1 -31
  332. package/dest/trees/sibling_path.d.ts +5 -39
  333. package/dest/trees/sibling_path.d.ts.map +1 -1
  334. package/dest/trees/sibling_path.js +2 -2
  335. package/dest/trees/unbalanced_merkle_tree.d.ts +5 -3
  336. package/dest/trees/unbalanced_merkle_tree.d.ts.map +1 -1
  337. package/dest/trees/unbalanced_merkle_tree.js +32 -9
  338. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +6 -5
  339. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -1
  340. package/dest/trees/unbalanced_merkle_tree_calculator.js +36 -40
  341. package/dest/trees/unbalanced_tree_store.d.ts +1 -1
  342. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
  343. package/dest/types/index.d.ts +3 -1
  344. package/dest/types/index.d.ts.map +1 -1
  345. package/dest/types/index.js +3 -0
  346. package/dest/url/index.d.ts +1 -1
  347. package/dest/validation/index.d.ts +1 -1
  348. package/package.json +28 -8
  349. package/src/array/array.ts +0 -16
  350. package/src/array/index.ts +1 -0
  351. package/src/array/sorted_array.ts +133 -0
  352. package/src/branded-types/block_number.ts +112 -0
  353. package/src/branded-types/checkpoint_number.ts +100 -0
  354. package/src/branded-types/epoch.ts +88 -0
  355. package/src/branded-types/index.ts +6 -0
  356. package/src/branded-types/slot.ts +88 -0
  357. package/src/branded-types/types.ts +2 -0
  358. package/src/buffer/buffer16.ts +2 -2
  359. package/src/buffer/buffer32.ts +2 -2
  360. package/src/config/env_var.ts +27 -7
  361. package/src/config/index.ts +20 -2
  362. package/src/config/network_config.ts +2 -0
  363. package/src/crypto/aes128/index.ts +2 -2
  364. package/src/crypto/bls/bn254_keystore.ts +1 -1
  365. package/src/crypto/bls/index.ts +1 -1
  366. package/src/crypto/bn254/index.ts +50 -156
  367. package/src/crypto/ecdsa/index.ts +4 -4
  368. package/src/crypto/ecdsa/signature.ts +2 -2
  369. package/src/crypto/grumpkin/index.ts +8 -6
  370. package/src/crypto/keys/index.ts +2 -2
  371. package/src/crypto/pedersen/pedersen.wasm.ts +4 -4
  372. package/src/crypto/poseidon/index.ts +6 -6
  373. package/src/crypto/schnorr/index.ts +5 -4
  374. package/src/crypto/schnorr/signature.ts +2 -2
  375. package/src/crypto/secp256k1/index.ts +3 -3
  376. package/src/crypto/sha256/index.ts +1 -1
  377. package/src/crypto/sha512/index.ts +1 -1
  378. package/src/crypto/signature/index.ts +1 -1
  379. package/src/crypto/sync/index.ts +1 -1
  380. package/src/crypto/sync/pedersen/index.ts +1 -1
  381. package/src/crypto/sync/poseidon/index.ts +1 -1
  382. package/src/{fields/bls12_fields.ts → curves/bls12/field.ts} +6 -6
  383. package/src/curves/bls12/index.ts +2 -0
  384. package/src/{fields/bls12_point.ts → curves/bls12/point.ts} +7 -7
  385. package/src/{fields/fields.ts → curves/bn254/field.ts} +49 -56
  386. package/src/curves/bn254/index.ts +2 -0
  387. package/src/curves/bn254/point.ts +170 -0
  388. package/src/curves/grumpkin/index.ts +11 -0
  389. package/src/{fields → curves/grumpkin}/point.ts +26 -7
  390. package/src/eth-address/index.ts +26 -1
  391. package/src/iterator/filter.ts +11 -0
  392. package/src/iterator/index.ts +1 -0
  393. package/src/schemas/schemas.ts +24 -13
  394. package/src/schemas/types.ts +33 -0
  395. package/src/schemas/utils.ts +21 -8
  396. package/src/serialize/field_reader.ts +1 -1
  397. package/src/serialize/free_funcs.ts +1 -1
  398. package/src/serialize/serialize.ts +1 -1
  399. package/src/sleep/index.ts +6 -0
  400. package/src/testing/files/index.ts +1 -1
  401. package/src/timer/date.ts +4 -0
  402. package/src/trees/balanced_merkle_tree.ts +84 -0
  403. package/src/trees/index.ts +1 -0
  404. package/src/trees/indexed_merkle_tree.ts +1 -1
  405. package/src/trees/membership_witness.ts +1 -1
  406. package/src/trees/merkle_tree_calculator.ts +1 -34
  407. package/src/trees/sibling_path.ts +2 -2
  408. package/src/trees/unbalanced_merkle_tree.ts +54 -6
  409. package/src/trees/unbalanced_merkle_tree_calculator.ts +34 -41
  410. package/src/types/index.ts +5 -0
  411. package/dest/crypto/bn254/bn254_utils.d.ts +0 -39
  412. package/dest/crypto/bn254/bn254_utils.d.ts.map +0 -1
  413. package/dest/crypto/bn254/bn254_utils.js +0 -56
  414. package/dest/crypto/index.d.ts +0 -17
  415. package/dest/crypto/index.d.ts.map +0 -1
  416. package/dest/crypto/index.js +0 -16
  417. package/dest/fields/bls12_fields.d.ts.map +0 -1
  418. package/dest/fields/bls12_point.d.ts.map +0 -1
  419. package/dest/fields/coordinate.d.ts +0 -66
  420. package/dest/fields/coordinate.d.ts.map +0 -1
  421. package/dest/fields/coordinate.js +0 -96
  422. package/dest/fields/fields.d.ts.map +0 -1
  423. package/dest/fields/index.d.ts +0 -6
  424. package/dest/fields/index.d.ts.map +0 -1
  425. package/dest/fields/index.js +0 -5
  426. package/dest/fields/point.d.ts.map +0 -1
  427. package/dest/index.d.ts +0 -30
  428. package/dest/index.d.ts.map +0 -1
  429. package/dest/index.js +0 -30
  430. package/src/crypto/bn254/bn254_utils.ts +0 -64
  431. package/src/crypto/index.ts +0 -16
  432. package/src/fields/coordinate.ts +0 -104
  433. package/src/fields/index.ts +0 -5
  434. package/src/index.ts +0 -30
@@ -1,5 +1,5 @@
1
1
  import { toBigIntBE, toBufferBE } from '../bigint-buffer/index.js';
2
- import { Fr } from '../fields/fields.js';
2
+ import { Fr } from '../curves/bn254/field.js';
3
3
  import { numToUInt32BE } from './free_funcs.js';
4
4
 
5
5
  /**
@@ -73,3 +73,9 @@ export class InterruptibleSleep {
73
73
  export function sleep<T>(ms: number, returnValue?: T): Promise<T> {
74
74
  return new Promise(resolve => setTimeout(() => resolve(returnValue as T), ms));
75
75
  }
76
+
77
+ /** Sleeps until the target date */
78
+ export function sleepUntil<T>(target: Date, now: Date, returnValue?: T): Promise<T> {
79
+ const ms = target.getTime() - now.getTime();
80
+ return sleep(ms, returnValue);
81
+ }
@@ -63,7 +63,7 @@ export function updateProtocolCircuitSampleInputs(circuitName: string, value: st
63
63
  logger(`Updated test data in ${targetFile} for ${circuitName}`);
64
64
  }
65
65
 
66
- function getPathToFile(targetFileFromRepoRoot: string) {
66
+ export function getPathToFile(targetFileFromRepoRoot: string) {
67
67
  const repoRoot = resolve(dirname(fileURLToPath(import.meta.url)), '../../../../../');
68
68
  if (!existsSync(join(repoRoot, 'CODEOWNERS'))) {
69
69
  throw new Error(`Path to repo root is incorrect (got ${repoRoot})`);
package/src/timer/date.ts CHANGED
@@ -9,6 +9,10 @@ export class DateProvider {
9
9
  public nowInSeconds(): number {
10
10
  return Math.floor(this.now() / 1000);
11
11
  }
12
+
13
+ public nowAsDate(): Date {
14
+ return new Date(this.now());
15
+ }
12
16
  }
13
17
 
14
18
  /** Returns current datetime and allows to override it. */
@@ -0,0 +1,84 @@
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
+
5
+ import type { AsyncHasher, Hasher } from './hasher.js';
6
+
7
+ export const shaMerkleHash: Hasher['hash'] = (left: Buffer, right: Buffer) =>
8
+ sha256Trunc(Buffer.concat([left, right])) as Buffer<ArrayBuffer>;
9
+
10
+ export const pedersenMerkleHash: AsyncHasher['hash'] = async (left: Buffer, right: Buffer) =>
11
+ (await pedersenHashArray([left, right])).toBuffer() as Buffer<ArrayBuffer>;
12
+
13
+ export const poseidonMerkleHash: AsyncHasher['hash'] = async (left: Buffer, right: Buffer) =>
14
+ (await poseidon2Hash([left, right])).toBuffer() as Buffer<ArrayBuffer>;
15
+
16
+ export const computeBalancedShaRoot = (leaves: Buffer[]) => computeBalancedMerkleTreeRoot(leaves);
17
+
18
+ export const computeBalancedPedersenRoot = async (leaves: Buffer[]) =>
19
+ await computeBalancedMerkleTreeRootAsync(leaves, pedersenMerkleHash);
20
+
21
+ export const computeBalancedPoseidonRoot = async (leaves: Buffer[]) =>
22
+ await computeBalancedMerkleTreeRootAsync(leaves, poseidonMerkleHash);
23
+
24
+ /**
25
+ * Computes the Merkle root with the provided leaves **synchronously**.
26
+ * This method uses a synchronous hash function (defaults to `sha256Trunc`).
27
+ *
28
+ * @throws If the number of leaves is not a power of two.
29
+ */
30
+ export function computeBalancedMerkleTreeRoot(leaves: Buffer[], hasher = shaMerkleHash): Buffer {
31
+ const height = getTreeHeight(leaves);
32
+ let nodes = leaves.slice();
33
+
34
+ for (let i = 0; i < height; ++i) {
35
+ let j = 0;
36
+ for (; j < nodes.length / 2; ++j) {
37
+ const l = nodes[j * 2];
38
+ const r = nodes[j * 2 + 1];
39
+ nodes[j] = hasher(l, r);
40
+ }
41
+ nodes = nodes.slice(0, j);
42
+ }
43
+
44
+ return nodes[0];
45
+ }
46
+
47
+ /**
48
+ * Computes the Merkle root with the provided leaves **asynchronously**.
49
+ * This method uses an asynchronous hash function (defaults to `pedersenHash`).
50
+ *
51
+ * @throws If the number of leaves is not a power of two.
52
+ */
53
+ export async function computeBalancedMerkleTreeRootAsync(
54
+ leaves: Buffer[],
55
+ hasher = poseidonMerkleHash,
56
+ ): Promise<Buffer> {
57
+ const height = getTreeHeight(leaves);
58
+ let nodes = leaves.slice();
59
+
60
+ for (let i = 0; i < height; ++i) {
61
+ let j = 0;
62
+ for (; j < nodes.length / 2; ++j) {
63
+ const l = nodes[j * 2];
64
+ const r = nodes[j * 2 + 1];
65
+ nodes[j] = await hasher(l, r);
66
+ }
67
+ nodes = nodes.slice(0, j);
68
+ }
69
+
70
+ return nodes[0];
71
+ }
72
+
73
+ function getTreeHeight(leaves: Buffer[]) {
74
+ if (leaves.length === 0) {
75
+ throw new Error('Cannot compute a Merkle root with no leaves');
76
+ }
77
+
78
+ const height = Math.log2(leaves.length);
79
+ if (!Number.isInteger(height)) {
80
+ throw new Error('Cannot compute a Merkle root with a non-power-of-two number of leaves');
81
+ }
82
+
83
+ return height;
84
+ }
@@ -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';
@@ -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 type { IndexedTreeLeafPreimage } from './indexed_tree_leaf.js';
4
4
  import { MembershipWitness } from './membership_witness.js';
@@ -1,6 +1,6 @@
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
4
  import { schemas } from '../schemas/schemas.js';
5
5
  import { BufferReader, type Tuple, serializeToBuffer } from '../serialize/index.js';
6
6
  import type { SiblingPath } from './sibling_path.js';
@@ -1,4 +1,4 @@
1
- import { pedersenHash, sha256Trunc } from '@aztec/foundation/crypto';
1
+ import { pedersenHash } from '@aztec/foundation/crypto/pedersen';
2
2
 
3
3
  import type { AsyncHasher } from './hasher.js';
4
4
  import { MerkleTree } from './merkle_tree.js';
@@ -69,37 +69,4 @@ export class MerkleTreeCalculator {
69
69
 
70
70
  return leaves[0];
71
71
  }
72
-
73
- /**
74
- * Computes the Merkle root with the provided leaves **synchronously**.
75
- *
76
- * This method uses a synchronous hash function (defaults to `sha256Trunc`) and **does not** allow for padding.
77
- * If the number of leaves is not a power of two, it throws an error.
78
- * This contrasts with the above non-static async method `computeTreeRoot`, which can handle any number of leaves by
79
- * padding with zero hashes.
80
- */
81
- static computeTreeRootSync(leaves: Buffer[], hasher = sha256Trunc): Buffer {
82
- if (leaves.length === 0) {
83
- throw new Error('Cannot compute a Merkle root with no leaves');
84
- }
85
-
86
- const height = Math.log2(leaves.length);
87
- if (!Number.isInteger(height)) {
88
- throw new Error('Cannot compute a Merkle root with a non-power-of-two number of leaves');
89
- }
90
-
91
- let nodes = leaves.slice();
92
-
93
- for (let i = 0; i < height; ++i) {
94
- let j = 0;
95
- for (; j < nodes.length / 2; ++j) {
96
- const l = nodes[j * 2];
97
- const r = nodes[j * 2 + 1];
98
- nodes[j] = hasher(Buffer.concat([l, r]));
99
- }
100
- nodes = nodes.slice(0, j);
101
- }
102
-
103
- return nodes[0];
104
- }
105
72
  }
@@ -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 {
6
6
  type Tuple,
@@ -1,5 +1,14 @@
1
- import { sha256Trunc } from '../crypto/sha256/index.js';
2
- import { MerkleTreeCalculator } from './merkle_tree_calculator.js';
1
+ import {
2
+ computeBalancedMerkleTreeRoot,
3
+ computeBalancedMerkleTreeRootAsync,
4
+ poseidonMerkleHash,
5
+ shaMerkleHash,
6
+ } from './balanced_merkle_tree.js';
7
+
8
+ export const computeUnbalancedShaRoot = (leaves: Buffer[]) => computeUnbalancedMerkleTreeRoot(leaves, shaMerkleHash);
9
+
10
+ export const computeUnbalancedPoseidonRoot = async (leaves: Buffer[]) =>
11
+ await computeUnbalancedMerkleTreeRootAsync(leaves, poseidonMerkleHash);
3
12
 
4
13
  /**
5
14
  * Computes the Merkle root of an unbalanced tree.
@@ -22,9 +31,48 @@ import { MerkleTreeCalculator } from './merkle_tree_calculator.js';
22
31
  * But if we instead combine the size-4 and size-8 subtrees first (depth 4), and then merge with the size-2 subtree
23
32
  * (depth 1), the final tree has a depth of 5.
24
33
  */
25
- export function computeUnbalancedMerkleTreeRoot(leaves: Buffer[], hasher = sha256Trunc): Buffer {
34
+ export function computeUnbalancedMerkleTreeRoot(
35
+ leaves: Buffer[],
36
+ hasher = shaMerkleHash,
37
+ emptyRoot = Buffer.alloc(32),
38
+ ): Buffer {
39
+ if (!leaves.length) {
40
+ return emptyRoot;
41
+ }
42
+
43
+ if (leaves.length === 1) {
44
+ return leaves[0];
45
+ }
46
+
47
+ let numRemainingLeaves = leaves.length;
48
+ let subtreeSize = 1;
49
+ let root: Buffer | undefined;
50
+ while (numRemainingLeaves > 1) {
51
+ if ((numRemainingLeaves & subtreeSize) !== 0) {
52
+ const subtreeLeaves = leaves.slice(numRemainingLeaves - subtreeSize, numRemainingLeaves);
53
+ const subtreeRoot = computeBalancedMerkleTreeRoot(subtreeLeaves, hasher);
54
+ if (!root) {
55
+ root = subtreeRoot;
56
+ } else {
57
+ root = hasher(subtreeRoot, root);
58
+ }
59
+
60
+ numRemainingLeaves -= subtreeSize;
61
+ }
62
+
63
+ subtreeSize *= 2;
64
+ }
65
+
66
+ return root!;
67
+ }
68
+
69
+ export async function computeUnbalancedMerkleTreeRootAsync(
70
+ leaves: Buffer[],
71
+ hasher = poseidonMerkleHash,
72
+ emptyRoot = Buffer.alloc(32),
73
+ ): Promise<Buffer> {
26
74
  if (!leaves.length) {
27
- throw new Error('Cannot compute a Merkle root with no leaves');
75
+ return emptyRoot;
28
76
  }
29
77
 
30
78
  if (leaves.length === 1) {
@@ -37,11 +85,11 @@ export function computeUnbalancedMerkleTreeRoot(leaves: Buffer[], hasher = sha25
37
85
  while (numRemainingLeaves > 1) {
38
86
  if ((numRemainingLeaves & subtreeSize) !== 0) {
39
87
  const subtreeLeaves = leaves.slice(numRemainingLeaves - subtreeSize, numRemainingLeaves);
40
- const subtreeRoot = MerkleTreeCalculator.computeTreeRootSync(subtreeLeaves, hasher);
88
+ const subtreeRoot = await computeBalancedMerkleTreeRootAsync(subtreeLeaves, hasher);
41
89
  if (!root) {
42
90
  root = subtreeRoot;
43
91
  } else {
44
- root = hasher(Buffer.concat([subtreeRoot, root]));
92
+ root = await hasher(subtreeRoot, root);
45
93
  }
46
94
 
47
95
  numRemainingLeaves -= subtreeSize;
@@ -1,4 +1,4 @@
1
- import { sha256Trunc } from '../crypto/index.js';
1
+ import { shaMerkleHash } from './balanced_merkle_tree.js';
2
2
  import type { Hasher } from './hasher.js';
3
3
  import { SiblingPath } from './sibling_path.js';
4
4
  import { type TreeNodeLocation, UnbalancedTreeStore } from './unbalanced_tree_store.js';
@@ -6,9 +6,10 @@ import { type TreeNodeLocation, UnbalancedTreeStore } from './unbalanced_tree_st
6
6
  export function computeCompressedUnbalancedMerkleTreeRoot(
7
7
  leaves: Buffer[],
8
8
  valueToCompress = Buffer.alloc(32),
9
+ emptyRoot = Buffer.alloc(32),
9
10
  hasher?: Hasher['hash'],
10
11
  ): Buffer {
11
- const calculator = UnbalancedMerkleTreeCalculator.create(leaves, valueToCompress, hasher);
12
+ const calculator = UnbalancedMerkleTreeCalculator.create(leaves, valueToCompress, emptyRoot, hasher);
12
13
  return calculator.getRoot();
13
14
  }
14
15
 
@@ -32,12 +33,9 @@ export class UnbalancedMerkleTreeCalculator {
32
33
  public constructor(
33
34
  private readonly leaves: Buffer[],
34
35
  private readonly valueToCompress: Buffer,
36
+ private readonly emptyRoot: Buffer,
35
37
  private readonly hasher: Hasher['hash'],
36
38
  ) {
37
- if (leaves.length === 0) {
38
- throw Error('Cannot create a compressed unbalanced tree with 0 leaves.');
39
- }
40
-
41
39
  this.store = new UnbalancedTreeStore(leaves.length);
42
40
  this.buildTree();
43
41
  }
@@ -45,9 +43,10 @@ export class UnbalancedMerkleTreeCalculator {
45
43
  static create(
46
44
  leaves: Buffer[],
47
45
  valueToCompress = Buffer.alloc(0),
48
- hasher = (left: Buffer, right: Buffer) => sha256Trunc(Buffer.concat([left, right])) as Buffer<ArrayBuffer>,
46
+ emptyRoot = Buffer.alloc(32),
47
+ hasher = shaMerkleHash,
49
48
  ) {
50
- return new UnbalancedMerkleTreeCalculator(leaves, valueToCompress, hasher);
49
+ return new UnbalancedMerkleTreeCalculator(leaves, valueToCompress, emptyRoot, hasher);
51
50
  }
52
51
 
53
52
  /**
@@ -113,8 +112,8 @@ export class UnbalancedMerkleTreeCalculator {
113
112
  // Start with the leaves that are not compressed.
114
113
  let toProcess = this.leafLocations.filter((_, i) => !this.leaves[i].equals(this.valueToCompress));
115
114
  if (!toProcess.length) {
116
- // All leaves are compressed. Set 0 to the root.
117
- this.store.setNode({ level: 0, index: 0 }, { value: Buffer.alloc(32) });
115
+ // All leaves are compressed. Set empty root to the root.
116
+ this.store.setNode({ level: 0, index: 0 }, { value: this.emptyRoot });
118
117
  return;
119
118
  }
120
119
 
@@ -138,10 +137,7 @@ export class UnbalancedMerkleTreeCalculator {
138
137
  const shouldShiftUp = !sibling || sibling.value.equals(this.valueToCompress);
139
138
  if (shouldShiftUp) {
140
139
  // The node becomes the parent if the sibling is a compressed leaf.
141
- const isLeaf = this.shiftNodeUp(location, parentLocation);
142
- if (!isLeaf) {
143
- this.shiftChildrenUp(location);
144
- }
140
+ this.shiftNodeUp(location, parentLocation);
145
141
  } else {
146
142
  // Hash the value with the (right) sibling and update the parent node.
147
143
  const node = this.store.getNode(location)!;
@@ -157,38 +153,35 @@ export class UnbalancedMerkleTreeCalculator {
157
153
  }
158
154
  }
159
155
 
160
- private shiftNodeUp(fromLocation: TreeNodeLocation, toLocation: TreeNodeLocation): boolean {
161
- const node = this.store.getNode(fromLocation)!;
162
-
163
- this.store.setNode(toLocation, node);
164
-
165
- const isLeaf = node.leafIndex !== undefined;
166
- if (isLeaf) {
167
- // Update the location if the node is a leaf.
168
- this.leafLocations[node.leafIndex!] = toLocation;
156
+ private shiftNodeUp(from: TreeNodeLocation, to: TreeNodeLocation) {
157
+ // Collect all nodes that need to shift.
158
+ const nodesToShift = this.collectNodesToShift(from, to);
159
+ // Move all nodes to their new locations.
160
+ for (const { node, newLocation } of nodesToShift) {
161
+ this.store.setNode(newLocation, node);
162
+ if (node.leafIndex !== undefined) {
163
+ this.leafLocations[node.leafIndex] = newLocation;
164
+ }
169
165
  }
170
-
171
- return isLeaf;
172
166
  }
173
167
 
174
- private shiftChildrenUp(parent: TreeNodeLocation) {
175
- const [left, right] = this.store.getChildLocations(parent);
176
-
177
- const level = parent.level;
178
- const groupSize = 2 ** level;
179
- const computeNewLocation = (index: number) => ({
180
- level,
181
- index: Math.floor(index / (groupSize * 2)) * groupSize + (index % groupSize),
182
- });
168
+ private collectNodesToShift(from: TreeNodeLocation, to: TreeNodeLocation) {
169
+ const node = this.store.getNode(from);
170
+ if (!node) {
171
+ return [];
172
+ }
183
173
 
184
- const isLeftLeaf = this.shiftNodeUp(left, computeNewLocation(left.index));
185
- const isRightLeaf = this.shiftNodeUp(right, computeNewLocation(right.index));
174
+ let result = [{ node, newLocation: to }];
186
175
 
187
- if (!isLeftLeaf) {
188
- this.shiftChildrenUp(left);
189
- }
190
- if (!isRightLeaf) {
191
- this.shiftChildrenUp(right);
176
+ // If not a leaf, collect its children.
177
+ if (node.leafIndex === undefined) {
178
+ const [leftChild, rightChild] = this.store.getChildLocations(from);
179
+ const [leftChildNew, rightChildNew] = this.store.getChildLocations(to);
180
+ result = result
181
+ .concat(this.collectNodesToShift(leftChild, leftChildNew))
182
+ .concat(this.collectNodesToShift(rightChild, rightChildNew));
192
183
  }
184
+
185
+ return result;
193
186
  }
194
187
  }
@@ -19,6 +19,11 @@ export function unfreeze<T>(obj: T): Writeable<T> {
19
19
  return obj as Writeable<T>;
20
20
  }
21
21
 
22
+ /** Is defined type guard */
23
+ export function isDefined<T>(value: T | undefined): value is T {
24
+ return value !== undefined;
25
+ }
26
+
22
27
  /** Resolves a record-like type. Lifted from viem. */
23
28
  export type Prettify<T> = {
24
29
  [K in keyof T]: T[K];
@@ -1,39 +0,0 @@
1
- /**
2
- * BN254 utility functions for point operations.
3
- * Provides compression, decompression, and public key generation for the BN254 curve.
4
- * Uses the bb.js Barretenberg backend for point operations.
5
- */
6
- /**
7
- * Generate a compressed BN254 G1 public key from a private key.
8
- *
9
- * @param privateKeyHex - Private key as 0x-prefixed hex string
10
- * @returns Compressed G1 point (32 bytes with sign bit in MSB)
11
- */
12
- export declare function computeBn254G1PublicKeyCompressed(privateKeyHex: string): Promise<string>;
13
- /**
14
- * Generate uncompressed BN254 G1 public key from a private key.
15
- *
16
- * @param privateKeyHex - Private key as 0x-prefixed hex string
17
- * @returns G1 point in affine coordinates
18
- */
19
- export declare function computeBn254G1PublicKey(privateKeyHex: string): Promise<{
20
- x: bigint;
21
- y: bigint;
22
- }>;
23
- /**
24
- * Generate BN254 G2 public key from a private key.
25
- *
26
- * @param privateKeyHex - Private key as 0x-prefixed hex string
27
- * @returns G2 point in affine coordinates
28
- */
29
- export declare function computeBn254G2PublicKey(privateKeyHex: string): Promise<{
30
- x: {
31
- c0: bigint;
32
- c1: bigint;
33
- };
34
- y: {
35
- c0: bigint;
36
- c1: bigint;
37
- };
38
- }>;
39
- //# sourceMappingURL=bn254_utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bn254_utils.d.ts","sourceRoot":"","sources":["../../../src/crypto/bn254/bn254_utils.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AAEH;;;;;GAKG;AACH,wBAAsB,iCAAiC,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAU9F;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAQtG;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5E,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/B,CAAC,CAWD"}
@@ -1,56 +0,0 @@
1
- import { Fr } from '../../fields/fields.js';
2
- import { Bn254G1Point, Bn254G2Point } from './index.js';
3
- /**
4
- * BN254 utility functions for point operations.
5
- * Provides compression, decompression, and public key generation for the BN254 curve.
6
- * Uses the bb.js Barretenberg backend for point operations.
7
- */ /**
8
- * Generate a compressed BN254 G1 public key from a private key.
9
- *
10
- * @param privateKeyHex - Private key as 0x-prefixed hex string
11
- * @returns Compressed G1 point (32 bytes with sign bit in MSB)
12
- */ export async function computeBn254G1PublicKeyCompressed(privateKeyHex) {
13
- const sk = BigInt(privateKeyHex);
14
- const skReduced = sk % Fr.MODULUS;
15
- // Generate G1 point on BN254 curve using bb.js
16
- const scalar = Fr.fromString(skReduced.toString());
17
- const pk1 = await Bn254G1Point.generator(scalar);
18
- // Compress the point using the primitive method
19
- return '0x' + pk1.compress().toString('hex');
20
- }
21
- /**
22
- * Generate uncompressed BN254 G1 public key from a private key.
23
- *
24
- * @param privateKeyHex - Private key as 0x-prefixed hex string
25
- * @returns G1 point in affine coordinates
26
- */ export async function computeBn254G1PublicKey(privateKeyHex) {
27
- const sk = BigInt(privateKeyHex);
28
- const skReduced = sk % Fr.MODULUS;
29
- const scalar = Fr.fromString(skReduced.toString());
30
- const pk1 = await Bn254G1Point.generator(scalar);
31
- return {
32
- x: pk1.x.toBigInt(),
33
- y: pk1.y.toBigInt()
34
- };
35
- }
36
- /**
37
- * Generate BN254 G2 public key from a private key.
38
- *
39
- * @param privateKeyHex - Private key as 0x-prefixed hex string
40
- * @returns G2 point in affine coordinates
41
- */ export async function computeBn254G2PublicKey(privateKeyHex) {
42
- const sk = BigInt(privateKeyHex);
43
- const skReduced = sk % Fr.MODULUS;
44
- const scalar = Fr.fromString(skReduced.toString());
45
- const pk2 = await Bn254G2Point.generator(scalar);
46
- return {
47
- x: {
48
- c0: pk2.x[0].toBigInt(),
49
- c1: pk2.x[1].toBigInt()
50
- },
51
- y: {
52
- c0: pk2.y[0].toBigInt(),
53
- c1: pk2.y[1].toBigInt()
54
- }
55
- };
56
- }
@@ -1,17 +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 './bn254/index.js';
11
- export * from './grumpkin/index.js';
12
- export * from './ecdsa/index.js';
13
- export * from './secp256k1/index.js';
14
- export * from './schnorr/index.js';
15
- export * from './signature/index.js';
16
- export * from './bls/index.js';
17
- //# 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,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC"}
@@ -1,16 +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 './bn254/index.js';
11
- export * from './grumpkin/index.js';
12
- export * from './ecdsa/index.js';
13
- export * from './secp256k1/index.js';
14
- export * from './schnorr/index.js';
15
- export * from './signature/index.js';
16
- export * from './bls/index.js';
@@ -1 +0,0 @@
1
- {"version":3,"file":"bls12_fields.d.ts","sourceRoot":"","sources":["../../src/fields/bls12_fields.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"bls12_point.d.ts","sourceRoot":"","sources":["../../src/fields/bls12_point.ts"],"names":[],"mappings":"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"}
@@ -1,66 +0,0 @@
1
- import type { Tuple } from '../serialize/types.js';
2
- import { Fr } from './fields.js';
3
- /**
4
- * Class to wrap a single point coordinate.
5
- * This class handles the complexities of representing point coordinates as 32 byte buffers as well as fields.
6
- * The coordinate value is split across 2 fields to ensure that the max size of a field is not breached.
7
- * This is achieved by placing the most significant byte of the lower field into the least significant byte of the higher field.
8
- * Calls to 'toBuffer' or 'toBigInt' undo this change and simply return the original 32 byte value.
9
- * Calls to 'toFieldsBuffer' will return a 64 bytes buffer containing the serialized fields.
10
- */
11
- export declare class Coordinate {
12
- /**
13
- * The fields of the coordinate value. Least significant limb at index 0.
14
- */
15
- fields: Tuple<Fr, 2>;
16
- static ZERO: Coordinate;
17
- constructor(
18
- /**
19
- * The fields of the coordinate value. Least significant limb at index 0.
20
- */
21
- fields: Tuple<Fr, 2>);
22
- /**
23
- * Converts the coordinate data into a tuple of fields
24
- * @returns A tuple of the coordinate fields
25
- */
26
- toFields(): Tuple<Fr, 2>;
27
- /**
28
- * Generates a random coordinate value
29
- * @returns The random coordinate
30
- */
31
- static random(): Coordinate;
32
- /**
33
- * serializes the object to buffer of 2 fields.
34
- * @returns A buffer serialization of the object.
35
- */
36
- toFieldsBuffer(): Buffer;
37
- /**
38
- * serializes the coordinate to a single 32 byte buffer.
39
- * @returns A buffer serialization of the object.
40
- */
41
- toBuffer(): Buffer;
42
- /**
43
- * Returns true if this coordinate is equal to the one provided
44
- * @param other - The coordinate against which to compare
45
- * @returns True if the coordinates are the same, false otherwise
46
- */
47
- equals(other: Coordinate): boolean;
48
- /**
49
- * Returns the coordinate's value as a bigint
50
- * @returns The coordinate value as a bigint
51
- */
52
- toBigInt(): bigint;
53
- /**
54
- * Creates a coordinate object from a 32 byte coordinate value
55
- * @param coordinate - A buffer containing the 32 byte coordinate value
56
- * @returns The new coordinate object
57
- */
58
- static fromBuffer(coordinate: Buffer): Coordinate;
59
- /**
60
- * Creates a coordinate object from a field
61
- * @param coordinate - The field containing the coordinate
62
- * @returns The new coordinate object
63
- */
64
- static fromField(coordinate: Fr): Coordinate;
65
- }
66
- //# sourceMappingURL=coordinate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"coordinate.d.ts","sourceRoot":"","sources":["../../src/fields/coordinate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC;;;;;;;GAOG;AACH,qBAAa,UAAU;IAInB;;OAEG;IACI,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAN7B,MAAM,CAAC,IAAI,aAAsC;;IAG/C;;OAEG;IACI,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAG7B;;;OAGG;IACH,QAAQ,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAIxB;;;OAGG;IACH,MAAM,CAAC,MAAM,IAAI,UAAU;IAI3B;;;OAGG;IACH,cAAc,IAAI,MAAM;IAIxB;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAOlB;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAIlC;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM;IAYpC;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE;CAOhC"}