@aztec/bb.js 0.0.0-devnet

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 (545) hide show
  1. package/README.md +149 -0
  2. package/dest/browser/522.index.js +10 -0
  3. package/dest/browser/barretenberg/backend.d.ts +85 -0
  4. package/dest/browser/barretenberg/backend.d.ts.map +1 -0
  5. package/dest/browser/barretenberg/index.d.ts +47 -0
  6. package/dest/browser/barretenberg/index.d.ts.map +1 -0
  7. package/dest/browser/barretenberg/verifier.d.ts +16 -0
  8. package/dest/browser/barretenberg/verifier.d.ts.map +1 -0
  9. package/dest/browser/barretenberg_api/index.d.ts +113 -0
  10. package/dest/browser/barretenberg_api/index.d.ts.map +1 -0
  11. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +44 -0
  12. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -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/main.worker.d.ts +3 -0
  16. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts.map +1 -0
  17. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +4 -0
  18. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -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/index.d.ts +47 -0
  22. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -0
  23. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +2 -0
  24. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -0
  25. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +3 -0
  26. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts.map +1 -0
  27. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +4 -0
  28. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -0
  29. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +28 -0
  30. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -0
  31. package/dest/browser/barretenberg_wasm/fetch_code/browser/index.d.ts +2 -0
  32. package/dest/browser/barretenberg_wasm/fetch_code/browser/index.d.ts.map +1 -0
  33. package/dest/browser/barretenberg_wasm/fetch_code/index.d.ts +2 -0
  34. package/dest/browser/barretenberg_wasm/fetch_code/index.d.ts.map +1 -0
  35. package/dest/browser/barretenberg_wasm/fetch_code/node/index.d.ts +2 -0
  36. package/dest/browser/barretenberg_wasm/fetch_code/node/index.d.ts.map +1 -0
  37. package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts +6 -0
  38. package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -0
  39. package/dest/browser/barretenberg_wasm/helpers/index.d.ts +2 -0
  40. package/dest/browser/barretenberg_wasm/helpers/index.d.ts.map +1 -0
  41. package/dest/browser/barretenberg_wasm/helpers/node/index.d.ts +22 -0
  42. package/dest/browser/barretenberg_wasm/helpers/node/index.d.ts.map +1 -0
  43. package/dest/browser/barretenberg_wasm/helpers/node/node_endpoint.d.ts +8 -0
  44. package/dest/browser/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -0
  45. package/dest/browser/barretenberg_wasm/index.d.ts +18 -0
  46. package/dest/browser/barretenberg_wasm/index.d.ts.map +1 -0
  47. package/dest/browser/bigint-array/index.d.ts +3 -0
  48. package/dest/browser/bigint-array/index.d.ts.map +1 -0
  49. package/dest/browser/crs/browser/cached_net_crs.d.ts +43 -0
  50. package/dest/browser/crs/browser/cached_net_crs.d.ts.map +1 -0
  51. package/dest/browser/crs/browser/index.d.ts +2 -0
  52. package/dest/browser/crs/browser/index.d.ts.map +1 -0
  53. package/dest/browser/crs/index.d.ts +2 -0
  54. package/dest/browser/crs/index.d.ts.map +1 -0
  55. package/dest/browser/crs/net_crs.d.ts +61 -0
  56. package/dest/browser/crs/net_crs.d.ts.map +1 -0
  57. package/dest/browser/crs/node/index.d.ts +36 -0
  58. package/dest/browser/crs/node/index.d.ts.map +1 -0
  59. package/dest/browser/index.d.ts +5 -0
  60. package/dest/browser/index.d.ts.map +1 -0
  61. package/dest/browser/index.js +16205 -0
  62. package/dest/browser/proof/index.d.ts +19 -0
  63. package/dest/browser/proof/index.d.ts.map +1 -0
  64. package/dest/browser/random/browser/index.d.ts +2 -0
  65. package/dest/browser/random/browser/index.d.ts.map +1 -0
  66. package/dest/browser/random/index.d.ts +2 -0
  67. package/dest/browser/random/index.d.ts.map +1 -0
  68. package/dest/browser/random/node/index.d.ts +2 -0
  69. package/dest/browser/random/node/index.d.ts.map +1 -0
  70. package/dest/browser/serialize/buffer_reader.d.ts +28 -0
  71. package/dest/browser/serialize/buffer_reader.d.ts.map +1 -0
  72. package/dest/browser/serialize/index.d.ts +4 -0
  73. package/dest/browser/serialize/index.d.ts.map +1 -0
  74. package/dest/browser/serialize/output_type.d.ts +11 -0
  75. package/dest/browser/serialize/output_type.d.ts.map +1 -0
  76. package/dest/browser/serialize/serialize.d.ts +53 -0
  77. package/dest/browser/serialize/serialize.d.ts.map +1 -0
  78. package/dest/browser/types/fields.d.ts +43 -0
  79. package/dest/browser/types/fields.d.ts.map +1 -0
  80. package/dest/browser/types/fixed_size_buffer.d.ts +26 -0
  81. package/dest/browser/types/fixed_size_buffer.d.ts.map +1 -0
  82. package/dest/browser/types/index.d.ts +6 -0
  83. package/dest/browser/types/index.d.ts.map +1 -0
  84. package/dest/browser/types/point.d.ts +17 -0
  85. package/dest/browser/types/point.d.ts.map +1 -0
  86. package/dest/browser/types/ptr.d.ts +13 -0
  87. package/dest/browser/types/ptr.d.ts.map +1 -0
  88. package/dest/browser/types/raw_buffer.d.ts +3 -0
  89. package/dest/browser/types/raw_buffer.d.ts.map +1 -0
  90. package/dest/node/async_map/index.d.ts +10 -0
  91. package/dest/node/async_map/index.d.ts.map +1 -0
  92. package/dest/node/async_map/index.js +16 -0
  93. package/dest/node/barretenberg/backend.d.ts +85 -0
  94. package/dest/node/barretenberg/backend.d.ts.map +1 -0
  95. package/dest/node/barretenberg/backend.js +247 -0
  96. package/dest/node/barretenberg/blake2s.test.d.ts +2 -0
  97. package/dest/node/barretenberg/blake2s.test.d.ts.map +1 -0
  98. package/dest/node/barretenberg/blake2s.test.js +54 -0
  99. package/dest/node/barretenberg/common.test.d.ts +2 -0
  100. package/dest/node/barretenberg/common.test.d.ts.map +1 -0
  101. package/dest/node/barretenberg/common.test.js +20 -0
  102. package/dest/node/barretenberg/index.d.ts +47 -0
  103. package/dest/node/barretenberg/index.d.ts.map +1 -0
  104. package/dest/node/barretenberg/index.js +97 -0
  105. package/dest/node/barretenberg/pedersen.test.d.ts +2 -0
  106. package/dest/node/barretenberg/pedersen.test.d.ts.map +1 -0
  107. package/dest/node/barretenberg/pedersen.test.js +55 -0
  108. package/dest/node/barretenberg/poseidon.test.d.ts +2 -0
  109. package/dest/node/barretenberg/poseidon.test.d.ts.map +1 -0
  110. package/dest/node/barretenberg/poseidon.test.js +35 -0
  111. package/dest/node/barretenberg/schnorr.test.d.ts +2 -0
  112. package/dest/node/barretenberg/schnorr.test.d.ts.map +1 -0
  113. package/dest/node/barretenberg/schnorr.test.js +113 -0
  114. package/dest/node/barretenberg/verifier.d.ts +16 -0
  115. package/dest/node/barretenberg/verifier.d.ts.map +1 -0
  116. package/dest/node/barretenberg/verifier.js +40 -0
  117. package/dest/node/barretenberg_api/index.d.ts +113 -0
  118. package/dest/node/barretenberg_api/index.d.ts.map +1 -0
  119. package/dest/node/barretenberg_api/index.js +728 -0
  120. package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  121. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +44 -0
  122. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -0
  123. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.js +125 -0
  124. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +2 -0
  125. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -0
  126. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +10 -0
  127. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +3 -0
  128. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts.map +1 -0
  129. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +12 -0
  130. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +4 -0
  131. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -0
  132. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +18 -0
  133. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +2 -0
  134. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts.map +1 -0
  135. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +9 -0
  136. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +21 -0
  137. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -0
  138. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +57 -0
  139. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +47 -0
  140. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -0
  141. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +107 -0
  142. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +2 -0
  143. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -0
  144. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +10 -0
  145. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +3 -0
  146. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts.map +1 -0
  147. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +12 -0
  148. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +4 -0
  149. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -0
  150. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +18 -0
  151. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +2 -0
  152. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts.map +1 -0
  153. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +9 -0
  154. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +28 -0
  155. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -0
  156. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.js +40 -0
  157. package/dest/node/barretenberg_wasm/fetch_code/browser/index.d.ts +2 -0
  158. package/dest/node/barretenberg_wasm/fetch_code/browser/index.d.ts.map +1 -0
  159. package/dest/node/barretenberg_wasm/fetch_code/browser/index.js +12 -0
  160. package/dest/node/barretenberg_wasm/fetch_code/index.d.ts +2 -0
  161. package/dest/node/barretenberg_wasm/fetch_code/index.d.ts.map +1 -0
  162. package/dest/node/barretenberg_wasm/fetch_code/index.js +2 -0
  163. package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts +2 -0
  164. package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts.map +1 -0
  165. package/dest/node/barretenberg_wasm/fetch_code/node/index.js +22 -0
  166. package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts +6 -0
  167. package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -0
  168. package/dest/node/barretenberg_wasm/helpers/browser/index.js +18 -0
  169. package/dest/node/barretenberg_wasm/helpers/index.d.ts +2 -0
  170. package/dest/node/barretenberg_wasm/helpers/index.d.ts.map +1 -0
  171. package/dest/node/barretenberg_wasm/helpers/index.js +2 -0
  172. package/dest/node/barretenberg_wasm/helpers/node/index.d.ts +22 -0
  173. package/dest/node/barretenberg_wasm/helpers/node/index.d.ts.map +1 -0
  174. package/dest/node/barretenberg_wasm/helpers/node/index.js +39 -0
  175. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts +8 -0
  176. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -0
  177. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.js +28 -0
  178. package/dest/node/barretenberg_wasm/index.d.ts +18 -0
  179. package/dest/node/barretenberg_wasm/index.d.ts.map +1 -0
  180. package/dest/node/barretenberg_wasm/index.js +45 -0
  181. package/dest/node/barretenberg_wasm/index.test.d.ts +2 -0
  182. package/dest/node/barretenberg_wasm/index.test.d.ts.map +1 -0
  183. package/dest/node/barretenberg_wasm/index.test.js +38 -0
  184. package/dest/node/benchmark/index.d.ts +3 -0
  185. package/dest/node/benchmark/index.d.ts.map +1 -0
  186. package/dest/node/benchmark/index.js +25 -0
  187. package/dest/node/benchmark/timer.d.ts +34 -0
  188. package/dest/node/benchmark/timer.d.ts.map +1 -0
  189. package/dest/node/benchmark/timer.js +41 -0
  190. package/dest/node/bigint-array/index.d.ts +3 -0
  191. package/dest/node/bigint-array/index.d.ts.map +1 -0
  192. package/dest/node/bigint-array/index.js +21 -0
  193. package/dest/node/bindgen/function_declaration.d.ts +11 -0
  194. package/dest/node/bindgen/function_declaration.d.ts.map +1 -0
  195. package/dest/node/bindgen/function_declaration.js +2 -0
  196. package/dest/node/bindgen/index.d.ts +2 -0
  197. package/dest/node/bindgen/index.d.ts.map +1 -0
  198. package/dest/node/bindgen/index.js +15 -0
  199. package/dest/node/bindgen/mappings.d.ts +4 -0
  200. package/dest/node/bindgen/mappings.d.ts.map +1 -0
  201. package/dest/node/bindgen/mappings.js +63 -0
  202. package/dest/node/bindgen/rust.d.ts +2 -0
  203. package/dest/node/bindgen/rust.d.ts.map +1 -0
  204. package/dest/node/bindgen/rust.js +43 -0
  205. package/dest/node/bindgen/to_camel_case.d.ts +2 -0
  206. package/dest/node/bindgen/to_camel_case.d.ts.map +1 -0
  207. package/dest/node/bindgen/to_camel_case.js +11 -0
  208. package/dest/node/bindgen/typescript.d.ts +2 -0
  209. package/dest/node/bindgen/typescript.d.ts.map +1 -0
  210. package/dest/node/bindgen/typescript.js +100 -0
  211. package/dest/node/crs/browser/cached_net_crs.d.ts +43 -0
  212. package/dest/node/crs/browser/cached_net_crs.d.ts.map +1 -0
  213. package/dest/node/crs/browser/cached_net_crs.js +90 -0
  214. package/dest/node/crs/browser/index.d.ts +2 -0
  215. package/dest/node/crs/browser/index.d.ts.map +1 -0
  216. package/dest/node/crs/browser/index.js +2 -0
  217. package/dest/node/crs/index.d.ts +2 -0
  218. package/dest/node/crs/index.d.ts.map +1 -0
  219. package/dest/node/crs/index.js +2 -0
  220. package/dest/node/crs/net_crs.d.ts +61 -0
  221. package/dest/node/crs/net_crs.d.ts.map +1 -0
  222. package/dest/node/crs/net_crs.js +97 -0
  223. package/dest/node/crs/node/ignition_files_crs.d.ts +38 -0
  224. package/dest/node/crs/node/ignition_files_crs.d.ts.map +1 -0
  225. package/dest/node/crs/node/ignition_files_crs.js +65 -0
  226. package/dest/node/crs/node/index.d.ts +36 -0
  227. package/dest/node/crs/node/index.d.ts.map +1 -0
  228. package/dest/node/crs/node/index.js +93 -0
  229. package/dest/node/examples/simple.rawtest.d.ts +2 -0
  230. package/dest/node/examples/simple.rawtest.d.ts.map +1 -0
  231. package/dest/node/examples/simple.rawtest.js +30 -0
  232. package/dest/node/examples/simple.test.d.ts +2 -0
  233. package/dest/node/examples/simple.test.d.ts.map +1 -0
  234. package/dest/node/examples/simple.test.js +23 -0
  235. package/dest/node/index.d.ts +5 -0
  236. package/dest/node/index.d.ts.map +1 -0
  237. package/dest/node/index.js +5 -0
  238. package/dest/node/main.d.ts +23 -0
  239. package/dest/node/main.d.ts.map +1 -0
  240. package/dest/node/main.js +712 -0
  241. package/dest/node/proof/index.d.ts +19 -0
  242. package/dest/node/proof/index.d.ts.map +1 -0
  243. package/dest/node/proof/index.js +85 -0
  244. package/dest/node/random/browser/index.d.ts +2 -0
  245. package/dest/node/random/browser/index.d.ts.map +1 -0
  246. package/dest/node/random/browser/index.js +31 -0
  247. package/dest/node/random/index.d.ts +2 -0
  248. package/dest/node/random/index.d.ts.map +1 -0
  249. package/dest/node/random/index.js +2 -0
  250. package/dest/node/random/node/index.d.ts +2 -0
  251. package/dest/node/random/node/index.d.ts.map +1 -0
  252. package/dest/node/random/node/index.js +5 -0
  253. package/dest/node/serialize/buffer_reader.d.ts +28 -0
  254. package/dest/node/serialize/buffer_reader.d.ts.map +1 -0
  255. package/dest/node/serialize/buffer_reader.js +66 -0
  256. package/dest/node/serialize/index.d.ts +4 -0
  257. package/dest/node/serialize/index.d.ts.map +1 -0
  258. package/dest/node/serialize/index.js +4 -0
  259. package/dest/node/serialize/output_type.d.ts +11 -0
  260. package/dest/node/serialize/output_type.d.ts.map +1 -0
  261. package/dest/node/serialize/output_type.js +44 -0
  262. package/dest/node/serialize/serialize.d.ts +53 -0
  263. package/dest/node/serialize/serialize.d.ts.map +1 -0
  264. package/dest/node/serialize/serialize.js +139 -0
  265. package/dest/node/types/fields.d.ts +43 -0
  266. package/dest/node/types/fields.d.ts.map +1 -0
  267. package/dest/node/types/fields.js +97 -0
  268. package/dest/node/types/fixed_size_buffer.d.ts +26 -0
  269. package/dest/node/types/fixed_size_buffer.d.ts.map +1 -0
  270. package/dest/node/types/fixed_size_buffer.js +51 -0
  271. package/dest/node/types/index.d.ts +6 -0
  272. package/dest/node/types/index.d.ts.map +1 -0
  273. package/dest/node/types/index.js +6 -0
  274. package/dest/node/types/point.d.ts +17 -0
  275. package/dest/node/types/point.d.ts.map +1 -0
  276. package/dest/node/types/point.js +31 -0
  277. package/dest/node/types/ptr.d.ts +13 -0
  278. package/dest/node/types/ptr.d.ts.map +1 -0
  279. package/dest/node/types/ptr.js +19 -0
  280. package/dest/node/types/raw_buffer.d.ts +3 -0
  281. package/dest/node/types/raw_buffer.d.ts.map +1 -0
  282. package/dest/node/types/raw_buffer.js +5 -0
  283. package/dest/node-cjs/async_map/index.d.ts +10 -0
  284. package/dest/node-cjs/async_map/index.d.ts.map +1 -0
  285. package/dest/node-cjs/async_map/index.js +20 -0
  286. package/dest/node-cjs/barretenberg/backend.d.ts +85 -0
  287. package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -0
  288. package/dest/node-cjs/barretenberg/backend.js +253 -0
  289. package/dest/node-cjs/barretenberg/blake2s.test.d.ts +2 -0
  290. package/dest/node-cjs/barretenberg/blake2s.test.d.ts.map +1 -0
  291. package/dest/node-cjs/barretenberg/blake2s.test.js +56 -0
  292. package/dest/node-cjs/barretenberg/common.test.d.ts +2 -0
  293. package/dest/node-cjs/barretenberg/common.test.d.ts.map +1 -0
  294. package/dest/node-cjs/barretenberg/common.test.js +22 -0
  295. package/dest/node-cjs/barretenberg/index.d.ts +47 -0
  296. package/dest/node-cjs/barretenberg/index.d.ts.map +1 -0
  297. package/dest/node-cjs/barretenberg/index.js +106 -0
  298. package/dest/node-cjs/barretenberg/pedersen.test.d.ts +2 -0
  299. package/dest/node-cjs/barretenberg/pedersen.test.d.ts.map +1 -0
  300. package/dest/node-cjs/barretenberg/pedersen.test.js +57 -0
  301. package/dest/node-cjs/barretenberg/poseidon.test.d.ts +2 -0
  302. package/dest/node-cjs/barretenberg/poseidon.test.d.ts.map +1 -0
  303. package/dest/node-cjs/barretenberg/poseidon.test.js +37 -0
  304. package/dest/node-cjs/barretenberg/schnorr.test.d.ts +2 -0
  305. package/dest/node-cjs/barretenberg/schnorr.test.d.ts.map +1 -0
  306. package/dest/node-cjs/barretenberg/schnorr.test.js +115 -0
  307. package/dest/node-cjs/barretenberg/verifier.d.ts +16 -0
  308. package/dest/node-cjs/barretenberg/verifier.d.ts.map +1 -0
  309. package/dest/node-cjs/barretenberg/verifier.js +44 -0
  310. package/dest/node-cjs/barretenberg_api/index.d.ts +113 -0
  311. package/dest/node-cjs/barretenberg_api/index.d.ts.map +1 -0
  312. package/dest/node-cjs/barretenberg_api/index.js +733 -0
  313. package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  314. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +44 -0
  315. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -0
  316. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.js +130 -0
  317. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +2 -0
  318. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -0
  319. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +15 -0
  320. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +3 -0
  321. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts.map +1 -0
  322. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +15 -0
  323. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +4 -0
  324. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -0
  325. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +22 -0
  326. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +2 -0
  327. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts.map +1 -0
  328. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +11 -0
  329. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +21 -0
  330. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -0
  331. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +61 -0
  332. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +47 -0
  333. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -0
  334. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +112 -0
  335. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +2 -0
  336. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -0
  337. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +15 -0
  338. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +3 -0
  339. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts.map +1 -0
  340. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +15 -0
  341. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +4 -0
  342. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -0
  343. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +22 -0
  344. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +2 -0
  345. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts.map +1 -0
  346. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +11 -0
  347. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +28 -0
  348. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -0
  349. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.js +44 -0
  350. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts +2 -0
  351. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts.map +1 -0
  352. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.js +17 -0
  353. package/dest/node-cjs/barretenberg_wasm/fetch_code/index.d.ts +2 -0
  354. package/dest/node-cjs/barretenberg_wasm/fetch_code/index.d.ts.map +1 -0
  355. package/dest/node-cjs/barretenberg_wasm/fetch_code/index.js +5 -0
  356. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts +2 -0
  357. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts.map +1 -0
  358. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.js +27 -0
  359. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts +6 -0
  360. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -0
  361. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.js +26 -0
  362. package/dest/node-cjs/barretenberg_wasm/helpers/index.d.ts +2 -0
  363. package/dest/node-cjs/barretenberg_wasm/helpers/index.d.ts.map +1 -0
  364. package/dest/node-cjs/barretenberg_wasm/helpers/index.js +5 -0
  365. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts +22 -0
  366. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts.map +1 -0
  367. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.js +48 -0
  368. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts +8 -0
  369. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -0
  370. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.js +32 -0
  371. package/dest/node-cjs/barretenberg_wasm/index.d.ts +18 -0
  372. package/dest/node-cjs/barretenberg_wasm/index.d.ts.map +1 -0
  373. package/dest/node-cjs/barretenberg_wasm/index.js +51 -0
  374. package/dest/node-cjs/barretenberg_wasm/index.test.d.ts +2 -0
  375. package/dest/node-cjs/barretenberg_wasm/index.test.d.ts.map +1 -0
  376. package/dest/node-cjs/barretenberg_wasm/index.test.js +40 -0
  377. package/dest/node-cjs/benchmark/index.d.ts +3 -0
  378. package/dest/node-cjs/benchmark/index.d.ts.map +1 -0
  379. package/dest/node-cjs/benchmark/index.js +30 -0
  380. package/dest/node-cjs/benchmark/timer.d.ts +34 -0
  381. package/dest/node-cjs/benchmark/timer.d.ts.map +1 -0
  382. package/dest/node-cjs/benchmark/timer.js +45 -0
  383. package/dest/node-cjs/bigint-array/index.d.ts +3 -0
  384. package/dest/node-cjs/bigint-array/index.d.ts.map +1 -0
  385. package/dest/node-cjs/bigint-array/index.js +26 -0
  386. package/dest/node-cjs/bindgen/function_declaration.d.ts +11 -0
  387. package/dest/node-cjs/bindgen/function_declaration.d.ts.map +1 -0
  388. package/dest/node-cjs/bindgen/function_declaration.js +3 -0
  389. package/dest/node-cjs/bindgen/index.d.ts +2 -0
  390. package/dest/node-cjs/bindgen/index.d.ts.map +1 -0
  391. package/dest/node-cjs/bindgen/index.js +17 -0
  392. package/dest/node-cjs/bindgen/mappings.d.ts +4 -0
  393. package/dest/node-cjs/bindgen/mappings.d.ts.map +1 -0
  394. package/dest/node-cjs/bindgen/mappings.js +68 -0
  395. package/dest/node-cjs/bindgen/rust.d.ts +2 -0
  396. package/dest/node-cjs/bindgen/rust.d.ts.map +1 -0
  397. package/dest/node-cjs/bindgen/rust.js +48 -0
  398. package/dest/node-cjs/bindgen/to_camel_case.d.ts +2 -0
  399. package/dest/node-cjs/bindgen/to_camel_case.d.ts.map +1 -0
  400. package/dest/node-cjs/bindgen/to_camel_case.js +15 -0
  401. package/dest/node-cjs/bindgen/typescript.d.ts +2 -0
  402. package/dest/node-cjs/bindgen/typescript.d.ts.map +1 -0
  403. package/dest/node-cjs/bindgen/typescript.js +105 -0
  404. package/dest/node-cjs/crs/browser/cached_net_crs.d.ts +43 -0
  405. package/dest/node-cjs/crs/browser/cached_net_crs.d.ts.map +1 -0
  406. package/dest/node-cjs/crs/browser/cached_net_crs.js +95 -0
  407. package/dest/node-cjs/crs/browser/index.d.ts +2 -0
  408. package/dest/node-cjs/crs/browser/index.d.ts.map +1 -0
  409. package/dest/node-cjs/crs/browser/index.js +7 -0
  410. package/dest/node-cjs/crs/index.d.ts +2 -0
  411. package/dest/node-cjs/crs/index.d.ts.map +1 -0
  412. package/dest/node-cjs/crs/index.js +7 -0
  413. package/dest/node-cjs/crs/net_crs.d.ts +61 -0
  414. package/dest/node-cjs/crs/net_crs.d.ts.map +1 -0
  415. package/dest/node-cjs/crs/net_crs.js +102 -0
  416. package/dest/node-cjs/crs/node/ignition_files_crs.d.ts +38 -0
  417. package/dest/node-cjs/crs/node/ignition_files_crs.d.ts.map +1 -0
  418. package/dest/node-cjs/crs/node/ignition_files_crs.js +69 -0
  419. package/dest/node-cjs/crs/node/index.d.ts +36 -0
  420. package/dest/node-cjs/crs/node/index.d.ts.map +1 -0
  421. package/dest/node-cjs/crs/node/index.js +99 -0
  422. package/dest/node-cjs/examples/simple.rawtest.d.ts +2 -0
  423. package/dest/node-cjs/examples/simple.rawtest.d.ts.map +1 -0
  424. package/dest/node-cjs/examples/simple.rawtest.js +33 -0
  425. package/dest/node-cjs/examples/simple.test.d.ts +2 -0
  426. package/dest/node-cjs/examples/simple.test.d.ts.map +1 -0
  427. package/dest/node-cjs/examples/simple.test.js +25 -0
  428. package/dest/node-cjs/index.d.ts +5 -0
  429. package/dest/node-cjs/index.d.ts.map +1 -0
  430. package/dest/node-cjs/index.js +20 -0
  431. package/dest/node-cjs/main.d.ts +23 -0
  432. package/dest/node-cjs/main.d.ts.map +1 -0
  433. package/dest/node-cjs/main.js +735 -0
  434. package/dest/node-cjs/package.json +3 -0
  435. package/dest/node-cjs/proof/index.d.ts +19 -0
  436. package/dest/node-cjs/proof/index.d.ts.map +1 -0
  437. package/dest/node-cjs/proof/index.js +93 -0
  438. package/dest/node-cjs/random/browser/index.d.ts +2 -0
  439. package/dest/node-cjs/random/browser/index.d.ts.map +1 -0
  440. package/dest/node-cjs/random/browser/index.js +35 -0
  441. package/dest/node-cjs/random/index.d.ts +2 -0
  442. package/dest/node-cjs/random/index.d.ts.map +1 -0
  443. package/dest/node-cjs/random/index.js +5 -0
  444. package/dest/node-cjs/random/node/index.d.ts +2 -0
  445. package/dest/node-cjs/random/node/index.d.ts.map +1 -0
  446. package/dest/node-cjs/random/node/index.js +9 -0
  447. package/dest/node-cjs/serialize/buffer_reader.d.ts +28 -0
  448. package/dest/node-cjs/serialize/buffer_reader.d.ts.map +1 -0
  449. package/dest/node-cjs/serialize/buffer_reader.js +70 -0
  450. package/dest/node-cjs/serialize/index.d.ts +4 -0
  451. package/dest/node-cjs/serialize/index.d.ts.map +1 -0
  452. package/dest/node-cjs/serialize/index.js +7 -0
  453. package/dest/node-cjs/serialize/output_type.d.ts +11 -0
  454. package/dest/node-cjs/serialize/output_type.d.ts.map +1 -0
  455. package/dest/node-cjs/serialize/output_type.js +52 -0
  456. package/dest/node-cjs/serialize/serialize.d.ts +53 -0
  457. package/dest/node-cjs/serialize/serialize.d.ts.map +1 -0
  458. package/dest/node-cjs/serialize/serialize.js +161 -0
  459. package/dest/node-cjs/types/fields.d.ts +43 -0
  460. package/dest/node-cjs/types/fields.d.ts.map +1 -0
  461. package/dest/node-cjs/types/fields.js +102 -0
  462. package/dest/node-cjs/types/fixed_size_buffer.d.ts +26 -0
  463. package/dest/node-cjs/types/fixed_size_buffer.d.ts.map +1 -0
  464. package/dest/node-cjs/types/fixed_size_buffer.js +57 -0
  465. package/dest/node-cjs/types/index.d.ts +6 -0
  466. package/dest/node-cjs/types/index.d.ts.map +1 -0
  467. package/dest/node-cjs/types/index.js +9 -0
  468. package/dest/node-cjs/types/point.d.ts +17 -0
  469. package/dest/node-cjs/types/point.d.ts.map +1 -0
  470. package/dest/node-cjs/types/point.js +35 -0
  471. package/dest/node-cjs/types/ptr.d.ts +13 -0
  472. package/dest/node-cjs/types/ptr.d.ts.map +1 -0
  473. package/dest/node-cjs/types/ptr.js +23 -0
  474. package/dest/node-cjs/types/raw_buffer.d.ts +3 -0
  475. package/dest/node-cjs/types/raw_buffer.d.ts.map +1 -0
  476. package/dest/node-cjs/types/raw_buffer.js +9 -0
  477. package/package.json +105 -0
  478. package/src/async_map/index.ts +15 -0
  479. package/src/barretenberg/__snapshots__/pedersen.test.ts.snap +156 -0
  480. package/src/barretenberg/__snapshots__/poseidon.test.ts.snap +40 -0
  481. package/src/barretenberg/backend.ts +362 -0
  482. package/src/barretenberg/blake2s.test.ts +70 -0
  483. package/src/barretenberg/common.test.ts +23 -0
  484. package/src/barretenberg/index.ts +130 -0
  485. package/src/barretenberg/pedersen.test.ts +62 -0
  486. package/src/barretenberg/poseidon.test.ts +39 -0
  487. package/src/barretenberg/schnorr.test.ts +182 -0
  488. package/src/barretenberg/verifier.ts +55 -0
  489. package/src/barretenberg_api/index.ts +1305 -0
  490. package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +138 -0
  491. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.ts +10 -0
  492. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.ts +15 -0
  493. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts +18 -0
  494. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.ts +10 -0
  495. package/src/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.ts +60 -0
  496. package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +138 -0
  497. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.ts +10 -0
  498. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.ts +15 -0
  499. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts +18 -0
  500. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.ts +10 -0
  501. package/src/barretenberg_wasm/barretenberg_wasm_thread/index.ts +47 -0
  502. package/src/barretenberg_wasm/fetch_code/browser/index.ts +12 -0
  503. package/src/barretenberg_wasm/fetch_code/browser/wasm-module.d.ts +4 -0
  504. package/src/barretenberg_wasm/fetch_code/index.ts +1 -0
  505. package/src/barretenberg_wasm/fetch_code/node/index.ts +22 -0
  506. package/src/barretenberg_wasm/helpers/browser/index.ts +22 -0
  507. package/src/barretenberg_wasm/helpers/index.ts +1 -0
  508. package/src/barretenberg_wasm/helpers/node/index.ts +44 -0
  509. package/src/barretenberg_wasm/helpers/node/node_endpoint.ts +28 -0
  510. package/src/barretenberg_wasm/index.test.ts +45 -0
  511. package/src/barretenberg_wasm/index.ts +50 -0
  512. package/src/benchmark/index.ts +26 -0
  513. package/src/benchmark/timer.ts +45 -0
  514. package/src/bigint-array/index.ts +21 -0
  515. package/src/bindgen/function_declaration.ts +11 -0
  516. package/src/bindgen/index.ts +17 -0
  517. package/src/bindgen/mappings.ts +66 -0
  518. package/src/bindgen/rust.ts +52 -0
  519. package/src/bindgen/to_camel_case.ts +10 -0
  520. package/src/bindgen/typescript.ts +116 -0
  521. package/src/crs/browser/cached_net_crs.ts +99 -0
  522. package/src/crs/browser/index.ts +1 -0
  523. package/src/crs/index.ts +1 -0
  524. package/src/crs/net_crs.ts +115 -0
  525. package/src/crs/node/ignition_files_crs.ts +74 -0
  526. package/src/crs/node/index.ts +102 -0
  527. package/src/examples/simple.rawtest.ts +38 -0
  528. package/src/examples/simple.test.ts +28 -0
  529. package/src/index.html +9 -0
  530. package/src/index.ts +12 -0
  531. package/src/main.ts +834 -0
  532. package/src/proof/index.ts +120 -0
  533. package/src/random/browser/index.ts +32 -0
  534. package/src/random/index.ts +1 -0
  535. package/src/random/node/index.ts +5 -0
  536. package/src/serialize/buffer_reader.ts +82 -0
  537. package/src/serialize/index.ts +3 -0
  538. package/src/serialize/output_type.ts +53 -0
  539. package/src/serialize/serialize.ts +157 -0
  540. package/src/types/fields.ts +115 -0
  541. package/src/types/fixed_size_buffer.ts +59 -0
  542. package/src/types/index.ts +5 -0
  543. package/src/types/point.ts +35 -0
  544. package/src/types/ptr.ts +20 -0
  545. package/src/types/raw_buffer.ts +3 -0
@@ -0,0 +1,253 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AztecClientBackend = exports.UltraHonkBackend = exports.UltraPlonkBackend = void 0;
4
+ const index_js_1 = require("./index.js");
5
+ const raw_buffer_js_1 = require("../types/raw_buffer.js");
6
+ const fflate_1 = require("fflate");
7
+ const index_js_2 = require("../proof/index.js");
8
+ class UltraPlonkBackend {
9
+ constructor(acirBytecode, backendOptions = { threads: 1 }, circuitOptions = { recursive: false }) {
10
+ this.backendOptions = backendOptions;
11
+ this.circuitOptions = circuitOptions;
12
+ this.acirUncompressedBytecode = acirToUint8Array(acirBytecode);
13
+ }
14
+ /** @ignore */
15
+ async instantiate() {
16
+ if (!this.api) {
17
+ const api = await index_js_1.Barretenberg.new(this.backendOptions);
18
+ const honkRecursion = false;
19
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
20
+ const [_total, subgroupSize] = await api.acirGetCircuitSizes(this.acirUncompressedBytecode, this.circuitOptions.recursive, honkRecursion);
21
+ await api.initSRSForCircuitSize(subgroupSize);
22
+ this.acirComposer = await api.acirNewAcirComposer(subgroupSize);
23
+ await api.acirInitProvingKey(this.acirComposer, this.acirUncompressedBytecode, this.circuitOptions.recursive);
24
+ this.api = api;
25
+ }
26
+ }
27
+ /** @description Generates a proof */
28
+ async generateProof(compressedWitness) {
29
+ await this.instantiate();
30
+ const proofWithPublicInputs = await this.api.acirCreateProof(this.acirComposer, this.acirUncompressedBytecode, this.circuitOptions.recursive, (0, fflate_1.decompressSync)(compressedWitness));
31
+ // This is the number of bytes in a UltraPlonk proof
32
+ // minus the public inputs.
33
+ const numBytesInProofWithoutPublicInputs = 2144;
34
+ const splitIndex = proofWithPublicInputs.length - numBytesInProofWithoutPublicInputs;
35
+ const publicInputsConcatenated = proofWithPublicInputs.slice(0, splitIndex);
36
+ const proof = proofWithPublicInputs.slice(splitIndex);
37
+ const publicInputs = (0, index_js_2.deflattenFields)(publicInputsConcatenated);
38
+ return { proof, publicInputs };
39
+ }
40
+ /**
41
+ * Generates artifacts that will be passed to a circuit that will verify this proof.
42
+ *
43
+ * Instead of passing the proof and verification key as a byte array, we pass them
44
+ * as fields which makes it cheaper to verify in a circuit.
45
+ *
46
+ * The proof that is passed here will have been created by passing the `recursive`
47
+ * parameter to a backend.
48
+ *
49
+ * The number of public inputs denotes how many public inputs are in the inner proof.
50
+ *
51
+ * @example
52
+ * ```typescript
53
+ * const artifacts = await backend.generateRecursiveProofArtifacts(proof, numOfPublicInputs);
54
+ * ```
55
+ */
56
+ async generateRecursiveProofArtifacts(proofData, numOfPublicInputs = 0) {
57
+ await this.instantiate();
58
+ const proof = (0, index_js_2.reconstructUltraPlonkProof)(proofData);
59
+ const proofAsFields = (await this.api.acirSerializeProofIntoFields(this.acirComposer, proof, numOfPublicInputs)).slice(numOfPublicInputs);
60
+ // TODO: perhaps we should put this in the init function. Need to benchmark
61
+ // TODO how long it takes.
62
+ await this.api.acirInitVerificationKey(this.acirComposer);
63
+ // Note: If you don't init verification key, `acirSerializeVerificationKeyIntoFields`` will just hang on serialization
64
+ const vk = await this.api.acirSerializeVerificationKeyIntoFields(this.acirComposer);
65
+ return {
66
+ proofAsFields: proofAsFields.map(p => p.toString()),
67
+ vkAsFields: vk[0].map(vk => vk.toString()),
68
+ vkHash: vk[1].toString(),
69
+ };
70
+ }
71
+ /** @description Verifies a proof */
72
+ async verifyProof(proofData) {
73
+ await this.instantiate();
74
+ await this.api.acirInitVerificationKey(this.acirComposer);
75
+ const proof = (0, index_js_2.reconstructUltraPlonkProof)(proofData);
76
+ return await this.api.acirVerifyProof(this.acirComposer, proof);
77
+ }
78
+ /** @description Returns the verification key */
79
+ async getVerificationKey() {
80
+ await this.instantiate();
81
+ await this.api.acirInitVerificationKey(this.acirComposer);
82
+ return await this.api.acirGetVerificationKey(this.acirComposer);
83
+ }
84
+ /** @description Returns a solidity verifier */
85
+ async getSolidityVerifier() {
86
+ await this.instantiate();
87
+ await this.api.acirInitVerificationKey(this.acirComposer);
88
+ return await this.api.acirGetSolidityVerifier(this.acirComposer);
89
+ }
90
+ async destroy() {
91
+ if (!this.api) {
92
+ return;
93
+ }
94
+ await this.api.destroy();
95
+ }
96
+ }
97
+ exports.UltraPlonkBackend = UltraPlonkBackend;
98
+ // Buffers are prepended with their size. The size takes 4 bytes.
99
+ const serializedBufferSize = 4;
100
+ const fieldByteSize = 32;
101
+ const publicInputOffset = 3;
102
+ const publicInputsOffsetBytes = publicInputOffset * fieldByteSize;
103
+ class UltraHonkBackend {
104
+ constructor(acirBytecode, backendOptions = { threads: 1 }, circuitOptions = { recursive: false }) {
105
+ this.backendOptions = backendOptions;
106
+ this.circuitOptions = circuitOptions;
107
+ this.acirUncompressedBytecode = acirToUint8Array(acirBytecode);
108
+ }
109
+ /** @ignore */
110
+ async instantiate() {
111
+ if (!this.api) {
112
+ const api = await index_js_1.Barretenberg.new(this.backendOptions);
113
+ const honkRecursion = true;
114
+ await api.acirInitSRS(this.acirUncompressedBytecode, this.circuitOptions.recursive, honkRecursion);
115
+ // We don't init a proving key here in the Honk API
116
+ // await api.acirInitProvingKey(this.acirComposer, this.acirUncompressedBytecode);
117
+ this.api = api;
118
+ }
119
+ }
120
+ async generateProof(compressedWitness, options) {
121
+ await this.instantiate();
122
+ const proveUltraHonk = options?.keccak
123
+ ? this.api.acirProveUltraKeccakHonk.bind(this.api)
124
+ : this.api.acirProveUltraHonk.bind(this.api);
125
+ const proofWithPublicInputs = await proveUltraHonk(this.acirUncompressedBytecode, this.circuitOptions.recursive, (0, fflate_1.decompressSync)(compressedWitness));
126
+ const proofAsStrings = (0, index_js_2.deflattenFields)(proofWithPublicInputs.slice(4));
127
+ const numPublicInputs = Number(proofAsStrings[1]);
128
+ // Account for the serialized buffer size at start
129
+ const publicInputsOffset = publicInputsOffsetBytes + serializedBufferSize;
130
+ // Get the part before and after the public inputs
131
+ const proofStart = proofWithPublicInputs.slice(0, publicInputsOffset);
132
+ const publicInputsSplitIndex = numPublicInputs * fieldByteSize;
133
+ const proofEnd = proofWithPublicInputs.slice(publicInputsOffset + publicInputsSplitIndex);
134
+ // Construct the proof without the public inputs
135
+ const proof = new Uint8Array([...proofStart, ...proofEnd]);
136
+ // Fetch the number of public inputs out of the proof string
137
+ const publicInputsConcatenated = proofWithPublicInputs.slice(publicInputsOffset, publicInputsOffset + publicInputsSplitIndex);
138
+ const publicInputs = (0, index_js_2.deflattenFields)(publicInputsConcatenated);
139
+ return { proof, publicInputs };
140
+ }
141
+ async verifyProof(proofData, options) {
142
+ await this.instantiate();
143
+ const proof = (0, index_js_2.reconstructHonkProof)((0, index_js_2.flattenFieldsAsArray)(proofData.publicInputs), proofData.proof);
144
+ const writeVkUltraHonk = options?.keccak
145
+ ? this.api.acirWriteVkUltraKeccakHonk.bind(this.api)
146
+ : this.api.acirWriteVkUltraHonk.bind(this.api);
147
+ const verifyUltraHonk = options?.keccak
148
+ ? this.api.acirVerifyUltraKeccakHonk.bind(this.api)
149
+ : this.api.acirVerifyUltraHonk.bind(this.api);
150
+ const vkBuf = await writeVkUltraHonk(this.acirUncompressedBytecode, this.circuitOptions.recursive);
151
+ return await verifyUltraHonk(proof, new raw_buffer_js_1.RawBuffer(vkBuf));
152
+ }
153
+ async getVerificationKey() {
154
+ await this.instantiate();
155
+ return await this.api.acirWriteVkUltraHonk(this.acirUncompressedBytecode, this.circuitOptions.recursive);
156
+ }
157
+ /** @description Returns a solidity verifier */
158
+ async getSolidityVerifier(vk) {
159
+ await this.instantiate();
160
+ const vkBuf = vk ?? (await this.api.acirWriteVkUltraHonk(this.acirUncompressedBytecode, this.circuitOptions.recursive));
161
+ return await this.api.acirHonkSolidityVerifier(this.acirUncompressedBytecode, new raw_buffer_js_1.RawBuffer(vkBuf));
162
+ }
163
+ // 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
164
+ async generateRecursiveProofArtifacts(
165
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
166
+ _proof,
167
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
168
+ _numOfPublicInputs) {
169
+ await this.instantiate();
170
+ // TODO(https://github.com/noir-lang/noir/issues/5661): This needs to be updated to handle recursive aggregation.
171
+ // There is still a proofAsFields method but we could consider getting rid of it as the proof itself
172
+ // is a list of field elements.
173
+ // UltraHonk also does not have public inputs directly prepended to the proof and they are still instead
174
+ // inserted at an offset.
175
+ // const proof = reconstructProofWithPublicInputs(proofData);
176
+ // const proofAsFields = (await this.api.acirProofAsFieldsUltraHonk(proof)).slice(numOfPublicInputs);
177
+ // TODO: perhaps we should put this in the init function. Need to benchmark
178
+ // TODO how long it takes.
179
+ const vkBuf = await this.api.acirWriteVkUltraHonk(this.acirUncompressedBytecode, this.circuitOptions.recursive);
180
+ const vk = await this.api.acirVkAsFieldsUltraHonk(vkBuf);
181
+ return {
182
+ // TODO(https://github.com/noir-lang/noir/issues/5661)
183
+ proofAsFields: [],
184
+ vkAsFields: vk.map(vk => vk.toString()),
185
+ // We use an empty string for the vk hash here as it is unneeded as part of the recursive artifacts
186
+ // The user can be expected to hash the vk inside their circuit to check whether the vk is the circuit
187
+ // they expect
188
+ vkHash: '',
189
+ };
190
+ }
191
+ async destroy() {
192
+ if (!this.api) {
193
+ return;
194
+ }
195
+ await this.api.destroy();
196
+ }
197
+ }
198
+ exports.UltraHonkBackend = UltraHonkBackend;
199
+ class AztecClientBackend {
200
+ constructor(acirMsgpack, options = { threads: 1 }) {
201
+ this.acirMsgpack = acirMsgpack;
202
+ this.options = options;
203
+ }
204
+ /** @ignore */
205
+ async instantiate() {
206
+ if (!this.api) {
207
+ const api = await index_js_1.Barretenberg.new(this.options);
208
+ await api.initSRSClientIVC();
209
+ this.api = api;
210
+ }
211
+ }
212
+ async prove(witnessMsgpack) {
213
+ await this.instantiate();
214
+ return this.api.acirProveAztecClient(this.acirMsgpack, witnessMsgpack);
215
+ }
216
+ async verify(proof, vk) {
217
+ await this.instantiate();
218
+ return this.api.acirVerifyAztecClient(proof, vk);
219
+ }
220
+ async proveAndVerify(witnessMsgpack) {
221
+ await this.instantiate();
222
+ return this.api.acirProveAndVerifyAztecClient(this.acirMsgpack, witnessMsgpack);
223
+ }
224
+ async destroy() {
225
+ if (!this.api) {
226
+ return;
227
+ }
228
+ await this.api.destroy();
229
+ }
230
+ }
231
+ exports.AztecClientBackend = AztecClientBackend;
232
+ // Converts bytecode from a base64 string to a Uint8Array
233
+ function acirToUint8Array(base64EncodedBytecode) {
234
+ const compressedByteCode = base64Decode(base64EncodedBytecode);
235
+ return (0, fflate_1.decompressSync)(compressedByteCode);
236
+ }
237
+ // Since this is a simple function, we can use feature detection to
238
+ // see if we are in the nodeJs environment or the browser environment.
239
+ function base64Decode(input) {
240
+ if (typeof Buffer !== 'undefined') {
241
+ // Node.js environment
242
+ const b = Buffer.from(input, 'base64');
243
+ return new Uint8Array(b.buffer, b.byteOffset, b.byteLength);
244
+ }
245
+ else if (typeof atob === 'function') {
246
+ // Browser environment
247
+ return Uint8Array.from(atob(input), c => c.charCodeAt(0));
248
+ }
249
+ else {
250
+ throw new Error('No implementation found for base64 decoding.');
251
+ }
252
+ }
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmcvYmFja2VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBMEU7QUFDMUUsMERBQW1EO0FBQ25ELG1DQUFrRDtBQUNsRCxnREFNMkI7QUFFM0IsTUFBYSxpQkFBaUI7SUFZNUIsWUFDRSxZQUFvQixFQUNWLGlCQUFpQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFDL0MsaUJBQWlDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRTtRQURyRCxtQkFBYyxHQUFkLGNBQWMsQ0FBaUM7UUFDL0MsbUJBQWMsR0FBZCxjQUFjLENBQXVDO1FBRS9ELElBQUksQ0FBQyx3QkFBd0IsR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsY0FBYztJQUNkLEtBQUssQ0FBQyxXQUFXO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNkLE1BQU0sR0FBRyxHQUFHLE1BQU0sdUJBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBRXhELE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQztZQUM1Qiw2REFBNkQ7WUFDN0QsTUFBTSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxtQkFBbUIsQ0FDMUQsSUFBSSxDQUFDLHdCQUF3QixFQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFDN0IsYUFBYSxDQUNkLENBQUM7WUFFRixNQUFNLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sR0FBRyxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sR0FBRyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUs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
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=blake2s.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blake2s.test.d.ts","sourceRoot":"","sources":["../../../src/barretenberg/blake2s.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const index_js_1 = require("./index.js");
4
+ const index_js_2 = require("../types/index.js");
5
+ describe('blake2s async', () => {
6
+ let api;
7
+ beforeAll(async () => {
8
+ api = await index_js_1.Barretenberg.new({ threads: 1 });
9
+ });
10
+ afterAll(async () => {
11
+ await api.destroy();
12
+ });
13
+ it('blake2s', async () => {
14
+ const input = Buffer.from('abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789');
15
+ const expected = index_js_2.Buffer32.fromBuffer(new Uint8Array([
16
+ 0x44, 0xdd, 0xdb, 0x39, 0xbd, 0xb2, 0xaf, 0x80, 0xc1, 0x47, 0x89, 0x4c, 0x1d, 0x75, 0x6a, 0xda, 0x3d, 0x1c,
17
+ 0x2a, 0xc2, 0xb1, 0x00, 0x54, 0x1e, 0x04, 0xfe, 0x87, 0xb4, 0xa5, 0x9e, 0x12, 0x43,
18
+ ]));
19
+ const result = await api.blake2s(input);
20
+ expect(result).toEqual(expected);
21
+ });
22
+ it('blake2sToField', async () => {
23
+ const input = Buffer.from('abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789');
24
+ const expected = index_js_2.Fr.fromBufferReduce(new Uint8Array([
25
+ 0x44, 0xdd, 0xdb, 0x39, 0xbd, 0xb2, 0xaf, 0x80, 0xc1, 0x47, 0x89, 0x4c, 0x1d, 0x75, 0x6a, 0xda, 0x3d, 0x1c,
26
+ 0x2a, 0xc2, 0xb1, 0x00, 0x54, 0x1e, 0x04, 0xfe, 0x87, 0xb4, 0xa5, 0x9e, 0x12, 0x43,
27
+ ]));
28
+ const result = await api.blake2sToField(input);
29
+ expect(result).toEqual(expected);
30
+ });
31
+ });
32
+ describe('blake2s sync', () => {
33
+ let api;
34
+ beforeAll(async () => {
35
+ api = await index_js_1.BarretenbergSync.new();
36
+ });
37
+ it('blake2s', () => {
38
+ const input = Buffer.from('abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789');
39
+ const expected = index_js_2.Buffer32.fromBuffer(new Uint8Array([
40
+ 0x44, 0xdd, 0xdb, 0x39, 0xbd, 0xb2, 0xaf, 0x80, 0xc1, 0x47, 0x89, 0x4c, 0x1d, 0x75, 0x6a, 0xda, 0x3d, 0x1c,
41
+ 0x2a, 0xc2, 0xb1, 0x00, 0x54, 0x1e, 0x04, 0xfe, 0x87, 0xb4, 0xa5, 0x9e, 0x12, 0x43,
42
+ ]));
43
+ const result = api.blake2s(input);
44
+ expect(result).toEqual(expected);
45
+ });
46
+ it('blake2sToField', () => {
47
+ const input = Buffer.from('abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789');
48
+ const expected = index_js_2.Fr.fromBufferReduce(new Uint8Array([
49
+ 0x44, 0xdd, 0xdb, 0x39, 0xbd, 0xb2, 0xaf, 0x80, 0xc1, 0x47, 0x89, 0x4c, 0x1d, 0x75, 0x6a, 0xda, 0x3d, 0x1c,
50
+ 0x2a, 0xc2, 0xb1, 0x00, 0x54, 0x1e, 0x04, 0xfe, 0x87, 0xb4, 0xa5, 0x9e, 0x12, 0x43,
51
+ ]));
52
+ const result = api.blake2sToField(input);
53
+ expect(result).toEqual(expected);
54
+ });
55
+ });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxha2Uycy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhcnJldGVuYmVyZy9ibGFrZTJzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FBNEQ7QUFDNUQsZ0RBQWlEO0FBRWpELFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO0lBQzdCLElBQUksR0FBaUIsQ0FBQztJQUV0QixTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDbkIsR0FBRyxHQUFHLE1BQU0sdUJBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNsQixNQUFNLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN0QixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDdkIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQywwRUFBMEUsQ0FBQyxDQUFDO1FBQ3RHLE1BQU0sUUFBUSxHQUFHLG1CQUFRLENBQUMsVUFBVSxDQUNsQyxJQUFJLFVBQVUsQ0FBQztZQUNiLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUMxRyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJ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QUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUMxRyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtTQUNuRixDQUFDLENBQ0gsQ0FBQztRQUNGLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=common.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.test.d.ts","sourceRoot":"","sources":["../../../src/barretenberg/common.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const index_js_1 = require("./index.js");
4
+ describe('env', () => {
5
+ let api;
6
+ beforeAll(async () => {
7
+ api = await index_js_1.Barretenberg.new({ threads: 3 });
8
+ }, 30000);
9
+ afterAll(async () => {
10
+ if (api) {
11
+ await api.destroy();
12
+ }
13
+ });
14
+ it('thread test', async () => {
15
+ // Main thread doesn't do anything in this test, so -1.
16
+ const threads = (await api.getNumThreads()) - 1;
17
+ const iterations = 100000;
18
+ const result = await api.testThreads(threads, iterations);
19
+ expect(result).toBe(iterations);
20
+ });
21
+ });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnL2NvbW1vbi50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUNBQTBDO0FBRTFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFO0lBQ25CLElBQUksR0FBaUIsQ0FBQztJQUV0QixTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDbkIsR0FBRyxHQUFHLE1BQU0sdUJBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFVixRQUFRLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDbEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNSLE1BQU0sR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxhQUFhLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDM0IsdURBQXVEO1FBQ3ZELE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDO1FBQzFCLE1BQU0sTUFBTSxHQUFHLE1BQU0sR0FBRyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDMUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,47 @@
1
+ import { BarretenbergApi, BarretenbergApiSync } from '../barretenberg_api/index.js';
2
+ export { BarretenbergVerifier } from './verifier.js';
3
+ export { UltraPlonkBackend, UltraHonkBackend, AztecClientBackend } from './backend.js';
4
+ export type BackendOptions = {
5
+ /** @description Number of threads to run the backend worker on */
6
+ threads?: number;
7
+ /** @description Initial and Maximum memory to be alloted to the backend worker */
8
+ memory?: {
9
+ initial?: number;
10
+ maximum?: number;
11
+ };
12
+ /** @description Path to download CRS files */
13
+ crsPath?: string;
14
+ };
15
+ export type CircuitOptions = {
16
+ /** @description Whether to produce SNARK friendly proofs */
17
+ recursive: boolean;
18
+ };
19
+ /**
20
+ * The main class library consumers interact with.
21
+ * It extends the generated api, and provides a static constructor "new" to compose components.
22
+ */
23
+ export declare class Barretenberg extends BarretenbergApi {
24
+ private worker;
25
+ private options;
26
+ private constructor();
27
+ /**
28
+ * Constructs an instance of Barretenberg.
29
+ * Launches it within a worker. This is necessary as it blocks waiting on child threads to complete,
30
+ * and blocking the main thread in the browser is not allowed.
31
+ * It threads > 1 (defaults to hardware availability), child threads will be created on their own workers.
32
+ */
33
+ static new(options?: BackendOptions): Promise<Barretenberg>;
34
+ getNumThreads(): Promise<number>;
35
+ initSRSForCircuitSize(circuitSize: number): Promise<void>;
36
+ initSRSClientIVC(): Promise<void>;
37
+ acirInitSRS(bytecode: Uint8Array, recursive: boolean, honkRecursion: boolean): Promise<void>;
38
+ destroy(): Promise<void>;
39
+ }
40
+ export declare class BarretenbergSync extends BarretenbergApiSync {
41
+ private constructor();
42
+ static new(): Promise<BarretenbergSync>;
43
+ static initSingleton(): Promise<BarretenbergSync>;
44
+ static getSingleton(): BarretenbergSync;
45
+ getWasm(): import("../barretenberg_wasm/index.js").BarretenbergWasm;
46
+ }
47
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/barretenberg/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AASpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAIvF,MAAM,MAAM,cAAc,GAAG;IAC3B,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,kFAAkF;IAClF,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAEhD,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,4DAA4D;IAC5D,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,qBAAa,YAAa,SAAQ,eAAe;IAG3B,OAAO,CAAC,MAAM;IAFlC,OAAO,CAAC,OAAO,CAAiB;IAEhC,OAAO;IAKP;;;;;OAKG;WACU,GAAG,CAAC,OAAO,GAAE,cAAmB;IAQvC,aAAa;IAIb,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzD,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAWjC,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5F,OAAO;CAId;AAKD,qBAAa,gBAAiB,SAAQ,mBAAmB;IACvD,OAAO;WAIM,GAAG;IAOhB,MAAM,CAAC,aAAa;IAOpB,MAAM,CAAC,YAAY;IAOnB,OAAO;CAGR"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BarretenbergSync = exports.Barretenberg = exports.AztecClientBackend = exports.UltraHonkBackend = exports.UltraPlonkBackend = exports.BarretenbergVerifier = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const comlink_1 = require("comlink");
6
+ const index_js_1 = require("../barretenberg_api/index.js");
7
+ const index_js_2 = require("../barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js");
8
+ const index_js_3 = require("../barretenberg_wasm/barretenberg_wasm_main/index.js");
9
+ const index_js_4 = require("../barretenberg_wasm/helpers/index.js");
10
+ const index_js_5 = require("../barretenberg_wasm/index.js");
11
+ const debug_1 = tslib_1.__importDefault(require("debug"));
12
+ const index_js_6 = require("../crs/index.js");
13
+ const raw_buffer_js_1 = require("../types/raw_buffer.js");
14
+ var verifier_js_1 = require("./verifier.js");
15
+ Object.defineProperty(exports, "BarretenbergVerifier", { enumerable: true, get: function () { return verifier_js_1.BarretenbergVerifier; } });
16
+ var backend_js_1 = require("./backend.js");
17
+ Object.defineProperty(exports, "UltraPlonkBackend", { enumerable: true, get: function () { return backend_js_1.UltraPlonkBackend; } });
18
+ Object.defineProperty(exports, "UltraHonkBackend", { enumerable: true, get: function () { return backend_js_1.UltraHonkBackend; } });
19
+ Object.defineProperty(exports, "AztecClientBackend", { enumerable: true, get: function () { return backend_js_1.AztecClientBackend; } });
20
+ const debug = (0, debug_1.default)('bb.js:wasm');
21
+ /**
22
+ * The main class library consumers interact with.
23
+ * It extends the generated api, and provides a static constructor "new" to compose components.
24
+ */
25
+ class Barretenberg extends index_js_1.BarretenbergApi {
26
+ constructor(worker, wasm, options) {
27
+ super(wasm);
28
+ this.worker = worker;
29
+ this.options = options;
30
+ }
31
+ /**
32
+ * Constructs an instance of Barretenberg.
33
+ * Launches it within a worker. This is necessary as it blocks waiting on child threads to complete,
34
+ * and blocking the main thread in the browser is not allowed.
35
+ * It threads > 1 (defaults to hardware availability), child threads will be created on their own workers.
36
+ */
37
+ static async new(options = {}) {
38
+ const worker = (0, index_js_2.createMainWorker)();
39
+ const wasm = (0, index_js_4.getRemoteBarretenbergWasm)(worker);
40
+ const { module, threads } = await (0, index_js_5.fetchModuleAndThreads)(options.threads);
41
+ await wasm.init(module, threads, (0, comlink_1.proxy)(debug), options.memory?.initial, options.memory?.maximum);
42
+ return new Barretenberg(worker, wasm, options);
43
+ }
44
+ async getNumThreads() {
45
+ return await this.wasm.getNumThreads();
46
+ }
47
+ async initSRSForCircuitSize(circuitSize) {
48
+ const crs = await index_js_6.Crs.new(circuitSize + 1, this.options.crsPath);
49
+ // TODO(https://github.com/AztecProtocol/barretenberg/issues/1129): Do slab allocator initialization?
50
+ // await this.commonInitSlabAllocator(circuitSize);
51
+ await this.srsInitSrs(new raw_buffer_js_1.RawBuffer(crs.getG1Data()), crs.numPoints, new raw_buffer_js_1.RawBuffer(crs.getG2Data()));
52
+ }
53
+ async initSRSClientIVC() {
54
+ // crsPath can be undefined
55
+ const crs = await index_js_6.Crs.new(2 ** 20 + 1, this.options.crsPath);
56
+ const grumpkinCrs = await index_js_6.GrumpkinCrs.new(2 ** 15 + 1, this.options.crsPath);
57
+ // Load CRS into wasm global CRS state.
58
+ // TODO: Make RawBuffer be default behavior, and have a specific Vector type for when wanting length prefixed.
59
+ await this.srsInitSrs(new raw_buffer_js_1.RawBuffer(crs.getG1Data()), crs.numPoints, new raw_buffer_js_1.RawBuffer(crs.getG2Data()));
60
+ await this.srsInitGrumpkinSrs(new raw_buffer_js_1.RawBuffer(grumpkinCrs.getG1Data()), grumpkinCrs.numPoints);
61
+ }
62
+ async acirInitSRS(bytecode, recursive, honkRecursion) {
63
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
64
+ const [_total, subgroupSize] = await this.acirGetCircuitSizes(bytecode, recursive, honkRecursion);
65
+ return this.initSRSForCircuitSize(subgroupSize);
66
+ }
67
+ async destroy() {
68
+ await this.wasm.destroy();
69
+ await this.worker.terminate();
70
+ }
71
+ }
72
+ exports.Barretenberg = Barretenberg;
73
+ let barretenbergSyncSingleton;
74
+ let barretenbergSyncSingletonPromise;
75
+ class BarretenbergSync extends index_js_1.BarretenbergApiSync {
76
+ constructor(wasm) {
77
+ super(wasm);
78
+ }
79
+ static async new() {
80
+ const wasm = new index_js_3.BarretenbergWasmMain();
81
+ const { module, threads } = await (0, index_js_5.fetchModuleAndThreads)(1);
82
+ await wasm.init(module, threads);
83
+ return new BarretenbergSync(wasm);
84
+ }
85
+ static initSingleton() {
86
+ if (!barretenbergSyncSingletonPromise) {
87
+ barretenbergSyncSingletonPromise = BarretenbergSync.new().then(s => (barretenbergSyncSingleton = s));
88
+ }
89
+ return barretenbergSyncSingletonPromise;
90
+ }
91
+ static getSingleton() {
92
+ if (!barretenbergSyncSingleton) {
93
+ throw new Error('First call BarretenbergSync.initSingleton() on @aztec/bb.js module.');
94
+ }
95
+ return barretenbergSyncSingleton;
96
+ }
97
+ getWasm() {
98
+ return this.wasm;
99
+ }
100
+ }
101
+ exports.BarretenbergSync = BarretenbergSync;
102
+ // If we're in ESM environment, use top level await. CJS users need to call it manually.
103
+ // Need to ignore for cjs build.
104
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
105
+ // @ts-ignore
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxxQ0FBZ0M7QUFDaEMsMkRBQW9GO0FBQ3BGLGdHQUFxRztBQUNyRyxtRkFBd0g7QUFDeEgsb0VBQWtGO0FBQ2xGLDREQUE4RjtBQUM5RiwwREFBZ0M7QUFDaEMsOENBQW1EO0FBQ25ELDBEQUFtRDtBQUVuRCw2Q0FBcUQ7QUFBNUMsbUhBQUEsb0JBQW9CLE9BQUE7QUFDN0IsMkNBQXVGO0FBQTlFLCtHQUFBLGlCQUFpQixPQUFBO0FBQUUsOEdBQUEsZ0JBQWdCLE9BQUE7QUFBRSxnSEFBQSxrQkFBa0IsT0FBQTtBQUVoRSxNQUFNLEtBQUssR0FBRyxJQUFBLGVBQVcsRUFBQyxZQUFZLENBQUMsQ0FBQztBQWtCeEM7OztHQUdHO0FBQ0gsTUFBYSxZQUFhLFNBQVEsMEJBQWU7SUFHL0MsWUFBNEIsTUFBVyxFQUFFLElBQTRCLEVBQUUsT0FBdUI7UUFDNUYsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRGMsV0FBTSxHQUFOLE1BQU0sQ0FBSztRQUVyQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUEwQixFQUFFO1FBQzNDLE1BQU0sTUFBTSxHQUFHLElBQUEsMkJBQWdCLEdBQUUsQ0FBQztRQUNsQyxNQUFNLElBQUksR0FBRyxJQUFBLG9DQUF5QixFQUE2QixNQUFNLENBQUMsQ0FBQztRQUMzRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sSUFBQSxnQ0FBcUIsRUFBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekUsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBQSxlQUFLLEVB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
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pedersen.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pedersen.test.d.ts","sourceRoot":"","sources":["../../../src/barretenberg/pedersen.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const index_js_1 = require("./index.js");
4
+ const timer_js_1 = require("../benchmark/timer.js");
5
+ const index_js_2 = require("../types/index.js");
6
+ describe('pedersen sync', () => {
7
+ let api;
8
+ beforeAll(async () => {
9
+ api = await index_js_1.BarretenbergSync.new();
10
+ });
11
+ it('pedersenHash', () => {
12
+ const result = api.pedersenHash([new index_js_2.Fr(4n), new index_js_2.Fr(8n)], 7);
13
+ expect(result).toMatchSnapshot();
14
+ });
15
+ it('pedersenHash perf test', () => {
16
+ const loops = 1000;
17
+ const fields = Array.from({ length: loops * 2 }).map(() => index_js_2.Fr.random());
18
+ const t = new timer_js_1.Timer();
19
+ for (let i = 0; i < loops; ++i) {
20
+ api.pedersenHash([fields[i * 2], fields[i * 2 + 1]], 0);
21
+ }
22
+ const us = t.us() / loops;
23
+ console.log(`Executed ${loops} hashes at an average ${us}us / hash`);
24
+ });
25
+ it('pedersenHashes perf test', () => {
26
+ const loops = 10;
27
+ const numHashesPerLoop = 1024;
28
+ const fields = Array.from({ length: numHashesPerLoop * 2 }).map(() => index_js_2.Fr.random());
29
+ const t = new timer_js_1.Timer();
30
+ for (let i = 0; i < loops; ++i) {
31
+ api.pedersenHashes(fields, 0);
32
+ }
33
+ const us = t.us() / (numHashesPerLoop * loops);
34
+ console.log(`Executed ${numHashesPerLoop * loops} hashes at an average ${us}us / hash`);
35
+ });
36
+ it('pedersenHashBuffer', () => {
37
+ const input = Buffer.alloc(123);
38
+ input.writeUint32BE(321, 0);
39
+ input.writeUint32BE(456, 119);
40
+ const r = api.pedersenHashBuffer(input, 0);
41
+ expect(r).toMatchSnapshot();
42
+ });
43
+ it('pedersenCommit', () => {
44
+ const result = api.pedersenCommit([new index_js_2.Fr(4n), new index_js_2.Fr(8n), new index_js_2.Fr(12n)], 0);
45
+ expect(result).toMatchSnapshot();
46
+ });
47
+ it.skip('pedersenCommit perf test', () => {
48
+ const loops = 1000;
49
+ const fields = Array.from({ length: loops * 2 }).map(() => index_js_2.Fr.random());
50
+ const t = new timer_js_1.Timer();
51
+ for (let i = 0; i < loops; ++i) {
52
+ api.pedersenCommit([fields[i * 2], fields[i * 2 + 1]], 0);
53
+ }
54
+ console.log(t.us() / loops);
55
+ });
56
+ });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVkZXJzZW4udGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmcvcGVkZXJzZW4udGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlDQUE4QztBQUM5QyxvREFBOEM7QUFDOUMsZ0RBQXVDO0FBRXZDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO0lBQzdCLElBQUksR0FBcUIsQ0FBQztJQUUxQixTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDbkIsR0FBRyxHQUFHLE1BQU0sMkJBQWdCLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDckMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRTtRQUN0QixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxhQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxhQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3RCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxFQUFFO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQztRQUNuQixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN4RSxNQUFNLENBQUMsR0FBRyxJQUFJLGdCQUFLLEVBQUUsQ0FBQztRQUN0QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDL0IsR0FBRyxD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
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=poseidon.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poseidon.test.d.ts","sourceRoot":"","sources":["../../../src/barretenberg/poseidon.test.ts"],"names":[],"mappings":""}