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

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 (600) hide show
  1. package/dest/array/array.d.ts +1 -9
  2. package/dest/array/array.d.ts.map +1 -1
  3. package/dest/array/array.js +0 -11
  4. package/dest/array/index.d.ts +2 -1
  5. package/dest/array/index.d.ts.map +1 -1
  6. package/dest/array/index.js +1 -0
  7. package/dest/array/sorted_array.d.ts +15 -0
  8. package/dest/array/sorted_array.d.ts.map +1 -0
  9. package/dest/array/sorted_array.js +109 -0
  10. package/dest/async-map/index.d.ts +1 -1
  11. package/dest/async-pool/index.d.ts +1 -1
  12. package/dest/bigint/index.d.ts +1 -1
  13. package/dest/bigint-buffer/index.d.ts +1 -1
  14. package/dest/bigint-buffer/index.d.ts.map +1 -1
  15. package/dest/bigint-buffer/index.js +6 -1
  16. package/dest/branded-types/block_number.d.ts +56 -0
  17. package/dest/branded-types/block_number.d.ts.map +1 -0
  18. package/dest/branded-types/block_number.js +89 -0
  19. package/dest/branded-types/buffer32_hash.d.ts +27 -0
  20. package/dest/branded-types/buffer32_hash.d.ts.map +1 -0
  21. package/dest/branded-types/buffer32_hash.js +12 -0
  22. package/dest/branded-types/checkpoint_number.d.ts +60 -0
  23. package/dest/branded-types/checkpoint_number.d.ts.map +1 -0
  24. package/dest/branded-types/checkpoint_number.js +88 -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 +8 -0
  29. package/dest/branded-types/index.d.ts.map +1 -0
  30. package/dest/branded-types/index.js +6 -0
  31. package/dest/branded-types/index_within_checkpoint.d.ts +42 -0
  32. package/dest/branded-types/index_within_checkpoint.d.ts.map +1 -0
  33. package/dest/branded-types/index_within_checkpoint.js +59 -0
  34. package/dest/branded-types/slot.d.ts +45 -0
  35. package/dest/branded-types/slot.d.ts.map +1 -0
  36. package/dest/branded-types/slot.js +62 -0
  37. package/dest/branded-types/types.d.ts +5 -0
  38. package/dest/branded-types/types.d.ts.map +1 -0
  39. package/dest/branded-types/types.js +1 -0
  40. package/dest/buffer/buffer16.d.ts +4 -2
  41. package/dest/buffer/buffer16.d.ts.map +1 -1
  42. package/dest/buffer/buffer16.js +4 -2
  43. package/dest/buffer/buffer32.d.ts +29 -62
  44. package/dest/buffer/buffer32.d.ts.map +1 -1
  45. package/dest/buffer/buffer32.js +33 -65
  46. package/dest/buffer/index.d.ts +2 -1
  47. package/dest/buffer/index.d.ts.map +1 -1
  48. package/dest/buffer/index.js +1 -0
  49. package/dest/buffer/utils.d.ts +3 -0
  50. package/dest/buffer/utils.d.ts.map +1 -0
  51. package/dest/buffer/utils.js +7 -0
  52. package/dest/collection/array.d.ts +22 -1
  53. package/dest/collection/array.d.ts.map +1 -1
  54. package/dest/collection/array.js +84 -0
  55. package/dest/collection/index.d.ts +3 -1
  56. package/dest/collection/index.d.ts.map +1 -1
  57. package/dest/collection/index.js +2 -0
  58. package/dest/collection/lru_map.d.ts +41 -0
  59. package/dest/collection/lru_map.d.ts.map +1 -0
  60. package/dest/collection/lru_map.js +119 -0
  61. package/dest/collection/lru_set.d.ts +35 -0
  62. package/dest/collection/lru_set.d.ts.map +1 -0
  63. package/dest/collection/lru_set.js +95 -0
  64. package/dest/collection/object.d.ts +1 -1
  65. package/dest/committable/committable.d.ts +1 -1
  66. package/dest/committable/committable.d.ts.map +1 -1
  67. package/dest/committable/committable.js +1 -1
  68. package/dest/committable/index.d.ts +1 -1
  69. package/dest/config/env_var.d.ts +2 -2
  70. package/dest/config/env_var.d.ts.map +1 -1
  71. package/dest/config/index.d.ts +79 -38
  72. package/dest/config/index.d.ts.map +1 -1
  73. package/dest/config/index.js +103 -64
  74. package/dest/config/network_config.d.ts +17 -31
  75. package/dest/config/network_config.d.ts.map +1 -1
  76. package/dest/config/network_config.js +6 -1
  77. package/dest/config/network_name.d.ts +2 -2
  78. package/dest/config/network_name.d.ts.map +1 -1
  79. package/dest/config/network_name.js +3 -3
  80. package/dest/config/parse-env.d.ts +3 -0
  81. package/dest/config/parse-env.d.ts.map +1 -0
  82. package/dest/config/parse-env.js +7 -0
  83. package/dest/config/secret_value.d.ts +2 -2
  84. package/dest/config/secret_value.d.ts.map +1 -1
  85. package/dest/config/secret_value.js +3 -1
  86. package/dest/crypto/aes128/index.d.ts +2 -1
  87. package/dest/crypto/aes128/index.d.ts.map +1 -1
  88. package/dest/crypto/aes128/index.js +13 -8
  89. package/dest/crypto/bls/bn254_keystore.d.ts +10 -177
  90. package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -1
  91. package/dest/crypto/bls/bn254_keystore.js +23 -35
  92. package/dest/crypto/bls/index.d.ts +1 -1
  93. package/dest/crypto/bls/index.js +1 -1
  94. package/dest/crypto/bn254/index.d.ts +35 -51
  95. package/dest/crypto/bn254/index.d.ts.map +1 -1
  96. package/dest/crypto/bn254/index.js +51 -137
  97. package/dest/crypto/ecdsa/index.d.ts +1 -1
  98. package/dest/crypto/ecdsa/index.d.ts.map +1 -1
  99. package/dest/crypto/ecdsa/index.js +4 -12
  100. package/dest/crypto/ecdsa/signature.d.ts +2 -2
  101. package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
  102. package/dest/crypto/ecdsa/signature.js +2 -2
  103. package/dest/crypto/grumpkin/index.d.ts +4 -2
  104. package/dest/crypto/grumpkin/index.d.ts.map +1 -1
  105. package/dest/crypto/grumpkin/index.js +7 -16
  106. package/dest/crypto/keccak/index.d.ts +1 -1
  107. package/dest/crypto/keys/index.d.ts +4 -3
  108. package/dest/crypto/keys/index.d.ts.map +1 -1
  109. package/dest/crypto/keys/index.js +32 -10
  110. package/dest/crypto/pedersen/index.d.ts +1 -1
  111. package/dest/crypto/pedersen/pedersen.noble.d.ts +1 -1
  112. package/dest/crypto/pedersen/pedersen.wasm.d.ts +2 -2
  113. package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
  114. package/dest/crypto/pedersen/pedersen.wasm.js +4 -10
  115. package/dest/crypto/poseidon/index.d.ts +2 -3
  116. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  117. package/dest/crypto/poseidon/index.js +41 -53
  118. package/dest/crypto/random/index.d.ts +1 -1
  119. package/dest/crypto/random/index.d.ts.map +1 -1
  120. package/dest/crypto/random/randomness_singleton.d.ts +4 -3
  121. package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
  122. package/dest/crypto/random/randomness_singleton.js +5 -5
  123. package/dest/crypto/schnorr/index.d.ts +10 -8
  124. package/dest/crypto/schnorr/index.d.ts.map +1 -1
  125. package/dest/crypto/schnorr/index.js +10 -16
  126. package/dest/crypto/schnorr/signature.d.ts +10 -30
  127. package/dest/crypto/schnorr/signature.d.ts.map +1 -1
  128. package/dest/crypto/schnorr/signature.js +21 -37
  129. package/dest/crypto/secp256k1/index.d.ts +1 -1
  130. package/dest/crypto/secp256k1/index.d.ts.map +1 -1
  131. package/dest/crypto/secp256k1/index.js +3 -9
  132. package/dest/crypto/secp256k1-signer/index.d.ts +1 -1
  133. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts +1 -1
  134. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts.map +1 -1
  135. package/dest/crypto/secp256k1-signer/utils.d.ts +12 -1
  136. package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
  137. package/dest/crypto/secp256k1-signer/utils.js +26 -0
  138. package/dest/crypto/sha256/index.d.ts +2 -2
  139. package/dest/crypto/sha256/index.d.ts.map +1 -1
  140. package/dest/crypto/sha256/index.js +1 -1
  141. package/dest/crypto/sha512/index.d.ts +3 -3
  142. package/dest/crypto/sha512/index.d.ts.map +1 -1
  143. package/dest/crypto/sha512/index.js +1 -1
  144. package/dest/crypto/signature/index.d.ts +2 -2
  145. package/dest/crypto/signature/index.d.ts.map +1 -1
  146. package/dest/crypto/sync/index.d.ts +1 -1
  147. package/dest/crypto/sync/index.js +1 -3
  148. package/dest/crypto/sync/pedersen/index.d.ts +2 -2
  149. package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
  150. package/dest/crypto/sync/pedersen/index.js +1 -1
  151. package/dest/crypto/sync/poseidon/index.d.ts +2 -3
  152. package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
  153. package/dest/crypto/sync/poseidon/index.js +1 -9
  154. package/dest/{fields/bls12_fields.d.ts → curves/bls12/field.d.ts} +5 -5
  155. package/dest/curves/bls12/field.d.ts.map +1 -0
  156. package/dest/{fields/bls12_fields.js → curves/bls12/field.js} +11 -13
  157. package/dest/curves/bls12/index.d.ts +3 -0
  158. package/dest/curves/bls12/index.d.ts.map +1 -0
  159. package/dest/curves/bls12/index.js +2 -0
  160. package/dest/{fields/bls12_point.d.ts → curves/bls12/point.d.ts} +5 -5
  161. package/dest/curves/bls12/point.d.ts.map +1 -0
  162. package/dest/{fields/bls12_point.js → curves/bls12/point.js} +10 -8
  163. package/dest/curves/bn254/field.d.ts +185 -0
  164. package/dest/curves/bn254/field.d.ts.map +1 -0
  165. package/dest/{fields/fields.js → curves/bn254/field.js} +70 -61
  166. package/dest/curves/bn254/index.d.ts +3 -0
  167. package/dest/curves/bn254/index.d.ts.map +1 -0
  168. package/dest/curves/bn254/index.js +2 -0
  169. package/dest/curves/bn254/point.d.ts +54 -0
  170. package/dest/curves/bn254/point.d.ts.map +1 -0
  171. package/dest/curves/bn254/point.js +143 -0
  172. package/dest/curves/grumpkin/index.d.ts +10 -0
  173. package/dest/curves/grumpkin/index.d.ts.map +1 -0
  174. package/dest/curves/grumpkin/index.js +3 -0
  175. package/dest/{fields → curves/grumpkin}/point.d.ts +24 -29
  176. package/dest/curves/grumpkin/point.d.ts.map +1 -0
  177. package/dest/{fields → curves/grumpkin}/point.js +51 -48
  178. package/dest/decorators/index.d.ts +1 -1
  179. package/dest/decorators/memoize.d.ts +1 -1
  180. package/dest/decorators/memoize.d.ts.map +1 -1
  181. package/dest/error/index.d.ts +1 -1
  182. package/dest/eth-address/index.d.ts +13 -3
  183. package/dest/eth-address/index.d.ts.map +1 -1
  184. package/dest/eth-address/index.js +27 -6
  185. package/dest/eth-signature/eth_signature.d.ts +3 -2
  186. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  187. package/dest/eth-signature/eth_signature.js +7 -2
  188. package/dest/eth-signature/index.d.ts +1 -1
  189. package/dest/fifo/fifo_frame_reader.d.ts +41 -0
  190. package/dest/fifo/fifo_frame_reader.d.ts.map +1 -0
  191. package/dest/fifo/fifo_frame_reader.js +91 -0
  192. package/dest/fifo/index.d.ts +2 -0
  193. package/dest/fifo/index.d.ts.map +1 -0
  194. package/dest/fifo/index.js +1 -0
  195. package/dest/fifo_set/fifo_set.d.ts +15 -0
  196. package/dest/fifo_set/fifo_set.d.ts.map +1 -0
  197. package/dest/fifo_set/fifo_set.js +39 -0
  198. package/dest/fifo_set/index.d.ts +2 -0
  199. package/dest/fifo_set/index.d.ts.map +1 -0
  200. package/dest/fifo_set/index.js +1 -0
  201. package/dest/fs/index.d.ts +1 -1
  202. package/dest/fs/run_in_dir.d.ts +1 -1
  203. package/dest/fs/try_rm_dir.d.ts +1 -1
  204. package/dest/iterable/all.d.ts +1 -1
  205. package/dest/iterable/filter.d.ts +1 -1
  206. package/dest/iterable/index.d.ts +1 -1
  207. package/dest/iterable/isAsyncIt.d.ts +1 -1
  208. package/dest/iterable/map.d.ts +1 -1
  209. package/dest/iterable/peek.d.ts +1 -1
  210. package/dest/iterable/sort.d.ts +1 -1
  211. package/dest/iterable/take.d.ts +1 -1
  212. package/dest/iterable/toArray.d.ts +1 -1
  213. package/dest/iterator/filter.d.ts +3 -0
  214. package/dest/iterator/filter.d.ts.map +1 -0
  215. package/dest/iterator/filter.js +7 -0
  216. package/dest/iterator/index.d.ts +2 -0
  217. package/dest/iterator/index.d.ts.map +1 -0
  218. package/dest/iterator/index.js +1 -0
  219. package/dest/jest/setup.js +28 -1
  220. package/dest/json-rpc/client/fetch.d.ts +1 -1
  221. package/dest/json-rpc/client/fetch.d.ts.map +1 -1
  222. package/dest/json-rpc/client/fetch.js +4 -3
  223. package/dest/json-rpc/client/index.d.ts +1 -1
  224. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +2 -1
  225. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
  226. package/dest/json-rpc/client/safe_json_rpc_client.js +3 -3
  227. package/dest/json-rpc/client/undici.d.ts +1 -1
  228. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  229. package/dest/json-rpc/client/undici.js +23 -4
  230. package/dest/json-rpc/convert.d.ts +1 -1
  231. package/dest/json-rpc/errors.d.ts +1 -1
  232. package/dest/json-rpc/errors.d.ts.map +1 -1
  233. package/dest/json-rpc/fixtures/class_a.d.ts +1 -1
  234. package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
  235. package/dest/json-rpc/fixtures/class_b.d.ts +1 -1
  236. package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -1
  237. package/dest/json-rpc/fixtures/test_state.d.ts +4 -8
  238. package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
  239. package/dest/json-rpc/fixtures/test_state.js +57 -17
  240. package/dest/json-rpc/index.d.ts +1 -1
  241. package/dest/json-rpc/js_utils.d.ts +1 -1
  242. package/dest/json-rpc/js_utils.d.ts.map +1 -1
  243. package/dest/json-rpc/server/api_key_auth.d.ts +19 -0
  244. package/dest/json-rpc/server/api_key_auth.d.ts.map +1 -0
  245. package/dest/json-rpc/server/api_key_auth.js +57 -0
  246. package/dest/json-rpc/server/index.d.ts +2 -1
  247. package/dest/json-rpc/server/index.d.ts.map +1 -1
  248. package/dest/json-rpc/server/index.js +1 -0
  249. package/dest/json-rpc/server/safe_json_rpc_server.d.ts +8 -3
  250. package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
  251. package/dest/json-rpc/server/safe_json_rpc_server.js +28 -14
  252. package/dest/json-rpc/test/index.d.ts +1 -1
  253. package/dest/json-rpc/test/integration.d.ts +1 -1
  254. package/dest/log/bigint-utils.d.ts +5 -0
  255. package/dest/log/bigint-utils.d.ts.map +1 -0
  256. package/dest/log/bigint-utils.js +21 -0
  257. package/dest/log/console.d.ts +1 -1
  258. package/dest/log/gcloud-logger-config.d.ts +1 -1
  259. package/dest/log/gcloud-logger-config.d.ts.map +1 -1
  260. package/dest/log/gcloud-logger-config.js +3 -0
  261. package/dest/log/index.d.ts +1 -1
  262. package/dest/log/libp2p_logger.d.ts +5 -2
  263. package/dest/log/libp2p_logger.d.ts.map +1 -1
  264. package/dest/log/libp2p_logger.js +14 -4
  265. package/dest/log/log-filters.d.ts +17 -4
  266. package/dest/log/log-filters.d.ts.map +1 -1
  267. package/dest/log/log-filters.js +26 -12
  268. package/dest/log/log-levels.d.ts +1 -1
  269. package/dest/log/log_fn.d.ts +1 -1
  270. package/dest/log/noir_debug_log_util.d.ts +1 -1
  271. package/dest/log/pino-logger-server.d.ts +9 -0
  272. package/dest/log/pino-logger-server.d.ts.map +1 -0
  273. package/dest/log/pino-logger-server.js +18 -0
  274. package/dest/log/pino-logger.d.ts +38 -9
  275. package/dest/log/pino-logger.d.ts.map +1 -1
  276. package/dest/log/pino-logger.js +138 -30
  277. package/dest/message/index.d.ts +1 -1
  278. package/dest/message/index.d.ts.map +1 -1
  279. package/dest/mutex/index.d.ts +1 -1
  280. package/dest/mutex/index.d.ts.map +1 -1
  281. package/dest/mutex/mutex_database.d.ts +1 -1
  282. package/dest/noir/index.d.ts +1 -1
  283. package/dest/noir/noir_package_config.d.ts +19 -104
  284. package/dest/noir/noir_package_config.d.ts.map +1 -1
  285. package/dest/noir/noir_package_config.js +1 -1
  286. package/dest/number/index.d.ts +1 -1
  287. package/dest/profiler/index.d.ts +1 -1
  288. package/dest/profiler/profiler.d.ts +1 -1
  289. package/dest/promise/index.d.ts +1 -1
  290. package/dest/promise/running-promise.d.ts +5 -4
  291. package/dest/promise/running-promise.d.ts.map +1 -1
  292. package/dest/promise/running-promise.js +7 -3
  293. package/dest/promise/utils.d.ts +1 -1
  294. package/dest/queue/base_memory_queue.d.ts +2 -2
  295. package/dest/queue/base_memory_queue.d.ts.map +1 -1
  296. package/dest/queue/batch_queue.d.ts +1 -1
  297. package/dest/queue/batch_queue.d.ts.map +1 -1
  298. package/dest/queue/batch_queue.js +1 -0
  299. package/dest/queue/bounded_serial_queue.d.ts +1 -1
  300. package/dest/queue/bounded_serial_queue.d.ts.map +1 -1
  301. package/dest/queue/fifo_memory_queue.d.ts +1 -1
  302. package/dest/queue/fifo_memory_queue.d.ts.map +1 -1
  303. package/dest/queue/index.d.ts +1 -1
  304. package/dest/queue/priority_memory_queue.d.ts +1 -1
  305. package/dest/queue/priority_memory_queue.d.ts.map +1 -1
  306. package/dest/queue/priority_queue.d.ts +1 -1
  307. package/dest/queue/priority_queue.d.ts.map +1 -1
  308. package/dest/queue/semaphore.d.ts +5 -1
  309. package/dest/queue/semaphore.d.ts.map +1 -1
  310. package/dest/queue/serial_queue.d.ts +1 -1
  311. package/dest/queue/serial_queue.d.ts.map +1 -1
  312. package/dest/retry/index.d.ts +41 -3
  313. package/dest/retry/index.d.ts.map +1 -1
  314. package/dest/retry/index.js +55 -2
  315. package/dest/running-promise/index.d.ts +1 -1
  316. package/dest/schemas/api.d.ts +12 -10
  317. package/dest/schemas/api.d.ts.map +1 -1
  318. package/dest/schemas/api.js +7 -1
  319. package/dest/schemas/index.d.ts +1 -1
  320. package/dest/schemas/parse.d.ts +4 -4
  321. package/dest/schemas/parse.d.ts.map +1 -1
  322. package/dest/schemas/parse.js +6 -5
  323. package/dest/schemas/schemas.d.ts +26 -28
  324. package/dest/schemas/schemas.d.ts.map +1 -1
  325. package/dest/schemas/schemas.js +14 -10
  326. package/dest/schemas/types.d.ts +32 -2
  327. package/dest/schemas/types.d.ts.map +1 -1
  328. package/dest/schemas/types.js +25 -1
  329. package/dest/schemas/utils.d.ts +10 -14
  330. package/dest/schemas/utils.d.ts.map +1 -1
  331. package/dest/schemas/utils.js +17 -23
  332. package/dest/serialize/buffer_reader.d.ts +14 -4
  333. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  334. package/dest/serialize/buffer_reader.js +26 -4
  335. package/dest/serialize/buffer_sink.d.ts +134 -0
  336. package/dest/serialize/buffer_sink.d.ts.map +1 -0
  337. package/dest/serialize/buffer_sink.js +297 -0
  338. package/dest/serialize/field_reader.d.ts +2 -2
  339. package/dest/serialize/field_reader.d.ts.map +1 -1
  340. package/dest/serialize/field_reader.js +1 -1
  341. package/dest/serialize/free_funcs.d.ts +2 -2
  342. package/dest/serialize/free_funcs.d.ts.map +1 -1
  343. package/dest/serialize/free_funcs.js +1 -1
  344. package/dest/serialize/index.d.ts +2 -1
  345. package/dest/serialize/index.d.ts.map +1 -1
  346. package/dest/serialize/index.js +1 -0
  347. package/dest/serialize/serialize.d.ts +20 -2
  348. package/dest/serialize/serialize.d.ts.map +1 -1
  349. package/dest/serialize/serialize.js +32 -1
  350. package/dest/serialize/type_registry.d.ts +1 -1
  351. package/dest/serialize/type_registry.d.ts.map +1 -1
  352. package/dest/serialize/types.d.ts +1 -1
  353. package/dest/sleep/index.d.ts +4 -1
  354. package/dest/sleep/index.d.ts.map +1 -1
  355. package/dest/sleep/index.js +14 -1
  356. package/dest/string/index.d.ts +1 -1
  357. package/dest/string/index.js +1 -1
  358. package/dest/testing/files/index.d.ts +3 -3
  359. package/dest/testing/files/index.d.ts.map +1 -1
  360. package/dest/testing/files/index.js +2 -3
  361. package/dest/testing/formatting.d.ts +1 -1
  362. package/dest/testing/index.d.ts +1 -1
  363. package/dest/testing/port_allocator.d.ts +1 -1
  364. package/dest/testing/snapshot_serializer.d.ts +1 -1
  365. package/dest/testing/test_data.d.ts +1 -1
  366. package/dest/timer/date.d.ts +26 -1
  367. package/dest/timer/date.d.ts.map +1 -1
  368. package/dest/timer/date.js +36 -0
  369. package/dest/timer/elapsed.d.ts +1 -1
  370. package/dest/timer/index.d.ts +2 -2
  371. package/dest/timer/index.d.ts.map +1 -1
  372. package/dest/timer/index.js +1 -1
  373. package/dest/timer/timeout.d.ts +3 -1
  374. package/dest/timer/timeout.d.ts.map +1 -1
  375. package/dest/timer/timeout.js +26 -0
  376. package/dest/timer/timer.d.ts +1 -1
  377. package/dest/timer/timer.d.ts.map +1 -1
  378. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +11 -2
  379. package/dest/transport/dispatch/create_dispatch_proxy.d.ts.map +1 -1
  380. package/dest/transport/dispatch/messages.d.ts +1 -1
  381. package/dest/transport/index.d.ts +1 -2
  382. package/dest/transport/index.d.ts.map +1 -1
  383. package/dest/transport/index.js +0 -1
  384. package/dest/transport/interface/connector.d.ts +1 -1
  385. package/dest/transport/interface/listener.d.ts +1 -1
  386. package/dest/transport/interface/socket.d.ts +1 -1
  387. package/dest/transport/interface/transferable.d.ts +1 -1
  388. package/dest/transport/node/index.d.ts +1 -1
  389. package/dest/transport/node/node_connector.d.ts +1 -1
  390. package/dest/transport/node/node_connector.d.ts.map +1 -1
  391. package/dest/transport/node/node_connector_socket.d.ts +1 -1
  392. package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
  393. package/dest/transport/node/node_listener.d.ts +1 -1
  394. package/dest/transport/node/node_listener.d.ts.map +1 -1
  395. package/dest/transport/node/node_listener_socket.d.ts +1 -1
  396. package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
  397. package/dest/transport/transport_client.d.ts +1 -1
  398. package/dest/transport/transport_client.d.ts.map +1 -1
  399. package/dest/transport/transport_client.js +2 -2
  400. package/dest/transport/transport_server.d.ts +1 -10
  401. package/dest/transport/transport_server.d.ts.map +1 -1
  402. package/dest/trees/balanced_merkle_tree_root.d.ts +16 -0
  403. package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -0
  404. package/dest/trees/balanced_merkle_tree_root.js +50 -0
  405. package/dest/trees/hasher.d.ts +4 -1
  406. package/dest/trees/hasher.d.ts.map +1 -1
  407. package/dest/trees/hasher.js +10 -5
  408. package/dest/trees/index.d.ts +4 -3
  409. package/dest/trees/index.d.ts.map +1 -1
  410. package/dest/trees/index.js +3 -2
  411. package/dest/trees/indexed_merkle_tree.d.ts +1 -1
  412. package/dest/trees/indexed_merkle_tree.d.ts.map +1 -1
  413. package/dest/trees/indexed_merkle_tree.js +1 -1
  414. package/dest/trees/indexed_merkle_tree_calculator.d.ts +1 -1
  415. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
  416. package/dest/trees/indexed_merkle_tree_calculator.js +5 -1
  417. package/dest/trees/indexed_tree_leaf.d.ts +1 -1
  418. package/dest/trees/membership_witness.d.ts +3 -18
  419. package/dest/trees/membership_witness.d.ts.map +1 -1
  420. package/dest/trees/membership_witness.js +1 -1
  421. package/dest/trees/merkle_tree.d.ts +1 -1
  422. package/dest/trees/merkle_tree.d.ts.map +1 -1
  423. package/dest/trees/merkle_tree_calculator.d.ts +4 -12
  424. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  425. package/dest/trees/merkle_tree_calculator.js +1 -35
  426. package/dest/trees/sibling_path.d.ts +6 -38
  427. package/dest/trees/sibling_path.d.ts.map +1 -1
  428. package/dest/trees/sibling_path.js +11 -9
  429. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +6 -6
  430. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -1
  431. package/dest/trees/unbalanced_merkle_tree_calculator.js +34 -42
  432. package/dest/trees/unbalanced_merkle_tree_root.d.ts +27 -0
  433. package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -0
  434. package/dest/trees/unbalanced_merkle_tree_root.js +83 -0
  435. package/dest/trees/unbalanced_tree_store.d.ts +5 -1
  436. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
  437. package/dest/trees/unbalanced_tree_store.js +49 -1
  438. package/dest/types/index.d.ts +28 -2
  439. package/dest/types/index.d.ts.map +1 -1
  440. package/dest/types/index.js +21 -0
  441. package/dest/url/index.d.ts +1 -1
  442. package/dest/validation/index.d.ts +1 -1
  443. package/package.json +54 -11
  444. package/src/array/array.ts +0 -16
  445. package/src/array/index.ts +1 -0
  446. package/src/array/sorted_array.ts +138 -0
  447. package/src/bigint-buffer/index.ts +6 -1
  448. package/src/branded-types/block_number.ts +135 -0
  449. package/src/branded-types/buffer32_hash.ts +38 -0
  450. package/src/branded-types/checkpoint_number.ts +130 -0
  451. package/src/branded-types/epoch.ts +88 -0
  452. package/src/branded-types/index.ts +8 -0
  453. package/src/branded-types/index_within_checkpoint.ts +88 -0
  454. package/src/branded-types/slot.ts +93 -0
  455. package/src/branded-types/types.ts +2 -0
  456. package/src/buffer/buffer16.ts +5 -2
  457. package/src/buffer/buffer32.ts +41 -70
  458. package/src/buffer/index.ts +1 -0
  459. package/src/buffer/utils.ts +8 -0
  460. package/src/collection/array.ts +86 -0
  461. package/src/collection/index.ts +2 -0
  462. package/src/collection/lru_map.ts +143 -0
  463. package/src/collection/lru_set.ts +115 -0
  464. package/src/committable/committable.ts +1 -1
  465. package/src/config/env_var.ts +138 -35
  466. package/src/config/index.ts +183 -114
  467. package/src/config/network_config.ts +5 -0
  468. package/src/config/network_name.ts +6 -6
  469. package/src/config/parse-env.ts +4 -0
  470. package/src/config/secret_value.ts +1 -1
  471. package/src/crypto/aes128/index.ts +13 -4
  472. package/src/crypto/bls/bn254_keystore.ts +34 -44
  473. package/src/crypto/bls/index.ts +1 -1
  474. package/src/crypto/bn254/index.ts +50 -156
  475. package/src/crypto/ecdsa/index.ts +4 -4
  476. package/src/crypto/ecdsa/signature.ts +2 -2
  477. package/src/crypto/grumpkin/index.ts +8 -6
  478. package/src/crypto/keys/index.ts +22 -6
  479. package/src/crypto/pedersen/pedersen.wasm.ts +4 -4
  480. package/src/crypto/poseidon/index.ts +43 -45
  481. package/src/crypto/random/randomness_singleton.ts +6 -4
  482. package/src/crypto/schnorr/index.ts +14 -12
  483. package/src/crypto/schnorr/signature.ts +18 -47
  484. package/src/crypto/secp256k1/index.ts +3 -3
  485. package/src/crypto/secp256k1-signer/utils.ts +32 -0
  486. package/src/crypto/sha256/index.ts +1 -1
  487. package/src/crypto/sha512/index.ts +1 -1
  488. package/src/crypto/signature/index.ts +1 -1
  489. package/src/crypto/sync/index.ts +1 -1
  490. package/src/crypto/sync/pedersen/index.ts +1 -1
  491. package/src/crypto/sync/poseidon/index.ts +1 -10
  492. package/src/{fields/bls12_fields.ts → curves/bls12/field.ts} +5 -12
  493. package/src/curves/bls12/index.ts +2 -0
  494. package/src/{fields/bls12_point.ts → curves/bls12/point.ts} +7 -7
  495. package/src/{fields/fields.ts → curves/bn254/field.ts} +82 -84
  496. package/src/curves/bn254/index.ts +2 -0
  497. package/src/curves/bn254/point.ts +170 -0
  498. package/src/curves/grumpkin/index.ts +11 -0
  499. package/src/{fields → curves/grumpkin}/point.ts +47 -45
  500. package/src/eth-address/index.ts +27 -6
  501. package/src/eth-signature/eth_signature.ts +7 -1
  502. package/src/fifo/fifo_frame_reader.ts +113 -0
  503. package/src/fifo/index.ts +1 -0
  504. package/src/fifo_set/fifo_set.ts +52 -0
  505. package/src/fifo_set/index.ts +1 -0
  506. package/src/iterator/filter.ts +11 -0
  507. package/src/iterator/index.ts +1 -0
  508. package/src/jest/setup.mjs +31 -1
  509. package/src/json-rpc/client/fetch.ts +4 -3
  510. package/src/json-rpc/client/safe_json_rpc_client.ts +4 -2
  511. package/src/json-rpc/client/undici.ts +23 -3
  512. package/src/json-rpc/fixtures/test_state.ts +10 -10
  513. package/src/json-rpc/server/api_key_auth.ts +63 -0
  514. package/src/json-rpc/server/index.ts +1 -0
  515. package/src/json-rpc/server/safe_json_rpc_server.ts +32 -14
  516. package/src/log/bigint-utils.ts +25 -0
  517. package/src/log/gcloud-logger-config.ts +5 -0
  518. package/src/log/libp2p_logger.ts +12 -5
  519. package/src/log/log-filters.ts +29 -11
  520. package/src/log/pino-logger-server.ts +25 -0
  521. package/src/log/pino-logger.ts +162 -40
  522. package/src/noir/noir_package_config.ts +32 -20
  523. package/src/promise/running-promise.ts +8 -5
  524. package/src/queue/base_memory_queue.ts +1 -1
  525. package/src/queue/batch_queue.ts +1 -0
  526. package/src/queue/semaphore.ts +5 -0
  527. package/src/retry/index.ts +84 -4
  528. package/src/schemas/api.ts +25 -25
  529. package/src/schemas/parse.ts +9 -6
  530. package/src/schemas/schemas.ts +27 -16
  531. package/src/schemas/types.ts +34 -1
  532. package/src/schemas/utils.ts +25 -46
  533. package/src/serialize/buffer_reader.ts +36 -9
  534. package/src/serialize/buffer_sink.ts +350 -0
  535. package/src/serialize/field_reader.ts +1 -1
  536. package/src/serialize/free_funcs.ts +1 -1
  537. package/src/serialize/index.ts +1 -0
  538. package/src/serialize/serialize.ts +33 -1
  539. package/src/sleep/index.ts +16 -1
  540. package/src/string/index.ts +1 -1
  541. package/src/testing/files/index.ts +2 -3
  542. package/src/timer/date.ts +52 -0
  543. package/src/timer/index.ts +1 -1
  544. package/src/timer/timeout.ts +31 -0
  545. package/src/transport/dispatch/create_dispatch_proxy.ts +11 -1
  546. package/src/transport/index.ts +0 -1
  547. package/src/transport/transport_client.ts +2 -2
  548. package/src/trees/balanced_merkle_tree_root.ts +65 -0
  549. package/src/trees/hasher.ts +12 -0
  550. package/src/trees/index.ts +3 -2
  551. package/src/trees/indexed_merkle_tree.ts +1 -1
  552. package/src/trees/indexed_merkle_tree_calculator.ts +5 -1
  553. package/src/trees/membership_witness.ts +1 -1
  554. package/src/trees/merkle_tree_calculator.ts +4 -43
  555. package/src/trees/sibling_path.ts +12 -7
  556. package/src/trees/unbalanced_merkle_tree_calculator.ts +32 -50
  557. package/src/trees/unbalanced_merkle_tree_root.ts +112 -0
  558. package/src/trees/unbalanced_tree_store.ts +57 -2
  559. package/src/types/index.ts +58 -1
  560. package/dest/crypto/bn254/bn254_utils.d.ts +0 -39
  561. package/dest/crypto/bn254/bn254_utils.d.ts.map +0 -1
  562. package/dest/crypto/bn254/bn254_utils.js +0 -56
  563. package/dest/crypto/index.d.ts +0 -17
  564. package/dest/crypto/index.d.ts.map +0 -1
  565. package/dest/crypto/index.js +0 -16
  566. package/dest/crypto/serialize.d.ts +0 -51
  567. package/dest/crypto/serialize.d.ts.map +0 -1
  568. package/dest/crypto/serialize.js +0 -68
  569. package/dest/fields/bls12_fields.d.ts.map +0 -1
  570. package/dest/fields/bls12_point.d.ts.map +0 -1
  571. package/dest/fields/coordinate.d.ts +0 -66
  572. package/dest/fields/coordinate.d.ts.map +0 -1
  573. package/dest/fields/coordinate.js +0 -96
  574. package/dest/fields/fields.d.ts +0 -179
  575. package/dest/fields/fields.d.ts.map +0 -1
  576. package/dest/fields/index.d.ts +0 -6
  577. package/dest/fields/index.d.ts.map +0 -1
  578. package/dest/fields/index.js +0 -5
  579. package/dest/fields/point.d.ts.map +0 -1
  580. package/dest/index.d.ts +0 -30
  581. package/dest/index.d.ts.map +0 -1
  582. package/dest/index.js +0 -30
  583. package/dest/json-rpc/server/telemetry.d.ts +0 -2
  584. package/dest/json-rpc/server/telemetry.d.ts.map +0 -1
  585. package/dest/json-rpc/server/telemetry.js +0 -0
  586. package/dest/transport/dispatch/create_dispatch_fn.d.ts +0 -25
  587. package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +0 -1
  588. package/dest/transport/dispatch/create_dispatch_fn.js +0 -17
  589. package/dest/trees/unbalanced_merkle_tree.d.ts +0 -28
  590. package/dest/trees/unbalanced_merkle_tree.d.ts.map +0 -1
  591. package/dest/trees/unbalanced_merkle_tree.js +0 -99
  592. package/src/crypto/bn254/bn254_utils.ts +0 -64
  593. package/src/crypto/index.ts +0 -16
  594. package/src/crypto/serialize.ts +0 -85
  595. package/src/fields/coordinate.ts +0 -104
  596. package/src/fields/index.ts +0 -5
  597. package/src/index.ts +0 -30
  598. package/src/json-rpc/server/telemetry.ts +0 -0
  599. package/src/transport/dispatch/create_dispatch_fn.ts +0 -35
  600. package/src/trees/unbalanced_merkle_tree.ts +0 -111
@@ -1,11 +1,11 @@
1
- /* eslint-disable camelcase */ import { bls12_381 } from '@noble/curves/bls12-381';
1
+ /* eslint-disable camelcase */ var _computedKey, _computedKey1;
2
+ import { bls12_381 } from '@noble/curves/bls12-381';
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
- import { Fr } from './fields.js';
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 { Fr } from '../bn254/field.js';
9
9
  /**
10
10
  * Base BLS12field class.
11
11
  */ export class BLS12Field {
@@ -124,6 +124,7 @@ import { Fr } from './fields.js';
124
124
  }
125
125
  return Buffer.from(checked.length % 2 === 1 ? '0' + checked : checked, 'hex');
126
126
  }
127
+ _computedKey = inspect.custom;
127
128
  /**
128
129
  * Fr field class.
129
130
  * @dev This class is used to represent elements of BLS12-381 scalar field.
@@ -136,7 +137,7 @@ import { Fr } from './fields.js';
136
137
  constructor(value){
137
138
  super(value);
138
139
  }
139
- [inspect.custom]() {
140
+ [_computedKey]() {
140
141
  return `BLS12Fr<${this.toString()}>`;
141
142
  }
142
143
  modulus() {
@@ -249,8 +250,7 @@ import { Fr } from './fields.js';
249
250
  return hexSchemaFor(BLS12Fr);
250
251
  }
251
252
  }
252
- // For deserializing JSON.
253
- TypeRegistry.register('BLS12Fr', BLS12Fr);
253
+ _computedKey1 = inspect.custom;
254
254
  /**
255
255
  * Fq field class.
256
256
  * @dev This class is used to represent elements of BLS12-381 base field.
@@ -263,7 +263,7 @@ TypeRegistry.register('BLS12Fr', BLS12Fr);
263
263
  constructor(value){
264
264
  super(value);
265
265
  }
266
- [inspect.custom]() {
266
+ [_computedKey1]() {
267
267
  return `BLS12Fq<${this.toString()}>`;
268
268
  }
269
269
  modulus() {
@@ -355,5 +355,3 @@ TypeRegistry.register('BLS12Fr', BLS12Fr);
355
355
  return hexSchemaFor(BLS12Fq);
356
356
  }
357
357
  }
358
- // For deserializing JSON.
359
- TypeRegistry.register('BLS12Fq', BLS12Fq);
@@ -0,0 +1,3 @@
1
+ export * from './field.js';
2
+ export * from './point.js';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvYmxzMTIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxZQUFZLENBQUMifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/curves/bls12/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './field.js';
2
+ export * from './point.js';
@@ -1,8 +1,8 @@
1
1
  import type { ProjPointType } from '@noble/curves/abstract/weierstrass';
2
2
  import { inspect } from 'util';
3
- import { BufferReader } from '../serialize/index.js';
4
- import { BLS12Fq, BLS12Fr } from './bls12_fields.js';
5
- import { Fr } from './fields.js';
3
+ import { BufferReader } from '../../serialize/index.js';
4
+ import { Fr } from '../bn254/field.js';
5
+ import { BLS12Fq, BLS12Fr } from './field.js';
6
6
  /**
7
7
  * Represents a Point on an elliptic curve with x and y coordinates.
8
8
  * The Point class provides methods for creating instances from different input types,
@@ -42,7 +42,7 @@ export declare class BLS12Point {
42
42
  isInfinite: boolean);
43
43
  toJSON(): `0x${string}`;
44
44
  [inspect.custom](): string;
45
- static get schema(): import("zod").ZodType<BLS12Point, any, string>;
45
+ static get schema(): import("zod").ZodType<BLS12Point, string, import("zod/v4/core").$ZodTypeInternals<BLS12Point, string>>;
46
46
  /**
47
47
  * Generate a random Point instance.
48
48
  *
@@ -226,4 +226,4 @@ export declare class BLS12Point {
226
226
  export declare class BLSPointNotOnCurveError extends Error {
227
227
  constructor(x: BLS12Fq, y?: BLS12Fq);
228
228
  }
229
- //# sourceMappingURL=bls12_point.d.ts.map
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvYmxzMTIvcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFHeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUsvQixPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLDBCQUEwQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUU5Qzs7Ozs7R0FLRztBQUNILHFCQUFhLFVBQVU7SUFRbkI7O09BRUc7YUFDYSxDQUFDLEVBQUUsT0FBTztJQUMxQjs7T0FFRzthQUNhLENBQUMsRUFBRSxPQUFPO0lBQzFCOztPQUVHO2FBQ2EsVUFBVSxFQUFFLE9BQU87SUFsQnJDLE1BQU0sQ0FBQyxJQUFJLGFBQW9EO0lBQy9ELE1BQU0sQ0FBQyxHQUFHLGFBQWlHO0lBQzNHLE1BQU0sQ0FBQyxhQUFhLFNBQTZCO0lBQ2pELE1BQU0sQ0FBQyx3QkFBd0IsU0FBeUI7SUFDeEQsTUFBTSxDQUFDLGVBQWUsMEJBQXNGO0lBRTVHO0lBQ0U7O09BRUc7SUFDYSxDQUFDLEVBQUUsT0FBTztJQUMxQjs7T0FFRztJQUNhLENBQUMsRUFBRSxPQUFPO0lBQzFCOztPQUVHO0lBQ2EsVUFBVSxFQUFFLE9BQU8sRUFRcEM7SUFFRCxNQUFNLGtCQUVMO0lBRUQsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBTWY7SUFFRCxNQUFNLEtBQUssTUFBTSwyR0FFaEI7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLE1BQU0sZUFZWjtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLGNBSTlDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sY0FFNUI7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxRQUFRLElBQUksTUFBTSxDQU1qQjtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxVQUFVLENBcUI1QztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsYUFBYSxTQUdaO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsY0FFdEM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxjQUV6QztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxjQU8zRDtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxjQWM1QztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLE9BQU8sR0FBRyxPQUFPLENBRXhDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsT0FBTyxHQUFHLE9BQU8sR0FBRyxJQUFJLENBS3hDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxXQVd0QztJQUVEOzs7T0FHRztJQUNILGVBQWUsY0FFZDtJQUVEOzs7O09BSUc7SUFDSCxVQUFVLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBRS9CO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUzs7OztNQU1SO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsNEJBTVA7SUFFRDs7Ozs7O09BTUc7SUFDSCxRQUFRLGtCQUVQO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLEdBQUcsRUFBRSxVQUFVLFdBRXJCO0lBRUQ7O09BRUc7SUFDSCxNQUFNLFlBRUw7SUFFRDs7O09BR0c7SUFDSCxJQUFXLEdBQUcsWUFFYjtJQUVELCtDQUErQztJQUUvQyxzQkFBc0IsMEJBRXJCO0lBRUQsR0FBRyxDQUFDLEdBQUcsRUFBRSxVQUFVLGNBRWxCO0lBRUQsTUFBTSxlQUVMO0lBRUQsR0FBRyxDQUFDLEdBQUcsRUFBRSxVQUFVLGNBRWxCO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILEdBQUcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxjQU1mO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsU0FBUyxDQUFDLEdBQUcsRUFBRSxPQUFPLGNBRXJCO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxVQUFVLGNBT3BEO0NBQ0Y7QUFFRCxxQkFBYSx1QkFBd0IsU0FBUSxLQUFLO0lBQ2hELFlBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBR2xDO0NBQ0YifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/curves/bls12/point.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,14 @@
1
+ var _computedKey;
1
2
  /* eslint-disable camelcase */ import { bls12_381 } from '@noble/curves/bls12-381';
2
3
  import { inspect } from 'util';
3
- import { toBufferBE } from '../bigint-buffer/index.js';
4
- import { randomBoolean } from '../crypto/random/index.js';
5
- import { hexSchemaFor } from '../schemas/utils.js';
6
- import { BufferReader, serializeToBuffer } from '../serialize/index.js';
7
- import { bufferToHex, hexToBuffer } from '../string/index.js';
8
- import { BLS12Fq } from './bls12_fields.js';
9
- import { Fr } from './fields.js';
4
+ import { toBufferBE } from '../../bigint-buffer/index.js';
5
+ import { randomBoolean } from '../../crypto/random/index.js';
6
+ import { hexSchemaFor } from '../../schemas/utils.js';
7
+ import { BufferReader, serializeToBuffer } from '../../serialize/index.js';
8
+ import { bufferToHex, hexToBuffer } from '../../string/index.js';
9
+ import { Fr } from '../bn254/field.js';
10
+ import { BLS12Fq } from './field.js';
11
+ _computedKey = inspect.custom;
10
12
  /**
11
13
  * Represents a Point on an elliptic curve with x and y coordinates.
12
14
  * The Point class provides methods for creating instances from different input types,
@@ -44,7 +46,7 @@ import { Fr } from './fields.js';
44
46
  toJSON() {
45
47
  return this.toString();
46
48
  }
47
- [inspect.custom]() {
49
+ [_computedKey]() {
48
50
  return `BLS12Point {
49
51
  x: ${inspect(this.x)},
50
52
  y: ${inspect(this.y)},
@@ -0,0 +1,185 @@
1
+ import { inspect } from 'util';
2
+ import { BufferReader } from '../../serialize/buffer_reader.js';
3
+ import type { BufferSink } from '../../serialize/buffer_sink.js';
4
+ /**
5
+ * Represents a field derived from BaseField.
6
+ */
7
+ type DerivedField<T extends BaseField> = {
8
+ new (value: any): T;
9
+ /**
10
+ * All derived fields will specify a MODULUS.
11
+ */
12
+ MODULUS: bigint;
13
+ };
14
+ /**
15
+ * Base field class.
16
+ * Uses bigint as the internal representation.
17
+ * Buffers are generated on demand from the bigint value.
18
+ */
19
+ declare abstract class BaseField {
20
+ static SIZE_IN_BYTES: number;
21
+ private readonly asBigInt;
22
+ /**
23
+ * Return bigint representation.
24
+ * @deprecated Just to get things compiling. Use toBigInt().
25
+ * */
26
+ get value(): bigint;
27
+ /** Returns the size in bytes. */
28
+ get size(): number;
29
+ protected constructor(value: number | bigint | boolean | BaseField | Buffer);
30
+ protected abstract modulus(): bigint;
31
+ /**
32
+ * Converts the bigint to a Buffer. With a sink, streams the 32 big-endian bytes straight in (no allocation)
33
+ * and returns undefined; without one, returns a freshly allocated buffer.
34
+ */
35
+ toBuffer(): Buffer;
36
+ toBuffer(sink: BufferSink): void;
37
+ toString(): `0x${string}`;
38
+ toBigInt(): bigint;
39
+ toBool(): boolean;
40
+ /**
41
+ * Converts this field to a number.
42
+ * Throws if the underlying value is greater than MAX_SAFE_INTEGER.
43
+ */
44
+ toNumber(): number;
45
+ /**
46
+ * Converts this field to a number.
47
+ * May cause loss of precision if the underlying value is greater than MAX_SAFE_INTEGER.
48
+ */
49
+ toNumberUnsafe(): number;
50
+ toShortString(): string;
51
+ equals(rhs: BaseField): boolean;
52
+ lt(rhs: BaseField): boolean;
53
+ cmp(rhs: BaseField): -1 | 0 | 1;
54
+ static cmp(lhs: BaseField, rhs: BaseField): -1 | 0 | 1;
55
+ static cmpAsBigInt(lhs: bigint, rhs: bigint): -1 | 0 | 1;
56
+ isZero(): boolean;
57
+ isEmpty(): boolean;
58
+ toFriendlyJSON(): string;
59
+ toField(): this;
60
+ }
61
+ /**
62
+ * Constructs a field from a Buffer of BufferReader.
63
+ * It maybe not read the full 32 bytes if the Buffer is shorter, but it will padded in BaseField constructor.
64
+ */
65
+ export declare function fromBuffer<T extends BaseField>(buffer: Buffer | BufferReader, f: DerivedField<T>): T;
66
+ /**
67
+ * Abstract unbranded base class for BN254 scalar field elements.
68
+ * Extend this instead of Fr when defining a branded subtype (e.g. BlockHash)
69
+ * to avoid inheriting Fr's `_branding`.
70
+ */
71
+ export declare abstract class BaseFr extends BaseField {
72
+ static MODULUS: bigint;
73
+ constructor(value: number | bigint | boolean | BaseField | Buffer);
74
+ protected modulus(): bigint;
75
+ toJSON(): `0x${string}`;
76
+ }
77
+ /**
78
+ * Fr field class.
79
+ * @dev This class is used to represent elements of BN254 scalar field or elements in the base field of Grumpkin.
80
+ * (Grumpkin's scalar field corresponds to BN254's base field and vice versa.)
81
+ */
82
+ export declare class Fr extends BaseFr {
83
+ /** Branding for nominal typing. */
84
+ private readonly _branding;
85
+ static MODULUS: bigint;
86
+ static ZERO: Fr;
87
+ static ONE: Fr;
88
+ static MAX_FIELD_VALUE: Fr;
89
+ constructor(value: number | bigint | boolean | Fr | Buffer);
90
+ [inspect.custom](): string;
91
+ static random(): Fr;
92
+ static zero(): Fr;
93
+ static isZero(value: Fr): boolean;
94
+ static fromBuffer(buffer: Buffer | BufferReader): Fr;
95
+ static fromBufferReduce(buffer: Buffer): Fr;
96
+ /**
97
+ * Creates a Fr instance from a string.
98
+ * @param buf - the string to create a Fr from.
99
+ * @returns the Fr instance
100
+ * @remarks if the string only consists of numbers, we assume we are parsing a bigint,
101
+ * otherwise we require the hex string to be prepended with "0x", to ensure there is no misunderstanding
102
+ * as to what is being parsed.
103
+ */
104
+ static fromString(buf: string): Fr;
105
+ /**
106
+ * Creates a Fr instance from a hex string.
107
+ * @param buf - a hex encoded string.
108
+ * @returns the Fr instance
109
+ */
110
+ static fromHexString(buf: string): Fr;
111
+ /** Arithmetic */
112
+ add(rhs: Fr): Fr;
113
+ square(): Fr;
114
+ negate(): Fr;
115
+ sub(rhs: Fr): Fr;
116
+ mul(rhs: Fr): Fr;
117
+ div(rhs: Fr): Fr;
118
+ ediv(rhs: Fr): Fr;
119
+ /**
120
+ * Computes a square root of the field element.
121
+ * @returns A square root of the field element (null if it does not exist).
122
+ */
123
+ sqrt(): Promise<Fr | null>;
124
+ /**
125
+ * Creates an Fr instance from a plain object without Zod validation.
126
+ * This method is optimized for performance and skips validation, making it suitable
127
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
128
+ * Handles buffers, strings, numbers, bigints, or existing instances.
129
+ * @param obj - Plain object, buffer, string, number, bigint, boolean, or Fr instance
130
+ * @returns An Fr instance
131
+ */
132
+ static fromPlainObject(obj: any): Fr;
133
+ static get schema(): import("zod").ZodType<Fr, string, import("zod/v4/core").$ZodTypeInternals<Fr, string>>;
134
+ }
135
+ /**
136
+ * Fq field class.
137
+ * @dev This class is used to represent elements of BN254 base field or elements in the scalar field of Grumpkin.
138
+ * (Grumpkin's scalar field corresponds to BN254's base field and vice versa.)
139
+ */
140
+ export declare class Fq extends BaseField {
141
+ /** Branding for nominal typing. */
142
+ private readonly _branding;
143
+ static ZERO: Fq;
144
+ static MODULUS: bigint;
145
+ private static HIGH_SHIFT;
146
+ private static LOW_MASK;
147
+ [inspect.custom](): string;
148
+ get lo(): Fr;
149
+ get hi(): Fr;
150
+ constructor(value: number | bigint | boolean | Fq | Buffer);
151
+ protected modulus(): bigint;
152
+ static random(): Fq;
153
+ static zero(): Fq;
154
+ static fromBuffer(buffer: Buffer | BufferReader): Fq;
155
+ static fromBufferReduce(buffer: Buffer): Fq;
156
+ /**
157
+ * Creates a Fq instance from a string.
158
+ * @param buf - the string to create a Fq from.
159
+ * @returns the Fq instance
160
+ * @remarks if the string only consists of numbers, we assume we are parsing a bigint,
161
+ * otherwise we require the hex string to be prepended with "0x", to ensure there is no misunderstanding
162
+ * as to what is being parsed.
163
+ */
164
+ static fromString(buf: string): Fq;
165
+ /**
166
+ * Creates a Fq instance from a hex string.
167
+ * @param buf - a hex encoded string.
168
+ * @returns the Fq instance
169
+ */
170
+ static fromHexString(buf: string): Fq;
171
+ static fromHighLow(high: Fr, low: Fr): Fq;
172
+ add(rhs: Fq): Fq;
173
+ /**
174
+ * Computes a square root of the field element.
175
+ * @returns A square root of the field element (null if it does not exist).
176
+ */
177
+ sqrt(): Promise<Fq | null>;
178
+ toJSON(): `0x${string}`;
179
+ toFields(): Fr[];
180
+ static get schema(): import("zod").ZodType<Fq, string, import("zod/v4/core").$ZodTypeInternals<Fq, string>>;
181
+ }
182
+ /** Wraps a function that returns a buffer so that all results are reduced into a field of the given type. */
183
+ export declare function reduceFn<TInput, TField extends BaseField>(fn: (input: TInput) => Buffer, field: DerivedField<TField>): (input: TInput) => TField;
184
+ export {};
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvYm4yNTQvZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUsvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFakU7O0dBRUc7QUFDSCxLQUFLLFlBQVksQ0FBQyxDQUFDLFNBQVMsU0FBUyxJQUFJO0lBQ3ZDLEtBQUssS0FBSyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDcEI7O09BRUc7SUFDSCxPQUFPLEVBQUUsTUFBTSxDQUFDO0NBQ2pCLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsdUJBQWUsU0FBUztJQUN0QixNQUFNLENBQUMsYUFBYSxTQUFNO0lBQzFCLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFTO0lBRWxDOzs7U0FHSztJQUNMLElBQUksS0FBSyxJQUFJLE1BQU0sQ0FFbEI7SUFFRCxpQ0FBaUM7SUFDakMsSUFBSSxJQUFJLElBQUksTUFBTSxDQUVqQjtJQUVELFNBQVMsYUFBYSxLQUFLLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxPQUFPLEdBQUcsU0FBUyxHQUFHLE1BQU0sRUFtQjFFO0lBRUQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDO0lBRXJDOzs7T0FHRztJQUNILFFBQVEsSUFBSSxNQUFNLENBQUM7SUFDbkIsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBUWpDLFFBQVEsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUV4QjtJQUVELFFBQVEsSUFBSSxNQUFNLENBRWpCO0lBRUQsTUFBTSxJQUFJLE9BQU8sQ0FFaEI7SUFFRDs7O09BR0c7SUFDSCxRQUFRLElBQUksTUFBTSxD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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/curves/bn254/field.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,16 @@
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';
9
8
  /**
10
9
  * 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.
10
+ * Uses bigint as the internal representation.
11
+ * Buffers are generated on demand from the bigint value.
14
12
  */ class BaseField {
15
13
  static SIZE_IN_BYTES = 32;
16
- asBuffer;
17
14
  asBigInt;
18
15
  /**
19
16
  * Return bigint representation.
@@ -29,81 +26,72 @@ const ZERO_BUFFER = Buffer.alloc(32);
29
26
  if (value.length > BaseField.SIZE_IN_BYTES) {
30
27
  throw new Error(`Value length ${value.length} exceeds ${BaseField.SIZE_IN_BYTES}`);
31
28
  }
32
- this.asBuffer = value.length === BaseField.SIZE_IN_BYTES ? value : Buffer.concat([
33
- Buffer.alloc(BaseField.SIZE_IN_BYTES - value.length),
34
- value
35
- ]);
29
+ this.asBigInt = toBigIntBE(value);
36
30
  } else if (typeof value === 'bigint' || typeof value === 'number' || typeof value === 'boolean') {
37
31
  this.asBigInt = BigInt(value);
38
- if (this.asBigInt >= this.modulus()) {
39
- throw new Error(`Value 0x${this.asBigInt.toString(16)} is greater or equal to field modulus.`);
40
- } else if (this.asBigInt < 0n) {
41
- throw new Error(`Value 0x${this.asBigInt.toString(16)} is negative.`);
42
- }
43
32
  } else if (value instanceof BaseField) {
44
- this.asBuffer = value.asBuffer;
45
33
  this.asBigInt = value.asBigInt;
46
34
  } else {
47
35
  throw new Error(`Type '${typeof value}' with value '${value}' passed to BaseField ctor.`);
48
36
  }
37
+ if (this.asBigInt < 0n) {
38
+ throw new Error(`Value 0x${this.asBigInt.toString(16)} is negative.`);
39
+ } else if (this.asBigInt >= this.modulus()) {
40
+ throw new Error(`Value 0x${this.asBigInt.toString(16)} is greater or equal to field modulus.`);
41
+ }
49
42
  }
50
- /**
51
- * We return a copy of the Buffer to ensure this remains immutable.
52
- */ toBuffer() {
53
- if (!this.asBuffer) {
54
- this.asBuffer = toBufferBE(this.asBigInt, 32);
43
+ toBuffer(sink) {
44
+ if (!sink) {
45
+ return toBufferBE(this.asBigInt, BaseField.SIZE_IN_BYTES);
55
46
  }
56
- return Buffer.from(this.asBuffer);
47
+ sink.writeField(this.asBigInt);
57
48
  }
58
49
  toString() {
59
- return `0x${this.toBuffer().toString('hex')}`;
50
+ return `0x${this.asBigInt.toString(16).padStart(64, '0')}`;
60
51
  }
61
52
  toBigInt() {
62
- if (this.asBigInt === undefined) {
63
- this.asBigInt = toBigIntBE(this.asBuffer);
64
- if (this.asBigInt >= this.modulus()) {
65
- throw new Error(`Value 0x${this.asBigInt.toString(16)} is greater or equal to field modulus.`);
66
- }
67
- }
68
53
  return this.asBigInt;
69
54
  }
70
55
  toBool() {
71
- return Boolean(this.toBigInt());
56
+ return this.asBigInt !== 0n;
72
57
  }
73
58
  /**
74
59
  * Converts this field to a number.
75
60
  * Throws if the underlying value is greater than MAX_SAFE_INTEGER.
76
61
  */ toNumber() {
77
- const value = this.toBigInt();
78
- if (value > Number.MAX_SAFE_INTEGER) {
79
- throw new Error(`Value ${value.toString(16)} greater than than max safe integer`);
62
+ if (this.asBigInt > Number.MAX_SAFE_INTEGER) {
63
+ throw new Error(`Value ${this.asBigInt.toString(16)} greater than than max safe integer`);
80
64
  }
81
- return Number(value);
65
+ return Number(this.asBigInt);
82
66
  }
83
67
  /**
84
68
  * Converts this field to a number.
85
69
  * May cause loss of precision if the underlying value is greater than MAX_SAFE_INTEGER.
86
70
  */ toNumberUnsafe() {
87
- const value = this.toBigInt();
88
- return Number(value);
71
+ return Number(this.asBigInt);
89
72
  }
90
73
  toShortString() {
91
74
  const str = this.toString();
92
75
  return `${str.slice(0, 10)}...${str.slice(-4)}`;
93
76
  }
94
77
  equals(rhs) {
95
- return this.toBuffer().equals(rhs.toBuffer());
78
+ return this.asBigInt === rhs.asBigInt;
96
79
  }
97
80
  lt(rhs) {
98
- return this.toBigInt() < rhs.toBigInt();
81
+ return this.asBigInt < rhs.asBigInt;
99
82
  }
100
83
  cmp(rhs) {
101
- const lhsBigInt = this.toBigInt();
102
- const rhsBigInt = rhs.toBigInt();
103
- return lhsBigInt === rhsBigInt ? 0 : lhsBigInt < rhsBigInt ? -1 : 1;
84
+ return BaseField.cmpAsBigInt(this.asBigInt, rhs.asBigInt);
85
+ }
86
+ static cmp(lhs, rhs) {
87
+ return lhs.cmp(rhs);
88
+ }
89
+ // Actual bigint comparison. Arguments must have been validated previously.
90
+ static cmpAsBigInt(lhs, rhs) {
91
+ return lhs === rhs ? 0 : lhs < rhs ? -1 : 1;
104
92
  }
105
93
  isZero() {
106
- return this.toBuffer().equals(ZERO_BUFFER);
94
+ return this.asBigInt === 0n;
107
95
  }
108
96
  isEmpty() {
109
97
  return this.isZero();
@@ -143,26 +131,40 @@ const ZERO_BUFFER = Buffer.alloc(32);
143
131
  throw new Error(`Invalid hex-encoded string: "${buf}"`);
144
132
  }
145
133
  const buffer = Buffer.from(checked.length % 2 === 1 ? '0' + checked : checked, 'hex');
146
- return new f(buffer);
134
+ return new f(toBigIntBE(buffer));
135
+ }
136
+ /**
137
+ * Abstract unbranded base class for BN254 scalar field elements.
138
+ * Extend this instead of Fr when defining a branded subtype (e.g. BlockHash)
139
+ * to avoid inheriting Fr's `_branding`.
140
+ */ export class BaseFr extends BaseField {
141
+ static MODULUS = 0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001n;
142
+ constructor(value){
143
+ super(value);
144
+ }
145
+ modulus() {
146
+ return BaseFr.MODULUS;
147
+ }
148
+ toJSON() {
149
+ return this.toString();
150
+ }
147
151
  }
152
+ _computedKey = inspect.custom;
148
153
  /**
149
154
  * Fr field class.
150
155
  * @dev This class is used to represent elements of BN254 scalar field or elements in the base field of Grumpkin.
151
156
  * (Grumpkin's scalar field corresponds to BN254's base field and vice versa.)
152
- */ export class Fr extends BaseField {
157
+ */ export class Fr extends BaseFr {
158
+ static MODULUS = 0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001n;
153
159
  static ZERO = new Fr(0n);
154
160
  static ONE = new Fr(1n);
155
- static MODULUS = 0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001n;
156
161
  static MAX_FIELD_VALUE = new Fr(this.MODULUS - 1n);
157
162
  constructor(value){
158
163
  super(value);
159
164
  }
160
- [inspect.custom]() {
165
+ [_computedKey]() {
161
166
  return `Fr<${this.toString()}>`;
162
167
  }
163
- modulus() {
164
- return Fr.MODULUS;
165
- }
166
168
  static random() {
167
169
  return random(Fr);
168
170
  }
@@ -246,15 +248,25 @@ const ZERO_BUFFER = Buffer.alloc(32);
246
248
  }
247
249
  return Fr.fromBuffer(Buffer.from(response.value));
248
250
  }
249
- toJSON() {
250
- return this.toString();
251
+ /**
252
+ * Creates an Fr instance from a plain object without Zod validation.
253
+ * This method is optimized for performance and skips validation, making it suitable
254
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
255
+ * Handles buffers, strings, numbers, bigints, or existing instances.
256
+ * @param obj - Plain object, buffer, string, number, bigint, boolean, or Fr instance
257
+ * @returns An Fr instance
258
+ */ static fromPlainObject(obj) {
259
+ if (obj instanceof Fr) {
260
+ return obj;
261
+ }
262
+ return new Fr(obj);
251
263
  }
252
264
  static get schema() {
265
+ // Serialization from hex string.
253
266
  return hexSchemaFor(Fr);
254
267
  }
255
268
  }
256
- // For deserializing JSON.
257
- TypeRegistry.register('Fr', Fr);
269
+ _computedKey1 = inspect.custom;
258
270
  /**
259
271
  * Fq field class.
260
272
  * @dev This class is used to represent elements of BN254 base field or elements in the scalar field of Grumpkin.
@@ -264,7 +276,7 @@ TypeRegistry.register('Fr', Fr);
264
276
  static MODULUS = 0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47n;
265
277
  static HIGH_SHIFT = BigInt(BaseField.SIZE_IN_BYTES / 2 * 8);
266
278
  static LOW_MASK = (1n << Fq.HIGH_SHIFT) - 1n;
267
- [inspect.custom]() {
279
+ [_computedKey1]() {
268
280
  return `Fq<${this.toString()}>`;
269
281
  }
270
282
  get lo() {
@@ -351,8 +363,6 @@ TypeRegistry.register('Fr', Fr);
351
363
  return hexSchemaFor(Fq);
352
364
  }
353
365
  }
354
- // For deserializing JSON.
355
- TypeRegistry.register('Fq', Fq);
356
366
  // Beware: Performance bottleneck below
357
367
  /**
358
368
  * Find the modular inverse of a given element, for BN254 Fr.
@@ -383,7 +393,6 @@ TypeRegistry.register('Fq', Fq);
383
393
  ];
384
394
  }
385
395
  }
386
- export const GrumpkinScalar = Fq;
387
396
  /** Wraps a function that returns a buffer so that all results are reduced into a field of the given type. */ export function reduceFn(fn, field) {
388
397
  return (input)=>fromBufferReduce(fn(input), field);
389
398
  }
@@ -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