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

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 (598) 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 +60 -32
  72. package/dest/config/index.d.ts.map +1 -1
  73. package/dest/config/index.js +63 -40
  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 +9 -176
  90. package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -1
  91. package/dest/crypto/bls/bn254_keystore.js +1 -18
  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 +2 -2
  108. package/dest/crypto/keys/index.d.ts.map +1 -1
  109. package/dest/crypto/keys/index.js +2 -4
  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 +1 -1
  291. package/dest/promise/running-promise.d.ts.map +1 -1
  292. package/dest/promise/utils.d.ts +1 -1
  293. package/dest/queue/base_memory_queue.d.ts +2 -2
  294. package/dest/queue/base_memory_queue.d.ts.map +1 -1
  295. package/dest/queue/batch_queue.d.ts +1 -1
  296. package/dest/queue/batch_queue.d.ts.map +1 -1
  297. package/dest/queue/batch_queue.js +1 -0
  298. package/dest/queue/bounded_serial_queue.d.ts +1 -1
  299. package/dest/queue/bounded_serial_queue.d.ts.map +1 -1
  300. package/dest/queue/fifo_memory_queue.d.ts +1 -1
  301. package/dest/queue/fifo_memory_queue.d.ts.map +1 -1
  302. package/dest/queue/index.d.ts +1 -1
  303. package/dest/queue/priority_memory_queue.d.ts +1 -1
  304. package/dest/queue/priority_memory_queue.d.ts.map +1 -1
  305. package/dest/queue/priority_queue.d.ts +1 -1
  306. package/dest/queue/priority_queue.d.ts.map +1 -1
  307. package/dest/queue/semaphore.d.ts +5 -1
  308. package/dest/queue/semaphore.d.ts.map +1 -1
  309. package/dest/queue/serial_queue.d.ts +1 -1
  310. package/dest/queue/serial_queue.d.ts.map +1 -1
  311. package/dest/retry/index.d.ts +22 -1
  312. package/dest/retry/index.d.ts.map +1 -1
  313. package/dest/retry/index.js +32 -0
  314. package/dest/running-promise/index.d.ts +1 -1
  315. package/dest/schemas/api.d.ts +12 -10
  316. package/dest/schemas/api.d.ts.map +1 -1
  317. package/dest/schemas/api.js +7 -1
  318. package/dest/schemas/index.d.ts +1 -1
  319. package/dest/schemas/parse.d.ts +4 -4
  320. package/dest/schemas/parse.d.ts.map +1 -1
  321. package/dest/schemas/parse.js +6 -5
  322. package/dest/schemas/schemas.d.ts +26 -28
  323. package/dest/schemas/schemas.d.ts.map +1 -1
  324. package/dest/schemas/schemas.js +14 -10
  325. package/dest/schemas/types.d.ts +32 -2
  326. package/dest/schemas/types.d.ts.map +1 -1
  327. package/dest/schemas/types.js +25 -1
  328. package/dest/schemas/utils.d.ts +10 -14
  329. package/dest/schemas/utils.d.ts.map +1 -1
  330. package/dest/schemas/utils.js +17 -23
  331. package/dest/serialize/buffer_reader.d.ts +14 -4
  332. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  333. package/dest/serialize/buffer_reader.js +26 -4
  334. package/dest/serialize/buffer_sink.d.ts +134 -0
  335. package/dest/serialize/buffer_sink.d.ts.map +1 -0
  336. package/dest/serialize/buffer_sink.js +297 -0
  337. package/dest/serialize/field_reader.d.ts +2 -2
  338. package/dest/serialize/field_reader.d.ts.map +1 -1
  339. package/dest/serialize/field_reader.js +1 -1
  340. package/dest/serialize/free_funcs.d.ts +2 -2
  341. package/dest/serialize/free_funcs.d.ts.map +1 -1
  342. package/dest/serialize/free_funcs.js +1 -1
  343. package/dest/serialize/index.d.ts +2 -1
  344. package/dest/serialize/index.d.ts.map +1 -1
  345. package/dest/serialize/index.js +1 -0
  346. package/dest/serialize/serialize.d.ts +20 -2
  347. package/dest/serialize/serialize.d.ts.map +1 -1
  348. package/dest/serialize/serialize.js +32 -1
  349. package/dest/serialize/type_registry.d.ts +1 -1
  350. package/dest/serialize/type_registry.d.ts.map +1 -1
  351. package/dest/serialize/types.d.ts +1 -1
  352. package/dest/sleep/index.d.ts +4 -1
  353. package/dest/sleep/index.d.ts.map +1 -1
  354. package/dest/sleep/index.js +14 -1
  355. package/dest/string/index.d.ts +1 -1
  356. package/dest/string/index.js +1 -1
  357. package/dest/testing/files/index.d.ts +2 -1
  358. package/dest/testing/files/index.d.ts.map +1 -1
  359. package/dest/testing/files/index.js +1 -1
  360. package/dest/testing/formatting.d.ts +1 -1
  361. package/dest/testing/index.d.ts +1 -1
  362. package/dest/testing/port_allocator.d.ts +1 -1
  363. package/dest/testing/snapshot_serializer.d.ts +1 -1
  364. package/dest/testing/test_data.d.ts +1 -1
  365. package/dest/timer/date.d.ts +26 -1
  366. package/dest/timer/date.d.ts.map +1 -1
  367. package/dest/timer/date.js +36 -0
  368. package/dest/timer/elapsed.d.ts +1 -1
  369. package/dest/timer/index.d.ts +2 -2
  370. package/dest/timer/index.d.ts.map +1 -1
  371. package/dest/timer/index.js +1 -1
  372. package/dest/timer/timeout.d.ts +3 -1
  373. package/dest/timer/timeout.d.ts.map +1 -1
  374. package/dest/timer/timeout.js +26 -0
  375. package/dest/timer/timer.d.ts +1 -1
  376. package/dest/timer/timer.d.ts.map +1 -1
  377. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +11 -2
  378. package/dest/transport/dispatch/create_dispatch_proxy.d.ts.map +1 -1
  379. package/dest/transport/dispatch/messages.d.ts +1 -1
  380. package/dest/transport/index.d.ts +1 -2
  381. package/dest/transport/index.d.ts.map +1 -1
  382. package/dest/transport/index.js +0 -1
  383. package/dest/transport/interface/connector.d.ts +1 -1
  384. package/dest/transport/interface/listener.d.ts +1 -1
  385. package/dest/transport/interface/socket.d.ts +1 -1
  386. package/dest/transport/interface/transferable.d.ts +1 -1
  387. package/dest/transport/node/index.d.ts +1 -1
  388. package/dest/transport/node/node_connector.d.ts +1 -1
  389. package/dest/transport/node/node_connector.d.ts.map +1 -1
  390. package/dest/transport/node/node_connector_socket.d.ts +1 -1
  391. package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
  392. package/dest/transport/node/node_listener.d.ts +1 -1
  393. package/dest/transport/node/node_listener.d.ts.map +1 -1
  394. package/dest/transport/node/node_listener_socket.d.ts +1 -1
  395. package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
  396. package/dest/transport/transport_client.d.ts +1 -1
  397. package/dest/transport/transport_client.d.ts.map +1 -1
  398. package/dest/transport/transport_client.js +2 -2
  399. package/dest/transport/transport_server.d.ts +1 -10
  400. package/dest/transport/transport_server.d.ts.map +1 -1
  401. package/dest/trees/balanced_merkle_tree_root.d.ts +16 -0
  402. package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -0
  403. package/dest/trees/balanced_merkle_tree_root.js +50 -0
  404. package/dest/trees/hasher.d.ts +4 -1
  405. package/dest/trees/hasher.d.ts.map +1 -1
  406. package/dest/trees/hasher.js +10 -5
  407. package/dest/trees/index.d.ts +4 -3
  408. package/dest/trees/index.d.ts.map +1 -1
  409. package/dest/trees/index.js +3 -2
  410. package/dest/trees/indexed_merkle_tree.d.ts +1 -1
  411. package/dest/trees/indexed_merkle_tree.d.ts.map +1 -1
  412. package/dest/trees/indexed_merkle_tree.js +1 -1
  413. package/dest/trees/indexed_merkle_tree_calculator.d.ts +1 -1
  414. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
  415. package/dest/trees/indexed_merkle_tree_calculator.js +5 -1
  416. package/dest/trees/indexed_tree_leaf.d.ts +1 -1
  417. package/dest/trees/membership_witness.d.ts +7 -18
  418. package/dest/trees/membership_witness.d.ts.map +1 -1
  419. package/dest/trees/membership_witness.js +10 -1
  420. package/dest/trees/merkle_tree.d.ts +1 -1
  421. package/dest/trees/merkle_tree.d.ts.map +1 -1
  422. package/dest/trees/merkle_tree_calculator.d.ts +4 -12
  423. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  424. package/dest/trees/merkle_tree_calculator.js +1 -35
  425. package/dest/trees/sibling_path.d.ts +6 -38
  426. package/dest/trees/sibling_path.d.ts.map +1 -1
  427. package/dest/trees/sibling_path.js +11 -9
  428. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +6 -6
  429. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -1
  430. package/dest/trees/unbalanced_merkle_tree_calculator.js +34 -42
  431. package/dest/trees/unbalanced_merkle_tree_root.d.ts +27 -0
  432. package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -0
  433. package/dest/trees/unbalanced_merkle_tree_root.js +83 -0
  434. package/dest/trees/unbalanced_tree_store.d.ts +5 -1
  435. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
  436. package/dest/trees/unbalanced_tree_store.js +49 -1
  437. package/dest/types/index.d.ts +28 -2
  438. package/dest/types/index.d.ts.map +1 -1
  439. package/dest/types/index.js +21 -0
  440. package/dest/url/index.d.ts +1 -1
  441. package/dest/validation/index.d.ts +1 -1
  442. package/package.json +54 -11
  443. package/src/array/array.ts +0 -16
  444. package/src/array/index.ts +1 -0
  445. package/src/array/sorted_array.ts +138 -0
  446. package/src/bigint-buffer/index.ts +6 -1
  447. package/src/branded-types/block_number.ts +135 -0
  448. package/src/branded-types/buffer32_hash.ts +38 -0
  449. package/src/branded-types/checkpoint_number.ts +130 -0
  450. package/src/branded-types/epoch.ts +88 -0
  451. package/src/branded-types/index.ts +8 -0
  452. package/src/branded-types/index_within_checkpoint.ts +88 -0
  453. package/src/branded-types/slot.ts +93 -0
  454. package/src/branded-types/types.ts +2 -0
  455. package/src/buffer/buffer16.ts +5 -2
  456. package/src/buffer/buffer32.ts +41 -70
  457. package/src/buffer/index.ts +1 -0
  458. package/src/buffer/utils.ts +8 -0
  459. package/src/collection/array.ts +86 -0
  460. package/src/collection/index.ts +2 -0
  461. package/src/collection/lru_map.ts +143 -0
  462. package/src/collection/lru_set.ts +115 -0
  463. package/src/committable/committable.ts +1 -1
  464. package/src/config/env_var.ts +118 -34
  465. package/src/config/index.ts +144 -91
  466. package/src/config/network_config.ts +5 -0
  467. package/src/config/network_name.ts +6 -6
  468. package/src/config/parse-env.ts +4 -0
  469. package/src/config/secret_value.ts +1 -1
  470. package/src/crypto/aes128/index.ts +13 -4
  471. package/src/crypto/bls/bn254_keystore.ts +1 -24
  472. package/src/crypto/bls/index.ts +1 -1
  473. package/src/crypto/bn254/index.ts +50 -156
  474. package/src/crypto/ecdsa/index.ts +4 -4
  475. package/src/crypto/ecdsa/signature.ts +2 -2
  476. package/src/crypto/grumpkin/index.ts +8 -6
  477. package/src/crypto/keys/index.ts +2 -2
  478. package/src/crypto/pedersen/pedersen.wasm.ts +4 -4
  479. package/src/crypto/poseidon/index.ts +43 -45
  480. package/src/crypto/random/randomness_singleton.ts +6 -4
  481. package/src/crypto/schnorr/index.ts +14 -12
  482. package/src/crypto/schnorr/signature.ts +18 -47
  483. package/src/crypto/secp256k1/index.ts +3 -3
  484. package/src/crypto/secp256k1-signer/utils.ts +32 -0
  485. package/src/crypto/sha256/index.ts +1 -1
  486. package/src/crypto/sha512/index.ts +1 -1
  487. package/src/crypto/signature/index.ts +1 -1
  488. package/src/crypto/sync/index.ts +1 -1
  489. package/src/crypto/sync/pedersen/index.ts +1 -1
  490. package/src/crypto/sync/poseidon/index.ts +1 -10
  491. package/src/{fields/bls12_fields.ts → curves/bls12/field.ts} +5 -12
  492. package/src/curves/bls12/index.ts +2 -0
  493. package/src/{fields/bls12_point.ts → curves/bls12/point.ts} +7 -7
  494. package/src/{fields/fields.ts → curves/bn254/field.ts} +82 -84
  495. package/src/curves/bn254/index.ts +2 -0
  496. package/src/curves/bn254/point.ts +170 -0
  497. package/src/curves/grumpkin/index.ts +11 -0
  498. package/src/{fields → curves/grumpkin}/point.ts +47 -45
  499. package/src/eth-address/index.ts +27 -6
  500. package/src/eth-signature/eth_signature.ts +7 -1
  501. package/src/fifo/fifo_frame_reader.ts +113 -0
  502. package/src/fifo/index.ts +1 -0
  503. package/src/fifo_set/fifo_set.ts +52 -0
  504. package/src/fifo_set/index.ts +1 -0
  505. package/src/iterator/filter.ts +11 -0
  506. package/src/iterator/index.ts +1 -0
  507. package/src/jest/setup.mjs +31 -1
  508. package/src/json-rpc/client/fetch.ts +4 -3
  509. package/src/json-rpc/client/safe_json_rpc_client.ts +4 -2
  510. package/src/json-rpc/client/undici.ts +23 -3
  511. package/src/json-rpc/fixtures/test_state.ts +10 -10
  512. package/src/json-rpc/server/api_key_auth.ts +63 -0
  513. package/src/json-rpc/server/index.ts +1 -0
  514. package/src/json-rpc/server/safe_json_rpc_server.ts +32 -14
  515. package/src/log/bigint-utils.ts +25 -0
  516. package/src/log/gcloud-logger-config.ts +5 -0
  517. package/src/log/libp2p_logger.ts +12 -5
  518. package/src/log/log-filters.ts +29 -11
  519. package/src/log/pino-logger-server.ts +25 -0
  520. package/src/log/pino-logger.ts +162 -40
  521. package/src/noir/noir_package_config.ts +32 -20
  522. package/src/queue/base_memory_queue.ts +1 -1
  523. package/src/queue/batch_queue.ts +1 -0
  524. package/src/queue/semaphore.ts +5 -0
  525. package/src/retry/index.ts +48 -0
  526. package/src/schemas/api.ts +25 -25
  527. package/src/schemas/parse.ts +9 -6
  528. package/src/schemas/schemas.ts +27 -16
  529. package/src/schemas/types.ts +34 -1
  530. package/src/schemas/utils.ts +25 -46
  531. package/src/serialize/buffer_reader.ts +36 -9
  532. package/src/serialize/buffer_sink.ts +350 -0
  533. package/src/serialize/field_reader.ts +1 -1
  534. package/src/serialize/free_funcs.ts +1 -1
  535. package/src/serialize/index.ts +1 -0
  536. package/src/serialize/serialize.ts +33 -1
  537. package/src/sleep/index.ts +16 -1
  538. package/src/string/index.ts +1 -1
  539. package/src/testing/files/index.ts +1 -1
  540. package/src/timer/date.ts +52 -0
  541. package/src/timer/index.ts +1 -1
  542. package/src/timer/timeout.ts +31 -0
  543. package/src/transport/dispatch/create_dispatch_proxy.ts +11 -1
  544. package/src/transport/index.ts +0 -1
  545. package/src/transport/transport_client.ts +2 -2
  546. package/src/trees/balanced_merkle_tree_root.ts +65 -0
  547. package/src/trees/hasher.ts +12 -0
  548. package/src/trees/index.ts +3 -2
  549. package/src/trees/indexed_merkle_tree.ts +1 -1
  550. package/src/trees/indexed_merkle_tree_calculator.ts +5 -1
  551. package/src/trees/membership_witness.ts +9 -1
  552. package/src/trees/merkle_tree_calculator.ts +4 -43
  553. package/src/trees/sibling_path.ts +12 -7
  554. package/src/trees/unbalanced_merkle_tree_calculator.ts +32 -50
  555. package/src/trees/unbalanced_merkle_tree_root.ts +112 -0
  556. package/src/trees/unbalanced_tree_store.ts +57 -2
  557. package/src/types/index.ts +58 -1
  558. package/dest/crypto/bn254/bn254_utils.d.ts +0 -39
  559. package/dest/crypto/bn254/bn254_utils.d.ts.map +0 -1
  560. package/dest/crypto/bn254/bn254_utils.js +0 -56
  561. package/dest/crypto/index.d.ts +0 -17
  562. package/dest/crypto/index.d.ts.map +0 -1
  563. package/dest/crypto/index.js +0 -16
  564. package/dest/crypto/serialize.d.ts +0 -51
  565. package/dest/crypto/serialize.d.ts.map +0 -1
  566. package/dest/crypto/serialize.js +0 -68
  567. package/dest/fields/bls12_fields.d.ts.map +0 -1
  568. package/dest/fields/bls12_point.d.ts.map +0 -1
  569. package/dest/fields/coordinate.d.ts +0 -66
  570. package/dest/fields/coordinate.d.ts.map +0 -1
  571. package/dest/fields/coordinate.js +0 -96
  572. package/dest/fields/fields.d.ts +0 -179
  573. package/dest/fields/fields.d.ts.map +0 -1
  574. package/dest/fields/index.d.ts +0 -6
  575. package/dest/fields/index.d.ts.map +0 -1
  576. package/dest/fields/index.js +0 -5
  577. package/dest/fields/point.d.ts.map +0 -1
  578. package/dest/index.d.ts +0 -30
  579. package/dest/index.d.ts.map +0 -1
  580. package/dest/index.js +0 -30
  581. package/dest/json-rpc/server/telemetry.d.ts +0 -2
  582. package/dest/json-rpc/server/telemetry.d.ts.map +0 -1
  583. package/dest/json-rpc/server/telemetry.js +0 -0
  584. package/dest/transport/dispatch/create_dispatch_fn.d.ts +0 -25
  585. package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +0 -1
  586. package/dest/transport/dispatch/create_dispatch_fn.js +0 -17
  587. package/dest/trees/unbalanced_merkle_tree.d.ts +0 -28
  588. package/dest/trees/unbalanced_merkle_tree.d.ts.map +0 -1
  589. package/dest/trees/unbalanced_merkle_tree.js +0 -99
  590. package/src/crypto/bn254/bn254_utils.ts +0 -64
  591. package/src/crypto/index.ts +0 -16
  592. package/src/crypto/serialize.ts +0 -85
  593. package/src/fields/coordinate.ts +0 -104
  594. package/src/fields/index.ts +0 -5
  595. package/src/index.ts +0 -30
  596. package/src/json-rpc/server/telemetry.ts +0 -0
  597. package/src/transport/dispatch/create_dispatch_fn.ts +0 -35
  598. package/src/trees/unbalanced_merkle_tree.ts +0 -111
@@ -1,5 +1,3 @@
1
- import { findLeafLevelAndIndex } from './unbalanced_merkle_tree.js';
2
-
3
1
  export interface TreeNodeLocation {
4
2
  level: number;
5
3
  index: number;
@@ -104,3 +102,60 @@ export class UnbalancedTreeStore<T> {
104
102
  return `${location.level}-${location.index}`;
105
103
  }
106
104
  }
105
+
106
+ /// Get the depth of the maximum balanced tree that can be created with the given number of leaves. The subtree will be
107
+ /// the left most subtree of the unbalanced tree with a total of `numLeaves` leaves.
108
+ ///
109
+ /// Note: All the leaves may not be used to form the tree. For example, if there are 5 leaves, the maximum depth is 2,
110
+ /// only 4 leaves are used to form a balanced tree.
111
+ function getMaxBalancedSubtreeDepth(numLeaves: number) {
112
+ return Math.floor(Math.log2(numLeaves));
113
+ }
114
+
115
+ /// Get the maximum depth of an unbalanced tree that can be created with the given number of leaves.
116
+ function getMaxUnbalancedTreeDepth(numLeaves: number) {
117
+ return Math.ceil(Math.log2(numLeaves));
118
+ }
119
+
120
+ function findPosition(
121
+ rootLevel: number,
122
+ leafLevel: number,
123
+ numLeaves: number,
124
+ indexOffset: number,
125
+ targetIndex: number,
126
+ ): { level: number; indexAtLevel: number } {
127
+ if (numLeaves <= 1) {
128
+ // Single leaf.
129
+ return { level: rootLevel, indexAtLevel: indexOffset };
130
+ }
131
+
132
+ // The largest balanced tree that can be created with the given number of leaves.
133
+ const maxBalancedTreeDepth = getMaxBalancedSubtreeDepth(numLeaves);
134
+ const numBalancedLeaves = 2 ** maxBalancedTreeDepth;
135
+ const numRemainingLeaves = numLeaves - numBalancedLeaves;
136
+
137
+ if (targetIndex < numBalancedLeaves) {
138
+ // Target is in the balanced tree.
139
+
140
+ // - If numRemainingLeaves is 0: this balanced tree is grown from the current root.
141
+ // - If numRemainingLeaves is not 0: the remaining leaves will form another tree, which will become the right child of the root.
142
+ // And the balanced tree will be the left child of the root.
143
+ // There will be an extra level between the root of the balanced tree and the current root.
144
+ const extraLevel = numRemainingLeaves ? 1 : 0;
145
+
146
+ return { level: rootLevel + maxBalancedTreeDepth + extraLevel, indexAtLevel: indexOffset + targetIndex };
147
+ } else {
148
+ // Target is in the right branch.
149
+ const rightBranchMaxLevel = getMaxUnbalancedTreeDepth(numRemainingLeaves);
150
+ const shiftedUp = leafLevel - rootLevel - rightBranchMaxLevel - 1;
151
+ const nextLeafLevel = leafLevel - shiftedUp;
152
+ const newIndexOffset = (indexOffset + numBalancedLeaves) >> shiftedUp;
153
+ const shiftedTargetIndex = targetIndex - numBalancedLeaves;
154
+ return findPosition(rootLevel + 1, nextLeafLevel, numRemainingLeaves, newIndexOffset, shiftedTargetIndex);
155
+ }
156
+ }
157
+
158
+ export function findLeafLevelAndIndex(numLeaves: number, leafIndex: number) {
159
+ const maxLevel = getMaxUnbalancedTreeDepth(numLeaves);
160
+ return findPosition(0, maxLevel, numLeaves, 0, leafIndex);
161
+ }
@@ -19,16 +19,73 @@ export function unfreeze<T>(obj: T): Writeable<T> {
19
19
  return obj as Writeable<T>;
20
20
  }
21
21
 
22
+ /** Is defined type guard */
23
+ export function isDefined<T>(value: T | undefined): value is T {
24
+ return value !== undefined;
25
+ }
26
+
27
+ /** Type guard for error classes */
28
+ export function isErrorClass<T extends Error>(value: unknown, errorClass: new (...args: any[]) => T): value is T {
29
+ return value instanceof errorClass || (value instanceof Error && value.name === errorClass.name);
30
+ }
31
+
32
+ const MAX_ERR_DEPTH = 10;
33
+
34
+ /** Returns the first error in the cause chain matching the given error class. */
35
+ export function getErrorCause<T extends Error>(err: unknown, errorClass: new (...args: any[]) => T): T | undefined {
36
+ let current = err;
37
+ for (let i = 0; current !== undefined && current !== null && i < MAX_ERR_DEPTH; i++) {
38
+ if (isErrorClass(current, errorClass)) {
39
+ return current;
40
+ }
41
+
42
+ if (typeof current === 'object' && Object.hasOwn(current, 'cause')) {
43
+ current = (current as { cause: unknown }).cause;
44
+ } else {
45
+ return undefined;
46
+ }
47
+ }
48
+ return undefined;
49
+ }
50
+
22
51
  /** Resolves a record-like type. Lifted from viem. */
23
52
  export type Prettify<T> = {
24
53
  [K in keyof T]: T[K];
25
54
  } & {};
26
55
 
56
+ /** Returns a type T based on a flag: T if true, undefined if false, optional otherwise. */
57
+ export type DefineIfFlag<Opts, Key extends keyof Opts, T> = Opts extends {
58
+ [K in Key]: true;
59
+ }
60
+ ? T
61
+ : Opts extends { [K in Key]: false }
62
+ ? never
63
+ : Opts extends { [K in Key]?: boolean }
64
+ ? T | undefined
65
+ : never;
66
+
67
+ /** Returns a type with fields conditionally required based on a flag */
68
+ export type PickIfFlag<
69
+ OptsSchema,
70
+ Opts extends OptsSchema,
71
+ Key extends keyof OptsSchema,
72
+ Field extends object,
73
+ > = Opts extends { [K in Key]: true }
74
+ ? Field
75
+ : Opts extends { [K in Key]: false }
76
+ ? {}
77
+ : Opts extends { [K in Key]?: boolean }
78
+ ? Partial<Field>
79
+ : {};
80
+
81
+ /** Picks only the defined (non-undefined) properties of a type. */
82
+ export type PickDefined<T> = Prettify<Pick<T, { [K in keyof T]: T[K] extends undefined ? never : K }[keyof T]>>;
83
+
27
84
  /**
28
85
  * Type-safe Event Emitter type
29
86
  * @example
30
87
  * export type ArchiverEmitter = TypedEventEmitter<{
31
- * [L2BlockSourceEvents.L2PruneDetected]: (args: L2BlockSourceEvent) => void;
88
+ * [L2BlockSourceEvents.L2PruneUnproven]: (args: L2BlockSourceEvent) => void;
32
89
  * [L2BlockSourceEvents.L2BlockProven]: (args: L2BlockSourceEvent) => void;
33
90
  * }>;
34
91
  * class Archiver extends (EventEmitter as new () => ArchiverEmitter) {
@@ -1,39 +0,0 @@
1
- /**
2
- * BN254 utility functions for point operations.
3
- * Provides compression, decompression, and public key generation for the BN254 curve.
4
- * Uses the bb.js Barretenberg backend for point operations.
5
- */
6
- /**
7
- * Generate a compressed BN254 G1 public key from a private key.
8
- *
9
- * @param privateKeyHex - Private key as 0x-prefixed hex string
10
- * @returns Compressed G1 point (32 bytes with sign bit in MSB)
11
- */
12
- export declare function computeBn254G1PublicKeyCompressed(privateKeyHex: string): Promise<string>;
13
- /**
14
- * Generate uncompressed BN254 G1 public key from a private key.
15
- *
16
- * @param privateKeyHex - Private key as 0x-prefixed hex string
17
- * @returns G1 point in affine coordinates
18
- */
19
- export declare function computeBn254G1PublicKey(privateKeyHex: string): Promise<{
20
- x: bigint;
21
- y: bigint;
22
- }>;
23
- /**
24
- * Generate BN254 G2 public key from a private key.
25
- *
26
- * @param privateKeyHex - Private key as 0x-prefixed hex string
27
- * @returns G2 point in affine coordinates
28
- */
29
- export declare function computeBn254G2PublicKey(privateKeyHex: string): Promise<{
30
- x: {
31
- c0: bigint;
32
- c1: bigint;
33
- };
34
- y: {
35
- c0: bigint;
36
- c1: bigint;
37
- };
38
- }>;
39
- //# sourceMappingURL=bn254_utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bn254_utils.d.ts","sourceRoot":"","sources":["../../../src/crypto/bn254/bn254_utils.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AAEH;;;;;GAKG;AACH,wBAAsB,iCAAiC,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAU9F;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAQtG;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5E,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/B,CAAC,CAWD"}
@@ -1,56 +0,0 @@
1
- import { Fr } from '../../fields/fields.js';
2
- import { Bn254G1Point, Bn254G2Point } from './index.js';
3
- /**
4
- * BN254 utility functions for point operations.
5
- * Provides compression, decompression, and public key generation for the BN254 curve.
6
- * Uses the bb.js Barretenberg backend for point operations.
7
- */ /**
8
- * Generate a compressed BN254 G1 public key from a private key.
9
- *
10
- * @param privateKeyHex - Private key as 0x-prefixed hex string
11
- * @returns Compressed G1 point (32 bytes with sign bit in MSB)
12
- */ export async function computeBn254G1PublicKeyCompressed(privateKeyHex) {
13
- const sk = BigInt(privateKeyHex);
14
- const skReduced = sk % Fr.MODULUS;
15
- // Generate G1 point on BN254 curve using bb.js
16
- const scalar = Fr.fromString(skReduced.toString());
17
- const pk1 = await Bn254G1Point.generator(scalar);
18
- // Compress the point using the primitive method
19
- return '0x' + pk1.compress().toString('hex');
20
- }
21
- /**
22
- * Generate uncompressed BN254 G1 public key from a private key.
23
- *
24
- * @param privateKeyHex - Private key as 0x-prefixed hex string
25
- * @returns G1 point in affine coordinates
26
- */ export async function computeBn254G1PublicKey(privateKeyHex) {
27
- const sk = BigInt(privateKeyHex);
28
- const skReduced = sk % Fr.MODULUS;
29
- const scalar = Fr.fromString(skReduced.toString());
30
- const pk1 = await Bn254G1Point.generator(scalar);
31
- return {
32
- x: pk1.x.toBigInt(),
33
- y: pk1.y.toBigInt()
34
- };
35
- }
36
- /**
37
- * Generate BN254 G2 public key from a private key.
38
- *
39
- * @param privateKeyHex - Private key as 0x-prefixed hex string
40
- * @returns G2 point in affine coordinates
41
- */ export async function computeBn254G2PublicKey(privateKeyHex) {
42
- const sk = BigInt(privateKeyHex);
43
- const skReduced = sk % Fr.MODULUS;
44
- const scalar = Fr.fromString(skReduced.toString());
45
- const pk2 = await Bn254G2Point.generator(scalar);
46
- return {
47
- x: {
48
- c0: pk2.x[0].toBigInt(),
49
- c1: pk2.x[1].toBigInt()
50
- },
51
- y: {
52
- c0: pk2.y[0].toBigInt(),
53
- c1: pk2.y[1].toBigInt()
54
- }
55
- };
56
- }
@@ -1,17 +0,0 @@
1
- export * from './keccak/index.js';
2
- export * from './random/index.js';
3
- export * from './sha256/index.js';
4
- export * from './sha512/index.js';
5
- export * from './pedersen/index.js';
6
- export * from './poseidon/index.js';
7
- export * from './secp256k1-signer/index.js';
8
- export * from './keys/index.js';
9
- export * from './aes128/index.js';
10
- export * from './bn254/index.js';
11
- export * from './grumpkin/index.js';
12
- export * from './ecdsa/index.js';
13
- export * from './secp256k1/index.js';
14
- export * from './schnorr/index.js';
15
- export * from './signature/index.js';
16
- export * from './bls/index.js';
17
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/crypto/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC"}
@@ -1,16 +0,0 @@
1
- export * from './keccak/index.js';
2
- export * from './random/index.js';
3
- export * from './sha256/index.js';
4
- export * from './sha512/index.js';
5
- export * from './pedersen/index.js';
6
- export * from './poseidon/index.js';
7
- export * from './secp256k1-signer/index.js';
8
- export * from './keys/index.js';
9
- export * from './aes128/index.js';
10
- export * from './bn254/index.js';
11
- export * from './grumpkin/index.js';
12
- export * from './ecdsa/index.js';
13
- export * from './secp256k1/index.js';
14
- export * from './schnorr/index.js';
15
- export * from './signature/index.js';
16
- export * from './bls/index.js';
@@ -1,51 +0,0 @@
1
- import { Buffer } from 'buffer';
2
- /**
3
- * For serializing an array of fixed length buffers.
4
- * TODO move to foundation pkg.
5
- * @param arr - Array of bufffers.
6
- * @returns The serialized buffers.
7
- */
8
- export declare function serializeBufferArrayToVector(arr: Buffer[]): Buffer<ArrayBuffer>;
9
- /**
10
- * Helper function for deserializeArrayFromVector.
11
- */
12
- type DeserializeFn<T> = (buf: Buffer, offset: number) => {
13
- /**
14
- * The deserialized type.
15
- */
16
- elem: T;
17
- /**
18
- * How many bytes to advance by.
19
- */
20
- adv: number;
21
- };
22
- /**
23
- * For deserializing numbers to 32-bit little-endian form.
24
- * TODO move to foundation pkg.
25
- * @param n - The number.
26
- * @returns The endian-corrected number.
27
- */
28
- export declare function deserializeArrayFromVector<T>(deserialize: DeserializeFn<T>, vector: Buffer, offset?: number): {
29
- elem: T[];
30
- adv: number;
31
- };
32
- /**
33
- * For serializing numbers to 32 bit little-endian form.
34
- * TODO move to foundation pkg.
35
- * @param n - The number.
36
- * @returns The endian-corrected number.
37
- */
38
- export declare function numToUInt32LE(n: number, bufferSize?: number): Buffer<ArrayBuffer>;
39
- /**
40
- * Deserialize the 256-bit number at address `offset`.
41
- * @param buf - The buffer.
42
- * @param offset - The address.
43
- * @returns The derserialized 256-bit field.
44
- */
45
- export declare function deserializeField(buf: Buffer, offset?: number): {
46
- elem: Buffer<ArrayBuffer>;
47
- adv: number;
48
- };
49
- export declare function concatenateUint8Arrays(arrayOfUint8Arrays: Uint8Array[]): Uint8Array<ArrayBuffer>;
50
- export {};
51
- //# sourceMappingURL=serialize.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/crypto/serialize.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,EAAE,uBAIzD;AAED;;GAEG;AACH,KAAK,aAAa,CAAC,CAAC,IAAI,CACtB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,KACX;IACH;;OAEG;IACH,IAAI,EAAE,CAAC,CAAC;IACR;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAI;;;EAWtG;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,SAAI,uBAItD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI;;;EAGvD;AAED,wBAAgB,sBAAsB,CAAC,kBAAkB,EAAE,UAAU,EAAE,2BAStE"}
@@ -1,68 +0,0 @@
1
- // TODO find a new home for this as we move to external bb.js
2
- // See https://github.com/AztecProtocol/aztec-packages/issues/782
3
- import { Buffer } from 'buffer';
4
- /**
5
- * For serializing an array of fixed length buffers.
6
- * TODO move to foundation pkg.
7
- * @param arr - Array of bufffers.
8
- * @returns The serialized buffers.
9
- */ export function serializeBufferArrayToVector(arr) {
10
- const lengthBuf = Buffer.alloc(4);
11
- lengthBuf.writeUInt32BE(arr.length, 0);
12
- return Buffer.concat([
13
- lengthBuf,
14
- ...arr
15
- ]);
16
- }
17
- /**
18
- * For deserializing numbers to 32-bit little-endian form.
19
- * TODO move to foundation pkg.
20
- * @param n - The number.
21
- * @returns The endian-corrected number.
22
- */ export function deserializeArrayFromVector(deserialize, vector, offset = 0) {
23
- let pos = offset;
24
- const size = vector.readUInt32BE(pos);
25
- pos += 4;
26
- const arr = new Array(size);
27
- for(let i = 0; i < size; ++i){
28
- const { elem, adv } = deserialize(vector, pos);
29
- pos += adv;
30
- arr[i] = elem;
31
- }
32
- return {
33
- elem: arr,
34
- adv: pos - offset
35
- };
36
- }
37
- /**
38
- * For serializing numbers to 32 bit little-endian form.
39
- * TODO move to foundation pkg.
40
- * @param n - The number.
41
- * @returns The endian-corrected number.
42
- */ export function numToUInt32LE(n, bufferSize = 4) {
43
- const buf = Buffer.alloc(bufferSize);
44
- buf.writeUInt32LE(n, bufferSize - 4);
45
- return buf;
46
- }
47
- /**
48
- * Deserialize the 256-bit number at address `offset`.
49
- * @param buf - The buffer.
50
- * @param offset - The address.
51
- * @returns The derserialized 256-bit field.
52
- */ export function deserializeField(buf, offset = 0) {
53
- const adv = 32;
54
- return {
55
- elem: buf.slice(offset, offset + adv),
56
- adv
57
- };
58
- }
59
- export function concatenateUint8Arrays(arrayOfUint8Arrays) {
60
- const totalLength = arrayOfUint8Arrays.reduce((prev, curr)=>prev + curr.length, 0);
61
- const result = new Uint8Array(totalLength);
62
- let length = 0;
63
- for (const array of arrayOfUint8Arrays){
64
- result.set(array, length);
65
- length += array.length;
66
- }
67
- return result;
68
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"bls12_fields.d.ts","sourceRoot":"","sources":["../../src/fields/bls12_fields.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"bls12_point.d.ts","sourceRoot":"","sources":["../../src/fields/bls12_point.ts"],"names":[],"mappings":"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"}
@@ -1,66 +0,0 @@
1
- import type { Tuple } from '../serialize/types.js';
2
- import { Fr } from './fields.js';
3
- /**
4
- * Class to wrap a single point coordinate.
5
- * This class handles the complexities of representing point coordinates as 32 byte buffers as well as fields.
6
- * The coordinate value is split across 2 fields to ensure that the max size of a field is not breached.
7
- * This is achieved by placing the most significant byte of the lower field into the least significant byte of the higher field.
8
- * Calls to 'toBuffer' or 'toBigInt' undo this change and simply return the original 32 byte value.
9
- * Calls to 'toFieldsBuffer' will return a 64 bytes buffer containing the serialized fields.
10
- */
11
- export declare class Coordinate {
12
- /**
13
- * The fields of the coordinate value. Least significant limb at index 0.
14
- */
15
- fields: Tuple<Fr, 2>;
16
- static ZERO: Coordinate;
17
- constructor(
18
- /**
19
- * The fields of the coordinate value. Least significant limb at index 0.
20
- */
21
- fields: Tuple<Fr, 2>);
22
- /**
23
- * Converts the coordinate data into a tuple of fields
24
- * @returns A tuple of the coordinate fields
25
- */
26
- toFields(): Tuple<Fr, 2>;
27
- /**
28
- * Generates a random coordinate value
29
- * @returns The random coordinate
30
- */
31
- static random(): Coordinate;
32
- /**
33
- * serializes the object to buffer of 2 fields.
34
- * @returns A buffer serialization of the object.
35
- */
36
- toFieldsBuffer(): Buffer;
37
- /**
38
- * serializes the coordinate to a single 32 byte buffer.
39
- * @returns A buffer serialization of the object.
40
- */
41
- toBuffer(): Buffer;
42
- /**
43
- * Returns true if this coordinate is equal to the one provided
44
- * @param other - The coordinate against which to compare
45
- * @returns True if the coordinates are the same, false otherwise
46
- */
47
- equals(other: Coordinate): boolean;
48
- /**
49
- * Returns the coordinate's value as a bigint
50
- * @returns The coordinate value as a bigint
51
- */
52
- toBigInt(): bigint;
53
- /**
54
- * Creates a coordinate object from a 32 byte coordinate value
55
- * @param coordinate - A buffer containing the 32 byte coordinate value
56
- * @returns The new coordinate object
57
- */
58
- static fromBuffer(coordinate: Buffer): Coordinate;
59
- /**
60
- * Creates a coordinate object from a field
61
- * @param coordinate - The field containing the coordinate
62
- * @returns The new coordinate object
63
- */
64
- static fromField(coordinate: Fr): Coordinate;
65
- }
66
- //# sourceMappingURL=coordinate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"coordinate.d.ts","sourceRoot":"","sources":["../../src/fields/coordinate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC;;;;;;;GAOG;AACH,qBAAa,UAAU;IAInB;;OAEG;IACI,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAN7B,MAAM,CAAC,IAAI,aAAsC;;IAG/C;;OAEG;IACI,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAG7B;;;OAGG;IACH,QAAQ,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAIxB;;;OAGG;IACH,MAAM,CAAC,MAAM,IAAI,UAAU;IAI3B;;;OAGG;IACH,cAAc,IAAI,MAAM;IAIxB;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAOlB;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAIlC;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM;IAYpC;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE;CAOhC"}
@@ -1,96 +0,0 @@
1
- import { toBigIntBE } from '../bigint-buffer/index.js';
2
- import { Fr } from './fields.js';
3
- /**
4
- * Class to wrap a single point coordinate.
5
- * This class handles the complexities of representing point coordinates as 32 byte buffers as well as fields.
6
- * The coordinate value is split across 2 fields to ensure that the max size of a field is not breached.
7
- * This is achieved by placing the most significant byte of the lower field into the least significant byte of the higher field.
8
- * Calls to 'toBuffer' or 'toBigInt' undo this change and simply return the original 32 byte value.
9
- * Calls to 'toFieldsBuffer' will return a 64 bytes buffer containing the serialized fields.
10
- */ export class Coordinate {
11
- fields;
12
- static ZERO = new Coordinate([
13
- Fr.ZERO,
14
- Fr.ZERO
15
- ]);
16
- constructor(/**
17
- * The fields of the coordinate value. Least significant limb at index 0.
18
- */ fields){
19
- this.fields = fields;
20
- }
21
- /**
22
- * Converts the coordinate data into a tuple of fields
23
- * @returns A tuple of the coordinate fields
24
- */ toFields() {
25
- return this.fields;
26
- }
27
- /**
28
- * Generates a random coordinate value
29
- * @returns The random coordinate
30
- */ static random() {
31
- return this.fromField(Fr.random());
32
- }
33
- /**
34
- * serializes the object to buffer of 2 fields.
35
- * @returns A buffer serialization of the object.
36
- */ toFieldsBuffer() {
37
- return Buffer.concat([
38
- this.fields[0].toBuffer(),
39
- this.fields[1].toBuffer()
40
- ]);
41
- }
42
- /**
43
- * serializes the coordinate to a single 32 byte buffer.
44
- * @returns A buffer serialization of the object.
45
- */ toBuffer() {
46
- const buf0 = this.fields[0].toBuffer();
47
- const buf1 = this.fields[1].toBuffer();
48
- buf0[0] = buf1[31];
49
- return buf0;
50
- }
51
- /**
52
- * Returns true if this coordinate is equal to the one provided
53
- * @param other - The coordinate against which to compare
54
- * @returns True if the coordinates are the same, false otherwise
55
- */ equals(other) {
56
- return this.toBigInt() === other.toBigInt();
57
- }
58
- /**
59
- * Returns the coordinate's value as a bigint
60
- * @returns The coordinate value as a bigint
61
- */ toBigInt() {
62
- return toBigIntBE(this.toBuffer());
63
- }
64
- /**
65
- * Creates a coordinate object from a 32 byte coordinate value
66
- * @param coordinate - A buffer containing the 32 byte coordinate value
67
- * @returns The new coordinate object
68
- */ static fromBuffer(coordinate) {
69
- if (coordinate.length != 32) {
70
- throw new Error(`Invalid size of coordinate buffer`);
71
- }
72
- const buf0 = Buffer.alloc(32);
73
- coordinate.copy(buf0, 0, 0, 32);
74
- const buf1 = Buffer.alloc(32);
75
- buf1[31] = buf0[0];
76
- buf0[0] = 0;
77
- return new Coordinate([
78
- Fr.fromBuffer(buf0),
79
- Fr.fromBuffer(buf1)
80
- ]);
81
- }
82
- /**
83
- * Creates a coordinate object from a field
84
- * @param coordinate - The field containing the coordinate
85
- * @returns The new coordinate object
86
- */ static fromField(coordinate) {
87
- const buf0 = coordinate.toBuffer();
88
- const buf1 = Buffer.alloc(32);
89
- buf1[31] = buf0[0];
90
- buf0[0] = 0;
91
- return new Coordinate([
92
- Fr.fromBuffer(buf0),
93
- Fr.fromBuffer(buf1)
94
- ]);
95
- }
96
- }