@aztec/foundation 4.0.0-nightly.20250907 → 4.0.0-nightly.20260107

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 (476) 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 +4 -2
  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 +4 -2
  38. package/dest/buffer/index.d.ts +1 -1
  39. package/dest/collection/array.d.ts +3 -1
  40. package/dest/collection/array.d.ts.map +1 -1
  41. package/dest/collection/array.js +12 -3
  42. package/dest/collection/index.d.ts +1 -1
  43. package/dest/collection/object.d.ts +5 -1
  44. package/dest/collection/object.d.ts.map +1 -1
  45. package/dest/collection/object.js +6 -0
  46. package/dest/committable/committable.d.ts +1 -1
  47. package/dest/committable/committable.d.ts.map +1 -1
  48. package/dest/committable/index.d.ts +1 -1
  49. package/dest/config/env_var.d.ts +2 -2
  50. package/dest/config/env_var.d.ts.map +1 -1
  51. package/dest/config/index.d.ts +12 -2
  52. package/dest/config/index.d.ts.map +1 -1
  53. package/dest/config/index.js +17 -2
  54. package/dest/config/network_config.d.ts +54 -0
  55. package/dest/config/network_config.d.ts.map +1 -0
  56. package/dest/config/network_config.js +11 -0
  57. package/dest/config/network_name.d.ts +2 -2
  58. package/dest/config/network_name.d.ts.map +1 -1
  59. package/dest/config/network_name.js +10 -2
  60. package/dest/config/secret_value.d.ts +1 -1
  61. package/dest/config/secret_value.d.ts.map +1 -1
  62. package/dest/config/secret_value.js +3 -1
  63. package/dest/crypto/aes128/index.d.ts +1 -1
  64. package/dest/crypto/aes128/index.d.ts.map +1 -1
  65. package/dest/crypto/aes128/index.js +19 -6
  66. package/dest/crypto/bls/bn254_keystore.d.ts +296 -0
  67. package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -0
  68. package/dest/crypto/bls/bn254_keystore.js +218 -0
  69. package/dest/crypto/bls/index.d.ts +13 -0
  70. package/dest/crypto/bls/index.d.ts.map +1 -0
  71. package/dest/crypto/bls/index.js +87 -0
  72. package/dest/crypto/bn254/index.d.ts +39 -0
  73. package/dest/crypto/bn254/index.d.ts.map +1 -0
  74. package/dest/crypto/bn254/index.js +56 -0
  75. package/dest/crypto/ecdsa/index.d.ts +1 -1
  76. package/dest/crypto/ecdsa/index.d.ts.map +1 -1
  77. package/dest/crypto/ecdsa/index.js +58 -48
  78. package/dest/crypto/ecdsa/signature.d.ts +2 -11
  79. package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
  80. package/dest/crypto/ecdsa/signature.js +2 -2
  81. package/dest/crypto/grumpkin/index.d.ts +10 -13
  82. package/dest/crypto/grumpkin/index.d.ts.map +1 -1
  83. package/dest/crypto/grumpkin/index.js +61 -55
  84. package/dest/crypto/keccak/index.d.ts +1 -1
  85. package/dest/crypto/keys/index.d.ts +2 -2
  86. package/dest/crypto/keys/index.d.ts.map +1 -1
  87. package/dest/crypto/keys/index.js +8 -5
  88. package/dest/crypto/pedersen/index.d.ts +1 -1
  89. package/dest/crypto/pedersen/pedersen.noble.d.ts +1 -1
  90. package/dest/crypto/pedersen/pedersen.wasm.d.ts +2 -2
  91. package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
  92. package/dest/crypto/pedersen/pedersen.wasm.js +24 -14
  93. package/dest/crypto/poseidon/index.d.ts +2 -2
  94. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  95. package/dest/crypto/poseidon/index.js +33 -18
  96. package/dest/crypto/random/index.d.ts +1 -1
  97. package/dest/crypto/random/index.d.ts.map +1 -1
  98. package/dest/crypto/random/randomness_singleton.d.ts +1 -1
  99. package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
  100. package/dest/crypto/schnorr/index.d.ts +3 -2
  101. package/dest/crypto/schnorr/index.d.ts.map +1 -1
  102. package/dest/crypto/schnorr/index.js +30 -38
  103. package/dest/crypto/schnorr/signature.d.ts +2 -2
  104. package/dest/crypto/schnorr/signature.d.ts.map +1 -1
  105. package/dest/crypto/schnorr/signature.js +2 -2
  106. package/dest/crypto/secp256k1/index.d.ts +1 -1
  107. package/dest/crypto/secp256k1/index.d.ts.map +1 -1
  108. package/dest/crypto/secp256k1/index.js +23 -18
  109. package/dest/crypto/secp256k1-signer/index.d.ts +1 -1
  110. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts +1 -1
  111. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts.map +1 -1
  112. package/dest/crypto/secp256k1-signer/utils.d.ts +49 -3
  113. package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
  114. package/dest/crypto/secp256k1-signer/utils.js +87 -5
  115. package/dest/crypto/serialize.d.ts +1 -1
  116. package/dest/crypto/sha256/index.d.ts +2 -2
  117. package/dest/crypto/sha256/index.d.ts.map +1 -1
  118. package/dest/crypto/sha256/index.js +1 -1
  119. package/dest/crypto/sha512/index.d.ts +3 -3
  120. package/dest/crypto/sha512/index.d.ts.map +1 -1
  121. package/dest/crypto/sha512/index.js +1 -1
  122. package/dest/crypto/signature/index.d.ts +2 -2
  123. package/dest/crypto/signature/index.d.ts.map +1 -1
  124. package/dest/crypto/sync/index.d.ts +1 -1
  125. package/dest/crypto/sync/index.js +1 -1
  126. package/dest/crypto/sync/pedersen/index.d.ts +2 -2
  127. package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
  128. package/dest/crypto/sync/pedersen/index.js +18 -11
  129. package/dest/crypto/sync/poseidon/index.d.ts +2 -2
  130. package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
  131. package/dest/crypto/sync/poseidon/index.js +28 -13
  132. package/dest/{fields/bls12_fields.d.ts → curves/bls12/field.d.ts} +3 -3
  133. package/dest/curves/bls12/field.d.ts.map +1 -0
  134. package/dest/{fields/bls12_fields.js → curves/bls12/field.js} +12 -9
  135. package/dest/curves/bls12/index.d.ts +3 -0
  136. package/dest/curves/bls12/index.d.ts.map +1 -0
  137. package/dest/curves/bls12/index.js +2 -0
  138. package/dest/{fields/bls12_point.d.ts → curves/bls12/point.d.ts} +11 -20
  139. package/dest/curves/bls12/point.d.ts.map +1 -0
  140. package/dest/{fields/bls12_point.js → curves/bls12/point.js} +17 -15
  141. package/dest/curves/bn254/field.d.ts +180 -0
  142. package/dest/curves/bn254/field.d.ts.map +1 -0
  143. package/dest/{fields/fields.js → curves/bn254/field.js} +71 -59
  144. package/dest/curves/bn254/index.d.ts +3 -0
  145. package/dest/curves/bn254/index.d.ts.map +1 -0
  146. package/dest/curves/bn254/index.js +2 -0
  147. package/dest/curves/bn254/point.d.ts +54 -0
  148. package/dest/curves/bn254/point.d.ts.map +1 -0
  149. package/dest/curves/bn254/point.js +143 -0
  150. package/dest/curves/grumpkin/index.d.ts +10 -0
  151. package/dest/curves/grumpkin/index.d.ts.map +1 -0
  152. package/dest/curves/grumpkin/index.js +3 -0
  153. package/dest/{fields → curves/grumpkin}/point.d.ts +13 -13
  154. package/dest/curves/grumpkin/point.d.ts.map +1 -0
  155. package/dest/{fields → curves/grumpkin}/point.js +24 -7
  156. package/dest/decorators/index.d.ts +1 -1
  157. package/dest/decorators/memoize.d.ts +1 -1
  158. package/dest/decorators/memoize.d.ts.map +1 -1
  159. package/dest/error/index.d.ts +4 -4
  160. package/dest/error/index.d.ts.map +1 -1
  161. package/dest/eth-address/index.d.ts +14 -4
  162. package/dest/eth-address/index.d.ts.map +1 -1
  163. package/dest/eth-address/index.js +26 -2
  164. package/dest/eth-signature/eth_signature.d.ts +1 -4
  165. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  166. package/dest/eth-signature/eth_signature.js +2 -4
  167. package/dest/eth-signature/index.d.ts +1 -1
  168. package/dest/fs/index.d.ts +1 -1
  169. package/dest/fs/run_in_dir.d.ts +1 -1
  170. package/dest/fs/try_rm_dir.d.ts +1 -1
  171. package/dest/iterable/all.d.ts +1 -1
  172. package/dest/iterable/filter.d.ts +1 -1
  173. package/dest/iterable/index.d.ts +1 -1
  174. package/dest/iterable/isAsyncIt.d.ts +1 -1
  175. package/dest/iterable/map.d.ts +1 -1
  176. package/dest/iterable/peek.d.ts +1 -1
  177. package/dest/iterable/sort.d.ts +1 -1
  178. package/dest/iterable/take.d.ts +1 -1
  179. package/dest/iterable/toArray.d.ts +1 -1
  180. package/dest/iterator/filter.d.ts +3 -0
  181. package/dest/iterator/filter.d.ts.map +1 -0
  182. package/dest/iterator/filter.js +7 -0
  183. package/dest/iterator/index.d.ts +2 -0
  184. package/dest/iterator/index.d.ts.map +1 -0
  185. package/dest/iterator/index.js +1 -0
  186. package/dest/json-rpc/client/fetch.d.ts +1 -1
  187. package/dest/json-rpc/client/index.d.ts +1 -1
  188. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +1 -1
  189. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
  190. package/dest/json-rpc/client/safe_json_rpc_client.js +9 -0
  191. package/dest/json-rpc/client/undici.d.ts +1 -1
  192. package/dest/json-rpc/convert.d.ts +1 -1
  193. package/dest/json-rpc/errors.d.ts +1 -1
  194. package/dest/json-rpc/errors.d.ts.map +1 -1
  195. package/dest/json-rpc/fixtures/class_a.d.ts +3 -3
  196. package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
  197. package/dest/json-rpc/fixtures/class_b.d.ts +3 -3
  198. package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -1
  199. package/dest/json-rpc/fixtures/test_state.d.ts +1 -1
  200. package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
  201. package/dest/json-rpc/index.d.ts +1 -1
  202. package/dest/json-rpc/js_utils.d.ts +1 -1
  203. package/dest/json-rpc/js_utils.d.ts.map +1 -1
  204. package/dest/json-rpc/server/index.d.ts +1 -1
  205. package/dest/json-rpc/server/safe_json_rpc_server.d.ts +1 -1
  206. package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
  207. package/dest/json-rpc/test/index.d.ts +1 -1
  208. package/dest/json-rpc/test/integration.d.ts +1 -1
  209. package/dest/log/console.d.ts +1 -1
  210. package/dest/log/gcloud-logger-config.d.ts +1 -1
  211. package/dest/log/gcloud-logger-config.d.ts.map +1 -1
  212. package/dest/log/index.d.ts +1 -1
  213. package/dest/log/libp2p_logger.d.ts +1 -1
  214. package/dest/log/log-filters.d.ts +1 -1
  215. package/dest/log/log-levels.d.ts +1 -1
  216. package/dest/log/log_fn.d.ts +2 -2
  217. package/dest/log/log_fn.d.ts.map +1 -1
  218. package/dest/log/noir_debug_log_util.d.ts +1 -1
  219. package/dest/log/pino-logger.d.ts +2 -2
  220. package/dest/log/pino-logger.d.ts.map +1 -1
  221. package/dest/log/pino-logger.js +0 -1
  222. package/dest/message/index.d.ts +1 -1
  223. package/dest/message/index.d.ts.map +1 -1
  224. package/dest/mutex/index.d.ts +1 -1
  225. package/dest/mutex/index.d.ts.map +1 -1
  226. package/dest/mutex/mutex_database.d.ts +1 -1
  227. package/dest/noir/index.d.ts +1 -1
  228. package/dest/noir/noir_package_config.d.ts +9 -9
  229. package/dest/number/index.d.ts +1 -1
  230. package/dest/profiler/index.d.ts +2 -0
  231. package/dest/profiler/index.d.ts.map +1 -0
  232. package/dest/profiler/index.js +1 -0
  233. package/dest/profiler/profiler.d.ts +8 -0
  234. package/dest/profiler/profiler.d.ts.map +1 -0
  235. package/dest/profiler/profiler.js +97 -0
  236. package/dest/promise/index.d.ts +1 -1
  237. package/dest/promise/running-promise.d.ts +1 -1
  238. package/dest/promise/running-promise.d.ts.map +1 -1
  239. package/dest/promise/utils.d.ts +1 -1
  240. package/dest/queue/base_memory_queue.d.ts +1 -1
  241. package/dest/queue/base_memory_queue.d.ts.map +1 -1
  242. package/dest/queue/batch_queue.d.ts +1 -1
  243. package/dest/queue/batch_queue.d.ts.map +1 -1
  244. package/dest/queue/bounded_serial_queue.d.ts +1 -1
  245. package/dest/queue/bounded_serial_queue.d.ts.map +1 -1
  246. package/dest/queue/fifo_memory_queue.d.ts +1 -1
  247. package/dest/queue/fifo_memory_queue.d.ts.map +1 -1
  248. package/dest/queue/index.d.ts +1 -1
  249. package/dest/queue/priority_memory_queue.d.ts +1 -1
  250. package/dest/queue/priority_memory_queue.d.ts.map +1 -1
  251. package/dest/queue/priority_queue.d.ts +1 -1
  252. package/dest/queue/priority_queue.d.ts.map +1 -1
  253. package/dest/queue/semaphore.d.ts +1 -1
  254. package/dest/queue/semaphore.d.ts.map +1 -1
  255. package/dest/queue/serial_queue.d.ts +1 -1
  256. package/dest/queue/serial_queue.d.ts.map +1 -1
  257. package/dest/retry/index.d.ts +1 -1
  258. package/dest/running-promise/index.d.ts +1 -1
  259. package/dest/schemas/api.d.ts +1 -1
  260. package/dest/schemas/index.d.ts +1 -1
  261. package/dest/schemas/parse.d.ts +1 -1
  262. package/dest/schemas/schemas.d.ts +15 -17
  263. package/dest/schemas/schemas.d.ts.map +1 -1
  264. package/dest/schemas/schemas.js +14 -10
  265. package/dest/schemas/types.d.ts +31 -1
  266. package/dest/schemas/types.d.ts.map +1 -1
  267. package/dest/schemas/types.js +25 -1
  268. package/dest/schemas/utils.d.ts +4 -4
  269. package/dest/schemas/utils.d.ts.map +1 -1
  270. package/dest/schemas/utils.js +15 -5
  271. package/dest/serialize/buffer_reader.d.ts +3 -1
  272. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  273. package/dest/serialize/buffer_reader.js +3 -0
  274. package/dest/serialize/field_reader.d.ts +2 -2
  275. package/dest/serialize/field_reader.d.ts.map +1 -1
  276. package/dest/serialize/field_reader.js +1 -1
  277. package/dest/serialize/free_funcs.d.ts +2 -2
  278. package/dest/serialize/free_funcs.d.ts.map +1 -1
  279. package/dest/serialize/free_funcs.js +1 -1
  280. package/dest/serialize/index.d.ts +1 -1
  281. package/dest/serialize/serialize.d.ts +2 -2
  282. package/dest/serialize/serialize.d.ts.map +1 -1
  283. package/dest/serialize/serialize.js +1 -1
  284. package/dest/serialize/type_registry.d.ts +1 -1
  285. package/dest/serialize/type_registry.d.ts.map +1 -1
  286. package/dest/serialize/types.d.ts +1 -1
  287. package/dest/sleep/index.d.ts +3 -1
  288. package/dest/sleep/index.d.ts.map +1 -1
  289. package/dest/sleep/index.js +4 -0
  290. package/dest/string/index.d.ts +5 -1
  291. package/dest/string/index.d.ts.map +1 -1
  292. package/dest/string/index.js +19 -2
  293. package/dest/testing/files/index.d.ts +2 -1
  294. package/dest/testing/files/index.d.ts.map +1 -1
  295. package/dest/testing/files/index.js +1 -1
  296. package/dest/testing/formatting.d.ts +4 -0
  297. package/dest/testing/formatting.d.ts.map +1 -0
  298. package/dest/testing/formatting.js +3 -0
  299. package/dest/testing/index.d.ts +2 -1
  300. package/dest/testing/index.d.ts.map +1 -1
  301. package/dest/testing/index.js +1 -0
  302. package/dest/testing/port_allocator.d.ts +1 -1
  303. package/dest/testing/snapshot_serializer.d.ts +1 -1
  304. package/dest/testing/test_data.d.ts +1 -1
  305. package/dest/timer/date.d.ts +2 -1
  306. package/dest/timer/date.d.ts.map +1 -1
  307. package/dest/timer/date.js +3 -0
  308. package/dest/timer/elapsed.d.ts +1 -1
  309. package/dest/timer/index.d.ts +1 -1
  310. package/dest/timer/timeout.d.ts +1 -1
  311. package/dest/timer/timeout.d.ts.map +1 -1
  312. package/dest/timer/timer.d.ts +1 -1
  313. package/dest/timer/timer.d.ts.map +1 -1
  314. package/dest/transport/dispatch/create_dispatch_fn.d.ts +1 -1
  315. package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +1 -1
  316. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +1 -1
  317. package/dest/transport/dispatch/messages.d.ts +1 -1
  318. package/dest/transport/index.d.ts +1 -1
  319. package/dest/transport/interface/connector.d.ts +1 -1
  320. package/dest/transport/interface/listener.d.ts +1 -1
  321. package/dest/transport/interface/socket.d.ts +1 -1
  322. package/dest/transport/interface/transferable.d.ts +1 -1
  323. package/dest/transport/node/index.d.ts +1 -1
  324. package/dest/transport/node/node_connector.d.ts +1 -1
  325. package/dest/transport/node/node_connector.d.ts.map +1 -1
  326. package/dest/transport/node/node_connector_socket.d.ts +1 -1
  327. package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
  328. package/dest/transport/node/node_listener.d.ts +1 -1
  329. package/dest/transport/node/node_listener.d.ts.map +1 -1
  330. package/dest/transport/node/node_listener_socket.d.ts +1 -1
  331. package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
  332. package/dest/transport/transport_client.d.ts +1 -1
  333. package/dest/transport/transport_client.d.ts.map +1 -1
  334. package/dest/transport/transport_server.d.ts +1 -10
  335. package/dest/transport/transport_server.d.ts.map +1 -1
  336. package/dest/trees/balanced_merkle_tree.d.ts +22 -0
  337. package/dest/trees/balanced_merkle_tree.d.ts.map +1 -0
  338. package/dest/trees/balanced_merkle_tree.js +66 -0
  339. package/dest/trees/hasher.d.ts +1 -1
  340. package/dest/trees/index.d.ts +2 -1
  341. package/dest/trees/index.d.ts.map +1 -1
  342. package/dest/trees/index.js +1 -0
  343. package/dest/trees/indexed_merkle_tree.d.ts +1 -1
  344. package/dest/trees/indexed_merkle_tree.d.ts.map +1 -1
  345. package/dest/trees/indexed_merkle_tree.js +1 -1
  346. package/dest/trees/indexed_merkle_tree_calculator.d.ts +1 -1
  347. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
  348. package/dest/trees/indexed_tree_leaf.d.ts +1 -1
  349. package/dest/trees/membership_witness.d.ts +3 -24
  350. package/dest/trees/membership_witness.d.ts.map +1 -1
  351. package/dest/trees/membership_witness.js +1 -1
  352. package/dest/trees/merkle_tree.d.ts +1 -1
  353. package/dest/trees/merkle_tree.d.ts.map +1 -1
  354. package/dest/trees/merkle_tree_calculator.d.ts +2 -12
  355. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  356. package/dest/trees/merkle_tree_calculator.js +1 -31
  357. package/dest/trees/sibling_path.d.ts +5 -39
  358. package/dest/trees/sibling_path.d.ts.map +1 -1
  359. package/dest/trees/sibling_path.js +2 -2
  360. package/dest/trees/unbalanced_merkle_tree.d.ts +5 -4
  361. package/dest/trees/unbalanced_merkle_tree.d.ts.map +1 -1
  362. package/dest/trees/unbalanced_merkle_tree.js +33 -10
  363. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +27 -23
  364. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -1
  365. package/dest/trees/unbalanced_merkle_tree_calculator.js +123 -97
  366. package/dest/trees/unbalanced_tree_store.d.ts +2 -1
  367. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
  368. package/dest/trees/unbalanced_tree_store.js +6 -0
  369. package/dest/types/index.d.ts +3 -1
  370. package/dest/types/index.d.ts.map +1 -1
  371. package/dest/types/index.js +3 -0
  372. package/dest/url/index.d.ts +1 -1
  373. package/dest/validation/index.d.ts +1 -1
  374. package/package.json +32 -8
  375. package/src/array/array.ts +0 -16
  376. package/src/array/index.ts +1 -0
  377. package/src/array/sorted_array.ts +133 -0
  378. package/src/branded-types/block_number.ts +112 -0
  379. package/src/branded-types/checkpoint_number.ts +100 -0
  380. package/src/branded-types/epoch.ts +88 -0
  381. package/src/branded-types/index.ts +6 -0
  382. package/src/branded-types/slot.ts +88 -0
  383. package/src/branded-types/types.ts +2 -0
  384. package/src/buffer/buffer16.ts +2 -2
  385. package/src/buffer/buffer32.ts +2 -2
  386. package/src/collection/array.ts +15 -3
  387. package/src/collection/object.ts +8 -0
  388. package/src/config/env_var.ts +44 -10
  389. package/src/config/index.ts +22 -2
  390. package/src/config/network_config.ts +18 -0
  391. package/src/config/network_name.ts +18 -3
  392. package/src/crypto/aes128/index.ts +19 -10
  393. package/src/crypto/bls/bn254_keystore.ts +287 -0
  394. package/src/crypto/bls/index.ts +77 -0
  395. package/src/crypto/bn254/index.ts +64 -0
  396. package/src/crypto/ecdsa/index.ts +40 -37
  397. package/src/crypto/ecdsa/signature.ts +2 -2
  398. package/src/crypto/grumpkin/index.ts +38 -46
  399. package/src/crypto/keys/index.ts +6 -6
  400. package/src/crypto/pedersen/pedersen.wasm.ts +23 -19
  401. package/src/crypto/poseidon/index.ts +33 -25
  402. package/src/crypto/schnorr/index.ts +22 -18
  403. package/src/crypto/schnorr/signature.ts +2 -2
  404. package/src/crypto/secp256k1/index.ts +15 -11
  405. package/src/crypto/secp256k1-signer/utils.ts +115 -7
  406. package/src/crypto/sha256/index.ts +1 -1
  407. package/src/crypto/sha512/index.ts +1 -1
  408. package/src/crypto/signature/index.ts +1 -1
  409. package/src/crypto/sync/index.ts +1 -1
  410. package/src/crypto/sync/pedersen/index.ts +17 -16
  411. package/src/crypto/sync/poseidon/index.ts +28 -23
  412. package/src/{fields/bls12_fields.ts → curves/bls12/field.ts} +6 -6
  413. package/src/curves/bls12/index.ts +2 -0
  414. package/src/{fields/bls12_point.ts → curves/bls12/point.ts} +14 -14
  415. package/src/{fields/fields.ts → curves/bn254/field.ts} +69 -62
  416. package/src/curves/bn254/index.ts +2 -0
  417. package/src/curves/bn254/point.ts +170 -0
  418. package/src/curves/grumpkin/index.ts +11 -0
  419. package/src/{fields → curves/grumpkin}/point.ts +26 -7
  420. package/src/eth-address/index.ts +28 -3
  421. package/src/eth-signature/eth_signature.ts +2 -4
  422. package/src/iterator/filter.ts +11 -0
  423. package/src/iterator/index.ts +1 -0
  424. package/src/json-rpc/client/safe_json_rpc_client.ts +9 -0
  425. package/src/log/log_fn.ts +1 -1
  426. package/src/log/pino-logger.ts +0 -1
  427. package/src/profiler/index.ts +1 -0
  428. package/src/profiler/profiler.ts +125 -0
  429. package/src/schemas/schemas.ts +24 -13
  430. package/src/schemas/types.ts +33 -0
  431. package/src/schemas/utils.ts +21 -8
  432. package/src/serialize/buffer_reader.ts +5 -0
  433. package/src/serialize/field_reader.ts +1 -1
  434. package/src/serialize/free_funcs.ts +1 -1
  435. package/src/serialize/serialize.ts +1 -1
  436. package/src/sleep/index.ts +6 -0
  437. package/src/string/index.ts +24 -1
  438. package/src/testing/files/index.ts +1 -1
  439. package/src/testing/formatting.ts +3 -0
  440. package/src/testing/index.ts +1 -0
  441. package/src/timer/date.ts +4 -0
  442. package/src/trees/balanced_merkle_tree.ts +84 -0
  443. package/src/trees/index.ts +1 -0
  444. package/src/trees/indexed_merkle_tree.ts +1 -1
  445. package/src/trees/membership_witness.ts +1 -1
  446. package/src/trees/merkle_tree_calculator.ts +1 -34
  447. package/src/trees/sibling_path.ts +2 -2
  448. package/src/trees/unbalanced_merkle_tree.ts +55 -7
  449. package/src/trees/unbalanced_merkle_tree_calculator.ts +134 -93
  450. package/src/trees/unbalanced_tree_store.ts +5 -1
  451. package/src/types/index.ts +5 -0
  452. package/dest/crypto/index.d.ts +0 -15
  453. package/dest/crypto/index.d.ts.map +0 -1
  454. package/dest/crypto/index.js +0 -14
  455. package/dest/fields/bls12_fields.d.ts.map +0 -1
  456. package/dest/fields/bls12_point.d.ts.map +0 -1
  457. package/dest/fields/coordinate.d.ts +0 -66
  458. package/dest/fields/coordinate.d.ts.map +0 -1
  459. package/dest/fields/coordinate.js +0 -96
  460. package/dest/fields/fields.d.ts +0 -174
  461. package/dest/fields/fields.d.ts.map +0 -1
  462. package/dest/fields/index.d.ts +0 -6
  463. package/dest/fields/index.d.ts.map +0 -1
  464. package/dest/fields/index.js +0 -5
  465. package/dest/fields/point.d.ts.map +0 -1
  466. package/dest/index.d.ts +0 -29
  467. package/dest/index.d.ts.map +0 -1
  468. package/dest/index.js +0 -29
  469. package/dest/json-rpc/server/telemetry.d.ts +0 -2
  470. package/dest/json-rpc/server/telemetry.d.ts.map +0 -1
  471. package/dest/json-rpc/server/telemetry.js +0 -0
  472. package/src/crypto/index.ts +0 -14
  473. package/src/fields/coordinate.ts +0 -104
  474. package/src/fields/index.ts +0 -5
  475. package/src/index.ts +0 -29
  476. package/src/json-rpc/server/telemetry.ts +0 -0
@@ -0,0 +1,87 @@
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
+ import { mod } from '@noble/curves/abstract/modular';
3
+ import { bytesToNumberBE } from '@noble/curves/abstract/utils';
4
+ import { hmac } from '@noble/hashes/hmac';
5
+ import { sha512 } from '@noble/hashes/sha2';
6
+ import { mnemonicToSeedSync } from '@scure/bip39';
7
+ export function deriveBlsPrivateKey(mnemonic, ikm, path) {
8
+ if (ikm) {
9
+ return deriveBlsKeyFromEntropy(ikm, path);
10
+ }
11
+ if (!mnemonic) {
12
+ throw new Error('Either mnemonic or ikm must be provided for BLS derivation');
13
+ }
14
+ return deriveBlsKeyFromMnemonic(mnemonic, path);
15
+ }
16
+ /**
17
+ * Deterministically derive a BN254 BLS private key from mnemonic and derivation path.
18
+ * Returns a 0x-prefixed 32-byte hex string representing an Fr in [1, r-1].
19
+ */ export function deriveBlsKeyFromMnemonic(mnemonic, derivationPath, passphrase = '') {
20
+ const seed = Buffer.from(mnemonicToSeedSync(mnemonic, passphrase)); // 64 bytes
21
+ const data = Buffer.concat([
22
+ Buffer.from([
23
+ 0x00
24
+ ]),
25
+ seed,
26
+ Buffer.from(derivationPath, 'utf8')
27
+ ]);
28
+ const sk = deriveBn254ScalarFromData(data);
29
+ return `0x${toFixed32(sk).toString('hex')}`;
30
+ }
31
+ /**
32
+ * Deterministically derive a BN254 BLS private key from input keying material (IKM) and derivation path.
33
+ * Returns a 0x-prefixed 32-byte hex string representing an Fr in [1, r-1].
34
+ */ export function deriveBlsKeyFromEntropy(ikm, derivationPath) {
35
+ const ikmBytes = parseIkm(ikm);
36
+ const data = Buffer.concat([
37
+ Buffer.from([
38
+ 0x01
39
+ ]),
40
+ ikmBytes,
41
+ Buffer.from(derivationPath, 'utf8')
42
+ ]);
43
+ const sk = deriveBn254ScalarFromData(data);
44
+ return `0x${toFixed32(sk).toString('hex')}`;
45
+ }
46
+ function deriveBn254ScalarFromData(data) {
47
+ // Domain-separated HMAC-SHA512, then map to BN254 Fr using noble modular math. Retry on zero.
48
+ const domainKey = Buffer.from('Aztec bn254 key', 'utf8');
49
+ for(let counter = 0;; counter = counter + 1 & 0xff){
50
+ const msg = counter === 0 ? data : Buffer.concat([
51
+ data,
52
+ Buffer.from([
53
+ counter
54
+ ])
55
+ ]);
56
+ const digest = hmac(sha512, domainKey, msg); // 64 bytes
57
+ const x = bytesToNumberBE(digest);
58
+ const sk = mod(x, Fr.MODULUS);
59
+ if (sk !== 0n) {
60
+ return sk;
61
+ }
62
+ }
63
+ }
64
+ function parseIkm(ikm) {
65
+ const hexMatch = ikm.replace(/^0x/i, '');
66
+ if (/^[0-9a-fA-F]+$/.test(hexMatch) && hexMatch.length >= 2) {
67
+ const normalized = hexMatch.length % 2 === 1 ? `0${hexMatch}` : hexMatch;
68
+ return Buffer.from(normalized, 'hex');
69
+ }
70
+ return Buffer.from(ikm, 'utf8');
71
+ }
72
+ function toFixed32(x) {
73
+ const hex = x.toString(16);
74
+ const padded = hex.length % 2 === 1 ? `0${hex}` : hex;
75
+ const buf = Buffer.from(padded, 'hex');
76
+ if (buf.length === 32) {
77
+ return buf;
78
+ }
79
+ if (buf.length < 32) {
80
+ return Buffer.concat([
81
+ Buffer.alloc(32 - buf.length, 0),
82
+ buf
83
+ ]);
84
+ }
85
+ // Should never happen since x < bn254.Fr.ORDER < 2^256, but guard anyway
86
+ return buf.subarray(buf.length - 32);
87
+ }
@@ -0,0 +1,39 @@
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=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vYm4yNTQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7Ozs7R0FJRztBQUVIOzs7OztHQUtHO0FBQ0gsd0JBQXNCLGlDQUFpQyxDQUFDLGFBQWEsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQVU5RjtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQXNCLHVCQUF1QixDQUFDLGFBQWEsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDO0lBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUFDLENBQUMsRUFBRSxNQUFNLENBQUE7Q0FBRSxDQUFDLENBUXRHO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBc0IsdUJBQXVCLENBQUMsYUFBYSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUM7SUFDNUUsQ0FBQyxFQUFFO1FBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQztRQUFDLEVBQUUsRUFBRSxNQUFNLENBQUE7S0FBRSxDQUFDO0lBQzlCLENBQUMsRUFBRTtRQUFFLEVBQUUsRUFBRSxNQUFNLENBQUM7UUFBQyxFQUFFLEVBQUUsTUFBTSxDQUFBO0tBQUUsQ0FBQztDQUMvQixDQUFDLENBV0QifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/bn254/index.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"}
@@ -0,0 +1,56 @@
1
+ import { Fr } from '../../curves/bn254/field.js';
2
+ import { Bn254G1Point, Bn254G2Point } from '../../curves/bn254/point.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
+ }
@@ -36,4 +36,4 @@ export declare class Ecdsa {
36
36
  */
37
37
  verifySignature(msg: Uint8Array, pubKey: Buffer, sig: EcdsaSignature): Promise<boolean>;
38
38
  }
39
- //# sourceMappingURL=index.d.ts.map
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vZWNkc2EvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELGNBQWMsZ0JBQWdCLENBQUM7QUFFL0I7OztHQUdHO0FBQ0gscUJBQWEsS0FBSztJQUNKLE9BQU8sQ0FBQyxLQUFLO0lBQXpCLFlBQW9CLEtBQUssR0FBRSxXQUFXLEdBQUcsV0FBeUIsRUFBSTtJQUN0RTs7OztPQUlHO0lBQ1UsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBUWpFO0lBRUQ7Ozs7O09BS0c7SUFDVSxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQVFsRTtJQUVEOzs7OztPQUtHO0lBQ1UsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsY0FBYyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FRbkY7SUFFRDs7Ozs7O09BTUc7SUFDVSxlQUFlLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxjQUFjLG9CQW9CaEY7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/ecdsa/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,cAAc,gBAAgB,CAAC;AAE/B;;;GAGG;AACH,qBAAa,KAAK;IACJ,OAAO,CAAC,KAAK;gBAAL,KAAK,GAAE,WAAW,GAAG,WAAyB;IAClE;;;;OAIG;IACU,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQlE;;;;;OAKG;IACU,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM;IAanE;;;;;OAKG;IACU,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAapF;;;;;;OAMG;IACU,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc;CAYlF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/ecdsa/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,cAAc,gBAAgB,CAAC;AAE/B;;;GAGG;AACH,qBAAa,KAAK;IACJ,OAAO,CAAC,KAAK;IAAzB,YAAoB,KAAK,GAAE,WAAW,GAAG,WAAyB,EAAI;IACtE;;;;OAIG;IACU,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQjE;IAED;;;;;OAKG;IACU,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,2BAQlE;IAED;;;;;OAKG;IACU,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAQnF;IAED;;;;;;OAMG;IACU,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,oBAoBhF;CACF"}
@@ -1,6 +1,4 @@
1
1
  import { BarretenbergSync } from '@aztec/bb.js';
2
- import { numToInt32BE } from '@aztec/foundation/serialize';
3
- import { concatenateUint8Arrays } from '../serialize.js';
4
2
  import { EcdsaSignature } from './signature.js';
5
3
  export * from './signature.js';
6
4
  /**
@@ -16,13 +14,17 @@ export * from './signature.js';
16
14
  * @param privateKey - Secp256k1 private key.
17
15
  * @returns A secp256k1 public key.
18
16
  */ async computePublicKey(privateKey) {
19
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
20
- const [result] = api.getWasm().callWasmExport(`ecdsa_${this.curve === 'secp256r1' ? 'r' : ''}_compute_public_key`, [
17
+ await BarretenbergSync.initSingleton();
18
+ const api = BarretenbergSync.getSingleton();
19
+ const response = this.curve === 'secp256r1' ? api.ecdsaSecp256r1ComputePublicKey({
21
20
  privateKey
22
- ], [
23
- 64
21
+ }) : api.ecdsaSecp256k1ComputePublicKey({
22
+ privateKey
23
+ });
24
+ return Buffer.concat([
25
+ Buffer.from(response.publicKey.x),
26
+ Buffer.from(response.publicKey.y)
24
27
  ]);
25
- return Buffer.from(result);
26
28
  }
27
29
  /**
28
30
  * Constructs an ECDSA signature given a msg and a private key.
@@ -30,20 +32,18 @@ export * from './signature.js';
30
32
  * @param privateKey - The secp256k1 private key of the signer.
31
33
  * @returns An ECDSA signature of the form (r, s, v).
32
34
  */ async constructSignature(msg, privateKey) {
33
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
34
- const messageArray = concatenateUint8Arrays([
35
- numToInt32BE(msg.length),
36
- msg
37
- ]);
38
- const [r, s, v] = api.getWasm().callWasmExport(`ecdsa_${this.curve === 'secp256r1' ? 'r' : ''}_construct_signature_`, [
39
- messageArray,
35
+ await BarretenbergSync.initSingleton();
36
+ const api = BarretenbergSync.getSingleton();
37
+ const response = this.curve === 'secp256r1' ? api.ecdsaSecp256r1ConstructSignature({
38
+ message: msg,
40
39
  privateKey
41
- ], [
42
- 32,
43
- 32,
44
- 1
45
- ]);
46
- return new EcdsaSignature(Buffer.from(r), Buffer.from(s), Buffer.from(v));
40
+ }) : api.ecdsaSecp256k1ConstructSignature({
41
+ message: msg,
42
+ privateKey
43
+ });
44
+ return new EcdsaSignature(Buffer.from(response.r), Buffer.from(response.s), Buffer.from([
45
+ response.v
46
+ ]));
47
47
  }
48
48
  /**
49
49
  * Recovers a secp256k1 public key from an ECDSA signature (similar to ecrecover).
@@ -51,20 +51,23 @@ export * from './signature.js';
51
51
  * @param sig - The ECDSA signature.
52
52
  * @returns The secp256k1 public key of the signer.
53
53
  */ async recoverPublicKey(msg, sig) {
54
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
55
- const messageArray = concatenateUint8Arrays([
56
- numToInt32BE(msg.length),
57
- msg
54
+ await BarretenbergSync.initSingleton();
55
+ const api = BarretenbergSync.getSingleton();
56
+ const response = this.curve === 'secp256r1' ? api.ecdsaSecp256r1RecoverPublicKey({
57
+ message: msg,
58
+ r: sig.r,
59
+ s: sig.s,
60
+ v: sig.v[0]
61
+ }) : api.ecdsaSecp256k1RecoverPublicKey({
62
+ message: msg,
63
+ r: sig.r,
64
+ s: sig.s,
65
+ v: sig.v[0]
66
+ });
67
+ return Buffer.concat([
68
+ Buffer.from(response.publicKey.x),
69
+ Buffer.from(response.publicKey.y)
58
70
  ]);
59
- const [result] = api.getWasm().callWasmExport(`ecdsa_${this.curve === 'secp256r1' ? 'r' : ''}_recover_public_key_from_signature_`, [
60
- messageArray,
61
- sig.r,
62
- sig.s,
63
- sig.v
64
- ], [
65
- 64
66
- ]);
67
- return Buffer.from(result);
68
71
  }
69
72
  /**
70
73
  * Verifies and ECDSA signature given a secp256k1 public key.
@@ -73,20 +76,27 @@ export * from './signature.js';
73
76
  * @param sig - The ECDSA signature.
74
77
  * @returns True or false.
75
78
  */ async verifySignature(msg, pubKey, sig) {
76
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
77
- const messageArray = concatenateUint8Arrays([
78
- numToInt32BE(msg.length),
79
- msg
80
- ]);
81
- const [result] = api.getWasm().callWasmExport(`ecdsa_${this.curve === 'secp256r1' ? 'r' : ''}_verify_signature_`, [
82
- messageArray,
83
- pubKey,
84
- sig.r,
85
- sig.s,
86
- sig.v
87
- ], [
88
- 1
89
- ]);
90
- return result[0] === 1;
79
+ await BarretenbergSync.initSingleton();
80
+ const api = BarretenbergSync.getSingleton();
81
+ const response = this.curve === 'secp256r1' ? api.ecdsaSecp256r1VerifySignature({
82
+ message: msg,
83
+ publicKey: {
84
+ x: pubKey.subarray(0, 32),
85
+ y: pubKey.subarray(32, 64)
86
+ },
87
+ r: sig.r,
88
+ s: sig.s,
89
+ v: sig.v[0]
90
+ }) : api.ecdsaSecp256k1VerifySignature({
91
+ message: msg,
92
+ publicKey: {
93
+ x: pubKey.subarray(0, 32),
94
+ y: pubKey.subarray(32, 64)
95
+ },
96
+ r: sig.r,
97
+ s: sig.s,
98
+ v: sig.v[0]
99
+ });
100
+ return response.verified;
91
101
  }
92
102
  }
@@ -1,21 +1,12 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import type { Signature } from '../signature/index.js';
3
3
  /**
4
4
  * ECDSA signature used for transactions.
5
5
  * @see cpp/barretenberg/cpp/src/barretenberg/crypto/ecdsa/ecdsa.hpp
6
6
  */
7
7
  export declare class EcdsaSignature implements Signature {
8
- /**
9
- * The r byte-array (32 bytes) in an ECDSA signature.
10
- */
11
8
  r: Buffer;
12
- /**
13
- * The s byte-array (32 bytes) in an ECDSA signature.
14
- */
15
9
  s: Buffer;
16
- /**
17
- * The recovery id (1 byte) in an ECDSA signature.
18
- */
19
10
  v: Buffer;
20
11
  constructor(
21
12
  /**
@@ -66,4 +57,4 @@ export declare class EcdsaSignature implements Signature {
66
57
  */
67
58
  toFields(includeV?: boolean): Fr[];
68
59
  }
69
- //# sourceMappingURL=signature.d.ts.map
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL2VjZHNhL3NpZ25hdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHcEQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdkQ7OztHQUdHO0FBQ0gscUJBQWEsY0FBZSxZQUFXLFNBQVM7SUFLckMsQ0FBQyxFQUFFLE1BQU07SUFJVCxDQUFDLEVBQUUsTUFBTTtJQUlULENBQUMsRUFBRSxNQUFNO0lBWmxCO0lBQ0U7O09BRUc7SUFDSSxDQUFDLEVBQUUsTUFBTTtJQUNoQjs7T0FFRztJQUNJLENBQUMsRUFBRSxNQUFNO0lBQ2hCOztPQUVHO0lBQ0ksQ0FBQyxFQUFFLE1BQU0sRUFXakI7SUFFRDs7O09BR0c7SUFDSCxRQUFRLHdCQUVQO0lBRUQ7Ozs7T0FJRztJQUNILE9BQWMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLGtCQUV0QztJQUVEOzs7Ozs7T0FNRztJQUNILE9BQWMsV0FBVyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsTUFBTSxrQkFFeEQ7SUFFRDs7O09BR0c7SUFDSCxPQUFjLE1BQU0sbUJBRW5CO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxXQUVQO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsQ0FBQyxRQUFRLFVBQVEsR0FBRyxFQUFFLEVBQUUsQ0FZL0I7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../src/crypto/ecdsa/signature.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;GAGG;AACH,qBAAa,cAAe,YAAW,SAAS;IAE5C;;OAEG;IACI,CAAC,EAAE,MAAM;IAChB;;OAEG;IACI,CAAC,EAAE,MAAM;IAChB;;OAEG;IACI,CAAC,EAAE,MAAM;;IAXhB;;OAEG;IACI,CAAC,EAAE,MAAM;IAChB;;OAEG;IACI,CAAC,EAAE,MAAM;IAChB;;OAEG;IACI,CAAC,EAAE,MAAM;IAalB;;;OAGG;IACH,QAAQ;IAIR;;;;OAIG;WACW,UAAU,CAAC,MAAM,EAAE,MAAM;IAIvC;;;;;;OAMG;WACW,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAIzD;;;OAGG;WACW,MAAM;IAIpB;;;OAGG;IACH,QAAQ;IAIR;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,UAAQ,GAAG,EAAE,EAAE;CAajC"}
1
+ {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../src/crypto/ecdsa/signature.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;GAGG;AACH,qBAAa,cAAe,YAAW,SAAS;IAKrC,CAAC,EAAE,MAAM;IAIT,CAAC,EAAE,MAAM;IAIT,CAAC,EAAE,MAAM;IAZlB;IACE;;OAEG;IACI,CAAC,EAAE,MAAM;IAChB;;OAEG;IACI,CAAC,EAAE,MAAM;IAChB;;OAEG;IACI,CAAC,EAAE,MAAM,EAWjB;IAED;;;OAGG;IACH,QAAQ,wBAEP;IAED;;;;OAIG;IACH,OAAc,UAAU,CAAC,MAAM,EAAE,MAAM,kBAEtC;IAED;;;;;;OAMG;IACH,OAAc,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,kBAExD;IAED;;;OAGG;IACH,OAAc,MAAM,mBAEnB;IAED;;;OAGG;IACH,QAAQ,WAEP;IAED;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,UAAQ,GAAG,EAAE,EAAE,CAY/B;CACF"}
@@ -1,6 +1,6 @@
1
1
  import { toBufferBE } from '@aztec/foundation/bigint-buffer';
2
- import { randomBytes } from '@aztec/foundation/crypto';
3
- import { Fr } from '@aztec/foundation/fields';
2
+ import { randomBytes } from '@aztec/foundation/crypto/random';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
4
  import { mapTuple } from '@aztec/foundation/serialize';
5
5
  /**
6
6
  * ECDSA signature used for transactions.
@@ -1,45 +1,42 @@
1
- import { Fr, type GrumpkinScalar, Point } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
+ import type { GrumpkinScalar } from '@aztec/foundation/curves/grumpkin';
3
+ import { Point } from '@aztec/foundation/curves/grumpkin';
2
4
  /**
3
5
  * Grumpkin elliptic curve operations.
4
6
  */
5
7
  export declare class Grumpkin {
6
- static generator: Point;
7
- /**
8
- * Point generator
9
- * @returns The generator for the curve.
10
- */
11
- generator(): Point;
8
+ static readonly generator: Point;
12
9
  /**
13
10
  * Multiplies a point by a scalar (adds the point `scalar` amount of times).
14
11
  * @param point - Point to multiply.
15
12
  * @param scalar - Scalar to multiply by.
16
13
  * @returns Result of the multiplication.
17
14
  */
18
- mul(point: Point, scalar: GrumpkinScalar): Promise<Point>;
15
+ static mul(point: Point, scalar: GrumpkinScalar): Promise<Point>;
19
16
  /**
20
17
  * Add two points.
21
18
  * @param a - Point a in the addition
22
19
  * @param b - Point b to add to a
23
20
  * @returns Result of the addition.
24
21
  */
25
- add(a: Point, b: Point): Promise<Point>;
22
+ static add(a: Point, b: Point): Promise<Point>;
26
23
  /**
27
24
  * Multiplies a set of points by a scalar.
28
25
  * @param points - Points to multiply.
29
26
  * @param scalar - Scalar to multiply by.
30
27
  * @returns Points multiplied by the scalar.
31
28
  */
32
- batchMul(points: Point[], scalar: GrumpkinScalar): Promise<Point[]>;
29
+ static batchMul(points: Point[], scalar: GrumpkinScalar): Promise<Point[]>;
33
30
  /**
34
31
  * Gets a random field element.
35
32
  * @returns Random field element.
36
33
  */
37
- getRandomFr(): Promise<Fr>;
34
+ static getRandomFr(): Promise<Fr>;
38
35
  /**
39
36
  * Converts a 512 bits long buffer to a field.
40
37
  * @param uint512Buf - The buffer to convert.
41
38
  * @returns Buffer representation of the field element.
42
39
  */
43
- reduce512BufferToFr(uint512Buf: Buffer): Promise<Fr>;
40
+ static reduce512BufferToFr(uint512Buf: Buffer): Promise<Fr>;
44
41
  }
45
- //# sourceMappingURL=index.d.ts.map
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vZ3J1bXBraW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUUxRDs7R0FFRztBQUNILHFCQUFhLFFBQVE7SUFFbkIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLFFBS3JCO0lBRUo7Ozs7O09BS0c7SUFDSCxPQUFvQixHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsY0FBYyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FRNUU7SUFFRDs7Ozs7T0FLRztJQUNILE9BQW9CLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQVExRDtJQUVEOzs7OztPQUtHO0lBQ0gsT0FBb0IsUUFBUSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsY0FBYyxvQkFTbkU7SUFFRDs7O09BR0c7SUFDSCxPQUFvQixXQUFXLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUs3QztJQUVEOzs7O09BSUc7SUFDSCxPQUFvQixtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FLdkU7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/grumpkin/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,KAAK,cAAc,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAE1E;;GAEG;AACH,qBAAa,QAAQ;IAEnB,MAAM,CAAC,SAAS,QAKZ;IAEJ;;;OAGG;IACI,SAAS,IAAI,KAAK;IAIzB;;;;;OAKG;IACU,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC;IAMtE;;;;;OAKG;IACU,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAMpD;;;;;OAKG;IACU,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,cAAc;IAqB7D;;;OAGG;IACU,WAAW,IAAI,OAAO,CAAC,EAAE,CAAC;IAMvC;;;;OAIG;IACU,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;CAOlE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/grumpkin/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAE1D;;GAEG;AACH,qBAAa,QAAQ;IAEnB,MAAM,CAAC,QAAQ,CAAC,SAAS,QAKrB;IAEJ;;;;;OAKG;IACH,OAAoB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAQ5E;IAED;;;;;OAKG;IACH,OAAoB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAQ1D;IAED;;;;;OAKG;IACH,OAAoB,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,cAAc,oBASnE;IAED;;;OAGG;IACH,OAAoB,WAAW,IAAI,OAAO,CAAC,EAAE,CAAC,CAK7C;IAED;;;;OAIG;IACH,OAAoB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAKvE;CACF"}
@@ -1,5 +1,6 @@
1
1
  import { BarretenbergSync } from '@aztec/bb.js';
2
- import { Fr, Point } from '@aztec/foundation/fields';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
+ import { Point } from '@aztec/foundation/curves/grumpkin';
3
4
  /**
4
5
  * Grumpkin elliptic curve operations.
5
6
  */ export class Grumpkin {
@@ -71,84 +72,89 @@ import { Fr, Point } from '@aztec/foundation/fields';
71
72
  0x2c
72
73
  ]));
73
74
  /**
74
- * Point generator
75
- * @returns The generator for the curve.
76
- */ generator() {
77
- return Grumpkin.generator;
78
- }
79
- /**
80
75
  * Multiplies a point by a scalar (adds the point `scalar` amount of times).
81
76
  * @param point - Point to multiply.
82
77
  * @param scalar - Scalar to multiply by.
83
78
  * @returns Result of the multiplication.
84
- */ async mul(point, scalar) {
85
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
86
- const [result] = api.getWasm().callWasmExport('ecc_grumpkin__mul', [
87
- point.toBuffer(),
88
- scalar.toBuffer()
89
- ], [
90
- 64
91
- ]);
92
- return Point.fromBuffer(Buffer.from(result));
79
+ */ static async mul(point, scalar) {
80
+ await BarretenbergSync.initSingleton();
81
+ const api = BarretenbergSync.getSingleton();
82
+ const response = api.grumpkinMul({
83
+ point: {
84
+ x: point.x.toBuffer(),
85
+ y: point.y.toBuffer()
86
+ },
87
+ scalar: scalar.toBuffer()
88
+ });
89
+ return Point.fromBuffer(Buffer.concat([
90
+ Buffer.from(response.point.x),
91
+ Buffer.from(response.point.y)
92
+ ]));
93
93
  }
94
94
  /**
95
95
  * Add two points.
96
96
  * @param a - Point a in the addition
97
97
  * @param b - Point b to add to a
98
98
  * @returns Result of the addition.
99
- */ async add(a, b) {
100
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
101
- const [result] = api.getWasm().callWasmExport('ecc_grumpkin__add', [
102
- a.toBuffer(),
103
- b.toBuffer()
104
- ], [
105
- 64
106
- ]);
107
- return Point.fromBuffer(Buffer.from(result));
99
+ */ static async add(a, b) {
100
+ await BarretenbergSync.initSingleton();
101
+ const api = BarretenbergSync.getSingleton();
102
+ const response = api.grumpkinAdd({
103
+ pointA: {
104
+ x: a.x.toBuffer(),
105
+ y: a.y.toBuffer()
106
+ },
107
+ pointB: {
108
+ x: b.x.toBuffer(),
109
+ y: b.y.toBuffer()
110
+ }
111
+ });
112
+ return Point.fromBuffer(Buffer.concat([
113
+ Buffer.from(response.point.x),
114
+ Buffer.from(response.point.y)
115
+ ]));
108
116
  }
109
117
  /**
110
118
  * Multiplies a set of points by a scalar.
111
119
  * @param points - Points to multiply.
112
120
  * @param scalar - Scalar to multiply by.
113
121
  * @returns Points multiplied by the scalar.
114
- */ async batchMul(points, scalar) {
115
- const concatenatedPoints = Buffer.concat(points.map((point)=>point.toBuffer()));
116
- const pointsByteLength = points.length * Point.SIZE_IN_BYTES;
117
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
118
- const [result] = api.getWasm().callWasmExport('ecc_grumpkin__batch_mul', [
119
- concatenatedPoints,
120
- scalar.toBuffer(),
121
- points.length
122
- ], [
123
- pointsByteLength
124
- ]);
125
- const parsedResult = [];
126
- for(let i = 0; i < pointsByteLength; i += 64){
127
- parsedResult.push(Point.fromBuffer(Buffer.from(result.subarray(i, i + 64))));
128
- }
129
- return parsedResult;
122
+ */ static async batchMul(points, scalar) {
123
+ await BarretenbergSync.initSingleton();
124
+ const api = BarretenbergSync.getSingleton();
125
+ const response = api.grumpkinBatchMul({
126
+ points: points.map((p)=>({
127
+ x: p.x.toBuffer(),
128
+ y: p.y.toBuffer()
129
+ })),
130
+ scalar: scalar.toBuffer()
131
+ });
132
+ return response.points.map((p)=>Point.fromBuffer(Buffer.concat([
133
+ Buffer.from(p.x),
134
+ Buffer.from(p.y)
135
+ ])));
130
136
  }
131
137
  /**
132
138
  * Gets a random field element.
133
139
  * @returns Random field element.
134
- */ async getRandomFr() {
135
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
136
- const [result] = api.getWasm().callWasmExport('ecc_grumpkin__get_random_scalar_mod_circuit_modulus', [], [
137
- 32
138
- ]);
139
- return Fr.fromBuffer(Buffer.from(result));
140
+ */ static async getRandomFr() {
141
+ await BarretenbergSync.initSingleton();
142
+ const api = BarretenbergSync.getSingleton();
143
+ const response = api.grumpkinGetRandomFr({
144
+ dummy: 0
145
+ });
146
+ return Fr.fromBuffer(Buffer.from(response.value));
140
147
  }
141
148
  /**
142
149
  * Converts a 512 bits long buffer to a field.
143
150
  * @param uint512Buf - The buffer to convert.
144
151
  * @returns Buffer representation of the field element.
145
- */ async reduce512BufferToFr(uint512Buf) {
146
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
147
- const [result] = api.getWasm().callWasmExport('ecc_grumpkin__reduce512_buffer_mod_circuit_modulus', [
148
- uint512Buf
149
- ], [
150
- 32
151
- ]);
152
- return Fr.fromBuffer(Buffer.from(result));
152
+ */ static async reduce512BufferToFr(uint512Buf) {
153
+ await BarretenbergSync.initSingleton();
154
+ const api = BarretenbergSync.getSingleton();
155
+ const response = api.grumpkinReduce512({
156
+ input: uint512Buf
157
+ });
158
+ return Fr.fromBuffer(Buffer.from(response.value));
153
159
  }
154
160
  }
@@ -23,4 +23,4 @@ export declare function keccak224(input: Buffer): Buffer<ArrayBufferLike>;
23
23
  * @returns The permuted state.
24
24
  */
25
25
  export declare function keccakf1600(state: bigint[]): bigint[];
26
- //# sourceMappingURL=index.d.ts.map
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8va2VjY2FrL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVwRDs7Ozs7R0FLRztBQUNILHdCQUFnQixTQUFTLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxRQUFRLDJCQU1qRDtBQUVEOztHQUVHO0FBQ0gsd0JBQWdCLGVBQWUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxVQUs1QztBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSwyQkFHdEM7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLFdBQVcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxFQUFFLENBK01yRCJ9
@@ -1,3 +1,3 @@
1
- import { Fr } from '../../fields/fields.js';
1
+ import { Fr } from '../../curves/bn254/field.js';
2
2
  export declare function vkAsFieldsMegaHonk(input: Buffer): Promise<Fr[]>;
3
- //# sourceMappingURL=index.d.ts.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8va2V5cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFakQsd0JBQXNCLGtCQUFrQixDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBS3JFIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/keys/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAE5C,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAKrE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/keys/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AAEjD,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAKrE"}
@@ -1,7 +1,10 @@
1
- import { BarretenbergSync, RawBuffer } from '@aztec/bb.js';
2
- import { Fr } from '../../fields/fields.js';
1
+ import { BarretenbergSync } from '@aztec/bb.js';
2
+ import { Fr } from '../../curves/bn254/field.js';
3
3
  export async function vkAsFieldsMegaHonk(input) {
4
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
5
- const result = api.acirVkAsFieldsMegaHonk(new RawBuffer(input));
6
- return result.map((bbFr)=>Fr.fromBuffer(Buffer.from(bbFr.toBuffer()))); // TODO(#4189): remove this conversion
4
+ await BarretenbergSync.initSingleton();
5
+ const api = BarretenbergSync.getSingleton();
6
+ const response = api.megaVkAsFields({
7
+ verificationKey: input
8
+ });
9
+ return response.fields.map((field)=>Fr.fromBuffer(Buffer.from(field)));
7
10
  }