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

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 (472) 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 +56 -0
  15. package/dest/branded-types/block_number.d.ts.map +1 -0
  16. package/dest/branded-types/block_number.js +78 -0
  17. package/dest/branded-types/checkpoint_number.d.ts +54 -0
  18. package/dest/branded-types/checkpoint_number.d.ts.map +1 -0
  19. package/dest/branded-types/checkpoint_number.js +77 -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 +7 -0
  24. package/dest/branded-types/index.d.ts.map +1 -0
  25. package/dest/branded-types/index.js +5 -0
  26. package/dest/branded-types/index_within_checkpoint.d.ts +42 -0
  27. package/dest/branded-types/index_within_checkpoint.d.ts.map +1 -0
  28. package/dest/branded-types/index_within_checkpoint.js +59 -0
  29. package/dest/branded-types/slot.d.ts +42 -0
  30. package/dest/branded-types/slot.d.ts.map +1 -0
  31. package/dest/branded-types/slot.js +59 -0
  32. package/dest/branded-types/types.d.ts +5 -0
  33. package/dest/branded-types/types.d.ts.map +1 -0
  34. package/dest/branded-types/types.js +1 -0
  35. package/dest/buffer/buffer16.d.ts +2 -2
  36. package/dest/buffer/buffer16.d.ts.map +1 -1
  37. package/dest/buffer/buffer16.js +4 -2
  38. package/dest/buffer/buffer32.d.ts +2 -2
  39. package/dest/buffer/buffer32.d.ts.map +1 -1
  40. package/dest/buffer/buffer32.js +4 -2
  41. package/dest/buffer/index.d.ts +1 -1
  42. package/dest/collection/array.d.ts +6 -1
  43. package/dest/collection/array.d.ts.map +1 -1
  44. package/dest/collection/array.js +27 -0
  45. package/dest/collection/index.d.ts +1 -1
  46. package/dest/collection/object.d.ts +1 -1
  47. package/dest/committable/committable.d.ts +1 -1
  48. package/dest/committable/committable.d.ts.map +1 -1
  49. package/dest/committable/index.d.ts +1 -1
  50. package/dest/config/env_var.d.ts +2 -2
  51. package/dest/config/env_var.d.ts.map +1 -1
  52. package/dest/config/index.d.ts +15 -4
  53. package/dest/config/index.d.ts.map +1 -1
  54. package/dest/config/index.js +32 -9
  55. package/dest/config/network_config.d.ts +13 -1
  56. package/dest/config/network_config.d.ts.map +1 -1
  57. package/dest/config/network_config.js +3 -1
  58. package/dest/config/network_name.d.ts +1 -1
  59. package/dest/config/parse-env.d.ts +3 -0
  60. package/dest/config/parse-env.d.ts.map +1 -0
  61. package/dest/config/parse-env.js +7 -0
  62. package/dest/config/secret_value.d.ts +1 -1
  63. package/dest/config/secret_value.d.ts.map +1 -1
  64. package/dest/config/secret_value.js +3 -1
  65. package/dest/crypto/aes128/index.d.ts +1 -1
  66. package/dest/crypto/aes128/index.d.ts.map +1 -1
  67. package/dest/crypto/aes128/index.js +2 -6
  68. package/dest/crypto/bls/bn254_keystore.d.ts +15 -15
  69. package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -1
  70. package/dest/crypto/bls/bn254_keystore.js +1 -1
  71. package/dest/crypto/bls/index.d.ts +1 -1
  72. package/dest/crypto/bls/index.js +1 -1
  73. package/dest/crypto/bn254/index.d.ts +35 -51
  74. package/dest/crypto/bn254/index.d.ts.map +1 -1
  75. package/dest/crypto/bn254/index.js +51 -137
  76. package/dest/crypto/ecdsa/index.d.ts +1 -1
  77. package/dest/crypto/ecdsa/index.d.ts.map +1 -1
  78. package/dest/crypto/ecdsa/index.js +4 -12
  79. package/dest/crypto/ecdsa/signature.d.ts +2 -2
  80. package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
  81. package/dest/crypto/ecdsa/signature.js +2 -2
  82. package/dest/crypto/grumpkin/index.d.ts +4 -2
  83. package/dest/crypto/grumpkin/index.d.ts.map +1 -1
  84. package/dest/crypto/grumpkin/index.js +7 -16
  85. package/dest/crypto/keccak/index.d.ts +1 -1
  86. package/dest/crypto/keys/index.d.ts +2 -2
  87. package/dest/crypto/keys/index.d.ts.map +1 -1
  88. package/dest/crypto/keys/index.js +2 -4
  89. package/dest/crypto/pedersen/index.d.ts +1 -1
  90. package/dest/crypto/pedersen/pedersen.noble.d.ts +1 -1
  91. package/dest/crypto/pedersen/pedersen.wasm.d.ts +2 -2
  92. package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
  93. package/dest/crypto/pedersen/pedersen.wasm.js +4 -10
  94. package/dest/crypto/poseidon/index.d.ts +2 -3
  95. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  96. package/dest/crypto/poseidon/index.js +5 -24
  97. package/dest/crypto/random/index.d.ts +1 -1
  98. package/dest/crypto/random/index.d.ts.map +1 -1
  99. package/dest/crypto/random/randomness_singleton.d.ts +2 -2
  100. package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
  101. package/dest/crypto/random/randomness_singleton.js +3 -3
  102. package/dest/crypto/schnorr/index.d.ts +3 -2
  103. package/dest/crypto/schnorr/index.d.ts.map +1 -1
  104. package/dest/crypto/schnorr/index.js +4 -10
  105. package/dest/crypto/schnorr/signature.d.ts +2 -2
  106. package/dest/crypto/schnorr/signature.d.ts.map +1 -1
  107. package/dest/crypto/schnorr/signature.js +2 -2
  108. package/dest/crypto/secp256k1/index.d.ts +1 -1
  109. package/dest/crypto/secp256k1/index.d.ts.map +1 -1
  110. package/dest/crypto/secp256k1/index.js +3 -9
  111. package/dest/crypto/secp256k1-signer/index.d.ts +1 -1
  112. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts +1 -1
  113. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts.map +1 -1
  114. package/dest/crypto/secp256k1-signer/utils.d.ts +1 -1
  115. package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
  116. package/dest/crypto/serialize.d.ts +1 -1
  117. package/dest/crypto/sha256/index.d.ts +2 -2
  118. package/dest/crypto/sha256/index.d.ts.map +1 -1
  119. package/dest/crypto/sha256/index.js +1 -1
  120. package/dest/crypto/sha512/index.d.ts +3 -3
  121. package/dest/crypto/sha512/index.d.ts.map +1 -1
  122. package/dest/crypto/sha512/index.js +1 -1
  123. package/dest/crypto/signature/index.d.ts +2 -2
  124. package/dest/crypto/signature/index.d.ts.map +1 -1
  125. package/dest/crypto/sync/index.d.ts +1 -1
  126. package/dest/crypto/sync/index.js +1 -3
  127. package/dest/crypto/sync/pedersen/index.d.ts +2 -2
  128. package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
  129. package/dest/crypto/sync/pedersen/index.js +1 -1
  130. package/dest/crypto/sync/poseidon/index.d.ts +2 -3
  131. package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
  132. package/dest/crypto/sync/poseidon/index.js +1 -9
  133. package/dest/{fields/bls12_fields.d.ts → curves/bls12/field.d.ts} +3 -3
  134. package/dest/curves/bls12/field.d.ts.map +1 -0
  135. package/dest/{fields/bls12_fields.js → curves/bls12/field.js} +12 -9
  136. package/dest/curves/bls12/index.d.ts +3 -0
  137. package/dest/curves/bls12/index.d.ts.map +1 -0
  138. package/dest/curves/bls12/index.js +2 -0
  139. package/dest/{fields/bls12_point.d.ts → curves/bls12/point.d.ts} +4 -4
  140. package/dest/curves/bls12/point.d.ts.map +1 -0
  141. package/dest/{fields/bls12_point.js → curves/bls12/point.js} +10 -8
  142. package/dest/{fields/fields.d.ts → curves/bn254/field.d.ts} +16 -15
  143. package/dest/curves/bn254/field.d.ts.map +1 -0
  144. package/dest/{fields/fields.js → curves/bn254/field.js} +49 -49
  145. package/dest/curves/bn254/index.d.ts +3 -0
  146. package/dest/curves/bn254/index.d.ts.map +1 -0
  147. package/dest/curves/bn254/index.js +2 -0
  148. package/dest/curves/bn254/point.d.ts +54 -0
  149. package/dest/curves/bn254/point.d.ts.map +1 -0
  150. package/dest/curves/bn254/point.js +143 -0
  151. package/dest/curves/grumpkin/index.d.ts +10 -0
  152. package/dest/curves/grumpkin/index.d.ts.map +1 -0
  153. package/dest/curves/grumpkin/index.js +3 -0
  154. package/dest/{fields → curves/grumpkin}/point.d.ts +12 -3
  155. package/dest/curves/grumpkin/point.d.ts.map +1 -0
  156. package/dest/{fields → curves/grumpkin}/point.js +24 -7
  157. package/dest/decorators/index.d.ts +1 -1
  158. package/dest/decorators/memoize.d.ts +1 -1
  159. package/dest/decorators/memoize.d.ts.map +1 -1
  160. package/dest/error/index.d.ts +1 -1
  161. package/dest/eth-address/index.d.ts +12 -2
  162. package/dest/eth-address/index.d.ts.map +1 -1
  163. package/dest/eth-address/index.js +27 -3
  164. package/dest/eth-signature/eth_signature.d.ts +1 -1
  165. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  166. package/dest/eth-signature/index.d.ts +1 -1
  167. package/dest/fs/index.d.ts +1 -1
  168. package/dest/fs/run_in_dir.d.ts +1 -1
  169. package/dest/fs/try_rm_dir.d.ts +1 -1
  170. package/dest/iterable/all.d.ts +1 -1
  171. package/dest/iterable/filter.d.ts +1 -1
  172. package/dest/iterable/index.d.ts +1 -1
  173. package/dest/iterable/isAsyncIt.d.ts +1 -1
  174. package/dest/iterable/map.d.ts +1 -1
  175. package/dest/iterable/peek.d.ts +1 -1
  176. package/dest/iterable/sort.d.ts +1 -1
  177. package/dest/iterable/take.d.ts +1 -1
  178. package/dest/iterable/toArray.d.ts +1 -1
  179. package/dest/iterator/filter.d.ts +3 -0
  180. package/dest/iterator/filter.d.ts.map +1 -0
  181. package/dest/iterator/filter.js +7 -0
  182. package/dest/iterator/index.d.ts +2 -0
  183. package/dest/iterator/index.d.ts.map +1 -0
  184. package/dest/iterator/index.js +1 -0
  185. package/dest/json-rpc/client/fetch.d.ts +1 -1
  186. package/dest/json-rpc/client/index.d.ts +1 -1
  187. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +1 -1
  188. package/dest/json-rpc/client/undici.d.ts +1 -1
  189. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  190. package/dest/json-rpc/client/undici.js +21 -4
  191. package/dest/json-rpc/convert.d.ts +1 -1
  192. package/dest/json-rpc/errors.d.ts +1 -1
  193. package/dest/json-rpc/errors.d.ts.map +1 -1
  194. package/dest/json-rpc/fixtures/class_a.d.ts +1 -1
  195. package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
  196. package/dest/json-rpc/fixtures/class_b.d.ts +1 -1
  197. package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -1
  198. package/dest/json-rpc/fixtures/test_state.d.ts +1 -1
  199. package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
  200. package/dest/json-rpc/index.d.ts +1 -1
  201. package/dest/json-rpc/js_utils.d.ts +1 -1
  202. package/dest/json-rpc/js_utils.d.ts.map +1 -1
  203. package/dest/json-rpc/server/index.d.ts +1 -1
  204. package/dest/json-rpc/server/safe_json_rpc_server.d.ts +1 -1
  205. package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
  206. package/dest/json-rpc/server/safe_json_rpc_server.js +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 +1 -1
  217. package/dest/log/noir_debug_log_util.d.ts +1 -1
  218. package/dest/log/pino-logger.d.ts +2 -2
  219. package/dest/log/pino-logger.d.ts.map +1 -1
  220. package/dest/log/pino-logger.js +1 -1
  221. package/dest/message/index.d.ts +1 -1
  222. package/dest/message/index.d.ts.map +1 -1
  223. package/dest/mutex/index.d.ts +1 -1
  224. package/dest/mutex/index.d.ts.map +1 -1
  225. package/dest/mutex/mutex_database.d.ts +1 -1
  226. package/dest/noir/index.d.ts +1 -1
  227. package/dest/noir/noir_package_config.d.ts +9 -9
  228. package/dest/number/index.d.ts +1 -1
  229. package/dest/profiler/index.d.ts +1 -1
  230. package/dest/profiler/profiler.d.ts +1 -1
  231. package/dest/promise/index.d.ts +1 -1
  232. package/dest/promise/running-promise.d.ts +1 -1
  233. package/dest/promise/running-promise.d.ts.map +1 -1
  234. package/dest/promise/utils.d.ts +1 -1
  235. package/dest/queue/base_memory_queue.d.ts +1 -1
  236. package/dest/queue/base_memory_queue.d.ts.map +1 -1
  237. package/dest/queue/batch_queue.d.ts +1 -1
  238. package/dest/queue/batch_queue.d.ts.map +1 -1
  239. package/dest/queue/bounded_serial_queue.d.ts +1 -1
  240. package/dest/queue/bounded_serial_queue.d.ts.map +1 -1
  241. package/dest/queue/fifo_memory_queue.d.ts +1 -1
  242. package/dest/queue/fifo_memory_queue.d.ts.map +1 -1
  243. package/dest/queue/index.d.ts +1 -1
  244. package/dest/queue/priority_memory_queue.d.ts +1 -1
  245. package/dest/queue/priority_memory_queue.d.ts.map +1 -1
  246. package/dest/queue/priority_queue.d.ts +1 -1
  247. package/dest/queue/priority_queue.d.ts.map +1 -1
  248. package/dest/queue/semaphore.d.ts +1 -1
  249. package/dest/queue/semaphore.d.ts.map +1 -1
  250. package/dest/queue/serial_queue.d.ts +1 -1
  251. package/dest/queue/serial_queue.d.ts.map +1 -1
  252. package/dest/retry/index.d.ts +11 -1
  253. package/dest/retry/index.d.ts.map +1 -1
  254. package/dest/retry/index.js +11 -0
  255. package/dest/running-promise/index.d.ts +1 -1
  256. package/dest/schemas/api.d.ts +1 -1
  257. package/dest/schemas/index.d.ts +1 -1
  258. package/dest/schemas/parse.d.ts +1 -1
  259. package/dest/schemas/schemas.d.ts +15 -17
  260. package/dest/schemas/schemas.d.ts.map +1 -1
  261. package/dest/schemas/schemas.js +14 -10
  262. package/dest/schemas/types.d.ts +31 -1
  263. package/dest/schemas/types.d.ts.map +1 -1
  264. package/dest/schemas/types.js +25 -1
  265. package/dest/schemas/utils.d.ts +4 -4
  266. package/dest/schemas/utils.d.ts.map +1 -1
  267. package/dest/schemas/utils.js +15 -5
  268. package/dest/serialize/buffer_reader.d.ts +7 -4
  269. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  270. package/dest/serialize/buffer_reader.js +13 -4
  271. package/dest/serialize/field_reader.d.ts +2 -2
  272. package/dest/serialize/field_reader.d.ts.map +1 -1
  273. package/dest/serialize/field_reader.js +1 -1
  274. package/dest/serialize/free_funcs.d.ts +2 -2
  275. package/dest/serialize/free_funcs.d.ts.map +1 -1
  276. package/dest/serialize/free_funcs.js +1 -1
  277. package/dest/serialize/index.d.ts +1 -1
  278. package/dest/serialize/serialize.d.ts +2 -2
  279. package/dest/serialize/serialize.d.ts.map +1 -1
  280. package/dest/serialize/serialize.js +1 -1
  281. package/dest/serialize/type_registry.d.ts +1 -1
  282. package/dest/serialize/type_registry.d.ts.map +1 -1
  283. package/dest/serialize/types.d.ts +1 -1
  284. package/dest/sleep/index.d.ts +3 -1
  285. package/dest/sleep/index.d.ts.map +1 -1
  286. package/dest/sleep/index.js +4 -0
  287. package/dest/string/index.d.ts +1 -1
  288. package/dest/testing/files/index.d.ts +2 -1
  289. package/dest/testing/files/index.d.ts.map +1 -1
  290. package/dest/testing/files/index.js +1 -1
  291. package/dest/testing/formatting.d.ts +1 -1
  292. package/dest/testing/index.d.ts +1 -1
  293. package/dest/testing/port_allocator.d.ts +1 -1
  294. package/dest/testing/snapshot_serializer.d.ts +1 -1
  295. package/dest/testing/test_data.d.ts +1 -1
  296. package/dest/timer/date.d.ts +2 -1
  297. package/dest/timer/date.d.ts.map +1 -1
  298. package/dest/timer/date.js +3 -0
  299. package/dest/timer/elapsed.d.ts +1 -1
  300. package/dest/timer/index.d.ts +1 -1
  301. package/dest/timer/timeout.d.ts +1 -1
  302. package/dest/timer/timeout.d.ts.map +1 -1
  303. package/dest/timer/timer.d.ts +1 -1
  304. package/dest/timer/timer.d.ts.map +1 -1
  305. package/dest/transport/dispatch/create_dispatch_fn.d.ts +1 -1
  306. package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +1 -1
  307. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +1 -1
  308. package/dest/transport/dispatch/messages.d.ts +1 -1
  309. package/dest/transport/index.d.ts +1 -1
  310. package/dest/transport/interface/connector.d.ts +1 -1
  311. package/dest/transport/interface/listener.d.ts +1 -1
  312. package/dest/transport/interface/socket.d.ts +1 -1
  313. package/dest/transport/interface/transferable.d.ts +1 -1
  314. package/dest/transport/node/index.d.ts +1 -1
  315. package/dest/transport/node/node_connector.d.ts +1 -1
  316. package/dest/transport/node/node_connector.d.ts.map +1 -1
  317. package/dest/transport/node/node_connector_socket.d.ts +1 -1
  318. package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
  319. package/dest/transport/node/node_listener.d.ts +1 -1
  320. package/dest/transport/node/node_listener.d.ts.map +1 -1
  321. package/dest/transport/node/node_listener_socket.d.ts +1 -1
  322. package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
  323. package/dest/transport/transport_client.d.ts +1 -1
  324. package/dest/transport/transport_client.d.ts.map +1 -1
  325. package/dest/transport/transport_server.d.ts +1 -10
  326. package/dest/transport/transport_server.d.ts.map +1 -1
  327. package/dest/trees/balanced_merkle_tree_root.d.ts +17 -0
  328. package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -0
  329. package/dest/trees/balanced_merkle_tree_root.js +51 -0
  330. package/dest/trees/hasher.d.ts +3 -1
  331. package/dest/trees/hasher.d.ts.map +1 -1
  332. package/dest/trees/hasher.js +10 -5
  333. package/dest/trees/index.d.ts +4 -3
  334. package/dest/trees/index.d.ts.map +1 -1
  335. package/dest/trees/index.js +3 -2
  336. package/dest/trees/indexed_merkle_tree.d.ts +1 -1
  337. package/dest/trees/indexed_merkle_tree.d.ts.map +1 -1
  338. package/dest/trees/indexed_merkle_tree.js +1 -1
  339. package/dest/trees/indexed_merkle_tree_calculator.d.ts +1 -1
  340. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
  341. package/dest/trees/indexed_tree_leaf.d.ts +1 -1
  342. package/dest/trees/membership_witness.d.ts +7 -18
  343. package/dest/trees/membership_witness.d.ts.map +1 -1
  344. package/dest/trees/membership_witness.js +10 -1
  345. package/dest/trees/merkle_tree.d.ts +1 -1
  346. package/dest/trees/merkle_tree.d.ts.map +1 -1
  347. package/dest/trees/merkle_tree_calculator.d.ts +2 -12
  348. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  349. package/dest/trees/merkle_tree_calculator.js +2 -32
  350. package/dest/trees/sibling_path.d.ts +5 -38
  351. package/dest/trees/sibling_path.d.ts.map +1 -1
  352. package/dest/trees/sibling_path.js +3 -3
  353. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +6 -6
  354. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -1
  355. package/dest/trees/unbalanced_merkle_tree_calculator.js +34 -42
  356. package/dest/trees/unbalanced_merkle_tree_root.d.ts +28 -0
  357. package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -0
  358. package/dest/trees/unbalanced_merkle_tree_root.js +84 -0
  359. package/dest/trees/unbalanced_tree_store.d.ts +5 -1
  360. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
  361. package/dest/trees/unbalanced_tree_store.js +49 -1
  362. package/dest/types/index.d.ts +4 -2
  363. package/dest/types/index.d.ts.map +1 -1
  364. package/dest/types/index.js +3 -0
  365. package/dest/url/index.d.ts +1 -1
  366. package/dest/validation/index.d.ts +1 -1
  367. package/package.json +29 -9
  368. package/src/array/array.ts +0 -16
  369. package/src/array/index.ts +1 -0
  370. package/src/array/sorted_array.ts +133 -0
  371. package/src/branded-types/block_number.ts +117 -0
  372. package/src/branded-types/checkpoint_number.ts +115 -0
  373. package/src/branded-types/epoch.ts +88 -0
  374. package/src/branded-types/index.ts +7 -0
  375. package/src/branded-types/index_within_checkpoint.ts +88 -0
  376. package/src/branded-types/slot.ts +88 -0
  377. package/src/branded-types/types.ts +2 -0
  378. package/src/buffer/buffer16.ts +2 -2
  379. package/src/buffer/buffer32.ts +2 -2
  380. package/src/collection/array.ts +31 -0
  381. package/src/config/env_var.ts +44 -13
  382. package/src/config/index.ts +39 -6
  383. package/src/config/network_config.ts +2 -0
  384. package/src/config/parse-env.ts +4 -0
  385. package/src/crypto/aes128/index.ts +2 -2
  386. package/src/crypto/bls/bn254_keystore.ts +1 -1
  387. package/src/crypto/bls/index.ts +1 -1
  388. package/src/crypto/bn254/index.ts +50 -156
  389. package/src/crypto/ecdsa/index.ts +4 -4
  390. package/src/crypto/ecdsa/signature.ts +2 -2
  391. package/src/crypto/grumpkin/index.ts +8 -6
  392. package/src/crypto/keys/index.ts +2 -2
  393. package/src/crypto/pedersen/pedersen.wasm.ts +4 -4
  394. package/src/crypto/poseidon/index.ts +5 -15
  395. package/src/crypto/random/randomness_singleton.ts +2 -4
  396. package/src/crypto/schnorr/index.ts +5 -4
  397. package/src/crypto/schnorr/signature.ts +2 -2
  398. package/src/crypto/secp256k1/index.ts +3 -3
  399. package/src/crypto/sha256/index.ts +1 -1
  400. package/src/crypto/sha512/index.ts +1 -1
  401. package/src/crypto/signature/index.ts +1 -1
  402. package/src/crypto/sync/index.ts +1 -1
  403. package/src/crypto/sync/pedersen/index.ts +1 -1
  404. package/src/crypto/sync/poseidon/index.ts +1 -10
  405. package/src/{fields/bls12_fields.ts → curves/bls12/field.ts} +6 -6
  406. package/src/curves/bls12/index.ts +2 -0
  407. package/src/{fields/bls12_point.ts → curves/bls12/point.ts} +7 -7
  408. package/src/{fields/fields.ts → curves/bn254/field.ts} +49 -56
  409. package/src/curves/bn254/index.ts +2 -0
  410. package/src/curves/bn254/point.ts +170 -0
  411. package/src/curves/grumpkin/index.ts +11 -0
  412. package/src/{fields → curves/grumpkin}/point.ts +26 -7
  413. package/src/eth-address/index.ts +27 -2
  414. package/src/iterator/filter.ts +11 -0
  415. package/src/iterator/index.ts +1 -0
  416. package/src/json-rpc/client/undici.ts +21 -3
  417. package/src/json-rpc/server/safe_json_rpc_server.ts +1 -1
  418. package/src/log/pino-logger.ts +2 -1
  419. package/src/retry/index.ts +18 -0
  420. package/src/schemas/schemas.ts +24 -13
  421. package/src/schemas/types.ts +33 -0
  422. package/src/schemas/utils.ts +21 -8
  423. package/src/serialize/buffer_reader.ts +21 -9
  424. package/src/serialize/field_reader.ts +1 -1
  425. package/src/serialize/free_funcs.ts +1 -1
  426. package/src/serialize/serialize.ts +1 -1
  427. package/src/sleep/index.ts +6 -0
  428. package/src/testing/files/index.ts +1 -1
  429. package/src/timer/date.ts +4 -0
  430. package/src/trees/balanced_merkle_tree_root.ts +68 -0
  431. package/src/trees/hasher.ts +9 -0
  432. package/src/trees/index.ts +3 -2
  433. package/src/trees/indexed_merkle_tree.ts +1 -1
  434. package/src/trees/membership_witness.ts +9 -1
  435. package/src/trees/merkle_tree_calculator.ts +2 -35
  436. package/src/trees/sibling_path.ts +3 -3
  437. package/src/trees/unbalanced_merkle_tree_calculator.ts +32 -50
  438. package/src/trees/unbalanced_merkle_tree_root.ts +115 -0
  439. package/src/trees/unbalanced_tree_store.ts +57 -2
  440. package/src/types/index.ts +6 -1
  441. package/dest/crypto/bn254/bn254_utils.d.ts +0 -39
  442. package/dest/crypto/bn254/bn254_utils.d.ts.map +0 -1
  443. package/dest/crypto/bn254/bn254_utils.js +0 -56
  444. package/dest/crypto/index.d.ts +0 -17
  445. package/dest/crypto/index.d.ts.map +0 -1
  446. package/dest/crypto/index.js +0 -16
  447. package/dest/fields/bls12_fields.d.ts.map +0 -1
  448. package/dest/fields/bls12_point.d.ts.map +0 -1
  449. package/dest/fields/coordinate.d.ts +0 -66
  450. package/dest/fields/coordinate.d.ts.map +0 -1
  451. package/dest/fields/coordinate.js +0 -96
  452. package/dest/fields/fields.d.ts.map +0 -1
  453. package/dest/fields/index.d.ts +0 -6
  454. package/dest/fields/index.d.ts.map +0 -1
  455. package/dest/fields/index.js +0 -5
  456. package/dest/fields/point.d.ts.map +0 -1
  457. package/dest/index.d.ts +0 -30
  458. package/dest/index.d.ts.map +0 -1
  459. package/dest/index.js +0 -30
  460. package/dest/json-rpc/server/telemetry.d.ts +0 -2
  461. package/dest/json-rpc/server/telemetry.d.ts.map +0 -1
  462. package/dest/json-rpc/server/telemetry.js +0 -0
  463. package/dest/trees/unbalanced_merkle_tree.d.ts +0 -28
  464. package/dest/trees/unbalanced_merkle_tree.d.ts.map +0 -1
  465. package/dest/trees/unbalanced_merkle_tree.js +0 -99
  466. package/src/crypto/bn254/bn254_utils.ts +0 -64
  467. package/src/crypto/index.ts +0 -16
  468. package/src/fields/coordinate.ts +0 -104
  469. package/src/fields/index.ts +0 -5
  470. package/src/index.ts +0 -30
  471. package/src/json-rpc/server/telemetry.ts +0 -0
  472. package/src/trees/unbalanced_merkle_tree.ts +0 -111
@@ -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
  */
@@ -12,14 +12,12 @@ type DerivedField<T extends BaseField> = {
12
12
  };
13
13
  /**
14
14
  * Base field class.
15
- * Conversions from Buffer to BigInt and vice-versa are not cheap.
16
- * We allow construction with either form and lazily convert to other as needed.
17
- * We only check we are within the field modulus when initializing with bigint.
15
+ * Uses bigint as the internal representation.
16
+ * Buffers are generated on demand from the bigint value.
18
17
  */
19
18
  declare abstract class BaseField {
20
19
  static SIZE_IN_BYTES: number;
21
- private asBuffer?;
22
- private asBigInt?;
20
+ private readonly asBigInt;
23
21
  /**
24
22
  * Return bigint representation.
25
23
  * @deprecated Just to get things compiling. Use toBigInt().
@@ -30,7 +28,7 @@ declare abstract class BaseField {
30
28
  protected constructor(value: number | bigint | boolean | BaseField | Buffer);
31
29
  protected abstract modulus(): bigint;
32
30
  /**
33
- * We return a copy of the Buffer to ensure this remains immutable.
31
+ * Converts the bigint to a Buffer.
34
32
  */
35
33
  toBuffer(): Buffer;
36
34
  toString(): `0x${string}`;
@@ -50,6 +48,7 @@ declare abstract class BaseField {
50
48
  equals(rhs: BaseField): boolean;
51
49
  lt(rhs: BaseField): boolean;
52
50
  cmp(rhs: BaseField): -1 | 0 | 1;
51
+ static cmp(lhs: BaseField, rhs: BaseField): -1 | 0 | 1;
53
52
  isZero(): boolean;
54
53
  isEmpty(): boolean;
55
54
  toFriendlyJSON(): string;
@@ -112,6 +111,15 @@ export declare class Fr extends BaseField {
112
111
  */
113
112
  sqrt(): Promise<Fr | null>;
114
113
  toJSON(): `0x${string}`;
114
+ /**
115
+ * Creates an Fr instance from a plain object without Zod validation.
116
+ * This method is optimized for performance and skips validation, making it suitable
117
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
118
+ * Handles buffers, strings, numbers, bigints, or existing instances.
119
+ * @param obj - Plain object, buffer, string, number, bigint, boolean, or Fr instance
120
+ * @returns An Fr instance
121
+ */
122
+ static fromPlainObject(obj: any): Fr;
115
123
  static get schema(): import("zod").ZodType<Fr, any, string>;
116
124
  }
117
125
  /**
@@ -166,14 +174,7 @@ export declare class Fq extends BaseField {
166
174
  toFields(): Fr[];
167
175
  static get schema(): import("zod").ZodType<Fq, any, string>;
168
176
  }
169
- /**
170
- * GrumpkinScalar is an Fq.
171
- * @remarks Called GrumpkinScalar because it is used to represent elements in Grumpkin's scalar field as defined in
172
- * the Aztec Protocol Specs.
173
- */
174
- export type GrumpkinScalar = Fq;
175
- export declare const GrumpkinScalar: typeof Fq;
176
177
  /** Wraps a function that returns a buffer so that all results are reduced into a field of the given type. */
177
178
  export declare function reduceFn<TInput, TField extends BaseField>(fn: (input: TInput) => Buffer, field: DerivedField<TField>): (input: TInput) => TField;
178
179
  export {};
179
- //# sourceMappingURL=fields.d.ts.map
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvYm4yNTQvZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUsvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFLaEU7O0dBRUc7QUFDSCxLQUFLLFlBQVksQ0FBQyxDQUFDLFNBQVMsU0FBUyxJQUFJO0lBQ3ZDLEtBQUssS0FBSyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDcEI7O09BRUc7SUFDSCxPQUFPLEVBQUUsTUFBTSxDQUFDO0NBQ2pCLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsdUJBQWUsU0FBUztJQUN0QixNQUFNLENBQUMsYUFBYSxTQUFNO0lBQzFCLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFTO0lBRWxDOzs7U0FHSztJQUNMLElBQUksS0FBSyxJQUFJLE1BQU0sQ0FFbEI7SUFFRCxpQ0FBaUM7SUFDakMsSUFBSSxJQUFJLElBQUksTUFBTSxDQUVqQjtJQUVELFNBQVMsYUFBYSxLQUFLLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxPQUFPLEdBQUcsU0FBUyxHQUFHLE1BQU0sRUFtQjFFO0lBRUQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDO0lBRXJDOztPQUVHO0lBQ0gsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxRQUFRLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FFeEI7SUFFRCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE1BQU0sSUFBSSxPQUFPLENBRWhCO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxJQUFJLE1BQU0sQ0FLakI7SUFFRDs7O09BR0c7SUFDSCxjQUFjLElBQUksTUFBTSxDQUV2QjtJQUVELGFBQWEsSUFBSSxNQUFNLENBR3RCO0lBRUQsTUFBTSxDQUFDLEdBQUcsRUFBRSxT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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,19 +1,17 @@
1
+ var _computedKey, _computedKey1;
1
2
  import { BarretenbergSync } from '@aztec/bb.js';
2
3
  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
- const ZERO_BUFFER = Buffer.alloc(32);
4
+ import { toBigIntBE, toBufferBE } from '../../bigint-buffer/index.js';
5
+ import { randomBytes } from '../../crypto/random/index.js';
6
+ import { hexSchemaFor } from '../../schemas/utils.js';
7
+ import { BufferReader } from '../../serialize/buffer_reader.js';
8
+ import { TypeRegistry } from '../../serialize/type_registry.js';
9
9
  /**
10
10
  * Base field class.
11
- * Conversions from Buffer to BigInt and vice-versa are not cheap.
12
- * We allow construction with either form and lazily convert to other as needed.
13
- * We only check we are within the field modulus when initializing with bigint.
11
+ * Uses bigint as the internal representation.
12
+ * Buffers are generated on demand from the bigint value.
14
13
  */ class BaseField {
15
14
  static SIZE_IN_BYTES = 32;
16
- asBuffer;
17
15
  asBigInt;
18
16
  /**
19
17
  * Return bigint representation.
@@ -29,81 +27,68 @@ const ZERO_BUFFER = Buffer.alloc(32);
29
27
  if (value.length > BaseField.SIZE_IN_BYTES) {
30
28
  throw new Error(`Value length ${value.length} exceeds ${BaseField.SIZE_IN_BYTES}`);
31
29
  }
32
- this.asBuffer = value.length === BaseField.SIZE_IN_BYTES ? value : Buffer.concat([
33
- Buffer.alloc(BaseField.SIZE_IN_BYTES - value.length),
34
- value
35
- ]);
30
+ this.asBigInt = toBigIntBE(value);
36
31
  } else if (typeof value === 'bigint' || typeof value === 'number' || typeof value === 'boolean') {
37
32
  this.asBigInt = BigInt(value);
38
- if (this.asBigInt >= this.modulus()) {
39
- throw new Error(`Value 0x${this.asBigInt.toString(16)} is greater or equal to field modulus.`);
40
- } else if (this.asBigInt < 0n) {
41
- throw new Error(`Value 0x${this.asBigInt.toString(16)} is negative.`);
42
- }
43
33
  } else if (value instanceof BaseField) {
44
- this.asBuffer = value.asBuffer;
45
34
  this.asBigInt = value.asBigInt;
46
35
  } else {
47
36
  throw new Error(`Type '${typeof value}' with value '${value}' passed to BaseField ctor.`);
48
37
  }
38
+ if (this.asBigInt < 0n) {
39
+ throw new Error(`Value 0x${this.asBigInt.toString(16)} is negative.`);
40
+ } else if (this.asBigInt >= this.modulus()) {
41
+ throw new Error(`Value 0x${this.asBigInt.toString(16)} is greater or equal to field modulus.`);
42
+ }
49
43
  }
50
44
  /**
51
- * We return a copy of the Buffer to ensure this remains immutable.
45
+ * Converts the bigint to a Buffer.
52
46
  */ toBuffer() {
53
- if (!this.asBuffer) {
54
- this.asBuffer = toBufferBE(this.asBigInt, 32);
55
- }
56
- return Buffer.from(this.asBuffer);
47
+ return toBufferBE(this.asBigInt, 32);
57
48
  }
58
49
  toString() {
59
- return `0x${this.toBuffer().toString('hex')}`;
50
+ return `0x${this.asBigInt.toString(16).padStart(64, '0')}`;
60
51
  }
61
52
  toBigInt() {
62
- if (this.asBigInt === undefined) {
63
- this.asBigInt = toBigIntBE(this.asBuffer);
64
- if (this.asBigInt >= this.modulus()) {
65
- throw new Error(`Value 0x${this.asBigInt.toString(16)} is greater or equal to field modulus.`);
66
- }
67
- }
68
53
  return this.asBigInt;
69
54
  }
70
55
  toBool() {
71
- return Boolean(this.toBigInt());
56
+ return this.asBigInt !== 0n;
72
57
  }
73
58
  /**
74
59
  * Converts this field to a number.
75
60
  * Throws if the underlying value is greater than MAX_SAFE_INTEGER.
76
61
  */ toNumber() {
77
- const value = this.toBigInt();
78
- if (value > Number.MAX_SAFE_INTEGER) {
79
- throw new Error(`Value ${value.toString(16)} greater than than max safe integer`);
62
+ if (this.asBigInt > Number.MAX_SAFE_INTEGER) {
63
+ throw new Error(`Value ${this.asBigInt.toString(16)} greater than than max safe integer`);
80
64
  }
81
- return Number(value);
65
+ return Number(this.asBigInt);
82
66
  }
83
67
  /**
84
68
  * Converts this field to a number.
85
69
  * May cause loss of precision if the underlying value is greater than MAX_SAFE_INTEGER.
86
70
  */ toNumberUnsafe() {
87
- const value = this.toBigInt();
88
- return Number(value);
71
+ return Number(this.asBigInt);
89
72
  }
90
73
  toShortString() {
91
74
  const str = this.toString();
92
75
  return `${str.slice(0, 10)}...${str.slice(-4)}`;
93
76
  }
94
77
  equals(rhs) {
95
- return this.toBuffer().equals(rhs.toBuffer());
78
+ return this.asBigInt === rhs.asBigInt;
96
79
  }
97
80
  lt(rhs) {
98
- return this.toBigInt() < rhs.toBigInt();
81
+ return this.asBigInt < rhs.asBigInt;
99
82
  }
100
83
  cmp(rhs) {
101
- const lhsBigInt = this.toBigInt();
102
- const rhsBigInt = rhs.toBigInt();
103
- return lhsBigInt === rhsBigInt ? 0 : lhsBigInt < rhsBigInt ? -1 : 1;
84
+ const rhsBigInt = rhs.asBigInt;
85
+ return this.asBigInt === rhsBigInt ? 0 : this.asBigInt < rhsBigInt ? -1 : 1;
86
+ }
87
+ static cmp(lhs, rhs) {
88
+ return lhs.cmp(rhs);
104
89
  }
105
90
  isZero() {
106
- return this.toBuffer().equals(ZERO_BUFFER);
91
+ return this.asBigInt === 0n;
107
92
  }
108
93
  isEmpty() {
109
94
  return this.isZero();
@@ -143,8 +128,9 @@ const ZERO_BUFFER = Buffer.alloc(32);
143
128
  throw new Error(`Invalid hex-encoded string: "${buf}"`);
144
129
  }
145
130
  const buffer = Buffer.from(checked.length % 2 === 1 ? '0' + checked : checked, 'hex');
146
- return new f(buffer);
131
+ return new f(toBigIntBE(buffer));
147
132
  }
133
+ _computedKey = inspect.custom;
148
134
  /**
149
135
  * Fr field class.
150
136
  * @dev This class is used to represent elements of BN254 scalar field or elements in the base field of Grumpkin.
@@ -157,7 +143,7 @@ const ZERO_BUFFER = Buffer.alloc(32);
157
143
  constructor(value){
158
144
  super(value);
159
145
  }
160
- [inspect.custom]() {
146
+ [_computedKey]() {
161
147
  return `Fr<${this.toString()}>`;
162
148
  }
163
149
  modulus() {
@@ -249,12 +235,27 @@ const ZERO_BUFFER = Buffer.alloc(32);
249
235
  toJSON() {
250
236
  return this.toString();
251
237
  }
238
+ /**
239
+ * Creates an Fr instance from a plain object without Zod validation.
240
+ * This method is optimized for performance and skips validation, making it suitable
241
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
242
+ * Handles buffers, strings, numbers, bigints, or existing instances.
243
+ * @param obj - Plain object, buffer, string, number, bigint, boolean, or Fr instance
244
+ * @returns An Fr instance
245
+ */ static fromPlainObject(obj) {
246
+ if (obj instanceof Fr) {
247
+ return obj;
248
+ }
249
+ return new Fr(obj);
250
+ }
252
251
  static get schema() {
252
+ // Serialization from hex string.
253
253
  return hexSchemaFor(Fr);
254
254
  }
255
255
  }
256
256
  // For deserializing JSON.
257
257
  TypeRegistry.register('Fr', Fr);
258
+ _computedKey1 = inspect.custom;
258
259
  /**
259
260
  * Fq field class.
260
261
  * @dev This class is used to represent elements of BN254 base field or elements in the scalar field of Grumpkin.
@@ -264,7 +265,7 @@ TypeRegistry.register('Fr', Fr);
264
265
  static MODULUS = 0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47n;
265
266
  static HIGH_SHIFT = BigInt(BaseField.SIZE_IN_BYTES / 2 * 8);
266
267
  static LOW_MASK = (1n << Fq.HIGH_SHIFT) - 1n;
267
- [inspect.custom]() {
268
+ [_computedKey1]() {
268
269
  return `Fq<${this.toString()}>`;
269
270
  }
270
271
  get lo() {
@@ -383,7 +384,6 @@ TypeRegistry.register('Fq', Fq);
383
384
  ];
384
385
  }
385
386
  }
386
- export const GrumpkinScalar = Fq;
387
387
  /** 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) {
388
388
  return (input)=>fromBufferReduce(fn(input), field);
389
389
  }
@@ -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"}
@@ -0,0 +1,143 @@
1
+ import { BN254_G1_GENERATOR, BN254_G2_GENERATOR, BarretenbergSync } from '@aztec/bb.js';
2
+ import { Fq } from './field.js';
3
+ /**
4
+ * BN254 G1 point using foundation field classes.
5
+ * Represents a point on the BN254 elliptic curve in affine coordinates.
6
+ */ export class Bn254G1Point {
7
+ x;
8
+ y;
9
+ constructor(x, y){
10
+ this.x = x;
11
+ this.y = y;
12
+ }
13
+ toBbApiPoint() {
14
+ return {
15
+ x: this.x.toBuffer(),
16
+ y: this.y.toBuffer()
17
+ };
18
+ }
19
+ static fromBbApiPoint(point) {
20
+ return new Bn254G1Point(Fq.fromBuffer(Buffer.from(point.x)), Fq.fromBuffer(Buffer.from(point.y)));
21
+ }
22
+ async isOnCurve() {
23
+ await BarretenbergSync.initSingleton();
24
+ const api = BarretenbergSync.getSingleton();
25
+ const apiPoint = this.toBbApiPoint();
26
+ const response = api.bn254G1IsOnCurve({
27
+ point: apiPoint
28
+ });
29
+ return response.isOnCurve;
30
+ }
31
+ /**
32
+ * Get the generator point for BN254 G1, or perform scalar multiplication.
33
+ * When called without arguments, returns the base generator point.
34
+ * When called with a scalar, returns scalar * generator (useful for public key derivation).
35
+ */ static async generator(scalar) {
36
+ if (!scalar) {
37
+ return new Bn254G1Point(Fq.fromBuffer(Buffer.from(BN254_G1_GENERATOR.x)), Fq.fromBuffer(Buffer.from(BN254_G1_GENERATOR.y)));
38
+ }
39
+ await BarretenbergSync.initSingleton();
40
+ const api = BarretenbergSync.getSingleton();
41
+ const response = api.bn254G1Mul({
42
+ point: BN254_G1_GENERATOR,
43
+ scalar: scalar.toBuffer()
44
+ });
45
+ return Bn254G1Point.fromBbApiPoint(response.point);
46
+ }
47
+ /**
48
+ * Decompress a BN254 G1 point from compressed form (32 bytes).
49
+ * The compressed format encodes the x-coordinate and the sign bit of the y-coordinate
50
+ * in the most significant bit.
51
+ */ static async fromCompressed(compressed) {
52
+ if (compressed.length !== 32) {
53
+ throw new Error('Invalid compressed point length');
54
+ }
55
+ await BarretenbergSync.initSingleton();
56
+ const api = BarretenbergSync.getSingleton();
57
+ const response = api.bn254G1FromCompressed({
58
+ compressed: new Uint8Array(compressed)
59
+ });
60
+ return Bn254G1Point.fromBbApiPoint(response.point);
61
+ }
62
+ /**
63
+ * Compress this BN254 G1 point to 32 bytes.
64
+ * The compressed format encodes the x-coordinate and the sign bit of the y-coordinate
65
+ * in the most significant bit (bit 255).
66
+ */ compress() {
67
+ const xBytes = this.x.toBuffer();
68
+ // Get the least significant bit of y to determine the sign
69
+ const yLsb = this.y.toBigInt() & 1n;
70
+ // If y is odd, set the most significant bit (bit 255) of the output
71
+ if (yLsb === 1n) {
72
+ xBytes[0] |= 0x80;
73
+ }
74
+ return xBytes;
75
+ }
76
+ equals(other) {
77
+ return this.x.equals(other.x) && this.y.equals(other.y);
78
+ }
79
+ toString() {
80
+ return `Bn254G1Point(x: ${this.x.toString()}, y: ${this.y.toString()})`;
81
+ }
82
+ }
83
+ /**
84
+ * BN254 G2 point using foundation field classes.
85
+ * Represents a point on the BN254 G2 curve (twist curve) in affine coordinates.
86
+ * G2 points use extension field coordinates (Fq2).
87
+ */ export class Bn254G2Point {
88
+ x;
89
+ y;
90
+ constructor(x, y){
91
+ this.x = x;
92
+ this.y = y;
93
+ }
94
+ toBbApiPoint() {
95
+ return {
96
+ x: [
97
+ this.x[0].toBuffer(),
98
+ this.x[1].toBuffer()
99
+ ],
100
+ y: [
101
+ this.y[0].toBuffer(),
102
+ this.y[1].toBuffer()
103
+ ]
104
+ };
105
+ }
106
+ static fromBbApiPoint(point) {
107
+ return new Bn254G2Point([
108
+ Fq.fromBuffer(Buffer.from(point.x[0])),
109
+ Fq.fromBuffer(Buffer.from(point.x[1]))
110
+ ], [
111
+ Fq.fromBuffer(Buffer.from(point.y[0])),
112
+ Fq.fromBuffer(Buffer.from(point.y[1]))
113
+ ]);
114
+ }
115
+ /**
116
+ * Get the generator point for BN254 G2, or perform scalar multiplication.
117
+ * When called without arguments, returns the base generator point.
118
+ * When called with a scalar, returns scalar * generator.
119
+ */ static async generator(scalar) {
120
+ if (!scalar) {
121
+ return new Bn254G2Point([
122
+ Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.x[0])),
123
+ Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.x[1]))
124
+ ], [
125
+ Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.y[0])),
126
+ Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.y[1]))
127
+ ]);
128
+ }
129
+ await BarretenbergSync.initSingleton();
130
+ const api = BarretenbergSync.getSingleton();
131
+ const response = api.bn254G2Mul({
132
+ point: BN254_G2_GENERATOR,
133
+ scalar: scalar.toBuffer()
134
+ });
135
+ return Bn254G2Point.fromBbApiPoint(response.point);
136
+ }
137
+ equals(other) {
138
+ return this.x[0].equals(other.x[0]) && this.x[1].equals(other.x[1]) && this.y[0].equals(other.y[0]) && this.y[1].equals(other.y[1]);
139
+ }
140
+ toString() {
141
+ return `Bn254G2Point(x: (${this.x[0].toString()}, ${this.x[1].toString()}), y: (${this.y[0].toString()}, ${this.y[1].toString()}))`;
142
+ }
143
+ }
@@ -0,0 +1,10 @@
1
+ import { Fq } from '../bn254/field.js';
2
+ export * from './point.js';
3
+ /**
4
+ * GrumpkinScalar is an Fq.
5
+ * @remarks Called GrumpkinScalar because it is used to represent elements in Grumpkin's scalar field as defined in
6
+ * the Aztec Protocol Specs.
7
+ */
8
+ export type GrumpkinScalar = Fq;
9
+ export declare const GrumpkinScalar: typeof Fq;
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvZ3J1bXBraW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXZDLGNBQWMsWUFBWSxDQUFDO0FBRTNCOzs7O0dBSUc7QUFDSCxNQUFNLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQztBQUNoQyxlQUFPLE1BQU0sY0FBYyxXQUFLLENBQUMifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/curves/grumpkin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAEvC,cAAc,YAAY,CAAC;AAE3B;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,EAAE,CAAC;AAChC,eAAO,MAAM,cAAc,WAAK,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Fq } from '../bn254/field.js';
2
+ export * from './point.js';
3
+ export const GrumpkinScalar = Fq;
@@ -1,5 +1,5 @@
1
- import { BufferReader, FieldReader } from '../serialize/index.js';
2
- import { Fr } from './fields.js';
1
+ import { BufferReader, FieldReader } from '../../serialize/index.js';
2
+ import { Fr } from '../bn254/field.js';
3
3
  /**
4
4
  * Represents a Point on an elliptic curve with x and y coordinates.
5
5
  * The Point class provides methods for creating instances from different input types,
@@ -39,6 +39,15 @@ export declare class Point {
39
39
  isInfinite: boolean);
40
40
  toJSON(): `0x${string}`;
41
41
  static get schema(): import("zod").ZodType<Point, any, string>;
42
+ /**
43
+ * Creates a Point from a plain object without Zod validation.
44
+ * This method is optimized for performance and skips validation, making it suitable
45
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
46
+ * Handles buffers, existing instances, or objects with x, y, and isInfinite fields.
47
+ * @param obj - Plain object, buffer, or Point instance
48
+ * @returns A Point instance
49
+ */
50
+ static fromPlainObject(obj: any): Point;
42
51
  /**
43
52
  * Generate a random Point instance.
44
53
  *
@@ -170,4 +179,4 @@ export declare class Point {
170
179
  export declare class NotOnCurveError extends Error {
171
180
  constructor(x: Fr);
172
181
  }
173
- //# sourceMappingURL=point.d.ts.map
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvZ3J1bXBraW4vcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7QUFFeEYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXZDOzs7OztHQUtHO0FBQ0gscUJBQWEsS0FBSztJQVNkOztPQUVHO2FBQ2EsQ0FBQyxFQUFFLEVBQUU7SUFDckI7O09BRUc7YUFDYSxDQUFDLEVBQUUsRUFBRTtJQUNyQjs7T0FFRzthQUNhLFVBQVUsRUFBRSxPQUFPO0lBbkJyQyxNQUFNLENBQUMsSUFBSSxRQUFzQztJQUNqRCxNQUFNLENBQUMsYUFBYSxTQUF3QjtJQUM1QyxNQUFNLENBQUMsd0JBQXdCLFNBQW9CO0lBRW5ELHlEQUF5RDtJQUN6RCxTQUFnQixJQUFJLFdBQVc7SUFFL0I7SUFDRTs7T0FFRztJQUNhLENBQUMsRUFBRSxFQUFFO0lBQ3JCOztPQUVHO0lBQ2EsQ0FBQyxFQUFFLEVBQUU7SUFDckI7O09BRUc7SUFDYSxVQUFVLEVBQUUsT0FBTyxFQUdwQztJQUVELE1BQU0sa0JBRUw7SUFFRCxNQUFNLEtBQUssTUFBTSw4Q0FHaEI7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FRdEM7SUFFRDs7OztPQUlHO0lBQ0gsT0FBYSxNQUFNLG1CQVlsQjtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLFNBRzlDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FRekU7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxTQUU1QjtJQUVEOzs7T0FHRztJQUNILFFBQVEsU0FFUDtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLFdBQVcsU0FHM0M7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILE9BQWEsWUFBWSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sa0JBYzdDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FPdkM7SUFFRDs7OztPQUlHO0lBQ0gsVUFBVSxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUUxQjtJQUVEOzs7T0FHRztJQUNILFNBQVM7Ozs7TUFNUjtJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILFFBQVEsNEJBU1A7SUFFRDs7O09BR0c7SUFDSCxrQkFBa0IsNEJBV2pCO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsUUFBUSxrQkFFUDtJQUVEOzs7Ozs7O09BT0c7SUFDSCxhQUFhLFdBR1o7SUFFRCxZQUFZOzs7O01BSVg7SUFHRCxtQkFBbUI7Ozs7OztNQUVsQjtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxXQUVoQjtJQUVELE1BQU0sWUFFTDtJQUVELElBQUksZ0JBRUg7SUFFRDs7O09BR0c7SUFDSCxJQUFXLEdBQUcsWUFFYjtJQUVELFlBQVksWUFXWDtDQUNGO0FBRUQscUJBQWEsZUFBZ0IsU0FBUSxLQUFLO0lBQ3hDLFlBQVksQ0FBQyxFQUFFLEVBQUUsRUFHaEI7Q0FDRiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/curves/grumpkin/point.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAqB,MAAM,0BAA0B,CAAC;AAExF,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAEvC;;;;;GAKG;AACH,qBAAa,KAAK;IASd;;OAEG;aACa,CAAC,EAAE,EAAE;IACrB;;OAEG;aACa,CAAC,EAAE,EAAE;IACrB;;OAEG;aACa,UAAU,EAAE,OAAO;IAnBrC,MAAM,CAAC,IAAI,QAAsC;IACjD,MAAM,CAAC,aAAa,SAAwB;IAC5C,MAAM,CAAC,wBAAwB,SAAoB;IAEnD,yDAAyD;IACzD,SAAgB,IAAI,WAAW;IAE/B;IACE;;OAEG;IACa,CAAC,EAAE,EAAE;IACrB;;OAEG;IACa,CAAC,EAAE,EAAE;IACrB;;OAEG;IACa,UAAU,EAAE,OAAO,EAGpC;IAED,MAAM,kBAEL;IAED,MAAM,KAAK,MAAM,8CAGhB;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK,CAQtC;IAED;;;;OAIG;IACH,OAAa,MAAM,mBAYlB;IAED;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,SAG9C;IAED;;;;;;OAMG;IACH,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAQzE;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,SAE5B;IAED;;;OAGG;IACH,QAAQ,SAEP;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,SAG3C;IAED;;;;;;;;OAQG;IACH,OAAa,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,kBAc7C;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAOvC;IAED;;;;OAIG;IACH,UAAU,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAE1B;IAED;;;OAGG;IACH,SAAS;;;;MAMR;IAED;;;;;;;;;OASG;IACH,QAAQ,4BASP;IAED;;;OAGG;IACH,kBAAkB,4BAWjB;IAED;;;;;;OAMG;IACH,QAAQ,kBAEP;IAED;;;;;;;OAOG;IACH,aAAa,WAGZ;IAED,YAAY;;;;MAIX;IAGD,mBAAmB;;;;;;MAElB;IAED;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,EAAE,KAAK,WAEhB;IAED,MAAM,YAEL;IAED,IAAI,gBAEH;IAED;;;OAGG;IACH,IAAW,GAAG,YAEb;IAED,YAAY,YAWX;CACF;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACxC,YAAY,CAAC,EAAE,EAAE,EAGhB;CACF"}
@@ -1,10 +1,10 @@
1
- import { toBigIntBE } from '../bigint-buffer/index.js';
2
- import { poseidon2Hash } from '../crypto/poseidon/index.js';
3
- import { randomBoolean } from '../crypto/random/index.js';
4
- import { hexSchemaFor } from '../schemas/utils.js';
5
- import { BufferReader, FieldReader, serializeToBuffer } from '../serialize/index.js';
6
- import { bufferToHex, hexToBuffer } from '../string/index.js';
7
- import { Fr } from './fields.js';
1
+ import { toBigIntBE } from '../../bigint-buffer/index.js';
2
+ import { poseidon2Hash } from '../../crypto/poseidon/index.js';
3
+ import { randomBoolean } from '../../crypto/random/index.js';
4
+ import { hexSchemaFor } from '../../schemas/utils.js';
5
+ import { BufferReader, FieldReader, serializeToBuffer } from '../../serialize/index.js';
6
+ import { bufferToHex, hexToBuffer } from '../../string/index.js';
7
+ import { Fr } from '../bn254/field.js';
8
8
  /**
9
9
  * Represents a Point on an elliptic curve with x and y coordinates.
10
10
  * The Point class provides methods for creating instances from different input types,
@@ -35,9 +35,26 @@ import { Fr } from './fields.js';
35
35
  return this.toString();
36
36
  }
37
37
  static get schema() {
38
+ // Serialization from hex string.
38
39
  return hexSchemaFor(Point);
39
40
  }
40
41
  /**
42
+ * Creates a Point from a plain object without Zod validation.
43
+ * This method is optimized for performance and skips validation, making it suitable
44
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
45
+ * Handles buffers, existing instances, or objects with x, y, and isInfinite fields.
46
+ * @param obj - Plain object, buffer, or Point instance
47
+ * @returns A Point instance
48
+ */ static fromPlainObject(obj) {
49
+ if (obj instanceof Point) {
50
+ return obj;
51
+ }
52
+ if (obj instanceof Buffer || Buffer.isBuffer(obj)) {
53
+ return Point.fromBuffer(obj);
54
+ }
55
+ return new Point(Fr.fromPlainObject(obj.x), Fr.fromPlainObject(obj.y), obj.isInfinite ?? false);
56
+ }
57
+ /**
41
58
  * Generate a random Point instance.
42
59
  *
43
60
  * @returns A randomly generated Point instance.
@@ -1,2 +1,2 @@
1
1
  export * from './memoize.js';
2
- //# sourceMappingURL=index.d.ts.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNvcmF0b3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDIn0=
@@ -1,2 +1,2 @@
1
1
  export declare function memoize<This extends object, Result>(fn: () => Result, context: ClassMethodDecoratorContext): (this: This) => Result;
2
- //# sourceMappingURL=memoize.d.ts.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb2l6ZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlY29yYXRvcnMvbWVtb2l6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3QkFBZ0IsT0FBTyxDQUFDLElBQUksU0FBUyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sRUFBRSxPQUFPLEVBQUUsMkJBQTJCLDBCQVUxRyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"memoize.d.ts","sourceRoot":"","sources":["../../src/decorators/memoize.ts"],"names":[],"mappings":"AAAA,wBAAgB,OAAO,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,MAAM,EAAE,OAAO,EAAE,2BAA2B,IACxF,MAAM,IAAI,YAS5B"}
1
+ {"version":3,"file":"memoize.d.ts","sourceRoot":"","sources":["../../src/decorators/memoize.ts"],"names":[],"mappings":"AAAA,wBAAgB,OAAO,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,MAAM,EAAE,OAAO,EAAE,2BAA2B,0BAU1G"}
@@ -18,4 +18,4 @@ export declare class TimeoutError extends Error {
18
18
  export declare class AbortError extends Error {
19
19
  readonly name = "AbortError";
20
20
  }
21
- //# sourceMappingURL=index.d.ts.map
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcnJvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gscUJBQWEsY0FBZSxTQUFRLEtBQUs7SUFDdkMsU0FBeUIsSUFBSSxvQkFBb0I7Q0FDbEQ7QUFFRDs7R0FFRztBQUNILHFCQUFhLFlBQWEsU0FBUSxLQUFLO0lBQ3JDLFNBQXlCLElBQUksa0JBQWtCO0NBQ2hEO0FBRUQ7O0dBRUc7QUFDSCxxQkFBYSxVQUFXLFNBQVEsS0FBSztJQUNuQyxTQUF5QixJQUFJLGdCQUFnQjtDQUM5QyJ9