@aztec/foundation 3.0.0-devnet.5 → 3.0.0-devnet.6-patch.1

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 (411) 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 +1 -1
  39. package/dest/committable/committable.d.ts +1 -1
  40. package/dest/committable/committable.d.ts.map +1 -1
  41. package/dest/committable/index.d.ts +1 -1
  42. package/dest/config/env_var.d.ts +2 -2
  43. package/dest/config/env_var.d.ts.map +1 -1
  44. package/dest/config/index.d.ts +10 -2
  45. package/dest/config/index.d.ts.map +1 -1
  46. package/dest/config/index.js +16 -2
  47. package/dest/config/network_config.d.ts +1 -1
  48. package/dest/config/network_name.d.ts +1 -1
  49. package/dest/config/secret_value.d.ts +1 -1
  50. package/dest/config/secret_value.d.ts.map +1 -1
  51. package/dest/crypto/aes128/index.d.ts +1 -1
  52. package/dest/crypto/aes128/index.d.ts.map +1 -1
  53. package/dest/crypto/aes128/index.js +2 -6
  54. package/dest/crypto/bls/bn254_keystore.d.ts +296 -0
  55. package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -0
  56. package/dest/crypto/bls/bn254_keystore.js +218 -0
  57. package/dest/crypto/bls/index.d.ts +13 -0
  58. package/dest/crypto/bls/index.d.ts.map +1 -0
  59. package/dest/crypto/bls/index.js +87 -0
  60. package/dest/crypto/bn254/index.d.ts +39 -0
  61. package/dest/crypto/bn254/index.d.ts.map +1 -0
  62. package/dest/crypto/bn254/index.js +56 -0
  63. package/dest/crypto/ecdsa/index.d.ts +1 -1
  64. package/dest/crypto/ecdsa/index.d.ts.map +1 -1
  65. package/dest/crypto/ecdsa/index.js +4 -12
  66. package/dest/crypto/ecdsa/signature.d.ts +2 -11
  67. package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
  68. package/dest/crypto/ecdsa/signature.js +2 -2
  69. package/dest/crypto/grumpkin/index.d.ts +10 -13
  70. package/dest/crypto/grumpkin/index.d.ts.map +1 -1
  71. package/dest/crypto/grumpkin/index.js +12 -27
  72. package/dest/crypto/keccak/index.d.ts +1 -1
  73. package/dest/crypto/keys/index.d.ts +2 -2
  74. package/dest/crypto/keys/index.d.ts.map +1 -1
  75. package/dest/crypto/keys/index.js +2 -4
  76. package/dest/crypto/pedersen/index.d.ts +1 -1
  77. package/dest/crypto/pedersen/pedersen.noble.d.ts +1 -1
  78. package/dest/crypto/pedersen/pedersen.wasm.d.ts +2 -2
  79. package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
  80. package/dest/crypto/pedersen/pedersen.wasm.js +4 -10
  81. package/dest/crypto/poseidon/index.d.ts +2 -2
  82. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  83. package/dest/crypto/poseidon/index.js +6 -16
  84. package/dest/crypto/random/index.d.ts +1 -1
  85. package/dest/crypto/random/index.d.ts.map +1 -1
  86. package/dest/crypto/random/randomness_singleton.d.ts +1 -1
  87. package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
  88. package/dest/crypto/schnorr/index.d.ts +3 -2
  89. package/dest/crypto/schnorr/index.d.ts.map +1 -1
  90. package/dest/crypto/schnorr/index.js +4 -10
  91. package/dest/crypto/schnorr/signature.d.ts +2 -2
  92. package/dest/crypto/schnorr/signature.d.ts.map +1 -1
  93. package/dest/crypto/schnorr/signature.js +2 -2
  94. package/dest/crypto/secp256k1/index.d.ts +1 -1
  95. package/dest/crypto/secp256k1/index.d.ts.map +1 -1
  96. package/dest/crypto/secp256k1/index.js +3 -9
  97. package/dest/crypto/secp256k1-signer/index.d.ts +1 -1
  98. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts +1 -1
  99. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts.map +1 -1
  100. package/dest/crypto/secp256k1-signer/utils.d.ts +43 -5
  101. package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
  102. package/dest/crypto/secp256k1-signer/utils.js +76 -8
  103. package/dest/crypto/serialize.d.ts +1 -1
  104. package/dest/crypto/sha256/index.d.ts +2 -2
  105. package/dest/crypto/sha256/index.d.ts.map +1 -1
  106. package/dest/crypto/sha256/index.js +1 -1
  107. package/dest/crypto/sha512/index.d.ts +3 -3
  108. package/dest/crypto/sha512/index.d.ts.map +1 -1
  109. package/dest/crypto/sha512/index.js +1 -1
  110. package/dest/crypto/signature/index.d.ts +2 -2
  111. package/dest/crypto/signature/index.d.ts.map +1 -1
  112. package/dest/crypto/sync/index.d.ts +1 -1
  113. package/dest/crypto/sync/index.js +1 -3
  114. package/dest/crypto/sync/pedersen/index.d.ts +2 -2
  115. package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
  116. package/dest/crypto/sync/pedersen/index.js +1 -1
  117. package/dest/crypto/sync/poseidon/index.d.ts +2 -2
  118. package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
  119. package/dest/crypto/sync/poseidon/index.js +1 -1
  120. package/dest/{fields/bls12_fields.d.ts → curves/bls12/field.d.ts} +3 -3
  121. package/dest/curves/bls12/field.d.ts.map +1 -0
  122. package/dest/{fields/bls12_fields.js → curves/bls12/field.js} +6 -6
  123. package/dest/curves/bls12/index.d.ts +3 -0
  124. package/dest/curves/bls12/index.d.ts.map +1 -0
  125. package/dest/curves/bls12/index.js +2 -0
  126. package/dest/{fields/bls12_point.d.ts → curves/bls12/point.d.ts} +4 -13
  127. package/dest/curves/bls12/point.d.ts.map +1 -0
  128. package/dest/{fields/bls12_point.js → curves/bls12/point.js} +7 -7
  129. package/dest/{fields/fields.d.ts → curves/bn254/field.d.ts} +16 -9
  130. package/dest/curves/bn254/field.d.ts.map +1 -0
  131. package/dest/{fields/fields.js → curves/bn254/field.js} +35 -9
  132. package/dest/curves/bn254/index.d.ts +3 -0
  133. package/dest/curves/bn254/index.d.ts.map +1 -0
  134. package/dest/curves/bn254/index.js +2 -0
  135. package/dest/curves/bn254/point.d.ts +54 -0
  136. package/dest/curves/bn254/point.d.ts.map +1 -0
  137. package/dest/curves/bn254/point.js +143 -0
  138. package/dest/curves/grumpkin/index.d.ts +10 -0
  139. package/dest/curves/grumpkin/index.d.ts.map +1 -0
  140. package/dest/curves/grumpkin/index.js +3 -0
  141. package/dest/{fields → curves/grumpkin}/point.d.ts +13 -13
  142. package/dest/curves/grumpkin/point.d.ts.map +1 -0
  143. package/dest/{fields → curves/grumpkin}/point.js +24 -7
  144. package/dest/decorators/index.d.ts +1 -1
  145. package/dest/decorators/memoize.d.ts +1 -1
  146. package/dest/decorators/memoize.d.ts.map +1 -1
  147. package/dest/error/index.d.ts +4 -4
  148. package/dest/error/index.d.ts.map +1 -1
  149. package/dest/eth-address/index.d.ts +12 -2
  150. package/dest/eth-address/index.d.ts.map +1 -1
  151. package/dest/eth-address/index.js +23 -1
  152. package/dest/eth-signature/eth_signature.d.ts +1 -4
  153. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  154. package/dest/eth-signature/index.d.ts +1 -1
  155. package/dest/fs/index.d.ts +1 -1
  156. package/dest/fs/run_in_dir.d.ts +1 -1
  157. package/dest/fs/try_rm_dir.d.ts +1 -1
  158. package/dest/iterable/all.d.ts +1 -1
  159. package/dest/iterable/filter.d.ts +1 -1
  160. package/dest/iterable/index.d.ts +1 -1
  161. package/dest/iterable/isAsyncIt.d.ts +1 -1
  162. package/dest/iterable/map.d.ts +1 -1
  163. package/dest/iterable/peek.d.ts +1 -1
  164. package/dest/iterable/sort.d.ts +1 -1
  165. package/dest/iterable/take.d.ts +1 -1
  166. package/dest/iterable/toArray.d.ts +1 -1
  167. package/dest/json-rpc/client/fetch.d.ts +1 -1
  168. package/dest/json-rpc/client/index.d.ts +1 -1
  169. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +1 -1
  170. package/dest/json-rpc/client/undici.d.ts +1 -1
  171. package/dest/json-rpc/convert.d.ts +1 -1
  172. package/dest/json-rpc/errors.d.ts +1 -1
  173. package/dest/json-rpc/errors.d.ts.map +1 -1
  174. package/dest/json-rpc/fixtures/class_a.d.ts +3 -3
  175. package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
  176. package/dest/json-rpc/fixtures/class_b.d.ts +3 -3
  177. package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -1
  178. package/dest/json-rpc/fixtures/test_state.d.ts +1 -1
  179. package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
  180. package/dest/json-rpc/index.d.ts +1 -1
  181. package/dest/json-rpc/js_utils.d.ts +1 -1
  182. package/dest/json-rpc/js_utils.d.ts.map +1 -1
  183. package/dest/json-rpc/server/index.d.ts +1 -1
  184. package/dest/json-rpc/server/safe_json_rpc_server.d.ts +1 -1
  185. package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
  186. package/dest/json-rpc/server/telemetry.d.ts +1 -1
  187. package/dest/json-rpc/test/index.d.ts +1 -1
  188. package/dest/json-rpc/test/integration.d.ts +1 -1
  189. package/dest/log/console.d.ts +1 -1
  190. package/dest/log/gcloud-logger-config.d.ts +1 -1
  191. package/dest/log/gcloud-logger-config.d.ts.map +1 -1
  192. package/dest/log/index.d.ts +1 -1
  193. package/dest/log/libp2p_logger.d.ts +1 -1
  194. package/dest/log/log-filters.d.ts +1 -1
  195. package/dest/log/log-levels.d.ts +1 -1
  196. package/dest/log/log_fn.d.ts +1 -1
  197. package/dest/log/noir_debug_log_util.d.ts +1 -1
  198. package/dest/log/pino-logger.d.ts +2 -2
  199. package/dest/message/index.d.ts +1 -1
  200. package/dest/message/index.d.ts.map +1 -1
  201. package/dest/mutex/index.d.ts +1 -1
  202. package/dest/mutex/index.d.ts.map +1 -1
  203. package/dest/mutex/mutex_database.d.ts +1 -1
  204. package/dest/noir/index.d.ts +1 -1
  205. package/dest/noir/noir_package_config.d.ts +9 -9
  206. package/dest/number/index.d.ts +1 -1
  207. package/dest/profiler/index.d.ts +1 -1
  208. package/dest/profiler/profiler.d.ts +1 -1
  209. package/dest/promise/index.d.ts +1 -1
  210. package/dest/promise/running-promise.d.ts +1 -1
  211. package/dest/promise/running-promise.d.ts.map +1 -1
  212. package/dest/promise/utils.d.ts +1 -1
  213. package/dest/queue/base_memory_queue.d.ts +1 -1
  214. package/dest/queue/base_memory_queue.d.ts.map +1 -1
  215. package/dest/queue/batch_queue.d.ts +1 -1
  216. package/dest/queue/batch_queue.d.ts.map +1 -1
  217. package/dest/queue/bounded_serial_queue.d.ts +1 -1
  218. package/dest/queue/bounded_serial_queue.d.ts.map +1 -1
  219. package/dest/queue/fifo_memory_queue.d.ts +1 -1
  220. package/dest/queue/fifo_memory_queue.d.ts.map +1 -1
  221. package/dest/queue/index.d.ts +1 -1
  222. package/dest/queue/priority_memory_queue.d.ts +1 -1
  223. package/dest/queue/priority_memory_queue.d.ts.map +1 -1
  224. package/dest/queue/priority_queue.d.ts +1 -1
  225. package/dest/queue/priority_queue.d.ts.map +1 -1
  226. package/dest/queue/semaphore.d.ts +1 -1
  227. package/dest/queue/semaphore.d.ts.map +1 -1
  228. package/dest/queue/serial_queue.d.ts +1 -1
  229. package/dest/queue/serial_queue.d.ts.map +1 -1
  230. package/dest/retry/index.d.ts +1 -1
  231. package/dest/running-promise/index.d.ts +1 -1
  232. package/dest/schemas/api.d.ts +1 -1
  233. package/dest/schemas/index.d.ts +1 -1
  234. package/dest/schemas/parse.d.ts +1 -1
  235. package/dest/schemas/schemas.d.ts +13 -17
  236. package/dest/schemas/schemas.d.ts.map +1 -1
  237. package/dest/schemas/schemas.js +9 -10
  238. package/dest/schemas/types.d.ts +1 -1
  239. package/dest/schemas/utils.d.ts +4 -4
  240. package/dest/schemas/utils.d.ts.map +1 -1
  241. package/dest/schemas/utils.js +15 -5
  242. package/dest/serialize/buffer_reader.d.ts +1 -1
  243. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  244. package/dest/serialize/field_reader.d.ts +2 -2
  245. package/dest/serialize/field_reader.d.ts.map +1 -1
  246. package/dest/serialize/field_reader.js +1 -1
  247. package/dest/serialize/free_funcs.d.ts +2 -2
  248. package/dest/serialize/free_funcs.d.ts.map +1 -1
  249. package/dest/serialize/free_funcs.js +1 -1
  250. package/dest/serialize/index.d.ts +1 -1
  251. package/dest/serialize/serialize.d.ts +2 -2
  252. package/dest/serialize/serialize.d.ts.map +1 -1
  253. package/dest/serialize/serialize.js +1 -1
  254. package/dest/serialize/type_registry.d.ts +1 -1
  255. package/dest/serialize/type_registry.d.ts.map +1 -1
  256. package/dest/serialize/types.d.ts +1 -1
  257. package/dest/sleep/index.d.ts +1 -1
  258. package/dest/sleep/index.d.ts.map +1 -1
  259. package/dest/string/index.d.ts +5 -1
  260. package/dest/string/index.d.ts.map +1 -1
  261. package/dest/string/index.js +1 -1
  262. package/dest/testing/files/index.d.ts +2 -1
  263. package/dest/testing/files/index.d.ts.map +1 -1
  264. package/dest/testing/files/index.js +1 -1
  265. package/dest/testing/formatting.d.ts +1 -1
  266. package/dest/testing/index.d.ts +1 -1
  267. package/dest/testing/port_allocator.d.ts +1 -1
  268. package/dest/testing/snapshot_serializer.d.ts +1 -1
  269. package/dest/testing/test_data.d.ts +1 -1
  270. package/dest/timer/date.d.ts +1 -1
  271. package/dest/timer/date.d.ts.map +1 -1
  272. package/dest/timer/elapsed.d.ts +1 -1
  273. package/dest/timer/index.d.ts +1 -1
  274. package/dest/timer/timeout.d.ts +1 -1
  275. package/dest/timer/timeout.d.ts.map +1 -1
  276. package/dest/timer/timer.d.ts +1 -1
  277. package/dest/timer/timer.d.ts.map +1 -1
  278. package/dest/transport/dispatch/create_dispatch_fn.d.ts +1 -1
  279. package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +1 -1
  280. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +1 -1
  281. package/dest/transport/dispatch/messages.d.ts +1 -1
  282. package/dest/transport/index.d.ts +1 -1
  283. package/dest/transport/interface/connector.d.ts +1 -1
  284. package/dest/transport/interface/listener.d.ts +1 -1
  285. package/dest/transport/interface/socket.d.ts +1 -1
  286. package/dest/transport/interface/transferable.d.ts +1 -1
  287. package/dest/transport/node/index.d.ts +1 -1
  288. package/dest/transport/node/node_connector.d.ts +1 -1
  289. package/dest/transport/node/node_connector.d.ts.map +1 -1
  290. package/dest/transport/node/node_connector_socket.d.ts +1 -1
  291. package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
  292. package/dest/transport/node/node_listener.d.ts +1 -1
  293. package/dest/transport/node/node_listener.d.ts.map +1 -1
  294. package/dest/transport/node/node_listener_socket.d.ts +1 -1
  295. package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
  296. package/dest/transport/transport_client.d.ts +1 -1
  297. package/dest/transport/transport_client.d.ts.map +1 -1
  298. package/dest/transport/transport_server.d.ts +1 -10
  299. package/dest/transport/transport_server.d.ts.map +1 -1
  300. package/dest/trees/balanced_merkle_tree.d.ts +22 -0
  301. package/dest/trees/balanced_merkle_tree.d.ts.map +1 -0
  302. package/dest/trees/balanced_merkle_tree.js +66 -0
  303. package/dest/trees/hasher.d.ts +1 -1
  304. package/dest/trees/index.d.ts +2 -1
  305. package/dest/trees/index.d.ts.map +1 -1
  306. package/dest/trees/index.js +1 -0
  307. package/dest/trees/indexed_merkle_tree.d.ts +1 -1
  308. package/dest/trees/indexed_merkle_tree.d.ts.map +1 -1
  309. package/dest/trees/indexed_merkle_tree.js +1 -1
  310. package/dest/trees/indexed_merkle_tree_calculator.d.ts +1 -1
  311. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
  312. package/dest/trees/indexed_tree_leaf.d.ts +1 -1
  313. package/dest/trees/membership_witness.d.ts +3 -24
  314. package/dest/trees/membership_witness.d.ts.map +1 -1
  315. package/dest/trees/membership_witness.js +1 -1
  316. package/dest/trees/merkle_tree.d.ts +1 -1
  317. package/dest/trees/merkle_tree.d.ts.map +1 -1
  318. package/dest/trees/merkle_tree_calculator.d.ts +2 -12
  319. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  320. package/dest/trees/merkle_tree_calculator.js +1 -31
  321. package/dest/trees/sibling_path.d.ts +5 -39
  322. package/dest/trees/sibling_path.d.ts.map +1 -1
  323. package/dest/trees/sibling_path.js +2 -2
  324. package/dest/trees/unbalanced_merkle_tree.d.ts +5 -3
  325. package/dest/trees/unbalanced_merkle_tree.d.ts.map +1 -1
  326. package/dest/trees/unbalanced_merkle_tree.js +32 -9
  327. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +6 -5
  328. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -1
  329. package/dest/trees/unbalanced_merkle_tree_calculator.js +36 -40
  330. package/dest/trees/unbalanced_tree_store.d.ts +1 -1
  331. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
  332. package/dest/types/index.d.ts +1 -1
  333. package/dest/url/index.d.ts +1 -1
  334. package/dest/validation/index.d.ts +1 -1
  335. package/package.json +29 -7
  336. package/src/array/array.ts +0 -16
  337. package/src/branded-types/block_number.ts +112 -0
  338. package/src/branded-types/checkpoint_number.ts +100 -0
  339. package/src/branded-types/epoch.ts +88 -0
  340. package/src/branded-types/index.ts +6 -0
  341. package/src/branded-types/slot.ts +88 -0
  342. package/src/branded-types/types.ts +2 -0
  343. package/src/buffer/buffer16.ts +2 -2
  344. package/src/buffer/buffer32.ts +2 -2
  345. package/src/collection/array.ts +15 -3
  346. package/src/config/env_var.ts +20 -2
  347. package/src/config/index.ts +20 -2
  348. package/src/crypto/aes128/index.ts +2 -2
  349. package/src/crypto/bls/bn254_keystore.ts +287 -0
  350. package/src/crypto/bls/index.ts +77 -0
  351. package/src/crypto/bn254/index.ts +64 -0
  352. package/src/crypto/ecdsa/index.ts +4 -4
  353. package/src/crypto/ecdsa/signature.ts +2 -2
  354. package/src/crypto/grumpkin/index.ts +14 -20
  355. package/src/crypto/keys/index.ts +2 -2
  356. package/src/crypto/pedersen/pedersen.wasm.ts +4 -4
  357. package/src/crypto/poseidon/index.ts +6 -6
  358. package/src/crypto/schnorr/index.ts +5 -4
  359. package/src/crypto/schnorr/signature.ts +2 -2
  360. package/src/crypto/secp256k1/index.ts +3 -3
  361. package/src/crypto/secp256k1-signer/utils.ts +102 -10
  362. package/src/crypto/sha256/index.ts +1 -1
  363. package/src/crypto/sha512/index.ts +1 -1
  364. package/src/crypto/signature/index.ts +1 -1
  365. package/src/crypto/sync/index.ts +1 -1
  366. package/src/crypto/sync/pedersen/index.ts +1 -1
  367. package/src/crypto/sync/poseidon/index.ts +1 -1
  368. package/src/{fields/bls12_fields.ts → curves/bls12/field.ts} +6 -6
  369. package/src/curves/bls12/index.ts +2 -0
  370. package/src/{fields/bls12_point.ts → curves/bls12/point.ts} +7 -7
  371. package/src/{fields/fields.ts → curves/bn254/field.ts} +37 -14
  372. package/src/curves/bn254/index.ts +2 -0
  373. package/src/curves/bn254/point.ts +170 -0
  374. package/src/curves/grumpkin/index.ts +11 -0
  375. package/src/{fields → curves/grumpkin}/point.ts +26 -7
  376. package/src/eth-address/index.ts +26 -1
  377. package/src/schemas/schemas.ts +16 -13
  378. package/src/schemas/utils.ts +21 -8
  379. package/src/serialize/field_reader.ts +1 -1
  380. package/src/serialize/free_funcs.ts +1 -1
  381. package/src/serialize/serialize.ts +1 -1
  382. package/src/string/index.ts +3 -0
  383. package/src/testing/files/index.ts +1 -1
  384. package/src/trees/balanced_merkle_tree.ts +84 -0
  385. package/src/trees/index.ts +1 -0
  386. package/src/trees/indexed_merkle_tree.ts +1 -1
  387. package/src/trees/membership_witness.ts +1 -1
  388. package/src/trees/merkle_tree_calculator.ts +1 -34
  389. package/src/trees/sibling_path.ts +2 -2
  390. package/src/trees/unbalanced_merkle_tree.ts +54 -6
  391. package/src/trees/unbalanced_merkle_tree_calculator.ts +34 -41
  392. package/dest/crypto/index.d.ts +0 -15
  393. package/dest/crypto/index.d.ts.map +0 -1
  394. package/dest/crypto/index.js +0 -14
  395. package/dest/fields/bls12_fields.d.ts.map +0 -1
  396. package/dest/fields/bls12_point.d.ts.map +0 -1
  397. package/dest/fields/coordinate.d.ts +0 -66
  398. package/dest/fields/coordinate.d.ts.map +0 -1
  399. package/dest/fields/coordinate.js +0 -96
  400. package/dest/fields/fields.d.ts.map +0 -1
  401. package/dest/fields/index.d.ts +0 -6
  402. package/dest/fields/index.d.ts.map +0 -1
  403. package/dest/fields/index.js +0 -5
  404. package/dest/fields/point.d.ts.map +0 -1
  405. package/dest/index.d.ts +0 -30
  406. package/dest/index.d.ts.map +0 -1
  407. package/dest/index.js +0 -30
  408. package/src/crypto/index.ts +0 -14
  409. package/src/fields/coordinate.ts +0 -104
  410. package/src/fields/index.ts +0 -5
  411. package/src/index.ts +0 -30
@@ -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,9 +235,7 @@ 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
- await BarretenbergSync.initSingleton({
239
- wasmPath: process.env.BB_WASM_PATH
240
- });
238
+ await BarretenbergSync.initSingleton();
241
239
  const api = BarretenbergSync.getSingleton();
242
240
  const response = api.bn254FrSqrt({
243
241
  input: this.toBuffer()
@@ -251,7 +249,21 @@ const ZERO_BUFFER = Buffer.alloc(32);
251
249
  toJSON() {
252
250
  return this.toString();
253
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
+ }
254
265
  static get schema() {
266
+ // Serialization from hex string.
255
267
  return hexSchemaFor(Fr);
256
268
  }
257
269
  }
@@ -322,6 +334,21 @@ TypeRegistry.register('Fr', Fr);
322
334
  add(rhs) {
323
335
  return new Fq((this.toBigInt() + rhs.toBigInt()) % Fq.MODULUS);
324
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
+ }
325
352
  toJSON() {
326
353
  return this.toString();
327
354
  }
@@ -370,7 +397,6 @@ TypeRegistry.register('Fq', Fq);
370
397
  ];
371
398
  }
372
399
  }
373
- export const GrumpkinScalar = Fq;
374
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) {
375
401
  return (input)=>fromBufferReduce(fn(input), field);
376
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"}
@@ -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,
@@ -7,23 +7,14 @@ import { Fr } from './fields.js';
7
7
  * TODO(#7386): Clean up this class.
8
8
  */
9
9
  export declare class Point {
10
- /**
11
- * The point's x coordinate
12
- */
13
10
  readonly x: Fr;
14
- /**
15
- * The point's y coordinate
16
- */
17
11
  readonly y: Fr;
18
- /**
19
- * Whether the point is at infinity
20
- */
21
12
  readonly isInfinite: boolean;
22
13
  static ZERO: Point;
23
14
  static SIZE_IN_BYTES: number;
24
15
  static COMPRESSED_SIZE_IN_BYTES: number;
25
16
  /** Used to differentiate this class from AztecAddress */
26
- readonly kind = "point";
17
+ readonly kind: string;
27
18
  constructor(
28
19
  /**
29
20
  * The point's x coordinate
@@ -39,6 +30,15 @@ export declare class Point {
39
30
  isInfinite: boolean);
40
31
  toJSON(): `0x${string}`;
41
32
  static get schema(): import("zod").ZodType<Point, any, string>;
33
+ /**
34
+ * Creates a Point from a plain object without Zod validation.
35
+ * This method is optimized for performance and skips validation, making it suitable
36
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
37
+ * Handles buffers, existing instances, or objects with x, y, and isInfinite fields.
38
+ * @param obj - Plain object, buffer, or Point instance
39
+ * @returns A Point instance
40
+ */
41
+ static fromPlainObject(obj: any): Point;
42
42
  /**
43
43
  * Generate a random Point instance.
44
44
  *
@@ -170,4 +170,4 @@ export declare class Point {
170
170
  export declare class NotOnCurveError extends Error {
171
171
  constructor(x: Fr);
172
172
  }
173
- //# sourceMappingURL=point.d.ts.map
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvZ3J1bXBraW4vcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7QUFFeEYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXZDOzs7OztHQUtHO0FBQ0gscUJBQWEsS0FBSzthQVlFLENBQUMsRUFBRSxFQUFFO2FBSUwsQ0FBQyxFQUFFLEVBQUU7YUFJTCxVQUFVLEVBQUUsT0FBTztJQW5CckMsTUFBTSxDQUFDLElBQUksUUFBc0M7SUFDakQsTUFBTSxDQUFDLGFBQWEsU0FBd0I7SUFDNUMsTUFBTSxDQUFDLHdCQUF3QixTQUFvQjtJQUVuRCx5REFBeUQ7SUFDekQsU0FBZ0IsSUFBSSxTQUFXO0lBRS9CO0lBQ0U7O09BRUc7SUFDYSxDQUFDLEVBQUUsRUFBRTtJQUNyQjs7T0FFRztJQUNhLENBQUMsRUFBRSxFQUFFO0lBQ3JCOztPQUVHO0lBQ2EsVUFBVSxFQUFFLE9BQU8sRUFHcEM7SUFFRCxNQUFNLGtCQUVMO0lBRUQsTUFBTSxLQUFLLE1BQU0sOENBR2hCO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxLQUFLLENBUXRDO0lBRUQ7Ozs7T0FJRztJQUNILE9BQWEsTUFBTSxtQkFZbEI7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxTQUc5QztJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBUXpFO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sU0FFNUI7SUFFRDs7O09BR0c7SUFDSCxRQUFRLFNBRVA7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxXQUFXLFNBRzNDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxPQUFhLFlBQVksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLGtCQWM3QztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBT3ZDO0lBRUQ7Ozs7T0FJRztJQUNILFVBQVUsSUFBSSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FFMUI7SUFFRDs7O09BR0c7SUFDSCxTQUFTOzs7O01BTVI7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxRQUFRLDRCQVNQO0lBRUQ7OztPQUdHO0lBQ0gsa0JBQWtCLDRCQVdqQjtJQUVEOzs7Ozs7T0FNRztJQUNILFFBQVEsa0JBRVA7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsYUFBYSxXQUdaO0lBRUQsWUFBWTs7OztNQUlYO0lBR0QsbUJBQW1COzs7Ozs7TUFFbEI7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssV0FFaEI7SUFFRCxNQUFNLFlBRUw7SUFFRCxJQUFJLGdCQUVIO0lBRUQ7OztPQUdHO0lBQ0gsSUFBVyxHQUFHLFlBRWI7SUFFRCxZQUFZLFlBV1g7Q0FDRjtBQUVELHFCQUFhLGVBQWdCLFNBQVEsS0FBSztJQUN4QyxZQUFZLENBQUMsRUFBRSxFQUFFLEVBR2hCO0NBQ0YifQ==
@@ -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;aAYE,CAAC,EAAE,EAAE;aAIL,CAAC,EAAE,EAAE;aAIL,UAAU,EAAE,OAAO;IAnBrC,MAAM,CAAC,IAAI,QAAsC;IACjD,MAAM,CAAC,aAAa,SAAwB;IAC5C,MAAM,CAAC,wBAAwB,SAAoB;IAEnD,yDAAyD;IACzD,SAAgB,IAAI,SAAW;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"}
@@ -4,18 +4,18 @@
4
4
  * can be used to handle cases where a process or task is terminated before completion.
5
5
  */
6
6
  export declare class InterruptError extends Error {
7
- readonly name = "InterruptError";
7
+ readonly name: string;
8
8
  }
9
9
  /**
10
10
  * An error thrown when an action times out.
11
11
  */
12
12
  export declare class TimeoutError extends Error {
13
- readonly name = "TimeoutError";
13
+ readonly name: string;
14
14
  }
15
15
  /**
16
16
  * Represents an error thrown when an operation is aborted.
17
17
  */
18
18
  export declare class AbortError extends Error {
19
- readonly name = "AbortError";
19
+ readonly name: string;
20
20
  }
21
- //# sourceMappingURL=index.d.ts.map
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcnJvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gscUJBQWEsY0FBZSxTQUFRLEtBQUs7SUFDdkMsU0FBeUIsSUFBSSxTQUFvQjtDQUNsRDtBQUVEOztHQUVHO0FBQ0gscUJBQWEsWUFBYSxTQUFRLEtBQUs7SUFDckMsU0FBeUIsSUFBSSxTQUFrQjtDQUNoRDtBQUVEOztHQUVHO0FBQ0gscUJBQWEsVUFBVyxTQUFRLEtBQUs7SUFDbkMsU0FBeUIsSUFBSSxTQUFnQjtDQUM5QyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/error/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,SAAyB,IAAI,oBAAoB;CAClD;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,SAAyB,IAAI,kBAAkB;CAChD;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK;IACnC,SAAyB,IAAI,gBAAgB;CAC9C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/error/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,SAAyB,IAAI,SAAoB;CAClD;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,SAAyB,IAAI,SAAkB;CAChD;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK;IACnC,SAAyB,IAAI,SAAgB;CAC9C"}
@@ -1,5 +1,5 @@
1
1
  import { inspect } from 'util';
2
- import { Fr } from '../fields/index.js';
2
+ import { Fr } from '../curves/bn254/index.js';
3
3
  import { BufferReader, FieldReader } from '../serialize/index.js';
4
4
  /**
5
5
  * Represents an Ethereum address as a 20-byte buffer and provides various utility methods
@@ -23,6 +23,15 @@ export declare class EthAddress {
23
23
  * @returns An EthAddress instance.
24
24
  */
25
25
  static fromString(address: string): EthAddress;
26
+ /**
27
+ * Creates an EthAddress from a plain object without Zod validation.
28
+ * This method is optimized for performance and skips validation, making it suitable
29
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
30
+ * Handles buffers (20 or 32 bytes), strings, or existing instances.
31
+ * @param obj - Plain object, buffer, string, or EthAddress instance
32
+ * @returns An EthAddress instance
33
+ */
34
+ static fromPlainObject(obj: any): EthAddress;
26
35
  /**
27
36
  * Create a random EthAddress instance with 20 random bytes.
28
37
  * This method generates a new Ethereum address with a randomly generated set of 20 bytes.
@@ -129,5 +138,6 @@ export declare class EthAddress {
129
138
  static fromNumber(num: bigint | number): EthAddress;
130
139
  toJSON(): `0x${string}`;
131
140
  static get schema(): import("zod").ZodType<EthAddress, any, string>;
141
+ static areEqual(a: EthAddress | string, b: EthAddress | string): boolean;
132
142
  }
133
- //# sourceMappingURL=index.d.ts.map
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ldGgtYWRkcmVzcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSS9CLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSWxFOzs7OztHQUtHO0FBQ0gscUJBQWEsVUFBVTtJQU1ULE9BQU8sQ0FBQyxNQUFNO0lBTDFCLGdEQUFnRDtJQUNoRCxPQUFjLGFBQWEsU0FBTTtJQUNqQywwRUFBMEU7SUFDMUUsT0FBYyxJQUFJLGFBQTBEO0lBRTVFLFlBQW9CLE1BQU0sRUFBRSxNQUFNLEVBSWpDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE9BQWMsVUFBVSxDQUFDLE9BQU8sRUFBRSxNQUFNLGNBS3ZDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE9BQWMsZUFBZSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsVUFBVSxDQVFsRDtJQUVEOzs7Ozs7T0FNRztJQUNILE9BQWMsTUFBTSxlQUVuQjtJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsT0FBYyxTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sV0FVdEM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sWUFFWjtJQUVEOzs7Ozs7O09BT0c7SUFDSCxPQUFjLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxNQUFNLFdBY2pEO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsT0FBYyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLEtBQUssTUFBTSxFQUFFLENBa0I5RDtJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxHQUFHLEVBQUUsVUFBVSxXQUU1QjtJQUVEOzs7Ozs7T0FNRztJQUNJLFFBQVEsa0JBRWQ7SUFFRCxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FFZjtJQUVEOzs7Ozs7T0FNRztJQUNJLGdCQUFnQixrQkFFdEI7SUFFRDs7O09BR0c7SUFDSSxRQUFRLDRCQUVkO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksVUFBVSx3QkFJaEI7SUFFRDs7OztPQUlHO0lBQ0ksT0FBTyxPQUViO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxVQUFVLENBRW5DO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsV0FBVyxjQUczQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLFVBQVUsQ0FHM0Q7SUFFRCw2REFBNkQ7SUFDN0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxVQUFVLENBSWxEO0lBRUQsTUFBTSxrQkFFTDtJQUVELE1BQU0sS0FBSyxNQUFNLG1EQUdoQjtJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLFVBQVUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLFVBQVUsR0FBRyxNQUFNLFdBSTdEO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eth-address/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAI/B,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIlE;;;;;GAKG;AACH,qBAAa,UAAU;IAMT,OAAO,CAAC,MAAM;IAL1B,gDAAgD;IAChD,OAAc,aAAa,SAAM;IACjC,0EAA0E;IAC1E,OAAc,IAAI,aAA0D;gBAExD,MAAM,EAAE,MAAM;IAMlC;;;;;;;OAOG;WACW,UAAU,CAAC,OAAO,EAAE,MAAM;IAOxC;;;;;;OAMG;WACW,MAAM;IAIpB;;;;;;;;OAQG;WACW,SAAS,CAAC,OAAO,EAAE,MAAM;IAYvC;;;;;OAKG;IACI,MAAM;IAIb;;;;;;;OAOG;WACW,oBAAoB,CAAC,OAAO,EAAE,MAAM;IAgBlD;;;;;;;;;OASG;WACW,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE;IAoB/D;;;;;;OAMG;IACI,MAAM,CAAC,GAAG,EAAE,UAAU;IAI7B;;;;;;OAMG;IACI,QAAQ;IAIf,CAAC,OAAO,CAAC,MAAM,CAAC;IAIhB;;;;;;OAMG;IACI,gBAAgB;IAIvB;;;OAGG;IACI,QAAQ;IAIf;;;;;;OAMG;IACI,UAAU;IAMjB;;;;OAIG;IACI,OAAO;IAId;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,UAAU;IAIpC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAK5C;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU;IAK5D,6DAA6D;IAC7D,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU;IAMnD,MAAM;IAIN,MAAM,KAAK,MAAM,mDAEhB;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eth-address/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAI/B,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIlE;;;;;GAKG;AACH,qBAAa,UAAU;IAMT,OAAO,CAAC,MAAM;IAL1B,gDAAgD;IAChD,OAAc,aAAa,SAAM;IACjC,0EAA0E;IAC1E,OAAc,IAAI,aAA0D;IAE5E,YAAoB,MAAM,EAAE,MAAM,EAIjC;IAED;;;;;;;OAOG;IACH,OAAc,UAAU,CAAC,OAAO,EAAE,MAAM,cAKvC;IAED;;;;;;;OAOG;IACH,OAAc,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,CAQlD;IAED;;;;;;OAMG;IACH,OAAc,MAAM,eAEnB;IAED;;;;;;;;OAQG;IACH,OAAc,SAAS,CAAC,OAAO,EAAE,MAAM,WAUtC;IAED;;;;;OAKG;IACI,MAAM,YAEZ;IAED;;;;;;;OAOG;IACH,OAAc,oBAAoB,CAAC,OAAO,EAAE,MAAM,WAcjD;IAED;;;;;;;;;OASG;IACH,OAAc,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAkB9D;IAED;;;;;;OAMG;IACI,MAAM,CAAC,GAAG,EAAE,UAAU,WAE5B;IAED;;;;;;OAMG;IACI,QAAQ,kBAEd;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,WAEf;IAED;;;;;;OAMG;IACI,gBAAgB,kBAEtB;IAED;;;OAGG;IACI,QAAQ,4BAEd;IAED;;;;;;OAMG;IACI,UAAU,wBAIhB;IAED;;;;OAIG;IACI,OAAO,OAEb;IAED;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,UAAU,CAEnC;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,cAG3C;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,CAG3D;IAED,6DAA6D;IAC7D,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAIlD;IAED,MAAM,kBAEL;IAED,MAAM,KAAK,MAAM,mDAGhB;IAED,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,CAAC,EAAE,UAAU,GAAG,MAAM,WAI7D;CACF"}
@@ -1,7 +1,7 @@
1
1
  import { inspect } from 'util';
2
2
  import { keccak256String } from '../crypto/keccak/index.js';
3
3
  import { randomBytes } from '../crypto/random/index.js';
4
- import { Fr } from '../fields/index.js';
4
+ import { Fr } from '../curves/bn254/index.js';
5
5
  import { hexSchemaFor } from '../schemas/utils.js';
6
6
  import { BufferReader, FieldReader } from '../serialize/index.js';
7
7
  import { TypeRegistry } from '../serialize/type_registry.js';
@@ -35,6 +35,22 @@ import { bufferToHex } from '../string/index.js';
35
35
  return new EthAddress(Buffer.from(address.replace(/^0x/i, ''), 'hex'));
36
36
  }
37
37
  /**
38
+ * Creates an EthAddress from a plain object without Zod validation.
39
+ * This method is optimized for performance and skips validation, making it suitable
40
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
41
+ * Handles buffers (20 or 32 bytes), strings, or existing instances.
42
+ * @param obj - Plain object, buffer, string, or EthAddress instance
43
+ * @returns An EthAddress instance
44
+ */ static fromPlainObject(obj) {
45
+ if (obj instanceof EthAddress) {
46
+ return obj;
47
+ }
48
+ if (obj instanceof Buffer || Buffer.isBuffer(obj)) {
49
+ return obj.length === 20 ? new EthAddress(obj) : EthAddress.fromField(new Fr(obj));
50
+ }
51
+ return EthAddress.fromString(obj);
52
+ }
53
+ /**
38
54
  * Create a random EthAddress instance with 20 random bytes.
39
55
  * This method generates a new Ethereum address with a randomly generated set of 20 bytes.
40
56
  * It is useful for generating test addresses or unique identifiers.
@@ -196,8 +212,14 @@ import { bufferToHex } from '../string/index.js';
196
212
  return this.toString();
197
213
  }
198
214
  static get schema() {
215
+ // Serialization from hex string.
199
216
  return hexSchemaFor(EthAddress, EthAddress.isAddress);
200
217
  }
218
+ static areEqual(a, b) {
219
+ const addrA = typeof a === 'string' ? EthAddress.fromString(a) : a;
220
+ const addrB = typeof b === 'string' ? EthAddress.fromString(b) : b;
221
+ return addrA.equals(addrB);
222
+ }
201
223
  }
202
224
  // For deserializing JSON.
203
225
  TypeRegistry.register('EthAddress', EthAddress);