@aztec/foundation 0.0.0-test.1 → 0.0.1-commit.1142ef1

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 (685) hide show
  1. package/dest/array/array.d.ts +6 -9
  2. package/dest/array/array.d.ts.map +1 -1
  3. package/dest/array/array.js +11 -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/async-pool/index.d.ts.map +1 -1
  13. package/dest/async-pool/index.js +1 -0
  14. package/dest/bigint/index.d.ts +7 -0
  15. package/dest/bigint/index.d.ts.map +1 -0
  16. package/dest/bigint/index.js +15 -0
  17. package/dest/bigint-buffer/index.d.ts +1 -3
  18. package/dest/bigint-buffer/index.d.ts.map +1 -1
  19. package/dest/branded-types/block_number.d.ts +53 -0
  20. package/dest/branded-types/block_number.d.ts.map +1 -0
  21. package/dest/branded-types/block_number.js +75 -0
  22. package/dest/branded-types/checkpoint_number.d.ts +54 -0
  23. package/dest/branded-types/checkpoint_number.d.ts.map +1 -0
  24. package/dest/branded-types/checkpoint_number.js +77 -0
  25. package/dest/branded-types/epoch.d.ts +42 -0
  26. package/dest/branded-types/epoch.d.ts.map +1 -0
  27. package/dest/branded-types/epoch.js +59 -0
  28. package/dest/branded-types/index.d.ts +6 -0
  29. package/dest/branded-types/index.d.ts.map +1 -0
  30. package/dest/branded-types/index.js +4 -0
  31. package/dest/branded-types/slot.d.ts +42 -0
  32. package/dest/branded-types/slot.d.ts.map +1 -0
  33. package/dest/branded-types/slot.js +59 -0
  34. package/dest/branded-types/types.d.ts +5 -0
  35. package/dest/branded-types/types.d.ts.map +1 -0
  36. package/dest/branded-types/types.js +1 -0
  37. package/dest/buffer/buffer16.d.ts +77 -0
  38. package/dest/buffer/buffer16.d.ts.map +1 -0
  39. package/dest/buffer/buffer16.js +102 -0
  40. package/dest/buffer/buffer32.d.ts +5 -12
  41. package/dest/buffer/buffer32.d.ts.map +1 -1
  42. package/dest/buffer/buffer32.js +9 -7
  43. package/dest/buffer/index.d.ts +2 -1
  44. package/dest/buffer/index.d.ts.map +1 -1
  45. package/dest/buffer/index.js +1 -0
  46. package/dest/collection/array.d.ts +17 -4
  47. package/dest/collection/array.d.ts.map +1 -1
  48. package/dest/collection/array.js +57 -3
  49. package/dest/collection/index.d.ts +1 -1
  50. package/dest/collection/object.d.ts +17 -1
  51. package/dest/collection/object.d.ts.map +1 -1
  52. package/dest/collection/object.js +25 -0
  53. package/dest/committable/committable.d.ts +1 -1
  54. package/dest/committable/committable.d.ts.map +1 -1
  55. package/dest/committable/index.d.ts +1 -1
  56. package/dest/config/env_var.d.ts +2 -2
  57. package/dest/config/env_var.d.ts.map +1 -1
  58. package/dest/config/index.d.ts +58 -4
  59. package/dest/config/index.d.ts.map +1 -1
  60. package/dest/config/index.js +129 -12
  61. package/dest/config/network_config.d.ts +54 -0
  62. package/dest/config/network_config.d.ts.map +1 -0
  63. package/dest/config/network_config.js +11 -0
  64. package/dest/config/network_name.d.ts +3 -0
  65. package/dest/config/network_name.d.ts.map +1 -0
  66. package/dest/config/network_name.js +19 -0
  67. package/dest/config/parse-env.d.ts +3 -0
  68. package/dest/config/parse-env.d.ts.map +1 -0
  69. package/dest/config/parse-env.js +7 -0
  70. package/dest/config/secret_value.d.ts +28 -0
  71. package/dest/config/secret_value.d.ts.map +1 -0
  72. package/dest/config/secret_value.js +36 -0
  73. package/dest/crypto/aes128/index.d.ts +3 -5
  74. package/dest/crypto/aes128/index.d.ts.map +1 -1
  75. package/dest/crypto/aes128/index.js +19 -6
  76. package/dest/crypto/bls/bn254_keystore.d.ts +296 -0
  77. package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -0
  78. package/dest/crypto/bls/bn254_keystore.js +218 -0
  79. package/dest/crypto/bls/index.d.ts +13 -0
  80. package/dest/crypto/bls/index.d.ts.map +1 -0
  81. package/dest/crypto/bls/index.js +87 -0
  82. package/dest/crypto/bn254/index.d.ts +39 -0
  83. package/dest/crypto/bn254/index.d.ts.map +1 -0
  84. package/dest/crypto/bn254/index.js +56 -0
  85. package/dest/crypto/ecdsa/index.d.ts +3 -3
  86. package/dest/crypto/ecdsa/index.d.ts.map +1 -1
  87. package/dest/crypto/ecdsa/index.js +62 -48
  88. package/dest/crypto/ecdsa/signature.d.ts +3 -14
  89. package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
  90. package/dest/crypto/ecdsa/signature.js +2 -2
  91. package/dest/crypto/grumpkin/index.d.ts +10 -15
  92. package/dest/crypto/grumpkin/index.d.ts.map +1 -1
  93. package/dest/crypto/grumpkin/index.js +61 -55
  94. package/dest/crypto/keccak/index.d.ts +3 -5
  95. package/dest/crypto/keccak/index.d.ts.map +1 -1
  96. package/dest/crypto/keys/index.d.ts +2 -4
  97. package/dest/crypto/keys/index.d.ts.map +1 -1
  98. package/dest/crypto/keys/index.js +8 -5
  99. package/dest/crypto/pedersen/index.d.ts +1 -1
  100. package/dest/crypto/pedersen/pedersen.noble.d.ts +3 -5
  101. package/dest/crypto/pedersen/pedersen.noble.d.ts.map +1 -1
  102. package/dest/crypto/pedersen/pedersen.wasm.d.ts +4 -6
  103. package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
  104. package/dest/crypto/pedersen/pedersen.wasm.js +24 -14
  105. package/dest/crypto/poseidon/index.d.ts +2 -4
  106. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  107. package/dest/crypto/poseidon/index.js +33 -18
  108. package/dest/crypto/random/index.d.ts +2 -4
  109. package/dest/crypto/random/index.d.ts.map +1 -1
  110. package/dest/crypto/random/index.js +2 -34
  111. package/dest/crypto/random/randomness_singleton.d.ts +2 -4
  112. package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
  113. package/dest/crypto/random/randomness_singleton.js +3 -3
  114. package/dest/crypto/schnorr/index.d.ts +3 -2
  115. package/dest/crypto/schnorr/index.d.ts.map +1 -1
  116. package/dest/crypto/schnorr/index.js +30 -38
  117. package/dest/crypto/schnorr/signature.d.ts +5 -7
  118. package/dest/crypto/schnorr/signature.d.ts.map +1 -1
  119. package/dest/crypto/schnorr/signature.js +2 -2
  120. package/dest/crypto/secp256k1/index.d.ts +5 -7
  121. package/dest/crypto/secp256k1/index.d.ts.map +1 -1
  122. package/dest/crypto/secp256k1/index.js +23 -18
  123. package/dest/crypto/secp256k1-signer/index.d.ts +1 -1
  124. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts +1 -1
  125. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts.map +1 -1
  126. package/dest/crypto/secp256k1-signer/utils.d.ts +56 -5
  127. package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
  128. package/dest/crypto/secp256k1-signer/utils.js +92 -6
  129. package/dest/crypto/serialize.d.ts +5 -7
  130. package/dest/crypto/serialize.d.ts.map +1 -1
  131. package/dest/crypto/sha256/index.d.ts +23 -6
  132. package/dest/crypto/sha256/index.d.ts.map +1 -1
  133. package/dest/crypto/sha256/index.js +43 -1
  134. package/dest/crypto/sha512/index.d.ts +3 -5
  135. package/dest/crypto/sha512/index.d.ts.map +1 -1
  136. package/dest/crypto/sha512/index.js +1 -1
  137. package/dest/crypto/signature/index.d.ts +2 -4
  138. package/dest/crypto/signature/index.d.ts.map +1 -1
  139. package/dest/crypto/sync/index.d.ts +1 -1
  140. package/dest/crypto/sync/index.js +1 -1
  141. package/dest/crypto/sync/pedersen/index.d.ts +4 -6
  142. package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
  143. package/dest/crypto/sync/pedersen/index.js +18 -11
  144. package/dest/crypto/sync/poseidon/index.d.ts +2 -4
  145. package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
  146. package/dest/crypto/sync/poseidon/index.js +28 -13
  147. package/dest/curves/bls12/field.d.ts +148 -0
  148. package/dest/curves/bls12/field.d.ts.map +1 -0
  149. package/dest/curves/bls12/field.js +362 -0
  150. package/dest/curves/bls12/index.d.ts +3 -0
  151. package/dest/curves/bls12/index.d.ts.map +1 -0
  152. package/dest/curves/bls12/index.js +2 -0
  153. package/dest/curves/bls12/point.d.ts +220 -0
  154. package/dest/curves/bls12/point.d.ts.map +1 -0
  155. package/dest/curves/bls12/point.js +400 -0
  156. package/dest/curves/bn254/field.d.ts +180 -0
  157. package/dest/curves/bn254/field.d.ts.map +1 -0
  158. package/dest/{fields/fields.js → curves/bn254/field.js} +90 -62
  159. package/dest/curves/bn254/index.d.ts +3 -0
  160. package/dest/curves/bn254/index.d.ts.map +1 -0
  161. package/dest/curves/bn254/index.js +2 -0
  162. package/dest/curves/bn254/point.d.ts +54 -0
  163. package/dest/curves/bn254/point.d.ts.map +1 -0
  164. package/dest/curves/bn254/point.js +143 -0
  165. package/dest/curves/grumpkin/index.d.ts +10 -0
  166. package/dest/curves/grumpkin/index.d.ts.map +1 -0
  167. package/dest/curves/grumpkin/index.js +3 -0
  168. package/dest/{fields → curves/grumpkin}/point.d.ts +15 -17
  169. package/dest/curves/grumpkin/point.d.ts.map +1 -0
  170. package/dest/{fields → curves/grumpkin}/point.js +27 -10
  171. package/dest/decorators/index.d.ts +1 -1
  172. package/dest/decorators/memoize.d.ts +1 -1
  173. package/dest/decorators/memoize.d.ts.map +1 -1
  174. package/dest/error/index.d.ts +4 -4
  175. package/dest/error/index.d.ts.map +1 -1
  176. package/dest/eth-address/index.d.ts +18 -9
  177. package/dest/eth-address/index.d.ts.map +1 -1
  178. package/dest/eth-address/index.js +31 -2
  179. package/dest/eth-signature/eth_signature.d.ts +17 -18
  180. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  181. package/dest/eth-signature/eth_signature.js +31 -17
  182. package/dest/eth-signature/index.d.ts +1 -1
  183. package/dest/fs/index.d.ts +2 -1
  184. package/dest/fs/index.d.ts.map +1 -1
  185. package/dest/fs/index.js +1 -0
  186. package/dest/fs/run_in_dir.d.ts +1 -1
  187. package/dest/fs/try_rm_dir.d.ts +3 -0
  188. package/dest/fs/try_rm_dir.d.ts.map +1 -0
  189. package/dest/fs/try_rm_dir.js +16 -0
  190. package/dest/iterable/all.d.ts +1 -1
  191. package/dest/iterable/filter.d.ts +1 -1
  192. package/dest/iterable/filter.js +1 -1
  193. package/dest/iterable/index.d.ts +1 -1
  194. package/dest/iterable/isAsyncIt.d.ts +1 -1
  195. package/dest/iterable/map.d.ts +1 -1
  196. package/dest/iterable/map.js +1 -1
  197. package/dest/iterable/peek.d.ts +1 -1
  198. package/dest/iterable/sort.d.ts +1 -1
  199. package/dest/iterable/take.d.ts +1 -1
  200. package/dest/iterable/toArray.d.ts +1 -1
  201. package/dest/iterator/filter.d.ts +3 -0
  202. package/dest/iterator/filter.d.ts.map +1 -0
  203. package/dest/iterator/filter.js +7 -0
  204. package/dest/iterator/index.d.ts +2 -0
  205. package/dest/iterator/index.d.ts.map +1 -0
  206. package/dest/iterator/index.js +1 -0
  207. package/dest/jest/env.js +48 -0
  208. package/dest/jest/setupAfterEnv.js +3 -0
  209. package/dest/json-rpc/client/fetch.d.ts +3 -3
  210. package/dest/json-rpc/client/fetch.d.ts.map +1 -1
  211. package/dest/json-rpc/client/fetch.js +16 -30
  212. package/dest/json-rpc/client/index.d.ts +1 -1
  213. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +10 -4
  214. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
  215. package/dest/json-rpc/client/safe_json_rpc_client.js +173 -13
  216. package/dest/json-rpc/client/undici.d.ts +1 -1
  217. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  218. package/dest/json-rpc/client/undici.js +6 -7
  219. package/dest/json-rpc/convert.d.ts +3 -10
  220. package/dest/json-rpc/convert.d.ts.map +1 -1
  221. package/dest/json-rpc/convert.js +1 -9
  222. package/dest/json-rpc/errors.d.ts +4 -0
  223. package/dest/json-rpc/errors.d.ts.map +1 -0
  224. package/dest/json-rpc/errors.js +6 -0
  225. package/dest/json-rpc/fixtures/class_a.d.ts +4 -2
  226. package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
  227. package/dest/json-rpc/fixtures/class_b.d.ts +4 -2
  228. package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -1
  229. package/dest/json-rpc/fixtures/test_state.d.ts +1 -1
  230. package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
  231. package/dest/json-rpc/index.d.ts +3 -2
  232. package/dest/json-rpc/index.d.ts.map +1 -1
  233. package/dest/json-rpc/index.js +2 -1
  234. package/dest/json-rpc/js_utils.d.ts +1 -1
  235. package/dest/json-rpc/js_utils.d.ts.map +1 -1
  236. package/dest/json-rpc/server/index.d.ts +1 -1
  237. package/dest/json-rpc/server/safe_json_rpc_server.d.ts +22 -23
  238. package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
  239. package/dest/json-rpc/server/safe_json_rpc_server.js +161 -56
  240. package/dest/json-rpc/test/index.d.ts +1 -1
  241. package/dest/json-rpc/test/integration.d.ts +2 -3
  242. package/dest/json-rpc/test/integration.d.ts.map +1 -1
  243. package/dest/log/console.d.ts +1 -1
  244. package/dest/log/console.d.ts.map +1 -1
  245. package/dest/log/gcloud-logger-config.d.ts +1 -2
  246. package/dest/log/gcloud-logger-config.d.ts.map +1 -1
  247. package/dest/log/gcloud-logger-config.js +1 -9
  248. package/dest/log/index.d.ts +5 -5
  249. package/dest/log/index.d.ts.map +1 -1
  250. package/dest/log/index.js +4 -4
  251. package/dest/log/libp2p_logger.d.ts +1 -1
  252. package/dest/log/libp2p_logger.js +13 -2
  253. package/dest/log/log-filters.d.ts +1 -1
  254. package/dest/log/log-levels.d.ts +1 -1
  255. package/dest/log/log_fn.d.ts +2 -2
  256. package/dest/log/log_fn.d.ts.map +1 -1
  257. package/dest/log/noir_debug_log_util.d.ts +14 -0
  258. package/dest/log/noir_debug_log_util.d.ts.map +1 -0
  259. package/dest/log/noir_debug_log_util.js +14 -0
  260. package/dest/log/pino-logger.d.ts +4 -4
  261. package/dest/log/pino-logger.d.ts.map +1 -1
  262. package/dest/log/pino-logger.js +29 -3
  263. package/dest/message/index.d.ts +1 -1
  264. package/dest/message/index.d.ts.map +1 -1
  265. package/dest/mutex/index.d.ts +1 -1
  266. package/dest/mutex/index.d.ts.map +1 -1
  267. package/dest/mutex/mutex_database.d.ts +1 -1
  268. package/dest/mutex/mutex_database.d.ts.map +1 -1
  269. package/dest/noir/index.d.ts +1 -1
  270. package/dest/noir/noir_package_config.d.ts +9 -9
  271. package/dest/number/index.d.ts +3 -0
  272. package/dest/number/index.d.ts.map +1 -0
  273. package/dest/number/index.js +12 -0
  274. package/dest/profiler/index.d.ts +2 -0
  275. package/dest/profiler/index.d.ts.map +1 -0
  276. package/dest/profiler/index.js +1 -0
  277. package/dest/profiler/profiler.d.ts +8 -0
  278. package/dest/profiler/profiler.d.ts.map +1 -0
  279. package/dest/profiler/profiler.js +97 -0
  280. package/dest/promise/index.d.ts +1 -1
  281. package/dest/promise/running-promise.d.ts +2 -2
  282. package/dest/promise/running-promise.d.ts.map +1 -1
  283. package/dest/promise/running-promise.js +2 -2
  284. package/dest/promise/utils.d.ts +1 -1
  285. package/dest/queue/base_memory_queue.d.ts +1 -1
  286. package/dest/queue/base_memory_queue.d.ts.map +1 -1
  287. package/dest/queue/batch_queue.d.ts +2 -2
  288. package/dest/queue/batch_queue.d.ts.map +1 -1
  289. package/dest/queue/batch_queue.js +1 -1
  290. package/dest/queue/bounded_serial_queue.d.ts +1 -1
  291. package/dest/queue/bounded_serial_queue.d.ts.map +1 -1
  292. package/dest/queue/fifo_memory_queue.d.ts +1 -1
  293. package/dest/queue/fifo_memory_queue.d.ts.map +1 -1
  294. package/dest/queue/index.d.ts +1 -1
  295. package/dest/queue/priority_memory_queue.d.ts +1 -1
  296. package/dest/queue/priority_memory_queue.d.ts.map +1 -1
  297. package/dest/queue/priority_queue.d.ts +1 -1
  298. package/dest/queue/priority_queue.d.ts.map +1 -1
  299. package/dest/queue/semaphore.d.ts +1 -1
  300. package/dest/queue/semaphore.d.ts.map +1 -1
  301. package/dest/queue/serial_queue.d.ts +3 -3
  302. package/dest/queue/serial_queue.d.ts.map +1 -1
  303. package/dest/queue/serial_queue.js +7 -5
  304. package/dest/retry/index.d.ts +4 -3
  305. package/dest/retry/index.d.ts.map +1 -1
  306. package/dest/retry/index.js +2 -2
  307. package/dest/running-promise/index.d.ts +1 -1
  308. package/dest/schemas/api.d.ts +1 -1
  309. package/dest/schemas/api.d.ts.map +1 -1
  310. package/dest/schemas/index.d.ts +1 -1
  311. package/dest/schemas/parse.d.ts +1 -1
  312. package/dest/schemas/parse.js +1 -1
  313. package/dest/schemas/schemas.d.ts +21 -20
  314. package/dest/schemas/schemas.d.ts.map +1 -1
  315. package/dest/schemas/schemas.js +29 -11
  316. package/dest/schemas/types.d.ts +31 -1
  317. package/dest/schemas/types.d.ts.map +1 -1
  318. package/dest/schemas/types.js +25 -1
  319. package/dest/schemas/utils.d.ts +4 -6
  320. package/dest/schemas/utils.d.ts.map +1 -1
  321. package/dest/schemas/utils.js +15 -5
  322. package/dest/serialize/buffer_reader.d.ts +28 -3
  323. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  324. package/dest/serialize/buffer_reader.js +44 -2
  325. package/dest/serialize/field_reader.d.ts +12 -3
  326. package/dest/serialize/field_reader.d.ts.map +1 -1
  327. package/dest/serialize/field_reader.js +19 -2
  328. package/dest/serialize/free_funcs.d.ts +25 -23
  329. package/dest/serialize/free_funcs.d.ts.map +1 -1
  330. package/dest/serialize/free_funcs.js +22 -28
  331. package/dest/serialize/index.d.ts +1 -1
  332. package/dest/serialize/serialize.d.ts +6 -7
  333. package/dest/serialize/serialize.d.ts.map +1 -1
  334. package/dest/serialize/serialize.js +1 -1
  335. package/dest/serialize/type_registry.d.ts +1 -1
  336. package/dest/serialize/type_registry.d.ts.map +1 -1
  337. package/dest/serialize/types.d.ts +1 -1
  338. package/dest/sleep/index.d.ts +3 -1
  339. package/dest/sleep/index.d.ts.map +1 -1
  340. package/dest/sleep/index.js +4 -0
  341. package/dest/string/index.d.ts +8 -3
  342. package/dest/string/index.d.ts.map +1 -1
  343. package/dest/string/index.js +27 -1
  344. package/dest/testing/files/index.d.ts +2 -3
  345. package/dest/testing/files/index.d.ts.map +1 -1
  346. package/dest/testing/files/index.js +3 -3
  347. package/dest/testing/formatting.d.ts +4 -0
  348. package/dest/testing/formatting.d.ts.map +1 -0
  349. package/dest/testing/formatting.js +3 -0
  350. package/dest/testing/index.d.ts +2 -1
  351. package/dest/testing/index.d.ts.map +1 -1
  352. package/dest/testing/index.js +1 -0
  353. package/dest/testing/port_allocator.d.ts +1 -1
  354. package/dest/testing/snapshot_serializer.d.ts +1 -1
  355. package/dest/testing/test_data.d.ts +1 -1
  356. package/dest/timer/date.d.ts +4 -2
  357. package/dest/timer/date.d.ts.map +1 -1
  358. package/dest/timer/date.js +8 -3
  359. package/dest/timer/elapsed.d.ts +1 -1
  360. package/dest/timer/index.d.ts +2 -2
  361. package/dest/timer/index.d.ts.map +1 -1
  362. package/dest/timer/index.js +1 -1
  363. package/dest/timer/timeout.d.ts +19 -6
  364. package/dest/timer/timeout.d.ts.map +1 -1
  365. package/dest/timer/timeout.js +43 -22
  366. package/dest/timer/timer.d.ts +1 -1
  367. package/dest/timer/timer.d.ts.map +1 -1
  368. package/dest/transport/dispatch/create_dispatch_fn.d.ts +1 -1
  369. package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +1 -1
  370. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +1 -1
  371. package/dest/transport/dispatch/messages.d.ts +1 -1
  372. package/dest/transport/index.d.ts +1 -2
  373. package/dest/transport/index.d.ts.map +1 -1
  374. package/dest/transport/index.js +0 -1
  375. package/dest/transport/interface/connector.d.ts +1 -1
  376. package/dest/transport/interface/connector.d.ts.map +1 -1
  377. package/dest/transport/interface/listener.d.ts +1 -2
  378. package/dest/transport/interface/listener.d.ts.map +1 -1
  379. package/dest/transport/interface/socket.d.ts +1 -1
  380. package/dest/transport/interface/socket.d.ts.map +1 -1
  381. package/dest/transport/interface/transferable.d.ts +1 -1
  382. package/dest/transport/node/index.d.ts +1 -1
  383. package/dest/transport/node/node_connector.d.ts +1 -2
  384. package/dest/transport/node/node_connector.d.ts.map +1 -1
  385. package/dest/transport/node/node_connector_socket.d.ts +1 -2
  386. package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
  387. package/dest/transport/node/node_listener.d.ts +1 -2
  388. package/dest/transport/node/node_listener.d.ts.map +1 -1
  389. package/dest/transport/node/node_listener_socket.d.ts +1 -2
  390. package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
  391. package/dest/transport/transport_client.d.ts +1 -2
  392. package/dest/transport/transport_client.d.ts.map +1 -1
  393. package/dest/transport/transport_server.d.ts +1 -10
  394. package/dest/transport/transport_server.d.ts.map +1 -1
  395. package/dest/trees/balanced_merkle_tree.d.ts +22 -0
  396. package/dest/trees/balanced_merkle_tree.d.ts.map +1 -0
  397. package/dest/trees/balanced_merkle_tree.js +66 -0
  398. package/dest/trees/hasher.d.ts +5 -7
  399. package/dest/trees/hasher.d.ts.map +1 -1
  400. package/dest/trees/index.d.ts +3 -1
  401. package/dest/trees/index.d.ts.map +1 -1
  402. package/dest/trees/index.js +2 -0
  403. package/dest/trees/indexed_merkle_tree.d.ts +1 -3
  404. package/dest/trees/indexed_merkle_tree.d.ts.map +1 -1
  405. package/dest/trees/indexed_merkle_tree.js +1 -1
  406. package/dest/trees/indexed_merkle_tree_calculator.d.ts +2 -4
  407. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
  408. package/dest/trees/indexed_tree_leaf.d.ts +1 -3
  409. package/dest/trees/indexed_tree_leaf.d.ts.map +1 -1
  410. package/dest/trees/membership_witness.d.ts +6 -11
  411. package/dest/trees/membership_witness.d.ts.map +1 -1
  412. package/dest/trees/membership_witness.js +14 -1
  413. package/dest/trees/merkle_tree.d.ts +1 -3
  414. package/dest/trees/merkle_tree.d.ts.map +1 -1
  415. package/dest/trees/merkle_tree_calculator.d.ts +2 -4
  416. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  417. package/dest/trees/merkle_tree_calculator.js +1 -1
  418. package/dest/trees/sibling_path.d.ts +6 -42
  419. package/dest/trees/sibling_path.d.ts.map +1 -1
  420. package/dest/trees/sibling_path.js +2 -2
  421. package/dest/trees/unbalanced_merkle_tree.d.ts +25 -10
  422. package/dest/trees/unbalanced_merkle_tree.d.ts.map +1 -1
  423. package/dest/trees/unbalanced_merkle_tree.js +78 -50
  424. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +48 -0
  425. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -0
  426. package/dest/trees/unbalanced_merkle_tree_calculator.js +154 -0
  427. package/dest/trees/unbalanced_tree_store.d.ts +2 -1
  428. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
  429. package/dest/trees/unbalanced_tree_store.js +6 -0
  430. package/dest/types/index.d.ts +28 -3
  431. package/dest/types/index.d.ts.map +1 -1
  432. package/dest/types/index.js +3 -0
  433. package/dest/url/index.d.ts +1 -1
  434. package/dest/url/index.d.ts.map +1 -1
  435. package/dest/url/index.js +1 -1
  436. package/dest/validation/index.d.ts +1 -1
  437. package/package.json +59 -45
  438. package/src/array/array.ts +13 -16
  439. package/src/array/index.ts +1 -0
  440. package/src/array/sorted_array.ts +133 -0
  441. package/src/async-pool/index.ts +1 -0
  442. package/src/bigint/index.ts +20 -0
  443. package/src/branded-types/block_number.ts +112 -0
  444. package/src/branded-types/checkpoint_number.ts +115 -0
  445. package/src/branded-types/epoch.ts +88 -0
  446. package/src/branded-types/index.ts +6 -0
  447. package/src/branded-types/slot.ts +88 -0
  448. package/src/branded-types/types.ts +2 -0
  449. package/src/buffer/buffer16.ts +133 -0
  450. package/src/buffer/buffer32.ts +10 -8
  451. package/src/buffer/index.ts +1 -0
  452. package/src/collection/array.ts +66 -4
  453. package/src/collection/object.ts +37 -0
  454. package/src/config/env_var.ts +177 -58
  455. package/src/config/index.ts +209 -10
  456. package/src/config/network_config.ts +18 -0
  457. package/src/config/network_name.ts +28 -0
  458. package/src/config/parse-env.ts +4 -0
  459. package/src/config/secret_value.ts +49 -0
  460. package/src/crypto/aes128/index.ts +19 -10
  461. package/src/crypto/bls/bn254_keystore.ts +287 -0
  462. package/src/crypto/bls/index.ts +77 -0
  463. package/src/crypto/bn254/index.ts +64 -0
  464. package/src/crypto/ecdsa/index.ts +41 -23
  465. package/src/crypto/ecdsa/signature.ts +2 -2
  466. package/src/crypto/grumpkin/index.ts +38 -46
  467. package/src/crypto/keys/index.ts +6 -6
  468. package/src/crypto/pedersen/pedersen.wasm.ts +23 -19
  469. package/src/crypto/poseidon/index.ts +33 -25
  470. package/src/crypto/random/index.ts +2 -40
  471. package/src/crypto/random/randomness_singleton.ts +2 -4
  472. package/src/crypto/schnorr/index.ts +22 -18
  473. package/src/crypto/schnorr/signature.ts +2 -2
  474. package/src/crypto/secp256k1/index.ts +15 -11
  475. package/src/crypto/secp256k1-signer/utils.ts +120 -7
  476. package/src/crypto/sha256/index.ts +48 -1
  477. package/src/crypto/sha512/index.ts +1 -1
  478. package/src/crypto/signature/index.ts +1 -1
  479. package/src/crypto/sync/index.ts +1 -1
  480. package/src/crypto/sync/pedersen/index.ts +17 -16
  481. package/src/crypto/sync/poseidon/index.ts +28 -23
  482. package/src/curves/bls12/field.ts +463 -0
  483. package/src/curves/bls12/index.ts +2 -0
  484. package/src/curves/bls12/point.ts +450 -0
  485. package/src/{fields/fields.ts → curves/bn254/field.ts} +84 -63
  486. package/src/curves/bn254/index.ts +2 -0
  487. package/src/curves/bn254/point.ts +170 -0
  488. package/src/curves/grumpkin/index.ts +11 -0
  489. package/src/{fields → curves/grumpkin}/point.ts +27 -10
  490. package/src/eth-address/index.ts +35 -3
  491. package/src/eth-signature/eth_signature.ts +44 -22
  492. package/src/fs/index.ts +1 -0
  493. package/src/fs/try_rm_dir.ts +15 -0
  494. package/src/iterable/filter.ts +1 -1
  495. package/src/iterable/map.ts +1 -1
  496. package/src/iterator/filter.ts +11 -0
  497. package/src/iterator/index.ts +1 -0
  498. package/src/jest/env.mjs +52 -0
  499. package/src/jest/setupAfterEnv.mjs +3 -0
  500. package/src/json-rpc/client/fetch.ts +14 -33
  501. package/src/json-rpc/client/safe_json_rpc_client.ts +226 -13
  502. package/src/json-rpc/client/undici.ts +8 -15
  503. package/src/json-rpc/convert.ts +3 -12
  504. package/src/json-rpc/errors.ts +6 -0
  505. package/src/json-rpc/fixtures/class_a.ts +4 -1
  506. package/src/json-rpc/fixtures/class_b.ts +4 -1
  507. package/src/json-rpc/index.ts +2 -1
  508. package/src/json-rpc/server/safe_json_rpc_server.ts +141 -48
  509. package/src/json-rpc/test/integration.ts +1 -1
  510. package/src/log/console.ts +4 -1
  511. package/src/log/gcloud-logger-config.ts +3 -7
  512. package/src/log/index.ts +4 -4
  513. package/src/log/libp2p_logger.ts +21 -2
  514. package/src/log/log_fn.ts +1 -1
  515. package/src/log/noir_debug_log_util.ts +21 -0
  516. package/src/log/pino-logger.ts +35 -3
  517. package/src/message/index.ts +5 -1
  518. package/src/mutex/mutex_database.ts +2 -3
  519. package/src/number/index.ts +14 -0
  520. package/src/profiler/index.ts +1 -0
  521. package/src/profiler/profiler.ts +125 -0
  522. package/src/promise/running-promise.ts +2 -2
  523. package/src/queue/batch_queue.ts +1 -1
  524. package/src/queue/bounded_serial_queue.ts +4 -1
  525. package/src/queue/serial_queue.ts +5 -5
  526. package/src/retry/index.ts +10 -5
  527. package/src/schemas/api.ts +4 -4
  528. package/src/schemas/parse.ts +1 -1
  529. package/src/schemas/schemas.ts +42 -13
  530. package/src/schemas/types.ts +33 -0
  531. package/src/schemas/utils.ts +21 -8
  532. package/src/serialize/buffer_reader.ts +60 -3
  533. package/src/serialize/field_reader.ts +28 -4
  534. package/src/serialize/free_funcs.ts +26 -32
  535. package/src/serialize/serialize.ts +3 -1
  536. package/src/sleep/index.ts +6 -0
  537. package/src/string/index.ts +36 -1
  538. package/src/testing/files/index.ts +7 -3
  539. package/src/testing/formatting.ts +3 -0
  540. package/src/testing/index.ts +1 -0
  541. package/src/timer/date.ts +13 -3
  542. package/src/timer/index.ts +1 -1
  543. package/src/timer/timeout.ts +54 -19
  544. package/src/transport/index.ts +0 -1
  545. package/src/transport/interface/connector.ts +0 -1
  546. package/src/transport/interface/listener.ts +2 -3
  547. package/src/transport/interface/socket.ts +2 -3
  548. package/src/transport/transport_client.ts +3 -4
  549. package/src/transport/transport_server.ts +4 -1
  550. package/src/trees/balanced_merkle_tree.ts +84 -0
  551. package/src/trees/hasher.ts +4 -4
  552. package/src/trees/index.ts +2 -0
  553. package/src/trees/indexed_merkle_tree.ts +6 -2
  554. package/src/trees/indexed_merkle_tree_calculator.ts +2 -2
  555. package/src/trees/membership_witness.ts +14 -1
  556. package/src/trees/merkle_tree.ts +4 -1
  557. package/src/trees/merkle_tree_calculator.ts +10 -5
  558. package/src/trees/sibling_path.ts +2 -2
  559. package/src/trees/unbalanced_merkle_tree.ts +112 -42
  560. package/src/trees/unbalanced_merkle_tree_calculator.ts +177 -0
  561. package/src/trees/unbalanced_tree_store.ts +5 -1
  562. package/src/types/index.ts +30 -4
  563. package/src/url/index.ts +0 -1
  564. package/dest/crypto/index.d.ts +0 -15
  565. package/dest/crypto/index.d.ts.map +0 -1
  566. package/dest/crypto/index.js +0 -14
  567. package/dest/crypto/pedersen/pedersen.elliptic.d.ts +0 -13
  568. package/dest/crypto/pedersen/pedersen.elliptic.d.ts.map +0 -1
  569. package/dest/crypto/pedersen/pedersen.elliptic.js +0 -582
  570. package/dest/fields/coordinate.d.ts +0 -68
  571. package/dest/fields/coordinate.d.ts.map +0 -1
  572. package/dest/fields/coordinate.js +0 -96
  573. package/dest/fields/fields.d.ts +0 -176
  574. package/dest/fields/fields.d.ts.map +0 -1
  575. package/dest/fields/index.d.ts +0 -4
  576. package/dest/fields/index.d.ts.map +0 -1
  577. package/dest/fields/index.js +0 -3
  578. package/dest/fields/point.d.ts.map +0 -1
  579. package/dest/index.d.ts +0 -31
  580. package/dest/index.d.ts.map +0 -1
  581. package/dest/index.js +0 -31
  582. package/dest/json-rpc/server/telemetry.d.ts +0 -2
  583. package/dest/json-rpc/server/telemetry.d.ts.map +0 -1
  584. package/dest/json-rpc/server/telemetry.js +0 -0
  585. package/dest/log/debug.d.ts +0 -56
  586. package/dest/log/debug.d.ts.map +0 -1
  587. package/dest/log/debug.js +0 -75
  588. package/dest/log/log_history.d.ts +0 -31
  589. package/dest/log/log_history.d.ts.map +0 -1
  590. package/dest/log/log_history.js +0 -38
  591. package/dest/transport/browser/index.d.ts +0 -5
  592. package/dest/transport/browser/index.d.ts.map +0 -1
  593. package/dest/transport/browser/index.js +0 -4
  594. package/dest/transport/browser/message_port_socket.d.ts +0 -37
  595. package/dest/transport/browser/message_port_socket.d.ts.map +0 -1
  596. package/dest/transport/browser/message_port_socket.js +0 -42
  597. package/dest/transport/browser/shared_worker_connector.d.ts +0 -19
  598. package/dest/transport/browser/shared_worker_connector.d.ts.map +0 -1
  599. package/dest/transport/browser/shared_worker_connector.js +0 -19
  600. package/dest/transport/browser/shared_worker_listener.d.ts +0 -38
  601. package/dest/transport/browser/shared_worker_listener.d.ts.map +0 -1
  602. package/dest/transport/browser/shared_worker_listener.js +0 -33
  603. package/dest/transport/browser/worker_connector.d.ts +0 -26
  604. package/dest/transport/browser/worker_connector.d.ts.map +0 -1
  605. package/dest/transport/browser/worker_connector.js +0 -30
  606. package/dest/transport/browser/worker_listener.d.ts +0 -39
  607. package/dest/transport/browser/worker_listener.d.ts.map +0 -1
  608. package/dest/transport/browser/worker_listener.js +0 -35
  609. package/dest/wasm/empty_wasi_sdk.d.ts +0 -130
  610. package/dest/wasm/empty_wasi_sdk.d.ts.map +0 -1
  611. package/dest/wasm/empty_wasi_sdk.js +0 -148
  612. package/dest/wasm/index.d.ts +0 -2
  613. package/dest/wasm/index.d.ts.map +0 -1
  614. package/dest/wasm/index.js +0 -1
  615. package/dest/wasm/wasm_module.d.ts +0 -136
  616. package/dest/wasm/wasm_module.d.ts.map +0 -1
  617. package/dest/wasm/wasm_module.js +0 -196
  618. package/dest/worker/browser/index.d.ts +0 -3
  619. package/dest/worker/browser/index.d.ts.map +0 -1
  620. package/dest/worker/browser/index.js +0 -2
  621. package/dest/worker/browser/start_web_module.d.ts +0 -7
  622. package/dest/worker/browser/start_web_module.d.ts.map +0 -1
  623. package/dest/worker/browser/start_web_module.js +0 -27
  624. package/dest/worker/browser/web_data_store.d.ts +0 -24
  625. package/dest/worker/browser/web_data_store.d.ts.map +0 -1
  626. package/dest/worker/browser/web_data_store.js +0 -29
  627. package/dest/worker/browser/web_worker.d.ts +0 -10
  628. package/dest/worker/browser/web_worker.d.ts.map +0 -1
  629. package/dest/worker/browser/web_worker.js +0 -25
  630. package/dest/worker/data_store.d.ts +0 -21
  631. package/dest/worker/data_store.d.ts.map +0 -1
  632. package/dest/worker/data_store.js +0 -3
  633. package/dest/worker/index.d.ts +0 -3
  634. package/dest/worker/index.d.ts.map +0 -1
  635. package/dest/worker/index.js +0 -1
  636. package/dest/worker/node/index.d.ts +0 -3
  637. package/dest/worker/node/index.d.ts.map +0 -1
  638. package/dest/worker/node/index.js +0 -2
  639. package/dest/worker/node/node_data_store.d.ts +0 -13
  640. package/dest/worker/node/node_data_store.d.ts.map +0 -1
  641. package/dest/worker/node/node_data_store.js +0 -20
  642. package/dest/worker/node/node_worker.d.ts +0 -6
  643. package/dest/worker/node/node_worker.d.ts.map +0 -1
  644. package/dest/worker/node/node_worker.js +0 -22
  645. package/dest/worker/node/start_node_module.d.ts +0 -7
  646. package/dest/worker/node/start_node_module.d.ts.map +0 -1
  647. package/dest/worker/node/start_node_module.js +0 -31
  648. package/dest/worker/wasm_worker.d.ts +0 -9
  649. package/dest/worker/wasm_worker.d.ts.map +0 -1
  650. package/dest/worker/wasm_worker.js +0 -3
  651. package/dest/worker/worker_pool.d.ts +0 -40
  652. package/dest/worker/worker_pool.d.ts.map +0 -1
  653. package/dest/worker/worker_pool.js +0 -51
  654. package/src/crypto/index.ts +0 -14
  655. package/src/crypto/pedersen/pedersen.elliptic.ts +0 -584
  656. package/src/fields/coordinate.ts +0 -104
  657. package/src/fields/index.ts +0 -3
  658. package/src/index.ts +0 -31
  659. package/src/json-rpc/server/telemetry.ts +0 -0
  660. package/src/log/debug.ts +0 -104
  661. package/src/log/log_history.ts +0 -44
  662. package/src/transport/browser/index.ts +0 -4
  663. package/src/transport/browser/message_port_socket.ts +0 -48
  664. package/src/transport/browser/shared_worker_connector.ts +0 -21
  665. package/src/transport/browser/shared_worker_listener.ts +0 -53
  666. package/src/transport/browser/worker_connector.ts +0 -30
  667. package/src/transport/browser/worker_listener.ts +0 -54
  668. package/src/wasm/README.md +0 -6
  669. package/src/wasm/empty_wasi_sdk.ts +0 -166
  670. package/src/wasm/fixtures/gcd.wasm +0 -0
  671. package/src/wasm/fixtures/gcd.wat +0 -27
  672. package/src/wasm/index.ts +0 -1
  673. package/src/wasm/wasm_module.ts +0 -260
  674. package/src/worker/browser/index.ts +0 -2
  675. package/src/worker/browser/start_web_module.ts +0 -24
  676. package/src/worker/browser/web_data_store.ts +0 -38
  677. package/src/worker/browser/web_worker.ts +0 -25
  678. package/src/worker/data_store.ts +0 -19
  679. package/src/worker/index.ts +0 -2
  680. package/src/worker/node/index.ts +0 -2
  681. package/src/worker/node/node_data_store.ts +0 -27
  682. package/src/worker/node/node_worker.ts +0 -23
  683. package/src/worker/node/start_node_module.ts +0 -30
  684. package/src/worker/wasm_worker.ts +0 -7
  685. package/src/worker/worker_pool.ts +0 -73
@@ -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,79 +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
- }
41
33
  } else if (value instanceof BaseField) {
42
- this.asBuffer = value.asBuffer;
43
34
  this.asBigInt = value.asBigInt;
44
35
  } else {
45
36
  throw new Error(`Type '${typeof value}' with value '${value}' passed to BaseField ctor.`);
46
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
+ }
47
43
  }
48
44
  /**
49
- * We return a copy of the Buffer to ensure this remains immutable.
45
+ * Converts the bigint to a Buffer.
50
46
  */ toBuffer() {
51
- if (!this.asBuffer) {
52
- this.asBuffer = toBufferBE(this.asBigInt, 32);
53
- }
54
- return Buffer.from(this.asBuffer);
47
+ return toBufferBE(this.asBigInt, 32);
55
48
  }
56
49
  toString() {
57
- return `0x${this.toBuffer().toString('hex')}`;
50
+ return `0x${this.asBigInt.toString(16).padStart(64, '0')}`;
58
51
  }
59
52
  toBigInt() {
60
- if (this.asBigInt === undefined) {
61
- this.asBigInt = toBigIntBE(this.asBuffer);
62
- if (this.asBigInt >= this.modulus()) {
63
- throw new Error(`Value 0x${this.asBigInt.toString(16)} is greater or equal to field modulus.`);
64
- }
65
- }
66
53
  return this.asBigInt;
67
54
  }
68
55
  toBool() {
69
- return Boolean(this.toBigInt());
56
+ return this.asBigInt !== 0n;
70
57
  }
71
58
  /**
72
59
  * Converts this field to a number.
73
60
  * Throws if the underlying value is greater than MAX_SAFE_INTEGER.
74
61
  */ toNumber() {
75
- const value = this.toBigInt();
76
- if (value > Number.MAX_SAFE_INTEGER) {
77
- 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`);
78
64
  }
79
- return Number(value);
65
+ return Number(this.asBigInt);
80
66
  }
81
67
  /**
82
68
  * Converts this field to a number.
83
69
  * May cause loss of precision if the underlying value is greater than MAX_SAFE_INTEGER.
84
70
  */ toNumberUnsafe() {
85
- const value = this.toBigInt();
86
- return Number(value);
71
+ return Number(this.asBigInt);
87
72
  }
88
73
  toShortString() {
89
74
  const str = this.toString();
90
75
  return `${str.slice(0, 10)}...${str.slice(-4)}`;
91
76
  }
92
77
  equals(rhs) {
93
- return this.toBuffer().equals(rhs.toBuffer());
78
+ return this.asBigInt === rhs.asBigInt;
94
79
  }
95
80
  lt(rhs) {
96
- return this.toBigInt() < rhs.toBigInt();
81
+ return this.asBigInt < rhs.asBigInt;
97
82
  }
98
83
  cmp(rhs) {
99
- const lhsBigInt = this.toBigInt();
100
- const rhsBigInt = rhs.toBigInt();
101
- 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);
102
89
  }
103
90
  isZero() {
104
- return this.toBuffer().equals(ZERO_BUFFER);
91
+ return this.asBigInt === 0n;
105
92
  }
106
93
  isEmpty() {
107
94
  return this.isZero();
@@ -141,8 +128,9 @@ const ZERO_BUFFER = Buffer.alloc(32);
141
128
  throw new Error(`Invalid hex-encoded string: "${buf}"`);
142
129
  }
143
130
  const buffer = Buffer.from(checked.length % 2 === 1 ? '0' + checked : checked, 'hex');
144
- return new f(buffer);
131
+ return new f(toBigIntBE(buffer));
145
132
  }
133
+ _computedKey = inspect.custom;
146
134
  /**
147
135
  * Fr field class.
148
136
  * @dev This class is used to represent elements of BN254 scalar field or elements in the base field of Grumpkin.
@@ -155,7 +143,7 @@ const ZERO_BUFFER = Buffer.alloc(32);
155
143
  constructor(value){
156
144
  super(value);
157
145
  }
158
- [inspect.custom]() {
146
+ [_computedKey]() {
159
147
  return `Fr<${this.toString()}>`;
160
148
  }
161
149
  modulus() {
@@ -233,29 +221,41 @@ const ZERO_BUFFER = Buffer.alloc(32);
233
221
  * Computes a square root of the field element.
234
222
  * @returns A square root of the field element (null if it does not exist).
235
223
  */ async sqrt() {
236
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
237
- const wasm = api.getWasm();
238
- const [buf] = wasm.callWasmExport('bn254_fr_sqrt', [
239
- this.toBuffer()
240
- ], [
241
- Fr.SIZE_IN_BYTES + 1
242
- ]);
243
- const isSqrt = buf[0] === 1;
244
- if (!isSqrt) {
224
+ await BarretenbergSync.initSingleton();
225
+ const api = BarretenbergSync.getSingleton();
226
+ const response = api.bn254FrSqrt({
227
+ input: this.toBuffer()
228
+ });
229
+ if (!response.isSquareRoot) {
245
230
  // Field element is not a quadratic residue mod p so it has no square root.
246
231
  return null;
247
232
  }
248
- return new Fr(Buffer.from(buf.slice(1)));
233
+ return Fr.fromBuffer(Buffer.from(response.value));
249
234
  }
250
235
  toJSON() {
251
236
  return this.toString();
252
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
+ }
253
251
  static get schema() {
252
+ // Serialization from hex string.
254
253
  return hexSchemaFor(Fr);
255
254
  }
256
255
  }
257
256
  // For deserializing JSON.
258
257
  TypeRegistry.register('Fr', Fr);
258
+ _computedKey1 = inspect.custom;
259
259
  /**
260
260
  * Fq field class.
261
261
  * @dev This class is used to represent elements of BN254 base field or elements in the scalar field of Grumpkin.
@@ -265,7 +265,7 @@ TypeRegistry.register('Fr', Fr);
265
265
  static MODULUS = 0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47n;
266
266
  static HIGH_SHIFT = BigInt(BaseField.SIZE_IN_BYTES / 2 * 8);
267
267
  static LOW_MASK = (1n << Fq.HIGH_SHIFT) - 1n;
268
- [inspect.custom]() {
268
+ [_computedKey1]() {
269
269
  return `Fq<${this.toString()}>`;
270
270
  }
271
271
  get lo() {
@@ -321,9 +321,33 @@ TypeRegistry.register('Fr', Fr);
321
321
  add(rhs) {
322
322
  return new Fq((this.toBigInt() + rhs.toBigInt()) % Fq.MODULUS);
323
323
  }
324
+ /**
325
+ * Computes a square root of the field element.
326
+ * @returns A square root of the field element (null if it does not exist).
327
+ */ async sqrt() {
328
+ await BarretenbergSync.initSingleton();
329
+ const api = BarretenbergSync.getSingleton();
330
+ const response = api.bn254FqSqrt({
331
+ input: this.toBuffer()
332
+ });
333
+ if (!response.isSquareRoot) {
334
+ // Field element is not a quadratic residue mod p so it has no square root.
335
+ return null;
336
+ }
337
+ return Fq.fromBuffer(Buffer.from(response.value));
338
+ }
324
339
  toJSON() {
325
340
  return this.toString();
326
341
  }
342
+ toFields() {
343
+ // The following has to match the order of the limbs in EmbeddedCurveScalar struct in noir::std. This is because
344
+ // this function is used when returning Scalar from the getAddressSecret oracle and in Noir the values get deserialized
345
+ // using the intrinsic serialization of Noir (which follows the order of the fields/members in the struct).
346
+ return [
347
+ this.lo,
348
+ this.hi
349
+ ];
350
+ }
327
351
  static get schema() {
328
352
  return hexSchemaFor(Fq);
329
353
  }
@@ -360,11 +384,10 @@ TypeRegistry.register('Fq', Fq);
360
384
  ];
361
385
  }
362
386
  }
363
- export const GrumpkinScalar = Fq;
364
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) {
365
388
  return (input)=>fromBufferReduce(fn(input), field);
366
389
  }
367
- /** If we are in test mode, we register a special equality for fields. */ if (process.env.NODE_ENV === 'test' && typeof expect !== 'undefined') {
390
+ /** If we are in test mode, we register a special equality for fields. */ if (process.env.NODE_ENV === 'test') {
368
391
  const areFieldsEqual = (a, b)=>{
369
392
  const isAField = a instanceof BaseField;
370
393
  const isBField = b instanceof BaseField;
@@ -376,8 +399,13 @@ export const GrumpkinScalar = Fq;
376
399
  return false;
377
400
  }
378
401
  };
379
- // `addEqualityTesters` doesn't seem to be in the types yet.
380
- expect.addEqualityTesters([
381
- areFieldsEqual
382
- ]);
402
+ if (typeof expect !== 'undefined') {
403
+ // `addEqualityTesters` doesn't seem to be in the types yet.
404
+ expect.addEqualityTesters([
405
+ areFieldsEqual
406
+ ]);
407
+ } else {
408
+ globalThis.__extraEqualityTesters ??= [];
409
+ globalThis.__extraEqualityTesters.push(areFieldsEqual);
410
+ }
383
411
  }
@@ -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,7 +1,5 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
- import { BufferReader, FieldReader } from '../serialize/index.js';
4
- import { Fr } from './fields.js';
1
+ import { BufferReader, FieldReader } from '../../serialize/index.js';
2
+ import { Fr } from '../bn254/field.js';
5
3
  /**
6
4
  * Represents a Point on an elliptic curve with x and y coordinates.
7
5
  * The Point class provides methods for creating instances from different input types,
@@ -9,23 +7,14 @@ import { Fr } from './fields.js';
9
7
  * TODO(#7386): Clean up this class.
10
8
  */
11
9
  export declare class Point {
12
- /**
13
- * The point's x coordinate
14
- */
15
10
  readonly x: Fr;
16
- /**
17
- * The point's y coordinate
18
- */
19
11
  readonly y: Fr;
20
- /**
21
- * Whether the point is at infinity
22
- */
23
12
  readonly isInfinite: boolean;
24
13
  static ZERO: Point;
25
14
  static SIZE_IN_BYTES: number;
26
15
  static COMPRESSED_SIZE_IN_BYTES: number;
27
16
  /** Used to differentiate this class from AztecAddress */
28
- readonly kind = "point";
17
+ readonly kind: string;
29
18
  constructor(
30
19
  /**
31
20
  * The point's x coordinate
@@ -41,6 +30,15 @@ export declare class Point {
41
30
  isInfinite: boolean);
42
31
  toJSON(): `0x${string}`;
43
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;
44
42
  /**
45
43
  * Generate a random Point instance.
46
44
  *
@@ -117,12 +115,12 @@ export declare class Point {
117
115
  * 2. we use toBuffer when serializing notes and events and there we only work with public keys and point at infinity
118
116
  * is not considered a valid public key and the extra byte would raise DA cost.
119
117
  */
120
- toBuffer(): Buffer;
118
+ toBuffer(): Buffer<ArrayBufferLike>;
121
119
  /**
122
120
  * Converts the Point instance to a compressed Buffer representation of the coordinates.
123
121
  * @returns A Buffer representation of the Point instance
124
122
  */
125
- toCompressedBuffer(): Buffer;
123
+ toCompressedBuffer(): Buffer<ArrayBufferLike>;
126
124
  /**
127
125
  * Convert the Point instance to a hexadecimal string representation.
128
126
  * The output string is prefixed with '0x' and consists of exactly 128 hex characters,
@@ -172,4 +170,4 @@ export declare class Point {
172
170
  export declare class NotOnCurveError extends Error {
173
171
  constructor(x: Fr);
174
172
  }
175
- //# 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.
@@ -160,7 +177,7 @@ import { Fr } from './fields.js';
160
177
  * is not considered a valid public key and the extra byte would raise DA cost.
161
178
  */ toBuffer() {
162
179
  if (this.isInfinite) {
163
- throw new Error('Cannot serialize infinite point without isInfinite flag');
180
+ throw new Error('Cannot serialize infinite point with isInfinite flag');
164
181
  }
165
182
  const buf = serializeToBuffer([
166
183
  this.x,
@@ -215,10 +232,10 @@ import { Fr } from './fields.js';
215
232
  /* eslint-enable camelcase */ }
216
233
  // Used for IvpkM, OvpkM, NpkM and TpkM. TODO(#8124): Consider removing this method.
217
234
  toWrappedNoirStruct() {
218
- /* eslint-disable camelcase */ return {
235
+ return {
219
236
  inner: this.toNoirStruct()
220
237
  };
221
- /* eslint-enable camelcase */ }
238
+ }
222
239
  /**
223
240
  * Check if two Point instances are equal by comparing their buffer values.
224
241
  * Returns true if the buffer values are the same, and false otherwise.
@@ -1,2 +1,2 @@
1
1
  export * from './memoize.js';
2
- //# sourceMappingURL=index.d.ts.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNvcmF0b3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDIn0=