@aztec/bb.js 3.0.0-nightly.20251030 → 3.0.0-nightly.20251031

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 (570) hide show
  1. package/dest/browser/async_map/index.d.ts +10 -0
  2. package/dest/browser/async_map/index.d.ts.map +1 -0
  3. package/dest/browser/async_map/index.js +16 -0
  4. package/dest/browser/barretenberg/backend.d.ts +75 -0
  5. package/dest/browser/barretenberg/backend.d.ts.map +1 -0
  6. package/dest/browser/barretenberg/backend.js +301 -0
  7. package/dest/browser/barretenberg/index.d.ts +67 -0
  8. package/dest/browser/barretenberg/index.d.ts.map +1 -0
  9. package/dest/browser/barretenberg/index.js +191 -0
  10. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +45 -0
  11. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -0
  12. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.js +125 -0
  13. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +2 -0
  14. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -0
  15. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +11 -0
  16. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +2 -0
  17. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts.map +1 -0
  18. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +12 -0
  19. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +21 -0
  20. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -0
  21. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +70 -0
  22. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +53 -0
  23. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -0
  24. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.js +170 -0
  25. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +2 -0
  26. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -0
  27. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +11 -0
  28. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +2 -0
  29. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts.map +1 -0
  30. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +12 -0
  31. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +29 -0
  32. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -0
  33. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.js +40 -0
  34. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +3 -0
  35. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts.map +1 -0
  36. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +2 -0
  37. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +3 -0
  38. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts.map +1 -0
  39. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +2 -0
  40. package/dest/browser/barretenberg_wasm/fetch_code/browser/index.d.ts +2 -0
  41. package/dest/browser/barretenberg_wasm/fetch_code/browser/index.d.ts.map +1 -0
  42. package/dest/browser/barretenberg_wasm/fetch_code/browser/index.js +36 -0
  43. package/dest/browser/barretenberg_wasm/fetch_code/index.d.ts +2 -0
  44. package/dest/browser/barretenberg_wasm/fetch_code/index.d.ts.map +1 -0
  45. package/dest/browser/barretenberg_wasm/fetch_code/index.js +2 -0
  46. package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts +13 -0
  47. package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -0
  48. package/dest/browser/barretenberg_wasm/helpers/browser/index.js +40 -0
  49. package/dest/browser/barretenberg_wasm/helpers/index.d.ts +2 -0
  50. package/dest/browser/barretenberg_wasm/helpers/index.d.ts.map +1 -0
  51. package/dest/browser/barretenberg_wasm/helpers/index.js +2 -0
  52. package/dest/browser/barretenberg_wasm/index.d.ts +5 -0
  53. package/dest/browser/barretenberg_wasm/index.d.ts.map +1 -0
  54. package/dest/browser/barretenberg_wasm/index.js +16 -0
  55. package/dest/browser/bb_backends/browser/index.d.ts +11 -0
  56. package/dest/browser/bb_backends/browser/index.d.ts.map +1 -0
  57. package/dest/browser/bb_backends/browser/index.js +39 -0
  58. package/dest/browser/bb_backends/index.d.ts +45 -0
  59. package/dest/browser/bb_backends/index.d.ts.map +1 -0
  60. package/dest/browser/bb_backends/index.js +15 -0
  61. package/dest/browser/bb_backends/interface.d.ts +33 -0
  62. package/dest/browser/bb_backends/interface.d.ts.map +1 -0
  63. package/dest/browser/bb_backends/interface.js +2 -0
  64. package/dest/browser/bb_backends/sync_to_async_adapter.d.ts +15 -0
  65. package/dest/browser/bb_backends/sync_to_async_adapter.d.ts.map +1 -0
  66. package/dest/browser/bb_backends/sync_to_async_adapter.js +20 -0
  67. package/dest/browser/bb_backends/wasm.d.ts +49 -0
  68. package/dest/browser/bb_backends/wasm.d.ts.map +1 -0
  69. package/dest/browser/bb_backends/wasm.js +83 -0
  70. package/dest/browser/bbapi_exception.d.ts +7 -0
  71. package/dest/browser/bbapi_exception.d.ts.map +1 -0
  72. package/dest/browser/bbapi_exception.js +14 -0
  73. package/dest/browser/bigint-array/index.d.ts +17 -0
  74. package/dest/browser/bigint-array/index.d.ts.map +1 -0
  75. package/dest/browser/bigint-array/index.js +37 -0
  76. package/dest/browser/cbind/generate.d.ts +5 -0
  77. package/dest/browser/cbind/generate.d.ts.map +1 -0
  78. package/dest/browser/cbind/generate.js +151 -0
  79. package/dest/browser/cbind/generated/api_types.d.ts +2051 -0
  80. package/dest/browser/cbind/generated/api_types.d.ts.map +1 -0
  81. package/dest/browser/cbind/generated/api_types.js +2747 -0
  82. package/dest/browser/cbind/generated/async.d.ts +62 -0
  83. package/dest/browser/cbind/generated/async.d.ts.map +1 -0
  84. package/dest/browser/cbind/generated/async.js +662 -0
  85. package/dest/browser/cbind/generated/curve_constants.d.ts +45 -0
  86. package/dest/browser/cbind/generated/curve_constants.d.ts.map +1 -0
  87. package/dest/browser/cbind/generated/curve_constants.js +45 -0
  88. package/dest/browser/cbind/generated/sync.d.ts +62 -0
  89. package/dest/browser/cbind/generated/sync.d.ts.map +1 -0
  90. package/dest/browser/cbind/generated/sync.js +609 -0
  91. package/dest/browser/cbind/schema_compiler.d.ts +68 -0
  92. package/dest/browser/cbind/schema_compiler.d.ts.map +1 -0
  93. package/dest/browser/cbind/schema_compiler.js +599 -0
  94. package/dest/browser/crs/browser/cached_net_crs.d.ts +43 -0
  95. package/dest/browser/crs/browser/cached_net_crs.d.ts.map +1 -0
  96. package/dest/browser/crs/browser/cached_net_crs.js +90 -0
  97. package/dest/browser/crs/browser/index.d.ts +2 -0
  98. package/dest/browser/crs/browser/index.d.ts.map +1 -0
  99. package/dest/browser/crs/browser/index.js +2 -0
  100. package/dest/browser/crs/index.d.ts +2 -0
  101. package/dest/browser/crs/index.d.ts.map +1 -0
  102. package/dest/browser/crs/index.js +2 -0
  103. package/dest/browser/crs/net_crs.d.ts +85 -0
  104. package/dest/browser/crs/net_crs.d.ts.map +1 -0
  105. package/dest/browser/crs/net_crs.js +136 -0
  106. package/dest/browser/index.d.ts +8 -0
  107. package/dest/browser/index.d.ts.map +1 -0
  108. package/dest/browser/index.js +8 -0
  109. package/dest/browser/log/browser/index.d.ts +6 -0
  110. package/dest/browser/log/browser/index.d.ts.map +1 -0
  111. package/dest/browser/log/browser/index.js +28 -0
  112. package/dest/browser/log/index.d.ts +2 -0
  113. package/dest/browser/log/index.d.ts.map +1 -0
  114. package/dest/browser/log/index.js +2 -0
  115. package/dest/browser/log/types.d.ts +6 -0
  116. package/dest/browser/log/types.d.ts.map +1 -0
  117. package/dest/browser/log/types.js +2 -0
  118. package/dest/browser/proof/index.d.ts +21 -0
  119. package/dest/browser/proof/index.d.ts.map +1 -0
  120. package/dest/browser/proof/index.js +63 -0
  121. package/dest/browser/random/browser/index.d.ts +2 -0
  122. package/dest/browser/random/browser/index.d.ts.map +1 -0
  123. package/dest/browser/random/browser/index.js +31 -0
  124. package/dest/browser/random/index.d.ts +2 -0
  125. package/dest/browser/random/index.d.ts.map +1 -0
  126. package/dest/browser/random/index.js +2 -0
  127. package/dest/browser/retry/index.d.ts +26 -0
  128. package/dest/browser/retry/index.d.ts.map +1 -0
  129. package/dest/browser/retry/index.js +50 -0
  130. package/dest/browser/serialize/index.d.ts +2 -0
  131. package/dest/browser/serialize/index.d.ts.map +1 -0
  132. package/dest/browser/serialize/index.js +2 -0
  133. package/dest/browser/serialize/serialize.d.ts +18 -0
  134. package/dest/browser/serialize/serialize.d.ts.map +1 -0
  135. package/dest/browser/serialize/serialize.js +72 -0
  136. package/dest/browser/types/fields.d.ts +23 -0
  137. package/dest/browser/types/fields.d.ts.map +1 -0
  138. package/dest/browser/types/fields.js +61 -0
  139. package/dest/browser/types/index.d.ts +3 -0
  140. package/dest/browser/types/index.d.ts.map +1 -0
  141. package/dest/browser/types/index.js +3 -0
  142. package/dest/browser/types/point.d.ts +18 -0
  143. package/dest/browser/types/point.d.ts.map +1 -0
  144. package/dest/browser/types/point.js +28 -0
  145. package/dest/node/async_map/index.d.ts +10 -0
  146. package/dest/node/async_map/index.d.ts.map +1 -0
  147. package/dest/node/async_map/index.js +16 -0
  148. package/dest/node/barretenberg/__snapshots__/pedersen.test.js.snap +156 -0
  149. package/dest/node/barretenberg/__snapshots__/poseidon.test.js.snap +40 -0
  150. package/dest/node/barretenberg/backend.d.ts +75 -0
  151. package/dest/node/barretenberg/backend.d.ts.map +1 -0
  152. package/dest/node/barretenberg/backend.js +301 -0
  153. package/dest/node/barretenberg/blake2s.test.d.ts +2 -0
  154. package/dest/node/barretenberg/blake2s.test.d.ts.map +1 -0
  155. package/dest/node/barretenberg/blake2s.test.js +57 -0
  156. package/dest/node/barretenberg/index.d.ts +67 -0
  157. package/dest/node/barretenberg/index.d.ts.map +1 -0
  158. package/dest/node/barretenberg/index.js +191 -0
  159. package/dest/node/barretenberg/pedersen.test.d.ts +2 -0
  160. package/dest/node/barretenberg/pedersen.test.d.ts.map +1 -0
  161. package/dest/node/barretenberg/pedersen.test.js +62 -0
  162. package/dest/node/barretenberg/poseidon.bench.test.d.ts +2 -0
  163. package/dest/node/barretenberg/poseidon.bench.test.d.ts.map +1 -0
  164. package/dest/node/barretenberg/poseidon.bench.test.js +217 -0
  165. package/dest/node/barretenberg/poseidon.test.d.ts +2 -0
  166. package/dest/node/barretenberg/poseidon.test.d.ts.map +1 -0
  167. package/dest/node/barretenberg/poseidon.test.js +35 -0
  168. package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  169. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +45 -0
  170. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -0
  171. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.js +125 -0
  172. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +2 -0
  173. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -0
  174. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +11 -0
  175. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +2 -0
  176. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts.map +1 -0
  177. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +12 -0
  178. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +3 -0
  179. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -0
  180. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +21 -0
  181. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +2 -0
  182. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts.map +1 -0
  183. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +16 -0
  184. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +21 -0
  185. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -0
  186. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +70 -0
  187. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +53 -0
  188. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -0
  189. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +170 -0
  190. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +2 -0
  191. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -0
  192. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +11 -0
  193. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +2 -0
  194. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts.map +1 -0
  195. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +12 -0
  196. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +3 -0
  197. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -0
  198. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +21 -0
  199. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +2 -0
  200. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts.map +1 -0
  201. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +16 -0
  202. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +29 -0
  203. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -0
  204. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.js +40 -0
  205. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +3 -0
  206. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts.map +1 -0
  207. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +3 -0
  208. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +3 -0
  209. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts.map +1 -0
  210. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg.js +3 -0
  211. package/dest/node/barretenberg_wasm/fetch_code/browser/index.d.ts +2 -0
  212. package/dest/node/barretenberg_wasm/fetch_code/browser/index.d.ts.map +1 -0
  213. package/dest/node/barretenberg_wasm/fetch_code/browser/index.js +36 -0
  214. package/dest/node/barretenberg_wasm/fetch_code/index.d.ts +2 -0
  215. package/dest/node/barretenberg_wasm/fetch_code/index.d.ts.map +1 -0
  216. package/dest/node/barretenberg_wasm/fetch_code/index.js +2 -0
  217. package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts +2 -0
  218. package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts.map +1 -0
  219. package/dest/node/barretenberg_wasm/fetch_code/node/index.js +35 -0
  220. package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts +13 -0
  221. package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -0
  222. package/dest/node/barretenberg_wasm/helpers/browser/index.js +40 -0
  223. package/dest/node/barretenberg_wasm/helpers/index.d.ts +2 -0
  224. package/dest/node/barretenberg_wasm/helpers/index.d.ts.map +1 -0
  225. package/dest/node/barretenberg_wasm/helpers/index.js +2 -0
  226. package/dest/node/barretenberg_wasm/helpers/node/index.d.ts +22 -0
  227. package/dest/node/barretenberg_wasm/helpers/node/index.d.ts.map +1 -0
  228. package/dest/node/barretenberg_wasm/helpers/node/index.js +48 -0
  229. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts +8 -0
  230. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -0
  231. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.js +28 -0
  232. package/dest/node/barretenberg_wasm/index.d.ts +5 -0
  233. package/dest/node/barretenberg_wasm/index.d.ts.map +1 -0
  234. package/dest/node/barretenberg_wasm/index.js +16 -0
  235. package/dest/node/barretenberg_wasm/index.test.d.ts +2 -0
  236. package/dest/node/barretenberg_wasm/index.test.d.ts.map +1 -0
  237. package/dest/node/barretenberg_wasm/index.test.js +39 -0
  238. package/dest/node/bb_backends/browser/index.d.ts +11 -0
  239. package/dest/node/bb_backends/browser/index.d.ts.map +1 -0
  240. package/dest/node/bb_backends/browser/index.js +39 -0
  241. package/dest/node/bb_backends/index.d.ts +45 -0
  242. package/dest/node/bb_backends/index.d.ts.map +1 -0
  243. package/dest/node/bb_backends/index.js +15 -0
  244. package/dest/node/bb_backends/interface.d.ts +33 -0
  245. package/dest/node/bb_backends/interface.d.ts.map +1 -0
  246. package/dest/node/bb_backends/interface.js +2 -0
  247. package/dest/node/bb_backends/node/index.d.ts +11 -0
  248. package/dest/node/bb_backends/node/index.d.ts.map +1 -0
  249. package/dest/node/bb_backends/node/index.js +80 -0
  250. package/dest/node/bb_backends/node/native_pipe.d.ts +25 -0
  251. package/dest/node/bb_backends/node/native_pipe.d.ts.map +1 -0
  252. package/dest/node/bb_backends/node/native_pipe.js +113 -0
  253. package/dest/node/bb_backends/node/native_shm.d.ts +28 -0
  254. package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -0
  255. package/dest/node/bb_backends/node/native_shm.js +150 -0
  256. package/dest/node/bb_backends/node/native_socket.d.ts +34 -0
  257. package/dest/node/bb_backends/node/native_socket.d.ts.map +1 -0
  258. package/dest/node/bb_backends/node/native_socket.js +269 -0
  259. package/dest/node/bb_backends/node/platform.d.ts +27 -0
  260. package/dest/node/bb_backends/node/platform.d.ts.map +1 -0
  261. package/dest/node/bb_backends/node/platform.js +124 -0
  262. package/dest/node/bb_backends/sync_to_async_adapter.d.ts +15 -0
  263. package/dest/node/bb_backends/sync_to_async_adapter.d.ts.map +1 -0
  264. package/dest/node/bb_backends/sync_to_async_adapter.js +20 -0
  265. package/dest/node/bb_backends/wasm.d.ts +49 -0
  266. package/dest/node/bb_backends/wasm.d.ts.map +1 -0
  267. package/dest/node/bb_backends/wasm.js +83 -0
  268. package/dest/node/bbapi_exception.d.ts +7 -0
  269. package/dest/node/bbapi_exception.d.ts.map +1 -0
  270. package/dest/node/bbapi_exception.js +14 -0
  271. package/dest/node/benchmark/index.d.ts +3 -0
  272. package/dest/node/benchmark/index.d.ts.map +1 -0
  273. package/dest/node/benchmark/index.js +25 -0
  274. package/dest/node/benchmark/timer.d.ts +34 -0
  275. package/dest/node/benchmark/timer.d.ts.map +1 -0
  276. package/dest/node/benchmark/timer.js +41 -0
  277. package/dest/node/bigint-array/index.d.ts +17 -0
  278. package/dest/node/bigint-array/index.d.ts.map +1 -0
  279. package/dest/node/bigint-array/index.js +37 -0
  280. package/dest/node/cbind/generate.d.ts +5 -0
  281. package/dest/node/cbind/generate.d.ts.map +1 -0
  282. package/dest/node/cbind/generate.js +151 -0
  283. package/dest/node/cbind/generated/api_types.d.ts +2051 -0
  284. package/dest/node/cbind/generated/api_types.d.ts.map +1 -0
  285. package/dest/node/cbind/generated/api_types.js +2747 -0
  286. package/dest/node/cbind/generated/async.d.ts +62 -0
  287. package/dest/node/cbind/generated/async.d.ts.map +1 -0
  288. package/dest/node/cbind/generated/async.js +662 -0
  289. package/dest/node/cbind/generated/curve_constants.d.ts +45 -0
  290. package/dest/node/cbind/generated/curve_constants.d.ts.map +1 -0
  291. package/dest/node/cbind/generated/curve_constants.js +45 -0
  292. package/dest/node/cbind/generated/sync.d.ts +62 -0
  293. package/dest/node/cbind/generated/sync.d.ts.map +1 -0
  294. package/dest/node/cbind/generated/sync.js +609 -0
  295. package/dest/node/cbind/schema_compiler.d.ts +68 -0
  296. package/dest/node/cbind/schema_compiler.d.ts.map +1 -0
  297. package/dest/node/cbind/schema_compiler.js +599 -0
  298. package/dest/node/crs/browser/cached_net_crs.d.ts +43 -0
  299. package/dest/node/crs/browser/cached_net_crs.d.ts.map +1 -0
  300. package/dest/node/crs/browser/cached_net_crs.js +90 -0
  301. package/dest/node/crs/browser/index.d.ts +2 -0
  302. package/dest/node/crs/browser/index.d.ts.map +1 -0
  303. package/dest/node/crs/browser/index.js +2 -0
  304. package/dest/node/crs/index.d.ts +2 -0
  305. package/dest/node/crs/index.d.ts.map +1 -0
  306. package/dest/node/crs/index.js +2 -0
  307. package/dest/node/crs/net_crs.d.ts +85 -0
  308. package/dest/node/crs/net_crs.d.ts.map +1 -0
  309. package/dest/node/crs/net_crs.js +136 -0
  310. package/dest/node/crs/node/index.d.ts +38 -0
  311. package/dest/node/crs/node/index.d.ts.map +1 -0
  312. package/dest/node/crs/node/index.js +102 -0
  313. package/dest/node/index.d.ts +8 -0
  314. package/dest/node/index.d.ts.map +1 -0
  315. package/dest/node/index.js +8 -0
  316. package/dest/node/log/browser/index.d.ts +6 -0
  317. package/dest/node/log/browser/index.d.ts.map +1 -0
  318. package/dest/node/log/browser/index.js +28 -0
  319. package/dest/node/log/index.d.ts +2 -0
  320. package/dest/node/log/index.d.ts.map +1 -0
  321. package/dest/node/log/index.js +2 -0
  322. package/dest/node/log/node/index.d.ts +6 -0
  323. package/dest/node/log/node/index.d.ts.map +1 -0
  324. package/dest/node/log/node/index.js +40 -0
  325. package/dest/node/log/types.d.ts +6 -0
  326. package/dest/node/log/types.d.ts.map +1 -0
  327. package/dest/node/log/types.js +2 -0
  328. package/dest/node/proof/index.d.ts +21 -0
  329. package/dest/node/proof/index.d.ts.map +1 -0
  330. package/dest/node/proof/index.js +63 -0
  331. package/dest/node/random/browser/index.d.ts +2 -0
  332. package/dest/node/random/browser/index.d.ts.map +1 -0
  333. package/dest/node/random/browser/index.js +31 -0
  334. package/dest/node/random/index.d.ts +2 -0
  335. package/dest/node/random/index.d.ts.map +1 -0
  336. package/dest/node/random/index.js +2 -0
  337. package/dest/node/random/node/index.d.ts +2 -0
  338. package/dest/node/random/node/index.d.ts.map +1 -0
  339. package/dest/node/random/node/index.js +5 -0
  340. package/dest/node/retry/index.d.ts +26 -0
  341. package/dest/node/retry/index.d.ts.map +1 -0
  342. package/dest/node/retry/index.js +50 -0
  343. package/dest/node/serialize/index.d.ts +2 -0
  344. package/dest/node/serialize/index.d.ts.map +1 -0
  345. package/dest/node/serialize/index.js +2 -0
  346. package/dest/node/serialize/serialize.d.ts +18 -0
  347. package/dest/node/serialize/serialize.d.ts.map +1 -0
  348. package/dest/node/serialize/serialize.js +72 -0
  349. package/dest/node/types/fields.d.ts +23 -0
  350. package/dest/node/types/fields.d.ts.map +1 -0
  351. package/dest/node/types/fields.js +61 -0
  352. package/dest/node/types/index.d.ts +3 -0
  353. package/dest/node/types/index.d.ts.map +1 -0
  354. package/dest/node/types/index.js +3 -0
  355. package/dest/node/types/point.d.ts +18 -0
  356. package/dest/node/types/point.d.ts.map +1 -0
  357. package/dest/node/types/point.js +28 -0
  358. package/dest/node-cjs/async_map/index.d.ts +10 -0
  359. package/dest/node-cjs/async_map/index.d.ts.map +1 -0
  360. package/dest/node-cjs/async_map/index.js +19 -0
  361. package/dest/node-cjs/barretenberg/backend.d.ts +75 -0
  362. package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -0
  363. package/dest/node-cjs/barretenberg/backend.js +308 -0
  364. package/dest/node-cjs/barretenberg/blake2s.test.d.ts +2 -0
  365. package/dest/node-cjs/barretenberg/blake2s.test.d.ts.map +1 -0
  366. package/dest/node-cjs/barretenberg/blake2s.test.js +59 -0
  367. package/dest/node-cjs/barretenberg/index.d.ts +67 -0
  368. package/dest/node-cjs/barretenberg/index.d.ts.map +1 -0
  369. package/dest/node-cjs/barretenberg/index.js +200 -0
  370. package/dest/node-cjs/barretenberg/pedersen.test.d.ts +2 -0
  371. package/dest/node-cjs/barretenberg/pedersen.test.d.ts.map +1 -0
  372. package/dest/node-cjs/barretenberg/pedersen.test.js +64 -0
  373. package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts +2 -0
  374. package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts.map +1 -0
  375. package/dest/node-cjs/barretenberg/poseidon.bench.test.js +219 -0
  376. package/dest/node-cjs/barretenberg/poseidon.test.d.ts +2 -0
  377. package/dest/node-cjs/barretenberg/poseidon.test.d.ts.map +1 -0
  378. package/dest/node-cjs/barretenberg/poseidon.test.js +37 -0
  379. package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  380. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +45 -0
  381. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -0
  382. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.js +129 -0
  383. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +2 -0
  384. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -0
  385. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +14 -0
  386. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +2 -0
  387. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts.map +1 -0
  388. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +14 -0
  389. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +3 -0
  390. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -0
  391. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +24 -0
  392. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +2 -0
  393. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts.map +1 -0
  394. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +18 -0
  395. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +21 -0
  396. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -0
  397. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +74 -0
  398. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +53 -0
  399. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -0
  400. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +174 -0
  401. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +2 -0
  402. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -0
  403. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +14 -0
  404. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +2 -0
  405. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts.map +1 -0
  406. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +14 -0
  407. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +3 -0
  408. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -0
  409. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +24 -0
  410. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +2 -0
  411. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts.map +1 -0
  412. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +18 -0
  413. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +29 -0
  414. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -0
  415. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.js +44 -0
  416. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +3 -0
  417. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts.map +1 -0
  418. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +6 -0
  419. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +3 -0
  420. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts.map +1 -0
  421. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.js +6 -0
  422. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts +2 -0
  423. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts.map +1 -0
  424. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.js +40 -0
  425. package/dest/node-cjs/barretenberg_wasm/fetch_code/index.d.ts +2 -0
  426. package/dest/node-cjs/barretenberg_wasm/fetch_code/index.d.ts.map +1 -0
  427. package/dest/node-cjs/barretenberg_wasm/fetch_code/index.js +5 -0
  428. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts +2 -0
  429. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts.map +1 -0
  430. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.js +39 -0
  431. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts +13 -0
  432. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -0
  433. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.js +50 -0
  434. package/dest/node-cjs/barretenberg_wasm/helpers/index.d.ts +2 -0
  435. package/dest/node-cjs/barretenberg_wasm/helpers/index.d.ts.map +1 -0
  436. package/dest/node-cjs/barretenberg_wasm/helpers/index.js +5 -0
  437. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts +22 -0
  438. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts.map +1 -0
  439. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.js +57 -0
  440. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts +8 -0
  441. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -0
  442. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.js +31 -0
  443. package/dest/node-cjs/barretenberg_wasm/index.d.ts +5 -0
  444. package/dest/node-cjs/barretenberg_wasm/index.d.ts.map +1 -0
  445. package/dest/node-cjs/barretenberg_wasm/index.js +19 -0
  446. package/dest/node-cjs/barretenberg_wasm/index.test.d.ts +2 -0
  447. package/dest/node-cjs/barretenberg_wasm/index.test.d.ts.map +1 -0
  448. package/dest/node-cjs/barretenberg_wasm/index.test.js +41 -0
  449. package/dest/node-cjs/bb_backends/browser/index.d.ts +11 -0
  450. package/dest/node-cjs/bb_backends/browser/index.d.ts.map +1 -0
  451. package/dest/node-cjs/bb_backends/browser/index.js +43 -0
  452. package/dest/node-cjs/bb_backends/index.d.ts +45 -0
  453. package/dest/node-cjs/bb_backends/index.d.ts.map +1 -0
  454. package/dest/node-cjs/bb_backends/index.js +18 -0
  455. package/dest/node-cjs/bb_backends/interface.d.ts +33 -0
  456. package/dest/node-cjs/bb_backends/interface.d.ts.map +1 -0
  457. package/dest/node-cjs/bb_backends/interface.js +3 -0
  458. package/dest/node-cjs/bb_backends/node/index.d.ts +11 -0
  459. package/dest/node-cjs/bb_backends/node/index.d.ts.map +1 -0
  460. package/dest/node-cjs/bb_backends/node/index.js +84 -0
  461. package/dest/node-cjs/bb_backends/node/native_pipe.d.ts +25 -0
  462. package/dest/node-cjs/bb_backends/node/native_pipe.d.ts.map +1 -0
  463. package/dest/node-cjs/bb_backends/node/native_pipe.js +117 -0
  464. package/dest/node-cjs/bb_backends/node/native_shm.d.ts +28 -0
  465. package/dest/node-cjs/bb_backends/node/native_shm.d.ts.map +1 -0
  466. package/dest/node-cjs/bb_backends/node/native_shm.js +154 -0
  467. package/dest/node-cjs/bb_backends/node/native_socket.d.ts +34 -0
  468. package/dest/node-cjs/bb_backends/node/native_socket.d.ts.map +1 -0
  469. package/dest/node-cjs/bb_backends/node/native_socket.js +274 -0
  470. package/dest/node-cjs/bb_backends/node/platform.d.ts +27 -0
  471. package/dest/node-cjs/bb_backends/node/platform.d.ts.map +1 -0
  472. package/dest/node-cjs/bb_backends/node/platform.js +131 -0
  473. package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts +15 -0
  474. package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts.map +1 -0
  475. package/dest/node-cjs/bb_backends/sync_to_async_adapter.js +24 -0
  476. package/dest/node-cjs/bb_backends/wasm.d.ts +49 -0
  477. package/dest/node-cjs/bb_backends/wasm.d.ts.map +1 -0
  478. package/dest/node-cjs/bb_backends/wasm.js +88 -0
  479. package/dest/node-cjs/bbapi_exception.d.ts +7 -0
  480. package/dest/node-cjs/bbapi_exception.d.ts.map +1 -0
  481. package/dest/node-cjs/bbapi_exception.js +18 -0
  482. package/dest/node-cjs/benchmark/index.d.ts +3 -0
  483. package/dest/node-cjs/benchmark/index.d.ts.map +1 -0
  484. package/dest/node-cjs/benchmark/index.js +29 -0
  485. package/dest/node-cjs/benchmark/timer.d.ts +34 -0
  486. package/dest/node-cjs/benchmark/timer.d.ts.map +1 -0
  487. package/dest/node-cjs/benchmark/timer.js +45 -0
  488. package/dest/node-cjs/bigint-array/index.d.ts +17 -0
  489. package/dest/node-cjs/bigint-array/index.d.ts.map +1 -0
  490. package/dest/node-cjs/bigint-array/index.js +43 -0
  491. package/dest/node-cjs/cbind/generate.d.ts +5 -0
  492. package/dest/node-cjs/cbind/generate.d.ts.map +1 -0
  493. package/dest/node-cjs/cbind/generate.js +153 -0
  494. package/dest/node-cjs/cbind/generated/api_types.d.ts +2051 -0
  495. package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -0
  496. package/dest/node-cjs/cbind/generated/api_types.js +2989 -0
  497. package/dest/node-cjs/cbind/generated/async.d.ts +62 -0
  498. package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -0
  499. package/dest/node-cjs/cbind/generated/async.js +666 -0
  500. package/dest/node-cjs/cbind/generated/curve_constants.d.ts +45 -0
  501. package/dest/node-cjs/cbind/generated/curve_constants.d.ts.map +1 -0
  502. package/dest/node-cjs/cbind/generated/curve_constants.js +48 -0
  503. package/dest/node-cjs/cbind/generated/sync.d.ts +62 -0
  504. package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -0
  505. package/dest/node-cjs/cbind/generated/sync.js +613 -0
  506. package/dest/node-cjs/cbind/schema_compiler.d.ts +68 -0
  507. package/dest/node-cjs/cbind/schema_compiler.d.ts.map +1 -0
  508. package/dest/node-cjs/cbind/schema_compiler.js +606 -0
  509. package/dest/node-cjs/crs/browser/cached_net_crs.d.ts +43 -0
  510. package/dest/node-cjs/crs/browser/cached_net_crs.d.ts.map +1 -0
  511. package/dest/node-cjs/crs/browser/cached_net_crs.js +95 -0
  512. package/dest/node-cjs/crs/browser/index.d.ts +2 -0
  513. package/dest/node-cjs/crs/browser/index.d.ts.map +1 -0
  514. package/dest/node-cjs/crs/browser/index.js +7 -0
  515. package/dest/node-cjs/crs/index.d.ts +2 -0
  516. package/dest/node-cjs/crs/index.d.ts.map +1 -0
  517. package/dest/node-cjs/crs/index.js +7 -0
  518. package/dest/node-cjs/crs/net_crs.d.ts +85 -0
  519. package/dest/node-cjs/crs/net_crs.d.ts.map +1 -0
  520. package/dest/node-cjs/crs/net_crs.js +141 -0
  521. package/dest/node-cjs/crs/node/index.d.ts +38 -0
  522. package/dest/node-cjs/crs/node/index.d.ts.map +1 -0
  523. package/dest/node-cjs/crs/node/index.js +107 -0
  524. package/dest/node-cjs/index.d.ts +8 -0
  525. package/dest/node-cjs/index.d.ts.map +1 -0
  526. package/dest/node-cjs/index.js +37 -0
  527. package/dest/node-cjs/log/browser/index.d.ts +6 -0
  528. package/dest/node-cjs/log/browser/index.d.ts.map +1 -0
  529. package/dest/node-cjs/log/browser/index.js +30 -0
  530. package/dest/node-cjs/log/index.d.ts +2 -0
  531. package/dest/node-cjs/log/index.d.ts.map +1 -0
  532. package/dest/node-cjs/log/index.js +8 -0
  533. package/dest/node-cjs/log/node/index.d.ts +6 -0
  534. package/dest/node-cjs/log/node/index.d.ts.map +1 -0
  535. package/dest/node-cjs/log/node/index.js +42 -0
  536. package/dest/node-cjs/log/types.d.ts +6 -0
  537. package/dest/node-cjs/log/types.d.ts.map +1 -0
  538. package/dest/node-cjs/log/types.js +3 -0
  539. package/dest/node-cjs/package.json +3 -0
  540. package/dest/node-cjs/proof/index.d.ts +21 -0
  541. package/dest/node-cjs/proof/index.d.ts.map +1 -0
  542. package/dest/node-cjs/proof/index.js +72 -0
  543. package/dest/node-cjs/random/browser/index.d.ts +2 -0
  544. package/dest/node-cjs/random/browser/index.d.ts.map +1 -0
  545. package/dest/node-cjs/random/browser/index.js +35 -0
  546. package/dest/node-cjs/random/index.d.ts +2 -0
  547. package/dest/node-cjs/random/index.d.ts.map +1 -0
  548. package/dest/node-cjs/random/index.js +5 -0
  549. package/dest/node-cjs/random/node/index.d.ts +2 -0
  550. package/dest/node-cjs/random/node/index.d.ts.map +1 -0
  551. package/dest/node-cjs/random/node/index.js +8 -0
  552. package/dest/node-cjs/retry/index.d.ts +26 -0
  553. package/dest/node-cjs/retry/index.d.ts.map +1 -0
  554. package/dest/node-cjs/retry/index.js +55 -0
  555. package/dest/node-cjs/serialize/index.d.ts +2 -0
  556. package/dest/node-cjs/serialize/index.d.ts.map +1 -0
  557. package/dest/node-cjs/serialize/index.js +5 -0
  558. package/dest/node-cjs/serialize/serialize.d.ts +18 -0
  559. package/dest/node-cjs/serialize/serialize.d.ts.map +1 -0
  560. package/dest/node-cjs/serialize/serialize.js +82 -0
  561. package/dest/node-cjs/types/fields.d.ts +23 -0
  562. package/dest/node-cjs/types/fields.d.ts.map +1 -0
  563. package/dest/node-cjs/types/fields.js +65 -0
  564. package/dest/node-cjs/types/index.d.ts +3 -0
  565. package/dest/node-cjs/types/index.d.ts.map +1 -0
  566. package/dest/node-cjs/types/index.js +6 -0
  567. package/dest/node-cjs/types/point.d.ts +18 -0
  568. package/dest/node-cjs/types/point.d.ts.map +1 -0
  569. package/dest/node-cjs/types/point.js +32 -0
  570. package/package.json +1 -1
@@ -0,0 +1,75 @@
1
+ import { BackendOptions, Barretenberg, CircuitOptions } from './index.js';
2
+ import { ProofData } from '../proof/index.js';
3
+ export declare class AztecClientBackendError extends Error {
4
+ constructor(message: string);
5
+ }
6
+ /**
7
+ * Options for the UltraHonkBackend.
8
+ */
9
+ export type UltraHonkBackendOptions = {
10
+ /** Selecting this option will use the keccak hash function instead of poseidon
11
+ * when generating challenges in the proof.
12
+ * Use this when you want to verify the created proof on an EVM chain.
13
+ */
14
+ keccak?: boolean;
15
+ /** Selecting this option will use the keccak hash function instead of poseidon
16
+ * when generating challenges in the proof.
17
+ * Use this when you want to verify the created proof on an EVM chain.
18
+ */
19
+ keccakZK?: boolean;
20
+ /** Selecting this option will use the poseidon/stark252 hash function instead of poseidon
21
+ * when generating challenges in the proof.
22
+ * Use this when you want to verify the created proof on an Starknet chain with Garaga.
23
+ */
24
+ starknet?: boolean;
25
+ /** Selecting this option will use the poseidon/stark252 hash function instead of poseidon
26
+ * when generating challenges in the proof.
27
+ * Use this when you want to verify the created proof on an Starknet chain with Garaga.
28
+ */
29
+ starknetZK?: boolean;
30
+ };
31
+ export declare class UltraHonkVerifierBackend {
32
+ protected backendOptions: BackendOptions;
33
+ protected circuitOptions: CircuitOptions;
34
+ protected api: Barretenberg;
35
+ constructor(backendOptions?: BackendOptions, circuitOptions?: CircuitOptions);
36
+ /** @ignore */
37
+ private instantiate;
38
+ verifyProof(proofData: ProofData & {
39
+ verificationKey: Uint8Array;
40
+ }, options?: UltraHonkBackendOptions): Promise<boolean>;
41
+ destroy(): Promise<void>;
42
+ }
43
+ export declare class UltraHonkBackend {
44
+ protected backendOptions: BackendOptions;
45
+ protected circuitOptions: CircuitOptions;
46
+ protected api: Barretenberg;
47
+ protected acirUncompressedBytecode: Uint8Array;
48
+ constructor(acirBytecode: string, backendOptions?: BackendOptions, circuitOptions?: CircuitOptions);
49
+ /** @ignore */
50
+ private instantiate;
51
+ generateProof(compressedWitness: Uint8Array, options?: UltraHonkBackendOptions): Promise<ProofData>;
52
+ verifyProof(proofData: ProofData, options?: UltraHonkBackendOptions): Promise<boolean>;
53
+ getVerificationKey(options?: UltraHonkBackendOptions): Promise<Uint8Array>;
54
+ /** @description Returns a solidity verifier */
55
+ getSolidityVerifier(vk: Uint8Array, options?: UltraHonkBackendOptions): Promise<string>;
56
+ generateRecursiveProofArtifacts(_proof: Uint8Array, _numOfPublicInputs: number): Promise<{
57
+ proofAsFields: string[];
58
+ vkAsFields: string[];
59
+ vkHash: string;
60
+ }>;
61
+ destroy(): Promise<void>;
62
+ }
63
+ export declare class AztecClientBackend {
64
+ protected acirBuf: Uint8Array[];
65
+ protected options: BackendOptions;
66
+ protected api: Barretenberg;
67
+ constructor(acirBuf: Uint8Array[], options?: BackendOptions);
68
+ /** @ignore */
69
+ private instantiate;
70
+ prove(witnessBuf: Uint8Array[], vksBuf?: Uint8Array[]): Promise<[Uint8Array[], Uint8Array, Uint8Array]>;
71
+ verify(proof: Uint8Array, vk: Uint8Array): Promise<boolean>;
72
+ gates(): Promise<number[]>;
73
+ destroy(): Promise<void>;
74
+ }
75
+ //# sourceMappingURL=backend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../../src/barretenberg/backend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAoC,MAAM,mBAAmB,CAAC;AAMhF,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,OAAO,EAAE,MAAM;CAG5B;AAED;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAsBF,qBAAa,wBAAwB;IAIjC,SAAS,CAAC,cAAc,EAAE,cAAc;IACxC,SAAS,CAAC,cAAc,EAAE,cAAc;IAJ1C,SAAS,CAAC,GAAG,EAAG,YAAY,CAAC;gBAGjB,cAAc,GAAE,cAA+B,EAC/C,cAAc,GAAE,cAAqC;IAEjE,cAAc;YACA,WAAW;IAUnB,WAAW,CACf,SAAS,EAAE,SAAS,GAAG;QAAE,eAAe,EAAE,UAAU,CAAA;KAAE,EACtD,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,OAAO,CAAC;IAenB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAMzB;AAED,qBAAa,gBAAgB;IAWzB,SAAS,CAAC,cAAc,EAAE,cAAc;IACxC,SAAS,CAAC,cAAc,EAAE,cAAc;IAN1C,SAAS,CAAC,GAAG,EAAG,YAAY,CAAC;IAC7B,SAAS,CAAC,wBAAwB,EAAE,UAAU,CAAC;gBAG7C,YAAY,EAAE,MAAM,EACV,cAAc,GAAE,cAA+B,EAC/C,cAAc,GAAE,cAAqC;IAIjE,cAAc;YACA,WAAW;IAUnB,aAAa,CAAC,iBAAiB,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,SAAS,CAAC;IAwBnG,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC;IAwBtF,kBAAkB,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;IAahF,+CAA+C;IACzC,mBAAmB,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAUvF,+BAA+B,CAEnC,MAAM,EAAE,UAAU,EAElB,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC;QAAE,aAAa,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAsCvE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAM/B;AAED,qBAAa,kBAAkB;IAS3B,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE;IAC/B,SAAS,CAAC,OAAO,EAAE,cAAc;IAJnC,SAAS,CAAC,GAAG,EAAG,YAAY,CAAC;gBAGjB,OAAO,EAAE,UAAU,EAAE,EACrB,OAAO,GAAE,cAA+B;IAGpD,cAAc;YACA,WAAW;IAQnB,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,MAAM,GAAE,UAAU,EAAO,GAAG,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IA8D3G,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAS3D,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAgB1B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAM/B"}
@@ -0,0 +1,308 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AztecClientBackend = exports.UltraHonkBackend = exports.UltraHonkVerifierBackend = exports.AztecClientBackendError = void 0;
4
+ const index_js_1 = require("./index.js");
5
+ const index_js_2 = require("../proof/index.js");
6
+ const api_types_js_1 = require("../cbind/generated/api_types.js");
7
+ const pako_1 = require("pako");
8
+ const buffer_1 = require("buffer");
9
+ const msgpackr_1 = require("msgpackr");
10
+ class AztecClientBackendError extends Error {
11
+ constructor(message) {
12
+ super(message);
13
+ }
14
+ }
15
+ exports.AztecClientBackendError = AztecClientBackendError;
16
+ function getProofSettingsFromOptions(options) {
17
+ return {
18
+ ipaAccumulation: false,
19
+ oracleHashType: options?.keccak || options?.keccakZK
20
+ ? 'keccak'
21
+ : options?.starknet || options?.starknetZK
22
+ ? 'starknet'
23
+ : 'poseidon2',
24
+ // TODO no current way to target non-zk poseidon2 hash
25
+ disableZk: options?.keccak || options?.starknet ? true : false,
26
+ optimizedSolidityVerifier: false,
27
+ };
28
+ }
29
+ class UltraHonkVerifierBackend {
30
+ constructor(backendOptions = { threads: 1 }, circuitOptions = { recursive: false }) {
31
+ this.backendOptions = backendOptions;
32
+ this.circuitOptions = circuitOptions;
33
+ }
34
+ /** @ignore */
35
+ async instantiate() {
36
+ if (!this.api) {
37
+ const api = await index_js_1.Barretenberg.new(this.backendOptions);
38
+ const honkRecursion = true;
39
+ await api.initSRSForCircuitSize(0);
40
+ this.api = api;
41
+ }
42
+ }
43
+ async verifyProof(proofData, options) {
44
+ await this.instantiate();
45
+ const proofFrs = [];
46
+ for (let i = 0; i < proofData.proof.length; i += 32) {
47
+ proofFrs.push(proofData.proof.slice(i, i + 32));
48
+ }
49
+ const { verified } = await this.api.circuitVerify({
50
+ verificationKey: proofData.verificationKey,
51
+ publicInputs: proofData.publicInputs.map(index_js_2.hexToUint8Array),
52
+ proof: proofFrs,
53
+ settings: getProofSettingsFromOptions(options),
54
+ });
55
+ return verified;
56
+ }
57
+ destroy() {
58
+ if (!this.api) {
59
+ return Promise.resolve();
60
+ }
61
+ return this.api.destroy();
62
+ }
63
+ }
64
+ exports.UltraHonkVerifierBackend = UltraHonkVerifierBackend;
65
+ class UltraHonkBackend {
66
+ constructor(acirBytecode, backendOptions = { threads: 1 }, circuitOptions = { recursive: false }) {
67
+ this.backendOptions = backendOptions;
68
+ this.circuitOptions = circuitOptions;
69
+ this.acirUncompressedBytecode = acirToUint8Array(acirBytecode);
70
+ }
71
+ /** @ignore */
72
+ async instantiate() {
73
+ if (!this.api) {
74
+ const api = await index_js_1.Barretenberg.new(this.backendOptions);
75
+ const honkRecursion = true;
76
+ await api.acirInitSRS(this.acirUncompressedBytecode, this.circuitOptions.recursive, honkRecursion);
77
+ this.api = api;
78
+ }
79
+ }
80
+ async generateProof(compressedWitness, options) {
81
+ await this.instantiate();
82
+ const witness = (0, pako_1.ungzip)(compressedWitness);
83
+ const { proof, publicInputs } = await this.api.circuitProve({
84
+ witness,
85
+ circuit: {
86
+ name: 'circuit',
87
+ bytecode: buffer_1.Buffer.from(this.acirUncompressedBytecode),
88
+ verificationKey: buffer_1.Buffer.from([]), // Empty VK - lower performance.
89
+ },
90
+ settings: getProofSettingsFromOptions(options),
91
+ });
92
+ console.log(`Generated proof for circuit with ${publicInputs.length} public inputs and ${proof.length} fields.`);
93
+ // We return ProofData as a flat buffer and an array of strings to match the current ProofData class.
94
+ const flatProof = new Uint8Array(proof.length * 32);
95
+ proof.forEach((fr, i) => {
96
+ flatProof.set(fr, i * 32);
97
+ });
98
+ return { proof: flatProof, publicInputs: publicInputs.map(index_js_2.uint8ArrayToHex) };
99
+ }
100
+ async verifyProof(proofData, options) {
101
+ await this.instantiate();
102
+ const proofFrs = [];
103
+ for (let i = 0; i < proofData.proof.length; i += 32) {
104
+ proofFrs.push(proofData.proof.slice(i, i + 32));
105
+ }
106
+ // TODO reconsider API - computing the VK at this point is not optimal
107
+ const vkResult = await this.api.circuitComputeVk({
108
+ circuit: {
109
+ name: 'circuit',
110
+ bytecode: this.acirUncompressedBytecode,
111
+ },
112
+ settings: getProofSettingsFromOptions(options),
113
+ });
114
+ const { verified } = await this.api.circuitVerify({
115
+ verificationKey: vkResult.bytes,
116
+ publicInputs: proofData.publicInputs.map(index_js_2.hexToUint8Array),
117
+ proof: proofFrs,
118
+ settings: getProofSettingsFromOptions(options),
119
+ });
120
+ return verified;
121
+ }
122
+ async getVerificationKey(options) {
123
+ await this.instantiate();
124
+ const vkResult = await this.api.circuitComputeVk({
125
+ circuit: {
126
+ name: 'circuit',
127
+ bytecode: buffer_1.Buffer.from(this.acirUncompressedBytecode),
128
+ },
129
+ settings: getProofSettingsFromOptions(options),
130
+ });
131
+ return vkResult.bytes;
132
+ }
133
+ /** @description Returns a solidity verifier */
134
+ async getSolidityVerifier(vk, options) {
135
+ await this.instantiate();
136
+ const result = await this.api.circuitWriteSolidityVerifier({
137
+ verificationKey: vk,
138
+ settings: getProofSettingsFromOptions(options),
139
+ });
140
+ return result.solidityCode;
141
+ }
142
+ // TODO(https://github.com/noir-lang/noir/issues/5661): Update this to handle Honk recursive aggregation in the browser once it is ready in the backend itself
143
+ async generateRecursiveProofArtifacts(
144
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
145
+ _proof,
146
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
147
+ _numOfPublicInputs) {
148
+ await this.instantiate();
149
+ // TODO(https://github.com/noir-lang/noir/issues/5661): This needs to be updated to handle recursive aggregation.
150
+ // There is still a proofAsFields method but we could consider getting rid of it as the proof itself
151
+ // is a list of field elements.
152
+ // UltraHonk also does not have public inputs directly prepended to the proof and they are still instead
153
+ // inserted at an offset.
154
+ // const proof = reconstructProofWithPublicInputs(proofData);
155
+ // const proofAsFields = (await this.api.acirProofAsFieldsUltraHonk(proof)).slice(numOfPublicInputs);
156
+ // TODO: perhaps we should put this in the init function. Need to benchmark
157
+ // TODO how long it takes.
158
+ const vkResult = await this.api.circuitComputeVk({
159
+ circuit: {
160
+ name: 'circuit',
161
+ bytecode: buffer_1.Buffer.from(this.acirUncompressedBytecode),
162
+ },
163
+ settings: getProofSettingsFromOptions({}),
164
+ });
165
+ // Convert VK bytes to field elements (32-byte chunks)
166
+ const vkAsFields = [];
167
+ for (let i = 0; i < vkResult.bytes.length; i += 32) {
168
+ const chunk = vkResult.bytes.slice(i, i + 32);
169
+ vkAsFields.push((0, index_js_2.uint8ArrayToHex)(chunk));
170
+ }
171
+ return {
172
+ // TODO(https://github.com/noir-lang/noir/issues/5661)
173
+ proofAsFields: [],
174
+ vkAsFields,
175
+ // We use an empty string for the vk hash here as it is unneeded as part of the recursive artifacts
176
+ // The user can be expected to hash the vk inside their circuit to check whether the vk is the circuit
177
+ // they expect
178
+ vkHash: (0, index_js_2.uint8ArrayToHex)(vkResult.hash),
179
+ };
180
+ }
181
+ async destroy() {
182
+ if (!this.api) {
183
+ return;
184
+ }
185
+ await this.api.destroy();
186
+ }
187
+ }
188
+ exports.UltraHonkBackend = UltraHonkBackend;
189
+ class AztecClientBackend {
190
+ constructor(acirBuf, options = { threads: 1 }) {
191
+ this.acirBuf = acirBuf;
192
+ this.options = options;
193
+ }
194
+ /** @ignore */
195
+ async instantiate() {
196
+ if (!this.api) {
197
+ const api = await index_js_1.Barretenberg.new(this.options);
198
+ await api.initSRSChonk();
199
+ this.api = api;
200
+ }
201
+ }
202
+ async prove(witnessBuf, vksBuf = []) {
203
+ if (vksBuf.length !== 0 && this.acirBuf.length !== witnessBuf.length) {
204
+ throw new AztecClientBackendError('Witness and bytecodes must have the same stack depth!');
205
+ }
206
+ if (vksBuf.length !== 0 && vksBuf.length !== witnessBuf.length) {
207
+ // NOTE: we allow 0 as an explicit 'I have no VKs'. This is a deprecated feature.
208
+ throw new AztecClientBackendError('Witness and VKs must have the same stack depth!');
209
+ }
210
+ await this.instantiate();
211
+ // Queue IVC start with the number of circuits
212
+ this.api.chonkStart({ numCircuits: this.acirBuf.length });
213
+ // Queue load and accumulate for each circuit
214
+ for (let i = 0; i < this.acirBuf.length; i++) {
215
+ const bytecode = this.acirBuf[i];
216
+ const witness = witnessBuf[i] || buffer_1.Buffer.from([]);
217
+ const vk = vksBuf[i] || buffer_1.Buffer.from([]);
218
+ const functionName = `unknown_wasm_${i}`;
219
+ // Load the circuit
220
+ this.api.chonkLoad({
221
+ circuit: {
222
+ name: functionName,
223
+ bytecode: buffer_1.Buffer.from(bytecode),
224
+ verificationKey: buffer_1.Buffer.from(vk),
225
+ },
226
+ });
227
+ // Accumulate with witness
228
+ this.api.chonkAccumulate({
229
+ witness: buffer_1.Buffer.from(witness),
230
+ });
231
+ }
232
+ // Generate the proof (and wait for all previous steps to finish)
233
+ const proveResult = await this.api.chonkProve({});
234
+ // The API currently expects a msgpack-encoded API.
235
+ const proof = new msgpackr_1.Encoder({ useRecords: false }).encode((0, api_types_js_1.fromChonkProof)(proveResult.proof));
236
+ // Generate the VK
237
+ const vkResult = await this.api.chonkComputeIvcVk({
238
+ circuit: {
239
+ name: 'hiding',
240
+ bytecode: this.acirBuf[this.acirBuf.length - 1],
241
+ },
242
+ });
243
+ const proofFields = [
244
+ proveResult.proof.megaProof,
245
+ proveResult.proof.goblinProof.mergeProof,
246
+ proveResult.proof.goblinProof.eccvmProof.preIpaProof,
247
+ proveResult.proof.goblinProof.eccvmProof.ipaProof,
248
+ proveResult.proof.goblinProof.translatorProof,
249
+ ].flat();
250
+ // Note: Verification may not work correctly until we properly serialize the proof
251
+ if (!(await this.verify(proof, vkResult.bytes))) {
252
+ throw new AztecClientBackendError('Failed to verify the private (Chonk) transaction proof!');
253
+ }
254
+ return [proofFields, proof, vkResult.bytes];
255
+ }
256
+ async verify(proof, vk) {
257
+ await this.instantiate();
258
+ const result = await this.api.chonkVerify({
259
+ proof: (0, api_types_js_1.toChonkProof)(new msgpackr_1.Decoder({ useRecords: false }).decode(proof)),
260
+ vk: buffer_1.Buffer.from(vk),
261
+ });
262
+ return result.valid;
263
+ }
264
+ async gates() {
265
+ await this.instantiate();
266
+ const circuitSizes = [];
267
+ for (const buf of this.acirBuf) {
268
+ const gates = await this.api.chonkStats({
269
+ circuit: {
270
+ name: 'circuit',
271
+ bytecode: buf,
272
+ },
273
+ includeGatesPerOpcode: false,
274
+ });
275
+ circuitSizes.push(gates.circuitSize);
276
+ }
277
+ return circuitSizes;
278
+ }
279
+ async destroy() {
280
+ if (!this.api) {
281
+ return;
282
+ }
283
+ await this.api.destroy();
284
+ }
285
+ }
286
+ exports.AztecClientBackend = AztecClientBackend;
287
+ // Converts bytecode from a base64 string to a Uint8Array
288
+ function acirToUint8Array(base64EncodedBytecode) {
289
+ const compressedByteCode = base64Decode(base64EncodedBytecode);
290
+ return (0, pako_1.ungzip)(compressedByteCode);
291
+ }
292
+ // Since this is a simple function, we can use feature detection to
293
+ // see if we are in the nodeJs environment or the browser environment.
294
+ function base64Decode(input) {
295
+ if (typeof buffer_1.Buffer !== 'undefined') {
296
+ // Node.js environment
297
+ const b = buffer_1.Buffer.from(input, 'base64');
298
+ return new Uint8Array(b.buffer, b.byteOffset, b.byteLength);
299
+ }
300
+ else if (typeof atob === 'function') {
301
+ // Browser environment
302
+ return Uint8Array.from(atob(input), c => c.charCodeAt(0));
303
+ }
304
+ else {
305
+ throw new Error('No implementation found for base64 decoding.');
306
+ }
307
+ }
308
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmcvYmFja2VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBMEU7QUFDMUUsZ0RBQWdGO0FBQ2hGLGtFQUErRTtBQUMvRSwrQkFBOEI7QUFDOUIsbUNBQWdDO0FBQ2hDLHVDQUE0QztBQUU1QyxNQUFhLHVCQUF3QixTQUFRLEtBQUs7SUFDaEQsWUFBWSxPQUFlO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQixDQUFDO0NBQ0Y7QUFKRCwwREFJQztBQTRCRCxTQUFTLDJCQUEyQixDQUFDLE9BQWlDO0lBTXBFLE9BQU87UUFDTCxlQUFlLEVBQUUsS0FBSztRQUN0QixjQUFjLEVBQ1osT0FBTyxFQUFFLE1BQU0sSUFBSSxPQUFPLEVBQUUsUUFBUTtZQUNsQyxDQUFDLENBQUMsUUFBUTtZQUNWLENBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxJQUFJLE9BQU8sRUFBRSxVQUFVO2dCQUN4QyxDQUFDLENBQUMsVUFBVTtnQkFDWixDQUFDLENBQUMsV0FBVztRQUNuQixzREFBc0Q7UUFDdEQsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLElBQUksT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLO1FBQzlELHlCQUF5QixFQUFFLEtBQUs7S0FDakMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFhLHdCQUF3QjtJQUduQyxZQUNZLGlCQUFpQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFDL0MsaUJBQWlDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRTtRQURyRCxtQkFBYyxHQUFkLGNBQWMsQ0FBaUM7UUFDL0MsbUJBQWMsR0FBZCxjQUFjLENBQXVDO0lBQzlELENBQUM7SUFDSixjQUFjO0lBQ04sS0FBSyxDQUFDLFdBQVc7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxH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
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=blake2s.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blake2s.test.d.ts","sourceRoot":"","sources":["../../../src/barretenberg/blake2s.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const index_js_1 = require("./index.js");
4
+ const index_js_2 = require("../types/index.js");
5
+ describe('blake2s async', () => {
6
+ let api;
7
+ beforeAll(async () => {
8
+ // We're going to test over a worker backend to cover more code paths.
9
+ api = await index_js_1.Barretenberg.new({ threads: 1, backend: index_js_1.BackendType.WasmWorker });
10
+ });
11
+ afterAll(async () => {
12
+ await api.destroy();
13
+ });
14
+ it('blake2s', async () => {
15
+ const input = Buffer.from('abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789');
16
+ const expected = new Uint8Array([
17
+ 0x44, 0xdd, 0xdb, 0x39, 0xbd, 0xb2, 0xaf, 0x80, 0xc1, 0x47, 0x89, 0x4c, 0x1d, 0x75, 0x6a, 0xda, 0x3d, 0x1c, 0x2a,
18
+ 0xc2, 0xb1, 0x00, 0x54, 0x1e, 0x04, 0xfe, 0x87, 0xb4, 0xa5, 0x9e, 0x12, 0x43,
19
+ ]);
20
+ const response = await api.blake2s({ data: input });
21
+ expect(response.hash).toEqual(expected);
22
+ });
23
+ it('blake2sToField', async () => {
24
+ const input = Buffer.from('abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789');
25
+ const expected = index_js_2.Fr.fromBufferReduce(new Uint8Array([
26
+ 0x44, 0xdd, 0xdb, 0x39, 0xbd, 0xb2, 0xaf, 0x80, 0xc1, 0x47, 0x89, 0x4c, 0x1d, 0x75, 0x6a, 0xda, 0x3d, 0x1c,
27
+ 0x2a, 0xc2, 0xb1, 0x00, 0x54, 0x1e, 0x04, 0xfe, 0x87, 0xb4, 0xa5, 0x9e, 0x12, 0x43,
28
+ ]));
29
+ const response = await api.blake2sToField({ data: input });
30
+ const result = index_js_2.Fr.fromBuffer(response.field);
31
+ expect(result).toEqual(expected);
32
+ });
33
+ });
34
+ describe('blake2s sync', () => {
35
+ let api;
36
+ beforeAll(async () => {
37
+ api = await index_js_1.BarretenbergSync.initSingleton();
38
+ });
39
+ it('blake2s', () => {
40
+ const input = Buffer.from('abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789');
41
+ const expected = new Uint8Array([
42
+ 0x44, 0xdd, 0xdb, 0x39, 0xbd, 0xb2, 0xaf, 0x80, 0xc1, 0x47, 0x89, 0x4c, 0x1d, 0x75, 0x6a, 0xda, 0x3d, 0x1c, 0x2a,
43
+ 0xc2, 0xb1, 0x00, 0x54, 0x1e, 0x04, 0xfe, 0x87, 0xb4, 0xa5, 0x9e, 0x12, 0x43,
44
+ ]);
45
+ const response = api.blake2s({ data: input });
46
+ expect(response.hash).toEqual(expected);
47
+ });
48
+ it('blake2sToField', () => {
49
+ const input = Buffer.from('abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789');
50
+ const expected = index_js_2.Fr.fromBufferReduce(new Uint8Array([
51
+ 0x44, 0xdd, 0xdb, 0x39, 0xbd, 0xb2, 0xaf, 0x80, 0xc1, 0x47, 0x89, 0x4c, 0x1d, 0x75, 0x6a, 0xda, 0x3d, 0x1c,
52
+ 0x2a, 0xc2, 0xb1, 0x00, 0x54, 0x1e, 0x04, 0xfe, 0x87, 0xb4, 0xa5, 0x9e, 0x12, 0x43,
53
+ ]));
54
+ const response = api.blake2sToField({ data: input });
55
+ const result = index_js_2.Fr.fromBuffer(response.field);
56
+ expect(result).toEqual(expected);
57
+ });
58
+ });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxha2Uycy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhcnJldGVuYmVyZy9ibGFrZTJzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FBeUU7QUFDekUsZ0RBQXVDO0FBRXZDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO0lBQzdCLElBQUksR0FBaUIsQ0FBQztJQUV0QixTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDbkIsc0VBQXNFO1FBQ3RFLEdBQUcsR0FBRyxNQUFNLHVCQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsc0JBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ2hGLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ2xCLE1BQU0sR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLFNBQVMsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN2QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLDBFQUEwRSxDQUFDLENBQUM7UUFDdEcsTUFBTSxRQUFRLEdBQUcsSUFBSSxVQUFVLENBQUM7WUFDOUIsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUNoSCxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJ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
@@ -0,0 +1,67 @@
1
+ import { AsyncApi } from '../cbind/generated/async.js';
2
+ import { SyncApi } from '../cbind/generated/sync.js';
3
+ import { IMsgpackBackendSync, IMsgpackBackendAsync } from '../bb_backends/interface.js';
4
+ import { BackendOptions } from '../bb_backends/index.js';
5
+ export { UltraHonkBackend, UltraHonkVerifierBackend, AztecClientBackend } from './backend.js';
6
+ export * from '../bb_backends/index.js';
7
+ export type CircuitOptions = {
8
+ /** @description Whether to produce SNARK friendly proofs */
9
+ recursive: boolean;
10
+ };
11
+ /**
12
+ * The main class library consumers interact with.
13
+ * It extends the generated api, and provides a static constructor "new" to compose components.
14
+ */
15
+ export declare class Barretenberg extends AsyncApi {
16
+ private options;
17
+ constructor(backend: IMsgpackBackendAsync, options: BackendOptions);
18
+ /**
19
+ * Constructs an instance of Barretenberg.
20
+ *
21
+ * If options.backend is set: uses that specific backend (throws if unavailable)
22
+ * If options.backend is unset: tries backends in order with fallback:
23
+ * 1. NativeSharedMemory (if bb binary available)
24
+ * 2. WasmWorker (in browser) or Wasm (in Node.js)
25
+ */
26
+ static new(options?: BackendOptions): Promise<Barretenberg>;
27
+ initSRSForCircuitSize(circuitSize: number): Promise<void>;
28
+ initSRSChonk(srsSize?: number): Promise<void>;
29
+ getDefaultSrsSize(): number;
30
+ acirGetCircuitSizes(bytecode: Uint8Array, recursive: boolean, honkRecursion: boolean): Promise<[number, number]>;
31
+ acirInitSRS(bytecode: Uint8Array, recursive: boolean, honkRecursion: boolean): Promise<void>;
32
+ destroy(): Promise<void>;
33
+ /**
34
+ * Initialize the singleton instance of Barretenberg.
35
+ * @param options Backend configuration options
36
+ */
37
+ static initSingleton(options?: BackendOptions): Promise<Barretenberg>;
38
+ static destroySingleton(): Promise<void>;
39
+ /**
40
+ * Get the singleton instance of Barretenberg.
41
+ * Must call initSingleton() first.
42
+ */
43
+ static getSingleton(): Barretenberg;
44
+ }
45
+ export declare class BarretenbergSync extends SyncApi {
46
+ constructor(backend: IMsgpackBackendSync);
47
+ /**
48
+ * Create a new BarretenbergSync instance.
49
+ *
50
+ * If options.backend is set: uses that specific backend (throws if unavailable)
51
+ * If options.backend is unset: tries backends in order with fallback:
52
+ * 1. NativeSharedMem (if bb binary + NAPI module available)
53
+ * 2. Wasm
54
+ *
55
+ * Supported backends: Wasm, NativeSharedMem
56
+ * Not supported: WasmWorker (no workers in sync), NativeUnixSocket (async only)
57
+ */
58
+ static new(options?: BackendOptions): Promise<BarretenbergSync>;
59
+ /**
60
+ * Initialize the singleton instance.
61
+ * @param options Backend configuration options
62
+ */
63
+ static initSingleton(options?: BackendOptions): Promise<BarretenbergSync>;
64
+ static destroySingleton(): void;
65
+ static getSingleton(): BarretenbergSync;
66
+ }
67
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/barretenberg/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EAAE,cAAc,EAAe,MAAM,yBAAyB,CAAC;AAGtE,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC9F,cAAc,yBAAyB,CAAC;AAExC,MAAM,MAAM,cAAc,GAAG;IAC3B,4DAA4D;IAC5D,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,qBAAa,YAAa,SAAQ,QAAQ;IACxC,OAAO,CAAC,OAAO,CAAiB;gBAEpB,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,cAAc;IAKlE;;;;;;;OAOG;WACU,GAAG,CAAC,OAAO,GAAE,cAAmB;IA0BvC,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzD,YAAY,CAAC,OAAO,SAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrE,iBAAiB,IAAI,MAAM;IASrB,mBAAmB,CACvB,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,OAAO,EAClB,aAAa,EAAE,OAAO,GACrB,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IActB,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5F,OAAO;IAIb;;;OAGG;WACU,aAAa,CAAC,OAAO,GAAE,cAAmB;WAe1C,gBAAgB;IAQ7B;;;OAGG;IACH,MAAM,CAAC,YAAY;CAMpB;AAQD,qBAAa,gBAAiB,SAAQ,OAAO;gBAC/B,OAAO,EAAE,mBAAmB;IAIxC;;;;;;;;;;OAUG;WACU,GAAG,CAAC,OAAO,GAAE,cAAmB;IAiB7C;;;OAGG;WACU,aAAa,CAAC,OAAO,GAAE,cAAmB;IASvD,MAAM,CAAC,gBAAgB;IAQvB,MAAM,CAAC,YAAY;CAMpB"}