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

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 (510) hide show
  1. package/dest/array/array.d.ts +5 -0
  2. package/dest/array/array.d.ts.map +1 -1
  3. package/dest/array/array.js +11 -0
  4. package/dest/async-pool/index.d.ts.map +1 -1
  5. package/dest/async-pool/index.js +1 -0
  6. package/dest/bigint/index.d.ts +7 -0
  7. package/dest/bigint/index.d.ts.map +1 -0
  8. package/dest/bigint/index.js +15 -0
  9. package/dest/bigint-buffer/index.d.ts +0 -2
  10. package/dest/bigint-buffer/index.d.ts.map +1 -1
  11. package/dest/buffer/buffer16.d.ts +80 -0
  12. package/dest/buffer/buffer16.d.ts.map +1 -0
  13. package/dest/buffer/buffer16.js +100 -0
  14. package/dest/buffer/buffer32.d.ts +3 -7
  15. package/dest/buffer/buffer32.d.ts.map +1 -1
  16. package/dest/buffer/buffer32.js +6 -6
  17. package/dest/buffer/index.d.ts +1 -0
  18. package/dest/buffer/index.d.ts.map +1 -1
  19. package/dest/buffer/index.js +1 -0
  20. package/dest/collection/array.d.ts +16 -3
  21. package/dest/collection/array.d.ts.map +1 -1
  22. package/dest/collection/array.js +57 -3
  23. package/dest/collection/object.d.ts +16 -0
  24. package/dest/collection/object.d.ts.map +1 -1
  25. package/dest/collection/object.js +25 -0
  26. package/dest/config/env_var.d.ts +1 -1
  27. package/dest/config/env_var.d.ts.map +1 -1
  28. package/dest/config/index.d.ts +48 -1
  29. package/dest/config/index.d.ts.map +1 -1
  30. package/dest/config/index.js +115 -7
  31. package/dest/config/network_config.d.ts +42 -0
  32. package/dest/config/network_config.d.ts.map +1 -0
  33. package/dest/config/network_config.js +9 -0
  34. package/dest/config/network_name.d.ts +3 -0
  35. package/dest/config/network_name.d.ts.map +1 -0
  36. package/dest/config/network_name.js +19 -0
  37. package/dest/config/secret_value.d.ts +28 -0
  38. package/dest/config/secret_value.d.ts.map +1 -0
  39. package/dest/config/secret_value.js +34 -0
  40. package/dest/crypto/aes128/index.d.ts +2 -4
  41. package/dest/crypto/aes128/index.d.ts.map +1 -1
  42. package/dest/crypto/aes128/index.js +23 -6
  43. package/dest/crypto/bls/bn254_keystore.d.ts +296 -0
  44. package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -0
  45. package/dest/crypto/bls/bn254_keystore.js +218 -0
  46. package/dest/crypto/bls/index.d.ts +13 -0
  47. package/dest/crypto/bls/index.d.ts.map +1 -0
  48. package/dest/crypto/bls/index.js +87 -0
  49. package/dest/crypto/bn254/bn254_utils.d.ts +39 -0
  50. package/dest/crypto/bn254/bn254_utils.d.ts.map +1 -0
  51. package/dest/crypto/bn254/bn254_utils.js +56 -0
  52. package/dest/crypto/bn254/index.d.ts +55 -0
  53. package/dest/crypto/bn254/index.d.ts.map +1 -0
  54. package/dest/crypto/bn254/index.js +142 -0
  55. package/dest/crypto/ecdsa/index.d.ts +2 -2
  56. package/dest/crypto/ecdsa/index.d.ts.map +1 -1
  57. package/dest/crypto/ecdsa/index.js +70 -48
  58. package/dest/crypto/ecdsa/signature.d.ts +1 -3
  59. package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
  60. package/dest/crypto/grumpkin/index.d.ts +6 -13
  61. package/dest/crypto/grumpkin/index.d.ts.map +1 -1
  62. package/dest/crypto/grumpkin/index.js +69 -54
  63. package/dest/crypto/index.d.ts +2 -0
  64. package/dest/crypto/index.d.ts.map +1 -1
  65. package/dest/crypto/index.js +2 -0
  66. package/dest/crypto/keccak/index.d.ts +2 -4
  67. package/dest/crypto/keccak/index.d.ts.map +1 -1
  68. package/dest/crypto/keys/index.d.ts +0 -2
  69. package/dest/crypto/keys/index.d.ts.map +1 -1
  70. package/dest/crypto/keys/index.js +9 -4
  71. package/dest/crypto/pedersen/pedersen.noble.d.ts +2 -4
  72. package/dest/crypto/pedersen/pedersen.noble.d.ts.map +1 -1
  73. package/dest/crypto/pedersen/pedersen.wasm.d.ts +2 -4
  74. package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
  75. package/dest/crypto/pedersen/pedersen.wasm.js +29 -13
  76. package/dest/crypto/poseidon/index.d.ts +0 -2
  77. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  78. package/dest/crypto/poseidon/index.js +42 -17
  79. package/dest/crypto/random/index.d.ts +1 -3
  80. package/dest/crypto/random/index.d.ts.map +1 -1
  81. package/dest/crypto/random/index.js +2 -34
  82. package/dest/crypto/random/randomness_singleton.d.ts +0 -2
  83. package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
  84. package/dest/crypto/schnorr/index.d.ts.map +1 -1
  85. package/dest/crypto/schnorr/index.js +35 -37
  86. package/dest/crypto/schnorr/signature.d.ts +3 -5
  87. package/dest/crypto/schnorr/signature.d.ts.map +1 -1
  88. package/dest/crypto/secp256k1/index.d.ts +4 -6
  89. package/dest/crypto/secp256k1/index.d.ts.map +1 -1
  90. package/dest/crypto/secp256k1/index.js +29 -18
  91. package/dest/crypto/secp256k1-signer/utils.d.ts +55 -4
  92. package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
  93. package/dest/crypto/secp256k1-signer/utils.js +92 -6
  94. package/dest/crypto/serialize.d.ts +4 -6
  95. package/dest/crypto/serialize.d.ts.map +1 -1
  96. package/dest/crypto/sha256/index.d.ts +21 -4
  97. package/dest/crypto/sha256/index.d.ts.map +1 -1
  98. package/dest/crypto/sha256/index.js +42 -0
  99. package/dest/crypto/sha512/index.d.ts +1 -3
  100. package/dest/crypto/sha512/index.d.ts.map +1 -1
  101. package/dest/crypto/signature/index.d.ts +0 -2
  102. package/dest/crypto/signature/index.d.ts.map +1 -1
  103. package/dest/crypto/sync/index.js +3 -1
  104. package/dest/crypto/sync/pedersen/index.d.ts +2 -4
  105. package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
  106. package/dest/crypto/sync/pedersen/index.js +17 -10
  107. package/dest/crypto/sync/poseidon/index.d.ts +0 -2
  108. package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
  109. package/dest/crypto/sync/poseidon/index.js +27 -12
  110. package/dest/decorators/memoize.d.ts.map +1 -1
  111. package/dest/eth-address/index.d.ts +6 -7
  112. package/dest/eth-address/index.d.ts.map +1 -1
  113. package/dest/eth-address/index.js +5 -0
  114. package/dest/eth-signature/eth_signature.d.ts +16 -14
  115. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  116. package/dest/eth-signature/eth_signature.js +31 -17
  117. package/dest/fields/bls12_fields.d.ts +148 -0
  118. package/dest/fields/bls12_fields.d.ts.map +1 -0
  119. package/dest/fields/bls12_fields.js +359 -0
  120. package/dest/fields/bls12_point.d.ts +229 -0
  121. package/dest/fields/bls12_point.d.ts.map +1 -0
  122. package/dest/fields/bls12_point.js +398 -0
  123. package/dest/fields/coordinate.d.ts +0 -2
  124. package/dest/fields/coordinate.d.ts.map +1 -1
  125. package/dest/fields/fields.d.ts +6 -3
  126. package/dest/fields/fields.d.ts.map +1 -1
  127. package/dest/fields/fields.js +43 -15
  128. package/dest/fields/index.d.ts +2 -0
  129. package/dest/fields/index.d.ts.map +1 -1
  130. package/dest/fields/index.js +2 -0
  131. package/dest/fields/point.d.ts +2 -4
  132. package/dest/fields/point.d.ts.map +1 -1
  133. package/dest/fields/point.js +3 -3
  134. package/dest/fs/index.d.ts +1 -0
  135. package/dest/fs/index.d.ts.map +1 -1
  136. package/dest/fs/index.js +1 -0
  137. package/dest/fs/try_rm_dir.d.ts +3 -0
  138. package/dest/fs/try_rm_dir.d.ts.map +1 -0
  139. package/dest/fs/try_rm_dir.js +16 -0
  140. package/dest/index.d.ts +1 -2
  141. package/dest/index.d.ts.map +1 -1
  142. package/dest/index.js +1 -2
  143. package/dest/iterable/filter.js +1 -1
  144. package/dest/iterable/map.js +1 -1
  145. package/dest/jest/env.js +48 -0
  146. package/dest/jest/setupAfterEnv.js +3 -0
  147. package/dest/json-rpc/client/fetch.d.ts +2 -2
  148. package/dest/json-rpc/client/fetch.d.ts.map +1 -1
  149. package/dest/json-rpc/client/fetch.js +16 -30
  150. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +9 -3
  151. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
  152. package/dest/json-rpc/client/safe_json_rpc_client.js +173 -13
  153. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  154. package/dest/json-rpc/client/undici.js +6 -7
  155. package/dest/json-rpc/convert.d.ts +2 -9
  156. package/dest/json-rpc/convert.d.ts.map +1 -1
  157. package/dest/json-rpc/convert.js +1 -9
  158. package/dest/json-rpc/errors.d.ts +4 -0
  159. package/dest/json-rpc/errors.d.ts.map +1 -0
  160. package/dest/json-rpc/errors.js +6 -0
  161. package/dest/json-rpc/fixtures/class_a.d.ts +5 -3
  162. package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
  163. package/dest/json-rpc/fixtures/class_b.d.ts +5 -3
  164. package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -1
  165. package/dest/json-rpc/index.d.ts +2 -1
  166. package/dest/json-rpc/index.d.ts.map +1 -1
  167. package/dest/json-rpc/index.js +2 -1
  168. package/dest/json-rpc/js_utils.d.ts.map +1 -1
  169. package/dest/json-rpc/server/safe_json_rpc_server.d.ts +21 -22
  170. package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
  171. package/dest/json-rpc/server/safe_json_rpc_server.js +161 -56
  172. package/dest/json-rpc/test/integration.d.ts +1 -2
  173. package/dest/json-rpc/test/integration.d.ts.map +1 -1
  174. package/dest/log/console.d.ts.map +1 -1
  175. package/dest/log/gcloud-logger-config.d.ts +0 -1
  176. package/dest/log/gcloud-logger-config.d.ts.map +1 -1
  177. package/dest/log/gcloud-logger-config.js +1 -9
  178. package/dest/log/index.d.ts +4 -4
  179. package/dest/log/index.d.ts.map +1 -1
  180. package/dest/log/index.js +4 -4
  181. package/dest/log/libp2p_logger.js +13 -2
  182. package/dest/log/log_fn.d.ts +1 -1
  183. package/dest/log/log_fn.d.ts.map +1 -1
  184. package/dest/log/noir_debug_log_util.d.ts +14 -0
  185. package/dest/log/noir_debug_log_util.d.ts.map +1 -0
  186. package/dest/log/noir_debug_log_util.js +14 -0
  187. package/dest/log/pino-logger.d.ts +2 -2
  188. package/dest/log/pino-logger.d.ts.map +1 -1
  189. package/dest/log/pino-logger.js +28 -2
  190. package/dest/message/index.d.ts.map +1 -1
  191. package/dest/mutex/mutex_database.d.ts.map +1 -1
  192. package/dest/noir/noir_package_config.d.ts +4 -4
  193. package/dest/number/index.d.ts +3 -0
  194. package/dest/number/index.d.ts.map +1 -0
  195. package/dest/number/index.js +12 -0
  196. package/dest/profiler/index.d.ts +2 -0
  197. package/dest/profiler/index.d.ts.map +1 -0
  198. package/dest/profiler/index.js +1 -0
  199. package/dest/profiler/profiler.d.ts +8 -0
  200. package/dest/profiler/profiler.d.ts.map +1 -0
  201. package/dest/profiler/profiler.js +97 -0
  202. package/dest/promise/running-promise.d.ts +1 -1
  203. package/dest/promise/running-promise.d.ts.map +1 -1
  204. package/dest/promise/running-promise.js +2 -2
  205. package/dest/queue/batch_queue.d.ts +1 -1
  206. package/dest/queue/batch_queue.js +1 -1
  207. package/dest/queue/bounded_serial_queue.d.ts.map +1 -1
  208. package/dest/queue/serial_queue.d.ts +2 -2
  209. package/dest/queue/serial_queue.d.ts.map +1 -1
  210. package/dest/queue/serial_queue.js +7 -5
  211. package/dest/retry/index.d.ts +3 -2
  212. package/dest/retry/index.d.ts.map +1 -1
  213. package/dest/retry/index.js +2 -2
  214. package/dest/schemas/api.d.ts.map +1 -1
  215. package/dest/schemas/parse.js +1 -1
  216. package/dest/schemas/schemas.d.ts +9 -6
  217. package/dest/schemas/schemas.d.ts.map +1 -1
  218. package/dest/schemas/schemas.js +15 -1
  219. package/dest/schemas/utils.d.ts +1 -3
  220. package/dest/schemas/utils.d.ts.map +1 -1
  221. package/dest/serialize/buffer_reader.d.ts +27 -2
  222. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  223. package/dest/serialize/buffer_reader.js +44 -2
  224. package/dest/serialize/field_reader.d.ts +10 -1
  225. package/dest/serialize/field_reader.d.ts.map +1 -1
  226. package/dest/serialize/field_reader.js +18 -1
  227. package/dest/serialize/free_funcs.d.ts +23 -21
  228. package/dest/serialize/free_funcs.d.ts.map +1 -1
  229. package/dest/serialize/free_funcs.js +21 -27
  230. package/dest/serialize/serialize.d.ts +4 -5
  231. package/dest/serialize/serialize.d.ts.map +1 -1
  232. package/dest/string/index.d.ts +7 -2
  233. package/dest/string/index.d.ts.map +1 -1
  234. package/dest/string/index.js +27 -1
  235. package/dest/testing/files/index.d.ts +0 -2
  236. package/dest/testing/files/index.d.ts.map +1 -1
  237. package/dest/testing/files/index.js +2 -2
  238. package/dest/testing/formatting.d.ts +4 -0
  239. package/dest/testing/formatting.d.ts.map +1 -0
  240. package/dest/testing/formatting.js +3 -0
  241. package/dest/testing/index.d.ts +1 -0
  242. package/dest/testing/index.d.ts.map +1 -1
  243. package/dest/testing/index.js +1 -0
  244. package/dest/timer/date.d.ts +2 -1
  245. package/dest/timer/date.d.ts.map +1 -1
  246. package/dest/timer/date.js +5 -3
  247. package/dest/timer/index.d.ts +1 -1
  248. package/dest/timer/index.d.ts.map +1 -1
  249. package/dest/timer/index.js +1 -1
  250. package/dest/timer/timeout.d.ts +18 -5
  251. package/dest/timer/timeout.d.ts.map +1 -1
  252. package/dest/timer/timeout.js +43 -22
  253. package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +1 -1
  254. package/dest/transport/index.d.ts +0 -1
  255. package/dest/transport/index.d.ts.map +1 -1
  256. package/dest/transport/index.js +0 -1
  257. package/dest/transport/interface/connector.d.ts.map +1 -1
  258. package/dest/transport/interface/listener.d.ts +0 -1
  259. package/dest/transport/interface/listener.d.ts.map +1 -1
  260. package/dest/transport/interface/socket.d.ts.map +1 -1
  261. package/dest/transport/node/node_connector.d.ts +0 -1
  262. package/dest/transport/node/node_connector.d.ts.map +1 -1
  263. package/dest/transport/node/node_connector_socket.d.ts +0 -1
  264. package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
  265. package/dest/transport/node/node_listener.d.ts +0 -1
  266. package/dest/transport/node/node_listener.d.ts.map +1 -1
  267. package/dest/transport/node/node_listener_socket.d.ts +0 -1
  268. package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
  269. package/dest/transport/transport_client.d.ts +0 -1
  270. package/dest/transport/transport_client.d.ts.map +1 -1
  271. package/dest/transport/transport_server.d.ts.map +1 -1
  272. package/dest/trees/hasher.d.ts +4 -6
  273. package/dest/trees/hasher.d.ts.map +1 -1
  274. package/dest/trees/index.d.ts +1 -0
  275. package/dest/trees/index.d.ts.map +1 -1
  276. package/dest/trees/index.js +1 -0
  277. package/dest/trees/indexed_merkle_tree.d.ts +0 -2
  278. package/dest/trees/indexed_merkle_tree.d.ts.map +1 -1
  279. package/dest/trees/indexed_merkle_tree_calculator.d.ts +1 -3
  280. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
  281. package/dest/trees/indexed_tree_leaf.d.ts +0 -2
  282. package/dest/trees/indexed_tree_leaf.d.ts.map +1 -1
  283. package/dest/trees/membership_witness.d.ts +19 -3
  284. package/dest/trees/membership_witness.d.ts.map +1 -1
  285. package/dest/trees/membership_witness.js +13 -0
  286. package/dest/trees/merkle_tree.d.ts +0 -2
  287. package/dest/trees/merkle_tree.d.ts.map +1 -1
  288. package/dest/trees/merkle_tree_calculator.d.ts +11 -3
  289. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  290. package/dest/trees/merkle_tree_calculator.js +31 -1
  291. package/dest/trees/sibling_path.d.ts +6 -8
  292. package/dest/trees/sibling_path.d.ts.map +1 -1
  293. package/dest/trees/unbalanced_merkle_tree.d.ts +19 -8
  294. package/dest/trees/unbalanced_merkle_tree.d.ts.map +1 -1
  295. package/dest/trees/unbalanced_merkle_tree.js +49 -50
  296. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +48 -0
  297. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -0
  298. package/dest/trees/unbalanced_merkle_tree_calculator.js +162 -0
  299. package/dest/trees/unbalanced_tree_store.d.ts +1 -0
  300. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
  301. package/dest/trees/unbalanced_tree_store.js +6 -0
  302. package/dest/types/index.d.ts +25 -2
  303. package/dest/types/index.d.ts.map +1 -1
  304. package/dest/url/index.d.ts.map +1 -1
  305. package/dest/url/index.js +1 -1
  306. package/package.json +35 -41
  307. package/src/array/array.ts +13 -0
  308. package/src/async-pool/index.ts +1 -0
  309. package/src/bigint/index.ts +20 -0
  310. package/src/buffer/buffer16.ts +133 -0
  311. package/src/buffer/buffer32.ts +8 -6
  312. package/src/buffer/index.ts +1 -0
  313. package/src/collection/array.ts +66 -4
  314. package/src/collection/object.ts +37 -0
  315. package/src/config/env_var.ts +142 -52
  316. package/src/config/index.ts +191 -8
  317. package/src/config/network_config.ts +16 -0
  318. package/src/config/network_name.ts +28 -0
  319. package/src/config/secret_value.ts +49 -0
  320. package/src/crypto/aes128/index.ts +19 -10
  321. package/src/crypto/bls/bn254_keystore.ts +287 -0
  322. package/src/crypto/bls/index.ts +77 -0
  323. package/src/crypto/bn254/bn254_utils.ts +64 -0
  324. package/src/crypto/bn254/index.ts +170 -0
  325. package/src/crypto/ecdsa/index.ts +41 -23
  326. package/src/crypto/grumpkin/index.ts +35 -45
  327. package/src/crypto/index.ts +2 -0
  328. package/src/crypto/keys/index.ts +5 -5
  329. package/src/crypto/pedersen/pedersen.wasm.ts +22 -18
  330. package/src/crypto/poseidon/index.ts +32 -24
  331. package/src/crypto/random/index.ts +2 -40
  332. package/src/crypto/schnorr/index.ts +20 -17
  333. package/src/crypto/secp256k1/index.ts +15 -11
  334. package/src/crypto/secp256k1-signer/utils.ts +120 -7
  335. package/src/crypto/sha256/index.ts +47 -0
  336. package/src/crypto/sync/index.ts +1 -1
  337. package/src/crypto/sync/pedersen/index.ts +16 -15
  338. package/src/crypto/sync/poseidon/index.ts +27 -22
  339. package/src/eth-address/index.ts +9 -2
  340. package/src/eth-signature/eth_signature.ts +44 -22
  341. package/src/fields/bls12_fields.ts +463 -0
  342. package/src/fields/bls12_point.ts +450 -0
  343. package/src/fields/fields.ts +37 -9
  344. package/src/fields/index.ts +2 -0
  345. package/src/fields/point.ts +1 -3
  346. package/src/fs/index.ts +1 -0
  347. package/src/fs/try_rm_dir.ts +15 -0
  348. package/src/index.ts +1 -2
  349. package/src/iterable/filter.ts +1 -1
  350. package/src/iterable/map.ts +1 -1
  351. package/src/jest/env.mjs +52 -0
  352. package/src/jest/setupAfterEnv.mjs +3 -0
  353. package/src/json-rpc/client/fetch.ts +14 -33
  354. package/src/json-rpc/client/safe_json_rpc_client.ts +226 -13
  355. package/src/json-rpc/client/undici.ts +8 -15
  356. package/src/json-rpc/convert.ts +3 -12
  357. package/src/json-rpc/errors.ts +6 -0
  358. package/src/json-rpc/fixtures/class_a.ts +4 -1
  359. package/src/json-rpc/fixtures/class_b.ts +4 -1
  360. package/src/json-rpc/index.ts +2 -1
  361. package/src/json-rpc/server/safe_json_rpc_server.ts +141 -48
  362. package/src/json-rpc/test/integration.ts +1 -1
  363. package/src/log/console.ts +4 -1
  364. package/src/log/gcloud-logger-config.ts +3 -7
  365. package/src/log/index.ts +4 -4
  366. package/src/log/libp2p_logger.ts +21 -2
  367. package/src/log/log_fn.ts +1 -1
  368. package/src/log/noir_debug_log_util.ts +21 -0
  369. package/src/log/pino-logger.ts +33 -2
  370. package/src/message/index.ts +5 -1
  371. package/src/mutex/mutex_database.ts +2 -3
  372. package/src/number/index.ts +14 -0
  373. package/src/profiler/index.ts +1 -0
  374. package/src/profiler/profiler.ts +125 -0
  375. package/src/promise/running-promise.ts +2 -2
  376. package/src/queue/batch_queue.ts +1 -1
  377. package/src/queue/bounded_serial_queue.ts +4 -1
  378. package/src/queue/serial_queue.ts +5 -5
  379. package/src/retry/index.ts +10 -5
  380. package/src/schemas/api.ts +4 -4
  381. package/src/schemas/parse.ts +1 -1
  382. package/src/schemas/schemas.ts +19 -1
  383. package/src/serialize/buffer_reader.ts +60 -3
  384. package/src/serialize/field_reader.ts +27 -3
  385. package/src/serialize/free_funcs.ts +25 -31
  386. package/src/serialize/serialize.ts +2 -0
  387. package/src/string/index.ts +36 -1
  388. package/src/testing/files/index.ts +6 -2
  389. package/src/testing/formatting.ts +3 -0
  390. package/src/testing/index.ts +1 -0
  391. package/src/timer/date.ts +9 -3
  392. package/src/timer/index.ts +1 -1
  393. package/src/timer/timeout.ts +54 -19
  394. package/src/transport/index.ts +0 -1
  395. package/src/transport/interface/connector.ts +0 -1
  396. package/src/transport/interface/listener.ts +2 -3
  397. package/src/transport/interface/socket.ts +2 -3
  398. package/src/transport/transport_client.ts +3 -4
  399. package/src/transport/transport_server.ts +4 -1
  400. package/src/trees/hasher.ts +4 -4
  401. package/src/trees/index.ts +1 -0
  402. package/src/trees/indexed_merkle_tree.ts +5 -1
  403. package/src/trees/indexed_merkle_tree_calculator.ts +2 -2
  404. package/src/trees/membership_witness.ts +13 -0
  405. package/src/trees/merkle_tree.ts +4 -1
  406. package/src/trees/merkle_tree_calculator.ts +43 -5
  407. package/src/trees/unbalanced_merkle_tree.ts +50 -42
  408. package/src/trees/unbalanced_merkle_tree_calculator.ts +194 -0
  409. package/src/trees/unbalanced_tree_store.ts +5 -1
  410. package/src/types/index.ts +25 -4
  411. package/src/url/index.ts +0 -1
  412. package/dest/crypto/pedersen/pedersen.elliptic.d.ts +0 -13
  413. package/dest/crypto/pedersen/pedersen.elliptic.d.ts.map +0 -1
  414. package/dest/crypto/pedersen/pedersen.elliptic.js +0 -582
  415. package/dest/log/debug.d.ts +0 -56
  416. package/dest/log/debug.d.ts.map +0 -1
  417. package/dest/log/debug.js +0 -75
  418. package/dest/log/log_history.d.ts +0 -31
  419. package/dest/log/log_history.d.ts.map +0 -1
  420. package/dest/log/log_history.js +0 -38
  421. package/dest/transport/browser/index.d.ts +0 -5
  422. package/dest/transport/browser/index.d.ts.map +0 -1
  423. package/dest/transport/browser/index.js +0 -4
  424. package/dest/transport/browser/message_port_socket.d.ts +0 -37
  425. package/dest/transport/browser/message_port_socket.d.ts.map +0 -1
  426. package/dest/transport/browser/message_port_socket.js +0 -42
  427. package/dest/transport/browser/shared_worker_connector.d.ts +0 -19
  428. package/dest/transport/browser/shared_worker_connector.d.ts.map +0 -1
  429. package/dest/transport/browser/shared_worker_connector.js +0 -19
  430. package/dest/transport/browser/shared_worker_listener.d.ts +0 -38
  431. package/dest/transport/browser/shared_worker_listener.d.ts.map +0 -1
  432. package/dest/transport/browser/shared_worker_listener.js +0 -33
  433. package/dest/transport/browser/worker_connector.d.ts +0 -26
  434. package/dest/transport/browser/worker_connector.d.ts.map +0 -1
  435. package/dest/transport/browser/worker_connector.js +0 -30
  436. package/dest/transport/browser/worker_listener.d.ts +0 -39
  437. package/dest/transport/browser/worker_listener.d.ts.map +0 -1
  438. package/dest/transport/browser/worker_listener.js +0 -35
  439. package/dest/wasm/empty_wasi_sdk.d.ts +0 -130
  440. package/dest/wasm/empty_wasi_sdk.d.ts.map +0 -1
  441. package/dest/wasm/empty_wasi_sdk.js +0 -148
  442. package/dest/wasm/index.d.ts +0 -2
  443. package/dest/wasm/index.d.ts.map +0 -1
  444. package/dest/wasm/index.js +0 -1
  445. package/dest/wasm/wasm_module.d.ts +0 -136
  446. package/dest/wasm/wasm_module.d.ts.map +0 -1
  447. package/dest/wasm/wasm_module.js +0 -196
  448. package/dest/worker/browser/index.d.ts +0 -3
  449. package/dest/worker/browser/index.d.ts.map +0 -1
  450. package/dest/worker/browser/index.js +0 -2
  451. package/dest/worker/browser/start_web_module.d.ts +0 -7
  452. package/dest/worker/browser/start_web_module.d.ts.map +0 -1
  453. package/dest/worker/browser/start_web_module.js +0 -27
  454. package/dest/worker/browser/web_data_store.d.ts +0 -24
  455. package/dest/worker/browser/web_data_store.d.ts.map +0 -1
  456. package/dest/worker/browser/web_data_store.js +0 -29
  457. package/dest/worker/browser/web_worker.d.ts +0 -10
  458. package/dest/worker/browser/web_worker.d.ts.map +0 -1
  459. package/dest/worker/browser/web_worker.js +0 -25
  460. package/dest/worker/data_store.d.ts +0 -21
  461. package/dest/worker/data_store.d.ts.map +0 -1
  462. package/dest/worker/data_store.js +0 -3
  463. package/dest/worker/index.d.ts +0 -3
  464. package/dest/worker/index.d.ts.map +0 -1
  465. package/dest/worker/index.js +0 -1
  466. package/dest/worker/node/index.d.ts +0 -3
  467. package/dest/worker/node/index.d.ts.map +0 -1
  468. package/dest/worker/node/index.js +0 -2
  469. package/dest/worker/node/node_data_store.d.ts +0 -13
  470. package/dest/worker/node/node_data_store.d.ts.map +0 -1
  471. package/dest/worker/node/node_data_store.js +0 -20
  472. package/dest/worker/node/node_worker.d.ts +0 -6
  473. package/dest/worker/node/node_worker.d.ts.map +0 -1
  474. package/dest/worker/node/node_worker.js +0 -22
  475. package/dest/worker/node/start_node_module.d.ts +0 -7
  476. package/dest/worker/node/start_node_module.d.ts.map +0 -1
  477. package/dest/worker/node/start_node_module.js +0 -31
  478. package/dest/worker/wasm_worker.d.ts +0 -9
  479. package/dest/worker/wasm_worker.d.ts.map +0 -1
  480. package/dest/worker/wasm_worker.js +0 -3
  481. package/dest/worker/worker_pool.d.ts +0 -40
  482. package/dest/worker/worker_pool.d.ts.map +0 -1
  483. package/dest/worker/worker_pool.js +0 -51
  484. package/src/crypto/pedersen/pedersen.elliptic.ts +0 -584
  485. package/src/log/debug.ts +0 -104
  486. package/src/log/log_history.ts +0 -44
  487. package/src/transport/browser/index.ts +0 -4
  488. package/src/transport/browser/message_port_socket.ts +0 -48
  489. package/src/transport/browser/shared_worker_connector.ts +0 -21
  490. package/src/transport/browser/shared_worker_listener.ts +0 -53
  491. package/src/transport/browser/worker_connector.ts +0 -30
  492. package/src/transport/browser/worker_listener.ts +0 -54
  493. package/src/wasm/README.md +0 -6
  494. package/src/wasm/empty_wasi_sdk.ts +0 -166
  495. package/src/wasm/fixtures/gcd.wasm +0 -0
  496. package/src/wasm/fixtures/gcd.wat +0 -27
  497. package/src/wasm/index.ts +0 -1
  498. package/src/wasm/wasm_module.ts +0 -260
  499. package/src/worker/browser/index.ts +0 -2
  500. package/src/worker/browser/start_web_module.ts +0 -24
  501. package/src/worker/browser/web_data_store.ts +0 -38
  502. package/src/worker/browser/web_worker.ts +0 -25
  503. package/src/worker/data_store.ts +0 -19
  504. package/src/worker/index.ts +0 -2
  505. package/src/worker/node/index.ts +0 -2
  506. package/src/worker/node/node_data_store.ts +0 -27
  507. package/src/worker/node/node_worker.ts +0 -23
  508. package/src/worker/node/start_node_module.ts +0 -30
  509. package/src/worker/wasm_worker.ts +0 -7
  510. package/src/worker/worker_pool.ts +0 -73
@@ -1,7 +1,5 @@
1
1
  import { BarretenbergSync } from '@aztec/bb.js';
2
2
  import { Point } from '@aztec/foundation/fields';
3
- import { numToInt32BE } from '@aztec/foundation/serialize';
4
- import { concatenateUint8Arrays } from '../serialize.js';
5
3
  import { SchnorrSignature } from './signature.js';
6
4
  export * from './signature.js';
7
5
  /**
@@ -12,13 +10,17 @@ export * from './signature.js';
12
10
  * @param privateKey - The private key.
13
11
  * @returns A grumpkin public key.
14
12
  */ async computePublicKey(privateKey) {
15
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
16
- const [result] = api.getWasm().callWasmExport('schnorr_compute_public_key', [
17
- privateKey.toBuffer()
18
- ], [
19
- 64
20
- ]);
21
- return Point.fromBuffer(Buffer.from(result));
13
+ await BarretenbergSync.initSingleton({
14
+ wasmPath: process.env.BB_WASM_PATH
15
+ });
16
+ const api = BarretenbergSync.getSingleton();
17
+ const response = api.schnorrComputePublicKey({
18
+ privateKey: privateKey.toBuffer()
19
+ });
20
+ return Point.fromBuffer(Buffer.concat([
21
+ Buffer.from(response.publicKey.x),
22
+ Buffer.from(response.publicKey.y)
23
+ ]));
22
24
  }
23
25
  /**
24
26
  * Constructs a Schnorr signature given a msg and a private key.
@@ -26,21 +28,17 @@ export * from './signature.js';
26
28
  * @param privateKey - The private key of the signer.
27
29
  * @returns A Schnorr signature of the form (s, e).
28
30
  */ async constructSignature(msg, privateKey) {
29
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
30
- const messageArray = concatenateUint8Arrays([
31
- numToInt32BE(msg.length),
32
- msg
33
- ]);
34
- const [s, e] = api.getWasm().callWasmExport('schnorr_construct_signature', [
35
- messageArray,
36
- privateKey.toBuffer()
37
- ], [
38
- 32,
39
- 32
40
- ]);
31
+ await BarretenbergSync.initSingleton({
32
+ wasmPath: process.env.BB_WASM_PATH
33
+ });
34
+ const api = BarretenbergSync.getSingleton();
35
+ const response = api.schnorrConstructSignature({
36
+ message: msg,
37
+ privateKey: privateKey.toBuffer()
38
+ });
41
39
  return new SchnorrSignature(Buffer.from([
42
- ...s,
43
- ...e
40
+ ...response.s,
41
+ ...response.e
44
42
  ]));
45
43
  }
46
44
  /**
@@ -50,19 +48,19 @@ export * from './signature.js';
50
48
  * @param sig - The Schnorr signature.
51
49
  * @returns True or false.
52
50
  */ async verifySignature(msg, pubKey, sig) {
53
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
54
- const messageArray = concatenateUint8Arrays([
55
- numToInt32BE(msg.length),
56
- msg
57
- ]);
58
- const [result] = api.getWasm().callWasmExport('schnorr_verify_signature', [
59
- messageArray,
60
- pubKey.toBuffer(),
61
- sig.s,
62
- sig.e
63
- ], [
64
- 1
65
- ]);
66
- return result[0] === 1;
51
+ await BarretenbergSync.initSingleton({
52
+ wasmPath: process.env.BB_WASM_PATH
53
+ });
54
+ const api = BarretenbergSync.getSingleton();
55
+ const response = api.schnorrVerifySignature({
56
+ message: msg,
57
+ publicKey: {
58
+ x: pubKey.x.toBuffer(),
59
+ y: pubKey.y.toBuffer()
60
+ },
61
+ s: sig.s,
62
+ e: sig.e
63
+ });
64
+ return response.verified;
67
65
  }
68
66
  }
@@ -1,5 +1,3 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  import { Fr } from '@aztec/foundation/fields';
4
2
  import { BufferReader } from '@aztec/foundation/serialize';
5
3
  import type { Signature } from '../signature/index.js';
@@ -39,17 +37,17 @@ export declare class SchnorrSignature implements Signature {
39
37
  * Returns the 's' component of the signature.
40
38
  * @returns A buffer containing the signature's 's' component.
41
39
  */
42
- get s(): Buffer;
40
+ get s(): Buffer<ArrayBufferLike>;
43
41
  /**
44
42
  * Returns the 'e' component of the signature.
45
43
  * @returns A buffer containing the signature's 'e' component.
46
44
  */
47
- get e(): Buffer;
45
+ get e(): Buffer<ArrayBufferLike>;
48
46
  /**
49
47
  * Returns the full signature as a buffer.
50
48
  * @returns A buffer containing the signature.
51
49
  */
52
- toBuffer(): Buffer;
50
+ toBuffer(): Buffer<ArrayBufferLike>;
53
51
  /**
54
52
  * Deserializes from a buffer.
55
53
  * @param buffer - The buffer representation of the object.
@@ -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;gBAEzC,MAAM,EAAE,MAAM;IAMlC;;;;OAIG;WACW,WAAW,CAAC,SAAS,EAAE,MAAM;IAI3C;;;;OAIG;WACW,UAAU,CAAC,SAAS,EAAE,MAAM;IAO1C;;;OAGG;WACW,MAAM;IAIpB;;;OAGG;IACH,IAAI,CAAC,WAEJ;IAED;;;OAGG;IACH,IAAI,CAAC,WAEJ;IAED;;;OAGG;IACH,QAAQ;IAIR;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB;IAKlE;;;OAGG;IACH,QAAQ;IAIR;;;OAGG;IACH,QAAQ,IAAI,EAAE,EAAE;CAajB"}
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;gBAEzC,MAAM,EAAE,MAAM;IAMlC;;;;OAIG;WACW,WAAW,CAAC,SAAS,EAAE,MAAM;IAI3C;;;;OAIG;WACW,UAAU,CAAC,SAAS,EAAE,MAAM;IAO1C;;;OAGG;WACW,MAAM;IAIpB;;;OAGG;IACH,IAAI,CAAC,4BAEJ;IAED;;;OAGG;IACH,IAAI,CAAC,4BAEJ;IAED;;;OAGG;IACH,QAAQ;IAIR;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB;IAKlE;;;OAGG;IACH,QAAQ;IAIR;;;OAGG;IACH,QAAQ,IAAI,EAAE,EAAE;CAajB"}
@@ -1,10 +1,8 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  /**
4
2
  * Secp256k1 elliptic curve operations.
5
3
  */
6
4
  export declare class Secp256k1 {
7
- static generator: Buffer;
5
+ static generator: Buffer<ArrayBuffer>;
8
6
  /**
9
7
  * Point generator
10
8
  * @returns The generator for the curve.
@@ -16,17 +14,17 @@ export declare class Secp256k1 {
16
14
  * @param scalar - Scalar to multiply by.
17
15
  * @returns Result of the multiplication.
18
16
  */
19
- mul(point: Uint8Array, scalar: Uint8Array): Promise<Buffer>;
17
+ mul(point: Uint8Array, scalar: Uint8Array): Promise<Buffer<ArrayBuffer>>;
20
18
  /**
21
19
  * Gets a random field element.
22
20
  * @returns Random field element.
23
21
  */
24
- getRandomFr(): Promise<Buffer>;
22
+ getRandomFr(): Promise<Buffer<ArrayBuffer>>;
25
23
  /**
26
24
  * Converts a 512 bits long buffer to a field.
27
25
  * @param uint512Buf - The buffer to convert.
28
26
  * @returns Buffer representation of the field element.
29
27
  */
30
- reduce512BufferToFr(uint512Buf: Buffer): Promise<Buffer>;
28
+ reduce512BufferToFr(uint512Buf: Buffer): Promise<Buffer<ArrayBuffer>>;
31
29
  }
32
30
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/secp256k1/index.ts"],"names":[],"mappings":";;AAEA;;GAEG;AACH,qBAAa,SAAS;IAEpB,MAAM,CAAC,SAAS,SAKb;IAEH;;;OAGG;IACI,SAAS,IAAI,MAAM;IAI1B;;;;;OAKG;IACU,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU;IAMtD;;;OAGG;IACU,WAAW;IAMxB;;;;OAIG;IACU,mBAAmB,CAAC,UAAU,EAAE,MAAM;CAOpD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/secp256k1/index.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,qBAAa,SAAS;IAEpB,MAAM,CAAC,SAAS,sBAKb;IAEH;;;OAGG;IACI,SAAS,IAAI,MAAM;IAI1B;;;;;OAKG;IACU,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU;IAUtD;;;OAGG;IACU,WAAW;IAOxB;;;;OAIG;IACU,mBAAmB,CAAC,UAAU,EAAE,MAAM;CAMpD"}
@@ -81,36 +81,47 @@ import { BarretenbergSync } from '@aztec/bb.js';
81
81
  * @param scalar - Scalar to multiply by.
82
82
  * @returns Result of the multiplication.
83
83
  */ async mul(point, scalar) {
84
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
85
- const [result] = api.getWasm().callWasmExport('ecc_secp256k1__mul', [
86
- point,
84
+ await BarretenbergSync.initSingleton({
85
+ wasmPath: process.env.BB_WASM_PATH
86
+ });
87
+ const api = BarretenbergSync.getSingleton();
88
+ const response = api.secp256k1Mul({
89
+ point: {
90
+ x: point.subarray(0, 32),
91
+ y: point.subarray(32, 64)
92
+ },
87
93
  scalar
88
- ], [
89
- 64
94
+ });
95
+ return Buffer.concat([
96
+ Buffer.from(response.point.x),
97
+ Buffer.from(response.point.y)
90
98
  ]);
91
- return Buffer.from(result);
92
99
  }
93
100
  /**
94
101
  * Gets a random field element.
95
102
  * @returns Random field element.
96
103
  */ async getRandomFr() {
97
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
98
- const [result] = api.getWasm().callWasmExport('ecc_secp256k1__get_random_scalar_mod_circuit_modulus', [], [
99
- 32
100
- ]);
101
- return Buffer.from(result);
104
+ await BarretenbergSync.initSingleton({
105
+ wasmPath: process.env.BB_WASM_PATH
106
+ });
107
+ const api = BarretenbergSync.getSingleton();
108
+ const response = api.secp256k1GetRandomFr({
109
+ dummy: 0
110
+ });
111
+ return Buffer.from(response.value);
102
112
  }
103
113
  /**
104
114
  * Converts a 512 bits long buffer to a field.
105
115
  * @param uint512Buf - The buffer to convert.
106
116
  * @returns Buffer representation of the field element.
107
117
  */ async reduce512BufferToFr(uint512Buf) {
108
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
109
- const [result] = api.getWasm().callWasmExport('ecc_secp256k1__reduce512_buffer_mod_circuit_modulus', [
110
- uint512Buf
111
- ], [
112
- 32
113
- ]);
114
- return Buffer.from(result);
118
+ await BarretenbergSync.initSingleton({
119
+ wasmPath: process.env.BB_WASM_PATH
120
+ });
121
+ const api = BarretenbergSync.getSingleton();
122
+ const response = api.secp256k1Reduce512({
123
+ input: uint512Buf
124
+ });
125
+ return Buffer.from(response.value);
115
126
  }
116
127
  }
@@ -1,8 +1,24 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  import { Buffer32 } from '../../buffer/buffer32.js';
4
2
  import { EthAddress } from '../../eth-address/index.js';
5
3
  import { Signature } from '../../eth-signature/eth_signature.js';
4
+ /** Signature recovery options */
5
+ type RecoveryOpts = {
6
+ /**
7
+ * Whether to allow s-values in the high half of the curve (s >= CURVE.n/2).
8
+ * These are discouraged by EIP2 to prevent signature malleability, and outright
9
+ * rejected in OpenZeppelin's ECDSA recover, which we use in our Rollup contract.
10
+ */
11
+ allowMalleable?: boolean;
12
+ /**
13
+ * Whether to allow an y-parity 0-1 bit instead of the standard v value 27-28.
14
+ */
15
+ allowYParityAsV?: boolean;
16
+ };
17
+ export declare class Secp256k1Error extends Error {
18
+ constructor(message: string, opts?: {
19
+ cause: unknown;
20
+ });
21
+ }
6
22
  export declare function makeEthSignDigest(message: Buffer32): Buffer32;
7
23
  /**
8
24
  * Converts a private key to a public key.
@@ -20,9 +36,26 @@ export declare function addressFromPrivateKey(privateKey: Buffer): EthAddress;
20
36
  * Recovers an address from a hash and a signature.
21
37
  * @param hash - The hash to recover the address from.
22
38
  * @param signature - The signature to recover the address from.
39
+ * @param opts - Recovery options.
23
40
  * @returns The address.
41
+ * @throws Error if signature recovery fails or if signature is malleable and allowMalleable is false.
24
42
  */
25
- export declare function recoverAddress(hash: Buffer32, signature: Signature): EthAddress;
43
+ export declare function recoverAddress(hash: Buffer32, signature: Signature, opts?: RecoveryOpts): EthAddress;
44
+ /**
45
+ * Safely attempts to recover an address from a hash and a signature.
46
+ * @param hash - The hash to recover the address from.
47
+ * @param signature - The signature to recover the address from.
48
+ * @param opts - Recovery options.
49
+ * @returns The address if recovery succeeds, undefined otherwise.
50
+ */
51
+ export declare function tryRecoverAddress(hash: Buffer32, signature: Signature, opts?: RecoveryOpts): EthAddress | undefined;
52
+ /**
53
+ * @attribution - viem
54
+ * Converts a yParityOrV value to a recovery bit.
55
+ * @param yParityOrV - The yParityOrV value to convert.
56
+ * @returns The recovery bit.
57
+ */
58
+ export declare function toRecoveryBit(yParityOrV: number): 0 | 1;
26
59
  /**
27
60
  * Signs a message using ecdsa over the secp256k1 curve.
28
61
  * @param message - The message to sign.
@@ -30,11 +63,29 @@ export declare function recoverAddress(hash: Buffer32, signature: Signature): Et
30
63
  * @returns The signature.
31
64
  */
32
65
  export declare function signMessage(message: Buffer32, privateKey: Buffer): Signature;
66
+ /**
67
+ * Flips an ECDSA signature.
68
+ * If the signature has a low s-value (s < CURVE.n/2), it flips it to high s-value (CURVE.n - s) and vice versa.
69
+ * Also flips the v value accordingly (27 <-> 28, or 0 <-> 1).
70
+ * This is useful for testing signature malleability handling.
71
+ * @param signature - The signature to flip.
72
+ * @returns A new signature with flipped s-value and v-value.
73
+ */
74
+ export declare function flipSignature(signature: Signature): Signature;
75
+ /**
76
+ * Normalizes an ECDSA signature.
77
+ * If the signature has a high s-value (s >= CURVE.n/2), it flips it to low s-value (CURVE.n - s), and flips v accordingly.
78
+ * If the signature uses a recovery bit of 0/1, it is converted to a v-value 27/28 for ecrecover.
79
+ * @remarks This does not handle post EIP155 tx signatures which embed the chain id in v. Use it only for feeding into ECRECOVER precompiles.
80
+ * @param signature - The signature to normalize.
81
+ */
82
+ export declare function normalizeSignature(signature: Signature): Signature;
33
83
  /**
34
84
  * Recovers a public key from a hash and a signature.
35
85
  * @param hash - The hash to recover the public key from.
36
86
  * @param signature - The signature to recover the public key from.
37
87
  * @returns The public key.
38
88
  */
39
- export declare function recoverPublicKey(hash: Buffer32, signature: Signature): Buffer;
89
+ export declare function recoverPublicKey(hash: Buffer32, signature: Signature, opts?: RecoveryOpts): Buffer;
90
+ export {};
40
91
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/crypto/secp256k1-signer/utils.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAMjE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAG7D;AAYD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,CAGpE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAG,UAAU,CAG/E;AAqBD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAGhE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,CAO7E"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/crypto/secp256k1-signer/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAKjE,iCAAiC;AACjC,KAAK,YAAY,GAAG;IAClB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE;CAIvD;AAGD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAG7D;AAYD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,CAGpE;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,UAAU,CAUpG;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,SAAS,CAOnH;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,SAW/C;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAGhE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAM7D;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAUlE;AA6BD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,GAAE,YAAiB,GAAG,MAAM,CAYtG"}
@@ -4,6 +4,12 @@ import { EthAddress } from '../../eth-address/index.js';
4
4
  import { Signature } from '../../eth-signature/eth_signature.js';
5
5
  import { keccak256 } from '../keccak/index.js';
6
6
  const ETH_SIGN_PREFIX = '\x19Ethereum Signed Message:\n32';
7
+ export class Secp256k1Error extends Error {
8
+ constructor(message, opts){
9
+ super(message, opts);
10
+ this.name = 'Secp256k1Error';
11
+ }
12
+ }
7
13
  // We just hash the message to make it easier to work with in the smart contract.
8
14
  export function makeEthSignDigest(message) {
9
15
  const prefix = Buffer.from(ETH_SIGN_PREFIX);
@@ -39,17 +45,39 @@ export function makeEthSignDigest(message) {
39
45
  * Recovers an address from a hash and a signature.
40
46
  * @param hash - The hash to recover the address from.
41
47
  * @param signature - The signature to recover the address from.
48
+ * @param opts - Recovery options.
42
49
  * @returns The address.
43
- */ export function recoverAddress(hash, signature) {
44
- const publicKey = recoverPublicKey(hash, signature);
45
- return publicKeyToAddress(publicKey);
50
+ * @throws Error if signature recovery fails or if signature is malleable and allowMalleable is false.
51
+ */ export function recoverAddress(hash, signature, opts) {
52
+ try {
53
+ const publicKey = recoverPublicKey(hash, signature, opts);
54
+ return publicKeyToAddress(publicKey);
55
+ } catch (err) {
56
+ throw new Secp256k1Error(`Error recovering Ethereum address from hash ${hash.toString()} and signature ${signature.toString()}`, {
57
+ cause: err
58
+ });
59
+ }
60
+ }
61
+ /**
62
+ * Safely attempts to recover an address from a hash and a signature.
63
+ * @param hash - The hash to recover the address from.
64
+ * @param signature - The signature to recover the address from.
65
+ * @param opts - Recovery options.
66
+ * @returns The address if recovery succeeds, undefined otherwise.
67
+ */ export function tryRecoverAddress(hash, signature, opts) {
68
+ try {
69
+ const publicKey = recoverPublicKey(hash, signature, opts);
70
+ return publicKeyToAddress(publicKey);
71
+ } catch {
72
+ return undefined;
73
+ }
46
74
  }
47
75
  /**
48
76
  * @attribution - viem
49
77
  * Converts a yParityOrV value to a recovery bit.
50
78
  * @param yParityOrV - The yParityOrV value to convert.
51
79
  * @returns The recovery bit.
52
- */ function toRecoveryBit(yParityOrV) {
80
+ */ export function toRecoveryBit(yParityOrV) {
53
81
  if (yParityOrV === 0 || yParityOrV === 1) {
54
82
  return yParityOrV;
55
83
  }
@@ -59,7 +87,7 @@ export function makeEthSignDigest(message) {
59
87
  if (yParityOrV === 28) {
60
88
  return 1;
61
89
  }
62
- throw new Error('Invalid yParityOrV value');
90
+ throw new Secp256k1Error(`Invalid yParityOrV value ${yParityOrV}`);
63
91
  }
64
92
  /**
65
93
  * Signs a message using ecdsa over the secp256k1 curve.
@@ -70,15 +98,73 @@ export function makeEthSignDigest(message) {
70
98
  const { r, s, recovery } = secp256k1.sign(message.buffer, privateKey);
71
99
  return new Signature(Buffer32.fromBigInt(r), Buffer32.fromBigInt(s), recovery ? 28 : 27);
72
100
  }
101
+ /**
102
+ * Flips an ECDSA signature.
103
+ * If the signature has a low s-value (s < CURVE.n/2), it flips it to high s-value (CURVE.n - s) and vice versa.
104
+ * Also flips the v value accordingly (27 <-> 28, or 0 <-> 1).
105
+ * This is useful for testing signature malleability handling.
106
+ * @param signature - The signature to flip.
107
+ * @returns A new signature with flipped s-value and v-value.
108
+ */ export function flipSignature(signature) {
109
+ const { r, s, v } = signature;
110
+ const sig = new secp256k1.Signature(r.toBigInt(), s.toBigInt());
111
+ const flippedS = secp256k1.CURVE.n - sig.s;
112
+ return new Signature(r, Buffer32.fromBigInt(flippedS), flipV(v));
113
+ }
114
+ /**
115
+ * Normalizes an ECDSA signature.
116
+ * If the signature has a high s-value (s >= CURVE.n/2), it flips it to low s-value (CURVE.n - s), and flips v accordingly.
117
+ * If the signature uses a recovery bit of 0/1, it is converted to a v-value 27/28 for ecrecover.
118
+ * @remarks This does not handle post EIP155 tx signatures which embed the chain id in v. Use it only for feeding into ECRECOVER precompiles.
119
+ * @param signature - The signature to normalize.
120
+ */ export function normalizeSignature(signature) {
121
+ const { r, s, v } = signature;
122
+ const sig = new secp256k1.Signature(r.toBigInt(), s.toBigInt());
123
+ if (sig.hasHighS()) {
124
+ const newV = flipV(v);
125
+ const newS = sig.normalizeS().s;
126
+ return new Signature(r, Buffer32.fromBigInt(newS), toVFromYParityOrV(newV));
127
+ }
128
+ return new Signature(r, s, toVFromYParityOrV(v));
129
+ }
130
+ /** Converts a yParityOrV value to a pre-EIP155 v-value 27-28. */ function toVFromYParityOrV(yParityOrV) {
131
+ if (yParityOrV === 0 || yParityOrV === 1) {
132
+ return yParityOrV + 27;
133
+ } else if (yParityOrV === 27 || yParityOrV === 28) {
134
+ return yParityOrV;
135
+ } else {
136
+ throw new Secp256k1Error(`Invalid yParityOrV value ${yParityOrV}`);
137
+ }
138
+ }
139
+ /** Flips the recovery bit or v-value */ function flipV(v) {
140
+ switch(v){
141
+ case 27:
142
+ return 28;
143
+ case 28:
144
+ return 27;
145
+ case 0:
146
+ return 1;
147
+ case 1:
148
+ return 0;
149
+ default:
150
+ throw new Secp256k1Error(`Invalid v value ${v}`);
151
+ }
152
+ }
73
153
  /**
74
154
  * Recovers a public key from a hash and a signature.
75
155
  * @param hash - The hash to recover the public key from.
76
156
  * @param signature - The signature to recover the public key from.
77
157
  * @returns The public key.
78
- */ export function recoverPublicKey(hash, signature) {
158
+ */ export function recoverPublicKey(hash, signature, opts = {}) {
79
159
  const { r, s, v } = signature;
160
+ if (!opts.allowYParityAsV && v !== 27 && v !== 28) {
161
+ throw new Secp256k1Error(`Invalid v value ${v} (expected 27 or 28)`);
162
+ }
80
163
  const recoveryBit = toRecoveryBit(v);
81
164
  const sig = new secp256k1.Signature(r.toBigInt(), s.toBigInt()).addRecoveryBit(recoveryBit);
165
+ if (!opts.allowMalleable && sig.hasHighS()) {
166
+ throw new Secp256k1Error('Signature has high s-value (malleable signature)');
167
+ }
82
168
  const publicKey = sig.recoverPublicKey(hash.buffer).toHex(false);
83
169
  return Buffer.from(publicKey, 'hex');
84
170
  }
@@ -1,5 +1,3 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  import { Buffer } from 'buffer';
4
2
  /**
5
3
  * For serializing an array of fixed length buffers.
@@ -7,7 +5,7 @@ import { Buffer } from 'buffer';
7
5
  * @param arr - Array of bufffers.
8
6
  * @returns The serialized buffers.
9
7
  */
10
- export declare function serializeBufferArrayToVector(arr: Buffer[]): Buffer;
8
+ export declare function serializeBufferArrayToVector(arr: Buffer[]): Buffer<ArrayBuffer>;
11
9
  /**
12
10
  * Helper function for deserializeArrayFromVector.
13
11
  */
@@ -37,7 +35,7 @@ export declare function deserializeArrayFromVector<T>(deserialize: DeserializeFn
37
35
  * @param n - The number.
38
36
  * @returns The endian-corrected number.
39
37
  */
40
- export declare function numToUInt32LE(n: number, bufferSize?: number): Buffer;
38
+ export declare function numToUInt32LE(n: number, bufferSize?: number): Buffer<ArrayBuffer>;
41
39
  /**
42
40
  * Deserialize the 256-bit number at address `offset`.
43
41
  * @param buf - The buffer.
@@ -45,9 +43,9 @@ export declare function numToUInt32LE(n: number, bufferSize?: number): Buffer;
45
43
  * @returns The derserialized 256-bit field.
46
44
  */
47
45
  export declare function deserializeField(buf: Buffer, offset?: number): {
48
- elem: Buffer;
46
+ elem: Buffer<ArrayBuffer>;
49
47
  adv: number;
50
48
  };
51
- export declare function concatenateUint8Arrays(arrayOfUint8Arrays: Uint8Array[]): Uint8Array;
49
+ export declare function concatenateUint8Arrays(arrayOfUint8Arrays: Uint8Array[]): Uint8Array<ArrayBuffer>;
52
50
  export {};
53
51
  //# sourceMappingURL=serialize.d.ts.map
@@ -1 +1 @@
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,UAIzD;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,UAItD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI;;;EAGvD;AAED,wBAAgB,sBAAsB,CAAC,kBAAkB,EAAE,UAAU,EAAE,cAStE"}
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,9 +1,8 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  import { Fr } from '../../fields/fields.js';
4
2
  import { type Bufferable } from '../../serialize/serialize.js';
5
- export declare function sha256(data: Buffer): Buffer;
6
- export declare function sha256Trunc(data: Buffer): Buffer;
3
+ import type { Hasher } from '../../trees/hasher.js';
4
+ export declare function sha256(data: Buffer): Buffer<ArrayBuffer>;
5
+ export declare function sha256Trunc(data: Buffer): Buffer<ArrayBufferLike>;
7
6
  export declare function sha256ToField(data: Bufferable[]): Fr;
8
7
  /**
9
8
  * The "SHA256 Compression" operation (component operation of SHA256 "Hash").
@@ -17,4 +16,22 @@ export declare function sha256ToField(data: Bufferable[]): Fr;
17
16
  * @returns The modified state. 8 u32s.
18
17
  */
19
18
  export declare function sha256Compression(state: Uint32Array, inputs: Uint32Array): Uint32Array;
19
+ /**
20
+ * A helper class encapsulating SHA256 hash functionality.
21
+ * @deprecated Don't call SHA256 directly in production code. Instead, create suitably-named functions for specific
22
+ * purposes.
23
+ */
24
+ export declare class SHA256 implements Hasher {
25
+ hash(lhs: Uint8Array, rhs: Uint8Array): Buffer<ArrayBuffer>;
26
+ hashInputs(inputs: Buffer[]): Buffer<ArrayBuffer>;
27
+ }
28
+ /**
29
+ * A helper class encapsulating truncated SHA256 hash functionality.
30
+ * @deprecated Don't call SHA256 directly in production code. Instead, create suitably-named functions for specific
31
+ * purposes.
32
+ */
33
+ export declare class SHA256Trunc implements Hasher {
34
+ hash(lhs: Uint8Array, rhs: Uint8Array): Buffer<ArrayBuffer>;
35
+ hashInputs(inputs: Buffer[]): Buffer<ArrayBuffer>;
36
+ }
20
37
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/sha256/index.ts"],"names":[],"mappings":";;AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAE5C,OAAO,EAAE,KAAK,UAAU,EAAqB,MAAM,8BAA8B,CAAC;AAElF,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,UAElC;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,UAEvC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,MAG/C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,GAAG,WAAW,CAyEtF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/sha256/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAE5C,OAAO,EAAE,KAAK,UAAU,EAAqB,MAAM,8BAA8B,CAAC;AAClF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,uBAElC;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,2BAEvC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,MAG/C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,GAAG,WAAW,CAyEtF;AA4CD;;;;GAIG;AACH,qBAAa,MAAO,YAAW,MAAM;IAK5B,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAC4B,MAAM,CAAC,WAAW,CAAC;IAOpF,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GACQ,MAAM,CAAC,WAAW,CAAC;CAE9D;AAED;;;;GAIG;AACH,qBAAa,WAAY,YAAW,MAAM;IAKjC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAC4C,MAAM,CAAC,WAAW,CAAC;IAOpG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GACwB,MAAM,CAAC,WAAW,CAAC;CAE9E"}
@@ -164,3 +164,45 @@ function g0_256(x) {
164
164
  function g1_256(x) {
165
165
  return rotr32(x, 17) ^ rotr32(x, 19) ^ x >>> 10;
166
166
  }
167
+ /**
168
+ * A helper class encapsulating SHA256 hash functionality.
169
+ * @deprecated Don't call SHA256 directly in production code. Instead, create suitably-named functions for specific
170
+ * purposes.
171
+ */ export class SHA256 {
172
+ /*
173
+ * @deprecated Don't call SHA256 directly in production code. Instead, create suitably-named functions for specific
174
+ * purposes.
175
+ */ hash(lhs, rhs) {
176
+ return sha256(Buffer.concat([
177
+ Buffer.from(lhs),
178
+ Buffer.from(rhs)
179
+ ]));
180
+ }
181
+ /*
182
+ * @deprecated Don't call SHA256 directly in production code. Instead, create suitably-named functions for specific
183
+ * purposes.
184
+ */ hashInputs(inputs) {
185
+ return sha256(Buffer.concat(inputs));
186
+ }
187
+ }
188
+ /**
189
+ * A helper class encapsulating truncated SHA256 hash functionality.
190
+ * @deprecated Don't call SHA256 directly in production code. Instead, create suitably-named functions for specific
191
+ * purposes.
192
+ */ export class SHA256Trunc {
193
+ /*
194
+ * @deprecated Don't call SHA256 directly in production code. Instead, create suitably-named functions for specific
195
+ * purposes.
196
+ */ hash(lhs, rhs) {
197
+ return truncateAndPad(sha256(Buffer.concat([
198
+ Buffer.from(lhs),
199
+ Buffer.from(rhs)
200
+ ])));
201
+ }
202
+ /*
203
+ * @deprecated Don't call SHA256 directly in production code. Instead, create suitably-named functions for specific
204
+ * purposes.
205
+ */ hashInputs(inputs) {
206
+ return truncateAndPad(sha256(Buffer.concat(inputs)));
207
+ }
208
+ }
@@ -1,7 +1,5 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  import { type Bufferable } from '../../serialize/serialize.js';
4
- export declare const sha512: (data: Buffer) => Buffer;
2
+ export declare const sha512: (data: Buffer) => Buffer<ArrayBuffer>;
5
3
  /**
6
4
  * @dev We don't truncate in this function (unlike in sha256ToField) because this function is used in situations where
7
5
  * we don't care only about collision resistance but we need the output to be uniformly distributed as well. This is
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/sha512/index.ts"],"names":[],"mappings":";;AAGA,OAAO,EAAE,KAAK,UAAU,EAAqB,MAAM,8BAA8B,CAAC;AAElF,eAAO,MAAM,MAAM,SAAU,MAAM,WAAqD,CAAC;AAEzF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,SAAU,UAAU,EAAE,wCAGxD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/sha512/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,UAAU,EAAqB,MAAM,8BAA8B,CAAC;AAElF,eAAO,MAAM,MAAM,GAAI,MAAM,MAAM,wBAAqD,CAAC;AAEzF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAI,MAAM,UAAU,EAAE,wCAGxD,CAAC"}
@@ -1,5 +1,3 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  import type { Fr } from '@aztec/foundation/fields';
4
2
  /**
5
3
  * Interface to represent a signature.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/signature/index.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,QAAQ,IAAI,MAAM,CAAC;IACnB;;;OAGG;IACH,QAAQ,IAAI,EAAE,EAAE,CAAC;CAClB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/signature/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,QAAQ,IAAI,MAAM,CAAC;IACnB;;;OAGG;IACH,QAAQ,IAAI,EAAE,EAAE,CAAC;CAClB"}
@@ -1,4 +1,6 @@
1
1
  import { BarretenbergSync } from '@aztec/bb.js';
2
2
  export * from './poseidon/index.js';
3
3
  export * from './pedersen/index.js';
4
- await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
4
+ await BarretenbergSync.initSingleton({
5
+ wasmPath: process.env.BB_WASM_PATH
6
+ });