@aztec/foundation 0.76.4 → 0.77.0-testnet-ignition.21

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 (459) hide show
  1. package/dest/array/array.d.ts +1 -1
  2. package/dest/array/array.d.ts.map +1 -1
  3. package/dest/array/array.js +19 -26
  4. package/dest/array/index.js +0 -1
  5. package/dest/async-map/index.js +2 -4
  6. package/dest/async-pool/index.js +6 -9
  7. package/dest/bigint-buffer/index.js +6 -13
  8. package/dest/buffer/buffer32.d.ts +1 -1
  9. package/dest/buffer/buffer32.d.ts.map +1 -1
  10. package/dest/buffer/buffer32.js +53 -66
  11. package/dest/buffer/index.js +0 -1
  12. package/dest/collection/array.d.ts +1 -1
  13. package/dest/collection/array.d.ts.map +1 -1
  14. package/dest/collection/array.js +47 -59
  15. package/dest/collection/index.js +0 -1
  16. package/dest/collection/object.js +9 -9
  17. package/dest/committable/committable.js +15 -20
  18. package/dest/committable/index.js +0 -1
  19. package/dest/config/env_var.d.ts +1 -1
  20. package/dest/config/env_var.d.ts.map +1 -1
  21. package/dest/config/env_var.js +1 -2
  22. package/dest/config/index.d.ts +1 -1
  23. package/dest/config/index.d.ts.map +1 -1
  24. package/dest/config/index.js +31 -36
  25. package/dest/crypto/aes128/index.d.ts +34 -0
  26. package/dest/crypto/aes128/index.d.ts.map +1 -0
  27. package/dest/crypto/aes128/index.js +49 -0
  28. package/dest/crypto/ecdsa/index.d.ts +39 -0
  29. package/dest/crypto/ecdsa/index.d.ts.map +1 -0
  30. package/dest/crypto/ecdsa/index.js +88 -0
  31. package/dest/crypto/ecdsa/signature.d.ts +71 -0
  32. package/dest/crypto/ecdsa/signature.d.ts.map +1 -0
  33. package/dest/crypto/ecdsa/signature.js +92 -0
  34. package/dest/crypto/grumpkin/index.d.ts +47 -0
  35. package/dest/crypto/grumpkin/index.d.ts.map +1 -0
  36. package/dest/crypto/grumpkin/index.js +154 -0
  37. package/dest/crypto/index.d.ts +6 -0
  38. package/dest/crypto/index.d.ts.map +1 -1
  39. package/dest/crypto/index.js +6 -1
  40. package/dest/crypto/keccak/index.js +60 -69
  41. package/dest/crypto/keys/index.js +2 -3
  42. package/dest/crypto/pedersen/index.js +0 -1
  43. package/dest/crypto/pedersen/pedersen.elliptic.js +153 -146
  44. package/dest/crypto/pedersen/pedersen.noble.js +140 -142
  45. package/dest/crypto/pedersen/pedersen.wasm.js +17 -16
  46. package/dest/crypto/poseidon/index.js +15 -19
  47. package/dest/crypto/random/index.js +7 -12
  48. package/dest/crypto/random/randomness_singleton.js +12 -12
  49. package/dest/crypto/schnorr/index.d.ts +30 -0
  50. package/dest/crypto/schnorr/index.d.ts.map +1 -0
  51. package/dest/crypto/schnorr/index.js +68 -0
  52. package/dest/crypto/schnorr/signature.d.ts +70 -0
  53. package/dest/crypto/schnorr/signature.d.ts.map +1 -0
  54. package/dest/crypto/schnorr/signature.js +93 -0
  55. package/dest/crypto/secp256k1/index.d.ts +32 -0
  56. package/dest/crypto/secp256k1/index.d.ts.map +1 -0
  57. package/dest/crypto/secp256k1/index.js +116 -0
  58. package/dest/crypto/secp256k1-signer/index.js +0 -1
  59. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts +2 -2
  60. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts.map +1 -1
  61. package/dest/crypto/secp256k1-signer/secp256k1_signer.js +8 -9
  62. package/dest/crypto/secp256k1-signer/utils.js +11 -16
  63. package/dest/crypto/serialize.d.ts +53 -0
  64. package/dest/crypto/serialize.d.ts.map +1 -0
  65. package/dest/crypto/serialize.js +68 -0
  66. package/dest/crypto/sha256/index.js +80 -30
  67. package/dest/crypto/sha512/index.js +2 -4
  68. package/dest/crypto/signature/index.d.ts +19 -0
  69. package/dest/crypto/signature/index.d.ts.map +1 -0
  70. package/dest/crypto/signature/index.js +3 -0
  71. package/dest/crypto/sync/index.js +1 -2
  72. package/dest/crypto/sync/pedersen/index.js +14 -13
  73. package/dest/crypto/sync/poseidon/index.js +10 -14
  74. package/dest/decorators/index.js +0 -1
  75. package/dest/decorators/memoize.js +1 -2
  76. package/dest/error/index.js +6 -19
  77. package/dest/eth-address/index.js +92 -113
  78. package/dest/eth-signature/eth_signature.js +21 -27
  79. package/dest/eth-signature/index.js +0 -1
  80. package/dest/fields/coordinate.d.ts +1 -1
  81. package/dest/fields/coordinate.d.ts.map +1 -1
  82. package/dest/fields/coordinate.js +47 -46
  83. package/dest/fields/fields.d.ts.map +1 -1
  84. package/dest/fields/fields.js +112 -126
  85. package/dest/fields/index.js +0 -1
  86. package/dest/fields/point.js +119 -129
  87. package/dest/fs/index.js +0 -1
  88. package/dest/fs/run_in_dir.d.ts +1 -1
  89. package/dest/fs/run_in_dir.d.ts.map +1 -1
  90. package/dest/fs/run_in_dir.js +16 -7
  91. package/dest/index.d.ts +0 -2
  92. package/dest/index.d.ts.map +1 -1
  93. package/dest/index.js +0 -3
  94. package/dest/iterable/all.js +3 -4
  95. package/dest/iterable/filter.js +10 -11
  96. package/dest/iterable/index.js +0 -1
  97. package/dest/iterable/isAsyncIt.js +1 -3
  98. package/dest/iterable/map.js +10 -11
  99. package/dest/iterable/peek.js +14 -14
  100. package/dest/iterable/sort.js +4 -5
  101. package/dest/iterable/take.js +6 -7
  102. package/dest/iterable/toArray.js +1 -2
  103. package/dest/jest/setup.js +7 -0
  104. package/dest/json-rpc/client/fetch.js +25 -20
  105. package/dest/json-rpc/client/index.js +0 -1
  106. package/dest/json-rpc/client/safe_json_rpc_client.js +20 -9
  107. package/dest/json-rpc/client/undici.d.ts +1 -1
  108. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  109. package/dest/json-rpc/client/undici.js +16 -17
  110. package/dest/json-rpc/convert.d.ts +1 -1
  111. package/dest/json-rpc/convert.d.ts.map +1 -1
  112. package/dest/json-rpc/convert.js +10 -20
  113. package/dest/json-rpc/fixtures/class_a.js +8 -5
  114. package/dest/json-rpc/fixtures/class_b.js +8 -5
  115. package/dest/json-rpc/fixtures/test_state.js +53 -40
  116. package/dest/json-rpc/index.js +0 -1
  117. package/dest/json-rpc/js_utils.js +2 -5
  118. package/dest/json-rpc/server/index.js +0 -1
  119. package/dest/json-rpc/server/safe_json_rpc_server.js +145 -101
  120. package/dest/json-rpc/server/telemetry.js +0 -2
  121. package/dest/json-rpc/test/index.js +0 -1
  122. package/dest/json-rpc/test/integration.d.ts +1 -1
  123. package/dest/json-rpc/test/integration.d.ts.map +1 -1
  124. package/dest/json-rpc/test/integration.js +11 -5
  125. package/dest/log/console.d.ts +1 -1
  126. package/dest/log/console.d.ts.map +1 -1
  127. package/dest/log/console.js +14 -16
  128. package/dest/log/debug.d.ts +1 -1
  129. package/dest/log/debug.d.ts.map +1 -1
  130. package/dest/log/debug.js +9 -18
  131. package/dest/log/gcloud-logger-config.js +17 -15
  132. package/dest/log/index.d.ts +1 -0
  133. package/dest/log/index.d.ts.map +1 -1
  134. package/dest/log/index.js +1 -1
  135. package/dest/log/libp2p_logger.d.ts +7 -0
  136. package/dest/log/libp2p_logger.d.ts.map +1 -0
  137. package/dest/log/libp2p_logger.js +55 -0
  138. package/dest/log/log-filters.js +14 -13
  139. package/dest/log/log-levels.js +10 -2
  140. package/dest/log/log_fn.js +1 -2
  141. package/dest/log/log_history.js +21 -25
  142. package/dest/log/pino-logger.d.ts +8 -4
  143. package/dest/log/pino-logger.d.ts.map +1 -1
  144. package/dest/log/pino-logger.js +92 -74
  145. package/dest/message/index.js +7 -3
  146. package/dest/mutex/index.d.ts +1 -1
  147. package/dest/mutex/index.d.ts.map +1 -1
  148. package/dest/mutex/index.js +34 -32
  149. package/dest/mutex/mutex_database.js +4 -2
  150. package/dest/noir/index.js +0 -1
  151. package/dest/noir/noir_package_config.js +13 -8
  152. package/dest/promise/index.js +0 -1
  153. package/dest/promise/running-promise.d.ts +8 -2
  154. package/dest/promise/running-promise.d.ts.map +1 -1
  155. package/dest/promise/running-promise.js +44 -31
  156. package/dest/promise/utils.js +3 -5
  157. package/dest/queue/base_memory_queue.js +51 -59
  158. package/dest/queue/batch_queue.js +34 -27
  159. package/dest/queue/bounded_serial_queue.js +41 -51
  160. package/dest/queue/fifo_memory_queue.d.ts +1 -1
  161. package/dest/queue/fifo_memory_queue.d.ts.map +1 -1
  162. package/dest/queue/fifo_memory_queue.js +4 -8
  163. package/dest/queue/index.js +0 -1
  164. package/dest/queue/priority_memory_queue.js +3 -4
  165. package/dest/queue/priority_queue.js +5 -5
  166. package/dest/queue/semaphore.js +15 -19
  167. package/dest/queue/serial_queue.js +37 -47
  168. package/dest/retry/index.js +21 -18
  169. package/dest/running-promise/index.js +0 -1
  170. package/dest/schemas/api.d.ts +2 -2
  171. package/dest/schemas/api.d.ts.map +1 -1
  172. package/dest/schemas/api.js +2 -7
  173. package/dest/schemas/index.d.ts +1 -1
  174. package/dest/schemas/index.d.ts.map +1 -1
  175. package/dest/schemas/index.js +1 -2
  176. package/dest/schemas/parse.js +4 -8
  177. package/dest/schemas/schemas.d.ts +1 -16
  178. package/dest/schemas/schemas.d.ts.map +1 -1
  179. package/dest/schemas/schemas.js +28 -56
  180. package/dest/schemas/types.d.ts +1 -1
  181. package/dest/schemas/types.d.ts.map +1 -1
  182. package/dest/schemas/types.js +1 -2
  183. package/dest/schemas/utils.d.ts +1 -1
  184. package/dest/schemas/utils.d.ts.map +1 -1
  185. package/dest/schemas/utils.js +18 -31
  186. package/dest/serialize/buffer_reader.d.ts +1 -1
  187. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  188. package/dest/serialize/buffer_reader.js +164 -188
  189. package/dest/serialize/field_reader.d.ts +1 -1
  190. package/dest/serialize/field_reader.d.ts.map +1 -1
  191. package/dest/serialize/field_reader.js +70 -79
  192. package/dest/serialize/free_funcs.d.ts +1 -1
  193. package/dest/serialize/free_funcs.d.ts.map +1 -1
  194. package/dest/serialize/free_funcs.js +40 -37
  195. package/dest/serialize/index.js +0 -1
  196. package/dest/serialize/serialize.js +72 -83
  197. package/dest/serialize/type_registry.js +10 -14
  198. package/dest/serialize/types.js +4 -5
  199. package/dest/sleep/index.js +25 -29
  200. package/dest/string/index.js +0 -1
  201. package/dest/testing/files/index.js +3 -7
  202. package/dest/testing/index.js +0 -1
  203. package/dest/testing/port_allocator.js +7 -10
  204. package/dest/testing/snapshot_serializer.d.ts +1 -1
  205. package/dest/testing/snapshot_serializer.d.ts.map +1 -1
  206. package/dest/testing/snapshot_serializer.js +14 -9
  207. package/dest/testing/test_data.js +7 -8
  208. package/dest/timer/date.js +9 -7
  209. package/dest/timer/elapsed.js +10 -7
  210. package/dest/timer/index.js +0 -1
  211. package/dest/timer/timeout.js +34 -34
  212. package/dest/timer/timer.js +17 -21
  213. package/dest/transport/browser/index.js +0 -1
  214. package/dest/transport/browser/message_port_socket.d.ts +1 -1
  215. package/dest/transport/browser/message_port_socket.d.ts.map +1 -1
  216. package/dest/transport/browser/message_port_socket.js +26 -30
  217. package/dest/transport/browser/shared_worker_connector.d.ts +1 -1
  218. package/dest/transport/browser/shared_worker_connector.d.ts.map +1 -1
  219. package/dest/transport/browser/shared_worker_connector.js +8 -10
  220. package/dest/transport/browser/shared_worker_listener.d.ts +1 -1
  221. package/dest/transport/browser/shared_worker_listener.d.ts.map +1 -1
  222. package/dest/transport/browser/shared_worker_listener.js +13 -17
  223. package/dest/transport/browser/worker_connector.d.ts +1 -1
  224. package/dest/transport/browser/worker_connector.d.ts.map +1 -1
  225. package/dest/transport/browser/worker_connector.js +12 -12
  226. package/dest/transport/browser/worker_listener.d.ts +1 -1
  227. package/dest/transport/browser/worker_listener.d.ts.map +1 -1
  228. package/dest/transport/browser/worker_listener.js +13 -17
  229. package/dest/transport/dispatch/create_dispatch_fn.js +2 -4
  230. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +2 -2
  231. package/dest/transport/dispatch/create_dispatch_proxy.d.ts.map +1 -1
  232. package/dest/transport/dispatch/create_dispatch_proxy.js +16 -13
  233. package/dest/transport/dispatch/messages.js +4 -3
  234. package/dest/transport/index.js +0 -1
  235. package/dest/transport/interface/connector.d.ts +1 -1
  236. package/dest/transport/interface/connector.d.ts.map +1 -1
  237. package/dest/transport/interface/connector.js +3 -2
  238. package/dest/transport/interface/listener.d.ts +1 -1
  239. package/dest/transport/interface/listener.d.ts.map +1 -1
  240. package/dest/transport/interface/listener.js +4 -2
  241. package/dest/transport/interface/socket.js +7 -2
  242. package/dest/transport/interface/transferable.js +7 -9
  243. package/dest/transport/node/index.js +0 -1
  244. package/dest/transport/node/node_connector.d.ts +2 -2
  245. package/dest/transport/node/node_connector.d.ts.map +1 -1
  246. package/dest/transport/node/node_connector.js +9 -11
  247. package/dest/transport/node/node_connector_socket.d.ts +2 -2
  248. package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
  249. package/dest/transport/node/node_connector_socket.js +21 -25
  250. package/dest/transport/node/node_listener.d.ts +1 -1
  251. package/dest/transport/node/node_listener.d.ts.map +1 -1
  252. package/dest/transport/node/node_listener.js +11 -15
  253. package/dest/transport/node/node_listener_socket.d.ts +2 -2
  254. package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
  255. package/dest/transport/node/node_listener_socket.js +23 -27
  256. package/dest/transport/transport_client.d.ts +1 -1
  257. package/dest/transport/transport_client.d.ts.map +1 -1
  258. package/dest/transport/transport_client.js +47 -46
  259. package/dest/transport/transport_server.d.ts +1 -1
  260. package/dest/transport/transport_server.d.ts.map +1 -1
  261. package/dest/transport/transport_server.js +68 -55
  262. package/dest/trees/hasher.d.ts +39 -0
  263. package/dest/trees/hasher.d.ts.map +1 -0
  264. package/dest/trees/hasher.js +5 -0
  265. package/dest/trees/index.d.ts +8 -56
  266. package/dest/trees/index.d.ts.map +1 -1
  267. package/dest/trees/index.js +8 -1
  268. package/dest/trees/indexed_merkle_tree.d.ts +13 -0
  269. package/dest/trees/indexed_merkle_tree.d.ts.map +1 -0
  270. package/dest/trees/indexed_merkle_tree.js +27 -0
  271. package/dest/trees/indexed_merkle_tree_calculator.d.ts +23 -0
  272. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -0
  273. package/dest/trees/indexed_merkle_tree_calculator.js +83 -0
  274. package/dest/trees/indexed_tree_leaf.d.ts +57 -0
  275. package/dest/trees/indexed_tree_leaf.d.ts.map +1 -0
  276. package/dest/trees/indexed_tree_leaf.js +5 -0
  277. package/dest/trees/membership_witness.d.ts +62 -0
  278. package/dest/trees/membership_witness.d.ts.map +1 -0
  279. package/dest/trees/membership_witness.js +70 -0
  280. package/dest/trees/merkle_tree.d.ts +18 -0
  281. package/dest/trees/merkle_tree.d.ts.map +1 -0
  282. package/dest/trees/merkle_tree.js +58 -0
  283. package/dest/trees/merkle_tree_calculator.d.ts +16 -0
  284. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -0
  285. package/dest/trees/merkle_tree_calculator.js +61 -0
  286. package/dest/trees/sibling_path.d.ts +132 -0
  287. package/dest/trees/sibling_path.d.ts.map +1 -0
  288. package/dest/trees/sibling_path.js +144 -0
  289. package/dest/trees/unbalanced_merkle_tree.d.ts +1 -1
  290. package/dest/trees/unbalanced_merkle_tree.d.ts.map +1 -1
  291. package/dest/trees/unbalanced_merkle_tree.js +28 -18
  292. package/dest/trees/unbalanced_tree_store.js +43 -29
  293. package/dest/types/index.js +1 -3
  294. package/dest/url/index.js +4 -8
  295. package/dest/validation/index.js +2 -5
  296. package/dest/wasm/empty_wasi_sdk.js +142 -160
  297. package/dest/wasm/index.d.ts +1 -1
  298. package/dest/wasm/index.d.ts.map +1 -1
  299. package/dest/wasm/index.js +0 -1
  300. package/dest/wasm/wasm_module.js +80 -90
  301. package/dest/worker/browser/index.js +0 -1
  302. package/dest/worker/browser/start_web_module.d.ts +1 -1
  303. package/dest/worker/browser/start_web_module.d.ts.map +1 -1
  304. package/dest/worker/browser/start_web_module.js +9 -5
  305. package/dest/worker/browser/web_data_store.d.ts +1 -1
  306. package/dest/worker/browser/web_data_store.d.ts.map +1 -1
  307. package/dest/worker/browser/web_data_store.js +12 -15
  308. package/dest/worker/browser/web_worker.d.ts +1 -1
  309. package/dest/worker/browser/web_worker.d.ts.map +1 -1
  310. package/dest/worker/browser/web_worker.js +6 -5
  311. package/dest/worker/data_store.js +3 -2
  312. package/dest/worker/index.d.ts +1 -1
  313. package/dest/worker/index.d.ts.map +1 -1
  314. package/dest/worker/index.js +0 -1
  315. package/dest/worker/node/index.js +0 -1
  316. package/dest/worker/node/node_data_store.d.ts +1 -1
  317. package/dest/worker/node/node_data_store.d.ts.map +1 -1
  318. package/dest/worker/node/node_data_store.js +4 -5
  319. package/dest/worker/node/node_worker.d.ts +1 -1
  320. package/dest/worker/node/node_worker.d.ts.map +1 -1
  321. package/dest/worker/node/node_worker.js +6 -5
  322. package/dest/worker/node/start_node_module.d.ts +1 -1
  323. package/dest/worker/node/start_node_module.d.ts.map +1 -1
  324. package/dest/worker/node/start_node_module.js +9 -5
  325. package/dest/worker/wasm_worker.d.ts +2 -2
  326. package/dest/worker/wasm_worker.d.ts.map +1 -1
  327. package/dest/worker/wasm_worker.js +3 -2
  328. package/dest/worker/worker_pool.d.ts +1 -1
  329. package/dest/worker/worker_pool.d.ts.map +1 -1
  330. package/dest/worker/worker_pool.js +32 -43
  331. package/package.json +5 -5
  332. package/src/array/array.ts +1 -1
  333. package/src/buffer/buffer32.ts +1 -1
  334. package/src/collection/array.ts +1 -1
  335. package/src/config/env_var.ts +7 -5
  336. package/src/config/index.ts +1 -1
  337. package/src/crypto/aes128/index.ts +59 -0
  338. package/src/crypto/ecdsa/index.ts +70 -0
  339. package/src/crypto/ecdsa/signature.ts +100 -0
  340. package/src/crypto/grumpkin/index.ts +97 -0
  341. package/src/crypto/index.ts +6 -0
  342. package/src/crypto/keys/index.ts +1 -1
  343. package/src/crypto/pedersen/pedersen.wasm.ts +3 -3
  344. package/src/crypto/poseidon/index.ts +5 -5
  345. package/src/crypto/schnorr/index.ts +55 -0
  346. package/src/crypto/schnorr/signature.ts +116 -0
  347. package/src/crypto/secp256k1/index.ts +57 -0
  348. package/src/crypto/secp256k1-signer/secp256k1_signer.ts +2 -2
  349. package/src/crypto/serialize.ts +85 -0
  350. package/src/crypto/signature/index.ts +17 -0
  351. package/src/crypto/sync/index.ts +1 -1
  352. package/src/fields/coordinate.ts +1 -1
  353. package/src/fields/fields.ts +2 -1
  354. package/src/fs/run_in_dir.ts +8 -1
  355. package/src/index.ts +0 -2
  356. package/src/json-rpc/client/undici.ts +1 -1
  357. package/src/json-rpc/convert.ts +1 -1
  358. package/src/json-rpc/server/safe_json_rpc_server.ts +1 -1
  359. package/src/json-rpc/test/integration.ts +1 -1
  360. package/src/log/console.ts +1 -1
  361. package/src/log/debug.ts +1 -1
  362. package/src/log/gcloud-logger-config.ts +1 -1
  363. package/src/log/index.ts +1 -0
  364. package/src/log/libp2p_logger.ts +67 -0
  365. package/src/log/pino-logger.ts +16 -16
  366. package/src/mutex/index.ts +1 -1
  367. package/src/promise/running-promise.ts +24 -5
  368. package/src/queue/fifo_memory_queue.ts +1 -1
  369. package/src/schemas/api.ts +2 -2
  370. package/src/schemas/index.ts +1 -1
  371. package/src/schemas/schemas.ts +2 -26
  372. package/src/schemas/types.ts +1 -1
  373. package/src/schemas/utils.ts +1 -1
  374. package/src/serialize/buffer_reader.ts +1 -1
  375. package/src/serialize/field_reader.ts +1 -1
  376. package/src/serialize/free_funcs.ts +1 -1
  377. package/src/testing/snapshot_serializer.ts +1 -1
  378. package/src/transport/browser/message_port_socket.ts +1 -1
  379. package/src/transport/browser/shared_worker_connector.ts +1 -1
  380. package/src/transport/browser/shared_worker_listener.ts +1 -1
  381. package/src/transport/browser/worker_connector.ts +1 -1
  382. package/src/transport/browser/worker_listener.ts +1 -1
  383. package/src/transport/dispatch/create_dispatch_proxy.ts +2 -2
  384. package/src/transport/interface/connector.ts +1 -1
  385. package/src/transport/interface/listener.ts +1 -1
  386. package/src/transport/node/node_connector.ts +2 -2
  387. package/src/transport/node/node_connector_socket.ts +2 -2
  388. package/src/transport/node/node_listener.ts +1 -1
  389. package/src/transport/node/node_listener_socket.ts +2 -2
  390. package/src/transport/transport_client.ts +2 -2
  391. package/src/transport/transport_server.ts +3 -3
  392. package/src/trees/hasher.ts +39 -0
  393. package/src/trees/index.ts +8 -57
  394. package/src/trees/indexed_merkle_tree.ts +36 -0
  395. package/src/trees/indexed_merkle_tree_calculator.ts +94 -0
  396. package/src/trees/indexed_tree_leaf.ts +56 -0
  397. package/src/trees/membership_witness.ts +99 -0
  398. package/src/trees/merkle_tree.ts +72 -0
  399. package/src/trees/merkle_tree_calculator.ts +67 -0
  400. package/src/trees/sibling_path.ts +183 -0
  401. package/src/trees/unbalanced_merkle_tree.ts +2 -2
  402. package/src/wasm/index.ts +1 -1
  403. package/src/worker/browser/start_web_module.ts +1 -1
  404. package/src/worker/browser/web_data_store.ts +1 -1
  405. package/src/worker/browser/web_worker.ts +1 -1
  406. package/src/worker/index.ts +1 -1
  407. package/src/worker/node/node_data_store.ts +1 -1
  408. package/src/worker/node/node_worker.ts +1 -1
  409. package/src/worker/node/start_node_module.ts +1 -1
  410. package/src/worker/wasm_worker.ts +2 -2
  411. package/src/worker/worker_pool.ts +1 -1
  412. package/dest/abi/abi.d.ts +0 -853
  413. package/dest/abi/abi.d.ts.map +0 -1
  414. package/dest/abi/abi.js +0 -214
  415. package/dest/abi/buffer.d.ts +0 -18
  416. package/dest/abi/buffer.d.ts.map +0 -1
  417. package/dest/abi/buffer.js +0 -34
  418. package/dest/abi/decoder.d.ts +0 -58
  419. package/dest/abi/decoder.d.ts.map +0 -1
  420. package/dest/abi/decoder.js +0 -180
  421. package/dest/abi/encoder.d.ts +0 -16
  422. package/dest/abi/encoder.d.ts.map +0 -1
  423. package/dest/abi/encoder.js +0 -174
  424. package/dest/abi/event_selector.d.ts +0 -52
  425. package/dest/abi/event_selector.d.ts.map +0 -1
  426. package/dest/abi/event_selector.js +0 -76
  427. package/dest/abi/function_selector.d.ts +0 -65
  428. package/dest/abi/function_selector.d.ts.map +0 -1
  429. package/dest/abi/function_selector.js +0 -92
  430. package/dest/abi/index.d.ts +0 -10
  431. package/dest/abi/index.d.ts.map +0 -1
  432. package/dest/abi/index.js +0 -10
  433. package/dest/abi/note_selector.d.ts +0 -42
  434. package/dest/abi/note_selector.d.ts.map +0 -1
  435. package/dest/abi/note_selector.js +0 -63
  436. package/dest/abi/selector.d.ts +0 -42
  437. package/dest/abi/selector.d.ts.map +0 -1
  438. package/dest/abi/selector.js +0 -57
  439. package/dest/abi/u128.d.ts +0 -13
  440. package/dest/abi/u128.d.ts.map +0 -1
  441. package/dest/abi/u128.js +0 -58
  442. package/dest/abi/utils.d.ts +0 -44
  443. package/dest/abi/utils.d.ts.map +0 -1
  444. package/dest/abi/utils.js +0 -72
  445. package/dest/aztec-address/index.d.ts +0 -57
  446. package/dest/aztec-address/index.d.ts.map +0 -1
  447. package/dest/aztec-address/index.js +0 -114
  448. package/src/abi/abi.ts +0 -504
  449. package/src/abi/buffer.ts +0 -36
  450. package/src/abi/decoder.ts +0 -195
  451. package/src/abi/encoder.ts +0 -170
  452. package/src/abi/event_selector.ts +0 -92
  453. package/src/abi/function_selector.ts +0 -124
  454. package/src/abi/index.ts +0 -9
  455. package/src/abi/note_selector.ts +0 -78
  456. package/src/abi/selector.ts +0 -64
  457. package/src/abi/u128.ts +0 -71
  458. package/src/abi/utils.ts +0 -86
  459. package/src/aztec-address/index.ts +0 -146
@@ -0,0 +1,49 @@
1
+ import { BarretenbergSync, RawBuffer } from '@aztec/bb.js';
2
+ import { Buffer } from 'buffer';
3
+ /**
4
+ * AES-128-CBC encryption/decryption.
5
+ */ export class Aes128 {
6
+ /**
7
+ * Encrypt a buffer using AES-128-CBC.
8
+ * @param data - Data to encrypt.
9
+ * @param iv - AES initialization vector.
10
+ * @param key - Key to encrypt with.
11
+ * @returns Encrypted data.
12
+ */ async encryptBufferCBC(data, iv, key) {
13
+ const rawLength = data.length;
14
+ const numPaddingBytes = 16 - rawLength % 16;
15
+ const paddingBuffer = Buffer.alloc(numPaddingBytes);
16
+ // input num bytes needs to be a multiple of 16 and at least 1 byte
17
+ // node uses PKCS#7-Padding scheme, where padding byte value = the number of padding bytes
18
+ paddingBuffer.fill(numPaddingBytes);
19
+ const input = Buffer.concat([
20
+ data,
21
+ paddingBuffer
22
+ ]);
23
+ const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
24
+ return Buffer.from(api.aesEncryptBufferCbc(new RawBuffer(input), new RawBuffer(iv), new RawBuffer(key), input.length));
25
+ }
26
+ /**
27
+ * Decrypt a buffer using AES-128-CBC.
28
+ * We keep the padding in the returned buffer.
29
+ * @param data - Data to decrypt.
30
+ * @param iv - AES initialization vector.
31
+ * @param key - Key to decrypt with.
32
+ * @returns Decrypted data.
33
+ */ async decryptBufferCBCKeepPadding(data, iv, key) {
34
+ const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
35
+ const paddedBuffer = Buffer.from(api.aesDecryptBufferCbc(new RawBuffer(data), new RawBuffer(iv), new RawBuffer(key), data.length));
36
+ return paddedBuffer;
37
+ }
38
+ /**
39
+ * Decrypt a buffer using AES-128-CBC.
40
+ * @param data - Data to decrypt.
41
+ * @param iv - AES initialization vector.
42
+ * @param key - Key to decrypt with.
43
+ * @returns Decrypted data.
44
+ */ async decryptBufferCBC(data, iv, key) {
45
+ const paddedBuffer = await this.decryptBufferCBCKeepPadding(data, iv, key);
46
+ const paddingToRemove = paddedBuffer[paddedBuffer.length - 1];
47
+ return paddedBuffer.subarray(0, paddedBuffer.length - paddingToRemove);
48
+ }
49
+ }
@@ -0,0 +1,39 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
3
+ import { EcdsaSignature } from './signature.js';
4
+ export * from './signature.js';
5
+ /**
6
+ * ECDSA signature construction and helper operations.
7
+ * TODO: Replace with codegen api on bb.js.
8
+ */
9
+ export declare class Ecdsa {
10
+ /**
11
+ * Computes a secp256k1 public key from a private key.
12
+ * @param privateKey - Secp256k1 private key.
13
+ * @returns A secp256k1 public key.
14
+ */
15
+ computePublicKey(privateKey: Buffer): Promise<Buffer>;
16
+ /**
17
+ * Constructs an ECDSA signature given a msg and a private key.
18
+ * @param msg - Message over which the signature is constructed.
19
+ * @param privateKey - The secp256k1 private key of the signer.
20
+ * @returns An ECDSA signature of the form (r, s, v).
21
+ */
22
+ constructSignature(msg: Uint8Array, privateKey: Buffer): Promise<EcdsaSignature>;
23
+ /**
24
+ * Recovers a secp256k1 public key from an ECDSA signature (similar to ecrecover).
25
+ * @param msg - Message over which the signature was constructed.
26
+ * @param sig - The ECDSA signature.
27
+ * @returns The secp256k1 public key of the signer.
28
+ */
29
+ recoverPublicKey(msg: Uint8Array, sig: EcdsaSignature): Promise<Buffer>;
30
+ /**
31
+ * Verifies and ECDSA signature given a secp256k1 public key.
32
+ * @param msg - Message over which the signature was constructed.
33
+ * @param pubKey - The secp256k1 public key of the signer.
34
+ * @param sig - The ECDSA signature.
35
+ * @returns True or false.
36
+ */
37
+ verifySignature(msg: Uint8Array, pubKey: Buffer, sig: EcdsaSignature): Promise<boolean>;
38
+ }
39
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/ecdsa/index.ts"],"names":[],"mappings":";;AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,cAAc,gBAAgB,CAAC;AAE/B;;;GAGG;AACH,qBAAa,KAAK;IAChB;;;;OAIG;IACU,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMlE;;;;;OAKG;IACU,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM;IASnE;;;;;OAKG;IACU,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IASpF;;;;;;OAMG;IACU,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc;CAQlF"}
@@ -0,0 +1,88 @@
1
+ import { BarretenbergSync } from '@aztec/bb.js';
2
+ import { numToInt32BE } from '@aztec/foundation/serialize';
3
+ import { concatenateUint8Arrays } from '../serialize.js';
4
+ import { EcdsaSignature } from './signature.js';
5
+ export * from './signature.js';
6
+ /**
7
+ * ECDSA signature construction and helper operations.
8
+ * TODO: Replace with codegen api on bb.js.
9
+ */ export class Ecdsa {
10
+ /**
11
+ * Computes a secp256k1 public key from a private key.
12
+ * @param privateKey - Secp256k1 private key.
13
+ * @returns A secp256k1 public key.
14
+ */ async computePublicKey(privateKey) {
15
+ const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
16
+ const [result] = api.getWasm().callWasmExport('ecdsa__compute_public_key', [
17
+ privateKey
18
+ ], [
19
+ 64
20
+ ]);
21
+ return Buffer.from(result);
22
+ }
23
+ /**
24
+ * Constructs an ECDSA signature given a msg and a private key.
25
+ * @param msg - Message over which the signature is constructed.
26
+ * @param privateKey - The secp256k1 private key of the signer.
27
+ * @returns An ECDSA signature of the form (r, s, v).
28
+ */ 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 [r, s, v] = api.getWasm().callWasmExport('ecdsa__construct_signature_', [
35
+ messageArray,
36
+ privateKey
37
+ ], [
38
+ 32,
39
+ 32,
40
+ 1
41
+ ]);
42
+ return new EcdsaSignature(Buffer.from(r), Buffer.from(s), Buffer.from(v));
43
+ }
44
+ /**
45
+ * Recovers a secp256k1 public key from an ECDSA signature (similar to ecrecover).
46
+ * @param msg - Message over which the signature was constructed.
47
+ * @param sig - The ECDSA signature.
48
+ * @returns The secp256k1 public key of the signer.
49
+ */ async recoverPublicKey(msg, sig) {
50
+ const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
51
+ const messageArray = concatenateUint8Arrays([
52
+ numToInt32BE(msg.length),
53
+ msg
54
+ ]);
55
+ const [result] = api.getWasm().callWasmExport('ecdsa__recover_public_key_from_signature_', [
56
+ messageArray,
57
+ sig.r,
58
+ sig.s,
59
+ sig.v
60
+ ], [
61
+ 64
62
+ ]);
63
+ return Buffer.from(result);
64
+ }
65
+ /**
66
+ * Verifies and ECDSA signature given a secp256k1 public key.
67
+ * @param msg - Message over which the signature was constructed.
68
+ * @param pubKey - The secp256k1 public key of the signer.
69
+ * @param sig - The ECDSA signature.
70
+ * @returns True or false.
71
+ */ async verifySignature(msg, pubKey, sig) {
72
+ const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
73
+ const messageArray = concatenateUint8Arrays([
74
+ numToInt32BE(msg.length),
75
+ msg
76
+ ]);
77
+ const [result] = api.getWasm().callWasmExport('ecdsa__verify_signature_', [
78
+ messageArray,
79
+ pubKey,
80
+ sig.r,
81
+ sig.s,
82
+ sig.v
83
+ ], [
84
+ 1
85
+ ]);
86
+ return result[0] === 1;
87
+ }
88
+ }
@@ -0,0 +1,71 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
3
+ import { Fr } from '@aztec/foundation/fields';
4
+ import type { Signature } from '../signature/index.js';
5
+ /**
6
+ * ECDSA signature used for transactions.
7
+ * @see cpp/barretenberg/cpp/src/barretenberg/crypto/ecdsa/ecdsa.hpp
8
+ */
9
+ export declare class EcdsaSignature implements Signature {
10
+ /**
11
+ * The r byte-array (32 bytes) in an ECDSA signature.
12
+ */
13
+ r: Buffer;
14
+ /**
15
+ * The s byte-array (32 bytes) in an ECDSA signature.
16
+ */
17
+ s: Buffer;
18
+ /**
19
+ * The recovery id (1 byte) in an ECDSA signature.
20
+ */
21
+ v: Buffer;
22
+ constructor(
23
+ /**
24
+ * The r byte-array (32 bytes) in an ECDSA signature.
25
+ */
26
+ r: Buffer,
27
+ /**
28
+ * The s byte-array (32 bytes) in an ECDSA signature.
29
+ */
30
+ s: Buffer,
31
+ /**
32
+ * The recovery id (1 byte) in an ECDSA signature.
33
+ */
34
+ v: Buffer);
35
+ /**
36
+ * Converts an ECDSA signature to a buffer.
37
+ * @returns A buffer.
38
+ */
39
+ toBuffer(): Buffer;
40
+ /**
41
+ * Deserializes the signature from a buffer.
42
+ * @param buffer - The buffer from which to deserialize the signature.
43
+ * @returns The ECDSA signature
44
+ */
45
+ static fromBuffer(buffer: Buffer): EcdsaSignature;
46
+ /**
47
+ * Creates a new instance from bigint r and s values.
48
+ * @param r - r.
49
+ * @param s - s.
50
+ * @param v - v.
51
+ * @returns The resulting signature.
52
+ */
53
+ static fromBigInts(r: bigint, s: bigint, v: number): EcdsaSignature;
54
+ /**
55
+ * Generate a random ECDSA signature for testing.
56
+ * @returns A randomly generated ECDSA signature (not a valid one).
57
+ */
58
+ static random(): EcdsaSignature;
59
+ /**
60
+ * Convert an ECDSA signature to a buffer.
61
+ * @returns A 65-character string of the form 0x<r><s><v>.
62
+ */
63
+ toString(): string;
64
+ /**
65
+ * Converts the signature to an array of fields.
66
+ * @param includeV - Determines whether the 'v' term is included
67
+ * @returns The signature components as an array of fields
68
+ */
69
+ toFields(includeV?: boolean): Fr[];
70
+ }
71
+ //# sourceMappingURL=signature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../src/crypto/ecdsa/signature.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;GAGG;AACH,qBAAa,cAAe,YAAW,SAAS;IAE5C;;OAEG;IACI,CAAC,EAAE,MAAM;IAChB;;OAEG;IACI,CAAC,EAAE,MAAM;IAChB;;OAEG;IACI,CAAC,EAAE,MAAM;;IAXhB;;OAEG;IACI,CAAC,EAAE,MAAM;IAChB;;OAEG;IACI,CAAC,EAAE,MAAM;IAChB;;OAEG;IACI,CAAC,EAAE,MAAM;IAalB;;;OAGG;IACH,QAAQ;IAIR;;;;OAIG;WACW,UAAU,CAAC,MAAM,EAAE,MAAM;IAIvC;;;;;;OAMG;WACW,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAIzD;;;OAGG;WACW,MAAM;IAIpB;;;OAGG;IACH,QAAQ;IAIR;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,UAAQ,GAAG,EAAE,EAAE;CAajC"}
@@ -0,0 +1,92 @@
1
+ import { toBufferBE } from '@aztec/foundation/bigint-buffer';
2
+ import { randomBytes } from '@aztec/foundation/crypto';
3
+ import { Fr } from '@aztec/foundation/fields';
4
+ import { mapTuple } from '@aztec/foundation/serialize';
5
+ /**
6
+ * ECDSA signature used for transactions.
7
+ * @see cpp/barretenberg/cpp/src/barretenberg/crypto/ecdsa/ecdsa.hpp
8
+ */ export class EcdsaSignature {
9
+ r;
10
+ s;
11
+ v;
12
+ constructor(/**
13
+ * The r byte-array (32 bytes) in an ECDSA signature.
14
+ */ r, /**
15
+ * The s byte-array (32 bytes) in an ECDSA signature.
16
+ */ s, /**
17
+ * The recovery id (1 byte) in an ECDSA signature.
18
+ */ v){
19
+ this.r = r;
20
+ this.s = s;
21
+ this.v = v;
22
+ if (r.length != 32) {
23
+ throw new Error(`Invalid length of 'r' in ECDSA signature. Expected 32, got ${s.length}`);
24
+ }
25
+ if (s.length != 32) {
26
+ throw new Error(`Invalid length of 's' in ECDSA signature. Expected 32, got ${r.length}`);
27
+ }
28
+ if (v.length != 1) {
29
+ throw new Error(`Invalid length of 'v' in ECDSA signature. Expected 1, got ${v.length}`);
30
+ }
31
+ }
32
+ /**
33
+ * Converts an ECDSA signature to a buffer.
34
+ * @returns A buffer.
35
+ */ toBuffer() {
36
+ return Buffer.concat([
37
+ this.r,
38
+ this.s,
39
+ this.v
40
+ ]);
41
+ }
42
+ /**
43
+ * Deserializes the signature from a buffer.
44
+ * @param buffer - The buffer from which to deserialize the signature.
45
+ * @returns The ECDSA signature
46
+ */ static fromBuffer(buffer) {
47
+ return new EcdsaSignature(buffer.subarray(0, 32), buffer.subarray(32, 64), buffer.subarray(64, 65));
48
+ }
49
+ /**
50
+ * Creates a new instance from bigint r and s values.
51
+ * @param r - r.
52
+ * @param s - s.
53
+ * @param v - v.
54
+ * @returns The resulting signature.
55
+ */ static fromBigInts(r, s, v) {
56
+ return new EcdsaSignature(toBufferBE(r, 32), toBufferBE(s, 32), Buffer.from([
57
+ v
58
+ ]));
59
+ }
60
+ /**
61
+ * Generate a random ECDSA signature for testing.
62
+ * @returns A randomly generated ECDSA signature (not a valid one).
63
+ */ static random() {
64
+ return new EcdsaSignature(randomBytes(32), randomBytes(32), Buffer.from([
65
+ 27
66
+ ]));
67
+ }
68
+ /**
69
+ * Convert an ECDSA signature to a buffer.
70
+ * @returns A 65-character string of the form 0x<r><s><v>.
71
+ */ toString() {
72
+ return `0x${this.toBuffer().toString('hex')}`;
73
+ }
74
+ /**
75
+ * Converts the signature to an array of fields.
76
+ * @param includeV - Determines whether the 'v' term is included
77
+ * @returns The signature components as an array of fields
78
+ */ toFields(includeV = false) {
79
+ const sig = this.toBuffer();
80
+ const buf1 = Buffer.alloc(32);
81
+ const buf2 = Buffer.alloc(32);
82
+ const buf3 = Buffer.alloc(32);
83
+ sig.copy(buf1, 1, 0, 31);
84
+ sig.copy(buf2, 1, 31, 62);
85
+ sig.copy(buf3, 1, 62, includeV ? 65 : 64);
86
+ return mapTuple([
87
+ buf1,
88
+ buf2,
89
+ buf3
90
+ ], Fr.fromBuffer);
91
+ }
92
+ }
@@ -0,0 +1,47 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
3
+ import { Fr, type GrumpkinScalar, Point } from '@aztec/foundation/fields';
4
+ /**
5
+ * Grumpkin elliptic curve operations.
6
+ */
7
+ export declare class Grumpkin {
8
+ static generator: Point;
9
+ /**
10
+ * Point generator
11
+ * @returns The generator for the curve.
12
+ */
13
+ generator(): Point;
14
+ /**
15
+ * Multiplies a point by a scalar (adds the point `scalar` amount of times).
16
+ * @param point - Point to multiply.
17
+ * @param scalar - Scalar to multiply by.
18
+ * @returns Result of the multiplication.
19
+ */
20
+ mul(point: Point, scalar: GrumpkinScalar): Promise<Point>;
21
+ /**
22
+ * Add two points.
23
+ * @param a - Point a in the addition
24
+ * @param b - Point b to add to a
25
+ * @returns Result of the addition.
26
+ */
27
+ add(a: Point, b: Point): Promise<Point>;
28
+ /**
29
+ * Multiplies a set of points by a scalar.
30
+ * @param points - Points to multiply.
31
+ * @param scalar - Scalar to multiply by.
32
+ * @returns Points multiplied by the scalar.
33
+ */
34
+ batchMul(points: Point[], scalar: GrumpkinScalar): Promise<Point[]>;
35
+ /**
36
+ * Gets a random field element.
37
+ * @returns Random field element.
38
+ */
39
+ getRandomFr(): Promise<Fr>;
40
+ /**
41
+ * Converts a 512 bits long buffer to a field.
42
+ * @param uint512Buf - The buffer to convert.
43
+ * @returns Buffer representation of the field element.
44
+ */
45
+ reduce512BufferToFr(uint512Buf: Buffer): Promise<Fr>;
46
+ }
47
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/grumpkin/index.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,EAAE,EAAE,KAAK,cAAc,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAE1E;;GAEG;AACH,qBAAa,QAAQ;IAEnB,MAAM,CAAC,SAAS,QAKZ;IAEJ;;;OAGG;IACI,SAAS,IAAI,KAAK;IAIzB;;;;;OAKG;IACU,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC;IAMtE;;;;;OAKG;IACU,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAMpD;;;;;OAKG;IACU,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,cAAc;IAqB7D;;;OAGG;IACU,WAAW,IAAI,OAAO,CAAC,EAAE,CAAC;IAMvC;;;;OAIG;IACU,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;CAOlE"}
@@ -0,0 +1,154 @@
1
+ import { BarretenbergSync } from '@aztec/bb.js';
2
+ import { Fr, Point } from '@aztec/foundation/fields';
3
+ /**
4
+ * Grumpkin elliptic curve operations.
5
+ */ export class Grumpkin {
6
+ // prettier-ignore
7
+ static generator = Point.fromBuffer(Buffer.from([
8
+ 0x00,
9
+ 0x00,
10
+ 0x00,
11
+ 0x00,
12
+ 0x00,
13
+ 0x00,
14
+ 0x00,
15
+ 0x00,
16
+ 0x00,
17
+ 0x00,
18
+ 0x00,
19
+ 0x00,
20
+ 0x00,
21
+ 0x00,
22
+ 0x00,
23
+ 0x00,
24
+ 0x00,
25
+ 0x00,
26
+ 0x00,
27
+ 0x00,
28
+ 0x00,
29
+ 0x00,
30
+ 0x00,
31
+ 0x00,
32
+ 0x00,
33
+ 0x00,
34
+ 0x00,
35
+ 0x00,
36
+ 0x00,
37
+ 0x00,
38
+ 0x00,
39
+ 0x01,
40
+ 0x00,
41
+ 0x00,
42
+ 0x00,
43
+ 0x00,
44
+ 0x00,
45
+ 0x00,
46
+ 0x00,
47
+ 0x02,
48
+ 0xcf,
49
+ 0x13,
50
+ 0x5e,
51
+ 0x75,
52
+ 0x06,
53
+ 0xa4,
54
+ 0x5d,
55
+ 0x63,
56
+ 0x2d,
57
+ 0x27,
58
+ 0x0d,
59
+ 0x45,
60
+ 0xf1,
61
+ 0x18,
62
+ 0x12,
63
+ 0x94,
64
+ 0x83,
65
+ 0x3f,
66
+ 0xc4,
67
+ 0x8d,
68
+ 0x82,
69
+ 0x3f,
70
+ 0x27,
71
+ 0x2c
72
+ ]));
73
+ /**
74
+ * Point generator
75
+ * @returns The generator for the curve.
76
+ */ generator() {
77
+ return Grumpkin.generator;
78
+ }
79
+ /**
80
+ * Multiplies a point by a scalar (adds the point `scalar` amount of times).
81
+ * @param point - Point to multiply.
82
+ * @param scalar - Scalar to multiply by.
83
+ * @returns Result of the multiplication.
84
+ */ async mul(point, scalar) {
85
+ const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
86
+ const [result] = api.getWasm().callWasmExport('ecc_grumpkin__mul', [
87
+ point.toBuffer(),
88
+ scalar.toBuffer()
89
+ ], [
90
+ 64
91
+ ]);
92
+ return Point.fromBuffer(Buffer.from(result));
93
+ }
94
+ /**
95
+ * Add two points.
96
+ * @param a - Point a in the addition
97
+ * @param b - Point b to add to a
98
+ * @returns Result of the addition.
99
+ */ async add(a, b) {
100
+ const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
101
+ const [result] = api.getWasm().callWasmExport('ecc_grumpkin__add', [
102
+ a.toBuffer(),
103
+ b.toBuffer()
104
+ ], [
105
+ 64
106
+ ]);
107
+ return Point.fromBuffer(Buffer.from(result));
108
+ }
109
+ /**
110
+ * Multiplies a set of points by a scalar.
111
+ * @param points - Points to multiply.
112
+ * @param scalar - Scalar to multiply by.
113
+ * @returns Points multiplied by the scalar.
114
+ */ async batchMul(points, scalar) {
115
+ const concatenatedPoints = Buffer.concat(points.map((point)=>point.toBuffer()));
116
+ const pointsByteLength = points.length * Point.SIZE_IN_BYTES;
117
+ const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
118
+ const [result] = api.getWasm().callWasmExport('ecc_grumpkin__batch_mul', [
119
+ concatenatedPoints,
120
+ scalar.toBuffer(),
121
+ points.length
122
+ ], [
123
+ pointsByteLength
124
+ ]);
125
+ const parsedResult = [];
126
+ for(let i = 0; i < pointsByteLength; i += 64){
127
+ parsedResult.push(Point.fromBuffer(Buffer.from(result.subarray(i, i + 64))));
128
+ }
129
+ return parsedResult;
130
+ }
131
+ /**
132
+ * Gets a random field element.
133
+ * @returns Random field element.
134
+ */ async getRandomFr() {
135
+ const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
136
+ const [result] = api.getWasm().callWasmExport('ecc_grumpkin__get_random_scalar_mod_circuit_modulus', [], [
137
+ 32
138
+ ]);
139
+ return Fr.fromBuffer(Buffer.from(result));
140
+ }
141
+ /**
142
+ * Converts a 512 bits long buffer to a field.
143
+ * @param uint512Buf - The buffer to convert.
144
+ * @returns Buffer representation of the field element.
145
+ */ async reduce512BufferToFr(uint512Buf) {
146
+ const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
147
+ const [result] = api.getWasm().callWasmExport('ecc_grumpkin__reduce512_buffer_mod_circuit_modulus', [
148
+ uint512Buf
149
+ ], [
150
+ 32
151
+ ]);
152
+ return Fr.fromBuffer(Buffer.from(result));
153
+ }
154
+ }
@@ -6,4 +6,10 @@ export * from './pedersen/index.js';
6
6
  export * from './poseidon/index.js';
7
7
  export * from './secp256k1-signer/index.js';
8
8
  export * from './keys/index.js';
9
+ export * from './aes128/index.js';
10
+ export * from './grumpkin/index.js';
11
+ export * from './ecdsa/index.js';
12
+ export * from './secp256k1/index.js';
13
+ export * from './schnorr/index.js';
14
+ export * from './signature/index.js';
9
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/crypto/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/crypto/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
@@ -6,4 +6,9 @@ export * from './pedersen/index.js';
6
6
  export * from './poseidon/index.js';
7
7
  export * from './secp256k1-signer/index.js';
8
8
  export * from './keys/index.js';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3J5cHRvL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxpQkFBaUIsQ0FBQyJ9
9
+ export * from './aes128/index.js';
10
+ export * from './grumpkin/index.js';
11
+ export * from './ecdsa/index.js';
12
+ export * from './secp256k1/index.js';
13
+ export * from './schnorr/index.js';
14
+ export * from './signature/index.js';