@aztec/foundation 3.0.0-canary.a9708bd → 3.0.0-devnet.20251212

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 (451) 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 +1 -1
  5. package/dest/async-map/index.d.ts +1 -1
  6. package/dest/async-pool/index.d.ts +1 -1
  7. package/dest/bigint/index.d.ts +1 -1
  8. package/dest/bigint-buffer/index.d.ts +1 -1
  9. package/dest/branded-types/block_number.d.ts +53 -0
  10. package/dest/branded-types/block_number.d.ts.map +1 -0
  11. package/dest/branded-types/block_number.js +75 -0
  12. package/dest/branded-types/checkpoint_number.d.ts +46 -0
  13. package/dest/branded-types/checkpoint_number.d.ts.map +1 -0
  14. package/dest/branded-types/checkpoint_number.js +68 -0
  15. package/dest/branded-types/epoch.d.ts +42 -0
  16. package/dest/branded-types/epoch.d.ts.map +1 -0
  17. package/dest/branded-types/epoch.js +59 -0
  18. package/dest/branded-types/index.d.ts +6 -0
  19. package/dest/branded-types/index.d.ts.map +1 -0
  20. package/dest/branded-types/index.js +4 -0
  21. package/dest/branded-types/slot.d.ts +42 -0
  22. package/dest/branded-types/slot.d.ts.map +1 -0
  23. package/dest/branded-types/slot.js +59 -0
  24. package/dest/branded-types/types.d.ts +5 -0
  25. package/dest/branded-types/types.d.ts.map +1 -0
  26. package/dest/branded-types/types.js +1 -0
  27. package/dest/buffer/buffer16.d.ts +2 -5
  28. package/dest/buffer/buffer16.d.ts.map +1 -1
  29. package/dest/buffer/buffer16.js +1 -1
  30. package/dest/buffer/buffer32.d.ts +2 -5
  31. package/dest/buffer/buffer32.d.ts.map +1 -1
  32. package/dest/buffer/buffer32.js +1 -1
  33. package/dest/buffer/index.d.ts +1 -1
  34. package/dest/collection/array.d.ts +3 -1
  35. package/dest/collection/array.d.ts.map +1 -1
  36. package/dest/collection/array.js +12 -3
  37. package/dest/collection/index.d.ts +1 -1
  38. package/dest/collection/object.d.ts +5 -1
  39. package/dest/collection/object.d.ts.map +1 -1
  40. package/dest/collection/object.js +6 -0
  41. package/dest/committable/committable.d.ts +1 -1
  42. package/dest/committable/committable.d.ts.map +1 -1
  43. package/dest/committable/index.d.ts +1 -1
  44. package/dest/config/env_var.d.ts +2 -2
  45. package/dest/config/env_var.d.ts.map +1 -1
  46. package/dest/config/index.d.ts +12 -2
  47. package/dest/config/index.d.ts.map +1 -1
  48. package/dest/config/index.js +18 -3
  49. package/dest/config/network_config.d.ts +42 -0
  50. package/dest/config/network_config.d.ts.map +1 -0
  51. package/dest/config/network_config.js +9 -0
  52. package/dest/config/network_name.d.ts +2 -2
  53. package/dest/config/network_name.d.ts.map +1 -1
  54. package/dest/config/network_name.js +10 -2
  55. package/dest/config/secret_value.d.ts +1 -1
  56. package/dest/config/secret_value.d.ts.map +1 -1
  57. package/dest/crypto/aes128/index.d.ts +1 -1
  58. package/dest/crypto/aes128/index.d.ts.map +1 -1
  59. package/dest/crypto/aes128/index.js +19 -6
  60. package/dest/crypto/bls/bn254_keystore.d.ts +296 -0
  61. package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -0
  62. package/dest/crypto/bls/bn254_keystore.js +218 -0
  63. package/dest/crypto/bls/index.d.ts +13 -0
  64. package/dest/crypto/bls/index.d.ts.map +1 -0
  65. package/dest/crypto/bls/index.js +87 -0
  66. package/dest/crypto/bn254/index.d.ts +39 -0
  67. package/dest/crypto/bn254/index.d.ts.map +1 -0
  68. package/dest/crypto/bn254/index.js +56 -0
  69. package/dest/crypto/ecdsa/index.d.ts +1 -1
  70. package/dest/crypto/ecdsa/index.d.ts.map +1 -1
  71. package/dest/crypto/ecdsa/index.js +58 -48
  72. package/dest/crypto/ecdsa/signature.d.ts +2 -11
  73. package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
  74. package/dest/crypto/ecdsa/signature.js +2 -2
  75. package/dest/crypto/grumpkin/index.d.ts +10 -13
  76. package/dest/crypto/grumpkin/index.d.ts.map +1 -1
  77. package/dest/crypto/grumpkin/index.js +61 -55
  78. package/dest/crypto/keccak/index.d.ts +1 -1
  79. package/dest/crypto/keys/index.d.ts +2 -2
  80. package/dest/crypto/keys/index.d.ts.map +1 -1
  81. package/dest/crypto/keys/index.js +8 -5
  82. package/dest/crypto/pedersen/index.d.ts +1 -1
  83. package/dest/crypto/pedersen/pedersen.noble.d.ts +1 -1
  84. package/dest/crypto/pedersen/pedersen.wasm.d.ts +2 -2
  85. package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
  86. package/dest/crypto/pedersen/pedersen.wasm.js +24 -14
  87. package/dest/crypto/poseidon/index.d.ts +2 -2
  88. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  89. package/dest/crypto/poseidon/index.js +33 -18
  90. package/dest/crypto/random/index.d.ts +1 -1
  91. package/dest/crypto/random/index.d.ts.map +1 -1
  92. package/dest/crypto/random/randomness_singleton.d.ts +1 -1
  93. package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
  94. package/dest/crypto/schnorr/index.d.ts +3 -2
  95. package/dest/crypto/schnorr/index.d.ts.map +1 -1
  96. package/dest/crypto/schnorr/index.js +30 -38
  97. package/dest/crypto/schnorr/signature.d.ts +2 -2
  98. package/dest/crypto/schnorr/signature.d.ts.map +1 -1
  99. package/dest/crypto/schnorr/signature.js +2 -2
  100. package/dest/crypto/secp256k1/index.d.ts +1 -1
  101. package/dest/crypto/secp256k1/index.d.ts.map +1 -1
  102. package/dest/crypto/secp256k1/index.js +23 -18
  103. package/dest/crypto/secp256k1-signer/index.d.ts +1 -1
  104. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts +1 -1
  105. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts.map +1 -1
  106. package/dest/crypto/secp256k1-signer/utils.d.ts +49 -3
  107. package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
  108. package/dest/crypto/secp256k1-signer/utils.js +87 -5
  109. package/dest/crypto/serialize.d.ts +1 -1
  110. package/dest/crypto/sha256/index.d.ts +2 -2
  111. package/dest/crypto/sha256/index.d.ts.map +1 -1
  112. package/dest/crypto/sha256/index.js +1 -1
  113. package/dest/crypto/sha512/index.d.ts +3 -3
  114. package/dest/crypto/sha512/index.d.ts.map +1 -1
  115. package/dest/crypto/sha512/index.js +1 -1
  116. package/dest/crypto/signature/index.d.ts +2 -2
  117. package/dest/crypto/signature/index.d.ts.map +1 -1
  118. package/dest/crypto/sync/index.d.ts +1 -1
  119. package/dest/crypto/sync/index.js +1 -1
  120. package/dest/crypto/sync/pedersen/index.d.ts +2 -2
  121. package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
  122. package/dest/crypto/sync/pedersen/index.js +18 -11
  123. package/dest/crypto/sync/poseidon/index.d.ts +2 -2
  124. package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
  125. package/dest/crypto/sync/poseidon/index.js +28 -13
  126. package/dest/{fields/bls12_fields.d.ts → curves/bls12/field.d.ts} +3 -3
  127. package/dest/curves/bls12/field.d.ts.map +1 -0
  128. package/dest/{fields/bls12_fields.js → curves/bls12/field.js} +6 -6
  129. package/dest/curves/bls12/index.d.ts +3 -0
  130. package/dest/curves/bls12/index.d.ts.map +1 -0
  131. package/dest/curves/bls12/index.js +2 -0
  132. package/dest/{fields/bls12_point.d.ts → curves/bls12/point.d.ts} +11 -20
  133. package/dest/curves/bls12/point.d.ts.map +1 -0
  134. package/dest/{fields/bls12_point.js → curves/bls12/point.js} +14 -14
  135. package/dest/{fields/fields.d.ts → curves/bn254/field.d.ts} +16 -9
  136. package/dest/curves/bn254/field.d.ts.map +1 -0
  137. package/dest/{fields/fields.js → curves/bn254/field.js} +41 -16
  138. package/dest/curves/bn254/index.d.ts +3 -0
  139. package/dest/curves/bn254/index.d.ts.map +1 -0
  140. package/dest/curves/bn254/index.js +2 -0
  141. package/dest/curves/bn254/point.d.ts +54 -0
  142. package/dest/curves/bn254/point.d.ts.map +1 -0
  143. package/dest/curves/bn254/point.js +143 -0
  144. package/dest/curves/grumpkin/index.d.ts +10 -0
  145. package/dest/curves/grumpkin/index.d.ts.map +1 -0
  146. package/dest/curves/grumpkin/index.js +3 -0
  147. package/dest/{fields → curves/grumpkin}/point.d.ts +13 -13
  148. package/dest/curves/grumpkin/point.d.ts.map +1 -0
  149. package/dest/{fields → curves/grumpkin}/point.js +24 -7
  150. package/dest/decorators/index.d.ts +1 -1
  151. package/dest/decorators/memoize.d.ts +1 -1
  152. package/dest/decorators/memoize.d.ts.map +1 -1
  153. package/dest/error/index.d.ts +4 -4
  154. package/dest/error/index.d.ts.map +1 -1
  155. package/dest/eth-address/index.d.ts +14 -4
  156. package/dest/eth-address/index.d.ts.map +1 -1
  157. package/dest/eth-address/index.js +23 -1
  158. package/dest/eth-signature/eth_signature.d.ts +1 -4
  159. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  160. package/dest/eth-signature/eth_signature.js +2 -4
  161. package/dest/eth-signature/index.d.ts +1 -1
  162. package/dest/fs/index.d.ts +1 -1
  163. package/dest/fs/run_in_dir.d.ts +1 -1
  164. package/dest/fs/try_rm_dir.d.ts +1 -1
  165. package/dest/iterable/all.d.ts +1 -1
  166. package/dest/iterable/filter.d.ts +1 -1
  167. package/dest/iterable/index.d.ts +1 -1
  168. package/dest/iterable/isAsyncIt.d.ts +1 -1
  169. package/dest/iterable/map.d.ts +1 -1
  170. package/dest/iterable/peek.d.ts +1 -1
  171. package/dest/iterable/sort.d.ts +1 -1
  172. package/dest/iterable/take.d.ts +1 -1
  173. package/dest/iterable/toArray.d.ts +1 -1
  174. package/dest/json-rpc/client/fetch.d.ts +1 -1
  175. package/dest/json-rpc/client/index.d.ts +1 -1
  176. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +1 -1
  177. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
  178. package/dest/json-rpc/client/safe_json_rpc_client.js +9 -0
  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 +2 -2
  206. package/dest/log/log_fn.d.ts.map +1 -1
  207. package/dest/log/noir_debug_log_util.d.ts +1 -1
  208. package/dest/log/pino-logger.d.ts +2 -2
  209. package/dest/log/pino-logger.d.ts.map +1 -1
  210. package/dest/log/pino-logger.js +0 -1
  211. package/dest/message/index.d.ts +1 -1
  212. package/dest/message/index.d.ts.map +1 -1
  213. package/dest/mutex/index.d.ts +1 -1
  214. package/dest/mutex/index.d.ts.map +1 -1
  215. package/dest/mutex/mutex_database.d.ts +1 -1
  216. package/dest/noir/index.d.ts +1 -1
  217. package/dest/noir/noir_package_config.d.ts +9 -9
  218. package/dest/number/index.d.ts +1 -1
  219. package/dest/profiler/index.d.ts +2 -0
  220. package/dest/profiler/index.d.ts.map +1 -0
  221. package/dest/profiler/index.js +1 -0
  222. package/dest/profiler/profiler.d.ts +8 -0
  223. package/dest/profiler/profiler.d.ts.map +1 -0
  224. package/dest/profiler/profiler.js +97 -0
  225. package/dest/promise/index.d.ts +1 -1
  226. package/dest/promise/running-promise.d.ts +1 -1
  227. package/dest/promise/running-promise.d.ts.map +1 -1
  228. package/dest/promise/utils.d.ts +1 -1
  229. package/dest/queue/base_memory_queue.d.ts +1 -1
  230. package/dest/queue/base_memory_queue.d.ts.map +1 -1
  231. package/dest/queue/batch_queue.d.ts +1 -1
  232. package/dest/queue/batch_queue.d.ts.map +1 -1
  233. package/dest/queue/bounded_serial_queue.d.ts +1 -1
  234. package/dest/queue/bounded_serial_queue.d.ts.map +1 -1
  235. package/dest/queue/fifo_memory_queue.d.ts +1 -1
  236. package/dest/queue/fifo_memory_queue.d.ts.map +1 -1
  237. package/dest/queue/index.d.ts +1 -1
  238. package/dest/queue/priority_memory_queue.d.ts +1 -1
  239. package/dest/queue/priority_memory_queue.d.ts.map +1 -1
  240. package/dest/queue/priority_queue.d.ts +1 -1
  241. package/dest/queue/priority_queue.d.ts.map +1 -1
  242. package/dest/queue/semaphore.d.ts +1 -1
  243. package/dest/queue/semaphore.d.ts.map +1 -1
  244. package/dest/queue/serial_queue.d.ts +1 -1
  245. package/dest/queue/serial_queue.d.ts.map +1 -1
  246. package/dest/retry/index.d.ts +1 -1
  247. package/dest/running-promise/index.d.ts +1 -1
  248. package/dest/schemas/api.d.ts +1 -1
  249. package/dest/schemas/index.d.ts +1 -1
  250. package/dest/schemas/parse.d.ts +1 -1
  251. package/dest/schemas/schemas.d.ts +13 -17
  252. package/dest/schemas/schemas.d.ts.map +1 -1
  253. package/dest/schemas/schemas.js +9 -10
  254. package/dest/schemas/types.d.ts +1 -1
  255. package/dest/schemas/utils.d.ts +4 -4
  256. package/dest/schemas/utils.d.ts.map +1 -1
  257. package/dest/schemas/utils.js +15 -5
  258. package/dest/serialize/buffer_reader.d.ts +3 -1
  259. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  260. package/dest/serialize/buffer_reader.js +3 -0
  261. package/dest/serialize/field_reader.d.ts +2 -2
  262. package/dest/serialize/field_reader.d.ts.map +1 -1
  263. package/dest/serialize/field_reader.js +1 -1
  264. package/dest/serialize/free_funcs.d.ts +2 -2
  265. package/dest/serialize/free_funcs.d.ts.map +1 -1
  266. package/dest/serialize/free_funcs.js +1 -1
  267. package/dest/serialize/index.d.ts +1 -1
  268. package/dest/serialize/serialize.d.ts +2 -2
  269. package/dest/serialize/serialize.d.ts.map +1 -1
  270. package/dest/serialize/serialize.js +1 -1
  271. package/dest/serialize/type_registry.d.ts +1 -1
  272. package/dest/serialize/type_registry.d.ts.map +1 -1
  273. package/dest/serialize/types.d.ts +1 -1
  274. package/dest/sleep/index.d.ts +1 -1
  275. package/dest/sleep/index.d.ts.map +1 -1
  276. package/dest/string/index.d.ts +5 -1
  277. package/dest/string/index.d.ts.map +1 -1
  278. package/dest/string/index.js +19 -2
  279. package/dest/testing/files/index.d.ts +2 -1
  280. package/dest/testing/files/index.d.ts.map +1 -1
  281. package/dest/testing/files/index.js +1 -1
  282. package/dest/testing/formatting.d.ts +4 -0
  283. package/dest/testing/formatting.d.ts.map +1 -0
  284. package/dest/testing/formatting.js +3 -0
  285. package/dest/testing/index.d.ts +2 -1
  286. package/dest/testing/index.d.ts.map +1 -1
  287. package/dest/testing/index.js +1 -0
  288. package/dest/testing/port_allocator.d.ts +1 -1
  289. package/dest/testing/snapshot_serializer.d.ts +1 -1
  290. package/dest/testing/test_data.d.ts +1 -1
  291. package/dest/timer/date.d.ts +1 -1
  292. package/dest/timer/date.d.ts.map +1 -1
  293. package/dest/timer/elapsed.d.ts +1 -1
  294. package/dest/timer/index.d.ts +2 -2
  295. package/dest/timer/index.d.ts.map +1 -1
  296. package/dest/timer/index.js +1 -1
  297. package/dest/timer/timeout.d.ts +3 -1
  298. package/dest/timer/timeout.d.ts.map +1 -1
  299. package/dest/timer/timeout.js +9 -0
  300. package/dest/timer/timer.d.ts +1 -1
  301. package/dest/timer/timer.d.ts.map +1 -1
  302. package/dest/transport/dispatch/create_dispatch_fn.d.ts +1 -1
  303. package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +1 -1
  304. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +1 -1
  305. package/dest/transport/dispatch/messages.d.ts +1 -1
  306. package/dest/transport/index.d.ts +1 -1
  307. package/dest/transport/interface/connector.d.ts +1 -1
  308. package/dest/transport/interface/listener.d.ts +1 -1
  309. package/dest/transport/interface/socket.d.ts +1 -1
  310. package/dest/transport/interface/transferable.d.ts +1 -1
  311. package/dest/transport/node/index.d.ts +1 -1
  312. package/dest/transport/node/node_connector.d.ts +1 -1
  313. package/dest/transport/node/node_connector.d.ts.map +1 -1
  314. package/dest/transport/node/node_connector_socket.d.ts +1 -1
  315. package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
  316. package/dest/transport/node/node_listener.d.ts +1 -1
  317. package/dest/transport/node/node_listener.d.ts.map +1 -1
  318. package/dest/transport/node/node_listener_socket.d.ts +1 -1
  319. package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
  320. package/dest/transport/transport_client.d.ts +1 -1
  321. package/dest/transport/transport_client.d.ts.map +1 -1
  322. package/dest/transport/transport_server.d.ts +1 -10
  323. package/dest/transport/transport_server.d.ts.map +1 -1
  324. package/dest/trees/balanced_merkle_tree.d.ts +22 -0
  325. package/dest/trees/balanced_merkle_tree.d.ts.map +1 -0
  326. package/dest/trees/balanced_merkle_tree.js +66 -0
  327. package/dest/trees/hasher.d.ts +1 -1
  328. package/dest/trees/index.d.ts +2 -1
  329. package/dest/trees/index.d.ts.map +1 -1
  330. package/dest/trees/index.js +1 -0
  331. package/dest/trees/indexed_merkle_tree.d.ts +1 -1
  332. package/dest/trees/indexed_merkle_tree.d.ts.map +1 -1
  333. package/dest/trees/indexed_merkle_tree.js +1 -1
  334. package/dest/trees/indexed_merkle_tree_calculator.d.ts +1 -1
  335. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
  336. package/dest/trees/indexed_tree_leaf.d.ts +1 -1
  337. package/dest/trees/membership_witness.d.ts +3 -24
  338. package/dest/trees/membership_witness.d.ts.map +1 -1
  339. package/dest/trees/membership_witness.js +1 -1
  340. package/dest/trees/merkle_tree.d.ts +1 -1
  341. package/dest/trees/merkle_tree.d.ts.map +1 -1
  342. package/dest/trees/merkle_tree_calculator.d.ts +2 -12
  343. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  344. package/dest/trees/merkle_tree_calculator.js +1 -31
  345. package/dest/trees/sibling_path.d.ts +5 -39
  346. package/dest/trees/sibling_path.d.ts.map +1 -1
  347. package/dest/trees/sibling_path.js +2 -2
  348. package/dest/trees/unbalanced_merkle_tree.d.ts +5 -4
  349. package/dest/trees/unbalanced_merkle_tree.d.ts.map +1 -1
  350. package/dest/trees/unbalanced_merkle_tree.js +33 -10
  351. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +27 -23
  352. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -1
  353. package/dest/trees/unbalanced_merkle_tree_calculator.js +123 -97
  354. package/dest/trees/unbalanced_tree_store.d.ts +2 -1
  355. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
  356. package/dest/trees/unbalanced_tree_store.js +6 -0
  357. package/dest/types/index.d.ts +1 -1
  358. package/dest/url/index.d.ts +1 -1
  359. package/dest/validation/index.d.ts +1 -1
  360. package/package.json +31 -8
  361. package/src/array/array.ts +0 -16
  362. package/src/branded-types/block_number.ts +112 -0
  363. package/src/branded-types/checkpoint_number.ts +100 -0
  364. package/src/branded-types/epoch.ts +88 -0
  365. package/src/branded-types/index.ts +6 -0
  366. package/src/branded-types/slot.ts +88 -0
  367. package/src/branded-types/types.ts +2 -0
  368. package/src/buffer/buffer16.ts +2 -2
  369. package/src/buffer/buffer32.ts +2 -2
  370. package/src/collection/array.ts +15 -3
  371. package/src/collection/object.ts +8 -0
  372. package/src/config/env_var.ts +38 -21
  373. package/src/config/index.ts +23 -3
  374. package/src/config/network_config.ts +16 -0
  375. package/src/config/network_name.ts +18 -3
  376. package/src/crypto/aes128/index.ts +19 -10
  377. package/src/crypto/bls/bn254_keystore.ts +287 -0
  378. package/src/crypto/bls/index.ts +77 -0
  379. package/src/crypto/bn254/index.ts +64 -0
  380. package/src/crypto/ecdsa/index.ts +40 -37
  381. package/src/crypto/ecdsa/signature.ts +2 -2
  382. package/src/crypto/grumpkin/index.ts +38 -46
  383. package/src/crypto/keys/index.ts +6 -6
  384. package/src/crypto/pedersen/pedersen.wasm.ts +23 -19
  385. package/src/crypto/poseidon/index.ts +33 -25
  386. package/src/crypto/schnorr/index.ts +22 -18
  387. package/src/crypto/schnorr/signature.ts +2 -2
  388. package/src/crypto/secp256k1/index.ts +15 -11
  389. package/src/crypto/secp256k1-signer/utils.ts +115 -7
  390. package/src/crypto/sha256/index.ts +1 -1
  391. package/src/crypto/sha512/index.ts +1 -1
  392. package/src/crypto/signature/index.ts +1 -1
  393. package/src/crypto/sync/index.ts +1 -1
  394. package/src/crypto/sync/pedersen/index.ts +17 -16
  395. package/src/crypto/sync/poseidon/index.ts +28 -23
  396. package/src/{fields/bls12_fields.ts → curves/bls12/field.ts} +6 -6
  397. package/src/curves/bls12/index.ts +2 -0
  398. package/src/{fields/bls12_point.ts → curves/bls12/point.ts} +14 -14
  399. package/src/{fields/fields.ts → curves/bn254/field.ts} +41 -19
  400. package/src/curves/bn254/index.ts +2 -0
  401. package/src/curves/bn254/point.ts +170 -0
  402. package/src/curves/grumpkin/index.ts +11 -0
  403. package/src/{fields → curves/grumpkin}/point.ts +26 -7
  404. package/src/eth-address/index.ts +28 -3
  405. package/src/eth-signature/eth_signature.ts +2 -4
  406. package/src/json-rpc/client/safe_json_rpc_client.ts +9 -0
  407. package/src/log/log_fn.ts +1 -1
  408. package/src/log/pino-logger.ts +0 -1
  409. package/src/profiler/index.ts +1 -0
  410. package/src/profiler/profiler.ts +125 -0
  411. package/src/schemas/schemas.ts +16 -13
  412. package/src/schemas/utils.ts +21 -8
  413. package/src/serialize/buffer_reader.ts +5 -0
  414. package/src/serialize/field_reader.ts +1 -1
  415. package/src/serialize/free_funcs.ts +1 -1
  416. package/src/serialize/serialize.ts +1 -1
  417. package/src/string/index.ts +24 -1
  418. package/src/testing/files/index.ts +1 -1
  419. package/src/testing/formatting.ts +3 -0
  420. package/src/testing/index.ts +1 -0
  421. package/src/timer/index.ts +1 -1
  422. package/src/timer/timeout.ts +13 -0
  423. package/src/trees/balanced_merkle_tree.ts +84 -0
  424. package/src/trees/index.ts +1 -0
  425. package/src/trees/indexed_merkle_tree.ts +1 -1
  426. package/src/trees/membership_witness.ts +1 -1
  427. package/src/trees/merkle_tree_calculator.ts +1 -34
  428. package/src/trees/sibling_path.ts +2 -2
  429. package/src/trees/unbalanced_merkle_tree.ts +55 -7
  430. package/src/trees/unbalanced_merkle_tree_calculator.ts +134 -93
  431. package/src/trees/unbalanced_tree_store.ts +5 -1
  432. package/dest/crypto/index.d.ts +0 -15
  433. package/dest/crypto/index.d.ts.map +0 -1
  434. package/dest/crypto/index.js +0 -14
  435. package/dest/fields/bls12_fields.d.ts.map +0 -1
  436. package/dest/fields/bls12_point.d.ts.map +0 -1
  437. package/dest/fields/coordinate.d.ts +0 -66
  438. package/dest/fields/coordinate.d.ts.map +0 -1
  439. package/dest/fields/coordinate.js +0 -96
  440. package/dest/fields/fields.d.ts.map +0 -1
  441. package/dest/fields/index.d.ts +0 -6
  442. package/dest/fields/index.d.ts.map +0 -1
  443. package/dest/fields/index.js +0 -5
  444. package/dest/fields/point.d.ts.map +0 -1
  445. package/dest/index.d.ts +0 -29
  446. package/dest/index.d.ts.map +0 -1
  447. package/dest/index.js +0 -29
  448. package/src/crypto/index.ts +0 -14
  449. package/src/fields/coordinate.ts +0 -104
  450. package/src/fields/index.ts +0 -5
  451. package/src/index.ts +0 -29
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/sha512/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,UAAU,EAAqB,MAAM,8BAA8B,CAAC;AAElF,eAAO,MAAM,MAAM,GAAI,MAAM,MAAM,wBAAqD,CAAC;AAEzF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAI,MAAM,UAAU,EAAE,wCAGxD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/sha512/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,UAAU,EAAqB,MAAM,8BAA8B,CAAC;AAElF,eAAO,MAAM,MAAM,wDAAqE,CAAC;AAEzF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,+DAGlC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { default as hash } from 'hash.js';
2
- import { GrumpkinScalar } from '../../fields/fields.js';
2
+ import { GrumpkinScalar } from '../../curves/grumpkin/index.js';
3
3
  import { serializeToBuffer } from '../../serialize/serialize.js';
4
4
  export const sha512 = (data)=>Buffer.from(hash.sha512().update(data).digest());
5
5
  /**
@@ -1,4 +1,4 @@
1
- import type { Fr } from '@aztec/foundation/fields';
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
2
  /**
3
3
  * Interface to represent a signature.
4
4
  */
@@ -14,4 +14,4 @@ export interface Signature {
14
14
  */
15
15
  toFields(): Fr[];
16
16
  }
17
- //# sourceMappingURL=index.d.ts.map
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vc2lnbmF0dXJlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXpEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLFNBQVM7SUFDeEI7OztPQUdHO0lBQ0gsUUFBUSxJQUFJLE1BQU0sQ0FBQztJQUNuQjs7O09BR0c7SUFDSCxRQUFRLElBQUksRUFBRSxFQUFFLENBQUM7Q0FDbEIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/signature/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,QAAQ,IAAI,MAAM,CAAC;IACnB;;;OAGG;IACH,QAAQ,IAAI,EAAE,EAAE,CAAC;CAClB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/signature/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,QAAQ,IAAI,MAAM,CAAC;IACnB;;;OAGG;IACH,QAAQ,IAAI,EAAE,EAAE,CAAC;CAClB"}
@@ -1,3 +1,3 @@
1
1
  export * from './poseidon/index.js';
2
2
  export * from './pedersen/index.js';
3
- //# sourceMappingURL=index.d.ts.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vc3luYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUMifQ==
@@ -1,4 +1,4 @@
1
1
  import { BarretenbergSync } from '@aztec/bb.js';
2
2
  export * from './poseidon/index.js';
3
3
  export * from './pedersen/index.js';
4
- await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
4
+ await BarretenbergSync.initSingleton();
@@ -1,4 +1,4 @@
1
- import { Fr } from '../../../fields/fields.js';
1
+ import { Fr } from '../../../curves/bn254/field.js';
2
2
  import { type Fieldable } from '../../../serialize/serialize.js';
3
3
  /**
4
4
  * Create a pedersen commitment (point) from an array of input fields.
@@ -16,4 +16,4 @@ export declare function pedersenHash(input: Fieldable[], index?: number): Fr;
16
16
  * Create a pedersen hash from an arbitrary length buffer.
17
17
  */
18
18
  export declare function pedersenHashBuffer(input: Buffer, index?: number): Buffer<ArrayBuffer>;
19
- //# sourceMappingURL=index.d.ts.map
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jcnlwdG8vc3luYy9wZWRlcnNlbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUFxQixNQUFNLGlDQUFpQyxDQUFDO0FBRXBGOzs7R0FHRztBQUNILHdCQUFnQixjQUFjLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLE1BQU0sU0FBSSx5QkFVekQ7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFnQixZQUFZLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFLEtBQUssU0FBSSxHQUFHLEVBQUUsQ0FPOUQ7QUFFRDs7R0FFRztBQUNILHdCQUFnQixrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssU0FBSSx1QkFNMUQifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/crypto/sync/pedersen/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AAC/C,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,iCAAiC,CAAC;AAEpF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,SAAI,yBAYzD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,SAAI,GAAG,EAAE,CAO9D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAI,uBAG1D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/crypto/sync/pedersen/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,iCAAiC,CAAC;AAEpF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,SAAI,yBAUzD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,SAAI,GAAG,EAAE,CAO9D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAI,uBAM1D"}
@@ -1,5 +1,5 @@
1
- import { BarretenbergSync, Fr as FrBarretenberg } 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
  import { serializeToFields } from '../../../serialize/serialize.js';
4
4
  /**
5
5
  * Create a pedersen commitment (point) from an array of input fields.
@@ -12,12 +12,13 @@ import { serializeToFields } from '../../../serialize/serialize.js';
12
12
  Buffer.alloc(32 - i.length, 0),
13
13
  i
14
14
  ]) : i);
15
- const point = BarretenbergSync.getSingleton().pedersenCommit(input.map((i)=>new FrBarretenberg(i)), offset);
16
- // toBuffer returns Uint8Arrays (browser/worker-boundary friendly).
17
- // TODO: rename toTypedArray()?
15
+ const response = BarretenbergSync.getSingleton().pedersenCommit({
16
+ inputs: input,
17
+ hashIndex: offset
18
+ });
18
19
  return [
19
- Buffer.from(point.x.toBuffer()),
20
- Buffer.from(point.y.toBuffer())
20
+ Buffer.from(response.point.x),
21
+ Buffer.from(response.point.y)
21
22
  ];
22
23
  }
23
24
  /**
@@ -27,12 +28,18 @@ import { serializeToFields } from '../../../serialize/serialize.js';
27
28
  * @returns The pedersen hash.
28
29
  */ export function pedersenHash(input, index = 0) {
29
30
  const inputFields = serializeToFields(input);
30
- const hash = BarretenbergSync.getSingleton().pedersenHash(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())), index);
31
- return Fr.fromBuffer(Buffer.from(hash.toBuffer()));
31
+ const response = BarretenbergSync.getSingleton().pedersenHash({
32
+ inputs: inputFields.map((i)=>i.toBuffer()),
33
+ hashIndex: index
34
+ });
35
+ return Fr.fromBuffer(Buffer.from(response.hash));
32
36
  }
33
37
  /**
34
38
  * Create a pedersen hash from an arbitrary length buffer.
35
39
  */ export function pedersenHashBuffer(input, index = 0) {
36
- const result = BarretenbergSync.getSingleton().pedersenHashBuffer(input, index);
37
- return Buffer.from(result.toBuffer());
40
+ const response = BarretenbergSync.getSingleton().pedersenHashBuffer({
41
+ input,
42
+ hashIndex: index
43
+ });
44
+ return Buffer.from(response.hash);
38
45
  }
@@ -1,4 +1,4 @@
1
- import { Fr } from '../../../fields/fields.js';
1
+ import { Fr } from '../../../curves/bn254/field.js';
2
2
  import { type Fieldable } from '../../../serialize/serialize.js';
3
3
  /**
4
4
  * Create a poseidon hash (field) from an array of input fields.
@@ -21,4 +21,4 @@ export declare function poseidon2HashAccumulate(input: Fieldable[]): Fr;
21
21
  */
22
22
  export declare function poseidon2Permutation(input: Fieldable[]): Fr[];
23
23
  export declare function poseidon2HashBytes(input: Buffer): Fr;
24
- //# sourceMappingURL=index.d.ts.map
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jcnlwdG8vc3luYy9wb3NlaWRvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUFxQixNQUFNLGlDQUFpQyxDQUFDO0FBRXBGOzs7O0dBSUc7QUFDSCx3QkFBZ0IsYUFBYSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBT3BEO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IsMEJBQTBCLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLEdBQUcsRUFBRSxDQVNwRjtBQUVELHdCQUFnQix1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQU85RDtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0Isb0JBQW9CLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQVc3RDtBQUVELHdCQUFnQixrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLEVBQUUsQ0FpQnBEIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/crypto/sync/poseidon/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AAC/C,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,iCAAiC,CAAC;AAEpF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAMpD;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,EAAE,CAQpF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAM9D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAU7D;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,EAAE,CAgBpD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/crypto/sync/poseidon/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,iCAAiC,CAAC;AAEpF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAOpD;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,EAAE,CASpF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAO9D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAW7D;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,EAAE,CAiBpD"}
@@ -1,5 +1,5 @@
1
- import { BarretenbergSync, Fr as FrBarretenberg } 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
  import { serializeToFields } from '../../../serialize/serialize.js';
4
4
  /**
5
5
  * Create a poseidon hash (field) from an array of input fields.
@@ -7,8 +7,11 @@ import { serializeToFields } from '../../../serialize/serialize.js';
7
7
  * @returns The poseidon hash.
8
8
  */ export function poseidon2Hash(input) {
9
9
  const inputFields = serializeToFields(input);
10
- const hash = BarretenbergSync.getSingleton().poseidon2Hash(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())));
11
- return Fr.fromBuffer(Buffer.from(hash.toBuffer()));
10
+ const api = BarretenbergSync.getSingleton();
11
+ const response = api.poseidon2Hash({
12
+ inputs: inputFields.map((i)=>i.toBuffer())
13
+ });
14
+ return Fr.fromBuffer(Buffer.from(response.hash));
12
15
  }
13
16
  /**
14
17
  * Create a poseidon hash (field) from an array of input fields and a domain separator.
@@ -18,13 +21,19 @@ import { serializeToFields } from '../../../serialize/serialize.js';
18
21
  */ export function poseidon2HashWithSeparator(input, separator) {
19
22
  const inputFields = serializeToFields(input);
20
23
  inputFields.unshift(new Fr(separator));
21
- const hash = BarretenbergSync.getSingleton().poseidon2Hash(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())));
22
- return Fr.fromBuffer(Buffer.from(hash.toBuffer()));
24
+ const api = BarretenbergSync.getSingleton();
25
+ const response = api.poseidon2Hash({
26
+ inputs: inputFields.map((i)=>i.toBuffer())
27
+ });
28
+ return Fr.fromBuffer(Buffer.from(response.hash));
23
29
  }
24
30
  export function poseidon2HashAccumulate(input) {
25
31
  const inputFields = serializeToFields(input);
26
- const result = BarretenbergSync.getSingleton().poseidon2HashAccumulate(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())));
27
- return Fr.fromBuffer(Buffer.from(result.toBuffer()));
32
+ const api = BarretenbergSync.getSingleton();
33
+ const response = api.poseidon2HashAccumulate({
34
+ inputs: inputFields.map((i)=>i.toBuffer())
35
+ });
36
+ return Fr.fromBuffer(Buffer.from(response.hash));
28
37
  }
29
38
  /**
30
39
  * Runs a Poseidon2 permutation.
@@ -34,10 +43,13 @@ export function poseidon2HashAccumulate(input) {
34
43
  const inputFields = serializeToFields(input);
35
44
  // We'd like this assertion but it's not possible to use it in the browser.
36
45
  // assert(input.length === 4, 'Input state must be of size 4');
37
- const res = BarretenbergSync.getSingleton().poseidon2Permutation(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())));
46
+ const api = BarretenbergSync.getSingleton();
47
+ const response = api.poseidon2Permutation({
48
+ inputs: inputFields.map((i)=>i.toBuffer())
49
+ });
38
50
  // We'd like this assertion but it's not possible to use it in the browser.
39
- // assert(res.length === 4, 'Output state must be of size 4');
40
- return res.map((o)=>Fr.fromBuffer(Buffer.from(o.toBuffer())));
51
+ // assert(response.outputs.length === 4, 'Output state must be of size 4');
52
+ return response.outputs.map((o)=>Fr.fromBuffer(Buffer.from(o)));
41
53
  }
42
54
  export function poseidon2HashBytes(input) {
43
55
  const inputFields = [];
@@ -48,6 +60,9 @@ export function poseidon2HashBytes(input) {
48
60
  fieldBytes.reverse();
49
61
  inputFields.push(Fr.fromBuffer(fieldBytes));
50
62
  }
51
- const res = BarretenbergSync.getSingleton().poseidon2Hash(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())));
52
- return Fr.fromBuffer(Buffer.from(res.toBuffer()));
63
+ const api = BarretenbergSync.getSingleton();
64
+ const response = api.poseidon2Hash({
65
+ inputs: inputFields.map((i)=>i.toBuffer())
66
+ });
67
+ return Fr.fromBuffer(Buffer.from(response.hash));
53
68
  }
@@ -1,6 +1,6 @@
1
1
  import { inspect } from 'util';
2
- import { BufferReader } from '../serialize/buffer_reader.js';
3
- import { Fr } from './fields.js';
2
+ import { BufferReader } from '../../serialize/buffer_reader.js';
3
+ import { Fr } from '../bn254/field.js';
4
4
  /**
5
5
  * Base BLS12field class.
6
6
  */
@@ -145,4 +145,4 @@ export declare class BLS12Fq extends BLS12Field {
145
145
  toJSON(): `0x${string}`;
146
146
  static get schema(): import("zod").ZodType<BLS12Fq, any, string>;
147
147
  }
148
- //# sourceMappingURL=bls12_fields.d.ts.map
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvYmxzMTIvZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUsvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFaEUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBY3ZDOztHQUVHO0FBQ0gsOEJBQXNCLFVBQVU7SUFDOUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFTO0lBQzFCLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBUztJQUUxQixTQUFTLGFBQWEsS0FBSyxFQUFFLE1BQU0sR0FBRyxNQUFNLEdBQUcsTUFBTSxFQWlCcEQ7SUFFRCxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUM7SUFDckMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDO0lBRWxDOztPQUVHO0lBQ0gsUUFBUSxJQUFJLE1BQU0sQ0FLakI7SUFFRCxRQUFRLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FFeEI7SUFFRCxRQUFRLElBQUksTUFBTSxDQVFqQjtJQUVELFlBQVksSUFBSTtRQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQTtLQUFFLENBVWxDO0lBRUQsTUFBTSxDQUFDLEdBQUcsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUUvQjtJQUVELEVBQUUsQ0FBQyxHQUFHLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FFM0I7SUFFRCxNQUFNLElBQUksT0FBTyxDQUVoQjtJQUVELE9BQU8sSUFBSSxPQUFPLENBRWpCO0lBRUQsVUFBVSxJQUFJLE9BQU8sQ0FJcEI7SUFFRCxjQUFjLElBQUksTUFBTSxDQUV2QjtJQUVELE9BQU8sU0FFTjtDQUNGO0FBa0REOzs7R0FHRztBQUNILHFCQUFhLE9BQVEsU0FBUSxVQUFVO0lB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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/curves/bls12/field.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  /* eslint-disable camelcase */ import { bls12_381 } from '@noble/curves/bls12-381';
2
2
  import { inspect } from 'util';
3
- import { toBigIntBE, toBufferBE } from '../bigint-buffer/index.js';
4
- import { randomBytes } from '../crypto/random/index.js';
5
- import { hexSchemaFor } from '../schemas/utils.js';
6
- import { BufferReader } from '../serialize/buffer_reader.js';
7
- import { TypeRegistry } from '../serialize/type_registry.js';
8
- import { Fr } from './fields.js';
3
+ import { toBigIntBE, toBufferBE } from '../../bigint-buffer/index.js';
4
+ import { randomBytes } from '../../crypto/random/index.js';
5
+ import { hexSchemaFor } from '../../schemas/utils.js';
6
+ import { BufferReader } from '../../serialize/buffer_reader.js';
7
+ import { TypeRegistry } from '../../serialize/type_registry.js';
8
+ import { Fr } from '../bn254/field.js';
9
9
  /**
10
10
  * Base BLS12field class.
11
11
  */ export class BLS12Field {
@@ -0,0 +1,3 @@
1
+ export * from './field.js';
2
+ export * from './point.js';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvYmxzMTIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxZQUFZLENBQUMifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/curves/bls12/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './field.js';
2
+ export * from './point.js';
@@ -1,8 +1,8 @@
1
1
  import type { ProjPointType } from '@noble/curves/abstract/weierstrass';
2
2
  import { inspect } from 'util';
3
- import { BufferReader } from '../serialize/index.js';
4
- import { BLS12Fq, BLS12Fr } from './bls12_fields.js';
5
- import { Fr } from './fields.js';
3
+ import { BufferReader } from '../../serialize/index.js';
4
+ import { Fr } from '../bn254/field.js';
5
+ import { BLS12Fq, BLS12Fr } from './field.js';
6
6
  /**
7
7
  * Represents a Point on an elliptic curve with x and y coordinates.
8
8
  * The Point class provides methods for creating instances from different input types,
@@ -10,17 +10,8 @@ import { Fr } from './fields.js';
10
10
  * TODO(#7386): Clean up this class.
11
11
  */
12
12
  export declare class BLS12Point {
13
- /**
14
- * The point's x coordinate
15
- */
16
13
  readonly x: BLS12Fq;
17
- /**
18
- * The point's y coordinate
19
- */
20
14
  readonly y: BLS12Fq;
21
- /**
22
- * Whether the point is at infinity
23
- */
24
15
  readonly isInfinite: boolean;
25
16
  static ZERO: BLS12Point;
26
17
  static ONE: BLS12Point;
@@ -89,13 +80,13 @@ export declare class BLS12Point {
89
80
  */
90
81
  static decompress(buffer: Buffer): BLS12Point;
91
82
  /**
92
- * Converts a Point to two BN254 Fr elements by storing its compressed form as:
93
- * +------------------+------------------+
94
- * | Field Element 1 | Field Element 2 |
95
- * | [bytes 0-31] | [bytes 32-47] |
96
- * +------------------+------------------+
97
- * | 32 bytes | 16 bytes |
98
- * +------------------+------------------+
83
+ * Converts a Point to two BN254 Fr elements by storing its compressed form (48 bytes) as:
84
+ * +-------------------+------------------------+
85
+ * | 31 bytes | 17 bytes |
86
+ * +-------------------+------------------------+
87
+ * | Field Element 1 | Field Element 2 |
88
+ * | [0][bytes 0-30] | [0...0][bytes 31-47] |
89
+ * +-------------------+------------------------+
99
90
  * Used in the rollup circuits to store blob commitments in the native field type. See blob.ts.
100
91
  * @param point - A BLS12Point instance.
101
92
  * @returns The point fields.
@@ -226,4 +217,4 @@ export declare class BLS12Point {
226
217
  export declare class BLSPointNotOnCurveError extends Error {
227
218
  constructor(x: BLS12Fq, y?: BLS12Fq);
228
219
  }
229
- //# sourceMappingURL=bls12_point.d.ts.map
220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvYmxzMTIvcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFHeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUsvQixPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLDBCQUEwQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUU5Qzs7Ozs7R0FLRztBQUNILHFCQUFhLFVBQVU7YUFXSCxDQUFDLEVBQUUsT0FBTzthQUlWLENBQUMsRUFBRSxPQUFPO2FBSVYsVUFBVSxFQUFFLE9BQU87SUFsQnJDLE1BQU0sQ0FBQyxJQUFJLGFBQW9EO0lBQy9ELE1BQU0sQ0FBQyxHQUFHLGFBQWlHO0lBQzNHLE1BQU0sQ0FBQyxhQUFhLFNBQTZCO0lBQ2pELE1BQU0sQ0FBQyx3QkFBd0IsU0FBeUI7SUFDeEQsTUFBTSxDQUFDLGVBQWUsMEJBQXNGO0lBRTVHO0lBQ0U7O09BRUc7SUFDYSxDQUFDLEVBQUUsT0FBTztJQUMxQjs7T0FFRztJQUNhLENBQUMsRUFBRSxPQUFPO0lBQzFCOztPQUVHO0lBQ2EsVUFBVSxFQUFFLE9BQU8sRUFRcEM7SUFFRCxNQUFNLGtCQUVMO0lBRUQsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBTWY7SUFFRCxNQUFNLEtBQUssTUFBTSxtREFFaEI7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLE1BQU0sZUFZWjtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLGNBSTlDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sY0FFNUI7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxRQUFRLElBQUksTUFBTSxDQU1qQjtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxVQUFVLENBcUI1QztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsYUFBYSxTQUdaO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsY0FFdEM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxjQUV6QztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxjQU8zRDtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxjQWM1QztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLE9BQU8sR0FBRyxPQUFPLENBRXhDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsT0FBTyxHQUFHLE9BQU8sR0FBRyxJQUFJLENBS3hDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxXQVd0QztJQUVEOzs7T0FHRztJQUNILGVBQWUsY0FFZDtJQUVEOzs7O09BSUc7SUFDSCxVQUFVLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBRS9CO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUzs7OztNQU1SO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsNEJBTVA7SUFFRDs7Ozs7O09BTUc7SUFDSCxRQUFRLGtCQUVQO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLEdBQUcsRUFBRSxVQUFVLFdBRXJCO0lBRUQ7O09BRUc7SUFDSCxNQUFNLFlBRUw7SUFFRDs7O09BR0c7SUFDSCxJQUFXLEdBQUcsWUFFYjtJQUVELCtDQUErQztJQUUvQyxzQkFBc0IsMEJBRXJCO0lBRUQsR0FBRyxDQUFDLEdBQUcsRUFBRSxVQUFVLGNBRWxCO0lBRUQsTUFBTSxlQUVMO0lBRUQsR0FBRyxDQUFDLEdBQUcsRUFBRSxVQUFVLGNBRWxCO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILEdBQUcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxjQU1mO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsU0FBUyxDQUFDLEdBQUcsRUFBRSxPQUFPLGNBRXJCO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxVQUFVLGNBT3BEO0NBQ0Y7QUFFRCxxQkFBYSx1QkFBd0IsU0FBUSxLQUFLO0lBQ2hELFlBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBR2xDO0NBQ0YifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/curves/bls12/point.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  /* eslint-disable camelcase */ import { bls12_381 } from '@noble/curves/bls12-381';
2
2
  import { inspect } from 'util';
3
- import { toBufferBE } from '../bigint-buffer/index.js';
4
- import { randomBoolean } from '../crypto/random/index.js';
5
- import { hexSchemaFor } from '../schemas/utils.js';
6
- import { BufferReader, serializeToBuffer } from '../serialize/index.js';
7
- import { bufferToHex, hexToBuffer } from '../string/index.js';
8
- import { BLS12Fq } from './bls12_fields.js';
9
- import { Fr } from './fields.js';
3
+ import { toBufferBE } from '../../bigint-buffer/index.js';
4
+ import { randomBoolean } from '../../crypto/random/index.js';
5
+ import { hexSchemaFor } from '../../schemas/utils.js';
6
+ import { BufferReader, serializeToBuffer } from '../../serialize/index.js';
7
+ import { bufferToHex, hexToBuffer } from '../../string/index.js';
8
+ import { Fr } from '../bn254/field.js';
9
+ import { BLS12Fq } from './field.js';
10
10
  /**
11
11
  * Represents a Point on an elliptic curve with x and y coordinates.
12
12
  * The Point class provides methods for creating instances from different input types,
@@ -145,13 +145,13 @@ import { Fr } from './fields.js';
145
145
  }
146
146
  }
147
147
  /**
148
- * Converts a Point to two BN254 Fr elements by storing its compressed form as:
149
- * +------------------+------------------+
150
- * | Field Element 1 | Field Element 2 |
151
- * | [bytes 0-31] | [bytes 32-47] |
152
- * +------------------+------------------+
153
- * | 32 bytes | 16 bytes |
154
- * +------------------+------------------+
148
+ * Converts a Point to two BN254 Fr elements by storing its compressed form (48 bytes) as:
149
+ * +-------------------+------------------------+
150
+ * | 31 bytes | 17 bytes |
151
+ * +-------------------+------------------------+
152
+ * | Field Element 1 | Field Element 2 |
153
+ * | [0][bytes 0-30] | [0...0][bytes 31-47] |
154
+ * +-------------------+------------------------+
155
155
  * Used in the rollup circuits to store blob commitments in the native field type. See blob.ts.
156
156
  * @param point - A BLS12Point instance.
157
157
  * @returns The point fields.
@@ -1,5 +1,5 @@
1
1
  import { inspect } from 'util';
2
- import { BufferReader } from '../serialize/buffer_reader.js';
2
+ import { BufferReader } from '../../serialize/buffer_reader.js';
3
3
  /**
4
4
  * Represents a field derived from BaseField.
5
5
  */
@@ -112,6 +112,15 @@ export declare class Fr extends BaseField {
112
112
  */
113
113
  sqrt(): Promise<Fr | null>;
114
114
  toJSON(): `0x${string}`;
115
+ /**
116
+ * Creates an Fr instance from a plain object without Zod validation.
117
+ * This method is optimized for performance and skips validation, making it suitable
118
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
119
+ * Handles buffers, strings, numbers, bigints, or existing instances.
120
+ * @param obj - Plain object, buffer, string, number, bigint, boolean, or Fr instance
121
+ * @returns An Fr instance
122
+ */
123
+ static fromPlainObject(obj: any): Fr;
115
124
  static get schema(): import("zod").ZodType<Fr, any, string>;
116
125
  }
117
126
  /**
@@ -157,18 +166,16 @@ export declare class Fq extends BaseField {
157
166
  static fromHexString(buf: string): Fq;
158
167
  static fromHighLow(high: Fr, low: Fr): Fq;
159
168
  add(rhs: Fq): Fq;
169
+ /**
170
+ * Computes a square root of the field element.
171
+ * @returns A square root of the field element (null if it does not exist).
172
+ */
173
+ sqrt(): Promise<Fq | null>;
160
174
  toJSON(): `0x${string}`;
161
175
  toFields(): Fr[];
162
176
  static get schema(): import("zod").ZodType<Fq, any, string>;
163
177
  }
164
- /**
165
- * GrumpkinScalar is an Fq.
166
- * @remarks Called GrumpkinScalar because it is used to represent elements in Grumpkin's scalar field as defined in
167
- * the Aztec Protocol Specs.
168
- */
169
- export type GrumpkinScalar = Fq;
170
- export declare const GrumpkinScalar: typeof Fq;
171
178
  /** Wraps a function that returns a buffer so that all results are reduced into a field of the given type. */
172
179
  export declare function reduceFn<TInput, TField extends BaseField>(fn: (input: TInput) => Buffer, field: DerivedField<TField>): (input: TInput) => TField;
173
180
  export {};
174
- //# sourceMappingURL=fields.d.ts.map
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvYm4yNTQvZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUsvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFPaEU7O0dBRUc7QUFDSCxLQUFLLFlBQVksQ0FBQyxDQUFDLFNBQVMsU0FBUyxJQUFJO0lBQ3ZDLEtBQUssS0FBSyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDcEI7O09BRUc7SUFDSCxPQUFPLEVBQUUsTUFBTSxDQUFDO0NBQ2pCLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILHVCQUFlLFNBQVM7SUFDdEIsTUFBTSxDQUFDLGFBQWEsU0FBTTtJQUMxQixPQUFPLENBQUMsUUFBUSxDQUFDLENBQVM7SUFDMUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFTO0lBRTFCOzs7U0FHSztJQUNMLElBQUksS0FBSyxJQUFJLE1BQU0sQ0FFbEI7SUFFRCxpQ0FBaUM7SUFDakMsSUFBSSxJQUFJLElBQUksTUFBTSxDQUVqQjtJQUVELFNBQVMsYUFBYSxLQUFLLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxPQUFPLEdBQUcsU0FBUyxHQUFHLE1BQU0sRUFzQjFFO0lBRUQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDO0lBRXJDOztPQUVHO0lBQ0gsUUFBUSxJQUFJLE1BQU0sQ0FLakI7SUFFRCxRQUFRLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FFeEI7SUFFRCxRQUFRLElBQUksTUFBTSxDQVFqQjtJQUVELE1BQU0sSUFBSSxPQUFPLENBRWhCO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxJQUFJLE1BQU0sQ0FNakI7SUFFRDs7O09BR0c7SUFDSCxjQUFjLElBQUksTUFBTSxDQUd2QjtJQUVELGFBQWEsSUFBSSxNQUFNLENBR3RC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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/curves/bn254/field.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { BarretenbergSync } from '@aztec/bb.js';
2
2
  import { inspect } from 'util';
3
- import { toBigIntBE, toBufferBE } from '../bigint-buffer/index.js';
4
- import { randomBytes } from '../crypto/random/index.js';
5
- import { hexSchemaFor } from '../schemas/utils.js';
6
- import { BufferReader } from '../serialize/buffer_reader.js';
7
- import { TypeRegistry } from '../serialize/type_registry.js';
3
+ import { toBigIntBE, toBufferBE } from '../../bigint-buffer/index.js';
4
+ import { randomBytes } from '../../crypto/random/index.js';
5
+ import { hexSchemaFor } from '../../schemas/utils.js';
6
+ import { BufferReader } from '../../serialize/buffer_reader.js';
7
+ import { TypeRegistry } from '../../serialize/type_registry.js';
8
8
  const ZERO_BUFFER = Buffer.alloc(32);
9
9
  /**
10
10
  * Base field class.
@@ -235,24 +235,35 @@ const ZERO_BUFFER = Buffer.alloc(32);
235
235
  * Computes a square root of the field element.
236
236
  * @returns A square root of the field element (null if it does not exist).
237
237
  */ async sqrt() {
238
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
239
- const wasm = api.getWasm();
240
- const [buf] = wasm.callWasmExport('bn254_fr_sqrt', [
241
- this.toBuffer()
242
- ], [
243
- Fr.SIZE_IN_BYTES + 1
244
- ]);
245
- const isSqrt = buf[0] === 1;
246
- if (!isSqrt) {
238
+ await BarretenbergSync.initSingleton();
239
+ const api = BarretenbergSync.getSingleton();
240
+ const response = api.bn254FrSqrt({
241
+ input: this.toBuffer()
242
+ });
243
+ if (!response.isSquareRoot) {
247
244
  // Field element is not a quadratic residue mod p so it has no square root.
248
245
  return null;
249
246
  }
250
- return new Fr(Buffer.from(buf.slice(1)));
247
+ return Fr.fromBuffer(Buffer.from(response.value));
251
248
  }
252
249
  toJSON() {
253
250
  return this.toString();
254
251
  }
252
+ /**
253
+ * Creates an Fr instance from a plain object without Zod validation.
254
+ * This method is optimized for performance and skips validation, making it suitable
255
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
256
+ * Handles buffers, strings, numbers, bigints, or existing instances.
257
+ * @param obj - Plain object, buffer, string, number, bigint, boolean, or Fr instance
258
+ * @returns An Fr instance
259
+ */ static fromPlainObject(obj) {
260
+ if (obj instanceof Fr) {
261
+ return obj;
262
+ }
263
+ return new Fr(obj);
264
+ }
255
265
  static get schema() {
266
+ // Serialization from hex string.
256
267
  return hexSchemaFor(Fr);
257
268
  }
258
269
  }
@@ -323,6 +334,21 @@ TypeRegistry.register('Fr', Fr);
323
334
  add(rhs) {
324
335
  return new Fq((this.toBigInt() + rhs.toBigInt()) % Fq.MODULUS);
325
336
  }
337
+ /**
338
+ * Computes a square root of the field element.
339
+ * @returns A square root of the field element (null if it does not exist).
340
+ */ async sqrt() {
341
+ await BarretenbergSync.initSingleton();
342
+ const api = BarretenbergSync.getSingleton();
343
+ const response = api.bn254FqSqrt({
344
+ input: this.toBuffer()
345
+ });
346
+ if (!response.isSquareRoot) {
347
+ // Field element is not a quadratic residue mod p so it has no square root.
348
+ return null;
349
+ }
350
+ return Fq.fromBuffer(Buffer.from(response.value));
351
+ }
326
352
  toJSON() {
327
353
  return this.toString();
328
354
  }
@@ -371,7 +397,6 @@ TypeRegistry.register('Fq', Fq);
371
397
  ];
372
398
  }
373
399
  }
374
- export const GrumpkinScalar = Fq;
375
400
  /** Wraps a function that returns a buffer so that all results are reduced into a field of the given type. */ export function reduceFn(fn, field) {
376
401
  return (input)=>fromBufferReduce(fn(input), field);
377
402
  }
@@ -0,0 +1,3 @@
1
+ export * from './field.js';
2
+ export * from './point.js';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvYm4yNTQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxZQUFZLENBQUMifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/curves/bn254/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './field.js';
2
+ export * from './point.js';
@@ -0,0 +1,54 @@
1
+ import { Fq, Fr } from './field.js';
2
+ /**
3
+ * BN254 G1 point using foundation field classes.
4
+ * Represents a point on the BN254 elliptic curve in affine coordinates.
5
+ */
6
+ export declare class Bn254G1Point {
7
+ readonly x: Fq;
8
+ readonly y: Fq;
9
+ constructor(x: Fq, y: Fq);
10
+ private toBbApiPoint;
11
+ private static fromBbApiPoint;
12
+ isOnCurve(): Promise<boolean>;
13
+ /**
14
+ * Get the generator point for BN254 G1, or perform scalar multiplication.
15
+ * When called without arguments, returns the base generator point.
16
+ * When called with a scalar, returns scalar * generator (useful for public key derivation).
17
+ */
18
+ static generator(scalar?: Fr): Promise<Bn254G1Point>;
19
+ /**
20
+ * Decompress a BN254 G1 point from compressed form (32 bytes).
21
+ * The compressed format encodes the x-coordinate and the sign bit of the y-coordinate
22
+ * in the most significant bit.
23
+ */
24
+ static fromCompressed(compressed: Buffer): Promise<Bn254G1Point>;
25
+ /**
26
+ * Compress this BN254 G1 point to 32 bytes.
27
+ * The compressed format encodes the x-coordinate and the sign bit of the y-coordinate
28
+ * in the most significant bit (bit 255).
29
+ */
30
+ compress(): Buffer;
31
+ equals(other: Bn254G1Point): boolean;
32
+ toString(): string;
33
+ }
34
+ /**
35
+ * BN254 G2 point using foundation field classes.
36
+ * Represents a point on the BN254 G2 curve (twist curve) in affine coordinates.
37
+ * G2 points use extension field coordinates (Fq2).
38
+ */
39
+ export declare class Bn254G2Point {
40
+ readonly x: [Fq, Fq];
41
+ readonly y: [Fq, Fq];
42
+ constructor(x: [Fq, Fq], y: [Fq, Fq]);
43
+ private toBbApiPoint;
44
+ private static fromBbApiPoint;
45
+ /**
46
+ * Get the generator point for BN254 G2, or perform scalar multiplication.
47
+ * When called without arguments, returns the base generator point.
48
+ * When called with a scalar, returns scalar * generator.
49
+ */
50
+ static generator(scalar?: Fr): Promise<Bn254G2Point>;
51
+ equals(other: Bn254G2Point): boolean;
52
+ toString(): string;
53
+ }
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvYm4yNTQvcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFcEM7OztHQUdHO0FBQ0gscUJBQWEsWUFBWTthQUVMLENBQUMsRUFBRSxFQUFFO2FBQ0wsQ0FBQyxFQUFFLEVBQUU7SUFGdkIsWUFDa0IsQ0FBQyxFQUFFLEVBQUUsRUFDTCxDQUFDLEVBQUUsRUFBRSxFQUNuQjtJQUVKLE9BQU8sQ0FBQyxZQUFZO0lBT3BCLE9BQU8sQ0FBQyxNQUFNLENBQUMsY0FBYztJQUl2QixTQUFTLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQU9sQztJQUVEOzs7O09BSUc7SUFDSCxPQUFhLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQWlCekQ7SUFFRDs7OztPQUlHO0lBQ0gsT0FBYSxjQUFjLENBQUMsVUFBVSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBWXJFO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsSUFBSSxNQUFNLENBU2pCO0lBRUQsTUFBTSxDQUFDLEtBQUssRUFBRSxZQUFZLEdBQUcsT0FBTyxDQUVuQztJQUVELFFBQVEsSUFBSSxNQUFNLENBRWpCO0NBQ0Y7QUFFRDs7OztHQUlHO0FBQ0gscUJBQWEsWUFBWTthQUVMLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7YUFDWCxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBRjdCLFlBQ2tCLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDWCxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3pCO0lBRUosT0FBTyxDQUFDLFlBQVk7SUFPcEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxjQUFjO0lBTzdCOzs7O09BSUc7SUFDSCxPQUFhLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQWlCekQ7SUFFRCxNQUFNLENBQUMsS0FBSyxFQUFFLFlBQVksR0FBRyxPQUFPLENBT25DO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7Q0FDRiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/curves/bn254/point.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAEpC;;;GAGG;AACH,qBAAa,YAAY;aAEL,CAAC,EAAE,EAAE;aACL,CAAC,EAAE,EAAE;IAFvB,YACkB,CAAC,EAAE,EAAE,EACL,CAAC,EAAE,EAAE,EACnB;IAEJ,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,MAAM,CAAC,cAAc;IAIvB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAOlC;IAED;;;;OAIG;IACH,OAAa,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAiBzD;IAED;;;;OAIG;IACH,OAAa,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAYrE;IAED;;;;OAIG;IACH,QAAQ,IAAI,MAAM,CASjB;IAED,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAEnC;IAED,QAAQ,IAAI,MAAM,CAEjB;CACF;AAED;;;;GAIG;AACH,qBAAa,YAAY;aAEL,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;aACX,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;IAF7B,YACkB,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EACX,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EACzB;IAEJ,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,MAAM,CAAC,cAAc;IAO7B;;;;OAIG;IACH,OAAa,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAiBzD;IAED,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAOnC;IAED,QAAQ,IAAI,MAAM,CAEjB;CACF"}