@aztec/foundation 0.0.1-commit.d3ec352c → 0.0.1-commit.d58ff9d0

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 (473) hide show
  1. package/dest/array/index.d.ts +2 -1
  2. package/dest/array/index.d.ts.map +1 -1
  3. package/dest/array/index.js +1 -0
  4. package/dest/array/sorted_array.d.ts +15 -0
  5. package/dest/array/sorted_array.d.ts.map +1 -0
  6. package/dest/array/sorted_array.js +109 -0
  7. package/dest/bigint-buffer/index.d.ts +1 -1
  8. package/dest/bigint-buffer/index.d.ts.map +1 -1
  9. package/dest/bigint-buffer/index.js +6 -1
  10. package/dest/branded-types/block_number.d.ts +6 -3
  11. package/dest/branded-types/block_number.d.ts.map +1 -1
  12. package/dest/branded-types/block_number.js +18 -4
  13. package/dest/branded-types/buffer32_hash.d.ts +27 -0
  14. package/dest/branded-types/buffer32_hash.d.ts.map +1 -0
  15. package/dest/branded-types/buffer32_hash.js +12 -0
  16. package/dest/branded-types/checkpoint_number.d.ts +17 -3
  17. package/dest/branded-types/checkpoint_number.d.ts.map +1 -1
  18. package/dest/branded-types/checkpoint_number.js +28 -8
  19. package/dest/branded-types/epoch.d.ts +2 -2
  20. package/dest/branded-types/epoch.d.ts.map +1 -1
  21. package/dest/branded-types/index.d.ts +4 -2
  22. package/dest/branded-types/index.d.ts.map +1 -1
  23. package/dest/branded-types/index.js +3 -1
  24. package/dest/branded-types/index_within_checkpoint.d.ts +42 -0
  25. package/dest/branded-types/index_within_checkpoint.d.ts.map +1 -0
  26. package/dest/branded-types/index_within_checkpoint.js +59 -0
  27. package/dest/branded-types/slot.d.ts +5 -2
  28. package/dest/branded-types/slot.d.ts.map +1 -1
  29. package/dest/branded-types/slot.js +3 -0
  30. package/dest/buffer/buffer16.d.ts +7 -2
  31. package/dest/buffer/buffer16.d.ts.map +1 -1
  32. package/dest/buffer/buffer16.js +4 -2
  33. package/dest/buffer/buffer32.d.ts +29 -59
  34. package/dest/buffer/buffer32.d.ts.map +1 -1
  35. package/dest/buffer/buffer32.js +33 -65
  36. package/dest/buffer/index.d.ts +2 -1
  37. package/dest/buffer/index.d.ts.map +1 -1
  38. package/dest/buffer/index.js +1 -0
  39. package/dest/buffer/utils.d.ts +3 -0
  40. package/dest/buffer/utils.d.ts.map +1 -0
  41. package/dest/buffer/utils.js +7 -0
  42. package/dest/collection/array.d.ts +22 -1
  43. package/dest/collection/array.d.ts.map +1 -1
  44. package/dest/collection/array.js +84 -0
  45. package/dest/collection/index.d.ts +3 -1
  46. package/dest/collection/index.d.ts.map +1 -1
  47. package/dest/collection/index.js +2 -0
  48. package/dest/collection/lru_map.d.ts +41 -0
  49. package/dest/collection/lru_map.d.ts.map +1 -0
  50. package/dest/collection/lru_map.js +119 -0
  51. package/dest/collection/lru_set.d.ts +35 -0
  52. package/dest/collection/lru_set.d.ts.map +1 -0
  53. package/dest/collection/lru_set.js +95 -0
  54. package/dest/committable/committable.js +1 -1
  55. package/dest/config/env_var.d.ts +2 -2
  56. package/dest/config/env_var.d.ts.map +1 -1
  57. package/dest/config/index.d.ts +79 -38
  58. package/dest/config/index.d.ts.map +1 -1
  59. package/dest/config/index.js +103 -64
  60. package/dest/config/network_config.d.ts +17 -31
  61. package/dest/config/network_config.d.ts.map +1 -1
  62. package/dest/config/network_config.js +6 -1
  63. package/dest/config/network_name.d.ts +2 -2
  64. package/dest/config/network_name.d.ts.map +1 -1
  65. package/dest/config/network_name.js +3 -3
  66. package/dest/config/parse-env.d.ts +3 -0
  67. package/dest/config/parse-env.d.ts.map +1 -0
  68. package/dest/config/parse-env.js +7 -0
  69. package/dest/config/secret_value.d.ts +2 -2
  70. package/dest/config/secret_value.d.ts.map +1 -1
  71. package/dest/config/secret_value.js +3 -1
  72. package/dest/crypto/aes128/index.d.ts +2 -1
  73. package/dest/crypto/aes128/index.d.ts.map +1 -1
  74. package/dest/crypto/aes128/index.js +11 -2
  75. package/dest/crypto/bls/bn254_keystore.d.ts +10 -177
  76. package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -1
  77. package/dest/crypto/bls/bn254_keystore.js +23 -35
  78. package/dest/crypto/bls/index.js +1 -1
  79. package/dest/crypto/bn254/index.d.ts +35 -51
  80. package/dest/crypto/bn254/index.d.ts.map +1 -1
  81. package/dest/crypto/bn254/index.js +51 -140
  82. package/dest/crypto/ecdsa/signature.d.ts +11 -2
  83. package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
  84. package/dest/crypto/ecdsa/signature.js +2 -2
  85. package/dest/crypto/grumpkin/index.d.ts +4 -2
  86. package/dest/crypto/grumpkin/index.d.ts.map +1 -1
  87. package/dest/crypto/grumpkin/index.js +2 -1
  88. package/dest/crypto/keys/index.d.ts +4 -3
  89. package/dest/crypto/keys/index.d.ts.map +1 -1
  90. package/dest/crypto/keys/index.js +31 -7
  91. package/dest/crypto/pedersen/pedersen.wasm.d.ts +2 -2
  92. package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
  93. package/dest/crypto/pedersen/pedersen.wasm.js +1 -1
  94. package/dest/crypto/poseidon/index.d.ts +2 -3
  95. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  96. package/dest/crypto/poseidon/index.js +41 -43
  97. package/dest/crypto/random/randomness_singleton.d.ts +4 -3
  98. package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
  99. package/dest/crypto/random/randomness_singleton.js +5 -5
  100. package/dest/crypto/schnorr/index.d.ts +10 -8
  101. package/dest/crypto/schnorr/index.d.ts.map +1 -1
  102. package/dest/crypto/schnorr/index.js +7 -7
  103. package/dest/crypto/schnorr/signature.d.ts +10 -30
  104. package/dest/crypto/schnorr/signature.d.ts.map +1 -1
  105. package/dest/crypto/schnorr/signature.js +21 -37
  106. package/dest/crypto/secp256k1-signer/utils.d.ts +12 -1
  107. package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
  108. package/dest/crypto/secp256k1-signer/utils.js +26 -0
  109. package/dest/crypto/sha256/index.d.ts +2 -2
  110. package/dest/crypto/sha256/index.d.ts.map +1 -1
  111. package/dest/crypto/sha256/index.js +1 -1
  112. package/dest/crypto/sha512/index.d.ts +2 -2
  113. package/dest/crypto/sha512/index.d.ts.map +1 -1
  114. package/dest/crypto/sha512/index.js +1 -1
  115. package/dest/crypto/signature/index.d.ts +2 -2
  116. package/dest/crypto/signature/index.d.ts.map +1 -1
  117. package/dest/crypto/sync/pedersen/index.d.ts +2 -2
  118. package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
  119. package/dest/crypto/sync/pedersen/index.js +1 -1
  120. package/dest/crypto/sync/poseidon/index.d.ts +2 -3
  121. package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
  122. package/dest/crypto/sync/poseidon/index.js +1 -9
  123. package/dest/{fields/bls12_fields.d.ts → curves/bls12/field.d.ts} +5 -5
  124. package/dest/curves/bls12/field.d.ts.map +1 -0
  125. package/dest/{fields/bls12_fields.js → curves/bls12/field.js} +11 -13
  126. package/dest/curves/bls12/index.d.ts +3 -0
  127. package/dest/curves/bls12/index.d.ts.map +1 -0
  128. package/dest/curves/bls12/index.js +2 -0
  129. package/dest/{fields/bls12_point.d.ts → curves/bls12/point.d.ts} +14 -5
  130. package/dest/curves/bls12/point.d.ts.map +1 -0
  131. package/dest/{fields/bls12_point.js → curves/bls12/point.js} +10 -8
  132. package/dest/curves/bn254/field.d.ts +185 -0
  133. package/dest/curves/bn254/field.d.ts.map +1 -0
  134. package/dest/{fields/fields.js → curves/bn254/field.js} +57 -62
  135. package/dest/curves/bn254/index.d.ts +3 -0
  136. package/dest/curves/bn254/index.d.ts.map +1 -0
  137. package/dest/curves/bn254/index.js +2 -0
  138. package/dest/curves/bn254/point.d.ts +54 -0
  139. package/dest/curves/bn254/point.d.ts.map +1 -0
  140. package/dest/curves/bn254/point.js +143 -0
  141. package/dest/curves/grumpkin/index.d.ts +10 -0
  142. package/dest/curves/grumpkin/index.d.ts.map +1 -0
  143. package/dest/curves/grumpkin/index.js +3 -0
  144. package/dest/{fields → curves/grumpkin}/point.d.ts +23 -28
  145. package/dest/curves/grumpkin/point.d.ts.map +1 -0
  146. package/dest/{fields → curves/grumpkin}/point.js +35 -49
  147. package/dest/error/index.d.ts +4 -4
  148. package/dest/error/index.d.ts.map +1 -1
  149. package/dest/eth-address/index.d.ts +4 -3
  150. package/dest/eth-address/index.d.ts.map +1 -1
  151. package/dest/eth-address/index.js +10 -6
  152. package/dest/eth-signature/eth_signature.d.ts +6 -2
  153. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  154. package/dest/eth-signature/eth_signature.js +7 -2
  155. package/dest/fifo/fifo_frame_reader.d.ts +41 -0
  156. package/dest/fifo/fifo_frame_reader.d.ts.map +1 -0
  157. package/dest/fifo/fifo_frame_reader.js +91 -0
  158. package/dest/fifo/index.d.ts +2 -0
  159. package/dest/fifo/index.d.ts.map +1 -0
  160. package/dest/fifo/index.js +1 -0
  161. package/dest/fifo_set/fifo_set.d.ts +15 -0
  162. package/dest/fifo_set/fifo_set.d.ts.map +1 -0
  163. package/dest/fifo_set/fifo_set.js +39 -0
  164. package/dest/fifo_set/index.d.ts +2 -0
  165. package/dest/fifo_set/index.d.ts.map +1 -0
  166. package/dest/fifo_set/index.js +1 -0
  167. package/dest/iterator/filter.d.ts +3 -0
  168. package/dest/iterator/filter.d.ts.map +1 -0
  169. package/dest/iterator/filter.js +7 -0
  170. package/dest/iterator/index.d.ts +2 -0
  171. package/dest/iterator/index.d.ts.map +1 -0
  172. package/dest/iterator/index.js +1 -0
  173. package/dest/jest/setup.js +28 -1
  174. package/dest/json-rpc/client/fetch.d.ts +1 -1
  175. package/dest/json-rpc/client/fetch.d.ts.map +1 -1
  176. package/dest/json-rpc/client/fetch.js +4 -3
  177. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +2 -1
  178. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
  179. package/dest/json-rpc/client/safe_json_rpc_client.js +3 -3
  180. package/dest/json-rpc/client/undici.d.ts +1 -1
  181. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  182. package/dest/json-rpc/client/undici.js +23 -4
  183. package/dest/json-rpc/fixtures/class_a.d.ts +3 -3
  184. package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
  185. package/dest/json-rpc/fixtures/class_b.d.ts +3 -3
  186. package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -1
  187. package/dest/json-rpc/fixtures/test_state.d.ts +4 -8
  188. package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
  189. package/dest/json-rpc/fixtures/test_state.js +57 -17
  190. package/dest/json-rpc/server/api_key_auth.d.ts +19 -0
  191. package/dest/json-rpc/server/api_key_auth.d.ts.map +1 -0
  192. package/dest/json-rpc/server/api_key_auth.js +57 -0
  193. package/dest/json-rpc/server/index.d.ts +2 -1
  194. package/dest/json-rpc/server/index.d.ts.map +1 -1
  195. package/dest/json-rpc/server/index.js +1 -0
  196. package/dest/json-rpc/server/safe_json_rpc_server.d.ts +8 -3
  197. package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
  198. package/dest/json-rpc/server/safe_json_rpc_server.js +28 -14
  199. package/dest/log/bigint-utils.d.ts +5 -0
  200. package/dest/log/bigint-utils.d.ts.map +1 -0
  201. package/dest/log/bigint-utils.js +21 -0
  202. package/dest/log/gcloud-logger-config.d.ts +1 -1
  203. package/dest/log/gcloud-logger-config.d.ts.map +1 -1
  204. package/dest/log/gcloud-logger-config.js +3 -0
  205. package/dest/log/libp2p_logger.d.ts +5 -2
  206. package/dest/log/libp2p_logger.d.ts.map +1 -1
  207. package/dest/log/libp2p_logger.js +14 -4
  208. package/dest/log/log-filters.d.ts +17 -4
  209. package/dest/log/log-filters.d.ts.map +1 -1
  210. package/dest/log/log-filters.js +26 -12
  211. package/dest/log/pino-logger-server.d.ts +9 -0
  212. package/dest/log/pino-logger-server.d.ts.map +1 -0
  213. package/dest/log/pino-logger-server.js +18 -0
  214. package/dest/log/pino-logger.d.ts +37 -8
  215. package/dest/log/pino-logger.d.ts.map +1 -1
  216. package/dest/log/pino-logger.js +138 -30
  217. package/dest/noir/noir_package_config.d.ts +19 -104
  218. package/dest/noir/noir_package_config.d.ts.map +1 -1
  219. package/dest/noir/noir_package_config.js +1 -1
  220. package/dest/promise/running-promise.d.ts +5 -4
  221. package/dest/promise/running-promise.d.ts.map +1 -1
  222. package/dest/promise/running-promise.js +7 -3
  223. package/dest/queue/base_memory_queue.d.ts +2 -2
  224. package/dest/queue/base_memory_queue.d.ts.map +1 -1
  225. package/dest/queue/batch_queue.d.ts +1 -1
  226. package/dest/queue/batch_queue.d.ts.map +1 -1
  227. package/dest/queue/batch_queue.js +1 -0
  228. package/dest/queue/semaphore.d.ts +5 -1
  229. package/dest/queue/semaphore.d.ts.map +1 -1
  230. package/dest/retry/index.d.ts +41 -3
  231. package/dest/retry/index.d.ts.map +1 -1
  232. package/dest/retry/index.js +55 -2
  233. package/dest/schemas/api.d.ts +12 -10
  234. package/dest/schemas/api.d.ts.map +1 -1
  235. package/dest/schemas/api.js +7 -1
  236. package/dest/schemas/parse.d.ts +4 -4
  237. package/dest/schemas/parse.d.ts.map +1 -1
  238. package/dest/schemas/parse.js +6 -5
  239. package/dest/schemas/schemas.d.ts +20 -16
  240. package/dest/schemas/schemas.d.ts.map +1 -1
  241. package/dest/schemas/schemas.js +9 -3
  242. package/dest/schemas/types.d.ts +32 -2
  243. package/dest/schemas/types.d.ts.map +1 -1
  244. package/dest/schemas/types.js +25 -1
  245. package/dest/schemas/utils.d.ts +7 -11
  246. package/dest/schemas/utils.d.ts.map +1 -1
  247. package/dest/schemas/utils.js +2 -18
  248. package/dest/serialize/buffer_reader.d.ts +14 -4
  249. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  250. package/dest/serialize/buffer_reader.js +26 -4
  251. package/dest/serialize/buffer_sink.d.ts +134 -0
  252. package/dest/serialize/buffer_sink.d.ts.map +1 -0
  253. package/dest/serialize/buffer_sink.js +297 -0
  254. package/dest/serialize/field_reader.d.ts +2 -2
  255. package/dest/serialize/field_reader.d.ts.map +1 -1
  256. package/dest/serialize/field_reader.js +1 -1
  257. package/dest/serialize/free_funcs.d.ts +2 -2
  258. package/dest/serialize/free_funcs.d.ts.map +1 -1
  259. package/dest/serialize/free_funcs.js +1 -1
  260. package/dest/serialize/index.d.ts +2 -1
  261. package/dest/serialize/index.d.ts.map +1 -1
  262. package/dest/serialize/index.js +1 -0
  263. package/dest/serialize/serialize.d.ts +20 -2
  264. package/dest/serialize/serialize.d.ts.map +1 -1
  265. package/dest/serialize/serialize.js +32 -1
  266. package/dest/sleep/index.d.ts +4 -1
  267. package/dest/sleep/index.d.ts.map +1 -1
  268. package/dest/sleep/index.js +14 -1
  269. package/dest/string/index.js +1 -1
  270. package/dest/testing/files/index.d.ts +2 -3
  271. package/dest/testing/files/index.d.ts.map +1 -1
  272. package/dest/testing/files/index.js +1 -2
  273. package/dest/timer/date.d.ts +26 -1
  274. package/dest/timer/date.d.ts.map +1 -1
  275. package/dest/timer/date.js +36 -0
  276. package/dest/timer/index.d.ts +2 -2
  277. package/dest/timer/index.d.ts.map +1 -1
  278. package/dest/timer/index.js +1 -1
  279. package/dest/timer/timeout.d.ts +3 -1
  280. package/dest/timer/timeout.d.ts.map +1 -1
  281. package/dest/timer/timeout.js +26 -0
  282. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +11 -2
  283. package/dest/transport/dispatch/create_dispatch_proxy.d.ts.map +1 -1
  284. package/dest/transport/index.d.ts +1 -2
  285. package/dest/transport/index.d.ts.map +1 -1
  286. package/dest/transport/index.js +0 -1
  287. package/dest/transport/transport_client.js +2 -2
  288. package/dest/trees/balanced_merkle_tree_root.d.ts +16 -0
  289. package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -0
  290. package/dest/trees/{balanced_merkle_tree.js → balanced_merkle_tree_root.js} +3 -17
  291. package/dest/trees/hasher.d.ts +4 -1
  292. package/dest/trees/hasher.d.ts.map +1 -1
  293. package/dest/trees/hasher.js +10 -5
  294. package/dest/trees/index.d.ts +4 -4
  295. package/dest/trees/index.d.ts.map +1 -1
  296. package/dest/trees/index.js +3 -3
  297. package/dest/trees/indexed_merkle_tree.js +1 -1
  298. package/dest/trees/indexed_merkle_tree_calculator.d.ts +1 -1
  299. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
  300. package/dest/trees/indexed_merkle_tree_calculator.js +5 -1
  301. package/dest/trees/membership_witness.d.ts +9 -3
  302. package/dest/trees/membership_witness.d.ts.map +1 -1
  303. package/dest/trees/membership_witness.js +1 -1
  304. package/dest/trees/merkle_tree_calculator.d.ts +4 -2
  305. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  306. package/dest/trees/merkle_tree_calculator.js +1 -5
  307. package/dest/trees/sibling_path.d.ts +7 -5
  308. package/dest/trees/sibling_path.d.ts.map +1 -1
  309. package/dest/trees/sibling_path.js +11 -9
  310. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +2 -3
  311. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -1
  312. package/dest/trees/unbalanced_merkle_tree_calculator.js +1 -5
  313. package/dest/trees/{unbalanced_merkle_tree.d.ts → unbalanced_merkle_tree_root.d.ts} +4 -7
  314. package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -0
  315. package/dest/trees/{unbalanced_merkle_tree.js → unbalanced_merkle_tree_root.js} +12 -51
  316. package/dest/trees/unbalanced_tree_store.d.ts +5 -1
  317. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
  318. package/dest/trees/unbalanced_tree_store.js +49 -1
  319. package/dest/types/index.d.ts +28 -2
  320. package/dest/types/index.d.ts.map +1 -1
  321. package/dest/types/index.js +21 -0
  322. package/package.json +50 -9
  323. package/src/array/index.ts +1 -0
  324. package/src/array/sorted_array.ts +138 -0
  325. package/src/bigint-buffer/index.ts +6 -1
  326. package/src/branded-types/block_number.ts +25 -2
  327. package/src/branded-types/buffer32_hash.ts +38 -0
  328. package/src/branded-types/checkpoint_number.ts +37 -7
  329. package/src/branded-types/epoch.ts +1 -1
  330. package/src/branded-types/index.ts +3 -1
  331. package/src/branded-types/index_within_checkpoint.ts +88 -0
  332. package/src/branded-types/slot.ts +6 -1
  333. package/src/buffer/buffer16.ts +5 -2
  334. package/src/buffer/buffer32.ts +41 -70
  335. package/src/buffer/index.ts +1 -0
  336. package/src/buffer/utils.ts +8 -0
  337. package/src/collection/array.ts +86 -0
  338. package/src/collection/index.ts +2 -0
  339. package/src/collection/lru_map.ts +143 -0
  340. package/src/collection/lru_set.ts +115 -0
  341. package/src/committable/committable.ts +1 -1
  342. package/src/config/env_var.ts +127 -34
  343. package/src/config/index.ts +183 -114
  344. package/src/config/network_config.ts +5 -0
  345. package/src/config/network_name.ts +6 -6
  346. package/src/config/parse-env.ts +4 -0
  347. package/src/config/secret_value.ts +1 -1
  348. package/src/crypto/aes128/index.ts +11 -2
  349. package/src/crypto/bls/bn254_keystore.ts +34 -44
  350. package/src/crypto/bls/index.ts +1 -1
  351. package/src/crypto/bn254/index.ts +50 -159
  352. package/src/crypto/ecdsa/signature.ts +2 -2
  353. package/src/crypto/grumpkin/index.ts +3 -1
  354. package/src/crypto/keys/index.ts +21 -5
  355. package/src/crypto/pedersen/pedersen.wasm.ts +1 -1
  356. package/src/crypto/poseidon/index.ts +43 -45
  357. package/src/crypto/random/randomness_singleton.ts +6 -4
  358. package/src/crypto/schnorr/index.ts +11 -9
  359. package/src/crypto/schnorr/signature.ts +18 -47
  360. package/src/crypto/secp256k1-signer/utils.ts +32 -0
  361. package/src/crypto/sha256/index.ts +1 -1
  362. package/src/crypto/sha512/index.ts +1 -1
  363. package/src/crypto/signature/index.ts +1 -1
  364. package/src/crypto/sync/pedersen/index.ts +1 -1
  365. package/src/crypto/sync/poseidon/index.ts +1 -10
  366. package/src/{fields/bls12_fields.ts → curves/bls12/field.ts} +5 -12
  367. package/src/curves/bls12/index.ts +2 -0
  368. package/src/{fields/bls12_point.ts → curves/bls12/point.ts} +7 -7
  369. package/src/{fields/fields.ts → curves/bn254/field.ts} +68 -86
  370. package/src/curves/bn254/index.ts +2 -0
  371. package/src/curves/bn254/point.ts +170 -0
  372. package/src/curves/grumpkin/index.ts +11 -0
  373. package/src/{fields → curves/grumpkin}/point.ts +29 -46
  374. package/src/eth-address/index.ts +8 -6
  375. package/src/eth-signature/eth_signature.ts +7 -1
  376. package/src/fifo/fifo_frame_reader.ts +113 -0
  377. package/src/fifo/index.ts +1 -0
  378. package/src/fifo_set/fifo_set.ts +52 -0
  379. package/src/fifo_set/index.ts +1 -0
  380. package/src/iterator/filter.ts +11 -0
  381. package/src/iterator/index.ts +1 -0
  382. package/src/jest/setup.mjs +31 -1
  383. package/src/json-rpc/client/fetch.ts +4 -3
  384. package/src/json-rpc/client/safe_json_rpc_client.ts +4 -2
  385. package/src/json-rpc/client/undici.ts +23 -3
  386. package/src/json-rpc/fixtures/test_state.ts +10 -10
  387. package/src/json-rpc/server/api_key_auth.ts +63 -0
  388. package/src/json-rpc/server/index.ts +1 -0
  389. package/src/json-rpc/server/safe_json_rpc_server.ts +32 -14
  390. package/src/log/bigint-utils.ts +25 -0
  391. package/src/log/gcloud-logger-config.ts +5 -0
  392. package/src/log/libp2p_logger.ts +12 -5
  393. package/src/log/log-filters.ts +29 -11
  394. package/src/log/pino-logger-server.ts +25 -0
  395. package/src/log/pino-logger.ts +162 -40
  396. package/src/noir/noir_package_config.ts +32 -20
  397. package/src/promise/running-promise.ts +8 -5
  398. package/src/queue/base_memory_queue.ts +1 -1
  399. package/src/queue/batch_queue.ts +1 -0
  400. package/src/queue/semaphore.ts +5 -0
  401. package/src/retry/index.ts +84 -4
  402. package/src/schemas/api.ts +25 -25
  403. package/src/schemas/parse.ts +9 -6
  404. package/src/schemas/schemas.ts +17 -6
  405. package/src/schemas/types.ts +34 -1
  406. package/src/schemas/utils.ts +4 -38
  407. package/src/serialize/buffer_reader.ts +36 -9
  408. package/src/serialize/buffer_sink.ts +350 -0
  409. package/src/serialize/field_reader.ts +1 -1
  410. package/src/serialize/free_funcs.ts +1 -1
  411. package/src/serialize/index.ts +1 -0
  412. package/src/serialize/serialize.ts +33 -1
  413. package/src/sleep/index.ts +16 -1
  414. package/src/string/index.ts +1 -1
  415. package/src/testing/files/index.ts +1 -2
  416. package/src/timer/date.ts +52 -0
  417. package/src/timer/index.ts +1 -1
  418. package/src/timer/timeout.ts +31 -0
  419. package/src/transport/dispatch/create_dispatch_proxy.ts +11 -1
  420. package/src/transport/index.ts +0 -1
  421. package/src/transport/transport_client.ts +2 -2
  422. package/src/trees/{balanced_merkle_tree.ts → balanced_merkle_tree_root.ts} +3 -20
  423. package/src/trees/hasher.ts +12 -0
  424. package/src/trees/index.ts +3 -3
  425. package/src/trees/indexed_merkle_tree.ts +1 -1
  426. package/src/trees/indexed_merkle_tree_calculator.ts +5 -1
  427. package/src/trees/membership_witness.ts +1 -1
  428. package/src/trees/merkle_tree_calculator.ts +4 -10
  429. package/src/trees/sibling_path.ts +12 -7
  430. package/src/trees/unbalanced_merkle_tree_calculator.ts +1 -12
  431. package/src/trees/{unbalanced_merkle_tree.ts → unbalanced_merkle_tree_root.ts} +17 -64
  432. package/src/trees/unbalanced_tree_store.ts +57 -2
  433. package/src/types/index.ts +58 -1
  434. package/dest/crypto/bn254/bn254_utils.d.ts +0 -39
  435. package/dest/crypto/bn254/bn254_utils.d.ts.map +0 -1
  436. package/dest/crypto/bn254/bn254_utils.js +0 -56
  437. package/dest/crypto/index.d.ts +0 -17
  438. package/dest/crypto/index.d.ts.map +0 -1
  439. package/dest/crypto/index.js +0 -16
  440. package/dest/crypto/serialize.d.ts +0 -51
  441. package/dest/crypto/serialize.d.ts.map +0 -1
  442. package/dest/crypto/serialize.js +0 -68
  443. package/dest/fields/bls12_fields.d.ts.map +0 -1
  444. package/dest/fields/bls12_point.d.ts.map +0 -1
  445. package/dest/fields/coordinate.d.ts +0 -63
  446. package/dest/fields/coordinate.d.ts.map +0 -1
  447. package/dest/fields/coordinate.js +0 -96
  448. package/dest/fields/fields.d.ts +0 -188
  449. package/dest/fields/fields.d.ts.map +0 -1
  450. package/dest/fields/index.d.ts +0 -6
  451. package/dest/fields/index.d.ts.map +0 -1
  452. package/dest/fields/index.js +0 -5
  453. package/dest/fields/point.d.ts.map +0 -1
  454. package/dest/index.d.ts +0 -31
  455. package/dest/index.d.ts.map +0 -1
  456. package/dest/index.js +0 -31
  457. package/dest/json-rpc/server/telemetry.d.ts +0 -2
  458. package/dest/json-rpc/server/telemetry.d.ts.map +0 -1
  459. package/dest/json-rpc/server/telemetry.js +0 -0
  460. package/dest/transport/dispatch/create_dispatch_fn.d.ts +0 -25
  461. package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +0 -1
  462. package/dest/transport/dispatch/create_dispatch_fn.js +0 -17
  463. package/dest/trees/balanced_merkle_tree.d.ts +0 -22
  464. package/dest/trees/balanced_merkle_tree.d.ts.map +0 -1
  465. package/dest/trees/unbalanced_merkle_tree.d.ts.map +0 -1
  466. package/src/crypto/bn254/bn254_utils.ts +0 -64
  467. package/src/crypto/index.ts +0 -16
  468. package/src/crypto/serialize.ts +0 -85
  469. package/src/fields/coordinate.ts +0 -104
  470. package/src/fields/index.ts +0 -5
  471. package/src/index.ts +0 -31
  472. package/src/json-rpc/server/telemetry.ts +0 -0
  473. package/src/transport/dispatch/create_dispatch_fn.ts +0 -35
@@ -1 +1 @@
1
- {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../src/crypto/ecdsa/signature.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;GAGG;AACH,qBAAa,cAAe,YAAW,SAAS;IAKrC,CAAC,EAAE,MAAM;IAIT,CAAC,EAAE,MAAM;IAIT,CAAC,EAAE,MAAM;IAZlB;IACE;;OAEG;IACI,CAAC,EAAE,MAAM;IAChB;;OAEG;IACI,CAAC,EAAE,MAAM;IAChB;;OAEG;IACI,CAAC,EAAE,MAAM,EAWjB;IAED;;;OAGG;IACH,QAAQ,wBAEP;IAED;;;;OAIG;IACH,OAAc,UAAU,CAAC,MAAM,EAAE,MAAM,kBAEtC;IAED;;;;;;OAMG;IACH,OAAc,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,kBAExD;IAED;;;OAGG;IACH,OAAc,MAAM,mBAEnB;IAED;;;OAGG;IACH,QAAQ,WAEP;IAED;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,UAAQ,GAAG,EAAE,EAAE,CAY/B;CACF"}
1
+ {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../src/crypto/ecdsa/signature.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;GAGG;AACH,qBAAa,cAAe,YAAW,SAAS;IAE5C;;OAEG;IACI,CAAC,EAAE,MAAM;IAChB;;OAEG;IACI,CAAC,EAAE,MAAM;IAChB;;OAEG;IACI,CAAC,EAAE,MAAM;IAZlB;IACE;;OAEG;IACI,CAAC,EAAE,MAAM;IAChB;;OAEG;IACI,CAAC,EAAE,MAAM;IAChB;;OAEG;IACI,CAAC,EAAE,MAAM,EAWjB;IAED;;;OAGG;IACH,QAAQ,wBAEP;IAED;;;;OAIG;IACH,OAAc,UAAU,CAAC,MAAM,EAAE,MAAM,kBAEtC;IAED;;;;;;OAMG;IACH,OAAc,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,kBAExD;IAED;;;OAGG;IACH,OAAc,MAAM,mBAEnB;IAED;;;OAGG;IACH,QAAQ,WAEP;IAED;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,UAAQ,GAAG,EAAE,EAAE,CAY/B;CACF"}
@@ -1,6 +1,6 @@
1
1
  import { toBufferBE } from '@aztec/foundation/bigint-buffer';
2
- import { randomBytes } from '@aztec/foundation/crypto';
3
- import { Fr } from '@aztec/foundation/fields';
2
+ import { randomBytes } from '@aztec/foundation/crypto/random';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
4
  import { mapTuple } from '@aztec/foundation/serialize';
5
5
  /**
6
6
  * ECDSA signature used for transactions.
@@ -1,4 +1,6 @@
1
- import { Fr, type GrumpkinScalar, Point } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
+ import type { GrumpkinScalar } from '@aztec/foundation/curves/grumpkin';
3
+ import { Point } from '@aztec/foundation/curves/grumpkin';
2
4
  /**
3
5
  * Grumpkin elliptic curve operations.
4
6
  */
@@ -37,4 +39,4 @@ export declare class Grumpkin {
37
39
  */
38
40
  static reduce512BufferToFr(uint512Buf: Buffer): Promise<Fr>;
39
41
  }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vZ3J1bXBraW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEVBQUUsRUFBRSxLQUFLLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUxRTs7R0FFRztBQUNILHFCQUFhLFFBQVE7SUFFbkIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLFFBS3JCO0lBRUo7Ozs7O09BS0c7SUFDSCxPQUFvQixHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsY0FBYyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FRNUU7SUFFRDs7Ozs7T0FLRztJQUNILE9BQW9CLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQVExRDtJQUVEOzs7OztPQUtHO0lBQ0gsT0FBb0IsUUFBUSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsY0FBYyxvQkFTbkU7SUFFRDs7O09BR0c7SUFDSCxPQUFvQixXQUFXLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUs3QztJQUVEOzs7O09BSUc7SUFDSCxPQUFvQixtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FLdkU7Q0FDRiJ9
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vZ3J1bXBraW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUUxRDs7R0FFRztBQUNILHFCQUFhLFFBQVE7SUFFbkIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLFFBS3JCO0lBRUo7Ozs7O09BS0c7SUFDSCxPQUFvQixHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsY0FBYyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FRNUU7SUFFRDs7Ozs7T0FLRztJQUNILE9BQW9CLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQVExRDtJQUVEOzs7OztPQUtHO0lBQ0gsT0FBb0IsUUFBUSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsY0FBYyxvQkFTbkU7SUFFRDs7O09BR0c7SUFDSCxPQUFvQixXQUFXLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUs3QztJQUVEOzs7O09BSUc7SUFDSCxPQUFvQixtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FLdkU7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/grumpkin/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,KAAK,cAAc,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAE1E;;GAEG;AACH,qBAAa,QAAQ;IAEnB,MAAM,CAAC,QAAQ,CAAC,SAAS,QAKrB;IAEJ;;;;;OAKG;IACH,OAAoB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAQ5E;IAED;;;;;OAKG;IACH,OAAoB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAQ1D;IAED;;;;;OAKG;IACH,OAAoB,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,cAAc,oBASnE;IAED;;;OAGG;IACH,OAAoB,WAAW,IAAI,OAAO,CAAC,EAAE,CAAC,CAK7C;IAED;;;;OAIG;IACH,OAAoB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAKvE;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/grumpkin/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAE1D;;GAEG;AACH,qBAAa,QAAQ;IAEnB,MAAM,CAAC,QAAQ,CAAC,SAAS,QAKrB;IAEJ;;;;;OAKG;IACH,OAAoB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAQ5E;IAED;;;;;OAKG;IACH,OAAoB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAQ1D;IAED;;;;;OAKG;IACH,OAAoB,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,cAAc,oBASnE;IAED;;;OAGG;IACH,OAAoB,WAAW,IAAI,OAAO,CAAC,EAAE,CAAC,CAK7C;IAED;;;;OAIG;IACH,OAAoB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAKvE;CACF"}
@@ -1,5 +1,6 @@
1
1
  import { BarretenbergSync } from '@aztec/bb.js';
2
- import { Fr, Point } from '@aztec/foundation/fields';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
+ import { Point } from '@aztec/foundation/curves/grumpkin';
3
4
  /**
4
5
  * Grumpkin elliptic curve operations.
5
6
  */ export class Grumpkin {
@@ -1,3 +1,4 @@
1
- import { Fr } from '../../fields/fields.js';
2
- export declare function vkAsFieldsMegaHonk(input: Buffer): Promise<Fr[]>;
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8va2V5cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUMsd0JBQXNCLGtCQUFrQixDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBS3JFIn0=
1
+ import { CircuitKind } from '@aztec/bb.js';
2
+ import { Fr } from '../../curves/bn254/field.js';
3
+ export declare function vkAsFields(input: Buffer, kind: CircuitKind): Promise<Fr[]>;
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8va2V5cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU3RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFakQsd0JBQXNCLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBcUJoRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/keys/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAE5C,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAKrE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/keys/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,WAAW,EAAE,MAAM,cAAc,CAAC;AAE7D,OAAO,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AAEjD,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAqBhF"}
@@ -1,10 +1,34 @@
1
- import { BarretenbergSync } from '@aztec/bb.js';
2
- import { Fr } from '../../fields/fields.js';
3
- export async function vkAsFieldsMegaHonk(input) {
1
+ import { BarretenbergSync, CircuitKind } from '@aztec/bb.js';
2
+ import { Fr } from '../../curves/bn254/field.js';
3
+ export async function vkAsFields(input, kind) {
4
4
  await BarretenbergSync.initSingleton();
5
5
  const api = BarretenbergSync.getSingleton();
6
- const response = api.megaVkAsFields({
7
- verificationKey: input
8
- });
9
- return response.fields.map((field)=>Fr.fromBuffer(Buffer.from(field)));
6
+ switch(kind){
7
+ case CircuitKind.App:
8
+ {
9
+ const response = api.megaAppVkAsFields({
10
+ verificationKey: input
11
+ });
12
+ return response.fields.map((field)=>Fr.fromBuffer(Buffer.from(field)));
13
+ }
14
+ case CircuitKind.Kernel:
15
+ {
16
+ const response = api.megaKernelVkAsFields({
17
+ verificationKey: input
18
+ });
19
+ return response.fields.map((field)=>Fr.fromBuffer(Buffer.from(field)));
20
+ }
21
+ case CircuitKind.HidingKernel:
22
+ {
23
+ const response = api.megaZKVkAsFields({
24
+ verificationKey: input
25
+ });
26
+ return response.fields.map((field)=>Fr.fromBuffer(Buffer.from(field)));
27
+ }
28
+ default:
29
+ {
30
+ const _exhaustive = kind;
31
+ throw new Error(`vkAsFields: unhandled CircuitKind ${_exhaustive}`);
32
+ }
33
+ }
10
34
  }
@@ -1,4 +1,4 @@
1
- import { Fr } from '../../fields/fields.js';
1
+ import { Fr } from '../../curves/bn254/field.js';
2
2
  import { type Fieldable } from '../../serialize/serialize.js';
3
3
  /**
4
4
  * Create a pedersen commitment (point) from an array of input fields.
@@ -16,4 +16,4 @@ export declare function pedersenHash(input: Fieldable[], index?: number): Promis
16
16
  * Create a pedersen hash from an arbitrary length buffer.
17
17
  */
18
18
  export declare function pedersenHashBuffer(input: Buffer, index?: number): Promise<Buffer<ArrayBuffer>>;
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVkZXJzZW4ud2FzbS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NyeXB0by9wZWRlcnNlbi9wZWRlcnNlbi53YXNtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsS0FBSyxTQUFTLEVBQXFCLE1BQU0sOEJBQThCLENBQUM7QUFFakY7OztHQUdHO0FBQ0gsd0JBQXNCLGNBQWMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsTUFBTSxTQUFJLGtDQVkvRDtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQXNCLFlBQVksQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsS0FBSyxTQUFJLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQVM3RTtBQUVEOztHQUVHO0FBQ0gsd0JBQXNCLGtCQUFrQixDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxTQUFJLGdDQVFoRSJ9
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVkZXJzZW4ud2FzbS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NyeXB0by9wZWRlcnNlbi9wZWRlcnNlbi53YXNtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsS0FBSyxTQUFTLEVBQXFCLE1BQU0sOEJBQThCLENBQUM7QUFFakY7OztHQUdHO0FBQ0gsd0JBQXNCLGNBQWMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsTUFBTSxTQUFJLGtDQVkvRDtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQXNCLFlBQVksQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsS0FBSyxTQUFJLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQVM3RTtBQUVEOztHQUVHO0FBQ0gsd0JBQXNCLGtCQUFrQixDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxTQUFJLGdDQVFoRSJ9
@@ -1 +1 @@
1
- {"version":3,"file":"pedersen.wasm.d.ts","sourceRoot":"","sources":["../../../src/crypto/pedersen/pedersen.wasm.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,8BAA8B,CAAC;AAEjF;;;GAGG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,SAAI,kCAY/D;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,SAAI,GAAG,OAAO,CAAC,EAAE,CAAC,CAS7E;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAI,gCAQhE"}
1
+ {"version":3,"file":"pedersen.wasm.d.ts","sourceRoot":"","sources":["../../../src/crypto/pedersen/pedersen.wasm.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AACjD,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,8BAA8B,CAAC;AAEjF;;;GAGG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,SAAI,kCAY/D;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,SAAI,GAAG,OAAO,CAAC,EAAE,CAAC,CAS7E;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAI,gCAQhE"}
@@ -1,5 +1,5 @@
1
1
  import { BarretenbergSync } from '@aztec/bb.js';
2
- import { Fr } from '../../fields/fields.js';
2
+ import { Fr } from '../../curves/bn254/field.js';
3
3
  import { serializeToFields } from '../../serialize/serialize.js';
4
4
  /**
5
5
  * Create a pedersen commitment (point) from an array of input fields.
@@ -1,4 +1,4 @@
1
- import { Fr } from '../../fields/fields.js';
1
+ import { Fr } from '../../curves/bn254/field.js';
2
2
  import { type Fieldable } from '../../serialize/serialize.js';
3
3
  /**
4
4
  * Create a poseidon hash (field) from an array of input fields.
@@ -13,7 +13,6 @@ export declare function poseidon2Hash(input: Fieldable[]): Promise<Fr>;
13
13
  * @returns The poseidon hash.
14
14
  */
15
15
  export declare function poseidon2HashWithSeparator(input: Fieldable[], separator: number): Promise<Fr>;
16
- export declare function poseidon2HashAccumulate(input: Fieldable[]): Promise<Fr>;
17
16
  /**
18
17
  * Runs a Poseidon2 permutation.
19
18
  * @param input the input state. Expected to be of size 4.
@@ -21,4 +20,4 @@ export declare function poseidon2HashAccumulate(input: Fieldable[]): Promise<Fr>
21
20
  */
22
21
  export declare function poseidon2Permutation(input: Fieldable[]): Promise<Fr[]>;
23
22
  export declare function poseidon2HashBytes(input: Buffer): Promise<Fr>;
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vcG9zZWlkb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVDLE9BQU8sRUFBRSxLQUFLLFNBQVMsRUFBcUIsTUFBTSw4QkFBOEIsQ0FBQztBQUVqRjs7OztHQUlHO0FBQ0gsd0JBQXNCLGFBQWEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQVFuRTtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQXNCLDBCQUEwQixDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FTbkc7QUFFRCx3QkFBc0IsdUJBQXVCLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FRN0U7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQXNCLG9CQUFvQixDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FZNUU7QUFFRCx3QkFBc0Isa0JBQWtCLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLENBa0JuRSJ9
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vcG9zZWlkb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxLQUFLLFNBQVMsRUFBcUIsTUFBTSw4QkFBOEIsQ0FBQztBQXNCakY7Ozs7R0FJRztBQUNILHdCQUFnQixhQUFhLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FFN0Q7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFnQiwwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLENBSTdGO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFzQixvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBaUI1RTtBQUVELHdCQUFnQixrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FZN0QifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/poseidon/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,8BAA8B,CAAC;AAEjF;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAQnE;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CASnG;AAED,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAQ7E;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAY5E;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAkBnE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/poseidon/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AACjD,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,8BAA8B,CAAC;AAsBjF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAI7F;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAiB5E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAY7D"}
@@ -1,42 +1,40 @@
1
- import { BarretenbergSync } from '@aztec/bb.js';
2
- import { Fr } from '../../fields/fields.js';
1
+ import { Barretenberg, BarretenbergSync } from '@aztec/bb.js';
2
+ import { Fr } from '../../curves/bn254/field.js';
3
3
  import { serializeToFields } from '../../serialize/serialize.js';
4
+ const IS_BROWSER = typeof self !== 'undefined';
5
+ async function poseidon2HashFields(inputFields) {
6
+ if (IS_BROWSER) {
7
+ await BarretenbergSync.initSingleton();
8
+ const api = BarretenbergSync.getSingleton();
9
+ const response = api.poseidon2Hash({
10
+ inputs: inputFields.map((i)=>i.toBuffer())
11
+ });
12
+ return Fr.fromBuffer(Buffer.from(response.hash));
13
+ } else {
14
+ await Barretenberg.initSingleton();
15
+ const api = Barretenberg.getSingleton();
16
+ const response = await api.poseidon2Hash({
17
+ inputs: inputFields.map((i)=>i.toBuffer())
18
+ });
19
+ return Fr.fromBuffer(Buffer.from(response.hash));
20
+ }
21
+ }
4
22
  /**
5
23
  * Create a poseidon hash (field) from an array of input fields.
6
24
  * @param input - The input fields to hash.
7
25
  * @returns The poseidon hash.
8
- */ export async function poseidon2Hash(input) {
9
- const inputFields = serializeToFields(input);
10
- await BarretenbergSync.initSingleton();
11
- const api = BarretenbergSync.getSingleton();
12
- const response = api.poseidon2Hash({
13
- inputs: inputFields.map((i)=>i.toBuffer())
14
- });
15
- return Fr.fromBuffer(Buffer.from(response.hash));
26
+ */ export function poseidon2Hash(input) {
27
+ return poseidon2HashFields(serializeToFields(input));
16
28
  }
17
29
  /**
18
30
  * Create a poseidon hash (field) from an array of input fields and a domain separator.
19
31
  * @param input - The input fields to hash.
20
32
  * @param separator - The domain separator.
21
33
  * @returns The poseidon hash.
22
- */ export async function poseidon2HashWithSeparator(input, separator) {
34
+ */ export function poseidon2HashWithSeparator(input, separator) {
23
35
  const inputFields = serializeToFields(input);
24
36
  inputFields.unshift(new Fr(separator));
25
- await BarretenbergSync.initSingleton();
26
- const api = BarretenbergSync.getSingleton();
27
- const response = api.poseidon2Hash({
28
- inputs: inputFields.map((i)=>i.toBuffer())
29
- });
30
- return Fr.fromBuffer(Buffer.from(response.hash));
31
- }
32
- export async function poseidon2HashAccumulate(input) {
33
- const inputFields = serializeToFields(input);
34
- await BarretenbergSync.initSingleton();
35
- const api = BarretenbergSync.getSingleton();
36
- const response = api.poseidon2HashAccumulate({
37
- inputs: inputFields.map((i)=>i.toBuffer())
38
- });
39
- return Fr.fromBuffer(Buffer.from(response.hash));
37
+ return poseidon2HashFields(inputFields);
40
38
  }
41
39
  /**
42
40
  * Runs a Poseidon2 permutation.
@@ -44,18 +42,23 @@ export async function poseidon2HashAccumulate(input) {
44
42
  * @returns the output state, size 4.
45
43
  */ export async function poseidon2Permutation(input) {
46
44
  const inputFields = serializeToFields(input);
47
- // We'd like this assertion but it's not possible to use it in the browser.
48
- // assert(input.length === 4, 'Input state must be of size 4');
49
- await BarretenbergSync.initSingleton();
50
- const api = BarretenbergSync.getSingleton();
51
- const response = api.poseidon2Permutation({
52
- inputs: inputFields.map((i)=>i.toBuffer())
53
- });
54
- // We'd like this assertion but it's not possible to use it in the browser.
55
- // assert(response.outputs.length === 4, 'Output state must be of size 4');
56
- return response.outputs.map((o)=>Fr.fromBuffer(Buffer.from(o)));
45
+ if (IS_BROWSER) {
46
+ await BarretenbergSync.initSingleton();
47
+ const api = BarretenbergSync.getSingleton();
48
+ const response = api.poseidon2Permutation({
49
+ inputs: inputFields.map((i)=>i.toBuffer())
50
+ });
51
+ return response.outputs.map((o)=>Fr.fromBuffer(Buffer.from(o)));
52
+ } else {
53
+ await Barretenberg.initSingleton();
54
+ const api = Barretenberg.getSingleton();
55
+ const response = await api.poseidon2Permutation({
56
+ inputs: inputFields.map((i)=>i.toBuffer())
57
+ });
58
+ return response.outputs.map((o)=>Fr.fromBuffer(Buffer.from(o)));
59
+ }
57
60
  }
58
- export async function poseidon2HashBytes(input) {
61
+ export function poseidon2HashBytes(input) {
59
62
  const inputFields = [];
60
63
  for(let i = 0; i < input.length; i += 31){
61
64
  const fieldBytes = Buffer.alloc(32, 0);
@@ -64,10 +67,5 @@ export async function poseidon2HashBytes(input) {
64
67
  fieldBytes.reverse();
65
68
  inputFields.push(Fr.fromBuffer(fieldBytes));
66
69
  }
67
- await BarretenbergSync.initSingleton();
68
- const api = BarretenbergSync.getSingleton();
69
- const response = api.poseidon2Hash({
70
- inputs: inputFields.map((i)=>i.toBuffer())
71
- });
72
- return Fr.fromBuffer(Buffer.from(response.hash));
70
+ return poseidon2HashFields(inputFields);
73
71
  }
@@ -1,3 +1,4 @@
1
+ import { type LoggerBindings } from '../../log/pino-logger.js';
1
2
  /**
2
3
  * A number generator which is used as a source of randomness in the system. If the SEED env variable is set, the
3
4
  * generator will be deterministic and will always produce the same sequence of numbers. Otherwise a true randomness
@@ -8,11 +9,11 @@
8
9
  */
9
10
  export declare class RandomnessSingleton {
10
11
  private readonly seed?;
11
- private readonly log;
12
12
  private static instance;
13
13
  private counter;
14
+ private log;
14
15
  private constructor();
15
- static getInstance(): RandomnessSingleton;
16
+ static getInstance(bindings?: LoggerBindings): RandomnessSingleton;
16
17
  /**
17
18
  * Indicates whether the generator is deterministic (was seeded) or not.
18
19
  * @returns Whether the generator is deterministic.
@@ -20,4 +21,4 @@ export declare class RandomnessSingleton {
20
21
  isDeterministic(): boolean;
21
22
  getBytes(length: number): Buffer;
22
23
  }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZG9tbmVzc19zaW5nbGV0b24uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vcmFuZG9tL3JhbmRvbW5lc3Nfc2luZ2xldG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7Ozs7O0dBT0c7QUFDSCxxQkFBYSxtQkFBbUI7SUFNNUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDdEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHO0lBTnRCLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFzQjtJQUU3QyxPQUFPLENBQUMsT0FBTyxDQUFLO0lBRXBCLE9BQU8sZUFVTjtJQUVELE9BQWMsV0FBVyxJQUFJLG1CQUFtQixDQU8vQztJQUVEOzs7T0FHRztJQUNJLGVBQWUsSUFBSSxPQUFPLENBRWhDO0lBRU0sUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsTUFBTSxDQWdCdEM7Q0FDRiJ9
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZG9tbmVzc19zaW5nbGV0b24uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vcmFuZG9tL3JhbmRvbW5lc3Nfc2luZ2xldG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQztBQUUxRjs7Ozs7OztHQU9HO0FBQ0gscUJBQWEsbUJBQW1CO0lBTzVCLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBTnhCLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFzQjtJQUU3QyxPQUFPLENBQUMsT0FBTyxDQUFLO0lBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQVM7SUFFcEIsT0FBTyxlQVdOO0lBRUQsT0FBYyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsY0FBYyxHQUFHLG1CQUFtQixDQU94RTtJQUVEOzs7T0FHRztJQUNJLGVBQWUsSUFBSSxPQUFPLENBRWhDO0lBRU0sUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsTUFBTSxDQWdCdEM7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"randomness_singleton.d.ts","sourceRoot":"","sources":["../../../src/crypto/random/randomness_singleton.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,qBAAa,mBAAmB;IAM5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG;IANtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAsB;IAE7C,OAAO,CAAC,OAAO,CAAK;IAEpB,OAAO,eAUN;IAED,OAAc,WAAW,IAAI,mBAAmB,CAO/C;IAED;;;OAGG;IACI,eAAe,IAAI,OAAO,CAEhC;IAEM,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAgBtC;CACF"}
1
+ {"version":3,"file":"randomness_singleton.d.ts","sourceRoot":"","sources":["../../../src/crypto/random/randomness_singleton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,0BAA0B,CAAC;AAE1F;;;;;;;GAOG;AACH,qBAAa,mBAAmB;IAO5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IANxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAsB;IAE7C,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,GAAG,CAAS;IAEpB,OAAO,eAWN;IAED,OAAc,WAAW,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,mBAAmB,CAOxE;IAED;;;OAGG;IACI,eAAe,IAAI,OAAO,CAEhC;IAEM,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAgBtC;CACF"}
@@ -8,13 +8,13 @@ import { createLogger } from '../../log/pino-logger.js';
8
8
  * TODO(#3949): This is not safe enough for production and should be made safer or removed before mainnet.
9
9
  */ export class RandomnessSingleton {
10
10
  seed;
11
- log;
12
11
  static instance;
13
12
  counter;
14
- constructor(seed, log = createLogger('foundation:randomness_singleton')){
13
+ log;
14
+ constructor(seed, bindings){
15
15
  this.seed = seed;
16
- this.log = log;
17
16
  this.counter = 0;
17
+ this.log = createLogger('foundation:randomness_singleton', bindings);
18
18
  if (seed !== undefined) {
19
19
  this.log.debug(`Using pseudo-randomness with seed: ${seed}`);
20
20
  this.counter = seed;
@@ -22,10 +22,10 @@ import { createLogger } from '../../log/pino-logger.js';
22
22
  this.log.debug('Using true randomness');
23
23
  }
24
24
  }
25
- static getInstance() {
25
+ static getInstance(bindings) {
26
26
  if (!RandomnessSingleton.instance) {
27
27
  const seed = process.env.SEED ? Number(process.env.SEED) : undefined;
28
- RandomnessSingleton.instance = new RandomnessSingleton(seed);
28
+ RandomnessSingleton.instance = new RandomnessSingleton(seed, bindings);
29
29
  }
30
30
  return RandomnessSingleton.instance;
31
31
  }
@@ -1,4 +1,6 @@
1
- import { type GrumpkinScalar, Point } from '@aztec/foundation/fields';
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
+ import type { GrumpkinScalar } from '@aztec/foundation/curves/grumpkin';
3
+ import { Point } from '@aztec/foundation/curves/grumpkin';
2
4
  import { SchnorrSignature } from './signature.js';
3
5
  export * from './signature.js';
4
6
  /**
@@ -12,19 +14,19 @@ export declare class Schnorr {
12
14
  */
13
15
  computePublicKey(privateKey: GrumpkinScalar): Promise<Point>;
14
16
  /**
15
- * Constructs a Schnorr signature given a msg and a private key.
16
- * @param msg - Message over which the signature is constructed.
17
+ * Constructs a Schnorr signature over a 32-byte message field element.
18
+ * @param msg - The message hash, as a grumpkin base field element.
17
19
  * @param privateKey - The private key of the signer.
18
20
  * @returns A Schnorr signature of the form (s, e).
19
21
  */
20
- constructSignature(msg: Uint8Array, privateKey: GrumpkinScalar): Promise<SchnorrSignature>;
22
+ constructSignature(msg: Fr, privateKey: GrumpkinScalar): Promise<SchnorrSignature>;
21
23
  /**
22
- * Verifies a Schnorr signature given a Grumpkin public key.
23
- * @param msg - Message over which the signature was constructed.
24
+ * Verifies a Schnorr signature against a Grumpkin public key.
25
+ * @param msg - The message hash, as a grumpkin base field element.
24
26
  * @param pubKey - The Grumpkin public key of the signer.
25
27
  * @param sig - The Schnorr signature.
26
28
  * @returns True or false.
27
29
  */
28
- verifySignature(msg: Uint8Array, pubKey: Point, sig: SchnorrSignature): Promise<boolean>;
30
+ verifySignature(msg: Fr, pubKey: Point, sig: SchnorrSignature): Promise<boolean>;
29
31
  }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vc2Nobm9yci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEQsY0FBYyxnQkFBZ0IsQ0FBQztBQUUvQjs7R0FFRztBQUNILHFCQUFhLE9BQU87SUFDbEI7Ozs7T0FJRztJQUNVLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxjQUFjLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUt4RTtJQUVEOzs7OztPQUtHO0lBQ1Usa0JBQWtCLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsY0FBYyw2QkFRMUU7SUFFRDs7Ozs7O09BTUc7SUFDVSxlQUFlLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxnQkFBZ0Isb0JBVWpGO0NBQ0YifQ==
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vc2Nobm9yci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEQsY0FBYyxnQkFBZ0IsQ0FBQztBQUUvQjs7R0FFRztBQUNILHFCQUFhLE9BQU87SUFDbEI7Ozs7T0FJRztJQUNVLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxjQUFjLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUt4RTtJQUVEOzs7OztPQUtHO0lBQ1Usa0JBQWtCLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsY0FBYyw2QkFRbEU7SUFFRDs7Ozs7O09BTUc7SUFDVSxlQUFlLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxnQkFBZ0Isb0JBVXpFO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/schnorr/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,cAAc,gBAAgB,CAAC;AAE/B;;GAEG;AACH,qBAAa,OAAO;IAClB;;;;OAIG;IACU,gBAAgB,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAKxE;IAED;;;;;OAKG;IACU,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,6BAQ1E;IAED;;;;;;OAMG;IACU,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,gBAAgB,oBAUjF;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/schnorr/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,cAAc,gBAAgB,CAAC;AAE/B;;GAEG;AACH,qBAAa,OAAO;IAClB;;;;OAIG;IACU,gBAAgB,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAKxE;IAED;;;;;OAKG;IACU,kBAAkB,CAAC,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,cAAc,6BAQlE;IAED;;;;;;OAMG;IACU,eAAe,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,gBAAgB,oBAUzE;CACF"}
@@ -1,5 +1,5 @@
1
1
  import { BarretenbergSync } from '@aztec/bb.js';
2
- import { Point } from '@aztec/foundation/fields';
2
+ import { Point } from '@aztec/foundation/curves/grumpkin';
3
3
  import { SchnorrSignature } from './signature.js';
4
4
  export * from './signature.js';
5
5
  /**
@@ -21,15 +21,15 @@ export * from './signature.js';
21
21
  ]));
22
22
  }
23
23
  /**
24
- * Constructs a Schnorr signature given a msg and a private key.
25
- * @param msg - Message over which the signature is constructed.
24
+ * Constructs a Schnorr signature over a 32-byte message field element.
25
+ * @param msg - The message hash, as a grumpkin base field element.
26
26
  * @param privateKey - The private key of the signer.
27
27
  * @returns A Schnorr signature of the form (s, e).
28
28
  */ async constructSignature(msg, privateKey) {
29
29
  await BarretenbergSync.initSingleton();
30
30
  const api = BarretenbergSync.getSingleton();
31
31
  const response = api.schnorrConstructSignature({
32
- message: msg,
32
+ messageField: msg.toBuffer(),
33
33
  privateKey: privateKey.toBuffer()
34
34
  });
35
35
  return new SchnorrSignature(Buffer.from([
@@ -38,8 +38,8 @@ export * from './signature.js';
38
38
  ]));
39
39
  }
40
40
  /**
41
- * Verifies a Schnorr signature given a Grumpkin public key.
42
- * @param msg - Message over which the signature was constructed.
41
+ * Verifies a Schnorr signature against a Grumpkin public key.
42
+ * @param msg - The message hash, as a grumpkin base field element.
43
43
  * @param pubKey - The Grumpkin public key of the signer.
44
44
  * @param sig - The Schnorr signature.
45
45
  * @returns True or false.
@@ -47,7 +47,7 @@ export * from './signature.js';
47
47
  await BarretenbergSync.initSingleton();
48
48
  const api = BarretenbergSync.getSingleton();
49
49
  const response = api.schnorrVerifySignature({
50
- message: msg,
50
+ messageField: msg.toBuffer(),
51
51
  publicKey: {
52
52
  x: pubKey.x.toBuffer(),
53
53
  y: pubKey.y.toBuffer()
@@ -1,5 +1,4 @@
1
- import { Fr } from '@aztec/foundation/fields';
2
- import { BufferReader } from '@aztec/foundation/serialize';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
2
  import type { Signature } from '../signature/index.js';
4
3
  /**
5
4
  * Schnorr signature used for transactions.
@@ -11,28 +10,7 @@ export declare class SchnorrSignature implements Signature {
11
10
  * The size of the signature in bytes.
12
11
  */
13
12
  static SIZE: number;
14
- /**
15
- * An empty signature.
16
- */
17
- static EMPTY: SchnorrSignature;
18
13
  constructor(buffer: Buffer);
19
- /**
20
- * Determines if the provided signature is valid or not.
21
- * @param signature - The data to be checked.
22
- * @returns Boolean indicating if the provided data is a valid schnorr signature.
23
- */
24
- static isSignature(signature: string): boolean;
25
- /**
26
- * Constructs a SchnorrSignature from the provided string.
27
- * @param signature - The string to be converted to a schnorr signature.
28
- * @returns The constructed schnorr signature.
29
- */
30
- static fromString(signature: string): SchnorrSignature;
31
- /**
32
- * Generates a random schnorr signature.
33
- * @returns The randomly constructed signature.
34
- */
35
- static random(): SchnorrSignature;
36
14
  /**
37
15
  * Returns the 's' component of the signature.
38
16
  * @returns A buffer containing the signature's 's' component.
@@ -48,12 +26,6 @@ export declare class SchnorrSignature implements Signature {
48
26
  * @returns A buffer containing the signature.
49
27
  */
50
28
  toBuffer(): Buffer<ArrayBufferLike>;
51
- /**
52
- * Deserializes from a buffer.
53
- * @param buffer - The buffer representation of the object.
54
- * @returns The new object.
55
- */
56
- static fromBuffer(buffer: Buffer | BufferReader): SchnorrSignature;
57
29
  /**
58
30
  * Returns the full signature as a hex string.
59
31
  * @returns A string containing the signature in hex format.
@@ -64,5 +36,13 @@ export declare class SchnorrSignature implements Signature {
64
36
  * @returns The signature components as an array of three fields
65
37
  */
66
38
  toFields(): Fr[];
39
+ /**
40
+ * Splits the signature into the four 128-bit limbs that Noir's `EmbeddedCurveScalar` consumes:
41
+ * `[s.lo, s.hi, e.lo, e.hi]`, where each component scalar is encoded as `lo + hi * 2^128`.
42
+ *
43
+ * Each 32-byte big-endian component is sliced into its top 16 bytes (`hi`) and bottom 16 bytes
44
+ * (`lo`); each half is zero-padded into a 32-byte buffer and decoded as `Fr` (big-endian).
45
+ */
46
+ toLimbFields(): [Fr, Fr, Fr, Fr];
67
47
  }
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL3NjaG5vcnIvc2lnbmF0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sNkJBQTZCLENBQUM7QUFFckUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdkQ7OztHQUdHO0FBQ0gscUJBQWEsZ0JBQWlCLFlBQVcsU0FBUztJQVdwQyxPQUFPLENBQUMsTUFBTTtJQVYxQjs7T0FFRztJQUNILE9BQWMsSUFBSSxTQUFNO0lBRXhCOztPQUVHO0lBQ0gsT0FBYyxLQUFLLG1CQUEwQztJQUU3RCxZQUFvQixNQUFNLEVBQUUsTUFBTSxFQUlqQztJQUVEOzs7O09BSUc7SUFDSCxPQUFjLFdBQVcsQ0FBQyxTQUFTLEVBQUUsTUFBTSxXQUUxQztJQUVEOzs7O09BSUc7SUFDSCxPQUFjLFVBQVUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxvQkFLekM7SUFFRDs7O09BR0c7SUFDSCxPQUFjLE1BQU0scUJBRW5CO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxDQUFDLDRCQUVKO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxDQUFDLDRCQUVKO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSw0QkFFUDtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLGdCQUFnQixDQUdqRTtJQUVEOzs7T0FHRztJQUNILFFBQVEsV0FFUDtJQUVEOzs7T0FHRztJQUNILFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FZZjtDQUNGIn0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL3NjaG5vcnIvc2lnbmF0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUdwRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RDs7O0dBR0c7QUFDSCxxQkFBYSxnQkFBaUIsWUFBVyxTQUFTO0lBTXBDLE9BQU8sQ0FBQyxNQUFNO0lBTDFCOztPQUVHO0lBQ0gsT0FBYyxJQUFJLFNBQU07SUFFeEIsWUFBb0IsTUFBTSxFQUFFLE1BQU0sRUFJakM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLENBQUMsNEJBRUo7SUFFRDs7O09BR0c7SUFDSCxJQUFJLENBQUMsNEJBRUo7SUFFRDs7O09BR0c7SUFDSCxRQUFRLDRCQUVQO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxXQUVQO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQVlmO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsWUFBWSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBTy9CO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../src/crypto/schnorr/signature.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAY,MAAM,6BAA6B,CAAC;AAErE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,SAAS;IAWpC,OAAO,CAAC,MAAM;IAV1B;;OAEG;IACH,OAAc,IAAI,SAAM;IAExB;;OAEG;IACH,OAAc,KAAK,mBAA0C;IAE7D,YAAoB,MAAM,EAAE,MAAM,EAIjC;IAED;;;;OAIG;IACH,OAAc,WAAW,CAAC,SAAS,EAAE,MAAM,WAE1C;IAED;;;;OAIG;IACH,OAAc,UAAU,CAAC,SAAS,EAAE,MAAM,oBAKzC;IAED;;;OAGG;IACH,OAAc,MAAM,qBAEnB;IAED;;;OAGG;IACH,IAAI,CAAC,4BAEJ;IAED;;;OAGG;IACH,IAAI,CAAC,4BAEJ;IAED;;;OAGG;IACH,QAAQ,4BAEP;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB,CAGjE;IAED;;;OAGG;IACH,QAAQ,WAEP;IAED;;;OAGG;IACH,QAAQ,IAAI,EAAE,EAAE,CAYf;CACF"}
1
+ {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../src/crypto/schnorr/signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,SAAS;IAMpC,OAAO,CAAC,MAAM;IAL1B;;OAEG;IACH,OAAc,IAAI,SAAM;IAExB,YAAoB,MAAM,EAAE,MAAM,EAIjC;IAED;;;OAGG;IACH,IAAI,CAAC,4BAEJ;IAED;;;OAGG;IACH,IAAI,CAAC,4BAEJ;IAED;;;OAGG;IACH,QAAQ,4BAEP;IAED;;;OAGG;IACH,QAAQ,WAEP;IAED;;;OAGG;IACH,QAAQ,IAAI,EAAE,EAAE,CAYf;IAED;;;;;;OAMG;IACH,YAAY,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAO/B;CACF"}
@@ -1,6 +1,5 @@
1
- import { randomBytes } from '@aztec/foundation/crypto';
2
- import { Fr } from '@aztec/foundation/fields';
3
- import { BufferReader, mapTuple } from '@aztec/foundation/serialize';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
+ import { mapTuple } from '@aztec/foundation/serialize';
4
3
  /**
5
4
  * Schnorr signature used for transactions.
6
5
  * @see cpp/barretenberg/cpp/src/barretenberg/crypto/schnorr/schnorr.hpp
@@ -9,9 +8,6 @@ import { BufferReader, mapTuple } from '@aztec/foundation/serialize';
9
8
  /**
10
9
  * The size of the signature in bytes.
11
10
  */ static SIZE = 64;
12
- /**
13
- * An empty signature.
14
- */ static EMPTY = new SchnorrSignature(Buffer.alloc(64));
15
11
  constructor(buffer){
16
12
  this.buffer = buffer;
17
13
  if (buffer.length !== SchnorrSignature.SIZE) {
@@ -19,29 +15,6 @@ import { BufferReader, mapTuple } from '@aztec/foundation/serialize';
19
15
  }
20
16
  }
21
17
  /**
22
- * Determines if the provided signature is valid or not.
23
- * @param signature - The data to be checked.
24
- * @returns Boolean indicating if the provided data is a valid schnorr signature.
25
- */ static isSignature(signature) {
26
- return /^(0x)?[0-9a-f]{128}$/i.test(signature);
27
- }
28
- /**
29
- * Constructs a SchnorrSignature from the provided string.
30
- * @param signature - The string to be converted to a schnorr signature.
31
- * @returns The constructed schnorr signature.
32
- */ static fromString(signature) {
33
- if (!SchnorrSignature.isSignature(signature)) {
34
- throw new Error(`Invalid signature string: ${signature}`);
35
- }
36
- return new SchnorrSignature(Buffer.from(signature.replace(/^0x/i, ''), 'hex'));
37
- }
38
- /**
39
- * Generates a random schnorr signature.
40
- * @returns The randomly constructed signature.
41
- */ static random() {
42
- return new SchnorrSignature(randomBytes(64));
43
- }
44
- /**
45
18
  * Returns the 's' component of the signature.
46
19
  * @returns A buffer containing the signature's 's' component.
47
20
  */ get s() {
@@ -60,14 +33,6 @@ import { BufferReader, mapTuple } from '@aztec/foundation/serialize';
60
33
  return this.buffer;
61
34
  }
62
35
  /**
63
- * Deserializes from a buffer.
64
- * @param buffer - The buffer representation of the object.
65
- * @returns The new object.
66
- */ static fromBuffer(buffer) {
67
- const reader = BufferReader.asReader(buffer);
68
- return new SchnorrSignature(reader.readBytes(SchnorrSignature.SIZE));
69
- }
70
- /**
71
36
  * Returns the full signature as a hex string.
72
37
  * @returns A string containing the signature in hex format.
73
38
  */ toString() {
@@ -90,4 +55,23 @@ import { BufferReader, mapTuple } from '@aztec/foundation/serialize';
90
55
  buf3
91
56
  ], Fr.fromBuffer);
92
57
  }
58
+ /**
59
+ * Splits the signature into the four 128-bit limbs that Noir's `EmbeddedCurveScalar` consumes:
60
+ * `[s.lo, s.hi, e.lo, e.hi]`, where each component scalar is encoded as `lo + hi * 2^128`.
61
+ *
62
+ * Each 32-byte big-endian component is sliced into its top 16 bytes (`hi`) and bottom 16 bytes
63
+ * (`lo`); each half is zero-padded into a 32-byte buffer and decoded as `Fr` (big-endian).
64
+ */ toLimbFields() {
65
+ const limb = (start)=>{
66
+ const buf = Buffer.alloc(32);
67
+ this.buffer.copy(buf, 16, start, start + 16);
68
+ return Fr.fromBuffer(buf);
69
+ };
70
+ return [
71
+ limb(16),
72
+ limb(0),
73
+ limb(48),
74
+ limb(32)
75
+ ];
76
+ }
93
77
  }
@@ -87,5 +87,16 @@ export declare function normalizeSignature(signature: Signature): Signature;
87
87
  * @returns The public key.
88
88
  */
89
89
  export declare function recoverPublicKey(hash: Buffer32, signature: Signature, opts?: RecoveryOpts): Buffer;
90
+ /**
91
+ * Generates a random valid ECDSA signature that is recoverable to some address.
92
+ * Since Signature.random() produces real signatures via secp256k1 signing, the result is always
93
+ * recoverable, but we verify defensively by checking tryRecoverAddress.
94
+ */
95
+ export declare function generateRecoverableSignature(): Signature;
96
+ /**
97
+ * Generates a random signature where ECDSA address recovery fails.
98
+ * Uses random r/s values (not from real signing) so that r is unlikely to be a valid secp256k1 x-coordinate.
99
+ */
100
+ export declare function generateUnrecoverableSignature(): Signature;
90
101
  export {};
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vc2VjcDI1NmsxLXNpZ25lci91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUtqRSxpQ0FBaUM7QUFDakMsS0FBSyxZQUFZLEdBQUc7SUFDbEI7Ozs7T0FJRztJQUNILGNBQWMsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUN6Qjs7T0FFRztJQUNILGVBQWUsQ0FBQyxFQUFFLE9BQU8sQ0FBQztDQUMzQixDQUFDO0FBRUYscUJBQWEsY0FBZSxTQUFRLEtBQUs7SUFDdkMsWUFBWSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFO1FBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQTtLQUFFLEVBR3JEO0NBQ0Y7QUFHRCx3QkFBZ0IsaUJBQWlCLENBQUMsT0FBTyxFQUFFLFFBQVEsR0FBRyxRQUFRLENBRzdEO0FBWUQ7Ozs7R0FJRztBQUNILHdCQUFnQix1QkFBdUIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FFbEU7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsVUFBVSxDQUdwRTtBQUVEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBZ0IsY0FBYyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsRUFBRSxZQUFZLEdBQUcsVUFBVSxDQVVwRztBQUVEOzs7Ozs7R0FNRztBQUNILHdCQUFnQixpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUUsWUFBWSxHQUFHLFVBQVUsR0FBRyxTQUFTLENBT25IO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IsYUFBYSxDQUFDLFVBQVUsRUFBRSxNQUFNLFNBVy9DO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IsV0FBVyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFHaEU7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsd0JBQWdCLGFBQWEsQ0FBQyxTQUFTLEVBQUUsU0FBUyxHQUFHLFNBQVMsQ0FNN0Q7QUFFRDs7Ozs7O0dBTUc7QUFDSCx3QkFBZ0Isa0JBQWtCLENBQUMsU0FBUyxFQUFFLFNBQVMsR0FBRyxTQUFTLENBVWxFO0FBNkJEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLGdCQUFnQixDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEdBQUUsWUFBaUIsR0FBRyxNQUFNLENBWXRHIn0=
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vc2VjcDI1NmsxLXNpZ25lci91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUtqRSxpQ0FBaUM7QUFDakMsS0FBSyxZQUFZLEdBQUc7SUFDbEI7Ozs7T0FJRztJQUNILGNBQWMsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUN6Qjs7T0FFRztJQUNILGVBQWUsQ0FBQyxFQUFFLE9BQU8sQ0FBQztDQUMzQixDQUFDO0FBRUYscUJBQWEsY0FBZSxTQUFRLEtBQUs7SUFDdkMsWUFBWSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFO1FBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQTtLQUFFLEVBR3JEO0NBQ0Y7QUFHRCx3QkFBZ0IsaUJBQWlCLENBQUMsT0FBTyxFQUFFLFFBQVEsR0FBRyxRQUFRLENBRzdEO0FBWUQ7Ozs7R0FJRztBQUNILHdCQUFnQix1QkFBdUIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FFbEU7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsVUFBVSxDQUdwRTtBQUVEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBZ0IsY0FBYyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsRUFBRSxZQUFZLEdBQUcsVUFBVSxDQVVwRztBQUVEOzs7Ozs7R0FNRztBQUNILHdCQUFnQixpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUUsWUFBWSxHQUFHLFVBQVUsR0FBRyxTQUFTLENBT25IO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IsYUFBYSxDQUFDLFVBQVUsRUFBRSxNQUFNLFNBVy9DO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IsV0FBVyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFHaEU7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsd0JBQWdCLGFBQWEsQ0FBQyxTQUFTLEVBQUUsU0FBUyxHQUFHLFNBQVMsQ0FNN0Q7QUFFRDs7Ozs7O0dBTUc7QUFDSCx3QkFBZ0Isa0JBQWtCLENBQUMsU0FBUyxFQUFFLFNBQVMsR0FBRyxTQUFTLENBVWxFO0FBNkJEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLGdCQUFnQixDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEdBQUUsWUFBaUIsR0FBRyxNQUFNLENBWXRHO0FBS0Q7Ozs7R0FJRztBQUNILHdCQUFnQiw0QkFBNEIsSUFBSSxTQUFTLENBUXhEO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQWdCLDhCQUE4QixJQUFJLFNBQVMsQ0FRMUQifQ==