@aztec/foundation 0.0.0-test.0 → 0.0.1-fake-c83136db25

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 (498) 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 +14 -3
  21. package/dest/collection/array.d.ts.map +1 -1
  22. package/dest/collection/array.js +45 -0
  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/bn254/index.d.ts +54 -0
  44. package/dest/crypto/bn254/index.d.ts.map +1 -0
  45. package/dest/crypto/bn254/index.js +140 -0
  46. package/dest/crypto/ecdsa/index.d.ts +2 -2
  47. package/dest/crypto/ecdsa/index.d.ts.map +1 -1
  48. package/dest/crypto/ecdsa/index.js +70 -48
  49. package/dest/crypto/ecdsa/signature.d.ts +1 -3
  50. package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
  51. package/dest/crypto/grumpkin/index.d.ts +6 -13
  52. package/dest/crypto/grumpkin/index.d.ts.map +1 -1
  53. package/dest/crypto/grumpkin/index.js +69 -54
  54. package/dest/crypto/index.d.ts +1 -0
  55. package/dest/crypto/index.d.ts.map +1 -1
  56. package/dest/crypto/index.js +1 -0
  57. package/dest/crypto/keccak/index.d.ts +2 -4
  58. package/dest/crypto/keccak/index.d.ts.map +1 -1
  59. package/dest/crypto/keys/index.d.ts +0 -2
  60. package/dest/crypto/keys/index.d.ts.map +1 -1
  61. package/dest/crypto/keys/index.js +9 -4
  62. package/dest/crypto/pedersen/pedersen.noble.d.ts +2 -4
  63. package/dest/crypto/pedersen/pedersen.noble.d.ts.map +1 -1
  64. package/dest/crypto/pedersen/pedersen.wasm.d.ts +2 -4
  65. package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
  66. package/dest/crypto/pedersen/pedersen.wasm.js +29 -13
  67. package/dest/crypto/poseidon/index.d.ts +0 -2
  68. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  69. package/dest/crypto/poseidon/index.js +42 -17
  70. package/dest/crypto/random/index.d.ts +1 -3
  71. package/dest/crypto/random/index.d.ts.map +1 -1
  72. package/dest/crypto/random/index.js +2 -34
  73. package/dest/crypto/random/randomness_singleton.d.ts +0 -2
  74. package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
  75. package/dest/crypto/schnorr/index.d.ts.map +1 -1
  76. package/dest/crypto/schnorr/index.js +35 -37
  77. package/dest/crypto/schnorr/signature.d.ts +3 -5
  78. package/dest/crypto/schnorr/signature.d.ts.map +1 -1
  79. package/dest/crypto/secp256k1/index.d.ts +4 -6
  80. package/dest/crypto/secp256k1/index.d.ts.map +1 -1
  81. package/dest/crypto/secp256k1/index.js +29 -18
  82. package/dest/crypto/secp256k1-signer/utils.d.ts +15 -2
  83. package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
  84. package/dest/crypto/secp256k1-signer/utils.js +21 -3
  85. package/dest/crypto/serialize.d.ts +4 -6
  86. package/dest/crypto/serialize.d.ts.map +1 -1
  87. package/dest/crypto/sha256/index.d.ts +21 -4
  88. package/dest/crypto/sha256/index.d.ts.map +1 -1
  89. package/dest/crypto/sha256/index.js +42 -0
  90. package/dest/crypto/sha512/index.d.ts +1 -3
  91. package/dest/crypto/sha512/index.d.ts.map +1 -1
  92. package/dest/crypto/signature/index.d.ts +0 -2
  93. package/dest/crypto/signature/index.d.ts.map +1 -1
  94. package/dest/crypto/sync/index.js +3 -1
  95. package/dest/crypto/sync/pedersen/index.d.ts +2 -4
  96. package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
  97. package/dest/crypto/sync/pedersen/index.js +17 -10
  98. package/dest/crypto/sync/poseidon/index.d.ts +0 -2
  99. package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
  100. package/dest/crypto/sync/poseidon/index.js +27 -12
  101. package/dest/decorators/memoize.d.ts.map +1 -1
  102. package/dest/eth-address/index.d.ts +6 -7
  103. package/dest/eth-address/index.d.ts.map +1 -1
  104. package/dest/eth-address/index.js +5 -0
  105. package/dest/eth-signature/eth_signature.d.ts +16 -14
  106. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  107. package/dest/eth-signature/eth_signature.js +31 -17
  108. package/dest/fields/bls12_fields.d.ts +148 -0
  109. package/dest/fields/bls12_fields.d.ts.map +1 -0
  110. package/dest/fields/bls12_fields.js +359 -0
  111. package/dest/fields/bls12_point.d.ts +229 -0
  112. package/dest/fields/bls12_point.d.ts.map +1 -0
  113. package/dest/fields/bls12_point.js +398 -0
  114. package/dest/fields/coordinate.d.ts +0 -2
  115. package/dest/fields/coordinate.d.ts.map +1 -1
  116. package/dest/fields/fields.d.ts +6 -3
  117. package/dest/fields/fields.d.ts.map +1 -1
  118. package/dest/fields/fields.js +43 -15
  119. package/dest/fields/index.d.ts +2 -0
  120. package/dest/fields/index.d.ts.map +1 -1
  121. package/dest/fields/index.js +2 -0
  122. package/dest/fields/point.d.ts +2 -4
  123. package/dest/fields/point.d.ts.map +1 -1
  124. package/dest/fields/point.js +3 -3
  125. package/dest/fs/index.d.ts +1 -0
  126. package/dest/fs/index.d.ts.map +1 -1
  127. package/dest/fs/index.js +1 -0
  128. package/dest/fs/try_rm_dir.d.ts +3 -0
  129. package/dest/fs/try_rm_dir.d.ts.map +1 -0
  130. package/dest/fs/try_rm_dir.js +16 -0
  131. package/dest/index.d.ts +1 -2
  132. package/dest/index.d.ts.map +1 -1
  133. package/dest/index.js +1 -2
  134. package/dest/iterable/filter.js +1 -1
  135. package/dest/iterable/map.js +1 -1
  136. package/dest/jest/env.js +48 -0
  137. package/dest/jest/setupAfterEnv.js +3 -0
  138. package/dest/json-rpc/client/fetch.d.ts +2 -2
  139. package/dest/json-rpc/client/fetch.d.ts.map +1 -1
  140. package/dest/json-rpc/client/fetch.js +16 -30
  141. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +9 -3
  142. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
  143. package/dest/json-rpc/client/safe_json_rpc_client.js +173 -13
  144. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  145. package/dest/json-rpc/client/undici.js +6 -7
  146. package/dest/json-rpc/convert.d.ts +2 -9
  147. package/dest/json-rpc/convert.d.ts.map +1 -1
  148. package/dest/json-rpc/convert.js +1 -9
  149. package/dest/json-rpc/errors.d.ts +4 -0
  150. package/dest/json-rpc/errors.d.ts.map +1 -0
  151. package/dest/json-rpc/errors.js +6 -0
  152. package/dest/json-rpc/fixtures/class_a.d.ts +5 -3
  153. package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
  154. package/dest/json-rpc/fixtures/class_b.d.ts +5 -3
  155. package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -1
  156. package/dest/json-rpc/index.d.ts +2 -1
  157. package/dest/json-rpc/index.d.ts.map +1 -1
  158. package/dest/json-rpc/index.js +2 -1
  159. package/dest/json-rpc/js_utils.d.ts.map +1 -1
  160. package/dest/json-rpc/server/safe_json_rpc_server.d.ts +21 -22
  161. package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
  162. package/dest/json-rpc/server/safe_json_rpc_server.js +161 -56
  163. package/dest/json-rpc/test/integration.d.ts +1 -2
  164. package/dest/json-rpc/test/integration.d.ts.map +1 -1
  165. package/dest/log/console.d.ts.map +1 -1
  166. package/dest/log/gcloud-logger-config.d.ts +0 -1
  167. package/dest/log/gcloud-logger-config.d.ts.map +1 -1
  168. package/dest/log/gcloud-logger-config.js +1 -9
  169. package/dest/log/index.d.ts +4 -4
  170. package/dest/log/index.d.ts.map +1 -1
  171. package/dest/log/index.js +4 -4
  172. package/dest/log/libp2p_logger.js +13 -2
  173. package/dest/log/log_fn.d.ts +1 -1
  174. package/dest/log/log_fn.d.ts.map +1 -1
  175. package/dest/log/noir_debug_log_util.d.ts +14 -0
  176. package/dest/log/noir_debug_log_util.d.ts.map +1 -0
  177. package/dest/log/noir_debug_log_util.js +14 -0
  178. package/dest/log/pino-logger.d.ts +2 -2
  179. package/dest/log/pino-logger.d.ts.map +1 -1
  180. package/dest/log/pino-logger.js +28 -2
  181. package/dest/message/index.d.ts.map +1 -1
  182. package/dest/mutex/mutex_database.d.ts.map +1 -1
  183. package/dest/noir/noir_package_config.d.ts +4 -4
  184. package/dest/number/index.d.ts +3 -0
  185. package/dest/number/index.d.ts.map +1 -0
  186. package/dest/number/index.js +12 -0
  187. package/dest/profiler/index.d.ts +2 -0
  188. package/dest/profiler/index.d.ts.map +1 -0
  189. package/dest/profiler/index.js +1 -0
  190. package/dest/profiler/profiler.d.ts +8 -0
  191. package/dest/profiler/profiler.d.ts.map +1 -0
  192. package/dest/profiler/profiler.js +97 -0
  193. package/dest/promise/running-promise.d.ts +1 -1
  194. package/dest/promise/running-promise.d.ts.map +1 -1
  195. package/dest/promise/running-promise.js +2 -2
  196. package/dest/queue/batch_queue.d.ts +1 -1
  197. package/dest/queue/batch_queue.js +1 -1
  198. package/dest/queue/bounded_serial_queue.d.ts.map +1 -1
  199. package/dest/queue/serial_queue.d.ts +2 -2
  200. package/dest/queue/serial_queue.d.ts.map +1 -1
  201. package/dest/queue/serial_queue.js +7 -5
  202. package/dest/retry/index.d.ts +3 -2
  203. package/dest/retry/index.d.ts.map +1 -1
  204. package/dest/retry/index.js +2 -2
  205. package/dest/schemas/api.d.ts.map +1 -1
  206. package/dest/schemas/parse.js +1 -1
  207. package/dest/schemas/schemas.d.ts +9 -6
  208. package/dest/schemas/schemas.d.ts.map +1 -1
  209. package/dest/schemas/schemas.js +15 -1
  210. package/dest/schemas/utils.d.ts +1 -3
  211. package/dest/schemas/utils.d.ts.map +1 -1
  212. package/dest/serialize/buffer_reader.d.ts +27 -2
  213. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  214. package/dest/serialize/buffer_reader.js +44 -2
  215. package/dest/serialize/field_reader.d.ts +10 -1
  216. package/dest/serialize/field_reader.d.ts.map +1 -1
  217. package/dest/serialize/field_reader.js +18 -1
  218. package/dest/serialize/free_funcs.d.ts +23 -21
  219. package/dest/serialize/free_funcs.d.ts.map +1 -1
  220. package/dest/serialize/free_funcs.js +21 -27
  221. package/dest/serialize/serialize.d.ts +4 -5
  222. package/dest/serialize/serialize.d.ts.map +1 -1
  223. package/dest/string/index.d.ts +3 -2
  224. package/dest/string/index.d.ts.map +1 -1
  225. package/dest/string/index.js +26 -0
  226. package/dest/testing/files/index.d.ts +0 -2
  227. package/dest/testing/files/index.d.ts.map +1 -1
  228. package/dest/testing/files/index.js +2 -2
  229. package/dest/testing/formatting.d.ts +4 -0
  230. package/dest/testing/formatting.d.ts.map +1 -0
  231. package/dest/testing/formatting.js +3 -0
  232. package/dest/testing/index.d.ts +1 -0
  233. package/dest/testing/index.d.ts.map +1 -1
  234. package/dest/testing/index.js +1 -0
  235. package/dest/timer/date.d.ts +2 -1
  236. package/dest/timer/date.d.ts.map +1 -1
  237. package/dest/timer/date.js +5 -3
  238. package/dest/timer/index.d.ts +1 -1
  239. package/dest/timer/index.d.ts.map +1 -1
  240. package/dest/timer/index.js +1 -1
  241. package/dest/timer/timeout.d.ts +18 -5
  242. package/dest/timer/timeout.d.ts.map +1 -1
  243. package/dest/timer/timeout.js +43 -22
  244. package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +1 -1
  245. package/dest/transport/index.d.ts +0 -1
  246. package/dest/transport/index.d.ts.map +1 -1
  247. package/dest/transport/index.js +0 -1
  248. package/dest/transport/interface/connector.d.ts.map +1 -1
  249. package/dest/transport/interface/listener.d.ts +0 -1
  250. package/dest/transport/interface/listener.d.ts.map +1 -1
  251. package/dest/transport/interface/socket.d.ts.map +1 -1
  252. package/dest/transport/node/node_connector.d.ts +0 -1
  253. package/dest/transport/node/node_connector.d.ts.map +1 -1
  254. package/dest/transport/node/node_connector_socket.d.ts +0 -1
  255. package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
  256. package/dest/transport/node/node_listener.d.ts +0 -1
  257. package/dest/transport/node/node_listener.d.ts.map +1 -1
  258. package/dest/transport/node/node_listener_socket.d.ts +0 -1
  259. package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
  260. package/dest/transport/transport_client.d.ts +0 -1
  261. package/dest/transport/transport_client.d.ts.map +1 -1
  262. package/dest/transport/transport_server.d.ts.map +1 -1
  263. package/dest/trees/hasher.d.ts +4 -6
  264. package/dest/trees/hasher.d.ts.map +1 -1
  265. package/dest/trees/index.d.ts +1 -0
  266. package/dest/trees/index.d.ts.map +1 -1
  267. package/dest/trees/index.js +1 -0
  268. package/dest/trees/indexed_merkle_tree.d.ts +0 -2
  269. package/dest/trees/indexed_merkle_tree.d.ts.map +1 -1
  270. package/dest/trees/indexed_merkle_tree_calculator.d.ts +1 -3
  271. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
  272. package/dest/trees/indexed_tree_leaf.d.ts +0 -2
  273. package/dest/trees/indexed_tree_leaf.d.ts.map +1 -1
  274. package/dest/trees/membership_witness.d.ts +19 -3
  275. package/dest/trees/membership_witness.d.ts.map +1 -1
  276. package/dest/trees/membership_witness.js +13 -0
  277. package/dest/trees/merkle_tree.d.ts +0 -2
  278. package/dest/trees/merkle_tree.d.ts.map +1 -1
  279. package/dest/trees/merkle_tree_calculator.d.ts +11 -3
  280. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  281. package/dest/trees/merkle_tree_calculator.js +31 -1
  282. package/dest/trees/sibling_path.d.ts +6 -8
  283. package/dest/trees/sibling_path.d.ts.map +1 -1
  284. package/dest/trees/unbalanced_merkle_tree.d.ts +19 -8
  285. package/dest/trees/unbalanced_merkle_tree.d.ts.map +1 -1
  286. package/dest/trees/unbalanced_merkle_tree.js +49 -50
  287. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +48 -0
  288. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -0
  289. package/dest/trees/unbalanced_merkle_tree_calculator.js +162 -0
  290. package/dest/trees/unbalanced_tree_store.d.ts +1 -0
  291. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
  292. package/dest/trees/unbalanced_tree_store.js +6 -0
  293. package/dest/types/index.d.ts +25 -2
  294. package/dest/types/index.d.ts.map +1 -1
  295. package/dest/url/index.d.ts.map +1 -1
  296. package/dest/url/index.js +1 -1
  297. package/package.json +32 -41
  298. package/src/array/array.ts +13 -0
  299. package/src/async-pool/index.ts +1 -0
  300. package/src/bigint/index.ts +20 -0
  301. package/src/buffer/buffer16.ts +133 -0
  302. package/src/buffer/buffer32.ts +8 -6
  303. package/src/buffer/index.ts +1 -0
  304. package/src/collection/array.ts +51 -1
  305. package/src/collection/object.ts +37 -0
  306. package/src/config/env_var.ts +142 -52
  307. package/src/config/index.ts +191 -8
  308. package/src/config/network_config.ts +16 -0
  309. package/src/config/network_name.ts +28 -0
  310. package/src/config/secret_value.ts +49 -0
  311. package/src/crypto/aes128/index.ts +19 -10
  312. package/src/crypto/bn254/index.ts +167 -0
  313. package/src/crypto/ecdsa/index.ts +41 -23
  314. package/src/crypto/grumpkin/index.ts +35 -45
  315. package/src/crypto/index.ts +1 -0
  316. package/src/crypto/keys/index.ts +5 -5
  317. package/src/crypto/pedersen/pedersen.wasm.ts +22 -18
  318. package/src/crypto/poseidon/index.ts +32 -24
  319. package/src/crypto/random/index.ts +2 -40
  320. package/src/crypto/schnorr/index.ts +20 -17
  321. package/src/crypto/secp256k1/index.ts +15 -11
  322. package/src/crypto/secp256k1-signer/utils.ts +25 -4
  323. package/src/crypto/sha256/index.ts +47 -0
  324. package/src/crypto/sync/index.ts +1 -1
  325. package/src/crypto/sync/pedersen/index.ts +16 -15
  326. package/src/crypto/sync/poseidon/index.ts +27 -22
  327. package/src/eth-address/index.ts +9 -2
  328. package/src/eth-signature/eth_signature.ts +44 -22
  329. package/src/fields/bls12_fields.ts +463 -0
  330. package/src/fields/bls12_point.ts +450 -0
  331. package/src/fields/fields.ts +37 -9
  332. package/src/fields/index.ts +2 -0
  333. package/src/fields/point.ts +1 -3
  334. package/src/fs/index.ts +1 -0
  335. package/src/fs/try_rm_dir.ts +15 -0
  336. package/src/index.ts +1 -2
  337. package/src/iterable/filter.ts +1 -1
  338. package/src/iterable/map.ts +1 -1
  339. package/src/jest/env.mjs +52 -0
  340. package/src/jest/setupAfterEnv.mjs +3 -0
  341. package/src/json-rpc/client/fetch.ts +14 -33
  342. package/src/json-rpc/client/safe_json_rpc_client.ts +226 -13
  343. package/src/json-rpc/client/undici.ts +8 -15
  344. package/src/json-rpc/convert.ts +3 -12
  345. package/src/json-rpc/errors.ts +6 -0
  346. package/src/json-rpc/fixtures/class_a.ts +4 -1
  347. package/src/json-rpc/fixtures/class_b.ts +4 -1
  348. package/src/json-rpc/index.ts +2 -1
  349. package/src/json-rpc/server/safe_json_rpc_server.ts +141 -48
  350. package/src/json-rpc/test/integration.ts +1 -1
  351. package/src/log/console.ts +4 -1
  352. package/src/log/gcloud-logger-config.ts +3 -7
  353. package/src/log/index.ts +4 -4
  354. package/src/log/libp2p_logger.ts +21 -2
  355. package/src/log/log_fn.ts +1 -1
  356. package/src/log/noir_debug_log_util.ts +21 -0
  357. package/src/log/pino-logger.ts +33 -2
  358. package/src/message/index.ts +5 -1
  359. package/src/mutex/mutex_database.ts +2 -3
  360. package/src/number/index.ts +14 -0
  361. package/src/profiler/index.ts +1 -0
  362. package/src/profiler/profiler.ts +125 -0
  363. package/src/promise/running-promise.ts +2 -2
  364. package/src/queue/batch_queue.ts +1 -1
  365. package/src/queue/bounded_serial_queue.ts +4 -1
  366. package/src/queue/serial_queue.ts +5 -5
  367. package/src/retry/index.ts +10 -5
  368. package/src/schemas/api.ts +4 -4
  369. package/src/schemas/parse.ts +1 -1
  370. package/src/schemas/schemas.ts +19 -1
  371. package/src/serialize/buffer_reader.ts +60 -3
  372. package/src/serialize/field_reader.ts +27 -3
  373. package/src/serialize/free_funcs.ts +25 -31
  374. package/src/serialize/serialize.ts +2 -0
  375. package/src/string/index.ts +33 -1
  376. package/src/testing/files/index.ts +6 -2
  377. package/src/testing/formatting.ts +3 -0
  378. package/src/testing/index.ts +1 -0
  379. package/src/timer/date.ts +9 -3
  380. package/src/timer/index.ts +1 -1
  381. package/src/timer/timeout.ts +54 -19
  382. package/src/transport/index.ts +0 -1
  383. package/src/transport/interface/connector.ts +0 -1
  384. package/src/transport/interface/listener.ts +2 -3
  385. package/src/transport/interface/socket.ts +2 -3
  386. package/src/transport/transport_client.ts +3 -4
  387. package/src/transport/transport_server.ts +4 -1
  388. package/src/trees/hasher.ts +4 -4
  389. package/src/trees/index.ts +1 -0
  390. package/src/trees/indexed_merkle_tree.ts +5 -1
  391. package/src/trees/indexed_merkle_tree_calculator.ts +2 -2
  392. package/src/trees/membership_witness.ts +13 -0
  393. package/src/trees/merkle_tree.ts +4 -1
  394. package/src/trees/merkle_tree_calculator.ts +43 -5
  395. package/src/trees/unbalanced_merkle_tree.ts +50 -42
  396. package/src/trees/unbalanced_merkle_tree_calculator.ts +194 -0
  397. package/src/trees/unbalanced_tree_store.ts +5 -1
  398. package/src/types/index.ts +25 -4
  399. package/src/url/index.ts +0 -1
  400. package/dest/crypto/pedersen/pedersen.elliptic.d.ts +0 -13
  401. package/dest/crypto/pedersen/pedersen.elliptic.d.ts.map +0 -1
  402. package/dest/crypto/pedersen/pedersen.elliptic.js +0 -582
  403. package/dest/log/debug.d.ts +0 -56
  404. package/dest/log/debug.d.ts.map +0 -1
  405. package/dest/log/debug.js +0 -75
  406. package/dest/log/log_history.d.ts +0 -31
  407. package/dest/log/log_history.d.ts.map +0 -1
  408. package/dest/log/log_history.js +0 -38
  409. package/dest/transport/browser/index.d.ts +0 -5
  410. package/dest/transport/browser/index.d.ts.map +0 -1
  411. package/dest/transport/browser/index.js +0 -4
  412. package/dest/transport/browser/message_port_socket.d.ts +0 -37
  413. package/dest/transport/browser/message_port_socket.d.ts.map +0 -1
  414. package/dest/transport/browser/message_port_socket.js +0 -42
  415. package/dest/transport/browser/shared_worker_connector.d.ts +0 -19
  416. package/dest/transport/browser/shared_worker_connector.d.ts.map +0 -1
  417. package/dest/transport/browser/shared_worker_connector.js +0 -19
  418. package/dest/transport/browser/shared_worker_listener.d.ts +0 -38
  419. package/dest/transport/browser/shared_worker_listener.d.ts.map +0 -1
  420. package/dest/transport/browser/shared_worker_listener.js +0 -33
  421. package/dest/transport/browser/worker_connector.d.ts +0 -26
  422. package/dest/transport/browser/worker_connector.d.ts.map +0 -1
  423. package/dest/transport/browser/worker_connector.js +0 -30
  424. package/dest/transport/browser/worker_listener.d.ts +0 -39
  425. package/dest/transport/browser/worker_listener.d.ts.map +0 -1
  426. package/dest/transport/browser/worker_listener.js +0 -35
  427. package/dest/wasm/empty_wasi_sdk.d.ts +0 -130
  428. package/dest/wasm/empty_wasi_sdk.d.ts.map +0 -1
  429. package/dest/wasm/empty_wasi_sdk.js +0 -148
  430. package/dest/wasm/index.d.ts +0 -2
  431. package/dest/wasm/index.d.ts.map +0 -1
  432. package/dest/wasm/index.js +0 -1
  433. package/dest/wasm/wasm_module.d.ts +0 -136
  434. package/dest/wasm/wasm_module.d.ts.map +0 -1
  435. package/dest/wasm/wasm_module.js +0 -196
  436. package/dest/worker/browser/index.d.ts +0 -3
  437. package/dest/worker/browser/index.d.ts.map +0 -1
  438. package/dest/worker/browser/index.js +0 -2
  439. package/dest/worker/browser/start_web_module.d.ts +0 -7
  440. package/dest/worker/browser/start_web_module.d.ts.map +0 -1
  441. package/dest/worker/browser/start_web_module.js +0 -27
  442. package/dest/worker/browser/web_data_store.d.ts +0 -24
  443. package/dest/worker/browser/web_data_store.d.ts.map +0 -1
  444. package/dest/worker/browser/web_data_store.js +0 -29
  445. package/dest/worker/browser/web_worker.d.ts +0 -10
  446. package/dest/worker/browser/web_worker.d.ts.map +0 -1
  447. package/dest/worker/browser/web_worker.js +0 -25
  448. package/dest/worker/data_store.d.ts +0 -21
  449. package/dest/worker/data_store.d.ts.map +0 -1
  450. package/dest/worker/data_store.js +0 -3
  451. package/dest/worker/index.d.ts +0 -3
  452. package/dest/worker/index.d.ts.map +0 -1
  453. package/dest/worker/index.js +0 -1
  454. package/dest/worker/node/index.d.ts +0 -3
  455. package/dest/worker/node/index.d.ts.map +0 -1
  456. package/dest/worker/node/index.js +0 -2
  457. package/dest/worker/node/node_data_store.d.ts +0 -13
  458. package/dest/worker/node/node_data_store.d.ts.map +0 -1
  459. package/dest/worker/node/node_data_store.js +0 -20
  460. package/dest/worker/node/node_worker.d.ts +0 -6
  461. package/dest/worker/node/node_worker.d.ts.map +0 -1
  462. package/dest/worker/node/node_worker.js +0 -22
  463. package/dest/worker/node/start_node_module.d.ts +0 -7
  464. package/dest/worker/node/start_node_module.d.ts.map +0 -1
  465. package/dest/worker/node/start_node_module.js +0 -31
  466. package/dest/worker/wasm_worker.d.ts +0 -9
  467. package/dest/worker/wasm_worker.d.ts.map +0 -1
  468. package/dest/worker/wasm_worker.js +0 -3
  469. package/dest/worker/worker_pool.d.ts +0 -40
  470. package/dest/worker/worker_pool.d.ts.map +0 -1
  471. package/dest/worker/worker_pool.js +0 -51
  472. package/src/crypto/pedersen/pedersen.elliptic.ts +0 -584
  473. package/src/log/debug.ts +0 -104
  474. package/src/log/log_history.ts +0 -44
  475. package/src/transport/browser/index.ts +0 -4
  476. package/src/transport/browser/message_port_socket.ts +0 -48
  477. package/src/transport/browser/shared_worker_connector.ts +0 -21
  478. package/src/transport/browser/shared_worker_listener.ts +0 -53
  479. package/src/transport/browser/worker_connector.ts +0 -30
  480. package/src/transport/browser/worker_listener.ts +0 -54
  481. package/src/wasm/README.md +0 -6
  482. package/src/wasm/empty_wasi_sdk.ts +0 -166
  483. package/src/wasm/fixtures/gcd.wasm +0 -0
  484. package/src/wasm/fixtures/gcd.wat +0 -27
  485. package/src/wasm/index.ts +0 -1
  486. package/src/wasm/wasm_module.ts +0 -260
  487. package/src/worker/browser/index.ts +0 -2
  488. package/src/worker/browser/start_web_module.ts +0 -24
  489. package/src/worker/browser/web_data_store.ts +0 -38
  490. package/src/worker/browser/web_worker.ts +0 -25
  491. package/src/worker/data_store.ts +0 -19
  492. package/src/worker/index.ts +0 -2
  493. package/src/worker/node/index.ts +0 -2
  494. package/src/worker/node/node_data_store.ts +0 -27
  495. package/src/worker/node/node_worker.ts +0 -23
  496. package/src/worker/node/start_node_module.ts +0 -30
  497. package/src/worker/wasm_worker.ts +0 -7
  498. package/src/worker/worker_pool.ts +0 -73
@@ -1,11 +1,9 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  /**
4
2
  * Create a pedersen commitment (point) from an array of input fields.
5
3
  */
6
- export declare function pedersenCommitNoble(input: Buffer[], generatorOffset?: number): Buffer[];
4
+ export declare function pedersenCommitNoble(input: Buffer[], generatorOffset?: number): Buffer<ArrayBufferLike>[];
7
5
  /**
8
6
  * Create a pedersen hash (field) from an array of input fields.
9
7
  */
10
- export declare function pedersenHashWithHashIndexNoble(input: Buffer[], index?: number): Buffer;
8
+ export declare function pedersenHashWithHashIndexNoble(input: Buffer[], index?: number): Buffer<ArrayBufferLike>;
11
9
  //# sourceMappingURL=pedersen.noble.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pedersen.noble.d.ts","sourceRoot":"","sources":["../../../src/crypto/pedersen/pedersen.noble.ts"],"names":[],"mappings":";;AA8iBA;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,eAAe,SAAI,YAGvE;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,SAAI,UAGxE"}
1
+ {"version":3,"file":"pedersen.noble.d.ts","sourceRoot":"","sources":["../../../src/crypto/pedersen/pedersen.noble.ts"],"names":[],"mappings":"AA8iBA;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,eAAe,SAAI,6BAGvE;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,SAAI,2BAGxE"}
@@ -1,12 +1,10 @@
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 Fieldable } from '../../serialize/serialize.js';
5
3
  /**
6
4
  * Create a pedersen commitment (point) from an array of input fields.
7
5
  * Left pads any inputs less than 32 bytes.
8
6
  */
9
- export declare function pedersenCommit(input: Buffer[], offset?: number): Promise<Buffer[]>;
7
+ export declare function pedersenCommit(input: Buffer[], offset?: number): Promise<Buffer<ArrayBuffer>[]>;
10
8
  /**
11
9
  * Create a pedersen hash (field) from an array of input fields.
12
10
  * @param input - The input fieldables to hash.
@@ -17,5 +15,5 @@ export declare function pedersenHash(input: Fieldable[], index?: number): Promis
17
15
  /**
18
16
  * Create a pedersen hash from an arbitrary length buffer.
19
17
  */
20
- export declare function pedersenHashBuffer(input: Buffer, index?: number): Promise<Buffer>;
18
+ export declare function pedersenHashBuffer(input: Buffer, index?: number): Promise<Buffer<ArrayBuffer>>;
21
19
  //# sourceMappingURL=pedersen.wasm.d.ts.map
@@ -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,qBAa/D;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,SAAI,GAAG,OAAO,CAAC,EAAE,CAAC,CAQ7E;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAI,mBAIhE"}
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,4 +1,4 @@
1
- import { BarretenbergSync, Fr as FrBarretenberg } from '@aztec/bb.js';
1
+ import { BarretenbergSync } from '@aztec/bb.js';
2
2
  import { Fr } from '../../fields/fields.js';
3
3
  import { serializeToFields } from '../../serialize/serialize.js';
4
4
  /**
@@ -12,13 +12,17 @@ import { serializeToFields } from '../../serialize/serialize.js';
12
12
  Buffer.alloc(32 - i.length, 0),
13
13
  i
14
14
  ]) : i);
15
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
16
- const point = api.pedersenCommit(input.map((i)=>new FrBarretenberg(i)), offset);
17
- // toBuffer returns Uint8Arrays (browser/worker-boundary friendly).
18
- // TODO: rename toTypedArray()?
15
+ await BarretenbergSync.initSingleton({
16
+ wasmPath: process.env.BB_WASM_PATH
17
+ });
18
+ const api = BarretenbergSync.getSingleton();
19
+ const response = api.pedersenCommit({
20
+ inputs: input,
21
+ hashIndex: offset
22
+ });
19
23
  return [
20
- Buffer.from(point.x.toBuffer()),
21
- Buffer.from(point.y.toBuffer())
24
+ Buffer.from(response.point.x),
25
+ Buffer.from(response.point.y)
22
26
  ];
23
27
  }
24
28
  /**
@@ -28,14 +32,26 @@ import { serializeToFields } from '../../serialize/serialize.js';
28
32
  * @returns The pedersen hash.
29
33
  */ export async function pedersenHash(input, index = 0) {
30
34
  const inputFields = serializeToFields(input);
31
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
32
- const hash = api.pedersenHash(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())), index);
33
- return Fr.fromBuffer(Buffer.from(hash.toBuffer()));
35
+ await BarretenbergSync.initSingleton({
36
+ wasmPath: process.env.BB_WASM_PATH
37
+ });
38
+ const api = BarretenbergSync.getSingleton();
39
+ const response = api.pedersenHash({
40
+ inputs: inputFields.map((i)=>i.toBuffer()),
41
+ hashIndex: index
42
+ });
43
+ return Fr.fromBuffer(Buffer.from(response.hash));
34
44
  }
35
45
  /**
36
46
  * Create a pedersen hash from an arbitrary length buffer.
37
47
  */ export async function pedersenHashBuffer(input, index = 0) {
38
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
39
- const result = api.pedersenHashBuffer(input, index);
40
- return Buffer.from(result.toBuffer());
48
+ await BarretenbergSync.initSingleton({
49
+ wasmPath: process.env.BB_WASM_PATH
50
+ });
51
+ const api = BarretenbergSync.getSingleton();
52
+ const response = api.pedersenHashBuffer({
53
+ input,
54
+ hashIndex: index
55
+ });
56
+ return Buffer.from(response.hash);
41
57
  }
@@ -1,5 +1,3 @@
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 Fieldable } from '../../serialize/serialize.js';
5
3
  /**
@@ -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,CAOnE;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,CAK7E;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAS5E;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAiBnE"}
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,4 +1,4 @@
1
- import { BarretenbergSync, Fr as FrBarretenberg } from '@aztec/bb.js';
1
+ import { BarretenbergSync } from '@aztec/bb.js';
2
2
  import { Fr } from '../../fields/fields.js';
3
3
  import { serializeToFields } from '../../serialize/serialize.js';
4
4
  /**
@@ -7,9 +7,14 @@ import { serializeToFields } from '../../serialize/serialize.js';
7
7
  * @returns The poseidon hash.
8
8
  */ export async function poseidon2Hash(input) {
9
9
  const inputFields = serializeToFields(input);
10
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
11
- const hash = api.poseidon2Hash(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())));
12
- return Fr.fromBuffer(Buffer.from(hash.toBuffer()));
10
+ await BarretenbergSync.initSingleton({
11
+ wasmPath: process.env.BB_WASM_PATH
12
+ });
13
+ const api = BarretenbergSync.getSingleton();
14
+ const response = api.poseidon2Hash({
15
+ inputs: inputFields.map((i)=>i.toBuffer())
16
+ });
17
+ return Fr.fromBuffer(Buffer.from(response.hash));
13
18
  }
14
19
  /**
15
20
  * Create a poseidon hash (field) from an array of input fields and a domain separator.
@@ -19,15 +24,25 @@ import { serializeToFields } from '../../serialize/serialize.js';
19
24
  */ export async function poseidon2HashWithSeparator(input, separator) {
20
25
  const inputFields = serializeToFields(input);
21
26
  inputFields.unshift(new Fr(separator));
22
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
23
- const hash = api.poseidon2Hash(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())));
24
- return Fr.fromBuffer(Buffer.from(hash.toBuffer()));
27
+ await BarretenbergSync.initSingleton({
28
+ wasmPath: process.env.BB_WASM_PATH
29
+ });
30
+ const api = BarretenbergSync.getSingleton();
31
+ const response = api.poseidon2Hash({
32
+ inputs: inputFields.map((i)=>i.toBuffer())
33
+ });
34
+ return Fr.fromBuffer(Buffer.from(response.hash));
25
35
  }
26
36
  export async function poseidon2HashAccumulate(input) {
27
37
  const inputFields = serializeToFields(input);
28
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
29
- const result = api.poseidon2HashAccumulate(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())));
30
- return Fr.fromBuffer(Buffer.from(result.toBuffer()));
38
+ await BarretenbergSync.initSingleton({
39
+ wasmPath: process.env.BB_WASM_PATH
40
+ });
41
+ const api = BarretenbergSync.getSingleton();
42
+ const response = api.poseidon2HashAccumulate({
43
+ inputs: inputFields.map((i)=>i.toBuffer())
44
+ });
45
+ return Fr.fromBuffer(Buffer.from(response.hash));
31
46
  }
32
47
  /**
33
48
  * Runs a Poseidon2 permutation.
@@ -37,11 +52,16 @@ export async function poseidon2HashAccumulate(input) {
37
52
  const inputFields = serializeToFields(input);
38
53
  // We'd like this assertion but it's not possible to use it in the browser.
39
54
  // assert(input.length === 4, 'Input state must be of size 4');
40
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
41
- const res = api.poseidon2Permutation(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())));
55
+ await BarretenbergSync.initSingleton({
56
+ wasmPath: process.env.BB_WASM_PATH
57
+ });
58
+ const api = BarretenbergSync.getSingleton();
59
+ const response = api.poseidon2Permutation({
60
+ inputs: inputFields.map((i)=>i.toBuffer())
61
+ });
42
62
  // We'd like this assertion but it's not possible to use it in the browser.
43
- // assert(res.length === 4, 'Output state must be of size 4');
44
- return res.map((o)=>Fr.fromBuffer(Buffer.from(o.toBuffer())));
63
+ // assert(response.outputs.length === 4, 'Output state must be of size 4');
64
+ return response.outputs.map((o)=>Fr.fromBuffer(Buffer.from(o)));
45
65
  }
46
66
  export async function poseidon2HashBytes(input) {
47
67
  const inputFields = [];
@@ -52,7 +72,12 @@ export async function poseidon2HashBytes(input) {
52
72
  fieldBytes.reverse();
53
73
  inputFields.push(Fr.fromBuffer(fieldBytes));
54
74
  }
55
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
56
- const res = api.poseidon2Hash(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())));
57
- return Fr.fromBuffer(Buffer.from(res.toBuffer()));
75
+ await BarretenbergSync.initSingleton({
76
+ wasmPath: process.env.BB_WASM_PATH
77
+ });
78
+ const api = BarretenbergSync.getSingleton();
79
+ const response = api.poseidon2Hash({
80
+ inputs: inputFields.map((i)=>i.toBuffer())
81
+ });
82
+ return Fr.fromBuffer(Buffer.from(response.hash));
58
83
  }
@@ -1,6 +1,4 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
- export declare const randomBytes: (len: number) => Buffer;
1
+ export declare const randomBytes: (len: number) => Buffer<ArrayBufferLike>;
4
2
  /**
5
3
  * Generate a random integer less than max.
6
4
  * @param max - The maximum value.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/random/index.ts"],"names":[],"mappings":";;AAmBA,eAAO,MAAM,WAAW,QAAS,MAAM,WA8BtC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,QAAS,MAAM,WAIpC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,QAAS,MAAM,WAIvC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,eAGzB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/random/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,4BAOtC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,WAIpC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,WAIvC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,eAGzB,CAAC"}
@@ -1,43 +1,11 @@
1
- import nodeCrypto from 'crypto';
2
- import isNode from 'detect-node';
1
+ import { randomBytes as bbRandomBytes } from '@aztec/bb.js';
3
2
  import { RandomnessSingleton } from './randomness_singleton.js';
4
- // limit of Crypto.getRandomValues()
5
- // https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues
6
- const MAX_BYTES = 65536;
7
- const getWebCrypto = ()=>{
8
- if (typeof window !== 'undefined' && window.crypto) {
9
- return window.crypto;
10
- }
11
- if (typeof self !== 'undefined' && self.crypto) {
12
- return self.crypto;
13
- }
14
- return undefined;
15
- };
16
3
  export const randomBytes = (len)=>{
17
4
  const singleton = RandomnessSingleton.getInstance();
18
5
  if (singleton.isDeterministic()) {
19
6
  return singleton.getBytes(len);
20
7
  }
21
- if (isNode) {
22
- return nodeCrypto.randomBytes(len);
23
- }
24
- const crypto = getWebCrypto();
25
- if (!crypto) {
26
- throw new Error('randomBytes UnsupportedEnvironment');
27
- }
28
- const buf = Buffer.allocUnsafe(len);
29
- if (len > MAX_BYTES) {
30
- // this is the max bytes crypto.getRandomValues
31
- // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
32
- for(let generated = 0; generated < len; generated += MAX_BYTES){
33
- // buffer.slice automatically checks if the end is past the end of
34
- // the buffer so we don't have to here
35
- crypto.getRandomValues(buf.slice(generated, generated + MAX_BYTES));
36
- }
37
- } else {
38
- crypto.getRandomValues(buf);
39
- }
40
- return buf;
8
+ return Buffer.from(bbRandomBytes(len));
41
9
  };
42
10
  /**
43
11
  * Generate a random integer less than max.
@@ -1,5 +1,3 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  /**
4
2
  * A number generator which is used as a source of randomness in the system. If the SEED env variable is set, the
5
3
  * generator will be deterministic and will always produce the same sequence of numbers. Otherwise a true randomness
@@ -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;WAYO,WAAW,IAAI,mBAAmB;IAShD;;;OAGG;IACI,eAAe,IAAI,OAAO;IAI1B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAiBxC"}
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;WAYO,WAAW,IAAI,mBAAmB;IAShD;;;OAGG;IACI,eAAe,IAAI,OAAO;IAI1B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAiBxC"}
@@ -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;AAItE,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;IAMzE;;;;;OAKG;IACU,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc;IAS3E;;;;;;OAMG;IACU,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,gBAAgB;CAQnF"}
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;IAOzE;;;;;OAKG;IACU,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc;IAU3E;;;;;;OAMG;IACU,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,gBAAgB;CAWnF"}
@@ -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,5 +1,3 @@
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';
@@ -21,8 +19,23 @@ export declare function addressFromPrivateKey(privateKey: Buffer): EthAddress;
21
19
  * @param hash - The hash to recover the address from.
22
20
  * @param signature - The signature to recover the address from.
23
21
  * @returns The address.
22
+ * @throws Error if signature recovery fails.
24
23
  */
25
24
  export declare function recoverAddress(hash: Buffer32, signature: Signature): EthAddress;
25
+ /**
26
+ * Safely attempts to recover an address from a hash and a signature.
27
+ * @param hash - The hash to recover the address from.
28
+ * @param signature - The signature to recover the address from.
29
+ * @returns The address if recovery succeeds, undefined otherwise.
30
+ */
31
+ export declare function tryRecoverAddress(hash: Buffer32, signature: Signature): EthAddress | undefined;
32
+ /**
33
+ * @attribution - viem
34
+ * Converts a yParityOrV value to a recovery bit.
35
+ * @param yParityOrV - The yParityOrV value to convert.
36
+ * @returns The recovery bit.
37
+ */
38
+ export declare function toRecoveryBit(yParityOrV: number): 0 | 1;
26
39
  /**
27
40
  * Signs a message using ecdsa over the secp256k1 curve.
28
41
  * @param message - The message to sign.
@@ -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;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;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAG,UAAU,CAS/E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAO9F;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;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,CAM7E"}
@@ -40,16 +40,34 @@ export function makeEthSignDigest(message) {
40
40
  * @param hash - The hash to recover the address from.
41
41
  * @param signature - The signature to recover the address from.
42
42
  * @returns The address.
43
+ * @throws Error if signature recovery fails.
43
44
  */ export function recoverAddress(hash, signature) {
44
- const publicKey = recoverPublicKey(hash, signature);
45
- return publicKeyToAddress(publicKey);
45
+ try {
46
+ const publicKey = recoverPublicKey(hash, signature);
47
+ return publicKeyToAddress(publicKey);
48
+ } catch (err) {
49
+ throw new Error(`Error recovering Ethereum address from hash ${hash.toString()} and signature ${signature.toString()}: ${err}`);
50
+ }
51
+ }
52
+ /**
53
+ * Safely attempts to recover an address from a hash and a signature.
54
+ * @param hash - The hash to recover the address from.
55
+ * @param signature - The signature to recover the address from.
56
+ * @returns The address if recovery succeeds, undefined otherwise.
57
+ */ export function tryRecoverAddress(hash, signature) {
58
+ try {
59
+ const publicKey = recoverPublicKey(hash, signature);
60
+ return publicKeyToAddress(publicKey);
61
+ } catch {
62
+ return undefined;
63
+ }
46
64
  }
47
65
  /**
48
66
  * @attribution - viem
49
67
  * Converts a yParityOrV value to a recovery bit.
50
68
  * @param yParityOrV - The yParityOrV value to convert.
51
69
  * @returns The recovery bit.
52
- */ function toRecoveryBit(yParityOrV) {
70
+ */ export function toRecoveryBit(yParityOrV) {
53
71
  if (yParityOrV === 0 || yParityOrV === 1) {
54
72
  return yParityOrV;
55
73
  }