@aztec/bb.js 0.0.1-fake-ceab37513c → 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 (617) hide show
  1. package/README.md +13 -79
  2. package/dest/browser/async_map/index.d.ts +10 -0
  3. package/dest/browser/async_map/index.d.ts.map +1 -0
  4. package/dest/browser/async_map/index.js +16 -0
  5. package/dest/browser/barretenberg/backend.d.ts +75 -0
  6. package/dest/browser/barretenberg/backend.d.ts.map +1 -0
  7. package/dest/browser/barretenberg/backend.js +301 -0
  8. package/dest/browser/barretenberg/index.d.ts +67 -0
  9. package/dest/browser/barretenberg/index.d.ts.map +1 -0
  10. package/dest/browser/barretenberg/index.js +191 -0
  11. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +45 -0
  12. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -0
  13. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.js +125 -0
  14. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +2 -0
  15. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -0
  16. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +11 -0
  17. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +2 -0
  18. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts.map +1 -0
  19. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +12 -0
  20. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +21 -0
  21. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -0
  22. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +70 -0
  23. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +53 -0
  24. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -0
  25. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.js +170 -0
  26. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +2 -0
  27. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -0
  28. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +11 -0
  29. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +2 -0
  30. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts.map +1 -0
  31. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +12 -0
  32. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +29 -0
  33. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -0
  34. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.js +40 -0
  35. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +3 -0
  36. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts.map +1 -0
  37. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +2 -0
  38. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +3 -0
  39. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts.map +1 -0
  40. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +2 -0
  41. package/dest/browser/barretenberg_wasm/fetch_code/browser/index.d.ts +2 -0
  42. package/dest/browser/barretenberg_wasm/fetch_code/browser/index.d.ts.map +1 -0
  43. package/dest/browser/barretenberg_wasm/fetch_code/browser/index.js +36 -0
  44. package/dest/browser/barretenberg_wasm/fetch_code/index.d.ts +2 -0
  45. package/dest/browser/barretenberg_wasm/fetch_code/index.d.ts.map +1 -0
  46. package/dest/browser/barretenberg_wasm/fetch_code/index.js +2 -0
  47. package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts +13 -0
  48. package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -0
  49. package/dest/browser/barretenberg_wasm/helpers/browser/index.js +40 -0
  50. package/dest/browser/barretenberg_wasm/helpers/index.d.ts +2 -0
  51. package/dest/browser/barretenberg_wasm/helpers/index.d.ts.map +1 -0
  52. package/dest/browser/barretenberg_wasm/helpers/index.js +2 -0
  53. package/dest/browser/barretenberg_wasm/index.d.ts +5 -0
  54. package/dest/browser/barretenberg_wasm/index.d.ts.map +1 -0
  55. package/dest/browser/barretenberg_wasm/index.js +16 -0
  56. package/dest/browser/bb_backends/browser/index.d.ts +11 -0
  57. package/dest/browser/bb_backends/browser/index.d.ts.map +1 -0
  58. package/dest/browser/bb_backends/browser/index.js +39 -0
  59. package/dest/browser/bb_backends/index.d.ts +45 -0
  60. package/dest/browser/bb_backends/index.d.ts.map +1 -0
  61. package/dest/browser/bb_backends/index.js +15 -0
  62. package/dest/browser/bb_backends/interface.d.ts +33 -0
  63. package/dest/browser/bb_backends/interface.d.ts.map +1 -0
  64. package/dest/browser/bb_backends/interface.js +2 -0
  65. package/dest/browser/bb_backends/sync_to_async_adapter.d.ts +15 -0
  66. package/dest/browser/bb_backends/sync_to_async_adapter.d.ts.map +1 -0
  67. package/dest/browser/bb_backends/sync_to_async_adapter.js +20 -0
  68. package/dest/browser/bb_backends/wasm.d.ts +49 -0
  69. package/dest/browser/bb_backends/wasm.d.ts.map +1 -0
  70. package/dest/browser/bb_backends/wasm.js +83 -0
  71. package/dest/browser/bbapi_exception.d.ts +7 -0
  72. package/dest/browser/bbapi_exception.d.ts.map +1 -0
  73. package/dest/browser/bbapi_exception.js +14 -0
  74. package/dest/browser/bigint-array/index.d.ts +17 -0
  75. package/dest/browser/bigint-array/index.d.ts.map +1 -0
  76. package/dest/browser/bigint-array/index.js +37 -0
  77. package/dest/browser/cbind/generate.d.ts +5 -0
  78. package/dest/browser/cbind/generate.d.ts.map +1 -0
  79. package/dest/browser/cbind/generate.js +151 -0
  80. package/dest/browser/cbind/generated/api_types.d.ts +2051 -0
  81. package/dest/browser/cbind/generated/api_types.d.ts.map +1 -0
  82. package/dest/browser/cbind/generated/api_types.js +2747 -0
  83. package/dest/browser/cbind/generated/async.d.ts +62 -0
  84. package/dest/browser/cbind/generated/async.d.ts.map +1 -0
  85. package/dest/browser/cbind/generated/async.js +662 -0
  86. package/dest/browser/cbind/generated/curve_constants.d.ts +45 -0
  87. package/dest/browser/cbind/generated/curve_constants.d.ts.map +1 -0
  88. package/dest/browser/cbind/generated/curve_constants.js +45 -0
  89. package/dest/browser/cbind/generated/sync.d.ts +62 -0
  90. package/dest/browser/cbind/generated/sync.d.ts.map +1 -0
  91. package/dest/browser/cbind/generated/sync.js +609 -0
  92. package/dest/browser/cbind/schema_compiler.d.ts +68 -0
  93. package/dest/browser/cbind/schema_compiler.d.ts.map +1 -0
  94. package/dest/browser/cbind/schema_compiler.js +599 -0
  95. package/dest/browser/crs/browser/cached_net_crs.d.ts +43 -0
  96. package/dest/browser/crs/browser/cached_net_crs.d.ts.map +1 -0
  97. package/dest/browser/crs/browser/cached_net_crs.js +90 -0
  98. package/dest/browser/crs/browser/index.d.ts +2 -0
  99. package/dest/browser/crs/browser/index.d.ts.map +1 -0
  100. package/dest/browser/crs/browser/index.js +2 -0
  101. package/dest/browser/crs/index.d.ts +2 -0
  102. package/dest/browser/crs/index.d.ts.map +1 -0
  103. package/dest/browser/crs/index.js +2 -0
  104. package/dest/browser/crs/net_crs.d.ts +85 -0
  105. package/dest/browser/crs/net_crs.d.ts.map +1 -0
  106. package/dest/browser/crs/net_crs.js +136 -0
  107. package/dest/browser/index.d.ts +8 -0
  108. package/dest/browser/index.d.ts.map +1 -0
  109. package/dest/browser/index.js +8 -0
  110. package/dest/browser/log/browser/index.d.ts +6 -0
  111. package/dest/browser/log/browser/index.d.ts.map +1 -0
  112. package/dest/browser/log/browser/index.js +28 -0
  113. package/dest/browser/log/index.d.ts +2 -0
  114. package/dest/browser/log/index.d.ts.map +1 -0
  115. package/dest/browser/log/index.js +2 -0
  116. package/dest/browser/log/types.d.ts +6 -0
  117. package/dest/browser/log/types.d.ts.map +1 -0
  118. package/dest/browser/log/types.js +2 -0
  119. package/dest/browser/proof/index.d.ts +21 -0
  120. package/dest/browser/proof/index.d.ts.map +1 -0
  121. package/dest/browser/proof/index.js +63 -0
  122. package/dest/browser/random/browser/index.d.ts +2 -0
  123. package/dest/browser/random/browser/index.d.ts.map +1 -0
  124. package/dest/browser/random/browser/index.js +31 -0
  125. package/dest/browser/random/index.d.ts +2 -0
  126. package/dest/browser/random/index.d.ts.map +1 -0
  127. package/dest/browser/random/index.js +2 -0
  128. package/dest/browser/retry/index.d.ts +26 -0
  129. package/dest/browser/retry/index.d.ts.map +1 -0
  130. package/dest/browser/retry/index.js +50 -0
  131. package/dest/browser/serialize/index.d.ts +2 -0
  132. package/dest/browser/serialize/index.d.ts.map +1 -0
  133. package/dest/browser/serialize/index.js +2 -0
  134. package/dest/browser/serialize/serialize.d.ts +18 -0
  135. package/dest/browser/serialize/serialize.d.ts.map +1 -0
  136. package/dest/browser/serialize/serialize.js +72 -0
  137. package/dest/browser/types/fields.d.ts +23 -0
  138. package/dest/browser/types/fields.d.ts.map +1 -0
  139. package/dest/browser/types/fields.js +61 -0
  140. package/dest/browser/types/index.d.ts +3 -0
  141. package/dest/browser/types/index.d.ts.map +1 -0
  142. package/dest/browser/types/index.js +3 -0
  143. package/dest/browser/types/point.d.ts +18 -0
  144. package/dest/browser/types/point.d.ts.map +1 -0
  145. package/dest/browser/types/point.js +28 -0
  146. package/dest/node/async_map/index.d.ts +10 -0
  147. package/dest/node/async_map/index.d.ts.map +1 -0
  148. package/dest/node/async_map/index.js +16 -0
  149. package/dest/node/barretenberg/__snapshots__/pedersen.test.js.snap +156 -0
  150. package/dest/node/barretenberg/__snapshots__/poseidon.test.js.snap +40 -0
  151. package/dest/node/barretenberg/backend.d.ts +75 -0
  152. package/dest/node/barretenberg/backend.d.ts.map +1 -0
  153. package/dest/node/barretenberg/backend.js +301 -0
  154. package/dest/node/barretenberg/blake2s.test.d.ts +2 -0
  155. package/dest/node/barretenberg/blake2s.test.d.ts.map +1 -0
  156. package/dest/node/barretenberg/blake2s.test.js +57 -0
  157. package/dest/node/barretenberg/index.d.ts +67 -0
  158. package/dest/node/barretenberg/index.d.ts.map +1 -0
  159. package/dest/node/barretenberg/index.js +191 -0
  160. package/dest/node/barretenberg/pedersen.test.d.ts +2 -0
  161. package/dest/node/barretenberg/pedersen.test.d.ts.map +1 -0
  162. package/dest/node/barretenberg/pedersen.test.js +62 -0
  163. package/dest/node/barretenberg/poseidon.bench.test.d.ts +2 -0
  164. package/dest/node/barretenberg/poseidon.bench.test.d.ts.map +1 -0
  165. package/dest/node/barretenberg/poseidon.bench.test.js +217 -0
  166. package/dest/node/barretenberg/poseidon.test.d.ts +2 -0
  167. package/dest/node/barretenberg/poseidon.test.d.ts.map +1 -0
  168. package/dest/node/barretenberg/poseidon.test.js +35 -0
  169. package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  170. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +45 -0
  171. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -0
  172. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.js +125 -0
  173. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +2 -0
  174. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -0
  175. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +11 -0
  176. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +2 -0
  177. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts.map +1 -0
  178. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +12 -0
  179. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +3 -0
  180. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -0
  181. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +21 -0
  182. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +2 -0
  183. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts.map +1 -0
  184. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +16 -0
  185. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +21 -0
  186. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -0
  187. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +70 -0
  188. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +53 -0
  189. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -0
  190. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +170 -0
  191. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +2 -0
  192. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -0
  193. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +11 -0
  194. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +2 -0
  195. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts.map +1 -0
  196. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +12 -0
  197. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +3 -0
  198. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -0
  199. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +21 -0
  200. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +2 -0
  201. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts.map +1 -0
  202. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +16 -0
  203. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +29 -0
  204. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -0
  205. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.js +40 -0
  206. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +3 -0
  207. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts.map +1 -0
  208. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +3 -0
  209. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +3 -0
  210. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts.map +1 -0
  211. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg.js +3 -0
  212. package/dest/node/barretenberg_wasm/fetch_code/browser/index.d.ts +2 -0
  213. package/dest/node/barretenberg_wasm/fetch_code/browser/index.d.ts.map +1 -0
  214. package/dest/node/barretenberg_wasm/fetch_code/browser/index.js +36 -0
  215. package/dest/node/barretenberg_wasm/fetch_code/index.d.ts +2 -0
  216. package/dest/node/barretenberg_wasm/fetch_code/index.d.ts.map +1 -0
  217. package/dest/node/barretenberg_wasm/fetch_code/index.js +2 -0
  218. package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts +2 -0
  219. package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts.map +1 -0
  220. package/dest/node/barretenberg_wasm/fetch_code/node/index.js +35 -0
  221. package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts +13 -0
  222. package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -0
  223. package/dest/node/barretenberg_wasm/helpers/browser/index.js +40 -0
  224. package/dest/node/barretenberg_wasm/helpers/index.d.ts +2 -0
  225. package/dest/node/barretenberg_wasm/helpers/index.d.ts.map +1 -0
  226. package/dest/node/barretenberg_wasm/helpers/index.js +2 -0
  227. package/dest/node/barretenberg_wasm/helpers/node/index.d.ts +22 -0
  228. package/dest/node/barretenberg_wasm/helpers/node/index.d.ts.map +1 -0
  229. package/dest/node/barretenberg_wasm/helpers/node/index.js +48 -0
  230. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts +8 -0
  231. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -0
  232. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.js +28 -0
  233. package/dest/node/barretenberg_wasm/index.d.ts +5 -0
  234. package/dest/node/barretenberg_wasm/index.d.ts.map +1 -0
  235. package/dest/node/barretenberg_wasm/index.js +16 -0
  236. package/dest/node/barretenberg_wasm/index.test.d.ts +2 -0
  237. package/dest/node/barretenberg_wasm/index.test.d.ts.map +1 -0
  238. package/dest/node/barretenberg_wasm/index.test.js +39 -0
  239. package/dest/node/bb_backends/browser/index.d.ts +11 -0
  240. package/dest/node/bb_backends/browser/index.d.ts.map +1 -0
  241. package/dest/node/bb_backends/browser/index.js +39 -0
  242. package/dest/node/bb_backends/index.d.ts +45 -0
  243. package/dest/node/bb_backends/index.d.ts.map +1 -0
  244. package/dest/node/bb_backends/index.js +15 -0
  245. package/dest/node/bb_backends/interface.d.ts +33 -0
  246. package/dest/node/bb_backends/interface.d.ts.map +1 -0
  247. package/dest/node/bb_backends/interface.js +2 -0
  248. package/dest/node/bb_backends/node/index.d.ts +11 -0
  249. package/dest/node/bb_backends/node/index.d.ts.map +1 -0
  250. package/dest/node/bb_backends/node/index.js +80 -0
  251. package/dest/node/bb_backends/node/native_pipe.d.ts +25 -0
  252. package/dest/node/bb_backends/node/native_pipe.d.ts.map +1 -0
  253. package/dest/node/bb_backends/node/native_pipe.js +113 -0
  254. package/dest/node/bb_backends/node/native_shm.d.ts +28 -0
  255. package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -0
  256. package/dest/node/bb_backends/node/native_shm.js +150 -0
  257. package/dest/node/bb_backends/node/native_socket.d.ts +34 -0
  258. package/dest/node/bb_backends/node/native_socket.d.ts.map +1 -0
  259. package/dest/node/bb_backends/node/native_socket.js +269 -0
  260. package/dest/node/bb_backends/node/platform.d.ts +27 -0
  261. package/dest/node/bb_backends/node/platform.d.ts.map +1 -0
  262. package/dest/node/bb_backends/node/platform.js +124 -0
  263. package/dest/node/bb_backends/sync_to_async_adapter.d.ts +15 -0
  264. package/dest/node/bb_backends/sync_to_async_adapter.d.ts.map +1 -0
  265. package/dest/node/bb_backends/sync_to_async_adapter.js +20 -0
  266. package/dest/node/bb_backends/wasm.d.ts +49 -0
  267. package/dest/node/bb_backends/wasm.d.ts.map +1 -0
  268. package/dest/node/bb_backends/wasm.js +83 -0
  269. package/dest/node/bbapi_exception.d.ts +7 -0
  270. package/dest/node/bbapi_exception.d.ts.map +1 -0
  271. package/dest/node/bbapi_exception.js +14 -0
  272. package/dest/node/benchmark/index.d.ts +3 -0
  273. package/dest/node/benchmark/index.d.ts.map +1 -0
  274. package/dest/node/benchmark/index.js +25 -0
  275. package/dest/node/benchmark/timer.d.ts +34 -0
  276. package/dest/node/benchmark/timer.d.ts.map +1 -0
  277. package/dest/node/benchmark/timer.js +41 -0
  278. package/dest/node/bigint-array/index.d.ts +17 -0
  279. package/dest/node/bigint-array/index.d.ts.map +1 -0
  280. package/dest/node/bigint-array/index.js +37 -0
  281. package/dest/node/cbind/generate.d.ts +5 -0
  282. package/dest/node/cbind/generate.d.ts.map +1 -0
  283. package/dest/node/cbind/generate.js +151 -0
  284. package/dest/node/cbind/generated/api_types.d.ts +2051 -0
  285. package/dest/node/cbind/generated/api_types.d.ts.map +1 -0
  286. package/dest/node/cbind/generated/api_types.js +2747 -0
  287. package/dest/node/cbind/generated/async.d.ts +62 -0
  288. package/dest/node/cbind/generated/async.d.ts.map +1 -0
  289. package/dest/node/cbind/generated/async.js +662 -0
  290. package/dest/node/cbind/generated/curve_constants.d.ts +45 -0
  291. package/dest/node/cbind/generated/curve_constants.d.ts.map +1 -0
  292. package/dest/node/cbind/generated/curve_constants.js +45 -0
  293. package/dest/node/cbind/generated/sync.d.ts +62 -0
  294. package/dest/node/cbind/generated/sync.d.ts.map +1 -0
  295. package/dest/node/cbind/generated/sync.js +609 -0
  296. package/dest/node/cbind/schema_compiler.d.ts +68 -0
  297. package/dest/node/cbind/schema_compiler.d.ts.map +1 -0
  298. package/dest/node/cbind/schema_compiler.js +599 -0
  299. package/dest/node/crs/browser/cached_net_crs.d.ts +43 -0
  300. package/dest/node/crs/browser/cached_net_crs.d.ts.map +1 -0
  301. package/dest/node/crs/browser/cached_net_crs.js +90 -0
  302. package/dest/node/crs/browser/index.d.ts +2 -0
  303. package/dest/node/crs/browser/index.d.ts.map +1 -0
  304. package/dest/node/crs/browser/index.js +2 -0
  305. package/dest/node/crs/index.d.ts +2 -0
  306. package/dest/node/crs/index.d.ts.map +1 -0
  307. package/dest/node/crs/index.js +2 -0
  308. package/dest/node/crs/net_crs.d.ts +85 -0
  309. package/dest/node/crs/net_crs.d.ts.map +1 -0
  310. package/dest/node/crs/net_crs.js +136 -0
  311. package/dest/node/crs/node/index.d.ts +38 -0
  312. package/dest/node/crs/node/index.d.ts.map +1 -0
  313. package/dest/node/crs/node/index.js +102 -0
  314. package/dest/node/index.d.ts +8 -0
  315. package/dest/node/index.d.ts.map +1 -0
  316. package/dest/node/index.js +8 -0
  317. package/dest/node/log/browser/index.d.ts +6 -0
  318. package/dest/node/log/browser/index.d.ts.map +1 -0
  319. package/dest/node/log/browser/index.js +28 -0
  320. package/dest/node/log/index.d.ts +2 -0
  321. package/dest/node/log/index.d.ts.map +1 -0
  322. package/dest/node/log/index.js +2 -0
  323. package/dest/node/log/node/index.d.ts +6 -0
  324. package/dest/node/log/node/index.d.ts.map +1 -0
  325. package/dest/node/log/node/index.js +40 -0
  326. package/dest/node/log/types.d.ts +6 -0
  327. package/dest/node/log/types.d.ts.map +1 -0
  328. package/dest/node/log/types.js +2 -0
  329. package/dest/node/proof/index.d.ts +21 -0
  330. package/dest/node/proof/index.d.ts.map +1 -0
  331. package/dest/node/proof/index.js +63 -0
  332. package/dest/node/random/browser/index.d.ts +2 -0
  333. package/dest/node/random/browser/index.d.ts.map +1 -0
  334. package/dest/node/random/browser/index.js +31 -0
  335. package/dest/node/random/index.d.ts +2 -0
  336. package/dest/node/random/index.d.ts.map +1 -0
  337. package/dest/node/random/index.js +2 -0
  338. package/dest/node/random/node/index.d.ts +2 -0
  339. package/dest/node/random/node/index.d.ts.map +1 -0
  340. package/dest/node/random/node/index.js +5 -0
  341. package/dest/node/retry/index.d.ts +26 -0
  342. package/dest/node/retry/index.d.ts.map +1 -0
  343. package/dest/node/retry/index.js +50 -0
  344. package/dest/node/serialize/index.d.ts +2 -0
  345. package/dest/node/serialize/index.d.ts.map +1 -0
  346. package/dest/node/serialize/index.js +2 -0
  347. package/dest/node/serialize/serialize.d.ts +18 -0
  348. package/dest/node/serialize/serialize.d.ts.map +1 -0
  349. package/dest/node/serialize/serialize.js +72 -0
  350. package/dest/node/types/fields.d.ts +23 -0
  351. package/dest/node/types/fields.d.ts.map +1 -0
  352. package/dest/node/types/fields.js +61 -0
  353. package/dest/node/types/index.d.ts +3 -0
  354. package/dest/node/types/index.d.ts.map +1 -0
  355. package/dest/node/types/index.js +3 -0
  356. package/dest/node/types/point.d.ts +18 -0
  357. package/dest/node/types/point.d.ts.map +1 -0
  358. package/dest/node/types/point.js +28 -0
  359. package/dest/node-cjs/async_map/index.d.ts +10 -0
  360. package/dest/node-cjs/async_map/index.d.ts.map +1 -0
  361. package/dest/node-cjs/async_map/index.js +19 -0
  362. package/dest/node-cjs/barretenberg/backend.d.ts +75 -0
  363. package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -0
  364. package/dest/node-cjs/barretenberg/backend.js +308 -0
  365. package/dest/node-cjs/barretenberg/blake2s.test.d.ts +2 -0
  366. package/dest/node-cjs/barretenberg/blake2s.test.d.ts.map +1 -0
  367. package/dest/node-cjs/barretenberg/blake2s.test.js +59 -0
  368. package/dest/node-cjs/barretenberg/index.d.ts +67 -0
  369. package/dest/node-cjs/barretenberg/index.d.ts.map +1 -0
  370. package/dest/node-cjs/barretenberg/index.js +200 -0
  371. package/dest/node-cjs/barretenberg/pedersen.test.d.ts +2 -0
  372. package/dest/node-cjs/barretenberg/pedersen.test.d.ts.map +1 -0
  373. package/dest/node-cjs/barretenberg/pedersen.test.js +64 -0
  374. package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts +2 -0
  375. package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts.map +1 -0
  376. package/dest/node-cjs/barretenberg/poseidon.bench.test.js +219 -0
  377. package/dest/node-cjs/barretenberg/poseidon.test.d.ts +2 -0
  378. package/dest/node-cjs/barretenberg/poseidon.test.d.ts.map +1 -0
  379. package/dest/node-cjs/barretenberg/poseidon.test.js +37 -0
  380. package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  381. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +45 -0
  382. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -0
  383. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.js +129 -0
  384. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +2 -0
  385. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -0
  386. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +14 -0
  387. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +2 -0
  388. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts.map +1 -0
  389. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +14 -0
  390. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +3 -0
  391. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -0
  392. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +24 -0
  393. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +2 -0
  394. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts.map +1 -0
  395. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +18 -0
  396. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +21 -0
  397. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -0
  398. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +74 -0
  399. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +53 -0
  400. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -0
  401. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +174 -0
  402. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +2 -0
  403. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -0
  404. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +14 -0
  405. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +2 -0
  406. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts.map +1 -0
  407. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +14 -0
  408. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +3 -0
  409. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -0
  410. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +24 -0
  411. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +2 -0
  412. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts.map +1 -0
  413. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +18 -0
  414. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +29 -0
  415. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -0
  416. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.js +44 -0
  417. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +3 -0
  418. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts.map +1 -0
  419. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +6 -0
  420. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +3 -0
  421. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts.map +1 -0
  422. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.js +6 -0
  423. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts +2 -0
  424. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts.map +1 -0
  425. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.js +40 -0
  426. package/dest/node-cjs/barretenberg_wasm/fetch_code/index.d.ts +2 -0
  427. package/dest/node-cjs/barretenberg_wasm/fetch_code/index.d.ts.map +1 -0
  428. package/dest/node-cjs/barretenberg_wasm/fetch_code/index.js +5 -0
  429. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts +2 -0
  430. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts.map +1 -0
  431. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.js +39 -0
  432. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts +13 -0
  433. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -0
  434. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.js +50 -0
  435. package/dest/node-cjs/barretenberg_wasm/helpers/index.d.ts +2 -0
  436. package/dest/node-cjs/barretenberg_wasm/helpers/index.d.ts.map +1 -0
  437. package/dest/node-cjs/barretenberg_wasm/helpers/index.js +5 -0
  438. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts +22 -0
  439. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts.map +1 -0
  440. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.js +57 -0
  441. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts +8 -0
  442. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -0
  443. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.js +31 -0
  444. package/dest/node-cjs/barretenberg_wasm/index.d.ts +5 -0
  445. package/dest/node-cjs/barretenberg_wasm/index.d.ts.map +1 -0
  446. package/dest/node-cjs/barretenberg_wasm/index.js +19 -0
  447. package/dest/node-cjs/barretenberg_wasm/index.test.d.ts +2 -0
  448. package/dest/node-cjs/barretenberg_wasm/index.test.d.ts.map +1 -0
  449. package/dest/node-cjs/barretenberg_wasm/index.test.js +41 -0
  450. package/dest/node-cjs/bb_backends/browser/index.d.ts +11 -0
  451. package/dest/node-cjs/bb_backends/browser/index.d.ts.map +1 -0
  452. package/dest/node-cjs/bb_backends/browser/index.js +43 -0
  453. package/dest/node-cjs/bb_backends/index.d.ts +45 -0
  454. package/dest/node-cjs/bb_backends/index.d.ts.map +1 -0
  455. package/dest/node-cjs/bb_backends/index.js +18 -0
  456. package/dest/node-cjs/bb_backends/interface.d.ts +33 -0
  457. package/dest/node-cjs/bb_backends/interface.d.ts.map +1 -0
  458. package/dest/node-cjs/bb_backends/interface.js +3 -0
  459. package/dest/node-cjs/bb_backends/node/index.d.ts +11 -0
  460. package/dest/node-cjs/bb_backends/node/index.d.ts.map +1 -0
  461. package/dest/node-cjs/bb_backends/node/index.js +84 -0
  462. package/dest/node-cjs/bb_backends/node/native_pipe.d.ts +25 -0
  463. package/dest/node-cjs/bb_backends/node/native_pipe.d.ts.map +1 -0
  464. package/dest/node-cjs/bb_backends/node/native_pipe.js +117 -0
  465. package/dest/node-cjs/bb_backends/node/native_shm.d.ts +28 -0
  466. package/dest/node-cjs/bb_backends/node/native_shm.d.ts.map +1 -0
  467. package/dest/node-cjs/bb_backends/node/native_shm.js +154 -0
  468. package/dest/node-cjs/bb_backends/node/native_socket.d.ts +34 -0
  469. package/dest/node-cjs/bb_backends/node/native_socket.d.ts.map +1 -0
  470. package/dest/node-cjs/bb_backends/node/native_socket.js +274 -0
  471. package/dest/node-cjs/bb_backends/node/platform.d.ts +27 -0
  472. package/dest/node-cjs/bb_backends/node/platform.d.ts.map +1 -0
  473. package/dest/node-cjs/bb_backends/node/platform.js +131 -0
  474. package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts +15 -0
  475. package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts.map +1 -0
  476. package/dest/node-cjs/bb_backends/sync_to_async_adapter.js +24 -0
  477. package/dest/node-cjs/bb_backends/wasm.d.ts +49 -0
  478. package/dest/node-cjs/bb_backends/wasm.d.ts.map +1 -0
  479. package/dest/node-cjs/bb_backends/wasm.js +88 -0
  480. package/dest/node-cjs/bbapi_exception.d.ts +7 -0
  481. package/dest/node-cjs/bbapi_exception.d.ts.map +1 -0
  482. package/dest/node-cjs/bbapi_exception.js +18 -0
  483. package/dest/node-cjs/benchmark/index.d.ts +3 -0
  484. package/dest/node-cjs/benchmark/index.d.ts.map +1 -0
  485. package/dest/node-cjs/benchmark/index.js +29 -0
  486. package/dest/node-cjs/benchmark/timer.d.ts +34 -0
  487. package/dest/node-cjs/benchmark/timer.d.ts.map +1 -0
  488. package/dest/node-cjs/benchmark/timer.js +45 -0
  489. package/dest/node-cjs/bigint-array/index.d.ts +17 -0
  490. package/dest/node-cjs/bigint-array/index.d.ts.map +1 -0
  491. package/dest/node-cjs/bigint-array/index.js +43 -0
  492. package/dest/node-cjs/cbind/generate.d.ts +5 -0
  493. package/dest/node-cjs/cbind/generate.d.ts.map +1 -0
  494. package/dest/node-cjs/cbind/generate.js +153 -0
  495. package/dest/node-cjs/cbind/generated/api_types.d.ts +2051 -0
  496. package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -0
  497. package/dest/node-cjs/cbind/generated/api_types.js +2989 -0
  498. package/dest/node-cjs/cbind/generated/async.d.ts +62 -0
  499. package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -0
  500. package/dest/node-cjs/cbind/generated/async.js +666 -0
  501. package/dest/node-cjs/cbind/generated/curve_constants.d.ts +45 -0
  502. package/dest/node-cjs/cbind/generated/curve_constants.d.ts.map +1 -0
  503. package/dest/node-cjs/cbind/generated/curve_constants.js +48 -0
  504. package/dest/node-cjs/cbind/generated/sync.d.ts +62 -0
  505. package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -0
  506. package/dest/node-cjs/cbind/generated/sync.js +613 -0
  507. package/dest/node-cjs/cbind/schema_compiler.d.ts +68 -0
  508. package/dest/node-cjs/cbind/schema_compiler.d.ts.map +1 -0
  509. package/dest/node-cjs/cbind/schema_compiler.js +606 -0
  510. package/dest/node-cjs/crs/browser/cached_net_crs.d.ts +43 -0
  511. package/dest/node-cjs/crs/browser/cached_net_crs.d.ts.map +1 -0
  512. package/dest/node-cjs/crs/browser/cached_net_crs.js +95 -0
  513. package/dest/node-cjs/crs/browser/index.d.ts +2 -0
  514. package/dest/node-cjs/crs/browser/index.d.ts.map +1 -0
  515. package/dest/node-cjs/crs/browser/index.js +7 -0
  516. package/dest/node-cjs/crs/index.d.ts +2 -0
  517. package/dest/node-cjs/crs/index.d.ts.map +1 -0
  518. package/dest/node-cjs/crs/index.js +7 -0
  519. package/dest/node-cjs/crs/net_crs.d.ts +85 -0
  520. package/dest/node-cjs/crs/net_crs.d.ts.map +1 -0
  521. package/dest/node-cjs/crs/net_crs.js +141 -0
  522. package/dest/node-cjs/crs/node/index.d.ts +38 -0
  523. package/dest/node-cjs/crs/node/index.d.ts.map +1 -0
  524. package/dest/node-cjs/crs/node/index.js +107 -0
  525. package/dest/node-cjs/index.d.ts +8 -0
  526. package/dest/node-cjs/index.d.ts.map +1 -0
  527. package/dest/node-cjs/index.js +37 -0
  528. package/dest/node-cjs/log/browser/index.d.ts +6 -0
  529. package/dest/node-cjs/log/browser/index.d.ts.map +1 -0
  530. package/dest/node-cjs/log/browser/index.js +30 -0
  531. package/dest/node-cjs/log/index.d.ts +2 -0
  532. package/dest/node-cjs/log/index.d.ts.map +1 -0
  533. package/dest/node-cjs/log/index.js +8 -0
  534. package/dest/node-cjs/log/node/index.d.ts +6 -0
  535. package/dest/node-cjs/log/node/index.d.ts.map +1 -0
  536. package/dest/node-cjs/log/node/index.js +42 -0
  537. package/dest/node-cjs/log/types.d.ts +6 -0
  538. package/dest/node-cjs/log/types.d.ts.map +1 -0
  539. package/dest/node-cjs/log/types.js +3 -0
  540. package/dest/node-cjs/package.json +3 -0
  541. package/dest/node-cjs/proof/index.d.ts +21 -0
  542. package/dest/node-cjs/proof/index.d.ts.map +1 -0
  543. package/dest/node-cjs/proof/index.js +72 -0
  544. package/dest/node-cjs/random/browser/index.d.ts +2 -0
  545. package/dest/node-cjs/random/browser/index.d.ts.map +1 -0
  546. package/dest/node-cjs/random/browser/index.js +35 -0
  547. package/dest/node-cjs/random/index.d.ts +2 -0
  548. package/dest/node-cjs/random/index.d.ts.map +1 -0
  549. package/dest/node-cjs/random/index.js +5 -0
  550. package/dest/node-cjs/random/node/index.d.ts +2 -0
  551. package/dest/node-cjs/random/node/index.d.ts.map +1 -0
  552. package/dest/node-cjs/random/node/index.js +8 -0
  553. package/dest/node-cjs/retry/index.d.ts +26 -0
  554. package/dest/node-cjs/retry/index.d.ts.map +1 -0
  555. package/dest/node-cjs/retry/index.js +55 -0
  556. package/dest/node-cjs/serialize/index.d.ts +2 -0
  557. package/dest/node-cjs/serialize/index.d.ts.map +1 -0
  558. package/dest/node-cjs/serialize/index.js +5 -0
  559. package/dest/node-cjs/serialize/serialize.d.ts +18 -0
  560. package/dest/node-cjs/serialize/serialize.d.ts.map +1 -0
  561. package/dest/node-cjs/serialize/serialize.js +82 -0
  562. package/dest/node-cjs/types/fields.d.ts +23 -0
  563. package/dest/node-cjs/types/fields.d.ts.map +1 -0
  564. package/dest/node-cjs/types/fields.js +65 -0
  565. package/dest/node-cjs/types/index.d.ts +3 -0
  566. package/dest/node-cjs/types/index.d.ts.map +1 -0
  567. package/dest/node-cjs/types/index.js +6 -0
  568. package/dest/node-cjs/types/point.d.ts +18 -0
  569. package/dest/node-cjs/types/point.d.ts.map +1 -0
  570. package/dest/node-cjs/types/point.js +32 -0
  571. package/package.json +6 -6
  572. package/src/barretenberg/__snapshots__/pedersen.test.ts.snap +2 -2
  573. package/src/barretenberg/__snapshots__/poseidon.test.ts.snap +3 -3
  574. package/src/barretenberg/backend.ts +54 -42
  575. package/src/barretenberg/blake2s.test.ts +20 -21
  576. package/src/barretenberg/index.ts +137 -118
  577. package/src/barretenberg/pedersen.test.ts +23 -16
  578. package/src/barretenberg/poseidon.bench.test.ts +268 -0
  579. package/src/barretenberg/poseidon.test.ts +14 -14
  580. package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +3 -3
  581. package/src/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.ts +17 -9
  582. package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +67 -16
  583. package/src/barretenberg_wasm/index.test.ts +12 -11
  584. package/src/bb_backends/browser/index.ts +50 -0
  585. package/src/bb_backends/index.ts +49 -0
  586. package/src/bb_backends/interface.ts +35 -0
  587. package/src/bb_backends/node/index.ts +94 -0
  588. package/src/bb_backends/node/native_pipe.ts +127 -0
  589. package/src/bb_backends/node/native_shm.ts +171 -0
  590. package/src/bb_backends/node/native_socket.ts +312 -0
  591. package/src/bb_backends/node/platform.ts +151 -0
  592. package/src/bb_backends/sync_to_async_adapter.ts +21 -0
  593. package/src/bb_backends/wasm.ts +103 -0
  594. package/src/bbapi_exception.ts +13 -0
  595. package/src/cbind/README.md +1 -1
  596. package/src/cbind/generate.ts +99 -6
  597. package/src/cbind/schema_compiler.ts +156 -244
  598. package/src/index.ts +29 -1
  599. package/src/serialize/index.ts +0 -2
  600. package/src/serialize/serialize.ts +0 -82
  601. package/src/types/fields.ts +15 -64
  602. package/src/types/index.ts +0 -3
  603. package/src/types/point.ts +13 -19
  604. package/src/barretenberg/common.test.ts +0 -23
  605. package/src/barretenberg_api/index.ts +0 -1216
  606. package/src/bindgen/function_declaration.ts +0 -11
  607. package/src/bindgen/index.ts +0 -17
  608. package/src/bindgen/mappings.ts +0 -67
  609. package/src/bindgen/rust.ts +0 -52
  610. package/src/bindgen/to_camel_case.ts +0 -10
  611. package/src/bindgen/typescript.ts +0 -116
  612. package/src/main.ts +0 -534
  613. package/src/serialize/buffer_reader.ts +0 -85
  614. package/src/serialize/output_type.ts +0 -53
  615. package/src/types/fixed_size_buffer.ts +0 -59
  616. package/src/types/ptr.ts +0 -20
  617. package/src/types/raw_buffer.ts +0 -3
package/README.md CHANGED
@@ -1,75 +1,21 @@
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 node, 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
- Table represents time in ms to build circuit and proof for each test on n threads.
17
- Ignores proving key construction.
18
-
19
- ```
20
- +--------------------------+------------+---------------+-----------+-----------+-----------+-----------+-----------+
21
- | Test | Gate Count | Subgroup Size | 1 | 4 | 16 | 32 | 64 |
22
- +--------------------------+------------+---------------+-----------+-----------+-----------+-----------+-----------+
23
- | sha256 | 38799 | 65536 | 18764 | 5116 | 1854 | 1524 | 1635 |
24
- | ecdsa_secp256k1 | 41049 | 65536 | 19129 | 5595 | 2255 | 2097 | 2166 |
25
- | ecdsa_secp256r1 | 67331 | 131072 | 38815 | 11257 | 4744 | 3633 | 3702 |
26
- | schnorr | 33740 | 65536 | 18649 | 5244 | 2019 | 1498 | 1702 |
27
- | double_verify_proof | 505513 | 524288 | 149652 | 45702 | 20811 | 16979 | 15679 |
28
- +--------------------------+------------+---------------+-----------+-----------+-----------+-----------+-----------+
29
- ```
30
-
31
- ## Using as a standalone binary
32
-
33
- ### Installing
34
-
35
- To install the package globally for running as a terminal application:
36
-
37
- ```
38
- npm install -g @aztec/bb.js
39
- ```
40
-
41
- Assuming `$(npm prefix -g)/bin` is in your `PATH`, you can now run the command `bb.js`.
42
-
43
- ### Usage
44
-
45
- Run `bb.js` for further usage information, you'll see e.g.
46
-
47
- ```
48
- % bb.js
49
- Usage: bb.js [options] [command]
50
-
51
- Options:
52
- -v, --verbose enable verbose logging (default: false)
53
- -h, --help display help for command
54
-
55
- Commands:
56
- prove_and_verify [options] Generate a proof and verify it. Process exits with success or failure code.
57
- prove [options] Generate a proof and write it to a file.
58
- gates [options] Print gate count to standard output.
59
- verify [options] Verify a proof. Process exists with success or failure code.
60
- contract [options] Output solidity verification key contract.
61
- write_vk [options] Output verification key.
62
- proof_as_fields [options] Return the proof as fields elements
63
- vk_as_fields [options] Return the verification key represented as field elements. Also return the verification key hash.
64
- help [command] display help for command
65
- ```
66
-
67
- ## 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.
68
16
 
69
17
  ### Installing
70
18
 
71
- To install as a package to be used as a library:
72
-
73
19
  ```
74
20
  npm install @aztec/bb.js
75
21
  ```
@@ -87,7 +33,7 @@ To create the API and do a blake2s hash:
87
33
  ```typescript
88
34
  import { Crs, Barretenberg, RawBuffer } from './index.js';
89
35
 
90
- const api = await Barretenberg.new(/* num_threads */ { threads: 1 });
36
+ const api = await Barretenberg.new({ threads: 1 });
91
37
  const input = Buffer.from('hello world!');
92
38
  const result = await api.blake2s(input);
93
39
  await api.destroy();
@@ -134,24 +80,12 @@ Note that adding COOP and COEP headers will disable loading of external scripts,
134
80
 
135
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.
136
82
 
137
- ## Development
138
-
139
- Create a symlink to the root script `bb.js-dev` in your path. You can now run the current state of the code from
140
- anywhere in your filesystem with no `yarn build` required.
141
-
142
- If you change the C++ code run `yarn build:wasm` to rebuild the webassembly.
143
-
144
- To run the tests run `yarn test`.
145
-
146
- To run a continuous "stress test" run `yarn simple_test` to do 10 full pk/proof/vk iterations. This is useful for
147
- inspecting memory growth as we continuously use the library.
148
-
149
83
  ## Debugging
150
84
 
151
85
  Got an unhelpful stack trace in wasm? Run:
152
86
 
153
87
  ```
154
- NO_STRIP=1 ./script/build_wasm.sh
88
+ BUILD_CPP=1 NO_STRIP=1 ./script/copy_wasm.sh
155
89
  ```
156
90
 
157
91
  This will drop unstripped wasms into the dest folder. Run your test again to get a trace.
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Much the same as Array.map, only it takes an async fn as an element handler, and ensures that each element handler
3
+ * is executed sequentially.
4
+ * The pattern of `await Promise.all(arr.map(async e => { ... }))` only works if one's happy with each element handler
5
+ * being run concurrently.
6
+ * If one required sequential execution of async fn's, the only alternative was regular loops with mutable state vars.
7
+ * The equivalent with asyncMap: `await asyncMap(arr, async e => { ... })`.
8
+ */
9
+ export declare function asyncMap<T, U>(arr: T[], fn: (e: T, i: number) => Promise<U>): Promise<U[]>;
10
+ //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Much the same as Array.map, only it takes an async fn as an element handler, and ensures that each element handler
3
+ * is executed sequentially.
4
+ * The pattern of `await Promise.all(arr.map(async e => { ... }))` only works if one's happy with each element handler
5
+ * being run concurrently.
6
+ * If one required sequential execution of async fn's, the only alternative was regular loops with mutable state vars.
7
+ * The equivalent with asyncMap: `await asyncMap(arr, async e => { ... })`.
8
+ */
9
+ export async function asyncMap(arr, fn) {
10
+ const results = [];
11
+ for (let i = 0; i < arr.length; ++i) {
12
+ results.push(await fn(arr[i], i));
13
+ }
14
+ return results;
15
+ }
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
@@ -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"}