@aztec/bb.js 0.0.1-alpha.7 → 0.0.1-fake-c83136db25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (811) hide show
  1. package/README.md +55 -84
  2. package/dest/browser/async_map/index.d.ts.map +1 -0
  3. package/dest/{async_map → browser/async_map}/index.js +1 -1
  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.map +1 -0
  44. package/dest/browser/barretenberg_wasm/fetch_code/index.js +2 -0
  45. package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts +13 -0
  46. package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -0
  47. package/dest/browser/barretenberg_wasm/helpers/browser/index.js +40 -0
  48. package/dest/browser/barretenberg_wasm/helpers/index.d.ts +2 -0
  49. package/dest/browser/barretenberg_wasm/helpers/index.d.ts.map +1 -0
  50. package/dest/browser/barretenberg_wasm/helpers/index.js +2 -0
  51. package/dest/browser/barretenberg_wasm/index.d.ts +5 -0
  52. package/dest/browser/barretenberg_wasm/index.d.ts.map +1 -0
  53. package/dest/browser/barretenberg_wasm/index.js +16 -0
  54. package/dest/browser/bb_backends/browser/index.d.ts +11 -0
  55. package/dest/browser/bb_backends/browser/index.d.ts.map +1 -0
  56. package/dest/browser/bb_backends/browser/index.js +39 -0
  57. package/dest/browser/bb_backends/index.d.ts +45 -0
  58. package/dest/browser/bb_backends/index.d.ts.map +1 -0
  59. package/dest/browser/bb_backends/index.js +15 -0
  60. package/dest/browser/bb_backends/interface.d.ts +33 -0
  61. package/dest/browser/bb_backends/interface.d.ts.map +1 -0
  62. package/dest/browser/bb_backends/interface.js +2 -0
  63. package/dest/browser/bb_backends/sync_to_async_adapter.d.ts +15 -0
  64. package/dest/browser/bb_backends/sync_to_async_adapter.d.ts.map +1 -0
  65. package/dest/browser/bb_backends/sync_to_async_adapter.js +20 -0
  66. package/dest/browser/bb_backends/wasm.d.ts +49 -0
  67. package/dest/browser/bb_backends/wasm.d.ts.map +1 -0
  68. package/dest/browser/bb_backends/wasm.js +83 -0
  69. package/dest/browser/bbapi_exception.d.ts +7 -0
  70. package/dest/browser/bbapi_exception.d.ts.map +1 -0
  71. package/dest/browser/bbapi_exception.js +14 -0
  72. package/dest/browser/bigint-array/index.d.ts +17 -0
  73. package/dest/browser/bigint-array/index.d.ts.map +1 -0
  74. package/dest/browser/bigint-array/index.js +37 -0
  75. package/dest/browser/cbind/generate.d.ts +5 -0
  76. package/dest/browser/cbind/generate.d.ts.map +1 -0
  77. package/dest/browser/cbind/generate.js +151 -0
  78. package/dest/browser/cbind/generated/api_types.d.ts +2051 -0
  79. package/dest/browser/cbind/generated/api_types.d.ts.map +1 -0
  80. package/dest/browser/cbind/generated/api_types.js +2747 -0
  81. package/dest/browser/cbind/generated/async.d.ts +62 -0
  82. package/dest/browser/cbind/generated/async.d.ts.map +1 -0
  83. package/dest/browser/cbind/generated/async.js +662 -0
  84. package/dest/browser/cbind/generated/curve_constants.d.ts +45 -0
  85. package/dest/browser/cbind/generated/curve_constants.d.ts.map +1 -0
  86. package/dest/browser/cbind/generated/curve_constants.js +45 -0
  87. package/dest/browser/cbind/generated/sync.d.ts +62 -0
  88. package/dest/browser/cbind/generated/sync.d.ts.map +1 -0
  89. package/dest/browser/cbind/generated/sync.js +609 -0
  90. package/dest/browser/cbind/schema_compiler.d.ts +68 -0
  91. package/dest/browser/cbind/schema_compiler.d.ts.map +1 -0
  92. package/dest/browser/cbind/schema_compiler.js +599 -0
  93. package/dest/{crs → browser/crs}/browser/cached_net_crs.d.ts +18 -0
  94. package/dest/browser/crs/browser/cached_net_crs.d.ts.map +1 -0
  95. package/dest/browser/crs/browser/cached_net_crs.js +90 -0
  96. package/dest/browser/crs/browser/index.d.ts +2 -0
  97. package/dest/browser/crs/browser/index.d.ts.map +1 -0
  98. package/dest/browser/crs/browser/index.js +2 -0
  99. package/dest/browser/crs/index.d.ts +2 -0
  100. package/dest/browser/crs/index.d.ts.map +1 -0
  101. package/dest/browser/crs/index.js +2 -0
  102. package/dest/browser/crs/net_crs.d.ts +85 -0
  103. package/dest/browser/crs/net_crs.d.ts.map +1 -0
  104. package/dest/browser/crs/net_crs.js +136 -0
  105. package/dest/browser/index.d.ts +8 -0
  106. package/dest/browser/index.d.ts.map +1 -0
  107. package/dest/browser/index.js +8 -0
  108. package/dest/browser/log/browser/index.d.ts +6 -0
  109. package/dest/browser/log/browser/index.d.ts.map +1 -0
  110. package/dest/browser/log/browser/index.js +28 -0
  111. package/dest/browser/log/index.d.ts +2 -0
  112. package/dest/browser/log/index.d.ts.map +1 -0
  113. package/dest/browser/log/index.js +2 -0
  114. package/dest/browser/log/types.d.ts +6 -0
  115. package/dest/browser/log/types.d.ts.map +1 -0
  116. package/dest/browser/log/types.js +2 -0
  117. package/dest/browser/proof/index.d.ts +21 -0
  118. package/dest/browser/proof/index.d.ts.map +1 -0
  119. package/dest/browser/proof/index.js +63 -0
  120. package/dest/browser/random/browser/index.d.ts +2 -0
  121. package/dest/browser/random/browser/index.d.ts.map +1 -0
  122. package/dest/browser/random/browser/index.js +31 -0
  123. package/dest/browser/random/index.d.ts +2 -0
  124. package/dest/browser/random/index.d.ts.map +1 -0
  125. package/dest/browser/random/index.js +2 -0
  126. package/dest/browser/retry/index.d.ts +26 -0
  127. package/dest/browser/retry/index.d.ts.map +1 -0
  128. package/dest/browser/retry/index.js +50 -0
  129. package/dest/browser/serialize/index.d.ts +2 -0
  130. package/dest/browser/serialize/index.d.ts.map +1 -0
  131. package/dest/browser/serialize/index.js +2 -0
  132. package/dest/browser/serialize/serialize.d.ts +18 -0
  133. package/dest/browser/serialize/serialize.d.ts.map +1 -0
  134. package/dest/browser/serialize/serialize.js +72 -0
  135. package/dest/browser/types/fields.d.ts +23 -0
  136. package/dest/browser/types/fields.d.ts.map +1 -0
  137. package/dest/browser/types/fields.js +61 -0
  138. package/dest/browser/types/index.d.ts +3 -0
  139. package/dest/browser/types/index.d.ts.map +1 -0
  140. package/dest/browser/types/index.js +3 -0
  141. package/dest/browser/types/point.d.ts +18 -0
  142. package/dest/browser/types/point.d.ts.map +1 -0
  143. package/dest/browser/types/point.js +28 -0
  144. package/dest/node/async_map/index.d.ts +10 -0
  145. package/dest/node/async_map/index.d.ts.map +1 -0
  146. package/dest/node/async_map/index.js +16 -0
  147. package/dest/node/barretenberg/__snapshots__/pedersen.test.js.snap +156 -0
  148. package/dest/node/barretenberg/__snapshots__/poseidon.test.js.snap +40 -0
  149. package/dest/node/barretenberg/backend.d.ts +75 -0
  150. package/dest/node/barretenberg/backend.d.ts.map +1 -0
  151. package/dest/node/barretenberg/backend.js +301 -0
  152. package/dest/node/barretenberg/blake2s.test.d.ts +2 -0
  153. package/dest/node/barretenberg/blake2s.test.d.ts.map +1 -0
  154. package/dest/node/barretenberg/blake2s.test.js +57 -0
  155. package/dest/node/barretenberg/index.d.ts +67 -0
  156. package/dest/node/barretenberg/index.d.ts.map +1 -0
  157. package/dest/node/barretenberg/index.js +191 -0
  158. package/dest/node/barretenberg/pedersen.test.d.ts +2 -0
  159. package/dest/node/barretenberg/pedersen.test.d.ts.map +1 -0
  160. package/dest/node/barretenberg/pedersen.test.js +62 -0
  161. package/dest/node/barretenberg/poseidon.bench.test.d.ts +2 -0
  162. package/dest/node/barretenberg/poseidon.bench.test.d.ts.map +1 -0
  163. package/dest/node/barretenberg/poseidon.bench.test.js +217 -0
  164. package/dest/node/barretenberg/poseidon.test.d.ts +2 -0
  165. package/dest/node/barretenberg/poseidon.test.d.ts.map +1 -0
  166. package/dest/node/barretenberg/poseidon.test.js +35 -0
  167. package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  168. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +45 -0
  169. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -0
  170. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.js +125 -0
  171. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +2 -0
  172. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -0
  173. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +11 -0
  174. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +2 -0
  175. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts.map +1 -0
  176. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +12 -0
  177. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +3 -0
  178. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -0
  179. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +21 -0
  180. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +2 -0
  181. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts.map +1 -0
  182. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +16 -0
  183. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +21 -0
  184. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -0
  185. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +70 -0
  186. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +53 -0
  187. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -0
  188. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +170 -0
  189. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +2 -0
  190. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -0
  191. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +11 -0
  192. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +2 -0
  193. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts.map +1 -0
  194. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +12 -0
  195. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +3 -0
  196. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -0
  197. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +21 -0
  198. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +2 -0
  199. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts.map +1 -0
  200. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +16 -0
  201. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +29 -0
  202. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -0
  203. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.js +40 -0
  204. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +3 -0
  205. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts.map +1 -0
  206. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +3 -0
  207. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +3 -0
  208. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts.map +1 -0
  209. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg.js +3 -0
  210. package/dest/node/barretenberg_wasm/fetch_code/browser/index.d.ts +2 -0
  211. package/dest/node/barretenberg_wasm/fetch_code/browser/index.d.ts.map +1 -0
  212. package/dest/node/barretenberg_wasm/fetch_code/browser/index.js +36 -0
  213. package/dest/node/barretenberg_wasm/fetch_code/index.d.ts +2 -0
  214. package/dest/node/barretenberg_wasm/fetch_code/index.d.ts.map +1 -0
  215. package/dest/node/barretenberg_wasm/fetch_code/index.js +2 -0
  216. package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts +2 -0
  217. package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts.map +1 -0
  218. package/dest/node/barretenberg_wasm/fetch_code/node/index.js +35 -0
  219. package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts +13 -0
  220. package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -0
  221. package/dest/node/barretenberg_wasm/helpers/browser/index.js +40 -0
  222. package/dest/node/barretenberg_wasm/helpers/index.d.ts +2 -0
  223. package/dest/node/barretenberg_wasm/helpers/index.d.ts.map +1 -0
  224. package/dest/node/barretenberg_wasm/helpers/index.js +2 -0
  225. package/dest/node/barretenberg_wasm/helpers/node/index.d.ts +22 -0
  226. package/dest/node/barretenberg_wasm/helpers/node/index.d.ts.map +1 -0
  227. package/dest/node/barretenberg_wasm/helpers/node/index.js +48 -0
  228. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts +8 -0
  229. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -0
  230. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.js +28 -0
  231. package/dest/node/barretenberg_wasm/index.d.ts +5 -0
  232. package/dest/node/barretenberg_wasm/index.d.ts.map +1 -0
  233. package/dest/node/barretenberg_wasm/index.js +16 -0
  234. package/dest/node/barretenberg_wasm/index.test.d.ts +2 -0
  235. package/dest/node/barretenberg_wasm/index.test.d.ts.map +1 -0
  236. package/dest/node/barretenberg_wasm/index.test.js +39 -0
  237. package/dest/node/bb_backends/browser/index.d.ts +11 -0
  238. package/dest/node/bb_backends/browser/index.d.ts.map +1 -0
  239. package/dest/node/bb_backends/browser/index.js +39 -0
  240. package/dest/node/bb_backends/index.d.ts +45 -0
  241. package/dest/node/bb_backends/index.d.ts.map +1 -0
  242. package/dest/node/bb_backends/index.js +15 -0
  243. package/dest/node/bb_backends/interface.d.ts +33 -0
  244. package/dest/node/bb_backends/interface.d.ts.map +1 -0
  245. package/dest/node/bb_backends/interface.js +2 -0
  246. package/dest/node/bb_backends/node/index.d.ts +11 -0
  247. package/dest/node/bb_backends/node/index.d.ts.map +1 -0
  248. package/dest/node/bb_backends/node/index.js +80 -0
  249. package/dest/node/bb_backends/node/native_pipe.d.ts +25 -0
  250. package/dest/node/bb_backends/node/native_pipe.d.ts.map +1 -0
  251. package/dest/node/bb_backends/node/native_pipe.js +113 -0
  252. package/dest/node/bb_backends/node/native_shm.d.ts +28 -0
  253. package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -0
  254. package/dest/node/bb_backends/node/native_shm.js +150 -0
  255. package/dest/node/bb_backends/node/native_socket.d.ts +34 -0
  256. package/dest/node/bb_backends/node/native_socket.d.ts.map +1 -0
  257. package/dest/node/bb_backends/node/native_socket.js +269 -0
  258. package/dest/node/bb_backends/node/platform.d.ts +27 -0
  259. package/dest/node/bb_backends/node/platform.d.ts.map +1 -0
  260. package/dest/node/bb_backends/node/platform.js +124 -0
  261. package/dest/node/bb_backends/sync_to_async_adapter.d.ts +15 -0
  262. package/dest/node/bb_backends/sync_to_async_adapter.d.ts.map +1 -0
  263. package/dest/node/bb_backends/sync_to_async_adapter.js +20 -0
  264. package/dest/node/bb_backends/wasm.d.ts +49 -0
  265. package/dest/node/bb_backends/wasm.d.ts.map +1 -0
  266. package/dest/node/bb_backends/wasm.js +83 -0
  267. package/dest/node/bbapi_exception.d.ts +7 -0
  268. package/dest/node/bbapi_exception.d.ts.map +1 -0
  269. package/dest/node/bbapi_exception.js +14 -0
  270. package/dest/node/benchmark/index.d.ts +3 -0
  271. package/dest/node/benchmark/index.d.ts.map +1 -0
  272. package/dest/node/benchmark/index.js +25 -0
  273. package/dest/node/benchmark/timer.d.ts +34 -0
  274. package/dest/node/benchmark/timer.d.ts.map +1 -0
  275. package/dest/node/benchmark/timer.js +41 -0
  276. package/dest/node/bigint-array/index.d.ts +17 -0
  277. package/dest/node/bigint-array/index.d.ts.map +1 -0
  278. package/dest/node/bigint-array/index.js +37 -0
  279. package/dest/node/cbind/generate.d.ts +5 -0
  280. package/dest/node/cbind/generate.d.ts.map +1 -0
  281. package/dest/node/cbind/generate.js +151 -0
  282. package/dest/node/cbind/generated/api_types.d.ts +2051 -0
  283. package/dest/node/cbind/generated/api_types.d.ts.map +1 -0
  284. package/dest/node/cbind/generated/api_types.js +2747 -0
  285. package/dest/node/cbind/generated/async.d.ts +62 -0
  286. package/dest/node/cbind/generated/async.d.ts.map +1 -0
  287. package/dest/node/cbind/generated/async.js +662 -0
  288. package/dest/node/cbind/generated/curve_constants.d.ts +45 -0
  289. package/dest/node/cbind/generated/curve_constants.d.ts.map +1 -0
  290. package/dest/node/cbind/generated/curve_constants.js +45 -0
  291. package/dest/node/cbind/generated/sync.d.ts +62 -0
  292. package/dest/node/cbind/generated/sync.d.ts.map +1 -0
  293. package/dest/node/cbind/generated/sync.js +609 -0
  294. package/dest/node/cbind/schema_compiler.d.ts +68 -0
  295. package/dest/node/cbind/schema_compiler.d.ts.map +1 -0
  296. package/dest/node/cbind/schema_compiler.js +599 -0
  297. package/dest/node/crs/browser/cached_net_crs.d.ts +43 -0
  298. package/dest/node/crs/browser/cached_net_crs.d.ts.map +1 -0
  299. package/dest/node/crs/browser/cached_net_crs.js +90 -0
  300. package/dest/node/crs/browser/index.d.ts +2 -0
  301. package/dest/node/crs/browser/index.d.ts.map +1 -0
  302. package/dest/node/crs/browser/index.js +2 -0
  303. package/dest/node/crs/index.d.ts +2 -0
  304. package/dest/node/crs/index.d.ts.map +1 -0
  305. package/dest/node/crs/index.js +2 -0
  306. package/dest/node/crs/net_crs.d.ts +85 -0
  307. package/dest/node/crs/net_crs.d.ts.map +1 -0
  308. package/dest/node/crs/net_crs.js +136 -0
  309. package/dest/node/crs/node/index.d.ts +38 -0
  310. package/dest/node/crs/node/index.d.ts.map +1 -0
  311. package/dest/node/crs/node/index.js +102 -0
  312. package/dest/node/index.d.ts +8 -0
  313. package/dest/node/index.d.ts.map +1 -0
  314. package/dest/node/index.js +8 -0
  315. package/dest/node/log/browser/index.d.ts +6 -0
  316. package/dest/node/log/browser/index.d.ts.map +1 -0
  317. package/dest/node/log/browser/index.js +28 -0
  318. package/dest/node/log/index.d.ts +2 -0
  319. package/dest/node/log/index.d.ts.map +1 -0
  320. package/dest/node/log/index.js +2 -0
  321. package/dest/node/log/node/index.d.ts +6 -0
  322. package/dest/node/log/node/index.d.ts.map +1 -0
  323. package/dest/node/log/node/index.js +40 -0
  324. package/dest/node/log/types.d.ts +6 -0
  325. package/dest/node/log/types.d.ts.map +1 -0
  326. package/dest/node/log/types.js +2 -0
  327. package/dest/node/proof/index.d.ts +21 -0
  328. package/dest/node/proof/index.d.ts.map +1 -0
  329. package/dest/node/proof/index.js +63 -0
  330. package/dest/node/random/browser/index.d.ts +2 -0
  331. package/dest/node/random/browser/index.d.ts.map +1 -0
  332. package/dest/node/random/browser/index.js +31 -0
  333. package/dest/node/random/index.d.ts +2 -0
  334. package/dest/node/random/index.d.ts.map +1 -0
  335. package/dest/{random → node/random}/index.js +1 -1
  336. package/dest/node/random/node/index.d.ts +2 -0
  337. package/dest/node/random/node/index.d.ts.map +1 -0
  338. package/dest/node/random/node/index.js +5 -0
  339. package/dest/node/retry/index.d.ts +26 -0
  340. package/dest/node/retry/index.d.ts.map +1 -0
  341. package/dest/node/retry/index.js +50 -0
  342. package/dest/node/serialize/index.d.ts +2 -0
  343. package/dest/node/serialize/index.d.ts.map +1 -0
  344. package/dest/node/serialize/index.js +2 -0
  345. package/dest/node/serialize/serialize.d.ts +18 -0
  346. package/dest/node/serialize/serialize.d.ts.map +1 -0
  347. package/dest/node/serialize/serialize.js +72 -0
  348. package/dest/node/types/fields.d.ts +23 -0
  349. package/dest/node/types/fields.d.ts.map +1 -0
  350. package/dest/node/types/fields.js +61 -0
  351. package/dest/node/types/index.d.ts +3 -0
  352. package/dest/node/types/index.d.ts.map +1 -0
  353. package/dest/node/types/index.js +3 -0
  354. package/dest/node/types/point.d.ts +18 -0
  355. package/dest/node/types/point.d.ts.map +1 -0
  356. package/dest/node/types/point.js +28 -0
  357. package/dest/node-cjs/async_map/index.d.ts +10 -0
  358. package/dest/node-cjs/async_map/index.d.ts.map +1 -0
  359. package/dest/node-cjs/async_map/index.js +19 -0
  360. package/dest/node-cjs/barretenberg/backend.d.ts +75 -0
  361. package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -0
  362. package/dest/node-cjs/barretenberg/backend.js +308 -0
  363. package/dest/node-cjs/barretenberg/blake2s.test.d.ts.map +1 -0
  364. package/dest/node-cjs/barretenberg/blake2s.test.js +59 -0
  365. package/dest/node-cjs/barretenberg/index.d.ts +67 -0
  366. package/dest/node-cjs/barretenberg/index.d.ts.map +1 -0
  367. package/dest/node-cjs/barretenberg/index.js +200 -0
  368. package/dest/node-cjs/barretenberg/pedersen.test.d.ts.map +1 -0
  369. package/dest/node-cjs/barretenberg/pedersen.test.js +64 -0
  370. package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts +2 -0
  371. package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts.map +1 -0
  372. package/dest/node-cjs/barretenberg/poseidon.bench.test.js +219 -0
  373. package/dest/node-cjs/barretenberg/poseidon.test.d.ts +2 -0
  374. package/dest/node-cjs/barretenberg/poseidon.test.d.ts.map +1 -0
  375. package/dest/node-cjs/barretenberg/poseidon.test.js +37 -0
  376. package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  377. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +45 -0
  378. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -0
  379. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.js +129 -0
  380. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +2 -0
  381. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -0
  382. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +14 -0
  383. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +2 -0
  384. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts.map +1 -0
  385. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +14 -0
  386. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +3 -0
  387. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -0
  388. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +24 -0
  389. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +2 -0
  390. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts.map +1 -0
  391. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +18 -0
  392. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +21 -0
  393. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -0
  394. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +74 -0
  395. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +53 -0
  396. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -0
  397. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +174 -0
  398. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +2 -0
  399. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -0
  400. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +14 -0
  401. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +2 -0
  402. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts.map +1 -0
  403. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +14 -0
  404. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +3 -0
  405. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -0
  406. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +24 -0
  407. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +2 -0
  408. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts.map +1 -0
  409. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +18 -0
  410. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +29 -0
  411. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -0
  412. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.js +44 -0
  413. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +3 -0
  414. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts.map +1 -0
  415. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +6 -0
  416. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +3 -0
  417. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts.map +1 -0
  418. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.js +6 -0
  419. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts +2 -0
  420. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts.map +1 -0
  421. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.js +40 -0
  422. package/dest/node-cjs/barretenberg_wasm/fetch_code/index.d.ts +2 -0
  423. package/dest/node-cjs/barretenberg_wasm/fetch_code/index.d.ts.map +1 -0
  424. package/dest/node-cjs/barretenberg_wasm/fetch_code/index.js +5 -0
  425. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts +2 -0
  426. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts.map +1 -0
  427. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.js +39 -0
  428. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts +13 -0
  429. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -0
  430. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.js +50 -0
  431. package/dest/node-cjs/barretenberg_wasm/helpers/index.d.ts +2 -0
  432. package/dest/node-cjs/barretenberg_wasm/helpers/index.d.ts.map +1 -0
  433. package/dest/node-cjs/barretenberg_wasm/helpers/index.js +5 -0
  434. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts +22 -0
  435. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts.map +1 -0
  436. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.js +57 -0
  437. package/dest/{barretenberg_wasm → node-cjs/barretenberg_wasm/helpers}/node/node_endpoint.d.ts +1 -1
  438. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -0
  439. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.js +31 -0
  440. package/dest/node-cjs/barretenberg_wasm/index.d.ts +5 -0
  441. package/dest/node-cjs/barretenberg_wasm/index.d.ts.map +1 -0
  442. package/dest/node-cjs/barretenberg_wasm/index.js +19 -0
  443. package/dest/node-cjs/barretenberg_wasm/index.test.d.ts +2 -0
  444. package/dest/node-cjs/barretenberg_wasm/index.test.d.ts.map +1 -0
  445. package/dest/node-cjs/barretenberg_wasm/index.test.js +41 -0
  446. package/dest/node-cjs/bb_backends/browser/index.d.ts +11 -0
  447. package/dest/node-cjs/bb_backends/browser/index.d.ts.map +1 -0
  448. package/dest/node-cjs/bb_backends/browser/index.js +43 -0
  449. package/dest/node-cjs/bb_backends/index.d.ts +45 -0
  450. package/dest/node-cjs/bb_backends/index.d.ts.map +1 -0
  451. package/dest/node-cjs/bb_backends/index.js +18 -0
  452. package/dest/node-cjs/bb_backends/interface.d.ts +33 -0
  453. package/dest/node-cjs/bb_backends/interface.d.ts.map +1 -0
  454. package/dest/node-cjs/bb_backends/interface.js +3 -0
  455. package/dest/node-cjs/bb_backends/node/index.d.ts +11 -0
  456. package/dest/node-cjs/bb_backends/node/index.d.ts.map +1 -0
  457. package/dest/node-cjs/bb_backends/node/index.js +84 -0
  458. package/dest/node-cjs/bb_backends/node/native_pipe.d.ts +25 -0
  459. package/dest/node-cjs/bb_backends/node/native_pipe.d.ts.map +1 -0
  460. package/dest/node-cjs/bb_backends/node/native_pipe.js +117 -0
  461. package/dest/node-cjs/bb_backends/node/native_shm.d.ts +28 -0
  462. package/dest/node-cjs/bb_backends/node/native_shm.d.ts.map +1 -0
  463. package/dest/node-cjs/bb_backends/node/native_shm.js +154 -0
  464. package/dest/node-cjs/bb_backends/node/native_socket.d.ts +34 -0
  465. package/dest/node-cjs/bb_backends/node/native_socket.d.ts.map +1 -0
  466. package/dest/node-cjs/bb_backends/node/native_socket.js +274 -0
  467. package/dest/node-cjs/bb_backends/node/platform.d.ts +27 -0
  468. package/dest/node-cjs/bb_backends/node/platform.d.ts.map +1 -0
  469. package/dest/node-cjs/bb_backends/node/platform.js +131 -0
  470. package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts +15 -0
  471. package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts.map +1 -0
  472. package/dest/node-cjs/bb_backends/sync_to_async_adapter.js +24 -0
  473. package/dest/node-cjs/bb_backends/wasm.d.ts +49 -0
  474. package/dest/node-cjs/bb_backends/wasm.d.ts.map +1 -0
  475. package/dest/node-cjs/bb_backends/wasm.js +88 -0
  476. package/dest/node-cjs/bbapi_exception.d.ts +7 -0
  477. package/dest/node-cjs/bbapi_exception.d.ts.map +1 -0
  478. package/dest/node-cjs/bbapi_exception.js +18 -0
  479. package/dest/node-cjs/benchmark/index.d.ts +3 -0
  480. package/dest/node-cjs/benchmark/index.d.ts.map +1 -0
  481. package/dest/node-cjs/benchmark/index.js +29 -0
  482. package/dest/node-cjs/benchmark/timer.d.ts +34 -0
  483. package/dest/node-cjs/benchmark/timer.d.ts.map +1 -0
  484. package/dest/node-cjs/benchmark/timer.js +45 -0
  485. package/dest/node-cjs/bigint-array/index.d.ts +17 -0
  486. package/dest/node-cjs/bigint-array/index.d.ts.map +1 -0
  487. package/dest/node-cjs/bigint-array/index.js +43 -0
  488. package/dest/node-cjs/cbind/generate.d.ts +5 -0
  489. package/dest/node-cjs/cbind/generate.d.ts.map +1 -0
  490. package/dest/node-cjs/cbind/generate.js +153 -0
  491. package/dest/node-cjs/cbind/generated/api_types.d.ts +2051 -0
  492. package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -0
  493. package/dest/node-cjs/cbind/generated/api_types.js +2989 -0
  494. package/dest/node-cjs/cbind/generated/async.d.ts +62 -0
  495. package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -0
  496. package/dest/node-cjs/cbind/generated/async.js +666 -0
  497. package/dest/node-cjs/cbind/generated/curve_constants.d.ts +45 -0
  498. package/dest/node-cjs/cbind/generated/curve_constants.d.ts.map +1 -0
  499. package/dest/node-cjs/cbind/generated/curve_constants.js +48 -0
  500. package/dest/node-cjs/cbind/generated/sync.d.ts +62 -0
  501. package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -0
  502. package/dest/node-cjs/cbind/generated/sync.js +613 -0
  503. package/dest/node-cjs/cbind/schema_compiler.d.ts +68 -0
  504. package/dest/node-cjs/cbind/schema_compiler.d.ts.map +1 -0
  505. package/dest/node-cjs/cbind/schema_compiler.js +606 -0
  506. package/dest/node-cjs/crs/browser/cached_net_crs.d.ts +43 -0
  507. package/dest/node-cjs/crs/browser/cached_net_crs.d.ts.map +1 -0
  508. package/dest/node-cjs/crs/browser/cached_net_crs.js +95 -0
  509. package/dest/node-cjs/crs/browser/index.d.ts +2 -0
  510. package/dest/node-cjs/crs/browser/index.d.ts.map +1 -0
  511. package/dest/node-cjs/crs/browser/index.js +7 -0
  512. package/dest/node-cjs/crs/index.d.ts +2 -0
  513. package/dest/node-cjs/crs/index.d.ts.map +1 -0
  514. package/dest/node-cjs/crs/index.js +7 -0
  515. package/dest/node-cjs/crs/net_crs.d.ts +85 -0
  516. package/dest/node-cjs/crs/net_crs.d.ts.map +1 -0
  517. package/dest/node-cjs/crs/net_crs.js +141 -0
  518. package/dest/node-cjs/crs/node/index.d.ts +38 -0
  519. package/dest/node-cjs/crs/node/index.d.ts.map +1 -0
  520. package/dest/node-cjs/crs/node/index.js +107 -0
  521. package/dest/node-cjs/index.d.ts +8 -0
  522. package/dest/node-cjs/index.d.ts.map +1 -0
  523. package/dest/node-cjs/index.js +37 -0
  524. package/dest/node-cjs/log/browser/index.d.ts +6 -0
  525. package/dest/node-cjs/log/browser/index.d.ts.map +1 -0
  526. package/dest/node-cjs/log/browser/index.js +30 -0
  527. package/dest/node-cjs/log/index.d.ts +2 -0
  528. package/dest/node-cjs/log/index.d.ts.map +1 -0
  529. package/dest/node-cjs/log/index.js +8 -0
  530. package/dest/node-cjs/log/node/index.d.ts +6 -0
  531. package/dest/node-cjs/log/node/index.d.ts.map +1 -0
  532. package/dest/node-cjs/log/node/index.js +42 -0
  533. package/dest/node-cjs/log/types.d.ts +6 -0
  534. package/dest/node-cjs/log/types.d.ts.map +1 -0
  535. package/dest/node-cjs/log/types.js +3 -0
  536. package/dest/node-cjs/package.json +3 -0
  537. package/dest/node-cjs/proof/index.d.ts +21 -0
  538. package/dest/node-cjs/proof/index.d.ts.map +1 -0
  539. package/dest/node-cjs/proof/index.js +72 -0
  540. package/dest/node-cjs/random/browser/index.d.ts +2 -0
  541. package/dest/node-cjs/random/browser/index.d.ts.map +1 -0
  542. package/dest/node-cjs/random/browser/index.js +35 -0
  543. package/dest/node-cjs/random/index.d.ts +2 -0
  544. package/dest/node-cjs/random/index.d.ts.map +1 -0
  545. package/dest/node-cjs/random/index.js +5 -0
  546. package/dest/node-cjs/random/node/index.d.ts +2 -0
  547. package/dest/node-cjs/random/node/index.d.ts.map +1 -0
  548. package/dest/node-cjs/random/node/index.js +8 -0
  549. package/dest/node-cjs/retry/index.d.ts +26 -0
  550. package/dest/node-cjs/retry/index.d.ts.map +1 -0
  551. package/dest/node-cjs/retry/index.js +55 -0
  552. package/dest/node-cjs/serialize/index.d.ts +2 -0
  553. package/dest/node-cjs/serialize/index.d.ts.map +1 -0
  554. package/dest/node-cjs/serialize/index.js +5 -0
  555. package/dest/node-cjs/serialize/serialize.d.ts +18 -0
  556. package/dest/node-cjs/serialize/serialize.d.ts.map +1 -0
  557. package/dest/node-cjs/serialize/serialize.js +82 -0
  558. package/dest/node-cjs/types/fields.d.ts +23 -0
  559. package/dest/node-cjs/types/fields.d.ts.map +1 -0
  560. package/dest/node-cjs/types/fields.js +65 -0
  561. package/dest/node-cjs/types/index.d.ts +3 -0
  562. package/dest/node-cjs/types/index.d.ts.map +1 -0
  563. package/dest/node-cjs/types/index.js +6 -0
  564. package/dest/node-cjs/types/point.d.ts +18 -0
  565. package/dest/node-cjs/types/point.d.ts.map +1 -0
  566. package/dest/node-cjs/types/point.js +32 -0
  567. package/package.json +57 -46
  568. package/src/barretenberg/__snapshots__/pedersen.test.ts.snap +156 -0
  569. package/src/barretenberg/__snapshots__/poseidon.test.ts.snap +40 -0
  570. package/src/barretenberg/backend.ts +390 -0
  571. package/src/barretenberg/blake2s.test.ts +69 -0
  572. package/src/barretenberg/index.ts +223 -0
  573. package/src/barretenberg/pedersen.test.ts +69 -0
  574. package/src/barretenberg/poseidon.bench.test.ts +268 -0
  575. package/src/barretenberg/poseidon.test.ts +39 -0
  576. package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +138 -0
  577. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.ts +11 -0
  578. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.ts +13 -0
  579. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts +21 -0
  580. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.ts +19 -0
  581. package/src/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.ts +72 -0
  582. package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +218 -0
  583. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.ts +11 -0
  584. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.ts +13 -0
  585. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts +21 -0
  586. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.ts +19 -0
  587. package/src/barretenberg_wasm/barretenberg_wasm_thread/index.ts +47 -0
  588. package/src/barretenberg_wasm/fetch_code/browser/barretenberg-threads.ts +3 -0
  589. package/src/barretenberg_wasm/fetch_code/browser/barretenberg.ts +3 -0
  590. package/src/barretenberg_wasm/fetch_code/browser/index.ts +34 -0
  591. package/src/barretenberg_wasm/fetch_code/index.ts +1 -0
  592. package/src/barretenberg_wasm/fetch_code/node/index.ts +34 -0
  593. package/src/barretenberg_wasm/fetch_code/wasm-module.d.ts +4 -0
  594. package/src/barretenberg_wasm/helpers/browser/index.ts +47 -0
  595. package/src/barretenberg_wasm/helpers/index.ts +1 -0
  596. package/src/barretenberg_wasm/{node → helpers/node}/index.ts +24 -15
  597. package/src/barretenberg_wasm/index.test.ts +46 -0
  598. package/src/barretenberg_wasm/index.ts +22 -1
  599. package/src/bb_backends/browser/index.ts +50 -0
  600. package/src/bb_backends/index.ts +49 -0
  601. package/src/bb_backends/interface.ts +35 -0
  602. package/src/bb_backends/node/index.ts +94 -0
  603. package/src/bb_backends/node/native_pipe.ts +127 -0
  604. package/src/bb_backends/node/native_shm.ts +171 -0
  605. package/src/bb_backends/node/native_socket.ts +312 -0
  606. package/src/bb_backends/node/platform.ts +151 -0
  607. package/src/bb_backends/sync_to_async_adapter.ts +21 -0
  608. package/src/bb_backends/wasm.ts +103 -0
  609. package/src/bbapi_exception.ts +13 -0
  610. package/src/benchmark/index.ts +26 -0
  611. package/src/benchmark/timer.ts +45 -0
  612. package/src/bigint-array/index.ts +39 -17
  613. package/src/cbind/README.md +1 -0
  614. package/src/cbind/generate.ts +182 -0
  615. package/src/cbind/schema_compiler.ts +745 -0
  616. package/src/crs/browser/cached_net_crs.ts +41 -1
  617. package/src/crs/browser/index.ts +1 -1
  618. package/src/crs/index.ts +1 -1
  619. package/src/crs/net_crs.ts +114 -19
  620. package/src/crs/node/index.ts +96 -26
  621. package/src/index.html +1 -1
  622. package/src/index.ts +41 -5
  623. package/src/log/browser/index.ts +35 -0
  624. package/src/log/index.ts +1 -0
  625. package/src/log/node/index.ts +52 -0
  626. package/src/log/types.ts +6 -0
  627. package/src/proof/index.ts +94 -0
  628. package/src/random/browser/index.ts +1 -1
  629. package/src/retry/index.ts +50 -0
  630. package/src/serialize/index.ts +0 -2
  631. package/src/serialize/serialize.ts +0 -82
  632. package/src/types/fields.ts +44 -65
  633. package/src/types/index.ts +0 -3
  634. package/src/types/point.ts +17 -20
  635. package/dest/async_map/index.d.ts.map +0 -1
  636. package/dest/barretenberg-threads.wasm +0 -0
  637. package/dest/barretenberg.wasm +0 -0
  638. package/dest/barretenberg_api/blake2s.test.d.ts.map +0 -1
  639. package/dest/barretenberg_api/blake2s.test.js +0 -30
  640. package/dest/barretenberg_api/common.test.d.ts +0 -2
  641. package/dest/barretenberg_api/common.test.d.ts.map +0 -1
  642. package/dest/barretenberg_api/common.test.js +0 -18
  643. package/dest/barretenberg_api/index.d.ts +0 -103
  644. package/dest/barretenberg_api/index.d.ts.map +0 -1
  645. package/dest/barretenberg_api/index.js +0 -379
  646. package/dest/barretenberg_api/pedersen.test.d.ts.map +0 -1
  647. package/dest/barretenberg_api/pedersen.test.js +0 -69
  648. package/dest/barretenberg_api/schnorr.test.d.ts +0 -2
  649. package/dest/barretenberg_api/schnorr.test.d.ts.map +0 -1
  650. package/dest/barretenberg_api/schnorr.test.js +0 -113
  651. package/dest/barretenberg_binder/heap_allocator.d.ts +0 -22
  652. package/dest/barretenberg_binder/heap_allocator.d.ts.map +0 -1
  653. package/dest/barretenberg_binder/heap_allocator.js +0 -59
  654. package/dest/barretenberg_binder/heap_allocator_sync.d.ts +0 -22
  655. package/dest/barretenberg_binder/heap_allocator_sync.d.ts.map +0 -1
  656. package/dest/barretenberg_binder/heap_allocator_sync.js +0 -58
  657. package/dest/barretenberg_binder/index.d.ts +0 -32
  658. package/dest/barretenberg_binder/index.d.ts.map +0 -1
  659. package/dest/barretenberg_binder/index.js +0 -73
  660. package/dest/barretenberg_wasm/barretenberg_wasm.d.ts +0 -50
  661. package/dest/barretenberg_wasm/barretenberg_wasm.d.ts.map +0 -1
  662. package/dest/barretenberg_wasm/barretenberg_wasm.js +0 -212
  663. package/dest/barretenberg_wasm/barretenberg_wasm.test.d.ts +0 -2
  664. package/dest/barretenberg_wasm/barretenberg_wasm.test.d.ts.map +0 -1
  665. package/dest/barretenberg_wasm/barretenberg_wasm.test.js +0 -43
  666. package/dest/barretenberg_wasm/browser/index.d.ts +0 -8
  667. package/dest/barretenberg_wasm/browser/index.d.ts.map +0 -1
  668. package/dest/barretenberg_wasm/browser/index.js +0 -26
  669. package/dest/barretenberg_wasm/browser/worker.d.ts +0 -2
  670. package/dest/barretenberg_wasm/browser/worker.d.ts.map +0 -1
  671. package/dest/barretenberg_wasm/browser/worker.js +0 -11
  672. package/dest/barretenberg_wasm/index.d.ts +0 -2
  673. package/dest/barretenberg_wasm/index.d.ts.map +0 -1
  674. package/dest/barretenberg_wasm/index.js +0 -2
  675. package/dest/barretenberg_wasm/node/index.d.ts +0 -17
  676. package/dest/barretenberg_wasm/node/index.d.ts.map +0 -1
  677. package/dest/barretenberg_wasm/node/index.js +0 -40
  678. package/dest/barretenberg_wasm/node/node_endpoint.d.ts.map +0 -1
  679. package/dest/barretenberg_wasm/node/node_endpoint.js +0 -28
  680. package/dest/barretenberg_wasm/node/worker.d.ts +0 -2
  681. package/dest/barretenberg_wasm/node/worker.d.ts.map +0 -1
  682. package/dest/barretenberg_wasm/node/worker.js +0 -9
  683. package/dest/barretenberg_wasm.js +0 -2
  684. package/dest/barretenberg_wasm.js.LICENSE.txt +0 -5
  685. package/dest/bigint-array/index.d.ts +0 -3
  686. package/dest/bigint-array/index.d.ts.map +0 -1
  687. package/dest/bigint-array/index.js +0 -21
  688. package/dest/bindgen/function_declaration.d.ts +0 -11
  689. package/dest/bindgen/function_declaration.d.ts.map +0 -1
  690. package/dest/bindgen/function_declaration.js +0 -2
  691. package/dest/bindgen/index.d.ts +0 -2
  692. package/dest/bindgen/index.d.ts.map +0 -1
  693. package/dest/bindgen/index.js +0 -15
  694. package/dest/bindgen/mappings.d.ts +0 -4
  695. package/dest/bindgen/mappings.d.ts.map +0 -1
  696. package/dest/bindgen/mappings.js +0 -63
  697. package/dest/bindgen/rust.d.ts +0 -2
  698. package/dest/bindgen/rust.d.ts.map +0 -1
  699. package/dest/bindgen/rust.js +0 -43
  700. package/dest/bindgen/to_camel_case.d.ts +0 -2
  701. package/dest/bindgen/to_camel_case.d.ts.map +0 -1
  702. package/dest/bindgen/to_camel_case.js +0 -11
  703. package/dest/bindgen/typescript.d.ts +0 -2
  704. package/dest/bindgen/typescript.d.ts.map +0 -1
  705. package/dest/bindgen/typescript.js +0 -80
  706. package/dest/crs/browser/cached_net_crs.d.ts.map +0 -1
  707. package/dest/crs/browser/cached_net_crs.js +0 -54
  708. package/dest/crs/browser/index.d.ts +0 -2
  709. package/dest/crs/browser/index.d.ts.map +0 -1
  710. package/dest/crs/browser/index.js +0 -2
  711. package/dest/crs/index.d.ts +0 -2
  712. package/dest/crs/index.d.ts.map +0 -1
  713. package/dest/crs/index.js +0 -2
  714. package/dest/crs/net_crs.d.ts +0 -36
  715. package/dest/crs/net_crs.d.ts.map +0 -1
  716. package/dest/crs/net_crs.js +0 -59
  717. package/dest/crs/node/ignition_files_crs.d.ts +0 -37
  718. package/dest/crs/node/ignition_files_crs.d.ts.map +0 -1
  719. package/dest/crs/node/ignition_files_crs.js +0 -51
  720. package/dest/crs/node/index.d.ts +0 -21
  721. package/dest/crs/node/index.d.ts.map +0 -1
  722. package/dest/crs/node/index.js +0 -54
  723. package/dest/examples/simple.rawtest.d.ts +0 -2
  724. package/dest/examples/simple.rawtest.d.ts.map +0 -1
  725. package/dest/examples/simple.rawtest.js +0 -29
  726. package/dest/examples/simple.test.d.ts +0 -2
  727. package/dest/examples/simple.test.d.ts.map +0 -1
  728. package/dest/examples/simple.test.js +0 -22
  729. package/dest/factory/index.d.ts +0 -21
  730. package/dest/factory/index.d.ts.map +0 -1
  731. package/dest/factory/index.js +0 -34
  732. package/dest/index.d.ts +0 -6
  733. package/dest/index.d.ts.map +0 -1
  734. package/dest/index.html +0 -1
  735. package/dest/index.js +0 -6
  736. package/dest/main.d.ts +0 -10
  737. package/dest/main.d.ts.map +0 -1
  738. package/dest/main.js +0 -275
  739. package/dest/random/browser/index.d.ts +0 -2
  740. package/dest/random/browser/index.d.ts.map +0 -1
  741. package/dest/random/browser/index.js +0 -31
  742. package/dest/random/index.d.ts.map +0 -1
  743. package/dest/random/node/index.d.ts +0 -2
  744. package/dest/random/node/index.d.ts.map +0 -1
  745. package/dest/random/node/index.js +0 -5
  746. package/dest/serialize/buffer_reader.d.ts +0 -28
  747. package/dest/serialize/buffer_reader.d.ts.map +0 -1
  748. package/dest/serialize/buffer_reader.js +0 -66
  749. package/dest/serialize/index.d.ts +0 -4
  750. package/dest/serialize/index.d.ts.map +0 -1
  751. package/dest/serialize/index.js +0 -4
  752. package/dest/serialize/output_type.d.ts +0 -11
  753. package/dest/serialize/output_type.d.ts.map +0 -1
  754. package/dest/serialize/output_type.js +0 -44
  755. package/dest/serialize/serialize.d.ts +0 -53
  756. package/dest/serialize/serialize.d.ts.map +0 -1
  757. package/dest/serialize/serialize.js +0 -139
  758. package/dest/simple_test.js +0 -2
  759. package/dest/simple_test.js.LICENSE.txt +0 -14
  760. package/dest/types/fields.d.ts +0 -33
  761. package/dest/types/fields.d.ts.map +0 -1
  762. package/dest/types/fields.js +0 -86
  763. package/dest/types/fixed_size_buffer.d.ts +0 -26
  764. package/dest/types/fixed_size_buffer.d.ts.map +0 -1
  765. package/dest/types/fixed_size_buffer.js +0 -54
  766. package/dest/types/index.d.ts +0 -6
  767. package/dest/types/index.d.ts.map +0 -1
  768. package/dest/types/index.js +0 -6
  769. package/dest/types/point.d.ts +0 -17
  770. package/dest/types/point.d.ts.map +0 -1
  771. package/dest/types/point.js +0 -32
  772. package/dest/types/ptr.d.ts +0 -13
  773. package/dest/types/ptr.d.ts.map +0 -1
  774. package/dest/types/ptr.js +0 -20
  775. package/dest/types/raw_buffer.d.ts +0 -3
  776. package/dest/types/raw_buffer.d.ts.map +0 -1
  777. package/dest/types/raw_buffer.js +0 -5
  778. package/src/barretenberg_api/blake2s.test.ts +0 -39
  779. package/src/barretenberg_api/common.test.ts +0 -21
  780. package/src/barretenberg_api/index.ts +0 -649
  781. package/src/barretenberg_api/pedersen.test.ts +0 -84
  782. package/src/barretenberg_api/schnorr.test.ts +0 -169
  783. package/src/barretenberg_binder/heap_allocator.ts +0 -62
  784. package/src/barretenberg_binder/heap_allocator_sync.ts +0 -61
  785. package/src/barretenberg_binder/index.ts +0 -76
  786. package/src/barretenberg_wasm/barretenberg_wasm.test.ts +0 -52
  787. package/src/barretenberg_wasm/barretenberg_wasm.ts +0 -246
  788. package/src/barretenberg_wasm/browser/index.ts +0 -32
  789. package/src/barretenberg_wasm/browser/worker.ts +0 -13
  790. package/src/barretenberg_wasm/node/worker.ts +0 -10
  791. package/src/bindgen/function_declaration.ts +0 -11
  792. package/src/bindgen/index.ts +0 -17
  793. package/src/bindgen/mappings.ts +0 -66
  794. package/src/bindgen/rust.ts +0 -52
  795. package/src/bindgen/to_camel_case.ts +0 -10
  796. package/src/bindgen/typescript.ts +0 -91
  797. package/src/crs/node/ignition_files_crs.ts +0 -60
  798. package/src/examples/simple.rawtest.ts +0 -37
  799. package/src/examples/simple.test.ts +0 -27
  800. package/src/factory/index.ts +0 -36
  801. package/src/main.ts +0 -311
  802. package/src/serialize/buffer_reader.ts +0 -82
  803. package/src/serialize/output_type.ts +0 -53
  804. package/src/types/fixed_size_buffer.ts +0 -59
  805. package/src/types/ptr.ts +0 -20
  806. package/src/types/raw_buffer.ts +0 -3
  807. /package/dest/{async_map → browser/async_map}/index.d.ts +0 -0
  808. /package/dest/{random → browser/barretenberg_wasm/fetch_code}/index.d.ts +0 -0
  809. /package/dest/{barretenberg_api → node-cjs/barretenberg}/blake2s.test.d.ts +0 -0
  810. /package/dest/{barretenberg_api → node-cjs/barretenberg}/pedersen.test.d.ts +0 -0
  811. /package/src/barretenberg_wasm/{node → helpers/node}/node_endpoint.ts +0 -0
package/README.md CHANGED
@@ -1,120 +1,91 @@
1
1
  # bb.js
2
2
 
3
- Prover/verifier executable and API for barretenberg. Default cli arguments are appropriate for running within Noir
4
- project structures.
3
+ Prover/verifier library for barretenberg. It bundles support for the following:
5
4
 
6
- ## Performance and limitations
5
+ - x86_64 on linux.
6
+ - aarch64 on linux.
7
+ - x86_64 on macos.
8
+ - aarch64 on macos.
9
+ - Single-threaded WASM.
10
+ - Multi-threaded WASM.
7
11
 
8
- Max circuit size is 2^19 gates (524,288). This is due to the underlying WASM 4GB memory limit. This should improve
9
- with future proving systems, and/or introduction of wasm64.
10
-
11
- If running from terminal, or within browser where you can set shared memory COOP/COEP headers, multithreading is enabled.
12
- Note there are two independent WASM builds, one with threading enabled and one without. This is because the shared
13
- memory flag is set within the WASM itself. If you're running in a context where you can't have shared memory, we want
14
- to fallback to single threaded performance.
15
-
16
- Performance for 2^19 (small witness generation phase):
17
-
18
- - 16 core (not hyperthreads) x86: ~13s.
19
- - 10 core M1 Mac Pro: ~18s.
20
-
21
- Linear scaling was observed up to 32 cores.
22
-
23
- Witness generation phase is not multithreaded, and an interesting 512k circuit can take ~12s. This results in:
24
-
25
- - 16 core (not hyperthreads) x86: ~26s.
26
- - 10 core M1 Mac Pro: (TBD)
27
-
28
- ## Using as a standalone binary
29
-
30
- ### Installing
31
-
32
- To install the package globally for running as a terminal application:
33
-
34
- ```
35
- npm install -g @aztec/bb.js@alpha
36
- ```
37
-
38
- This will install `bb.js` into your path.
39
-
40
- ### Usage
41
-
42
- Run `bb.js` for further usage information, you'll see e.g.
43
-
44
- ```
45
- % bb.js
46
- Usage: bb.js [options] [command]
47
-
48
- Options:
49
- -v, --verbose enable verbose logging (default: false)
50
- -h, --help display help for command
51
-
52
- Commands:
53
- prove_and_verify [options] Generate a proof and verify it. Process exits with success or failure code.
54
- prove [options] Generate a proof and write it to a file.
55
- gates [options] Print gate count to standard output.
56
- verify [options] Verify a proof. Process exists with success or failure code.
57
- contract [options] Output solidity verification key contract.
58
- write_vk [options] Output verification key.
59
- proof_as_fields [options] Return the proof as fields elements
60
- vk_as_fields [options] Return the verifiation key represented as fields elements. Also return the verification key hash.
61
- help [command] display help for command
62
- ```
63
-
64
- ## Using as a library
12
+ If running within node.js on a support os/architecture we will use appropriate native code.
13
+ If running within node.js on an unsupported architecture we will fallback to multi-threaded WASM.
14
+ If running within the browser and served without COOP/COEP headers, we use the single-threaded WASM.
15
+ If running within the browser served with COOP/COEP headers, we use the multi-threaded WASM.
65
16
 
66
17
  ### Installing
67
18
 
68
- To install as a package to be used as a library:
69
-
70
19
  ```
71
- npm install @aztec/bb.js@alpha
20
+ npm install @aztec/bb.js
72
21
  ```
73
22
 
74
23
  or with yarn
75
24
 
76
25
  ```
77
- yarn add @aztec/bb.js@alpha
26
+ yarn add @aztec/bb.js
78
27
  ```
79
28
 
80
29
  ### Usage
81
30
 
82
- To create a multithreaded version of the API:
31
+ To create the API and do a blake2s hash:
83
32
 
84
33
  ```typescript
85
- const api = await newBarretenbergApiAsync(/* num_threads */);
86
- // Use.
34
+ import { Crs, Barretenberg, RawBuffer } from './index.js';
35
+
36
+ const api = await Barretenberg.new({ threads: 1 });
87
37
  const input = Buffer.from('hello world!');
88
38
  const result = await api.blake2s(input);
89
39
  await api.destroy();
90
40
  ```
91
41
 
92
- All methods are asynchronous. If no threads are specified, will default to number of cores with a maximum of 16.
42
+ All methods are asynchronous. If no threads are specified, will default to number of cores with a maximum of 32.
93
43
  If `1` is specified, fallback to non multi-threaded wasm that doesn't need shared memory.
94
44
 
95
- You can also create a synchronous version of the api that also has no multi-threading. This is only useful in the
96
- browser if you don't call any multi-threaded functions. It's probably best to just always use async version of the api
97
- unless you're really trying to avoid the small overhead of worker communication.
45
+ See `src/main.ts` for larger example of how to use.
46
+
47
+ ### Browser Context
48
+
49
+ It's recommended to use a dynamic import. This allows the developer to pick the time at which the package (several MB
50
+ in size) is loaded and keeps page load times responsive.
98
51
 
99
52
  ```typescript
100
- const api = await newBarretenbergApiSync();
101
- // Use.
102
- const input = Buffer.from('hello world!');
103
- const result = api.blake2s(input);
104
- await api.destroy();
53
+ const { Barretenberg, RawBuffer, Crs } = await import('@aztec/bb.js');
105
54
  ```
106
55
 
107
- See `src/main.ts` for one example of how to use.
56
+ ### Multithreading in browser
57
+
58
+ Multithreading in bb.js requires [`SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) to be enabled. It is only enabled in browsers if COOP and COEP headers are set by the server. Read more [here](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer#security_requirements).
59
+
60
+ You can configure your server to set these headers for pages that perform proof generation. See [this example project](https://github.com/saleel/gitclaim/blob/main/app/next.config.mjs#L48-L67) that implements multi-threaded browser proving, which contains the below Next.js config:
61
+
62
+ ```typescript
63
+ {
64
+ ...
65
+ async headers() {
66
+ return [
67
+ {
68
+ source: '/:path*',
69
+ headers: [
70
+ { key: 'Cross-Origin-Embedder-Policy', value: 'require-corp' },
71
+ { key: 'Cross-Origin-Opener-Policy', value: 'same-origin' },
72
+ ],
73
+ },
74
+ ];
75
+ },
76
+ }
77
+ ```
108
78
 
109
- ## Development
79
+ Note that adding COOP and COEP headers will disable loading of external scripts, which might be required by your application.
110
80
 
111
- Create a symlink to the root script `bb.js-dev` in your path. You can now run the current state of the code from
112
- anywhere in your filesystem with no `yarn build` required.
81
+ You can enable these headers for specific pages that perform proof generation, but this may be challenging, especially in single-page applications. One workaround is to move the proof generation to a separate page, load it in an invisible iframe within your main application, and then use `postMessage` to communicate between the pages for generating proofs.
113
82
 
114
- If you change the C++ code run `yarn build:wasm`.
83
+ ## Debugging
115
84
 
116
- To run the tests run `yarn test`.
85
+ Got an unhelpful stack trace in wasm? Run:
117
86
 
118
- To run a continuous "stress test" run `yarn simple_test` to do 10 full pk/proof/vk iterations.
87
+ ```
88
+ BUILD_CPP=1 NO_STRIP=1 ./script/copy_wasm.sh
89
+ ```
119
90
 
120
- To run the same test in the browser run `yarn serve`, navigate to appropriate URL and open the console.
91
+ This will drop unstripped wasms into the dest folder. Run your test again to get a trace.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/async_map/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAMhG"}
@@ -13,4 +13,4 @@ export async function asyncMap(arr, fn) {
13
13
  }
14
14
  return results;
15
15
  }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXN5bmNfbWFwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFFBQVEsQ0FBTyxHQUFRLEVBQUUsRUFBbUM7SUFDaEYsTUFBTSxPQUFPLEdBQVEsRUFBRSxDQUFDO0lBQ3hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1FBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDbkM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDIn0=
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXN5bmNfbWFwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFFBQVEsQ0FBTyxHQUFRLEVBQUUsRUFBbUM7SUFDaEYsTUFBTSxPQUFPLEdBQVEsRUFBRSxDQUFDO0lBQ3hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDcEMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyJ9
@@ -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,301 @@
1
+ import { Barretenberg } from './index.js';
2
+ import { uint8ArrayToHex, hexToUint8Array } from '../proof/index.js';
3
+ import { fromChonkProof, toChonkProof } from '../cbind/generated/api_types.js';
4
+ import { ungzip } from 'pako';
5
+ import { Buffer } from 'buffer';
6
+ import { Decoder, Encoder } from 'msgpackr';
7
+ export class AztecClientBackendError extends Error {
8
+ constructor(message) {
9
+ super(message);
10
+ }
11
+ }
12
+ function getProofSettingsFromOptions(options) {
13
+ return {
14
+ ipaAccumulation: false,
15
+ oracleHashType: options?.keccak || options?.keccakZK
16
+ ? 'keccak'
17
+ : options?.starknet || options?.starknetZK
18
+ ? 'starknet'
19
+ : 'poseidon2',
20
+ // TODO no current way to target non-zk poseidon2 hash
21
+ disableZk: options?.keccak || options?.starknet ? true : false,
22
+ optimizedSolidityVerifier: false,
23
+ };
24
+ }
25
+ export class UltraHonkVerifierBackend {
26
+ constructor(backendOptions = { threads: 1 }, circuitOptions = { recursive: false }) {
27
+ this.backendOptions = backendOptions;
28
+ this.circuitOptions = circuitOptions;
29
+ }
30
+ /** @ignore */
31
+ async instantiate() {
32
+ if (!this.api) {
33
+ const api = await Barretenberg.new(this.backendOptions);
34
+ const honkRecursion = true;
35
+ await api.initSRSForCircuitSize(0);
36
+ this.api = api;
37
+ }
38
+ }
39
+ async verifyProof(proofData, options) {
40
+ await this.instantiate();
41
+ const proofFrs = [];
42
+ for (let i = 0; i < proofData.proof.length; i += 32) {
43
+ proofFrs.push(proofData.proof.slice(i, i + 32));
44
+ }
45
+ const { verified } = await this.api.circuitVerify({
46
+ verificationKey: proofData.verificationKey,
47
+ publicInputs: proofData.publicInputs.map(hexToUint8Array),
48
+ proof: proofFrs,
49
+ settings: getProofSettingsFromOptions(options),
50
+ });
51
+ return verified;
52
+ }
53
+ destroy() {
54
+ if (!this.api) {
55
+ return Promise.resolve();
56
+ }
57
+ return this.api.destroy();
58
+ }
59
+ }
60
+ export class UltraHonkBackend {
61
+ constructor(acirBytecode, backendOptions = { threads: 1 }, circuitOptions = { recursive: false }) {
62
+ this.backendOptions = backendOptions;
63
+ this.circuitOptions = circuitOptions;
64
+ this.acirUncompressedBytecode = acirToUint8Array(acirBytecode);
65
+ }
66
+ /** @ignore */
67
+ async instantiate() {
68
+ if (!this.api) {
69
+ const api = await Barretenberg.new(this.backendOptions);
70
+ const honkRecursion = true;
71
+ await api.acirInitSRS(this.acirUncompressedBytecode, this.circuitOptions.recursive, honkRecursion);
72
+ this.api = api;
73
+ }
74
+ }
75
+ async generateProof(compressedWitness, options) {
76
+ await this.instantiate();
77
+ const witness = ungzip(compressedWitness);
78
+ const { proof, publicInputs } = await this.api.circuitProve({
79
+ witness,
80
+ circuit: {
81
+ name: 'circuit',
82
+ bytecode: Buffer.from(this.acirUncompressedBytecode),
83
+ verificationKey: Buffer.from([]), // Empty VK - lower performance.
84
+ },
85
+ settings: getProofSettingsFromOptions(options),
86
+ });
87
+ console.log(`Generated proof for circuit with ${publicInputs.length} public inputs and ${proof.length} fields.`);
88
+ // We return ProofData as a flat buffer and an array of strings to match the current ProofData class.
89
+ const flatProof = new Uint8Array(proof.length * 32);
90
+ proof.forEach((fr, i) => {
91
+ flatProof.set(fr, i * 32);
92
+ });
93
+ return { proof: flatProof, publicInputs: publicInputs.map(uint8ArrayToHex) };
94
+ }
95
+ async verifyProof(proofData, options) {
96
+ await this.instantiate();
97
+ const proofFrs = [];
98
+ for (let i = 0; i < proofData.proof.length; i += 32) {
99
+ proofFrs.push(proofData.proof.slice(i, i + 32));
100
+ }
101
+ // TODO reconsider API - computing the VK at this point is not optimal
102
+ const vkResult = await this.api.circuitComputeVk({
103
+ circuit: {
104
+ name: 'circuit',
105
+ bytecode: this.acirUncompressedBytecode,
106
+ },
107
+ settings: getProofSettingsFromOptions(options),
108
+ });
109
+ const { verified } = await this.api.circuitVerify({
110
+ verificationKey: vkResult.bytes,
111
+ publicInputs: proofData.publicInputs.map(hexToUint8Array),
112
+ proof: proofFrs,
113
+ settings: getProofSettingsFromOptions(options),
114
+ });
115
+ return verified;
116
+ }
117
+ async getVerificationKey(options) {
118
+ await this.instantiate();
119
+ const vkResult = await this.api.circuitComputeVk({
120
+ circuit: {
121
+ name: 'circuit',
122
+ bytecode: Buffer.from(this.acirUncompressedBytecode),
123
+ },
124
+ settings: getProofSettingsFromOptions(options),
125
+ });
126
+ return vkResult.bytes;
127
+ }
128
+ /** @description Returns a solidity verifier */
129
+ async getSolidityVerifier(vk, options) {
130
+ await this.instantiate();
131
+ const result = await this.api.circuitWriteSolidityVerifier({
132
+ verificationKey: vk,
133
+ settings: getProofSettingsFromOptions(options),
134
+ });
135
+ return result.solidityCode;
136
+ }
137
+ // 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
138
+ async generateRecursiveProofArtifacts(
139
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
140
+ _proof,
141
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
142
+ _numOfPublicInputs) {
143
+ await this.instantiate();
144
+ // TODO(https://github.com/noir-lang/noir/issues/5661): This needs to be updated to handle recursive aggregation.
145
+ // There is still a proofAsFields method but we could consider getting rid of it as the proof itself
146
+ // is a list of field elements.
147
+ // UltraHonk also does not have public inputs directly prepended to the proof and they are still instead
148
+ // inserted at an offset.
149
+ // const proof = reconstructProofWithPublicInputs(proofData);
150
+ // const proofAsFields = (await this.api.acirProofAsFieldsUltraHonk(proof)).slice(numOfPublicInputs);
151
+ // TODO: perhaps we should put this in the init function. Need to benchmark
152
+ // TODO how long it takes.
153
+ const vkResult = await this.api.circuitComputeVk({
154
+ circuit: {
155
+ name: 'circuit',
156
+ bytecode: Buffer.from(this.acirUncompressedBytecode),
157
+ },
158
+ settings: getProofSettingsFromOptions({}),
159
+ });
160
+ // Convert VK bytes to field elements (32-byte chunks)
161
+ const vkAsFields = [];
162
+ for (let i = 0; i < vkResult.bytes.length; i += 32) {
163
+ const chunk = vkResult.bytes.slice(i, i + 32);
164
+ vkAsFields.push(uint8ArrayToHex(chunk));
165
+ }
166
+ return {
167
+ // TODO(https://github.com/noir-lang/noir/issues/5661)
168
+ proofAsFields: [],
169
+ vkAsFields,
170
+ // We use an empty string for the vk hash here as it is unneeded as part of the recursive artifacts
171
+ // The user can be expected to hash the vk inside their circuit to check whether the vk is the circuit
172
+ // they expect
173
+ vkHash: uint8ArrayToHex(vkResult.hash),
174
+ };
175
+ }
176
+ async destroy() {
177
+ if (!this.api) {
178
+ return;
179
+ }
180
+ await this.api.destroy();
181
+ }
182
+ }
183
+ export class AztecClientBackend {
184
+ constructor(acirBuf, options = { threads: 1 }) {
185
+ this.acirBuf = acirBuf;
186
+ this.options = options;
187
+ }
188
+ /** @ignore */
189
+ async instantiate() {
190
+ if (!this.api) {
191
+ const api = await Barretenberg.new(this.options);
192
+ await api.initSRSChonk();
193
+ this.api = api;
194
+ }
195
+ }
196
+ async prove(witnessBuf, vksBuf = []) {
197
+ if (vksBuf.length !== 0 && this.acirBuf.length !== witnessBuf.length) {
198
+ throw new AztecClientBackendError('Witness and bytecodes must have the same stack depth!');
199
+ }
200
+ if (vksBuf.length !== 0 && vksBuf.length !== witnessBuf.length) {
201
+ // NOTE: we allow 0 as an explicit 'I have no VKs'. This is a deprecated feature.
202
+ throw new AztecClientBackendError('Witness and VKs must have the same stack depth!');
203
+ }
204
+ await this.instantiate();
205
+ // Queue IVC start with the number of circuits
206
+ this.api.chonkStart({ numCircuits: this.acirBuf.length });
207
+ // Queue load and accumulate for each circuit
208
+ for (let i = 0; i < this.acirBuf.length; i++) {
209
+ const bytecode = this.acirBuf[i];
210
+ const witness = witnessBuf[i] || Buffer.from([]);
211
+ const vk = vksBuf[i] || Buffer.from([]);
212
+ const functionName = `unknown_wasm_${i}`;
213
+ // Load the circuit
214
+ this.api.chonkLoad({
215
+ circuit: {
216
+ name: functionName,
217
+ bytecode: Buffer.from(bytecode),
218
+ verificationKey: Buffer.from(vk),
219
+ },
220
+ });
221
+ // Accumulate with witness
222
+ this.api.chonkAccumulate({
223
+ witness: Buffer.from(witness),
224
+ });
225
+ }
226
+ // Generate the proof (and wait for all previous steps to finish)
227
+ const proveResult = await this.api.chonkProve({});
228
+ // The API currently expects a msgpack-encoded API.
229
+ const proof = new Encoder({ useRecords: false }).encode(fromChonkProof(proveResult.proof));
230
+ // Generate the VK
231
+ const vkResult = await this.api.chonkComputeIvcVk({
232
+ circuit: {
233
+ name: 'hiding',
234
+ bytecode: this.acirBuf[this.acirBuf.length - 1],
235
+ },
236
+ });
237
+ const proofFields = [
238
+ proveResult.proof.megaProof,
239
+ proveResult.proof.goblinProof.mergeProof,
240
+ proveResult.proof.goblinProof.eccvmProof.preIpaProof,
241
+ proveResult.proof.goblinProof.eccvmProof.ipaProof,
242
+ proveResult.proof.goblinProof.translatorProof,
243
+ ].flat();
244
+ // Note: Verification may not work correctly until we properly serialize the proof
245
+ if (!(await this.verify(proof, vkResult.bytes))) {
246
+ throw new AztecClientBackendError('Failed to verify the private (Chonk) transaction proof!');
247
+ }
248
+ return [proofFields, proof, vkResult.bytes];
249
+ }
250
+ async verify(proof, vk) {
251
+ await this.instantiate();
252
+ const result = await this.api.chonkVerify({
253
+ proof: toChonkProof(new Decoder({ useRecords: false }).decode(proof)),
254
+ vk: Buffer.from(vk),
255
+ });
256
+ return result.valid;
257
+ }
258
+ async gates() {
259
+ await this.instantiate();
260
+ const circuitSizes = [];
261
+ for (const buf of this.acirBuf) {
262
+ const gates = await this.api.chonkStats({
263
+ circuit: {
264
+ name: 'circuit',
265
+ bytecode: buf,
266
+ },
267
+ includeGatesPerOpcode: false,
268
+ });
269
+ circuitSizes.push(gates.circuitSize);
270
+ }
271
+ return circuitSizes;
272
+ }
273
+ async destroy() {
274
+ if (!this.api) {
275
+ return;
276
+ }
277
+ await this.api.destroy();
278
+ }
279
+ }
280
+ // Converts bytecode from a base64 string to a Uint8Array
281
+ function acirToUint8Array(base64EncodedBytecode) {
282
+ const compressedByteCode = base64Decode(base64EncodedBytecode);
283
+ return ungzip(compressedByteCode);
284
+ }
285
+ // Since this is a simple function, we can use feature detection to
286
+ // see if we are in the nodeJs environment or the browser environment.
287
+ function base64Decode(input) {
288
+ if (typeof Buffer !== 'undefined') {
289
+ // Node.js environment
290
+ const b = Buffer.from(input, 'base64');
291
+ return new Uint8Array(b.buffer, b.byteOffset, b.byteLength);
292
+ }
293
+ else if (typeof atob === 'function') {
294
+ // Browser environment
295
+ return Uint8Array.from(atob(input), c => c.charCodeAt(0));
296
+ }
297
+ else {
298
+ throw new Error('No implementation found for base64 decoding.');
299
+ }
300
+ }
301
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmcvYmFja2VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLFlBQVksRUFBa0IsTUFBTSxZQUFZLENBQUM7QUFDMUUsT0FBTyxFQUFhLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUU1QyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsS0FBSztJQUNoRCxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7Q0FDRjtBQTRCRCxTQUFTLDJCQUEyQixDQUFDLE9BQWlDO0lBTXBFLE9BQU87UUFDTCxlQUFlLEVBQUUsS0FBSztRQUN0QixjQUFjLEVBQ1osT0FBTyxFQUFFLE1BQU0sSUFBSSxPQUFPLEVBQUUsUUFBUTtZQUNsQyxDQUFDLENBQUMsUUFBUTtZQUNWLENBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxJQUFJLE9BQU8sRUFBRSxVQUFVO2dCQUN4QyxDQUFDLENBQUMsVUFBVTtnQkFDWixDQUFDLENBQUMsV0FBVztRQUNuQixzREFBc0Q7UUFDdEQsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLElBQUksT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLO1FBQzlELHlCQUF5QixFQUFFLEtBQUs7S0FDakMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLE9BQU8sd0JBQXdCO0lBR25D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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