@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
@@ -0,0 +1,390 @@
1
+ import { BackendOptions, Barretenberg, CircuitOptions } from './index.js';
2
+ import { ProofData, 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
+
8
+ export class AztecClientBackendError extends Error {
9
+ constructor(message: string) {
10
+ super(message);
11
+ }
12
+ }
13
+
14
+ /**
15
+ * Options for the UltraHonkBackend.
16
+ */
17
+ export type UltraHonkBackendOptions = {
18
+ /** Selecting this option will use the keccak hash function instead of poseidon
19
+ * when generating challenges in the proof.
20
+ * Use this when you want to verify the created proof on an EVM chain.
21
+ */
22
+ keccak?: boolean;
23
+ /** Selecting this option will use the keccak hash function instead of poseidon
24
+ * when generating challenges in the proof.
25
+ * Use this when you want to verify the created proof on an EVM chain.
26
+ */
27
+ keccakZK?: boolean;
28
+ /** Selecting this option will use the poseidon/stark252 hash function instead of poseidon
29
+ * when generating challenges in the proof.
30
+ * Use this when you want to verify the created proof on an Starknet chain with Garaga.
31
+ */
32
+ starknet?: boolean;
33
+ /** Selecting this option will use the poseidon/stark252 hash function instead of poseidon
34
+ * when generating challenges in the proof.
35
+ * Use this when you want to verify the created proof on an Starknet chain with Garaga.
36
+ */
37
+ starknetZK?: boolean;
38
+ };
39
+
40
+ function getProofSettingsFromOptions(options?: UltraHonkBackendOptions): {
41
+ ipaAccumulation: boolean;
42
+ oracleHashType: string;
43
+ disableZk: boolean;
44
+ optimizedSolidityVerifier: boolean;
45
+ } {
46
+ return {
47
+ ipaAccumulation: false,
48
+ oracleHashType:
49
+ options?.keccak || options?.keccakZK
50
+ ? 'keccak'
51
+ : options?.starknet || options?.starknetZK
52
+ ? 'starknet'
53
+ : 'poseidon2',
54
+ // TODO no current way to target non-zk poseidon2 hash
55
+ disableZk: options?.keccak || options?.starknet ? true : false,
56
+ optimizedSolidityVerifier: false,
57
+ };
58
+ }
59
+
60
+ export class UltraHonkVerifierBackend {
61
+ protected api!: Barretenberg;
62
+
63
+ constructor(
64
+ protected backendOptions: BackendOptions = { threads: 1 },
65
+ protected circuitOptions: CircuitOptions = { recursive: false },
66
+ ) {}
67
+ /** @ignore */
68
+ private async instantiate(): Promise<void> {
69
+ if (!this.api) {
70
+ const api = await Barretenberg.new(this.backendOptions);
71
+ const honkRecursion = true;
72
+ await api.initSRSForCircuitSize(0);
73
+
74
+ this.api = api;
75
+ }
76
+ }
77
+
78
+ async verifyProof(
79
+ proofData: ProofData & { verificationKey: Uint8Array },
80
+ options?: UltraHonkBackendOptions,
81
+ ): Promise<boolean> {
82
+ await this.instantiate();
83
+
84
+ const proofFrs: Uint8Array[] = [];
85
+ for (let i = 0; i < proofData.proof.length; i += 32) {
86
+ proofFrs.push(proofData.proof.slice(i, i + 32));
87
+ }
88
+ const { verified } = await this.api.circuitVerify({
89
+ verificationKey: proofData.verificationKey,
90
+ publicInputs: proofData.publicInputs.map(hexToUint8Array),
91
+ proof: proofFrs,
92
+ settings: getProofSettingsFromOptions(options),
93
+ });
94
+ return verified;
95
+ }
96
+ destroy(): Promise<void> {
97
+ if (!this.api) {
98
+ return Promise.resolve();
99
+ }
100
+ return this.api.destroy();
101
+ }
102
+ }
103
+
104
+ export class UltraHonkBackend {
105
+ // These type assertions are used so that we don't
106
+ // have to initialize `api` in the constructor.
107
+ // These are initialized asynchronously in the `init` function,
108
+ // constructors cannot be asynchronous which is why we do this.
109
+
110
+ protected api!: Barretenberg;
111
+ protected acirUncompressedBytecode: Uint8Array;
112
+
113
+ constructor(
114
+ acirBytecode: string,
115
+ protected backendOptions: BackendOptions = { threads: 1 },
116
+ protected circuitOptions: CircuitOptions = { recursive: false },
117
+ ) {
118
+ this.acirUncompressedBytecode = acirToUint8Array(acirBytecode);
119
+ }
120
+ /** @ignore */
121
+ private async instantiate(): Promise<void> {
122
+ if (!this.api) {
123
+ const api = await Barretenberg.new(this.backendOptions);
124
+ const honkRecursion = true;
125
+ await api.acirInitSRS(this.acirUncompressedBytecode, this.circuitOptions.recursive, honkRecursion);
126
+
127
+ this.api = api;
128
+ }
129
+ }
130
+
131
+ async generateProof(compressedWitness: Uint8Array, options?: UltraHonkBackendOptions): Promise<ProofData> {
132
+ await this.instantiate();
133
+
134
+ const witness = ungzip(compressedWitness);
135
+ const { proof, publicInputs } = await this.api.circuitProve({
136
+ witness,
137
+ circuit: {
138
+ name: 'circuit',
139
+ bytecode: Buffer.from(this.acirUncompressedBytecode),
140
+ verificationKey: Buffer.from([]), // Empty VK - lower performance.
141
+ },
142
+ settings: getProofSettingsFromOptions(options),
143
+ });
144
+ console.log(`Generated proof for circuit with ${publicInputs.length} public inputs and ${proof.length} fields.`);
145
+
146
+ // We return ProofData as a flat buffer and an array of strings to match the current ProofData class.
147
+ const flatProof = new Uint8Array(proof.length * 32);
148
+ proof.forEach((fr, i) => {
149
+ flatProof.set(fr, i * 32);
150
+ });
151
+
152
+ return { proof: flatProof, publicInputs: publicInputs.map(uint8ArrayToHex) };
153
+ }
154
+
155
+ async verifyProof(proofData: ProofData, options?: UltraHonkBackendOptions): Promise<boolean> {
156
+ await this.instantiate();
157
+
158
+ const proofFrs: Uint8Array[] = [];
159
+ for (let i = 0; i < proofData.proof.length; i += 32) {
160
+ proofFrs.push(proofData.proof.slice(i, i + 32));
161
+ }
162
+ // TODO reconsider API - computing the VK at this point is not optimal
163
+ const vkResult = await this.api.circuitComputeVk({
164
+ circuit: {
165
+ name: 'circuit',
166
+ bytecode: this.acirUncompressedBytecode,
167
+ },
168
+ settings: getProofSettingsFromOptions(options),
169
+ });
170
+ const { verified } = await this.api.circuitVerify({
171
+ verificationKey: vkResult.bytes,
172
+ publicInputs: proofData.publicInputs.map(hexToUint8Array),
173
+ proof: proofFrs,
174
+ settings: getProofSettingsFromOptions(options),
175
+ });
176
+ return verified;
177
+ }
178
+
179
+ async getVerificationKey(options?: UltraHonkBackendOptions): Promise<Uint8Array> {
180
+ await this.instantiate();
181
+
182
+ const vkResult = await this.api.circuitComputeVk({
183
+ circuit: {
184
+ name: 'circuit',
185
+ bytecode: Buffer.from(this.acirUncompressedBytecode),
186
+ },
187
+ settings: getProofSettingsFromOptions(options),
188
+ });
189
+ return vkResult.bytes;
190
+ }
191
+
192
+ /** @description Returns a solidity verifier */
193
+ async getSolidityVerifier(vk: Uint8Array, options?: UltraHonkBackendOptions): Promise<string> {
194
+ await this.instantiate();
195
+ const result = await this.api.circuitWriteSolidityVerifier({
196
+ verificationKey: vk,
197
+ settings: getProofSettingsFromOptions(options),
198
+ });
199
+ return result.solidityCode;
200
+ }
201
+
202
+ // 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
203
+ async generateRecursiveProofArtifacts(
204
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
205
+ _proof: Uint8Array,
206
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
207
+ _numOfPublicInputs: number,
208
+ ): Promise<{ proofAsFields: string[]; vkAsFields: string[]; vkHash: string }> {
209
+ await this.instantiate();
210
+ // TODO(https://github.com/noir-lang/noir/issues/5661): This needs to be updated to handle recursive aggregation.
211
+ // There is still a proofAsFields method but we could consider getting rid of it as the proof itself
212
+ // is a list of field elements.
213
+ // UltraHonk also does not have public inputs directly prepended to the proof and they are still instead
214
+ // inserted at an offset.
215
+ // const proof = reconstructProofWithPublicInputs(proofData);
216
+ // const proofAsFields = (await this.api.acirProofAsFieldsUltraHonk(proof)).slice(numOfPublicInputs);
217
+
218
+ // TODO: perhaps we should put this in the init function. Need to benchmark
219
+ // TODO how long it takes.
220
+ const vkResult = await this.api.circuitComputeVk({
221
+ circuit: {
222
+ name: 'circuit',
223
+ bytecode: Buffer.from(this.acirUncompressedBytecode),
224
+ },
225
+ settings: getProofSettingsFromOptions({}),
226
+ });
227
+
228
+ // Convert VK bytes to field elements (32-byte chunks)
229
+ const vkAsFields: string[] = [];
230
+ for (let i = 0; i < vkResult.bytes.length; i += 32) {
231
+ const chunk = vkResult.bytes.slice(i, i + 32);
232
+ vkAsFields.push(uint8ArrayToHex(chunk));
233
+ }
234
+
235
+ return {
236
+ // TODO(https://github.com/noir-lang/noir/issues/5661)
237
+ proofAsFields: [],
238
+ vkAsFields,
239
+ // We use an empty string for the vk hash here as it is unneeded as part of the recursive artifacts
240
+ // The user can be expected to hash the vk inside their circuit to check whether the vk is the circuit
241
+ // they expect
242
+ vkHash: uint8ArrayToHex(vkResult.hash),
243
+ };
244
+ }
245
+
246
+ async destroy(): Promise<void> {
247
+ if (!this.api) {
248
+ return;
249
+ }
250
+ await this.api.destroy();
251
+ }
252
+ }
253
+
254
+ export class AztecClientBackend {
255
+ // These type assertions are used so that we don't
256
+ // have to initialize `api` in the constructor.
257
+ // These are initialized asynchronously in the `init` function,
258
+ // constructors cannot be asynchronous which is why we do this.
259
+
260
+ protected api!: Barretenberg;
261
+
262
+ constructor(
263
+ protected acirBuf: Uint8Array[],
264
+ protected options: BackendOptions = { threads: 1 },
265
+ ) {}
266
+
267
+ /** @ignore */
268
+ private async instantiate(): Promise<void> {
269
+ if (!this.api) {
270
+ const api = await Barretenberg.new(this.options);
271
+ await api.initSRSChonk();
272
+ this.api = api;
273
+ }
274
+ }
275
+
276
+ async prove(witnessBuf: Uint8Array[], vksBuf: Uint8Array[] = []): Promise<[Uint8Array[], Uint8Array, Uint8Array]> {
277
+ if (vksBuf.length !== 0 && this.acirBuf.length !== witnessBuf.length) {
278
+ throw new AztecClientBackendError('Witness and bytecodes must have the same stack depth!');
279
+ }
280
+ if (vksBuf.length !== 0 && vksBuf.length !== witnessBuf.length) {
281
+ // NOTE: we allow 0 as an explicit 'I have no VKs'. This is a deprecated feature.
282
+ throw new AztecClientBackendError('Witness and VKs must have the same stack depth!');
283
+ }
284
+ await this.instantiate();
285
+
286
+ // Queue IVC start with the number of circuits
287
+ this.api.chonkStart({ numCircuits: this.acirBuf.length });
288
+
289
+ // Queue load and accumulate for each circuit
290
+ for (let i = 0; i < this.acirBuf.length; i++) {
291
+ const bytecode = this.acirBuf[i];
292
+ const witness = witnessBuf[i] || Buffer.from([]);
293
+ const vk = vksBuf[i] || Buffer.from([]);
294
+ const functionName = `unknown_wasm_${i}`;
295
+
296
+ // Load the circuit
297
+ this.api.chonkLoad({
298
+ circuit: {
299
+ name: functionName,
300
+ bytecode: Buffer.from(bytecode),
301
+ verificationKey: Buffer.from(vk),
302
+ },
303
+ });
304
+
305
+ // Accumulate with witness
306
+ this.api.chonkAccumulate({
307
+ witness: Buffer.from(witness),
308
+ });
309
+ }
310
+
311
+ // Generate the proof (and wait for all previous steps to finish)
312
+ const proveResult = await this.api.chonkProve({});
313
+ // The API currently expects a msgpack-encoded API.
314
+ const proof = new Encoder({ useRecords: false }).encode(fromChonkProof(proveResult.proof));
315
+ // Generate the VK
316
+ const vkResult = await this.api.chonkComputeIvcVk({
317
+ circuit: {
318
+ name: 'hiding',
319
+ bytecode: this.acirBuf[this.acirBuf.length - 1],
320
+ },
321
+ });
322
+
323
+ const proofFields = [
324
+ proveResult.proof.megaProof,
325
+ proveResult.proof.goblinProof.mergeProof,
326
+ proveResult.proof.goblinProof.eccvmProof.preIpaProof,
327
+ proveResult.proof.goblinProof.eccvmProof.ipaProof,
328
+ proveResult.proof.goblinProof.translatorProof,
329
+ ].flat();
330
+
331
+ // Note: Verification may not work correctly until we properly serialize the proof
332
+ if (!(await this.verify(proof, vkResult.bytes))) {
333
+ throw new AztecClientBackendError('Failed to verify the private (Chonk) transaction proof!');
334
+ }
335
+ return [proofFields, proof, vkResult.bytes];
336
+ }
337
+
338
+ async verify(proof: Uint8Array, vk: Uint8Array): Promise<boolean> {
339
+ await this.instantiate();
340
+ const result = await this.api.chonkVerify({
341
+ proof: toChonkProof(new Decoder({ useRecords: false }).decode(proof)),
342
+ vk: Buffer.from(vk),
343
+ });
344
+ return result.valid;
345
+ }
346
+
347
+ async gates(): Promise<number[]> {
348
+ await this.instantiate();
349
+ const circuitSizes: number[] = [];
350
+ for (const buf of this.acirBuf) {
351
+ const gates = await this.api.chonkStats({
352
+ circuit: {
353
+ name: 'circuit',
354
+ bytecode: buf,
355
+ },
356
+ includeGatesPerOpcode: false,
357
+ });
358
+ circuitSizes.push(gates.circuitSize);
359
+ }
360
+ return circuitSizes;
361
+ }
362
+
363
+ async destroy(): Promise<void> {
364
+ if (!this.api) {
365
+ return;
366
+ }
367
+ await this.api.destroy();
368
+ }
369
+ }
370
+
371
+ // Converts bytecode from a base64 string to a Uint8Array
372
+ function acirToUint8Array(base64EncodedBytecode: string): Uint8Array {
373
+ const compressedByteCode = base64Decode(base64EncodedBytecode);
374
+ return ungzip(compressedByteCode);
375
+ }
376
+
377
+ // Since this is a simple function, we can use feature detection to
378
+ // see if we are in the nodeJs environment or the browser environment.
379
+ function base64Decode(input: string): Uint8Array {
380
+ if (typeof Buffer !== 'undefined') {
381
+ // Node.js environment
382
+ const b = Buffer.from(input, 'base64');
383
+ return new Uint8Array(b.buffer, b.byteOffset, b.byteLength);
384
+ } else if (typeof atob === 'function') {
385
+ // Browser environment
386
+ return Uint8Array.from(atob(input), c => c.charCodeAt(0));
387
+ } else {
388
+ throw new Error('No implementation found for base64 decoding.');
389
+ }
390
+ }
@@ -0,0 +1,69 @@
1
+ import { BackendType, Barretenberg, BarretenbergSync } from './index.js';
2
+ import { Fr } from '../types/index.js';
3
+
4
+ describe('blake2s async', () => {
5
+ let api: Barretenberg;
6
+
7
+ beforeAll(async () => {
8
+ // We're going to test over a worker backend to cover more code paths.
9
+ api = await Barretenberg.new({ threads: 1, backend: BackendType.WasmWorker });
10
+ });
11
+
12
+ afterAll(async () => {
13
+ await api.destroy();
14
+ });
15
+
16
+ it('blake2s', async () => {
17
+ const input = Buffer.from('abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789');
18
+ const expected = new Uint8Array([
19
+ 0x44, 0xdd, 0xdb, 0x39, 0xbd, 0xb2, 0xaf, 0x80, 0xc1, 0x47, 0x89, 0x4c, 0x1d, 0x75, 0x6a, 0xda, 0x3d, 0x1c, 0x2a,
20
+ 0xc2, 0xb1, 0x00, 0x54, 0x1e, 0x04, 0xfe, 0x87, 0xb4, 0xa5, 0x9e, 0x12, 0x43,
21
+ ]);
22
+ const response = await api.blake2s({ data: input });
23
+ expect(response.hash).toEqual(expected);
24
+ });
25
+
26
+ it('blake2sToField', async () => {
27
+ const input = Buffer.from('abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789');
28
+ const expected = Fr.fromBufferReduce(
29
+ new Uint8Array([
30
+ 0x44, 0xdd, 0xdb, 0x39, 0xbd, 0xb2, 0xaf, 0x80, 0xc1, 0x47, 0x89, 0x4c, 0x1d, 0x75, 0x6a, 0xda, 0x3d, 0x1c,
31
+ 0x2a, 0xc2, 0xb1, 0x00, 0x54, 0x1e, 0x04, 0xfe, 0x87, 0xb4, 0xa5, 0x9e, 0x12, 0x43,
32
+ ]),
33
+ );
34
+ const response = await api.blake2sToField({ data: input });
35
+ const result = Fr.fromBuffer(response.field);
36
+ expect(result).toEqual(expected);
37
+ });
38
+ });
39
+
40
+ describe('blake2s sync', () => {
41
+ let api: BarretenbergSync;
42
+
43
+ beforeAll(async () => {
44
+ api = await BarretenbergSync.initSingleton();
45
+ });
46
+
47
+ it('blake2s', () => {
48
+ const input = Buffer.from('abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789');
49
+ const expected = new Uint8Array([
50
+ 0x44, 0xdd, 0xdb, 0x39, 0xbd, 0xb2, 0xaf, 0x80, 0xc1, 0x47, 0x89, 0x4c, 0x1d, 0x75, 0x6a, 0xda, 0x3d, 0x1c, 0x2a,
51
+ 0xc2, 0xb1, 0x00, 0x54, 0x1e, 0x04, 0xfe, 0x87, 0xb4, 0xa5, 0x9e, 0x12, 0x43,
52
+ ]);
53
+ const response = api.blake2s({ data: input });
54
+ expect(response.hash).toEqual(expected);
55
+ });
56
+
57
+ it('blake2sToField', () => {
58
+ const input = Buffer.from('abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789');
59
+ const expected = Fr.fromBufferReduce(
60
+ new Uint8Array([
61
+ 0x44, 0xdd, 0xdb, 0x39, 0xbd, 0xb2, 0xaf, 0x80, 0xc1, 0x47, 0x89, 0x4c, 0x1d, 0x75, 0x6a, 0xda, 0x3d, 0x1c,
62
+ 0x2a, 0xc2, 0xb1, 0x00, 0x54, 0x1e, 0x04, 0xfe, 0x87, 0xb4, 0xa5, 0x9e, 0x12, 0x43,
63
+ ]),
64
+ );
65
+ const response = api.blake2sToField({ data: input });
66
+ const result = Fr.fromBuffer(response.field);
67
+ expect(result).toEqual(expected);
68
+ });
69
+ });
@@ -0,0 +1,223 @@
1
+ import { Crs, GrumpkinCrs } from '../crs/index.js';
2
+ import { createDebugLogger } from '../log/index.js';
3
+ import { AsyncApi } from '../cbind/generated/async.js';
4
+ import { SyncApi } from '../cbind/generated/sync.js';
5
+ import { IMsgpackBackendSync, IMsgpackBackendAsync } from '../bb_backends/interface.js';
6
+ import { BackendOptions, BackendType } from '../bb_backends/index.js';
7
+ import { createAsyncBackend, createSyncBackend } from '../bb_backends/node/index.js';
8
+
9
+ export { UltraHonkBackend, UltraHonkVerifierBackend, AztecClientBackend } from './backend.js';
10
+ export * from '../bb_backends/index.js';
11
+
12
+ export type CircuitOptions = {
13
+ /** @description Whether to produce SNARK friendly proofs */
14
+ recursive: boolean;
15
+ };
16
+
17
+ /**
18
+ * The main class library consumers interact with.
19
+ * It extends the generated api, and provides a static constructor "new" to compose components.
20
+ */
21
+ export class Barretenberg extends AsyncApi {
22
+ private options: BackendOptions;
23
+
24
+ constructor(backend: IMsgpackBackendAsync, options: BackendOptions) {
25
+ super(backend);
26
+ this.options = options;
27
+ }
28
+
29
+ /**
30
+ * Constructs an instance of Barretenberg.
31
+ *
32
+ * If options.backend is set: uses that specific backend (throws if unavailable)
33
+ * If options.backend is unset: tries backends in order with fallback:
34
+ * 1. NativeSharedMemory (if bb binary available)
35
+ * 2. WasmWorker (in browser) or Wasm (in Node.js)
36
+ */
37
+ static async new(options: BackendOptions = {}) {
38
+ const logger = options.logger ?? createDebugLogger('bb_async');
39
+
40
+ if (options.backend) {
41
+ // Explicit backend required - no fallback
42
+ return await createAsyncBackend(options.backend, options, logger);
43
+ }
44
+
45
+ if (typeof window === 'undefined') {
46
+ try {
47
+ return await createAsyncBackend(BackendType.NativeSharedMemory, options, logger);
48
+ } catch (err: any) {
49
+ logger(`Shared memory unavailable (${err.message}), falling back to other backends`);
50
+ try {
51
+ return await createAsyncBackend(BackendType.NativeUnixSocket, options, logger);
52
+ } catch (err: any) {
53
+ logger(`Unix socket unavailable (${err.message}), falling back to WASM`);
54
+ return await createAsyncBackend(BackendType.Wasm, options, logger);
55
+ }
56
+ }
57
+ } else {
58
+ logger(`In browser, using WASM over worker backend.`);
59
+ return await createAsyncBackend(BackendType.WasmWorker, options, logger);
60
+ }
61
+ }
62
+
63
+ async initSRSForCircuitSize(circuitSize: number): Promise<void> {
64
+ const minSRSSize = 2 ** 9; // 2**9 is the dyadic size for the SmallSubgroupIPA MSM.
65
+ const crs = await Crs.new(Math.max(circuitSize, minSRSSize) + 1, this.options.crsPath, this.options.logger);
66
+ // TODO(https://github.com/AztecProtocol/barretenberg/issues/1129): Do slab allocator initialization?
67
+ // await this.commonInitSlabAllocator(circuitSize);
68
+ await this.srsInitSrs({ pointsBuf: crs.getG1Data(), numPoints: crs.numPoints, g2Point: crs.getG2Data() });
69
+ }
70
+
71
+ async initSRSChonk(srsSize = this.getDefaultSrsSize()): Promise<void> {
72
+ // crsPath can be undefined
73
+ const crs = await Crs.new(srsSize + 1, this.options.crsPath, this.options.logger);
74
+ const grumpkinCrs = await GrumpkinCrs.new(2 ** 16 + 1, this.options.crsPath, this.options.logger);
75
+
76
+ // Load CRS into wasm global CRS state.
77
+ // TODO: Make RawBuffer be default behavior, and have a specific Vector type for when wanting length prefixed.
78
+ await this.srsInitSrs({ pointsBuf: crs.getG1Data(), numPoints: crs.numPoints, g2Point: crs.getG2Data() });
79
+ await this.srsInitGrumpkinSrs({ pointsBuf: grumpkinCrs.getG1Data(), numPoints: grumpkinCrs.numPoints });
80
+ }
81
+
82
+ getDefaultSrsSize(): number {
83
+ // iOS browser is very aggressive with memory. Check if running in browser and on iOS
84
+ // We expect the mobile iOS browser to kill us >=1GB, so no real use in using a larger SRS.
85
+ if (typeof window !== 'undefined' && /iPad|iPhone/.test(navigator.userAgent)) {
86
+ return 2 ** 18;
87
+ }
88
+ return 2 ** 20;
89
+ }
90
+
91
+ async acirGetCircuitSizes(
92
+ bytecode: Uint8Array,
93
+ recursive: boolean,
94
+ honkRecursion: boolean,
95
+ ): Promise<[number, number]> {
96
+ const response = await this.circuitStats({
97
+ circuit: { name: '', bytecode, verificationKey: new Uint8Array() },
98
+ includeGatesPerOpcode: false,
99
+ settings: {
100
+ ipaAccumulation: false,
101
+ oracleHashType: honkRecursion ? 'poseidon2' : 'keccak',
102
+ disableZk: !recursive,
103
+ optimizedSolidityVerifier: false,
104
+ },
105
+ });
106
+ return [response.numGates, response.numGatesDyadic];
107
+ }
108
+
109
+ async acirInitSRS(bytecode: Uint8Array, recursive: boolean, honkRecursion: boolean): Promise<void> {
110
+ const [_, subgroupSize] = await this.acirGetCircuitSizes(bytecode, recursive, honkRecursion);
111
+ return this.initSRSForCircuitSize(subgroupSize);
112
+ }
113
+
114
+ async destroy() {
115
+ return super.destroy();
116
+ }
117
+
118
+ /**
119
+ * Initialize the singleton instance of Barretenberg.
120
+ * @param options Backend configuration options
121
+ */
122
+ static async initSingleton(options: BackendOptions = {}) {
123
+ if (!barretenbergSingletonPromise) {
124
+ barretenbergSingletonPromise = Barretenberg.new(options);
125
+ }
126
+ try {
127
+ barretenbergSingleton = await barretenbergSingletonPromise;
128
+ return barretenbergSingleton;
129
+ } catch (error) {
130
+ // If initialization fails, clear the singleton so next call can retry
131
+ barretenbergSingleton = undefined!;
132
+ barretenbergSingletonPromise = undefined!;
133
+ throw error;
134
+ }
135
+ }
136
+
137
+ static async destroySingleton() {
138
+ if (barretenbergSingleton) {
139
+ await barretenbergSingleton.destroy();
140
+ barretenbergSingleton = undefined!;
141
+ barretenbergSingletonPromise = undefined!;
142
+ }
143
+ }
144
+
145
+ /**
146
+ * Get the singleton instance of Barretenberg.
147
+ * Must call initSingleton() first.
148
+ */
149
+ static getSingleton() {
150
+ if (!barretenbergSingleton) {
151
+ throw new Error('First call Barretenberg.initSingleton() on @aztec/bb.js module.');
152
+ }
153
+ return barretenbergSingleton;
154
+ }
155
+ }
156
+
157
+ let barretenbergSingletonPromise: Promise<Barretenberg>;
158
+ let barretenbergSingleton: Barretenberg;
159
+
160
+ let barretenbergSyncSingletonPromise: Promise<BarretenbergSync>;
161
+ let barretenbergSyncSingleton: BarretenbergSync;
162
+
163
+ export class BarretenbergSync extends SyncApi {
164
+ constructor(backend: IMsgpackBackendSync) {
165
+ super(backend);
166
+ }
167
+
168
+ /**
169
+ * Create a new BarretenbergSync instance.
170
+ *
171
+ * If options.backend is set: uses that specific backend (throws if unavailable)
172
+ * If options.backend is unset: tries backends in order with fallback:
173
+ * 1. NativeSharedMem (if bb binary + NAPI module available)
174
+ * 2. Wasm
175
+ *
176
+ * Supported backends: Wasm, NativeSharedMem
177
+ * Not supported: WasmWorker (no workers in sync), NativeUnixSocket (async only)
178
+ */
179
+ static async new(options: BackendOptions = {}) {
180
+ const logger = options.logger ?? createDebugLogger('bb_sync');
181
+
182
+ if (options.backend) {
183
+ return await createSyncBackend(options.backend, options, logger);
184
+ }
185
+
186
+ // Try native, fallback to WASM.
187
+ try {
188
+ return await createSyncBackend(BackendType.NativeSharedMemory, options, logger);
189
+ } catch (err: any) {
190
+ logger(`Shared memory unavailable (${err.message}), falling back to WASM`);
191
+ }
192
+
193
+ return await createSyncBackend(BackendType.Wasm, options, logger);
194
+ }
195
+
196
+ /**
197
+ * Initialize the singleton instance.
198
+ * @param options Backend configuration options
199
+ */
200
+ static async initSingleton(options: BackendOptions = {}) {
201
+ if (!barretenbergSyncSingletonPromise) {
202
+ barretenbergSyncSingletonPromise = BarretenbergSync.new(options);
203
+ }
204
+
205
+ barretenbergSyncSingleton = await barretenbergSyncSingletonPromise;
206
+ return barretenbergSyncSingleton;
207
+ }
208
+
209
+ static destroySingleton() {
210
+ if (barretenbergSyncSingleton) {
211
+ barretenbergSyncSingleton.destroy();
212
+ barretenbergSyncSingleton = undefined!;
213
+ barretenbergSyncSingletonPromise = undefined!;
214
+ }
215
+ }
216
+
217
+ static getSingleton() {
218
+ if (!barretenbergSyncSingleton) {
219
+ throw new Error('First call BarretenbergSync.initSingleton() on @aztec/bb.js module.');
220
+ }
221
+ return barretenbergSyncSingleton;
222
+ }
223
+ }