@aztec/bb.js 3.0.0-canary.a9708bd → 3.0.0-devnet.2-patch.1

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 (723) hide show
  1. package/README.md +13 -79
  2. package/build/amd64-linux/bb +0 -0
  3. package/build/amd64-linux/nodejs_module.node +0 -0
  4. package/build/amd64-macos/bb +0 -0
  5. package/build/amd64-macos/nodejs_module.node +0 -0
  6. package/build/arm64-linux/bb +0 -0
  7. package/build/arm64-linux/nodejs_module.node +0 -0
  8. package/build/arm64-macos/bb +0 -0
  9. package/build/arm64-macos/nodejs_module.node +0 -0
  10. package/dest/browser/async_map/index.d.ts +1 -1
  11. package/dest/browser/async_map/index.js +1 -1
  12. package/dest/browser/barretenberg/backend.d.ts +32 -41
  13. package/dest/browser/barretenberg/backend.d.ts.map +1 -1
  14. package/dest/browser/barretenberg/backend.js +128 -108
  15. package/dest/browser/barretenberg/index.d.ts +47 -48
  16. package/dest/browser/barretenberg/index.d.ts.map +1 -1
  17. package/dest/browser/barretenberg/index.js +132 -90
  18. package/dest/browser/barretenberg/testing/bigint-buffer.d.ts +17 -0
  19. package/dest/browser/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
  20. package/dest/browser/barretenberg/testing/bigint-buffer.js +37 -0
  21. package/dest/browser/barretenberg/testing/fields.d.ts +16 -0
  22. package/dest/browser/barretenberg/testing/fields.d.ts.map +1 -0
  23. package/dest/browser/barretenberg/testing/fields.js +47 -0
  24. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +2 -2
  25. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
  26. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.js +6 -7
  27. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
  28. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
  29. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +1 -3
  30. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
  31. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
  32. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +5 -5
  33. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
  34. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +20 -11
  35. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +16 -7
  36. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
  37. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.js +94 -26
  38. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
  39. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
  40. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +1 -3
  41. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
  42. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
  43. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
  44. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
  45. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
  46. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
  47. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
  48. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
  49. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
  50. package/dest/browser/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
  51. package/dest/browser/barretenberg_wasm/fetch_code/browser/index.js +1 -1
  52. package/dest/browser/barretenberg_wasm/fetch_code/index.d.ts +1 -1
  53. package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
  54. package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
  55. package/dest/browser/barretenberg_wasm/helpers/browser/index.js +9 -2
  56. package/dest/browser/barretenberg_wasm/helpers/index.d.ts +1 -1
  57. package/dest/browser/barretenberg_wasm/index.d.ts +1 -1
  58. package/dest/browser/barretenberg_wasm/index.d.ts.map +1 -1
  59. package/dest/browser/barretenberg_wasm/index.js +2 -3
  60. package/dest/browser/bb_backends/browser/index.d.ts +11 -0
  61. package/dest/browser/bb_backends/browser/index.d.ts.map +1 -0
  62. package/dest/browser/bb_backends/browser/index.js +39 -0
  63. package/dest/browser/bb_backends/browser/platform.d.ts +4 -0
  64. package/dest/browser/bb_backends/browser/platform.d.ts.map +1 -0
  65. package/dest/browser/bb_backends/browser/platform.js +10 -0
  66. package/dest/browser/bb_backends/index.d.ts +50 -0
  67. package/dest/browser/bb_backends/index.d.ts.map +1 -0
  68. package/dest/browser/bb_backends/index.js +16 -0
  69. package/dest/browser/bb_backends/interface.d.ts +33 -0
  70. package/dest/browser/bb_backends/interface.d.ts.map +1 -0
  71. package/dest/browser/bb_backends/interface.js +2 -0
  72. package/dest/browser/bb_backends/wasm.d.ts +49 -0
  73. package/dest/browser/bb_backends/wasm.d.ts.map +1 -0
  74. package/dest/browser/bb_backends/wasm.js +85 -0
  75. package/dest/browser/bbapi_exception.d.ts +7 -0
  76. package/dest/browser/bbapi_exception.d.ts.map +1 -0
  77. package/dest/browser/bbapi_exception.js +14 -0
  78. package/dest/browser/bin/index.d.ts +3 -0
  79. package/dest/{node/bindgen → browser/bin}/index.d.ts.map +1 -1
  80. package/dest/browser/bin/index.js +11 -0
  81. package/dest/browser/cbind/generate.d.ts +1 -1
  82. package/dest/browser/cbind/generate.js +94 -7
  83. package/dest/browser/cbind/generated/api_types.d.ts +1629 -230
  84. package/dest/browser/cbind/generated/api_types.d.ts.map +1 -1
  85. package/dest/browser/cbind/generated/api_types.js +2349 -479
  86. package/dest/browser/cbind/generated/async.d.ts +53 -14
  87. package/dest/browser/cbind/generated/async.d.ts.map +1 -1
  88. package/dest/browser/cbind/generated/async.js +587 -72
  89. package/dest/browser/cbind/generated/curve_constants.d.ts +45 -0
  90. package/dest/browser/cbind/generated/curve_constants.d.ts.map +1 -0
  91. package/dest/browser/cbind/generated/curve_constants.js +45 -0
  92. package/dest/browser/cbind/generated/sync.d.ts +54 -15
  93. package/dest/browser/cbind/generated/sync.d.ts.map +1 -1
  94. package/dest/browser/cbind/generated/sync.js +549 -72
  95. package/dest/browser/cbind/schema_compiler.d.ts +3 -5
  96. package/dest/browser/cbind/schema_compiler.d.ts.map +1 -1
  97. package/dest/browser/cbind/schema_compiler.js +102 -185
  98. package/dest/browser/crs/browser/cached_net_crs.d.ts +1 -1
  99. package/dest/browser/crs/browser/cached_net_crs.d.ts.map +1 -1
  100. package/dest/browser/crs/browser/cached_net_crs.js +6 -1
  101. package/dest/browser/crs/browser/index.d.ts +1 -1
  102. package/dest/browser/crs/index.d.ts +1 -1
  103. package/dest/browser/crs/net_crs.d.ts +1 -16
  104. package/dest/browser/crs/net_crs.d.ts.map +1 -1
  105. package/dest/browser/crs/net_crs.js +6 -1
  106. package/dest/browser/index.d.ts +6 -3
  107. package/dest/browser/index.d.ts.map +1 -1
  108. package/dest/browser/index.js +6 -3
  109. package/dest/browser/proof/index.d.ts +1 -1
  110. package/dest/browser/proof/index.js +1 -1
  111. package/dest/browser/random/browser/index.d.ts +1 -1
  112. package/dest/browser/random/browser/index.d.ts.map +1 -1
  113. package/dest/browser/random/browser/index.js +1 -1
  114. package/dest/browser/random/index.d.ts +1 -1
  115. package/dest/browser/retry/index.d.ts +1 -1
  116. package/dest/browser/retry/index.js +1 -1
  117. package/dest/node/async_map/index.d.ts +1 -1
  118. package/dest/node/async_map/index.js +1 -1
  119. package/dest/node/barretenberg/__snapshots__/pedersen.test.js.snap +2 -2
  120. package/dest/node/barretenberg/__snapshots__/poseidon.test.js.snap +3 -3
  121. package/dest/node/barretenberg/backend.d.ts +32 -41
  122. package/dest/node/barretenberg/backend.d.ts.map +1 -1
  123. package/dest/node/barretenberg/backend.js +128 -108
  124. package/dest/node/barretenberg/blake2s.test.d.ts +1 -1
  125. package/dest/node/barretenberg/blake2s.test.js +21 -18
  126. package/dest/node/barretenberg/index.d.ts +47 -48
  127. package/dest/node/barretenberg/index.d.ts.map +1 -1
  128. package/dest/node/barretenberg/index.js +132 -90
  129. package/dest/node/barretenberg/pedersen.test.d.ts +1 -1
  130. package/dest/node/barretenberg/pedersen.test.js +25 -18
  131. package/dest/node/barretenberg/poseidon.bench.test.d.ts +2 -0
  132. package/dest/node/barretenberg/poseidon.bench.test.d.ts.map +1 -0
  133. package/dest/node/barretenberg/poseidon.bench.test.js +218 -0
  134. package/dest/node/barretenberg/poseidon.test.d.ts +1 -1
  135. package/dest/node/barretenberg/poseidon.test.js +16 -16
  136. package/dest/node/barretenberg/testing/bigint-buffer.d.ts +17 -0
  137. package/dest/node/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
  138. package/dest/node/barretenberg/testing/bigint-buffer.js +37 -0
  139. package/dest/node/barretenberg/testing/fields.d.ts +16 -0
  140. package/dest/node/barretenberg/testing/fields.d.ts.map +1 -0
  141. package/dest/node/barretenberg/testing/fields.js +47 -0
  142. package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  143. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +2 -2
  144. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
  145. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.js +6 -7
  146. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
  147. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
  148. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +1 -3
  149. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
  150. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
  151. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +1 -1
  152. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
  153. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +1 -3
  154. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +1 -1
  155. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +1 -8
  156. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +5 -5
  157. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
  158. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +20 -11
  159. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +16 -7
  160. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
  161. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +94 -26
  162. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
  163. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
  164. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +1 -3
  165. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
  166. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
  167. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +1 -1
  168. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
  169. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +1 -3
  170. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +1 -1
  171. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +1 -7
  172. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
  173. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
  174. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
  175. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
  176. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
  177. package/dest/node/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
  178. package/dest/node/barretenberg_wasm/fetch_code/browser/index.js +1 -1
  179. package/dest/node/barretenberg_wasm/fetch_code/index.d.ts +1 -1
  180. package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts +1 -1
  181. package/dest/node/barretenberg_wasm/fetch_code/node/index.js +1 -1
  182. package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
  183. package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
  184. package/dest/node/barretenberg_wasm/helpers/browser/index.js +9 -2
  185. package/dest/node/barretenberg_wasm/helpers/index.d.ts +1 -1
  186. package/dest/node/barretenberg_wasm/helpers/node/index.d.ts +5 -6
  187. package/dest/node/barretenberg_wasm/helpers/node/index.d.ts.map +1 -1
  188. package/dest/node/barretenberg_wasm/helpers/node/index.js +14 -6
  189. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts +2 -2
  190. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -1
  191. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.js +1 -1
  192. package/dest/node/barretenberg_wasm/index.d.ts +1 -1
  193. package/dest/node/barretenberg_wasm/index.d.ts.map +1 -1
  194. package/dest/node/barretenberg_wasm/index.js +2 -3
  195. package/dest/node/barretenberg_wasm/index.test.d.ts +1 -1
  196. package/dest/node/barretenberg_wasm/index.test.js +11 -10
  197. package/dest/node/bb_backends/browser/index.d.ts +11 -0
  198. package/dest/node/bb_backends/browser/index.d.ts.map +1 -0
  199. package/dest/node/bb_backends/browser/index.js +39 -0
  200. package/dest/node/bb_backends/browser/platform.d.ts +4 -0
  201. package/dest/node/bb_backends/browser/platform.d.ts.map +1 -0
  202. package/dest/node/bb_backends/browser/platform.js +10 -0
  203. package/dest/node/bb_backends/index.d.ts +50 -0
  204. package/dest/node/bb_backends/index.d.ts.map +1 -0
  205. package/dest/node/bb_backends/index.js +16 -0
  206. package/dest/node/bb_backends/interface.d.ts +33 -0
  207. package/dest/node/bb_backends/interface.d.ts.map +1 -0
  208. package/dest/node/bb_backends/interface.js +2 -0
  209. package/dest/node/bb_backends/node/index.d.ts +11 -0
  210. package/dest/node/bb_backends/node/index.d.ts.map +1 -0
  211. package/dest/node/bb_backends/node/index.js +86 -0
  212. package/dest/node/bb_backends/node/native_pipe.d.ts +25 -0
  213. package/dest/node/bb_backends/node/native_pipe.d.ts.map +1 -0
  214. package/dest/node/bb_backends/node/native_pipe.js +114 -0
  215. package/dest/node/bb_backends/node/native_shm.d.ts +28 -0
  216. package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -0
  217. package/dest/node/bb_backends/node/native_shm.js +172 -0
  218. package/dest/node/bb_backends/node/native_shm_async.d.ts +51 -0
  219. package/dest/node/bb_backends/node/native_shm_async.d.ts.map +1 -0
  220. package/dest/node/bb_backends/node/native_shm_async.js +232 -0
  221. package/dest/node/bb_backends/node/native_socket.d.ts +34 -0
  222. package/dest/node/bb_backends/node/native_socket.d.ts.map +1 -0
  223. package/dest/node/bb_backends/node/native_socket.js +281 -0
  224. package/dest/node/bb_backends/node/platform.d.ts +27 -0
  225. package/dest/node/bb_backends/node/platform.d.ts.map +1 -0
  226. package/dest/node/bb_backends/node/platform.js +129 -0
  227. package/dest/node/bb_backends/wasm.d.ts +49 -0
  228. package/dest/node/bb_backends/wasm.d.ts.map +1 -0
  229. package/dest/node/bb_backends/wasm.js +85 -0
  230. package/dest/node/bbapi/exception_handling.test.d.ts +2 -0
  231. package/dest/node/bbapi/exception_handling.test.d.ts.map +1 -0
  232. package/dest/node/bbapi/exception_handling.test.js +48 -0
  233. package/dest/node/bbapi_exception.d.ts +7 -0
  234. package/dest/node/bbapi_exception.d.ts.map +1 -0
  235. package/dest/node/bbapi_exception.js +14 -0
  236. package/dest/node/benchmark/index.d.ts +1 -1
  237. package/dest/node/benchmark/index.js +1 -1
  238. package/dest/node/benchmark/timer.d.ts +1 -1
  239. package/dest/node/benchmark/timer.d.ts.map +1 -1
  240. package/dest/node/benchmark/timer.js +2 -1
  241. package/dest/node/bin/index.d.ts +3 -0
  242. package/dest/node/bin/index.d.ts.map +1 -0
  243. package/dest/node/bin/index.js +11 -0
  244. package/dest/node/cbind/generate.d.ts +1 -1
  245. package/dest/node/cbind/generate.js +94 -7
  246. package/dest/node/cbind/generated/api_types.d.ts +1629 -230
  247. package/dest/node/cbind/generated/api_types.d.ts.map +1 -1
  248. package/dest/node/cbind/generated/api_types.js +2349 -479
  249. package/dest/node/cbind/generated/async.d.ts +53 -14
  250. package/dest/node/cbind/generated/async.d.ts.map +1 -1
  251. package/dest/node/cbind/generated/async.js +587 -72
  252. package/dest/node/cbind/generated/curve_constants.d.ts +45 -0
  253. package/dest/node/cbind/generated/curve_constants.d.ts.map +1 -0
  254. package/dest/node/cbind/generated/curve_constants.js +45 -0
  255. package/dest/node/cbind/generated/sync.d.ts +54 -15
  256. package/dest/node/cbind/generated/sync.d.ts.map +1 -1
  257. package/dest/node/cbind/generated/sync.js +549 -72
  258. package/dest/node/cbind/schema_compiler.d.ts +3 -5
  259. package/dest/node/cbind/schema_compiler.d.ts.map +1 -1
  260. package/dest/node/cbind/schema_compiler.js +102 -185
  261. package/dest/node/crs/browser/cached_net_crs.d.ts +1 -1
  262. package/dest/node/crs/browser/cached_net_crs.d.ts.map +1 -1
  263. package/dest/node/crs/browser/cached_net_crs.js +6 -1
  264. package/dest/node/crs/browser/index.d.ts +1 -1
  265. package/dest/node/crs/index.d.ts +1 -1
  266. package/dest/node/crs/net_crs.d.ts +1 -16
  267. package/dest/node/crs/net_crs.d.ts.map +1 -1
  268. package/dest/node/crs/net_crs.js +6 -1
  269. package/dest/node/crs/node/index.d.ts +1 -1
  270. package/dest/node/crs/node/index.d.ts.map +1 -1
  271. package/dest/node/crs/node/index.js +11 -6
  272. package/dest/node/index.d.ts +6 -3
  273. package/dest/node/index.d.ts.map +1 -1
  274. package/dest/node/index.js +6 -3
  275. package/dest/node/proof/index.d.ts +1 -1
  276. package/dest/node/proof/index.js +1 -1
  277. package/dest/node/random/browser/index.d.ts +1 -1
  278. package/dest/node/random/browser/index.d.ts.map +1 -1
  279. package/dest/node/random/browser/index.js +1 -1
  280. package/dest/node/random/index.d.ts +1 -1
  281. package/dest/node/random/node/index.d.ts +1 -1
  282. package/dest/node/random/node/index.js +1 -1
  283. package/dest/node/retry/index.d.ts +1 -1
  284. package/dest/node/retry/index.js +1 -1
  285. package/dest/node-cjs/async_map/index.d.ts +1 -1
  286. package/dest/node-cjs/async_map/index.js +1 -1
  287. package/dest/node-cjs/barretenberg/backend.d.ts +32 -41
  288. package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
  289. package/dest/node-cjs/barretenberg/backend.js +131 -111
  290. package/dest/node-cjs/barretenberg/blake2s.test.d.ts +1 -1
  291. package/dest/node-cjs/barretenberg/blake2s.test.js +22 -19
  292. package/dest/node-cjs/barretenberg/index.d.ts +47 -48
  293. package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
  294. package/dest/node-cjs/barretenberg/index.js +136 -93
  295. package/dest/node-cjs/barretenberg/pedersen.test.d.ts +1 -1
  296. package/dest/node-cjs/barretenberg/pedersen.test.js +27 -20
  297. package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts +2 -0
  298. package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts.map +1 -0
  299. package/dest/node-cjs/barretenberg/poseidon.bench.test.js +220 -0
  300. package/dest/node-cjs/barretenberg/poseidon.test.d.ts +1 -1
  301. package/dest/node-cjs/barretenberg/poseidon.test.js +16 -16
  302. package/dest/node-cjs/barretenberg/testing/bigint-buffer.d.ts +17 -0
  303. package/dest/node-cjs/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
  304. package/dest/node-cjs/barretenberg/testing/bigint-buffer.js +43 -0
  305. package/dest/node-cjs/barretenberg/testing/fields.d.ts +16 -0
  306. package/dest/node-cjs/barretenberg/testing/fields.d.ts.map +1 -0
  307. package/dest/node-cjs/barretenberg/testing/fields.js +51 -0
  308. package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  309. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +2 -2
  310. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
  311. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.js +8 -9
  312. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
  313. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
  314. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +3 -5
  315. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
  316. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
  317. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +1 -1
  318. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
  319. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +1 -3
  320. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +1 -1
  321. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +1 -8
  322. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +5 -5
  323. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
  324. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +20 -11
  325. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +16 -7
  326. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
  327. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +94 -26
  328. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
  329. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
  330. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +3 -5
  331. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
  332. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
  333. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +1 -1
  334. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
  335. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +1 -3
  336. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +1 -1
  337. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +1 -7
  338. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
  339. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
  340. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
  341. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
  342. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
  343. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
  344. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
  345. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
  346. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.js +2 -2
  347. package/dest/node-cjs/barretenberg_wasm/fetch_code/index.d.ts +1 -1
  348. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts +1 -1
  349. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.js +2 -2
  350. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
  351. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
  352. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.js +9 -2
  353. package/dest/node-cjs/barretenberg_wasm/helpers/index.d.ts +1 -1
  354. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts +5 -6
  355. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts.map +1 -1
  356. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.js +15 -7
  357. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts +2 -2
  358. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -1
  359. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.js +1 -1
  360. package/dest/node-cjs/barretenberg_wasm/index.d.ts +1 -1
  361. package/dest/node-cjs/barretenberg_wasm/index.d.ts.map +1 -1
  362. package/dest/node-cjs/barretenberg_wasm/index.js +2 -3
  363. package/dest/node-cjs/barretenberg_wasm/index.test.d.ts +1 -1
  364. package/dest/node-cjs/barretenberg_wasm/index.test.js +11 -10
  365. package/dest/node-cjs/bb_backends/browser/index.d.ts +11 -0
  366. package/dest/node-cjs/bb_backends/browser/index.d.ts.map +1 -0
  367. package/dest/node-cjs/bb_backends/browser/index.js +43 -0
  368. package/dest/node-cjs/bb_backends/browser/platform.d.ts +4 -0
  369. package/dest/node-cjs/bb_backends/browser/platform.d.ts.map +1 -0
  370. package/dest/node-cjs/bb_backends/browser/platform.js +15 -0
  371. package/dest/node-cjs/bb_backends/index.d.ts +50 -0
  372. package/dest/node-cjs/bb_backends/index.d.ts.map +1 -0
  373. package/dest/node-cjs/bb_backends/index.js +18 -0
  374. package/dest/node-cjs/bb_backends/interface.d.ts +33 -0
  375. package/dest/node-cjs/bb_backends/interface.d.ts.map +1 -0
  376. package/dest/node-cjs/bb_backends/interface.js +3 -0
  377. package/dest/node-cjs/bb_backends/node/index.d.ts +11 -0
  378. package/dest/node-cjs/bb_backends/node/index.d.ts.map +1 -0
  379. package/dest/node-cjs/bb_backends/node/index.js +90 -0
  380. package/dest/node-cjs/bb_backends/node/native_pipe.d.ts +25 -0
  381. package/dest/node-cjs/bb_backends/node/native_pipe.d.ts.map +1 -0
  382. package/dest/node-cjs/bb_backends/node/native_pipe.js +118 -0
  383. package/dest/node-cjs/bb_backends/node/native_shm.d.ts +28 -0
  384. package/dest/node-cjs/bb_backends/node/native_shm.d.ts.map +1 -0
  385. package/dest/node-cjs/bb_backends/node/native_shm.js +176 -0
  386. package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts +51 -0
  387. package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts.map +1 -0
  388. package/dest/node-cjs/bb_backends/node/native_shm_async.js +236 -0
  389. package/dest/node-cjs/bb_backends/node/native_socket.d.ts +34 -0
  390. package/dest/node-cjs/bb_backends/node/native_socket.d.ts.map +1 -0
  391. package/dest/node-cjs/bb_backends/node/native_socket.js +286 -0
  392. package/dest/node-cjs/bb_backends/node/platform.d.ts +27 -0
  393. package/dest/node-cjs/bb_backends/node/platform.d.ts.map +1 -0
  394. package/dest/node-cjs/bb_backends/node/platform.js +136 -0
  395. package/dest/node-cjs/bb_backends/wasm.d.ts +49 -0
  396. package/dest/node-cjs/bb_backends/wasm.d.ts.map +1 -0
  397. package/dest/node-cjs/bb_backends/wasm.js +90 -0
  398. package/dest/node-cjs/bbapi/exception_handling.test.d.ts +2 -0
  399. package/dest/node-cjs/bbapi/exception_handling.test.d.ts.map +1 -0
  400. package/dest/node-cjs/bbapi/exception_handling.test.js +50 -0
  401. package/dest/node-cjs/bbapi_exception.d.ts +7 -0
  402. package/dest/node-cjs/bbapi_exception.d.ts.map +1 -0
  403. package/dest/node-cjs/bbapi_exception.js +18 -0
  404. package/dest/node-cjs/benchmark/index.d.ts +1 -1
  405. package/dest/node-cjs/benchmark/index.js +2 -2
  406. package/dest/node-cjs/benchmark/timer.d.ts +1 -1
  407. package/dest/node-cjs/benchmark/timer.d.ts.map +1 -1
  408. package/dest/node-cjs/benchmark/timer.js +2 -1
  409. package/dest/node-cjs/bin/index.d.ts +3 -0
  410. package/dest/node-cjs/{bindgen → bin}/index.d.ts.map +1 -1
  411. package/dest/node-cjs/bin/index.js +13 -0
  412. package/dest/node-cjs/cbind/generate.d.ts +1 -1
  413. package/dest/node-cjs/cbind/generate.js +93 -6
  414. package/dest/node-cjs/cbind/generated/api_types.d.ts +1629 -230
  415. package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -1
  416. package/dest/node-cjs/cbind/generated/api_types.js +2555 -519
  417. package/dest/node-cjs/cbind/generated/async.d.ts +53 -14
  418. package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -1
  419. package/dest/node-cjs/cbind/generated/async.js +586 -71
  420. package/dest/node-cjs/cbind/generated/curve_constants.d.ts +45 -0
  421. package/dest/node-cjs/cbind/generated/curve_constants.d.ts.map +1 -0
  422. package/dest/node-cjs/cbind/generated/curve_constants.js +48 -0
  423. package/dest/node-cjs/cbind/generated/sync.d.ts +54 -15
  424. package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -1
  425. package/dest/node-cjs/cbind/generated/sync.js +548 -71
  426. package/dest/node-cjs/cbind/schema_compiler.d.ts +3 -5
  427. package/dest/node-cjs/cbind/schema_compiler.d.ts.map +1 -1
  428. package/dest/node-cjs/cbind/schema_compiler.js +102 -186
  429. package/dest/node-cjs/crs/browser/cached_net_crs.d.ts +1 -1
  430. package/dest/node-cjs/crs/browser/cached_net_crs.d.ts.map +1 -1
  431. package/dest/node-cjs/crs/browser/cached_net_crs.js +6 -1
  432. package/dest/node-cjs/crs/browser/index.d.ts +1 -1
  433. package/dest/node-cjs/crs/browser/index.js +2 -2
  434. package/dest/node-cjs/crs/index.d.ts +1 -1
  435. package/dest/node-cjs/crs/index.js +2 -2
  436. package/dest/node-cjs/crs/net_crs.d.ts +1 -16
  437. package/dest/node-cjs/crs/net_crs.d.ts.map +1 -1
  438. package/dest/node-cjs/crs/net_crs.js +6 -1
  439. package/dest/node-cjs/crs/node/index.d.ts +1 -1
  440. package/dest/node-cjs/crs/node/index.d.ts.map +1 -1
  441. package/dest/node-cjs/crs/node/index.js +11 -6
  442. package/dest/node-cjs/index.d.ts +6 -3
  443. package/dest/node-cjs/index.d.ts.map +1 -1
  444. package/dest/node-cjs/index.js +29 -12
  445. package/dest/node-cjs/proof/index.d.ts +1 -1
  446. package/dest/node-cjs/proof/index.js +1 -1
  447. package/dest/node-cjs/random/browser/index.d.ts +1 -1
  448. package/dest/node-cjs/random/browser/index.d.ts.map +1 -1
  449. package/dest/node-cjs/random/browser/index.js +1 -1
  450. package/dest/node-cjs/random/index.d.ts +1 -1
  451. package/dest/node-cjs/random/node/index.d.ts +1 -1
  452. package/dest/node-cjs/random/node/index.js +1 -1
  453. package/dest/node-cjs/retry/index.d.ts +1 -1
  454. package/dest/node-cjs/retry/index.js +1 -1
  455. package/package.json +12 -10
  456. package/src/barretenberg/__snapshots__/pedersen.test.ts.snap +2 -2
  457. package/src/barretenberg/__snapshots__/poseidon.test.ts.snap +3 -3
  458. package/src/barretenberg/backend.ts +165 -154
  459. package/src/barretenberg/blake2s.test.ts +20 -21
  460. package/src/barretenberg/index.ts +144 -130
  461. package/src/barretenberg/pedersen.test.ts +24 -17
  462. package/src/barretenberg/poseidon.bench.test.ts +271 -0
  463. package/src/barretenberg/poseidon.test.ts +15 -15
  464. package/src/barretenberg/testing/fields.ts +63 -0
  465. package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +4 -5
  466. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.ts +0 -2
  467. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.ts +0 -7
  468. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts +0 -2
  469. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.ts +0 -9
  470. package/src/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.ts +17 -9
  471. package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +104 -20
  472. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.ts +0 -2
  473. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.ts +0 -7
  474. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts +0 -2
  475. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.ts +0 -7
  476. package/src/barretenberg_wasm/barretenberg_wasm_thread/index.ts +3 -2
  477. package/src/barretenberg_wasm/helpers/browser/index.ts +8 -1
  478. package/src/barretenberg_wasm/helpers/node/index.ts +13 -6
  479. package/src/barretenberg_wasm/index.test.ts +12 -11
  480. package/src/barretenberg_wasm/index.ts +1 -2
  481. package/src/bb_backends/browser/index.ts +50 -0
  482. package/src/bb_backends/browser/platform.ts +11 -0
  483. package/src/bb_backends/index.ts +55 -0
  484. package/src/bb_backends/interface.ts +35 -0
  485. package/src/bb_backends/node/index.ts +107 -0
  486. package/src/bb_backends/node/native_pipe.ts +127 -0
  487. package/src/bb_backends/node/native_shm.ts +190 -0
  488. package/src/bb_backends/node/native_shm_async.ts +261 -0
  489. package/src/bb_backends/node/native_socket.ts +325 -0
  490. package/src/bb_backends/node/platform.ts +156 -0
  491. package/src/bb_backends/wasm.ts +102 -0
  492. package/src/bbapi/exception_handling.test.ts +54 -0
  493. package/src/bbapi_exception.ts +13 -0
  494. package/src/bin/index.ts +14 -0
  495. package/src/cbind/README.md +1 -1
  496. package/src/cbind/generate.ts +99 -6
  497. package/src/cbind/generated/api_types.ts +4241 -0
  498. package/src/cbind/generated/async.ts +717 -0
  499. package/src/cbind/generated/curve_constants.ts +53 -0
  500. package/src/cbind/generated/sync.ts +663 -0
  501. package/src/cbind/schema_compiler.ts +156 -244
  502. package/src/crs/node/index.ts +4 -5
  503. package/src/index.ts +33 -1
  504. package/dest/browser/barretenberg_api/index.d.ts +0 -109
  505. package/dest/browser/barretenberg_api/index.d.ts.map +0 -1
  506. package/dest/browser/barretenberg_api/index.js +0 -699
  507. package/dest/browser/bigint-array/index.d.ts +0 -17
  508. package/dest/browser/bigint-array/index.d.ts.map +0 -1
  509. package/dest/browser/bigint-array/index.js +0 -37
  510. package/dest/browser/cbind/generated/native.d.ts +0 -31
  511. package/dest/browser/cbind/generated/native.d.ts.map +0 -1
  512. package/dest/browser/cbind/generated/native.js +0 -234
  513. package/dest/browser/log/browser/index.d.ts +0 -6
  514. package/dest/browser/log/browser/index.d.ts.map +0 -1
  515. package/dest/browser/log/browser/index.js +0 -28
  516. package/dest/browser/log/index.d.ts +0 -2
  517. package/dest/browser/log/index.d.ts.map +0 -1
  518. package/dest/browser/log/index.js +0 -2
  519. package/dest/browser/log/types.d.ts +0 -6
  520. package/dest/browser/log/types.d.ts.map +0 -1
  521. package/dest/browser/log/types.js +0 -2
  522. package/dest/browser/serialize/buffer_reader.d.ts +0 -28
  523. package/dest/browser/serialize/buffer_reader.d.ts.map +0 -1
  524. package/dest/browser/serialize/buffer_reader.js +0 -66
  525. package/dest/browser/serialize/index.d.ts +0 -4
  526. package/dest/browser/serialize/index.d.ts.map +0 -1
  527. package/dest/browser/serialize/index.js +0 -4
  528. package/dest/browser/serialize/output_type.d.ts +0 -11
  529. package/dest/browser/serialize/output_type.d.ts.map +0 -1
  530. package/dest/browser/serialize/output_type.js +0 -44
  531. package/dest/browser/serialize/serialize.d.ts +0 -53
  532. package/dest/browser/serialize/serialize.d.ts.map +0 -1
  533. package/dest/browser/serialize/serialize.js +0 -139
  534. package/dest/browser/types/fields.d.ts +0 -43
  535. package/dest/browser/types/fields.d.ts.map +0 -1
  536. package/dest/browser/types/fields.js +0 -102
  537. package/dest/browser/types/fixed_size_buffer.d.ts +0 -26
  538. package/dest/browser/types/fixed_size_buffer.d.ts.map +0 -1
  539. package/dest/browser/types/fixed_size_buffer.js +0 -51
  540. package/dest/browser/types/index.d.ts +0 -6
  541. package/dest/browser/types/index.d.ts.map +0 -1
  542. package/dest/browser/types/index.js +0 -6
  543. package/dest/browser/types/point.d.ts +0 -16
  544. package/dest/browser/types/point.d.ts.map +0 -1
  545. package/dest/browser/types/point.js +0 -31
  546. package/dest/browser/types/ptr.d.ts +0 -13
  547. package/dest/browser/types/ptr.d.ts.map +0 -1
  548. package/dest/browser/types/ptr.js +0 -19
  549. package/dest/browser/types/raw_buffer.d.ts +0 -3
  550. package/dest/browser/types/raw_buffer.d.ts.map +0 -1
  551. package/dest/browser/types/raw_buffer.js +0 -5
  552. package/dest/node/barretenberg/common.test.d.ts +0 -2
  553. package/dest/node/barretenberg/common.test.d.ts.map +0 -1
  554. package/dest/node/barretenberg/common.test.js +0 -20
  555. package/dest/node/barretenberg_api/index.d.ts +0 -109
  556. package/dest/node/barretenberg_api/index.d.ts.map +0 -1
  557. package/dest/node/barretenberg_api/index.js +0 -699
  558. package/dest/node/bigint-array/index.d.ts +0 -17
  559. package/dest/node/bigint-array/index.d.ts.map +0 -1
  560. package/dest/node/bigint-array/index.js +0 -37
  561. package/dest/node/bindgen/function_declaration.d.ts +0 -11
  562. package/dest/node/bindgen/function_declaration.d.ts.map +0 -1
  563. package/dest/node/bindgen/function_declaration.js +0 -2
  564. package/dest/node/bindgen/index.d.ts +0 -2
  565. package/dest/node/bindgen/index.js +0 -15
  566. package/dest/node/bindgen/mappings.d.ts +0 -4
  567. package/dest/node/bindgen/mappings.d.ts.map +0 -1
  568. package/dest/node/bindgen/mappings.js +0 -64
  569. package/dest/node/bindgen/rust.d.ts +0 -2
  570. package/dest/node/bindgen/rust.d.ts.map +0 -1
  571. package/dest/node/bindgen/rust.js +0 -43
  572. package/dest/node/bindgen/to_camel_case.d.ts +0 -2
  573. package/dest/node/bindgen/to_camel_case.d.ts.map +0 -1
  574. package/dest/node/bindgen/to_camel_case.js +0 -11
  575. package/dest/node/bindgen/typescript.d.ts +0 -2
  576. package/dest/node/bindgen/typescript.d.ts.map +0 -1
  577. package/dest/node/bindgen/typescript.js +0 -100
  578. package/dest/node/cbind/generated/native.d.ts +0 -31
  579. package/dest/node/cbind/generated/native.d.ts.map +0 -1
  580. package/dest/node/cbind/generated/native.js +0 -234
  581. package/dest/node/log/browser/index.d.ts +0 -6
  582. package/dest/node/log/browser/index.d.ts.map +0 -1
  583. package/dest/node/log/browser/index.js +0 -28
  584. package/dest/node/log/index.d.ts +0 -2
  585. package/dest/node/log/index.d.ts.map +0 -1
  586. package/dest/node/log/index.js +0 -2
  587. package/dest/node/log/node/index.d.ts +0 -6
  588. package/dest/node/log/node/index.d.ts.map +0 -1
  589. package/dest/node/log/node/index.js +0 -40
  590. package/dest/node/log/types.d.ts +0 -6
  591. package/dest/node/log/types.d.ts.map +0 -1
  592. package/dest/node/log/types.js +0 -2
  593. package/dest/node/main.d.ts +0 -13
  594. package/dest/node/main.d.ts.map +0 -1
  595. package/dest/node/main.js +0 -459
  596. package/dest/node/serialize/buffer_reader.d.ts +0 -28
  597. package/dest/node/serialize/buffer_reader.d.ts.map +0 -1
  598. package/dest/node/serialize/buffer_reader.js +0 -66
  599. package/dest/node/serialize/index.d.ts +0 -4
  600. package/dest/node/serialize/index.d.ts.map +0 -1
  601. package/dest/node/serialize/index.js +0 -4
  602. package/dest/node/serialize/output_type.d.ts +0 -11
  603. package/dest/node/serialize/output_type.d.ts.map +0 -1
  604. package/dest/node/serialize/output_type.js +0 -44
  605. package/dest/node/serialize/serialize.d.ts +0 -53
  606. package/dest/node/serialize/serialize.d.ts.map +0 -1
  607. package/dest/node/serialize/serialize.js +0 -139
  608. package/dest/node/types/fields.d.ts +0 -43
  609. package/dest/node/types/fields.d.ts.map +0 -1
  610. package/dest/node/types/fields.js +0 -102
  611. package/dest/node/types/fixed_size_buffer.d.ts +0 -26
  612. package/dest/node/types/fixed_size_buffer.d.ts.map +0 -1
  613. package/dest/node/types/fixed_size_buffer.js +0 -51
  614. package/dest/node/types/index.d.ts +0 -6
  615. package/dest/node/types/index.d.ts.map +0 -1
  616. package/dest/node/types/index.js +0 -6
  617. package/dest/node/types/point.d.ts +0 -16
  618. package/dest/node/types/point.d.ts.map +0 -1
  619. package/dest/node/types/point.js +0 -31
  620. package/dest/node/types/ptr.d.ts +0 -13
  621. package/dest/node/types/ptr.d.ts.map +0 -1
  622. package/dest/node/types/ptr.js +0 -19
  623. package/dest/node/types/raw_buffer.d.ts +0 -3
  624. package/dest/node/types/raw_buffer.d.ts.map +0 -1
  625. package/dest/node/types/raw_buffer.js +0 -5
  626. package/dest/node-cjs/barretenberg/common.test.d.ts +0 -2
  627. package/dest/node-cjs/barretenberg/common.test.d.ts.map +0 -1
  628. package/dest/node-cjs/barretenberg/common.test.js +0 -22
  629. package/dest/node-cjs/barretenberg_api/index.d.ts +0 -109
  630. package/dest/node-cjs/barretenberg_api/index.d.ts.map +0 -1
  631. package/dest/node-cjs/barretenberg_api/index.js +0 -704
  632. package/dest/node-cjs/bigint-array/index.d.ts +0 -17
  633. package/dest/node-cjs/bigint-array/index.d.ts.map +0 -1
  634. package/dest/node-cjs/bigint-array/index.js +0 -43
  635. package/dest/node-cjs/bindgen/function_declaration.d.ts +0 -11
  636. package/dest/node-cjs/bindgen/function_declaration.d.ts.map +0 -1
  637. package/dest/node-cjs/bindgen/function_declaration.js +0 -3
  638. package/dest/node-cjs/bindgen/index.d.ts +0 -2
  639. package/dest/node-cjs/bindgen/index.js +0 -17
  640. package/dest/node-cjs/bindgen/mappings.d.ts +0 -4
  641. package/dest/node-cjs/bindgen/mappings.d.ts.map +0 -1
  642. package/dest/node-cjs/bindgen/mappings.js +0 -69
  643. package/dest/node-cjs/bindgen/rust.d.ts +0 -2
  644. package/dest/node-cjs/bindgen/rust.d.ts.map +0 -1
  645. package/dest/node-cjs/bindgen/rust.js +0 -47
  646. package/dest/node-cjs/bindgen/to_camel_case.d.ts +0 -2
  647. package/dest/node-cjs/bindgen/to_camel_case.d.ts.map +0 -1
  648. package/dest/node-cjs/bindgen/to_camel_case.js +0 -14
  649. package/dest/node-cjs/bindgen/typescript.d.ts +0 -2
  650. package/dest/node-cjs/bindgen/typescript.d.ts.map +0 -1
  651. package/dest/node-cjs/bindgen/typescript.js +0 -104
  652. package/dest/node-cjs/cbind/generated/native.d.ts +0 -31
  653. package/dest/node-cjs/cbind/generated/native.d.ts.map +0 -1
  654. package/dest/node-cjs/cbind/generated/native.js +0 -238
  655. package/dest/node-cjs/log/browser/index.d.ts +0 -6
  656. package/dest/node-cjs/log/browser/index.d.ts.map +0 -1
  657. package/dest/node-cjs/log/browser/index.js +0 -30
  658. package/dest/node-cjs/log/index.d.ts +0 -2
  659. package/dest/node-cjs/log/index.d.ts.map +0 -1
  660. package/dest/node-cjs/log/index.js +0 -8
  661. package/dest/node-cjs/log/node/index.d.ts +0 -6
  662. package/dest/node-cjs/log/node/index.d.ts.map +0 -1
  663. package/dest/node-cjs/log/node/index.js +0 -42
  664. package/dest/node-cjs/log/types.d.ts +0 -6
  665. package/dest/node-cjs/log/types.d.ts.map +0 -1
  666. package/dest/node-cjs/log/types.js +0 -3
  667. package/dest/node-cjs/main.d.ts +0 -13
  668. package/dest/node-cjs/main.d.ts.map +0 -1
  669. package/dest/node-cjs/main.js +0 -470
  670. package/dest/node-cjs/serialize/buffer_reader.d.ts +0 -28
  671. package/dest/node-cjs/serialize/buffer_reader.d.ts.map +0 -1
  672. package/dest/node-cjs/serialize/buffer_reader.js +0 -70
  673. package/dest/node-cjs/serialize/index.d.ts +0 -4
  674. package/dest/node-cjs/serialize/index.d.ts.map +0 -1
  675. package/dest/node-cjs/serialize/index.js +0 -7
  676. package/dest/node-cjs/serialize/output_type.d.ts +0 -11
  677. package/dest/node-cjs/serialize/output_type.d.ts.map +0 -1
  678. package/dest/node-cjs/serialize/output_type.js +0 -51
  679. package/dest/node-cjs/serialize/serialize.d.ts +0 -53
  680. package/dest/node-cjs/serialize/serialize.d.ts.map +0 -1
  681. package/dest/node-cjs/serialize/serialize.js +0 -160
  682. package/dest/node-cjs/types/fields.d.ts +0 -43
  683. package/dest/node-cjs/types/fields.d.ts.map +0 -1
  684. package/dest/node-cjs/types/fields.js +0 -107
  685. package/dest/node-cjs/types/fixed_size_buffer.d.ts +0 -26
  686. package/dest/node-cjs/types/fixed_size_buffer.d.ts.map +0 -1
  687. package/dest/node-cjs/types/fixed_size_buffer.js +0 -57
  688. package/dest/node-cjs/types/index.d.ts +0 -6
  689. package/dest/node-cjs/types/index.d.ts.map +0 -1
  690. package/dest/node-cjs/types/index.js +0 -9
  691. package/dest/node-cjs/types/point.d.ts +0 -16
  692. package/dest/node-cjs/types/point.d.ts.map +0 -1
  693. package/dest/node-cjs/types/point.js +0 -35
  694. package/dest/node-cjs/types/ptr.d.ts +0 -13
  695. package/dest/node-cjs/types/ptr.d.ts.map +0 -1
  696. package/dest/node-cjs/types/ptr.js +0 -23
  697. package/dest/node-cjs/types/raw_buffer.d.ts +0 -3
  698. package/dest/node-cjs/types/raw_buffer.d.ts.map +0 -1
  699. package/dest/node-cjs/types/raw_buffer.js +0 -9
  700. package/src/barretenberg/common.test.ts +0 -23
  701. package/src/barretenberg_api/index.ts +0 -1216
  702. package/src/bindgen/function_declaration.ts +0 -11
  703. package/src/bindgen/index.ts +0 -17
  704. package/src/bindgen/mappings.ts +0 -67
  705. package/src/bindgen/rust.ts +0 -52
  706. package/src/bindgen/to_camel_case.ts +0 -10
  707. package/src/bindgen/typescript.ts +0 -116
  708. package/src/log/browser/index.ts +0 -35
  709. package/src/log/index.ts +0 -1
  710. package/src/log/node/index.ts +0 -52
  711. package/src/log/types.ts +0 -6
  712. package/src/main.ts +0 -534
  713. package/src/serialize/buffer_reader.ts +0 -85
  714. package/src/serialize/index.ts +0 -3
  715. package/src/serialize/output_type.ts +0 -53
  716. package/src/serialize/serialize.ts +0 -157
  717. package/src/types/fields.ts +0 -126
  718. package/src/types/fixed_size_buffer.ts +0 -59
  719. package/src/types/index.ts +0 -5
  720. package/src/types/point.ts +0 -38
  721. package/src/types/ptr.ts +0 -20
  722. package/src/types/raw_buffer.ts +0 -3
  723. /package/src/{bigint-array/index.ts → barretenberg/testing/bigint-buffer.ts} +0 -0
@@ -1,704 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BarretenbergApiSync = exports.BarretenbergApi = void 0;
4
- const index_js_1 = require("../serialize/index.js");
5
- const index_js_2 = require("../types/index.js");
6
- class BarretenbergApi {
7
- constructor(wasm) {
8
- this.wasm = wasm;
9
- }
10
- async pedersenCommit(inputsBuffer, ctxIndex) {
11
- const inArgs = [inputsBuffer, ctxIndex].map(index_js_1.serializeBufferable);
12
- const outTypes = [index_js_2.Point];
13
- const result = await this.wasm.callWasmExport('pedersen_commit', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
14
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
15
- return out[0];
16
- }
17
- async pedersenHash(inputsBuffer, hashIndex) {
18
- const inArgs = [inputsBuffer, hashIndex].map(index_js_1.serializeBufferable);
19
- const outTypes = [index_js_2.Fr];
20
- const result = await this.wasm.callWasmExport('pedersen_hash', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
21
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
22
- return out[0];
23
- }
24
- async pedersenHashes(inputsBuffer, hashIndex) {
25
- const inArgs = [inputsBuffer, hashIndex].map(index_js_1.serializeBufferable);
26
- const outTypes = [index_js_2.Fr];
27
- const result = await this.wasm.callWasmExport('pedersen_hashes', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
28
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
29
- return out[0];
30
- }
31
- async pedersenHashBuffer(inputBuffer, hashIndex) {
32
- const inArgs = [inputBuffer, hashIndex].map(index_js_1.serializeBufferable);
33
- const outTypes = [index_js_2.Fr];
34
- const result = await this.wasm.callWasmExport('pedersen_hash_buffer', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
35
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
36
- return out[0];
37
- }
38
- async poseidon2Hash(inputsBuffer) {
39
- const inArgs = [inputsBuffer].map(index_js_1.serializeBufferable);
40
- const outTypes = [index_js_2.Fr];
41
- const result = await this.wasm.callWasmExport('poseidon2_hash', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
42
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
43
- return out[0];
44
- }
45
- async poseidon2Hashes(inputsBuffer) {
46
- const inArgs = [inputsBuffer].map(index_js_1.serializeBufferable);
47
- const outTypes = [index_js_2.Fr];
48
- const result = await this.wasm.callWasmExport('poseidon2_hashes', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
49
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
50
- return out[0];
51
- }
52
- async poseidon2Permutation(inputsBuffer) {
53
- const inArgs = [inputsBuffer].map(index_js_1.serializeBufferable);
54
- const outTypes = [(0, index_js_1.VectorDeserializer)(index_js_2.Fr)];
55
- const result = await this.wasm.callWasmExport('poseidon2_permutation', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
56
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
57
- return out[0];
58
- }
59
- async poseidon2HashAccumulate(inputsBuffer) {
60
- const inArgs = [inputsBuffer].map(index_js_1.serializeBufferable);
61
- const outTypes = [index_js_2.Fr];
62
- const result = await this.wasm.callWasmExport('poseidon2_hash_accumulate', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
63
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
64
- return out[0];
65
- }
66
- async blake2s(data) {
67
- const inArgs = [data].map(index_js_1.serializeBufferable);
68
- const outTypes = [index_js_2.Buffer32];
69
- const result = await this.wasm.callWasmExport('blake2s', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
70
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
71
- return out[0];
72
- }
73
- async blake2sToField(data) {
74
- const inArgs = [data].map(index_js_1.serializeBufferable);
75
- const outTypes = [index_js_2.Fr];
76
- const result = await this.wasm.callWasmExport('blake2s_to_field_', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
77
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
78
- return out[0];
79
- }
80
- async aesEncryptBufferCbc(input, iv, key, length) {
81
- const inArgs = [input, iv, key, length].map(index_js_1.serializeBufferable);
82
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
83
- const result = await this.wasm.callWasmExport('aes_encrypt_buffer_cbc', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
84
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
85
- return out[0];
86
- }
87
- async aesDecryptBufferCbc(input, iv, key, length) {
88
- const inArgs = [input, iv, key, length].map(index_js_1.serializeBufferable);
89
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
90
- const result = await this.wasm.callWasmExport('aes_decrypt_buffer_cbc', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
91
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
92
- return out[0];
93
- }
94
- async srsInitSrs(pointsBuf, numPoints, g2PointBuf) {
95
- const inArgs = [pointsBuf, numPoints, g2PointBuf].map(index_js_1.serializeBufferable);
96
- const outTypes = [];
97
- const result = await this.wasm.callWasmExport('srs_init_srs', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
98
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
99
- return;
100
- }
101
- async srsInitGrumpkinSrs(pointsBuf, numPoints) {
102
- const inArgs = [pointsBuf, numPoints].map(index_js_1.serializeBufferable);
103
- const outTypes = [];
104
- const result = await this.wasm.callWasmExport('srs_init_grumpkin_srs', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
105
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
106
- return;
107
- }
108
- async testThreads(threads, iterations) {
109
- const inArgs = [threads, iterations].map(index_js_1.serializeBufferable);
110
- const outTypes = [(0, index_js_1.NumberDeserializer)()];
111
- const result = await this.wasm.callWasmExport('test_threads', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
112
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
113
- return out[0];
114
- }
115
- async commonInitSlabAllocator(circuitSize) {
116
- const inArgs = [circuitSize].map(index_js_1.serializeBufferable);
117
- const outTypes = [];
118
- const result = await this.wasm.callWasmExport('common_init_slab_allocator', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
119
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
120
- return;
121
- }
122
- async acirGetCircuitSizes(constraintSystemBuf, recursive, honkRecursion) {
123
- const inArgs = [constraintSystemBuf, recursive, honkRecursion].map(index_js_1.serializeBufferable);
124
- const outTypes = [(0, index_js_1.NumberDeserializer)(), (0, index_js_1.NumberDeserializer)()];
125
- const result = await this.wasm.callWasmExport('acir_get_circuit_sizes', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
126
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
127
- return out;
128
- }
129
- async acirProveAndVerifyUltraHonk(constraintSystemBuf, witnessBuf) {
130
- const inArgs = [constraintSystemBuf, witnessBuf].map(index_js_1.serializeBufferable);
131
- const outTypes = [(0, index_js_1.BoolDeserializer)()];
132
- const result = await this.wasm.callWasmExport('acir_prove_and_verify_ultra_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
133
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
134
- return out[0];
135
- }
136
- async acirProveAndVerifyMegaHonk(constraintSystemBuf, witnessBuf) {
137
- const inArgs = [constraintSystemBuf, witnessBuf].map(index_js_1.serializeBufferable);
138
- const outTypes = [(0, index_js_1.BoolDeserializer)()];
139
- const result = await this.wasm.callWasmExport('acir_prove_and_verify_mega_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
140
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
141
- return out[0];
142
- }
143
- async acirProveAztecClient(ivcInputsBuf) {
144
- const inArgs = [ivcInputsBuf].map(index_js_1.serializeBufferable);
145
- const outTypes = [(0, index_js_1.BufferDeserializer)(), (0, index_js_1.BufferDeserializer)()];
146
- const result = await this.wasm.callWasmExport('acir_prove_aztec_client', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
147
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
148
- return out;
149
- }
150
- async acirVerifyAztecClient(proofBuf, vkBuf) {
151
- const inArgs = [proofBuf, vkBuf].map(index_js_1.serializeBufferable);
152
- const outTypes = [(0, index_js_1.BoolDeserializer)()];
153
- const result = await this.wasm.callWasmExport('acir_verify_aztec_client', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
154
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
155
- return out[0];
156
- }
157
- async acirLoadVerificationKey(acirComposerPtr, vkBuf) {
158
- const inArgs = [acirComposerPtr, vkBuf].map(index_js_1.serializeBufferable);
159
- const outTypes = [];
160
- const result = await this.wasm.callWasmExport('acir_load_verification_key', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
161
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
162
- return;
163
- }
164
- async acirInitVerificationKey(acirComposerPtr) {
165
- const inArgs = [acirComposerPtr].map(index_js_1.serializeBufferable);
166
- const outTypes = [];
167
- const result = await this.wasm.callWasmExport('acir_init_verification_key', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
168
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
169
- return;
170
- }
171
- async acirGetVerificationKey(acirComposerPtr) {
172
- const inArgs = [acirComposerPtr].map(index_js_1.serializeBufferable);
173
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
174
- const result = await this.wasm.callWasmExport('acir_get_verification_key', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
175
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
176
- return out[0];
177
- }
178
- async acirGetProvingKey(acirComposerPtr, acirVec, recursive) {
179
- const inArgs = [acirComposerPtr, acirVec, recursive].map(index_js_1.serializeBufferable);
180
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
181
- const result = await this.wasm.callWasmExport('acir_get_proving_key', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
182
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
183
- return out[0];
184
- }
185
- async acirVerifyProof(acirComposerPtr, proofBuf) {
186
- const inArgs = [acirComposerPtr, proofBuf].map(index_js_1.serializeBufferable);
187
- const outTypes = [(0, index_js_1.BoolDeserializer)()];
188
- const result = await this.wasm.callWasmExport('acir_verify_proof', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
189
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
190
- return out[0];
191
- }
192
- async acirGetSolidityVerifier(acirComposerPtr) {
193
- const inArgs = [acirComposerPtr].map(index_js_1.serializeBufferable);
194
- const outTypes = [(0, index_js_1.StringDeserializer)()];
195
- const result = await this.wasm.callWasmExport('acir_get_solidity_verifier', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
196
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
197
- return out[0];
198
- }
199
- async acirHonkSolidityVerifier(proofBuf, vkBuf) {
200
- const inArgs = [proofBuf, vkBuf].map(index_js_1.serializeBufferable);
201
- const outTypes = [(0, index_js_1.StringDeserializer)()];
202
- const result = await this.wasm.callWasmExport('acir_honk_solidity_verifier', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
203
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
204
- return out[0];
205
- }
206
- async acirSerializeProofIntoFields(acirComposerPtr, proofBuf, numInnerPublicInputs) {
207
- const inArgs = [acirComposerPtr, proofBuf, numInnerPublicInputs].map(index_js_1.serializeBufferable);
208
- const outTypes = [(0, index_js_1.VectorDeserializer)(index_js_2.Fr)];
209
- const result = await this.wasm.callWasmExport('acir_serialize_proof_into_fields', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
210
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
211
- return out[0];
212
- }
213
- async acirSerializeVerificationKeyIntoFields(acirComposerPtr) {
214
- const inArgs = [acirComposerPtr].map(index_js_1.serializeBufferable);
215
- const outTypes = [(0, index_js_1.VectorDeserializer)(index_js_2.Fr), index_js_2.Fr];
216
- const result = await this.wasm.callWasmExport('acir_serialize_verification_key_into_fields', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
217
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
218
- return out;
219
- }
220
- async acirProveUltraZKHonk(acirVec, witnessVec, vkBuf) {
221
- const inArgs = [acirVec, witnessVec, vkBuf].map(index_js_1.serializeBufferable);
222
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
223
- const result = await this.wasm.callWasmExport('acir_prove_ultra_zk_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
224
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
225
- return out[0];
226
- }
227
- async acirProveUltraKeccakHonk(acirVec, witnessVec, vkBuf) {
228
- const inArgs = [acirVec, witnessVec, vkBuf].map(index_js_1.serializeBufferable);
229
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
230
- const result = await this.wasm.callWasmExport('acir_prove_ultra_keccak_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
231
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
232
- return out[0];
233
- }
234
- async acirProveUltraKeccakZkHonk(acirVec, witnessVec, vkBuf) {
235
- const inArgs = [acirVec, witnessVec, vkBuf].map(index_js_1.serializeBufferable);
236
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
237
- const result = await this.wasm.callWasmExport('acir_prove_ultra_keccak_zk_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
238
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
239
- return out[0];
240
- }
241
- async acirProveUltraStarknetHonk(acirVec, witnessVec, vkBuf) {
242
- const inArgs = [acirVec, witnessVec, vkBuf].map(index_js_1.serializeBufferable);
243
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
244
- const result = await this.wasm.callWasmExport('acir_prove_ultra_starknet_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
245
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
246
- return out[0];
247
- }
248
- async acirProveUltraStarknetZkHonk(acirVec, witnessVec, vkBuf) {
249
- const inArgs = [acirVec, witnessVec, vkBuf].map(index_js_1.serializeBufferable);
250
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
251
- const result = await this.wasm.callWasmExport('acir_prove_ultra_starknet_zk_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
252
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
253
- return out[0];
254
- }
255
- async acirVerifyUltraZKHonk(proofBuf, vkBuf) {
256
- const inArgs = [proofBuf, vkBuf].map(index_js_1.serializeBufferable);
257
- const outTypes = [(0, index_js_1.BoolDeserializer)()];
258
- const result = await this.wasm.callWasmExport('acir_verify_ultra_zk_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
259
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
260
- return out[0];
261
- }
262
- async acirVerifyUltraKeccakHonk(proofBuf, vkBuf) {
263
- const inArgs = [proofBuf, vkBuf].map(index_js_1.serializeBufferable);
264
- const outTypes = [(0, index_js_1.BoolDeserializer)()];
265
- const result = await this.wasm.callWasmExport('acir_verify_ultra_keccak_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
266
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
267
- return out[0];
268
- }
269
- async acirVerifyUltraKeccakZkHonk(proofBuf, vkBuf) {
270
- const inArgs = [proofBuf, vkBuf].map(index_js_1.serializeBufferable);
271
- const outTypes = [(0, index_js_1.BoolDeserializer)()];
272
- const result = await this.wasm.callWasmExport('acir_verify_ultra_keccak_zk_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
273
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
274
- return out[0];
275
- }
276
- async acirVerifyUltraStarknetHonk(proofBuf, vkBuf) {
277
- const inArgs = [proofBuf, vkBuf].map(index_js_1.serializeBufferable);
278
- const outTypes = [(0, index_js_1.BoolDeserializer)()];
279
- const result = await this.wasm.callWasmExport('acir_verify_ultra_starknet_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
280
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
281
- return out[0];
282
- }
283
- async acirVerifyUltraStarknetZkHonk(proofBuf, vkBuf) {
284
- const inArgs = [proofBuf, vkBuf].map(index_js_1.serializeBufferable);
285
- const outTypes = [(0, index_js_1.BoolDeserializer)()];
286
- const result = await this.wasm.callWasmExport('acir_verify_ultra_starknet_zk_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
287
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
288
- return out[0];
289
- }
290
- async acirWriteVkUltraHonk(acirVec) {
291
- const inArgs = [acirVec].map(index_js_1.serializeBufferable);
292
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
293
- const result = await this.wasm.callWasmExport('acir_write_vk_ultra_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
294
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
295
- return out[0];
296
- }
297
- async acirWriteVkUltraKeccakHonk(acirVec) {
298
- const inArgs = [acirVec].map(index_js_1.serializeBufferable);
299
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
300
- const result = await this.wasm.callWasmExport('acir_write_vk_ultra_keccak_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
301
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
302
- return out[0];
303
- }
304
- async acirWriteVkUltraKeccakZkHonk(acirVec) {
305
- const inArgs = [acirVec].map(index_js_1.serializeBufferable);
306
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
307
- const result = await this.wasm.callWasmExport('acir_write_vk_ultra_keccak_zk_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
308
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
309
- return out[0];
310
- }
311
- async acirWriteVkUltraStarknetHonk(acirVec) {
312
- const inArgs = [acirVec].map(index_js_1.serializeBufferable);
313
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
314
- const result = await this.wasm.callWasmExport('acir_write_vk_ultra_starknet_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
315
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
316
- return out[0];
317
- }
318
- async acirWriteVkUltraStarknetZkHonk(acirVec) {
319
- const inArgs = [acirVec].map(index_js_1.serializeBufferable);
320
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
321
- const result = await this.wasm.callWasmExport('acir_write_vk_ultra_starknet_zk_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
322
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
323
- return out[0];
324
- }
325
- async acirProofAsFieldsUltraHonk(proofBuf) {
326
- const inArgs = [proofBuf].map(index_js_1.serializeBufferable);
327
- const outTypes = [(0, index_js_1.VectorDeserializer)(index_js_2.Fr)];
328
- const result = await this.wasm.callWasmExport('acir_proof_as_fields_ultra_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
329
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
330
- return out[0];
331
- }
332
- async acirVkAsFieldsUltraHonk(vkBuf) {
333
- const inArgs = [vkBuf].map(index_js_1.serializeBufferable);
334
- const outTypes = [(0, index_js_1.VectorDeserializer)(index_js_2.Fr)];
335
- const result = await this.wasm.callWasmExport('acir_vk_as_fields_ultra_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
336
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
337
- return out[0];
338
- }
339
- async acirVkAsFieldsMegaHonk(vkBuf) {
340
- const inArgs = [vkBuf].map(index_js_1.serializeBufferable);
341
- const outTypes = [(0, index_js_1.VectorDeserializer)(index_js_2.Fr)];
342
- const result = await this.wasm.callWasmExport('acir_vk_as_fields_mega_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
343
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
344
- return out[0];
345
- }
346
- async acirGatesAztecClient(ivcInputsBuf) {
347
- const inArgs = [ivcInputsBuf].map(index_js_1.serializeBufferable);
348
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
349
- const result = await this.wasm.callWasmExport('acir_gates_aztec_client', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
350
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
351
- return out[0];
352
- }
353
- }
354
- exports.BarretenbergApi = BarretenbergApi;
355
- class BarretenbergApiSync {
356
- constructor(wasm) {
357
- this.wasm = wasm;
358
- }
359
- pedersenCommit(inputsBuffer, ctxIndex) {
360
- const inArgs = [inputsBuffer, ctxIndex].map(index_js_1.serializeBufferable);
361
- const outTypes = [index_js_2.Point];
362
- const result = this.wasm.callWasmExport('pedersen_commit', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
363
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
364
- return out[0];
365
- }
366
- pedersenHash(inputsBuffer, hashIndex) {
367
- const inArgs = [inputsBuffer, hashIndex].map(index_js_1.serializeBufferable);
368
- const outTypes = [index_js_2.Fr];
369
- const result = this.wasm.callWasmExport('pedersen_hash', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
370
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
371
- return out[0];
372
- }
373
- pedersenHashes(inputsBuffer, hashIndex) {
374
- const inArgs = [inputsBuffer, hashIndex].map(index_js_1.serializeBufferable);
375
- const outTypes = [index_js_2.Fr];
376
- const result = this.wasm.callWasmExport('pedersen_hashes', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
377
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
378
- return out[0];
379
- }
380
- pedersenHashBuffer(inputBuffer, hashIndex) {
381
- const inArgs = [inputBuffer, hashIndex].map(index_js_1.serializeBufferable);
382
- const outTypes = [index_js_2.Fr];
383
- const result = this.wasm.callWasmExport('pedersen_hash_buffer', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
384
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
385
- return out[0];
386
- }
387
- poseidon2Hash(inputsBuffer) {
388
- const inArgs = [inputsBuffer].map(index_js_1.serializeBufferable);
389
- const outTypes = [index_js_2.Fr];
390
- const result = this.wasm.callWasmExport('poseidon2_hash', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
391
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
392
- return out[0];
393
- }
394
- poseidon2Hashes(inputsBuffer) {
395
- const inArgs = [inputsBuffer].map(index_js_1.serializeBufferable);
396
- const outTypes = [index_js_2.Fr];
397
- const result = this.wasm.callWasmExport('poseidon2_hashes', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
398
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
399
- return out[0];
400
- }
401
- poseidon2Permutation(inputsBuffer) {
402
- const inArgs = [inputsBuffer].map(index_js_1.serializeBufferable);
403
- const outTypes = [(0, index_js_1.VectorDeserializer)(index_js_2.Fr)];
404
- const result = this.wasm.callWasmExport('poseidon2_permutation', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
405
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
406
- return out[0];
407
- }
408
- poseidon2HashAccumulate(inputsBuffer) {
409
- const inArgs = [inputsBuffer].map(index_js_1.serializeBufferable);
410
- const outTypes = [index_js_2.Fr];
411
- const result = this.wasm.callWasmExport('poseidon2_hash_accumulate', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
412
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
413
- return out[0];
414
- }
415
- blake2s(data) {
416
- const inArgs = [data].map(index_js_1.serializeBufferable);
417
- const outTypes = [index_js_2.Buffer32];
418
- const result = this.wasm.callWasmExport('blake2s', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
419
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
420
- return out[0];
421
- }
422
- blake2sToField(data) {
423
- const inArgs = [data].map(index_js_1.serializeBufferable);
424
- const outTypes = [index_js_2.Fr];
425
- const result = this.wasm.callWasmExport('blake2s_to_field_', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
426
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
427
- return out[0];
428
- }
429
- aesEncryptBufferCbc(input, iv, key, length) {
430
- const inArgs = [input, iv, key, length].map(index_js_1.serializeBufferable);
431
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
432
- const result = this.wasm.callWasmExport('aes_encrypt_buffer_cbc', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
433
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
434
- return out[0];
435
- }
436
- aesDecryptBufferCbc(input, iv, key, length) {
437
- const inArgs = [input, iv, key, length].map(index_js_1.serializeBufferable);
438
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
439
- const result = this.wasm.callWasmExport('aes_decrypt_buffer_cbc', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
440
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
441
- return out[0];
442
- }
443
- srsInitSrs(pointsBuf, numPoints, g2PointBuf) {
444
- const inArgs = [pointsBuf, numPoints, g2PointBuf].map(index_js_1.serializeBufferable);
445
- const outTypes = [];
446
- const result = this.wasm.callWasmExport('srs_init_srs', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
447
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
448
- return;
449
- }
450
- srsInitGrumpkinSrs(pointsBuf, numPoints) {
451
- const inArgs = [pointsBuf, numPoints].map(index_js_1.serializeBufferable);
452
- const outTypes = [];
453
- const result = this.wasm.callWasmExport('srs_init_grumpkin_srs', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
454
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
455
- return;
456
- }
457
- testThreads(threads, iterations) {
458
- const inArgs = [threads, iterations].map(index_js_1.serializeBufferable);
459
- const outTypes = [(0, index_js_1.NumberDeserializer)()];
460
- const result = this.wasm.callWasmExport('test_threads', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
461
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
462
- return out[0];
463
- }
464
- commonInitSlabAllocator(circuitSize) {
465
- const inArgs = [circuitSize].map(index_js_1.serializeBufferable);
466
- const outTypes = [];
467
- const result = this.wasm.callWasmExport('common_init_slab_allocator', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
468
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
469
- return;
470
- }
471
- acirGetCircuitSizes(constraintSystemBuf, recursive, honkRecursion) {
472
- const inArgs = [constraintSystemBuf, recursive, honkRecursion].map(index_js_1.serializeBufferable);
473
- const outTypes = [(0, index_js_1.NumberDeserializer)(), (0, index_js_1.NumberDeserializer)()];
474
- const result = this.wasm.callWasmExport('acir_get_circuit_sizes', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
475
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
476
- return out;
477
- }
478
- acirProveAndVerifyUltraHonk(constraintSystemBuf, witnessBuf) {
479
- const inArgs = [constraintSystemBuf, witnessBuf].map(index_js_1.serializeBufferable);
480
- const outTypes = [(0, index_js_1.BoolDeserializer)()];
481
- const result = this.wasm.callWasmExport('acir_prove_and_verify_ultra_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
482
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
483
- return out[0];
484
- }
485
- acirProveAndVerifyMegaHonk(constraintSystemBuf, witnessBuf) {
486
- const inArgs = [constraintSystemBuf, witnessBuf].map(index_js_1.serializeBufferable);
487
- const outTypes = [(0, index_js_1.BoolDeserializer)()];
488
- const result = this.wasm.callWasmExport('acir_prove_and_verify_mega_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
489
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
490
- return out[0];
491
- }
492
- acirProveAztecClient(ivcInputsBuf) {
493
- const inArgs = [ivcInputsBuf].map(index_js_1.serializeBufferable);
494
- const outTypes = [(0, index_js_1.BufferDeserializer)(), (0, index_js_1.BufferDeserializer)()];
495
- const result = this.wasm.callWasmExport('acir_prove_aztec_client', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
496
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
497
- return out;
498
- }
499
- acirVerifyAztecClient(proofBuf, vkBuf) {
500
- const inArgs = [proofBuf, vkBuf].map(index_js_1.serializeBufferable);
501
- const outTypes = [(0, index_js_1.BoolDeserializer)()];
502
- const result = this.wasm.callWasmExport('acir_verify_aztec_client', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
503
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
504
- return out[0];
505
- }
506
- acirLoadVerificationKey(acirComposerPtr, vkBuf) {
507
- const inArgs = [acirComposerPtr, vkBuf].map(index_js_1.serializeBufferable);
508
- const outTypes = [];
509
- const result = this.wasm.callWasmExport('acir_load_verification_key', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
510
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
511
- return;
512
- }
513
- acirInitVerificationKey(acirComposerPtr) {
514
- const inArgs = [acirComposerPtr].map(index_js_1.serializeBufferable);
515
- const outTypes = [];
516
- const result = this.wasm.callWasmExport('acir_init_verification_key', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
517
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
518
- return;
519
- }
520
- acirGetVerificationKey(acirComposerPtr) {
521
- const inArgs = [acirComposerPtr].map(index_js_1.serializeBufferable);
522
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
523
- const result = this.wasm.callWasmExport('acir_get_verification_key', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
524
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
525
- return out[0];
526
- }
527
- acirGetProvingKey(acirComposerPtr, acirVec, recursive) {
528
- const inArgs = [acirComposerPtr, acirVec, recursive].map(index_js_1.serializeBufferable);
529
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
530
- const result = this.wasm.callWasmExport('acir_get_proving_key', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
531
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
532
- return out[0];
533
- }
534
- acirVerifyProof(acirComposerPtr, proofBuf) {
535
- const inArgs = [acirComposerPtr, proofBuf].map(index_js_1.serializeBufferable);
536
- const outTypes = [(0, index_js_1.BoolDeserializer)()];
537
- const result = this.wasm.callWasmExport('acir_verify_proof', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
538
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
539
- return out[0];
540
- }
541
- acirGetSolidityVerifier(acirComposerPtr) {
542
- const inArgs = [acirComposerPtr].map(index_js_1.serializeBufferable);
543
- const outTypes = [(0, index_js_1.StringDeserializer)()];
544
- const result = this.wasm.callWasmExport('acir_get_solidity_verifier', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
545
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
546
- return out[0];
547
- }
548
- acirHonkSolidityVerifier(proofBuf, vkBuf) {
549
- const inArgs = [proofBuf, vkBuf].map(index_js_1.serializeBufferable);
550
- const outTypes = [(0, index_js_1.StringDeserializer)()];
551
- const result = this.wasm.callWasmExport('acir_honk_solidity_verifier', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
552
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
553
- return out[0];
554
- }
555
- acirSerializeProofIntoFields(acirComposerPtr, proofBuf, numInnerPublicInputs) {
556
- const inArgs = [acirComposerPtr, proofBuf, numInnerPublicInputs].map(index_js_1.serializeBufferable);
557
- const outTypes = [(0, index_js_1.VectorDeserializer)(index_js_2.Fr)];
558
- const result = this.wasm.callWasmExport('acir_serialize_proof_into_fields', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
559
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
560
- return out[0];
561
- }
562
- acirSerializeVerificationKeyIntoFields(acirComposerPtr) {
563
- const inArgs = [acirComposerPtr].map(index_js_1.serializeBufferable);
564
- const outTypes = [(0, index_js_1.VectorDeserializer)(index_js_2.Fr), index_js_2.Fr];
565
- const result = this.wasm.callWasmExport('acir_serialize_verification_key_into_fields', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
566
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
567
- return out;
568
- }
569
- acirProveUltraHonk(acirVec, witnessVec) {
570
- const inArgs = [acirVec, witnessVec].map(index_js_1.serializeBufferable);
571
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
572
- const result = this.wasm.callWasmExport('acir_prove_ultra_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
573
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
574
- return out[0];
575
- }
576
- acirProveUltraKeccakHonk(acirVec, witnessVec) {
577
- const inArgs = [acirVec, witnessVec].map(index_js_1.serializeBufferable);
578
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
579
- const result = this.wasm.callWasmExport('acir_prove_ultra_keccak_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
580
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
581
- return out[0];
582
- }
583
- acirProveUltraKeccakZkHonk(acirVec, witnessVec) {
584
- const inArgs = [acirVec, witnessVec].map(index_js_1.serializeBufferable);
585
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
586
- const result = this.wasm.callWasmExport('acir_prove_ultra_keccak_zk_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
587
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
588
- return out[0];
589
- }
590
- acirProveUltraStarknetHonk(acirVec, witnessVec) {
591
- const inArgs = [acirVec, witnessVec].map(index_js_1.serializeBufferable);
592
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
593
- const result = this.wasm.callWasmExport('acir_prove_ultra_starknet_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
594
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
595
- return out[0];
596
- }
597
- acirProveUltraStarknetZkHonk(acirVec, witnessVec) {
598
- const inArgs = [acirVec, witnessVec].map(index_js_1.serializeBufferable);
599
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
600
- const result = this.wasm.callWasmExport('acir_prove_ultra_starknet_zk_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
601
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
602
- return out[0];
603
- }
604
- acirVerifyUltraHonk(proofBuf, vkBuf) {
605
- const inArgs = [proofBuf, vkBuf].map(index_js_1.serializeBufferable);
606
- const outTypes = [(0, index_js_1.BoolDeserializer)()];
607
- const result = this.wasm.callWasmExport('acir_verify_ultra_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
608
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
609
- return out[0];
610
- }
611
- acirVerifyUltraKeccakHonk(proofBuf, vkBuf) {
612
- const inArgs = [proofBuf, vkBuf].map(index_js_1.serializeBufferable);
613
- const outTypes = [(0, index_js_1.BoolDeserializer)()];
614
- const result = this.wasm.callWasmExport('acir_verify_ultra_keccak_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
615
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
616
- return out[0];
617
- }
618
- acirVerifyUltraKeccakZkHonk(proofBuf, vkBuf) {
619
- const inArgs = [proofBuf, vkBuf].map(index_js_1.serializeBufferable);
620
- const outTypes = [(0, index_js_1.BoolDeserializer)()];
621
- const result = this.wasm.callWasmExport('acir_verify_ultra_keccak_zk_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
622
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
623
- return out[0];
624
- }
625
- acirVerifyUltraStarknetHonk(proofBuf, vkBuf) {
626
- const inArgs = [proofBuf, vkBuf].map(index_js_1.serializeBufferable);
627
- const outTypes = [(0, index_js_1.BoolDeserializer)()];
628
- const result = this.wasm.callWasmExport('acir_verify_ultra_starknet_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
629
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
630
- return out[0];
631
- }
632
- acirVerifyUltraStarknetZkHonk(proofBuf, vkBuf) {
633
- const inArgs = [proofBuf, vkBuf].map(index_js_1.serializeBufferable);
634
- const outTypes = [(0, index_js_1.BoolDeserializer)()];
635
- const result = this.wasm.callWasmExport('acir_verify_ultra_starknet_zk_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
636
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
637
- return out[0];
638
- }
639
- acirWriteVkUltraHonk(acirVec) {
640
- const inArgs = [acirVec].map(index_js_1.serializeBufferable);
641
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
642
- const result = this.wasm.callWasmExport('acir_write_vk_ultra_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
643
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
644
- return out[0];
645
- }
646
- acirWriteVkUltraKeccakHonk(acirVec) {
647
- const inArgs = [acirVec].map(index_js_1.serializeBufferable);
648
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
649
- const result = this.wasm.callWasmExport('acir_write_vk_ultra_keccak_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
650
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
651
- return out[0];
652
- }
653
- acirWriteVkUltraKeccakZkHonk(acirVec) {
654
- const inArgs = [acirVec].map(index_js_1.serializeBufferable);
655
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
656
- const result = this.wasm.callWasmExport('acir_write_vk_ultra_keccak_zk_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
657
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
658
- return out[0];
659
- }
660
- acirWriteVkUltraStarknetHonk(acirVec) {
661
- const inArgs = [acirVec].map(index_js_1.serializeBufferable);
662
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
663
- const result = this.wasm.callWasmExport('acir_write_vk_ultra_starknet_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
664
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
665
- return out[0];
666
- }
667
- acirWriteVkUltraStarknetZkHonk(acirVec) {
668
- const inArgs = [acirVec].map(index_js_1.serializeBufferable);
669
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
670
- const result = this.wasm.callWasmExport('acir_write_vk_ultra_starknet_zk_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
671
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
672
- return out[0];
673
- }
674
- acirProofAsFieldsUltraHonk(proofBuf) {
675
- const inArgs = [proofBuf].map(index_js_1.serializeBufferable);
676
- const outTypes = [(0, index_js_1.VectorDeserializer)(index_js_2.Fr)];
677
- const result = this.wasm.callWasmExport('acir_proof_as_fields_ultra_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
678
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
679
- return out[0];
680
- }
681
- acirVkAsFieldsUltraHonk(vkBuf) {
682
- const inArgs = [vkBuf].map(index_js_1.serializeBufferable);
683
- const outTypes = [(0, index_js_1.VectorDeserializer)(index_js_2.Fr)];
684
- const result = this.wasm.callWasmExport('acir_vk_as_fields_ultra_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
685
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
686
- return out[0];
687
- }
688
- acirVkAsFieldsMegaHonk(vkBuf) {
689
- const inArgs = [vkBuf].map(index_js_1.serializeBufferable);
690
- const outTypes = [(0, index_js_1.VectorDeserializer)(index_js_2.Fr)];
691
- const result = this.wasm.callWasmExport('acir_vk_as_fields_mega_honk', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
692
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
693
- return out[0];
694
- }
695
- acirGatesAztecClient(ivcInputsBuf) {
696
- const inArgs = [ivcInputsBuf].map(index_js_1.serializeBufferable);
697
- const outTypes = [(0, index_js_1.BufferDeserializer)()];
698
- const result = this.wasm.callWasmExport('acir_gates_aztec_client', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
699
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
700
- return out[0];
701
- }
702
- }
703
- exports.BarretenbergApiSync = BarretenbergApiSync;
704
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX2FwaS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxvREFRK0I7QUFDL0IsZ0RBQTZEO0FBRTdELE1BQWEsZUFBZTtJQUMxQixZQUFzQixJQUFnQztRQUFoQyxTQUFJLEdBQUosSUFBSSxDQUE0QjtJQUFHLENBQUM7SUFFMUQsS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFrQixFQUFFLFFBQWdCO1FBQ3ZELE1BQU0sTUFBTSxHQUFHLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyw4QkFBbUIsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sUUFBUSxHQUFpQixDQUFDLGdCQUFLLENBQUMsQ0FBQztRQUN2QyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUMzQyxpQkFBaUIsRUFDakIsTUFBTSxFQUNOLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQ25DLENBQUM7UUFDRixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVELE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUFDLFlBQWtCLEVBQUUsU0FBaUI7UUFDdEQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLDhCQUFtQixDQUFDLENBQUM7UUFDbEUsTUFBTSxRQUFRLEdBQWlCLENBQUMsYUFBRSxDQUFDLENBQUM7UUFDcEMsTUFBTSxNQUFNLEdBQUcsTUFB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