@aztec/bb.js 0.87.4 → 0.87.5

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 (325) hide show
  1. package/dest/browser/barretenberg-threads.js +5 -0
  2. package/dest/browser/barretenberg.js +5 -0
  3. package/dest/browser/index.js +13285 -6
  4. package/dest/browser/index.js.LICENSE.txt +16 -0
  5. package/dest/browser/main.worker.js +1316 -0
  6. package/dest/browser/main.worker.js.LICENSE.txt +5 -0
  7. package/dest/browser/thread.worker.js +1200 -0
  8. package/dest/browser/thread.worker.js.LICENSE.txt +5 -0
  9. package/dest/node/barretenberg/backend.d.ts +1 -6
  10. package/dest/node/barretenberg/backend.d.ts.map +1 -1
  11. package/dest/node/barretenberg/backend.js +14 -24
  12. package/dest/node/barretenberg/index.js +5 -5
  13. package/dest/node/barretenberg_api/index.d.ts +6 -15
  14. package/dest/node/barretenberg_api/index.d.ts.map +1 -1
  15. package/dest/node/barretenberg_api/index.js +9 -72
  16. package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  17. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
  18. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.js +3 -3
  19. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
  20. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +8 -4
  21. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +4 -4
  22. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +1 -0
  23. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
  24. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +2 -5
  25. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +1 -8
  26. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +1 -1
  27. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
  28. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +3 -3
  29. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
  30. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +8 -4
  31. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +4 -4
  32. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +1 -0
  33. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
  34. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +2 -5
  35. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +2 -9
  36. package/dest/node/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
  37. package/dest/node/barretenberg_wasm/fetch_code/browser/index.d.ts.map +1 -1
  38. package/dest/node/barretenberg_wasm/fetch_code/browser/index.js +3 -3
  39. package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts +1 -1
  40. package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts.map +1 -1
  41. package/dest/node/barretenberg_wasm/fetch_code/node/index.js +1 -1
  42. package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts +0 -1
  43. package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
  44. package/dest/node/barretenberg_wasm/helpers/browser/index.js +1 -10
  45. package/dest/node/barretenberg_wasm/helpers/node/index.d.ts +1 -1
  46. package/dest/node/barretenberg_wasm/helpers/node/index.d.ts.map +1 -1
  47. package/dest/node/barretenberg_wasm/helpers/node/index.js +1 -10
  48. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts +1 -1
  49. package/dest/node/barretenberg_wasm/index.js +19 -4
  50. package/dest/node/bigint-array/index.d.ts +2 -0
  51. package/dest/node/bigint-array/index.d.ts.map +1 -1
  52. package/dest/node/crs/net_crs.d.ts +3 -3
  53. package/dest/node/crs/node/index.js +6 -6
  54. package/dest/node/index.d.ts +0 -1
  55. package/dest/node/index.d.ts.map +1 -1
  56. package/dest/node/index.js +1 -2
  57. package/dest/node/main.d.ts.map +1 -1
  58. package/dest/node/main.js +45 -33
  59. package/dest/node/random/browser/index.d.ts +1 -1
  60. package/dest/node/random/browser/index.d.ts.map +1 -1
  61. package/dest/node/random/node/index.d.ts +1 -1
  62. package/dest/node/random/node/index.d.ts.map +1 -1
  63. package/dest/node/serialize/buffer_reader.d.ts +1 -1
  64. package/dest/node/serialize/serialize.d.ts +12 -12
  65. package/dest/node/serialize/serialize.d.ts.map +1 -1
  66. package/dest/node/types/fields.d.ts +4 -2
  67. package/dest/node/types/fields.d.ts.map +1 -1
  68. package/dest/node/types/fixed_size_buffer.d.ts +3 -3
  69. package/dest/node/types/point.d.ts +3 -1
  70. package/dest/node/types/point.d.ts.map +1 -1
  71. package/dest/node/types/ptr.d.ts +1 -1
  72. package/dest/node-cjs/async_map/index.js +3 -2
  73. package/dest/node-cjs/barretenberg/backend.d.ts +1 -6
  74. package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
  75. package/dest/node-cjs/barretenberg/backend.js +14 -24
  76. package/dest/node-cjs/barretenberg/index.js +6 -5
  77. package/dest/node-cjs/barretenberg_api/index.d.ts +6 -15
  78. package/dest/node-cjs/barretenberg_api/index.d.ts.map +1 -1
  79. package/dest/node-cjs/barretenberg_api/index.js +9 -72
  80. package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  81. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
  82. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.js +6 -5
  83. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
  84. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +13 -7
  85. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +5 -4
  86. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +1 -0
  87. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
  88. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +4 -6
  89. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +1 -8
  90. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +1 -1
  91. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
  92. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +4 -3
  93. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
  94. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +13 -7
  95. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +5 -4
  96. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +1 -0
  97. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
  98. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +4 -6
  99. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +2 -9
  100. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
  101. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts.map +1 -1
  102. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.js +5 -4
  103. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts +1 -1
  104. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts.map +1 -1
  105. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.js +3 -2
  106. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts +0 -1
  107. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
  108. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.js +8 -18
  109. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts +1 -1
  110. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts.map +1 -1
  111. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.js +7 -16
  112. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts +1 -1
  113. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.js +3 -2
  114. package/dest/node-cjs/barretenberg_wasm/index.js +22 -5
  115. package/dest/node-cjs/benchmark/index.js +3 -2
  116. package/dest/node-cjs/bigint-array/index.d.ts +2 -0
  117. package/dest/node-cjs/bigint-array/index.d.ts.map +1 -1
  118. package/dest/node-cjs/bigint-array/index.js +6 -5
  119. package/dest/node-cjs/bindgen/mappings.js +4 -4
  120. package/dest/node-cjs/bindgen/rust.js +3 -2
  121. package/dest/node-cjs/bindgen/to_camel_case.js +3 -2
  122. package/dest/node-cjs/bindgen/typescript.js +3 -2
  123. package/dest/node-cjs/crs/net_crs.d.ts +3 -3
  124. package/dest/node-cjs/crs/node/index.js +7 -6
  125. package/dest/node-cjs/index.d.ts +0 -1
  126. package/dest/node-cjs/index.d.ts.map +1 -1
  127. package/dest/node-cjs/index.js +9 -11
  128. package/dest/node-cjs/main.d.ts.map +1 -1
  129. package/dest/node-cjs/main.js +55 -41
  130. package/dest/node-cjs/proof/index.js +6 -6
  131. package/dest/node-cjs/random/browser/index.d.ts +1 -1
  132. package/dest/node-cjs/random/browser/index.d.ts.map +1 -1
  133. package/dest/node-cjs/random/node/index.d.ts +1 -1
  134. package/dest/node-cjs/random/node/index.d.ts.map +1 -1
  135. package/dest/node-cjs/random/node/index.js +3 -2
  136. package/dest/node-cjs/retry/index.js +5 -4
  137. package/dest/node-cjs/serialize/buffer_reader.d.ts +1 -1
  138. package/dest/node-cjs/serialize/output_type.js +7 -6
  139. package/dest/node-cjs/serialize/serialize.d.ts +12 -12
  140. package/dest/node-cjs/serialize/serialize.d.ts.map +1 -1
  141. package/dest/node-cjs/serialize/serialize.js +21 -20
  142. package/dest/node-cjs/types/fields.d.ts +4 -2
  143. package/dest/node-cjs/types/fields.d.ts.map +1 -1
  144. package/dest/node-cjs/types/fixed_size_buffer.d.ts +3 -3
  145. package/dest/node-cjs/types/point.d.ts +3 -1
  146. package/dest/node-cjs/types/point.d.ts.map +1 -1
  147. package/dest/node-cjs/types/ptr.d.ts +1 -1
  148. package/package.json +15 -6
  149. package/src/barretenberg/backend.ts +14 -29
  150. package/src/barretenberg/index.ts +4 -4
  151. package/src/barretenberg_api/index.ts +8 -116
  152. package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +2 -2
  153. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.ts +7 -3
  154. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.ts +3 -3
  155. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts +1 -4
  156. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.ts +0 -9
  157. package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +2 -2
  158. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.ts +7 -3
  159. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.ts +3 -3
  160. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts +1 -4
  161. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.ts +1 -10
  162. package/src/barretenberg_wasm/fetch_code/browser/index.ts +3 -3
  163. package/src/barretenberg_wasm/fetch_code/node/index.ts +1 -1
  164. package/src/barretenberg_wasm/helpers/browser/index.ts +0 -9
  165. package/src/barretenberg_wasm/helpers/node/index.ts +0 -11
  166. package/src/barretenberg_wasm/index.ts +19 -3
  167. package/src/crs/node/index.ts +5 -5
  168. package/src/index.ts +0 -1
  169. package/src/main.ts +50 -33
  170. package/dest/browser/async_map/index.d.ts +0 -10
  171. package/dest/browser/async_map/index.d.ts.map +0 -1
  172. package/dest/browser/async_map/index.js +0 -16
  173. package/dest/browser/barretenberg/backend.d.ts +0 -63
  174. package/dest/browser/barretenberg/backend.d.ts.map +0 -1
  175. package/dest/browser/barretenberg/backend.js +0 -236
  176. package/dest/browser/barretenberg/index.d.ts +0 -53
  177. package/dest/browser/barretenberg/index.d.ts.map +0 -1
  178. package/dest/browser/barretenberg/index.js +0 -95
  179. package/dest/browser/barretenberg/verifier.d.ts +0 -14
  180. package/dest/browser/barretenberg/verifier.d.ts.map +0 -1
  181. package/dest/browser/barretenberg/verifier.js +0 -30
  182. package/dest/browser/barretenberg_api/index.d.ts +0 -109
  183. package/dest/browser/barretenberg_api/index.d.ts.map +0 -1
  184. package/dest/browser/barretenberg_api/index.js +0 -699
  185. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +0 -44
  186. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +0 -1
  187. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.js +0 -124
  188. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +0 -2
  189. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +0 -1
  190. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +0 -11
  191. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +0 -2
  192. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts.map +0 -1
  193. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +0 -12
  194. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +0 -21
  195. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +0 -1
  196. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +0 -62
  197. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +0 -47
  198. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +0 -1
  199. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.js +0 -105
  200. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +0 -2
  201. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +0 -1
  202. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +0 -11
  203. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +0 -2
  204. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts.map +0 -1
  205. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +0 -12
  206. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +0 -28
  207. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +0 -1
  208. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.js +0 -40
  209. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +0 -3
  210. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts.map +0 -1
  211. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +0 -2
  212. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +0 -3
  213. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts.map +0 -1
  214. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +0 -2
  215. package/dest/browser/barretenberg_wasm/fetch_code/browser/index.d.ts +0 -2
  216. package/dest/browser/barretenberg_wasm/fetch_code/browser/index.d.ts.map +0 -1
  217. package/dest/browser/barretenberg_wasm/fetch_code/browser/index.js +0 -36
  218. package/dest/browser/barretenberg_wasm/fetch_code/index.d.ts +0 -2
  219. package/dest/browser/barretenberg_wasm/fetch_code/index.d.ts.map +0 -1
  220. package/dest/browser/barretenberg_wasm/fetch_code/index.js +0 -2
  221. package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts +0 -13
  222. package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts.map +0 -1
  223. package/dest/browser/barretenberg_wasm/helpers/browser/index.js +0 -40
  224. package/dest/browser/barretenberg_wasm/helpers/index.d.ts +0 -2
  225. package/dest/browser/barretenberg_wasm/helpers/index.d.ts.map +0 -1
  226. package/dest/browser/barretenberg_wasm/helpers/index.js +0 -2
  227. package/dest/browser/barretenberg_wasm/index.d.ts +0 -5
  228. package/dest/browser/barretenberg_wasm/index.d.ts.map +0 -1
  229. package/dest/browser/barretenberg_wasm/index.js +0 -16
  230. package/dest/browser/bigint-array/index.d.ts +0 -17
  231. package/dest/browser/bigint-array/index.d.ts.map +0 -1
  232. package/dest/browser/bigint-array/index.js +0 -37
  233. package/dest/browser/crs/browser/cached_net_crs.d.ts +0 -43
  234. package/dest/browser/crs/browser/cached_net_crs.d.ts.map +0 -1
  235. package/dest/browser/crs/browser/cached_net_crs.js +0 -90
  236. package/dest/browser/crs/browser/index.d.ts +0 -2
  237. package/dest/browser/crs/browser/index.d.ts.map +0 -1
  238. package/dest/browser/crs/browser/index.js +0 -2
  239. package/dest/browser/crs/index.d.ts +0 -2
  240. package/dest/browser/crs/index.d.ts.map +0 -1
  241. package/dest/browser/crs/index.js +0 -2
  242. package/dest/browser/crs/net_crs.d.ts +0 -85
  243. package/dest/browser/crs/net_crs.d.ts.map +0 -1
  244. package/dest/browser/crs/net_crs.js +0 -136
  245. package/dest/browser/index.d.ts +0 -6
  246. package/dest/browser/index.d.ts.map +0 -1
  247. package/dest/browser/log/browser/index.d.ts +0 -6
  248. package/dest/browser/log/browser/index.d.ts.map +0 -1
  249. package/dest/browser/log/browser/index.js +0 -28
  250. package/dest/browser/log/index.d.ts +0 -2
  251. package/dest/browser/log/index.d.ts.map +0 -1
  252. package/dest/browser/log/index.js +0 -2
  253. package/dest/browser/log/types.d.ts +0 -6
  254. package/dest/browser/log/types.d.ts.map +0 -1
  255. package/dest/browser/log/types.js +0 -2
  256. package/dest/browser/proof/index.d.ts +0 -19
  257. package/dest/browser/proof/index.d.ts.map +0 -1
  258. package/dest/browser/proof/index.js +0 -63
  259. package/dest/browser/random/browser/index.d.ts +0 -2
  260. package/dest/browser/random/browser/index.d.ts.map +0 -1
  261. package/dest/browser/random/browser/index.js +0 -31
  262. package/dest/browser/random/index.d.ts +0 -2
  263. package/dest/browser/random/index.d.ts.map +0 -1
  264. package/dest/browser/random/index.js +0 -2
  265. package/dest/browser/retry/index.d.ts +0 -26
  266. package/dest/browser/retry/index.d.ts.map +0 -1
  267. package/dest/browser/retry/index.js +0 -50
  268. package/dest/browser/serialize/buffer_reader.d.ts +0 -28
  269. package/dest/browser/serialize/buffer_reader.d.ts.map +0 -1
  270. package/dest/browser/serialize/buffer_reader.js +0 -66
  271. package/dest/browser/serialize/index.d.ts +0 -4
  272. package/dest/browser/serialize/index.d.ts.map +0 -1
  273. package/dest/browser/serialize/index.js +0 -4
  274. package/dest/browser/serialize/output_type.d.ts +0 -11
  275. package/dest/browser/serialize/output_type.d.ts.map +0 -1
  276. package/dest/browser/serialize/output_type.js +0 -44
  277. package/dest/browser/serialize/serialize.d.ts +0 -53
  278. package/dest/browser/serialize/serialize.d.ts.map +0 -1
  279. package/dest/browser/serialize/serialize.js +0 -139
  280. package/dest/browser/types/fields.d.ts +0 -43
  281. package/dest/browser/types/fields.d.ts.map +0 -1
  282. package/dest/browser/types/fields.js +0 -102
  283. package/dest/browser/types/fixed_size_buffer.d.ts +0 -26
  284. package/dest/browser/types/fixed_size_buffer.d.ts.map +0 -1
  285. package/dest/browser/types/fixed_size_buffer.js +0 -51
  286. package/dest/browser/types/index.d.ts +0 -6
  287. package/dest/browser/types/index.d.ts.map +0 -1
  288. package/dest/browser/types/index.js +0 -6
  289. package/dest/browser/types/point.d.ts +0 -16
  290. package/dest/browser/types/point.d.ts.map +0 -1
  291. package/dest/browser/types/point.js +0 -31
  292. package/dest/browser/types/ptr.d.ts +0 -13
  293. package/dest/browser/types/ptr.d.ts.map +0 -1
  294. package/dest/browser/types/ptr.js +0 -19
  295. package/dest/browser/types/raw_buffer.d.ts +0 -3
  296. package/dest/browser/types/raw_buffer.d.ts.map +0 -1
  297. package/dest/browser/types/raw_buffer.js +0 -5
  298. package/dest/node/log/browser/index.d.ts +0 -6
  299. package/dest/node/log/browser/index.d.ts.map +0 -1
  300. package/dest/node/log/browser/index.js +0 -28
  301. package/dest/node/log/index.d.ts +0 -2
  302. package/dest/node/log/index.d.ts.map +0 -1
  303. package/dest/node/log/index.js +0 -2
  304. package/dest/node/log/node/index.d.ts +0 -6
  305. package/dest/node/log/node/index.d.ts.map +0 -1
  306. package/dest/node/log/node/index.js +0 -32
  307. package/dest/node/log/types.d.ts +0 -6
  308. package/dest/node/log/types.d.ts.map +0 -1
  309. package/dest/node/log/types.js +0 -2
  310. package/dest/node-cjs/log/browser/index.d.ts +0 -6
  311. package/dest/node-cjs/log/browser/index.d.ts.map +0 -1
  312. package/dest/node-cjs/log/browser/index.js +0 -30
  313. package/dest/node-cjs/log/index.d.ts +0 -2
  314. package/dest/node-cjs/log/index.d.ts.map +0 -1
  315. package/dest/node-cjs/log/index.js +0 -8
  316. package/dest/node-cjs/log/node/index.d.ts +0 -6
  317. package/dest/node-cjs/log/node/index.d.ts.map +0 -1
  318. package/dest/node-cjs/log/node/index.js +0 -34
  319. package/dest/node-cjs/log/types.d.ts +0 -6
  320. package/dest/node-cjs/log/types.d.ts.map +0 -1
  321. package/dest/node-cjs/log/types.js +0 -3
  322. package/src/log/browser/index.ts +0 -35
  323. package/src/log/index.ts +0 -1
  324. package/src/log/node/index.ts +0 -41
  325. package/src/log/types.ts +0 -6
package/src/main.ts CHANGED
@@ -1,13 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  import 'source-map-support/register.js';
3
- import { Crs, Barretenberg, RawBuffer } from './index.js';
4
- import { createDebugLogger, initLogger } from './log/index.js';
3
+ import { Crs, GrumpkinCrs, Barretenberg, RawBuffer } from './index.js';
4
+ import createDebug from 'debug';
5
5
  import { readFileSync, writeFileSync } from 'fs';
6
6
  import { gunzipSync } from 'zlib';
7
7
  import { Command } from 'commander';
8
+ import { Timer, writeBenchmark } from './benchmark/index.js';
9
+ import path from 'path';
8
10
  import { UltraHonkBackendOptions } from './barretenberg/backend.js';
9
-
10
- let debug: (msg: string) => void;
11
+ createDebug.log = console.error.bind(console);
12
+ const debug = createDebug('bb.js');
11
13
 
12
14
  const threads = +process.env.HARDWARE_CONCURRENCY! || undefined;
13
15
 
@@ -25,6 +27,16 @@ function getBytecode(bytecodePath: string): Uint8Array {
25
27
  return Uint8Array.from(decompressed);
26
28
  }
27
29
 
30
+ function base64ToUint8Array(base64: string) {
31
+ const binaryString = atob(base64);
32
+ const len = binaryString.length;
33
+ const bytes = new Uint8Array(len);
34
+ for (let i = 0; i < len; i++) {
35
+ bytes[i] = binaryString.charCodeAt(i);
36
+ }
37
+ return bytes;
38
+ }
39
+
28
40
  // TODO(https://github.com/AztecProtocol/barretenberg/issues/1126): split this into separate Plonk and Honk functions as their gate count differs
29
41
  async function getGatesUltra(bytecodePath: string, recursive: boolean, honkRecursion: boolean, api: Barretenberg) {
30
42
  const { total } = await computeCircuitSize(bytecodePath, recursive, honkRecursion, api);
@@ -45,9 +57,7 @@ async function computeCircuitSize(bytecodePath: string, recursive: boolean, honk
45
57
  }
46
58
 
47
59
  async function initUltraHonk(bytecodePath: string, crsPath: string) {
48
- const api = await Barretenberg.new({
49
- threads,
50
- });
60
+ const api = await Barretenberg.new({ threads });
51
61
 
52
62
  // TODO(https://github.com/AztecProtocol/barretenberg/issues/1248): Get rid of this call to avoid building the circuit twice.
53
63
  // TODO(https://github.com/AztecProtocol/barretenberg/issues/1126): use specific UltraHonk function
@@ -65,6 +75,20 @@ async function initUltraHonk(bytecodePath: string, crsPath: string) {
65
75
  return { api, circuitSize, dyadicCircuitSize };
66
76
  }
67
77
 
78
+ async function initClientIVC(crsPath: string) {
79
+ const api = await Barretenberg.new({ threads });
80
+
81
+ debug('Loading CRS for ClientIVC');
82
+ const crs = await Crs.new(2 ** 21 + 1, crsPath);
83
+ const grumpkinCrs = await GrumpkinCrs.new(2 ** 16 + 1, crsPath);
84
+
85
+ // Load CRS into wasm global CRS state.
86
+ // TODO: Make RawBuffer be default behavior, and have a specific Vector type for when wanting length prefixed.
87
+ await api.srsInitSrs(new RawBuffer(crs.getG1Data()), crs.numPoints, new RawBuffer(crs.getG2Data()));
88
+ await api.srsInitGrumpkinSrs(new RawBuffer(grumpkinCrs.getG1Data()), grumpkinCrs.numPoints);
89
+ return { api };
90
+ }
91
+
68
92
  async function initLite(crsPath: string) {
69
93
  const api = await Barretenberg.new({ threads: 1 });
70
94
 
@@ -160,12 +184,10 @@ export async function proveUltraHonk(
160
184
  const acirProveUltraHonk = options?.keccak
161
185
  ? api.acirProveUltraKeccakHonk.bind(api)
162
186
  : options?.keccakZK
163
- ? api.acirProveUltraKeccakZkHonk.bind(api)
187
+ ? api.acirProveUltraKeccakZKHonk.bind(api)
164
188
  : options?.starknet
165
189
  ? api.acirProveUltraStarknetHonk.bind(api)
166
- : options?.starknetZK
167
- ? api.acirProveUltraStarknetZkHonk.bind(api)
168
- : api.acirProveUltraHonk.bind(api);
190
+ : api.acirProveUltraHonk.bind(api);
169
191
  const proof = await acirProveUltraHonk(bytecode, witness);
170
192
 
171
193
  if (outputPath === '-') {
@@ -194,12 +216,10 @@ export async function writeVkUltraHonk(
194
216
  const acirWriteVkUltraHonk = options?.keccak
195
217
  ? api.acirWriteVkUltraKeccakHonk.bind(api)
196
218
  : options?.keccakZK
197
- ? api.acirWriteVkUltraKeccakZkHonk.bind(api)
219
+ ? api.acirWriteVkUltraKeccakZKHonk.bind(api)
198
220
  : options?.starknet
199
221
  ? api.acirWriteVkUltraStarknetHonk.bind(api)
200
- : options?.starknetZK
201
- ? api.acirWriteVkUltraStarknetZkHonk.bind(api)
202
- : api.acirWriteVkUltraHonk.bind(api);
222
+ : api.acirWriteVkUltraHonk.bind(api);
203
223
  const vk = await acirWriteVkUltraHonk(bytecode);
204
224
 
205
225
  if (outputPath === '-') {
@@ -225,12 +245,10 @@ export async function verifyUltraHonk(
225
245
  const acirVerifyUltraHonk = options?.keccak
226
246
  ? api.acirVerifyUltraKeccakHonk.bind(api)
227
247
  : options?.keccakZK
228
- ? api.acirVerifyUltraKeccakZkHonk.bind(api)
248
+ ? api.acirVerifyUltraKeccakZKHonk.bind(api)
229
249
  : options?.starknet
230
250
  ? api.acirVerifyUltraStarknetHonk.bind(api)
231
- : options?.starknetZK
232
- ? api.acirVerifyUltraStarknetZkHonk.bind(api)
233
- : api.acirVerifyUltraHonk.bind(api);
251
+ : api.acirVerifyUltraHonk.bind(api);
234
252
  const verified = await acirVerifyUltraHonk(
235
253
  Uint8Array.from(readFileSync(proofPath)),
236
254
  new RawBuffer(readFileSync(vkPath)),
@@ -288,8 +306,9 @@ program.option('-v, --verbose', 'enable verbose logging', false);
288
306
  program.option('-c, --crs-path <path>', 'set crs path', './crs');
289
307
 
290
308
  function handleGlobalOptions() {
291
- initLogger({ useStdErr: true, level: program.opts().verbose ? 'debug' : 'info' });
292
- debug = createDebugLogger('bb');
309
+ if (program.opts().verbose) {
310
+ createDebug.enable('bb.js*');
311
+ }
293
312
  return { crsPath: program.opts().crsPath };
294
313
  }
295
314
 
@@ -371,8 +390,8 @@ program
371
390
  .option('-b, --bytecode-path <path>', 'Specify the bytecode path', './target/program.json')
372
391
  .option('-o, --output-path <path>', 'Specify the path to write the contract', './target/contract.sol')
373
392
  .requiredOption('-k, --vk-path <path>', 'Path to a verification key.')
374
- .action(async ({ bytecodePath, outputPath, vkPath }) => {
375
- const { crsPath } = handleGlobalOptions();
393
+ .action(async ({ bytecodePath, outputPath, vkPath, crsPath }) => {
394
+ handleGlobalOptions();
376
395
  await contractUltraHonk(bytecodePath, vkPath, crsPath, outputPath);
377
396
  });
378
397
 
@@ -417,7 +436,6 @@ program
417
436
  .option('-o, --output-path <path>', 'Specify the proof output path', './proofs/proof')
418
437
  .action(async ({ bytecodePath, witnessPath, outputPath }) => {
419
438
  const { crsPath } = handleGlobalOptions();
420
- debug(`Creating UltraHonk proof bytecode=${bytecodePath}`);
421
439
  await proveUltraHonk(bytecodePath, witnessPath, crsPath, outputPath);
422
440
  });
423
441
 
@@ -427,8 +445,8 @@ program
427
445
  .option('-b, --bytecode-path <path>', 'Specify the bytecode path', './target/program.json')
428
446
  .option('-w, --witness-path <path>', 'Specify the witness path', './target/witness.gz')
429
447
  .option('-o, --output-path <path>', 'Specify the proof output path', './proofs/proof')
430
- .action(async ({ bytecodePath, witnessPath, outputPath }) => {
431
- const { crsPath } = handleGlobalOptions();
448
+ .action(async ({ bytecodePath, witnessPath, outputPath, crsPath }) => {
449
+ handleGlobalOptions();
432
450
  await proveUltraHonk(bytecodePath, witnessPath, crsPath, outputPath, { keccak: true });
433
451
  });
434
452
 
@@ -439,8 +457,8 @@ program
439
457
  .option('-r, --recursive', 'Create a SNARK friendly proof', false)
440
458
  .option('-w, --witness-path <path>', 'Specify the witness path', './target/witness.gz')
441
459
  .option('-o, --output-path <path>', 'Specify the proof output path', './proofs/proof')
442
- .action(async ({ bytecodePath, witnessPath, outputPath }) => {
443
- const { crsPath } = handleGlobalOptions();
460
+ .action(async ({ bytecodePath, recursive, witnessPath, outputPath, crsPath }) => {
461
+ handleGlobalOptions();
444
462
  await proveUltraHonk(bytecodePath, witnessPath, crsPath, outputPath, { starknet: true });
445
463
  });
446
464
 
@@ -451,7 +469,6 @@ program
451
469
  .requiredOption('-o, --output-path <path>', 'Specify the path to write the key')
452
470
  .action(async ({ bytecodePath, outputPath }) => {
453
471
  const { crsPath } = handleGlobalOptions();
454
- debug(`Writing verification key to ${outputPath}`);
455
472
  await writeVkUltraHonk(bytecodePath, crsPath, outputPath);
456
473
  });
457
474
 
@@ -460,8 +477,8 @@ program
460
477
  .description('Output verification key.')
461
478
  .option('-b, --bytecode-path <path>', 'Specify the bytecode path', './target/program.json')
462
479
  .requiredOption('-o, --output-path <path>', 'Specify the path to write the key')
463
- .action(async ({ bytecodePath, outputPath }) => {
464
- const { crsPath } = handleGlobalOptions();
480
+ .action(async ({ bytecodePath, outputPath, crsPath }) => {
481
+ handleGlobalOptions();
465
482
  await writeVkUltraHonk(bytecodePath, crsPath, outputPath, { keccak: true });
466
483
  });
467
484
 
@@ -471,8 +488,8 @@ program
471
488
  .option('-b, --bytecode-path <path>', 'Specify the bytecode path', './target/program.json')
472
489
  .option('-r, --recursive', 'Create a SNARK friendly proof', false)
473
490
  .requiredOption('-o, --output-path <path>', 'Specify the path to write the key')
474
- .action(async ({ bytecodePath, outputPath }) => {
475
- const { crsPath } = handleGlobalOptions();
491
+ .action(async ({ bytecodePath, recursive, outputPath, crsPath }) => {
492
+ handleGlobalOptions();
476
493
  await writeVkUltraHonk(bytecodePath, crsPath, outputPath, { starknet: true });
477
494
  });
478
495
 
@@ -1,10 +0,0 @@
1
- /**
2
- * Much the same as Array.map, only it takes an async fn as an element handler, and ensures that each element handler
3
- * is executed sequentially.
4
- * The pattern of `await Promise.all(arr.map(async e => { ... }))` only works if one's happy with each element handler
5
- * being run concurrently.
6
- * If one required sequential execution of async fn's, the only alternative was regular loops with mutable state vars.
7
- * The equivalent with asyncMap: `await asyncMap(arr, async e => { ... })`.
8
- */
9
- export declare function asyncMap<T, U>(arr: T[], fn: (e: T, i: number) => Promise<U>): Promise<U[]>;
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/async_map/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAMhG"}
@@ -1,16 +0,0 @@
1
- /**
2
- * Much the same as Array.map, only it takes an async fn as an element handler, and ensures that each element handler
3
- * is executed sequentially.
4
- * The pattern of `await Promise.all(arr.map(async e => { ... }))` only works if one's happy with each element handler
5
- * being run concurrently.
6
- * If one required sequential execution of async fn's, the only alternative was regular loops with mutable state vars.
7
- * The equivalent with asyncMap: `await asyncMap(arr, async e => { ... })`.
8
- */
9
- export async function asyncMap(arr, fn) {
10
- const results = [];
11
- for (let i = 0; i < arr.length; ++i) {
12
- results.push(await fn(arr[i], i));
13
- }
14
- return results;
15
- }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXN5bmNfbWFwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFFBQVEsQ0FBTyxHQUFRLEVBQUUsRUFBbUM7SUFDaEYsTUFBTSxPQUFPLEdBQVEsRUFBRSxDQUFDO0lBQ3hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDcEMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyJ9
@@ -1,63 +0,0 @@
1
- import { BackendOptions, Barretenberg, CircuitOptions } from './index.js';
2
- import { ProofData } from '../proof/index.js';
3
- export declare class AztecClientBackendError extends Error {
4
- constructor(message: string);
5
- }
6
- /**
7
- * Options for the UltraHonkBackend.
8
- */
9
- export type UltraHonkBackendOptions = {
10
- /** Selecting this option will use the keccak hash function instead of poseidon
11
- * when generating challenges in the proof.
12
- * Use this when you want to verify the created proof on an EVM chain.
13
- */
14
- keccak?: boolean;
15
- /** Selecting this option will use the keccak hash function instead of poseidon
16
- * when generating challenges in the proof.
17
- * Use this when you want to verify the created proof on an EVM chain.
18
- */
19
- keccakZK?: boolean;
20
- /** Selecting this option will use the poseidon/stark252 hash function instead of poseidon
21
- * when generating challenges in the proof.
22
- * Use this when you want to verify the created proof on an Starknet chain with Garaga.
23
- */
24
- starknet?: boolean;
25
- /** Selecting this option will use the poseidon/stark252 hash function instead of poseidon
26
- * when generating challenges in the proof.
27
- * Use this when you want to verify the created proof on an Starknet chain with Garaga.
28
- */
29
- starknetZK?: boolean;
30
- };
31
- export declare class UltraHonkBackend {
32
- protected backendOptions: BackendOptions;
33
- protected circuitOptions: CircuitOptions;
34
- protected api: Barretenberg;
35
- protected acirUncompressedBytecode: Uint8Array;
36
- constructor(acirBytecode: string, backendOptions?: BackendOptions, circuitOptions?: CircuitOptions);
37
- /** @ignore */
38
- private instantiate;
39
- generateProof(compressedWitness: Uint8Array, options?: UltraHonkBackendOptions): Promise<ProofData>;
40
- verifyProof(proofData: ProofData, options?: UltraHonkBackendOptions): Promise<boolean>;
41
- getVerificationKey(options?: UltraHonkBackendOptions): Promise<Uint8Array>;
42
- /** @description Returns a solidity verifier */
43
- getSolidityVerifier(vk?: Uint8Array): Promise<string>;
44
- generateRecursiveProofArtifacts(_proof: Uint8Array, _numOfPublicInputs: number): Promise<{
45
- proofAsFields: string[];
46
- vkAsFields: string[];
47
- vkHash: string;
48
- }>;
49
- destroy(): Promise<void>;
50
- }
51
- export declare class AztecClientBackend {
52
- protected acirBuf: Uint8Array[];
53
- protected options: BackendOptions;
54
- protected api: Barretenberg;
55
- constructor(acirBuf: Uint8Array[], options?: BackendOptions);
56
- /** @ignore */
57
- private instantiate;
58
- prove(witnessBuf: Uint8Array[], vksBuf?: Uint8Array[]): Promise<[Uint8Array, Uint8Array]>;
59
- verify(proof: Uint8Array, vk: Uint8Array): Promise<boolean>;
60
- gates(): Promise<number[]>;
61
- destroy(): Promise<void>;
62
- }
63
- //# sourceMappingURL=backend.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../../src/barretenberg/backend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE1E,OAAO,EAGL,SAAS,EAIV,MAAM,mBAAmB,CAAC;AAI3B,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,OAAO,EAAE,MAAM;CAG5B;AAmBD;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,qBAAa,gBAAgB;IAWzB,SAAS,CAAC,cAAc,EAAE,cAAc;IACxC,SAAS,CAAC,cAAc,EAAE,cAAc;IAN1C,SAAS,CAAC,GAAG,EAAG,YAAY,CAAC;IAC7B,SAAS,CAAC,wBAAwB,EAAE,UAAU,CAAC;gBAG7C,YAAY,EAAE,MAAM,EACV,cAAc,GAAE,cAA+B,EAC/C,cAAc,GAAE,cAAqC;IAIjE,cAAc;YACA,WAAW;IAYnB,aAAa,CAAC,iBAAiB,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,SAAS,CAAC;IAuCnG,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC;IA4BtF,kBAAkB,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;IAahF,+CAA+C;IACzC,mBAAmB,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAOrD,+BAA+B,CAEnC,MAAM,EAAE,UAAU,EAElB,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC;QAAE,aAAa,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IA0BvE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAM/B;AAmCD,qBAAa,kBAAkB;IAS3B,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE;IAC/B,SAAS,CAAC,OAAO,EAAE,cAAc;IAJnC,SAAS,CAAC,GAAG,EAAG,YAAY,CAAC;gBAGjB,OAAO,EAAE,UAAU,EAAE,EACrB,OAAO,GAAE,cAA+B;IAGpD,cAAc;YACA,WAAW;IAQnB,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,MAAM,GAAE,UAAU,EAAO,GAAG,OAAO,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAkB7F,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3D,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAQ1B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAM/B"}
@@ -1,236 +0,0 @@
1
- import { Barretenberg } from './index.js';
2
- import { RawBuffer } from '../types/raw_buffer.js';
3
- import { deflattenFields, flattenFieldsAsArray, reconstructHonkProof, splitHonkProof, PAIRING_POINTS_SIZE, } from '../proof/index.js';
4
- import { Encoder } from 'msgpackr/pack';
5
- import { ungzip } from 'pako';
6
- export class AztecClientBackendError extends Error {
7
- constructor(message) {
8
- super(message);
9
- }
10
- }
11
- // Utility for parsing gate counts from buffer
12
- // TODO: Where should this logic live? Should go away with move to msgpack.
13
- function parseBigEndianU32Array(buffer) {
14
- const dv = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
15
- let offset = 0;
16
- const count = buffer.byteLength >>> 2; // default is entire buffer length / 4
17
- const out = new Array(count);
18
- for (let i = 0; i < count; i++) {
19
- out[i] = dv.getUint32(offset, false);
20
- offset += 4;
21
- }
22
- return out;
23
- }
24
- export class UltraHonkBackend {
25
- constructor(acirBytecode, backendOptions = { threads: 1 }, circuitOptions = { recursive: false }) {
26
- this.backendOptions = backendOptions;
27
- this.circuitOptions = circuitOptions;
28
- this.acirUncompressedBytecode = acirToUint8Array(acirBytecode);
29
- }
30
- /** @ignore */
31
- async instantiate() {
32
- if (!this.api) {
33
- const api = await Barretenberg.new(this.backendOptions);
34
- const honkRecursion = true;
35
- await api.acirInitSRS(this.acirUncompressedBytecode, this.circuitOptions.recursive, honkRecursion);
36
- // We don't init a proving key here in the Honk API
37
- // await api.acirInitProvingKey(this.acirComposer, this.acirUncompressedBytecode);
38
- this.api = api;
39
- }
40
- }
41
- async generateProof(compressedWitness, options) {
42
- await this.instantiate();
43
- const proveUltraHonk = options?.keccak
44
- ? this.api.acirProveUltraKeccakHonk.bind(this.api)
45
- : options?.keccakZK
46
- ? this.api.acirProveUltraKeccakZkHonk.bind(this.api)
47
- : options?.starknet
48
- ? this.api.acirProveUltraStarknetHonk.bind(this.api)
49
- : options?.starknetZK
50
- ? this.api.acirProveUltraStarknetZkHonk.bind(this.api)
51
- : this.api.acirProveUltraHonk.bind(this.api);
52
- const proofWithPublicInputs = await proveUltraHonk(this.acirUncompressedBytecode, ungzip(compressedWitness));
53
- // Write VK to get the number of public inputs
54
- const writeVKUltraHonk = options?.keccak
55
- ? this.api.acirWriteVkUltraKeccakHonk.bind(this.api)
56
- : options?.keccakZK
57
- ? this.api.acirWriteVkUltraKeccakZkHonk.bind(this.api)
58
- : options?.starknet
59
- ? this.api.acirWriteVkUltraStarknetHonk.bind(this.api)
60
- : options?.starknetZK
61
- ? this.api.acirWriteVkUltraStarknetZkHonk.bind(this.api)
62
- : this.api.acirWriteVkUltraHonk.bind(this.api);
63
- const vk = await writeVKUltraHonk(this.acirUncompressedBytecode);
64
- const vkAsFields = await this.api.acirVkAsFieldsUltraHonk(new RawBuffer(vk));
65
- // Item at index 1 in VK is the number of public inputs
66
- const publicInputsSizeIndex = 1; // index into VK for numPublicInputs
67
- const numPublicInputs = Number(vkAsFields[publicInputsSizeIndex].toString()) - PAIRING_POINTS_SIZE;
68
- const { proof, publicInputs: publicInputsBytes } = splitHonkProof(proofWithPublicInputs, numPublicInputs);
69
- const publicInputs = deflattenFields(publicInputsBytes);
70
- return { proof, publicInputs };
71
- }
72
- async verifyProof(proofData, options) {
73
- await this.instantiate();
74
- const proof = reconstructHonkProof(flattenFieldsAsArray(proofData.publicInputs), proofData.proof);
75
- const writeVkUltraHonk = options?.keccak
76
- ? this.api.acirWriteVkUltraKeccakHonk.bind(this.api)
77
- : options?.keccakZK
78
- ? this.api.acirWriteVkUltraKeccakZkHonk.bind(this.api)
79
- : options?.starknet
80
- ? this.api.acirWriteVkUltraStarknetHonk.bind(this.api)
81
- : options?.starknetZK
82
- ? this.api.acirWriteVkUltraStarknetZkHonk.bind(this.api)
83
- : this.api.acirWriteVkUltraHonk.bind(this.api);
84
- const verifyUltraHonk = options?.keccak
85
- ? this.api.acirVerifyUltraKeccakHonk.bind(this.api)
86
- : options?.keccakZK
87
- ? this.api.acirVerifyUltraKeccakZkHonk.bind(this.api)
88
- : options?.starknet
89
- ? this.api.acirVerifyUltraStarknetHonk.bind(this.api)
90
- : options?.starknetZK
91
- ? this.api.acirVerifyUltraStarknetZkHonk.bind(this.api)
92
- : this.api.acirVerifyUltraHonk.bind(this.api);
93
- const vkBuf = await writeVkUltraHonk(this.acirUncompressedBytecode);
94
- return await verifyUltraHonk(proof, new RawBuffer(vkBuf));
95
- }
96
- async getVerificationKey(options) {
97
- await this.instantiate();
98
- return options?.keccak
99
- ? await this.api.acirWriteVkUltraKeccakHonk(this.acirUncompressedBytecode)
100
- : options?.keccakZK
101
- ? await this.api.acirWriteVkUltraKeccakZkHonk(this.acirUncompressedBytecode)
102
- : options?.starknet
103
- ? await this.api.acirWriteVkUltraStarknetHonk(this.acirUncompressedBytecode)
104
- : options?.starknetZK
105
- ? await this.api.acirWriteVkUltraStarknetZkHonk(this.acirUncompressedBytecode)
106
- : await this.api.acirWriteVkUltraHonk(this.acirUncompressedBytecode);
107
- }
108
- /** @description Returns a solidity verifier */
109
- async getSolidityVerifier(vk) {
110
- await this.instantiate();
111
- const vkBuf = vk ?? (await this.api.acirWriteVkUltraKeccakHonk(this.acirUncompressedBytecode));
112
- return await this.api.acirHonkSolidityVerifier(this.acirUncompressedBytecode, new RawBuffer(vkBuf));
113
- }
114
- // 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
115
- async generateRecursiveProofArtifacts(
116
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
117
- _proof,
118
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
119
- _numOfPublicInputs) {
120
- await this.instantiate();
121
- // TODO(https://github.com/noir-lang/noir/issues/5661): This needs to be updated to handle recursive aggregation.
122
- // There is still a proofAsFields method but we could consider getting rid of it as the proof itself
123
- // is a list of field elements.
124
- // UltraHonk also does not have public inputs directly prepended to the proof and they are still instead
125
- // inserted at an offset.
126
- // const proof = reconstructProofWithPublicInputs(proofData);
127
- // const proofAsFields = (await this.api.acirProofAsFieldsUltraHonk(proof)).slice(numOfPublicInputs);
128
- // TODO: perhaps we should put this in the init function. Need to benchmark
129
- // TODO how long it takes.
130
- const vkBuf = await this.api.acirWriteVkUltraHonk(this.acirUncompressedBytecode);
131
- const vk = await this.api.acirVkAsFieldsUltraHonk(vkBuf);
132
- return {
133
- // TODO(https://github.com/noir-lang/noir/issues/5661)
134
- proofAsFields: [],
135
- vkAsFields: vk.map(vk => vk.toString()),
136
- // We use an empty string for the vk hash here as it is unneeded as part of the recursive artifacts
137
- // The user can be expected to hash the vk inside their circuit to check whether the vk is the circuit
138
- // they expect
139
- vkHash: '',
140
- };
141
- }
142
- async destroy() {
143
- if (!this.api) {
144
- return;
145
- }
146
- await this.api.destroy();
147
- }
148
- }
149
- function serializeAztecClientExecutionSteps(acirBuf, witnessBuf, vksBuf) {
150
- const steps = [];
151
- for (let i = 0; i < acirBuf.length; i++) {
152
- const bytecode = acirBuf[i];
153
- // Witnesses are not provided at all for gates info.
154
- const witness = witnessBuf[i] || Buffer.from([]);
155
- // VKs are optional for proving (deprecated feature) or not provided at all for gates info.
156
- const vk = vksBuf[i] || Buffer.from([]);
157
- const functionName = `unknown_wasm_${i}`;
158
- steps.push({
159
- bytecode,
160
- witness,
161
- vk,
162
- functionName,
163
- });
164
- }
165
- return new Encoder({ useRecords: false }).pack(steps);
166
- }
167
- export class AztecClientBackend {
168
- constructor(acirBuf, options = { threads: 1 }) {
169
- this.acirBuf = acirBuf;
170
- this.options = options;
171
- }
172
- /** @ignore */
173
- async instantiate() {
174
- if (!this.api) {
175
- const api = await Barretenberg.new(this.options);
176
- await api.initSRSClientIVC();
177
- this.api = api;
178
- }
179
- }
180
- async prove(witnessBuf, vksBuf = []) {
181
- if (vksBuf.length !== 0 && this.acirBuf.length !== witnessBuf.length) {
182
- throw new AztecClientBackendError('Witness and bytecodes must have the same stack depth!');
183
- }
184
- if (vksBuf.length !== 0 && vksBuf.length !== witnessBuf.length) {
185
- // NOTE: we allow 0 as an explicit 'I have no VKs'. This is a deprecated feature.
186
- throw new AztecClientBackendError('Witness and VKs must have the same stack depth!');
187
- }
188
- await this.instantiate();
189
- const ivcInputsBuf = serializeAztecClientExecutionSteps(this.acirBuf, witnessBuf, vksBuf);
190
- const proofAndVk = await this.api.acirProveAztecClient(ivcInputsBuf);
191
- const [proof, vk] = proofAndVk;
192
- if (!(await this.verify(proof, vk))) {
193
- throw new AztecClientBackendError('Failed to verify the private (ClientIVC) transaction proof!');
194
- }
195
- return proofAndVk;
196
- }
197
- async verify(proof, vk) {
198
- await this.instantiate();
199
- return this.api.acirVerifyAztecClient(proof, vk);
200
- }
201
- async gates() {
202
- // call function on API
203
- await this.instantiate();
204
- const ivcInputsBuf = serializeAztecClientExecutionSteps(this.acirBuf, [], []);
205
- const resultBuffer = await this.api.acirGatesAztecClient(ivcInputsBuf);
206
- return parseBigEndianU32Array(resultBuffer);
207
- }
208
- async destroy() {
209
- if (!this.api) {
210
- return;
211
- }
212
- await this.api.destroy();
213
- }
214
- }
215
- // Converts bytecode from a base64 string to a Uint8Array
216
- function acirToUint8Array(base64EncodedBytecode) {
217
- const compressedByteCode = base64Decode(base64EncodedBytecode);
218
- return ungzip(compressedByteCode);
219
- }
220
- // Since this is a simple function, we can use feature detection to
221
- // see if we are in the nodeJs environment or the browser environment.
222
- function base64Decode(input) {
223
- if (typeof Buffer !== 'undefined') {
224
- // Node.js environment
225
- const b = Buffer.from(input, 'base64');
226
- return new Uint8Array(b.buffer, b.byteOffset, b.byteLength);
227
- }
228
- else if (typeof atob === 'function') {
229
- // Browser environment
230
- return Uint8Array.from(atob(input), c => c.charCodeAt(0));
231
- }
232
- else {
233
- throw new Error('No implementation found for base64 decoding.');
234
- }
235
- }
236
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmcvYmFja2VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLFlBQVksRUFBa0IsTUFBTSxZQUFZLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFDTCxlQUFlLEVBQ2Ysb0JBQW9CLEVBRXBCLG9CQUFvQixFQUNwQixjQUFjLEVBQ2QsbUJBQW1CLEdBQ3BCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlCLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxLQUFLO0lBQ2hELFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBRUQsOENBQThDO0FBQzlDLDJFQUEyRTtBQUMzRSxTQUFTLHNCQUFzQixDQUFDLE1BQWtCO0lBQ2hELE1BQU0sRUFBRSxHQUFHLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFN0UsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2YsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUMsQ0FBQyxzQ0FBc0M7SUFFN0UsTUFBTSxHQUFHLEdBQWEsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQy9CLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxD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
@@ -1,53 +0,0 @@
1
- import { BarretenbergApi, BarretenbergApiSync } from '../barretenberg_api/index.js';
2
- import { BarretenbergWasmMain, BarretenbergWasmMainWorker } from '../barretenberg_wasm/barretenberg_wasm_main/index.js';
3
- export { BarretenbergVerifier } from './verifier.js';
4
- export { UltraHonkBackend, AztecClientBackend } from './backend.js';
5
- export type BackendOptions = {
6
- /** @description Number of threads to run the backend worker on */
7
- threads?: number;
8
- /** @description Initial and Maximum memory to be alloted to the backend worker */
9
- memory?: {
10
- initial?: number;
11
- maximum?: number;
12
- };
13
- /** @description Path to download CRS files */
14
- crsPath?: string;
15
- /** @description Path to download WASM files */
16
- wasmPath?: string;
17
- /** @description Logging function */
18
- logger?: (msg: string) => void;
19
- };
20
- export type CircuitOptions = {
21
- /** @description Whether to produce SNARK friendly proofs */
22
- recursive: boolean;
23
- };
24
- /**
25
- * The main class library consumers interact with.
26
- * It extends the generated api, and provides a static constructor "new" to compose components.
27
- */
28
- export declare class Barretenberg extends BarretenbergApi {
29
- private worker;
30
- private options;
31
- private constructor();
32
- /**
33
- * Constructs an instance of Barretenberg.
34
- * Launches it within a worker. This is necessary as it blocks waiting on child threads to complete,
35
- * and blocking the main thread in the browser is not allowed.
36
- * It threads > 1 (defaults to hardware availability), child threads will be created on their own workers.
37
- */
38
- static new(options?: BackendOptions): Promise<Barretenberg>;
39
- getNumThreads(): Promise<number>;
40
- initSRSForCircuitSize(circuitSize: number): Promise<void>;
41
- initSRSClientIVC(): Promise<void>;
42
- acirInitSRS(bytecode: Uint8Array, recursive: boolean, honkRecursion: boolean): Promise<void>;
43
- destroy(): Promise<void>;
44
- getWasm(): BarretenbergWasmMainWorker;
45
- }
46
- export declare class BarretenbergSync extends BarretenbergApiSync {
47
- private constructor();
48
- private static new;
49
- static initSingleton(wasmPath?: string, logger?: (msg: string) => void): Promise<BarretenbergSync>;
50
- static getSingleton(): BarretenbergSync;
51
- getWasm(): BarretenbergWasmMain;
52
- }
53
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
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;AAEpF,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,sDAAsD,CAAC;AAOxH,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEpE,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;IAEjB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,oCAAoC;IACpC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,4DAA4D;IAC5D,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,qBAAa,YAAa,SAAQ,eAAe;IAI7C,OAAO,CAAC,MAAM;IAHhB,OAAO,CAAC,OAAO,CAAiB;IAEhC,OAAO;IASP;;;;;OAKG;WACU,GAAG,CAAC,OAAO,GAAE,cAAmB;IAcvC,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;IAKb,OAAO;CAGR;AAKD,qBAAa,gBAAiB,SAAQ,mBAAmB;IACvD,OAAO;mBAIc,GAAG;WAOX,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAwC;IAS/G,MAAM,CAAC,YAAY;IAOnB,OAAO;CAGR"}