@aztec/bb.js 3.0.0-canary.a9708bd → 3.0.0-devnet.3

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 (371) hide show
  1. package/README.md +13 -79
  2. package/dest/browser/barretenberg/backend.d.ts +2 -2
  3. package/dest/browser/barretenberg/backend.d.ts.map +1 -1
  4. package/dest/browser/barretenberg/backend.js +29 -14
  5. package/dest/browser/barretenberg/index.d.ts +44 -43
  6. package/dest/browser/barretenberg/index.d.ts.map +1 -1
  7. package/dest/browser/barretenberg/index.js +130 -79
  8. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
  9. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
  10. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.js +2 -2
  11. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +4 -4
  12. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
  13. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +18 -10
  14. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +3 -0
  15. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
  16. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.js +55 -14
  17. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
  18. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
  19. package/dest/browser/bb_backends/browser/index.d.ts +11 -0
  20. package/dest/browser/bb_backends/browser/index.d.ts.map +1 -0
  21. package/dest/browser/bb_backends/browser/index.js +39 -0
  22. package/dest/browser/bb_backends/index.d.ts +45 -0
  23. package/dest/browser/bb_backends/index.d.ts.map +1 -0
  24. package/dest/browser/bb_backends/index.js +15 -0
  25. package/dest/browser/bb_backends/interface.d.ts +33 -0
  26. package/dest/browser/bb_backends/interface.d.ts.map +1 -0
  27. package/dest/browser/bb_backends/interface.js +2 -0
  28. package/dest/browser/bb_backends/sync_to_async_adapter.d.ts +15 -0
  29. package/dest/browser/bb_backends/sync_to_async_adapter.d.ts.map +1 -0
  30. package/dest/browser/bb_backends/sync_to_async_adapter.js +20 -0
  31. package/dest/browser/bb_backends/wasm.d.ts +49 -0
  32. package/dest/browser/bb_backends/wasm.d.ts.map +1 -0
  33. package/dest/browser/bb_backends/wasm.js +83 -0
  34. package/dest/browser/cbind/generate.js +2 -7
  35. package/dest/browser/cbind/generated/api_types.d.ts +1167 -0
  36. package/dest/browser/cbind/generated/api_types.d.ts.map +1 -1
  37. package/dest/browser/cbind/generated/api_types.js +1609 -47
  38. package/dest/browser/cbind/generated/async.d.ts +38 -4
  39. package/dest/browser/cbind/generated/async.d.ts.map +1 -1
  40. package/dest/browser/cbind/generated/async.js +327 -21
  41. package/dest/browser/cbind/generated/sync.d.ts +39 -5
  42. package/dest/browser/cbind/generated/sync.d.ts.map +1 -1
  43. package/dest/browser/cbind/generated/sync.js +294 -21
  44. package/dest/browser/cbind/schema_compiler.d.ts +2 -4
  45. package/dest/browser/cbind/schema_compiler.d.ts.map +1 -1
  46. package/dest/browser/cbind/schema_compiler.js +74 -178
  47. package/dest/browser/index.d.ts +2 -2
  48. package/dest/browser/index.d.ts.map +1 -1
  49. package/dest/browser/index.js +3 -3
  50. package/dest/browser/serialize/index.d.ts +0 -1
  51. package/dest/browser/serialize/index.d.ts.map +1 -1
  52. package/dest/browser/serialize/index.js +1 -2
  53. package/dest/browser/serialize/serialize.d.ts +0 -35
  54. package/dest/browser/serialize/serialize.d.ts.map +1 -1
  55. package/dest/browser/serialize/serialize.js +1 -68
  56. package/dest/browser/types/fields.d.ts.map +1 -1
  57. package/dest/browser/types/fields.js +3 -3
  58. package/dest/browser/types/index.d.ts +0 -3
  59. package/dest/browser/types/index.d.ts.map +1 -1
  60. package/dest/browser/types/index.js +1 -4
  61. package/dest/node/barretenberg/__snapshots__/pedersen.test.js.snap +2 -2
  62. package/dest/node/barretenberg/__snapshots__/poseidon.test.js.snap +3 -3
  63. package/dest/node/barretenberg/backend.d.ts +2 -2
  64. package/dest/node/barretenberg/backend.d.ts.map +1 -1
  65. package/dest/node/barretenberg/backend.js +29 -14
  66. package/dest/node/barretenberg/blake2s.test.js +21 -18
  67. package/dest/node/barretenberg/index.d.ts +44 -43
  68. package/dest/node/barretenberg/index.d.ts.map +1 -1
  69. package/dest/node/barretenberg/index.js +130 -79
  70. package/dest/node/barretenberg/pedersen.test.js +24 -17
  71. package/dest/node/barretenberg/poseidon.bench.test.d.ts +2 -0
  72. package/dest/node/barretenberg/poseidon.bench.test.d.ts.map +1 -0
  73. package/dest/node/barretenberg/poseidon.bench.test.js +216 -0
  74. package/dest/node/barretenberg/poseidon.test.js +15 -15
  75. package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  76. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
  77. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
  78. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.js +2 -2
  79. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +4 -4
  80. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
  81. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +18 -10
  82. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +3 -0
  83. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
  84. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +55 -14
  85. package/dest/node/barretenberg_wasm/index.test.js +11 -10
  86. package/dest/node/bb_backends/browser/index.d.ts +11 -0
  87. package/dest/node/bb_backends/browser/index.d.ts.map +1 -0
  88. package/dest/node/bb_backends/browser/index.js +39 -0
  89. package/dest/node/bb_backends/index.d.ts +45 -0
  90. package/dest/node/bb_backends/index.d.ts.map +1 -0
  91. package/dest/node/bb_backends/index.js +15 -0
  92. package/dest/node/bb_backends/interface.d.ts +33 -0
  93. package/dest/node/bb_backends/interface.d.ts.map +1 -0
  94. package/dest/node/bb_backends/interface.js +2 -0
  95. package/dest/node/bb_backends/node/index.d.ts +11 -0
  96. package/dest/node/bb_backends/node/index.d.ts.map +1 -0
  97. package/dest/node/bb_backends/node/index.js +80 -0
  98. package/dest/node/bb_backends/node/native_pipe.d.ts +25 -0
  99. package/dest/node/bb_backends/node/native_pipe.d.ts.map +1 -0
  100. package/dest/node/bb_backends/node/native_pipe.js +113 -0
  101. package/dest/node/bb_backends/node/native_shm.d.ts +28 -0
  102. package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -0
  103. package/dest/node/bb_backends/node/native_shm.js +150 -0
  104. package/dest/node/bb_backends/node/native_socket.d.ts +34 -0
  105. package/dest/node/bb_backends/node/native_socket.d.ts.map +1 -0
  106. package/dest/node/bb_backends/node/native_socket.js +269 -0
  107. package/dest/node/bb_backends/node/platform.d.ts +27 -0
  108. package/dest/node/bb_backends/node/platform.d.ts.map +1 -0
  109. package/dest/node/bb_backends/node/platform.js +124 -0
  110. package/dest/node/bb_backends/sync_to_async_adapter.d.ts +15 -0
  111. package/dest/node/bb_backends/sync_to_async_adapter.d.ts.map +1 -0
  112. package/dest/node/bb_backends/sync_to_async_adapter.js +20 -0
  113. package/dest/node/bb_backends/wasm.d.ts +49 -0
  114. package/dest/node/bb_backends/wasm.d.ts.map +1 -0
  115. package/dest/node/bb_backends/wasm.js +83 -0
  116. package/dest/node/cbind/generate.js +2 -7
  117. package/dest/node/cbind/generated/api_types.d.ts +1167 -0
  118. package/dest/node/cbind/generated/api_types.d.ts.map +1 -1
  119. package/dest/node/cbind/generated/api_types.js +1609 -47
  120. package/dest/node/cbind/generated/async.d.ts +38 -4
  121. package/dest/node/cbind/generated/async.d.ts.map +1 -1
  122. package/dest/node/cbind/generated/async.js +327 -21
  123. package/dest/node/cbind/generated/sync.d.ts +39 -5
  124. package/dest/node/cbind/generated/sync.d.ts.map +1 -1
  125. package/dest/node/cbind/generated/sync.js +294 -21
  126. package/dest/node/cbind/schema_compiler.d.ts +2 -4
  127. package/dest/node/cbind/schema_compiler.d.ts.map +1 -1
  128. package/dest/node/cbind/schema_compiler.js +74 -178
  129. package/dest/node/index.d.ts +2 -2
  130. package/dest/node/index.d.ts.map +1 -1
  131. package/dest/node/index.js +3 -3
  132. package/dest/node/serialize/index.d.ts +0 -1
  133. package/dest/node/serialize/index.d.ts.map +1 -1
  134. package/dest/node/serialize/index.js +1 -2
  135. package/dest/node/serialize/serialize.d.ts +0 -35
  136. package/dest/node/serialize/serialize.d.ts.map +1 -1
  137. package/dest/node/serialize/serialize.js +1 -68
  138. package/dest/node/types/fields.d.ts.map +1 -1
  139. package/dest/node/types/fields.js +3 -3
  140. package/dest/node/types/index.d.ts +0 -3
  141. package/dest/node/types/index.d.ts.map +1 -1
  142. package/dest/node/types/index.js +1 -4
  143. package/dest/node-cjs/barretenberg/backend.d.ts +2 -2
  144. package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
  145. package/dest/node-cjs/barretenberg/backend.js +28 -13
  146. package/dest/node-cjs/barretenberg/blake2s.test.js +19 -16
  147. package/dest/node-cjs/barretenberg/index.d.ts +44 -43
  148. package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
  149. package/dest/node-cjs/barretenberg/index.js +136 -84
  150. package/dest/node-cjs/barretenberg/pedersen.test.js +24 -17
  151. package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts +2 -0
  152. package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts.map +1 -0
  153. package/dest/node-cjs/barretenberg/poseidon.bench.test.js +218 -0
  154. package/dest/node-cjs/barretenberg/poseidon.test.js +15 -15
  155. package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  156. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
  157. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
  158. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.js +2 -2
  159. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +4 -4
  160. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
  161. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +18 -10
  162. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +3 -0
  163. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
  164. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +55 -14
  165. package/dest/node-cjs/barretenberg_wasm/index.test.js +11 -10
  166. package/dest/node-cjs/bb_backends/browser/index.d.ts +11 -0
  167. package/dest/node-cjs/bb_backends/browser/index.d.ts.map +1 -0
  168. package/dest/node-cjs/bb_backends/browser/index.js +43 -0
  169. package/dest/node-cjs/bb_backends/index.d.ts +45 -0
  170. package/dest/node-cjs/bb_backends/index.d.ts.map +1 -0
  171. package/dest/node-cjs/bb_backends/index.js +18 -0
  172. package/dest/node-cjs/bb_backends/interface.d.ts +33 -0
  173. package/dest/node-cjs/bb_backends/interface.d.ts.map +1 -0
  174. package/dest/node-cjs/bb_backends/interface.js +3 -0
  175. package/dest/node-cjs/bb_backends/node/index.d.ts +11 -0
  176. package/dest/node-cjs/bb_backends/node/index.d.ts.map +1 -0
  177. package/dest/node-cjs/bb_backends/node/index.js +84 -0
  178. package/dest/node-cjs/bb_backends/node/native_pipe.d.ts +25 -0
  179. package/dest/node-cjs/bb_backends/node/native_pipe.d.ts.map +1 -0
  180. package/dest/node-cjs/bb_backends/node/native_pipe.js +117 -0
  181. package/dest/node-cjs/bb_backends/node/native_shm.d.ts +28 -0
  182. package/dest/node-cjs/bb_backends/node/native_shm.d.ts.map +1 -0
  183. package/dest/node-cjs/bb_backends/node/native_shm.js +154 -0
  184. package/dest/node-cjs/bb_backends/node/native_socket.d.ts +34 -0
  185. package/dest/node-cjs/bb_backends/node/native_socket.d.ts.map +1 -0
  186. package/dest/node-cjs/bb_backends/node/native_socket.js +274 -0
  187. package/dest/node-cjs/bb_backends/node/platform.d.ts +27 -0
  188. package/dest/node-cjs/bb_backends/node/platform.d.ts.map +1 -0
  189. package/dest/node-cjs/bb_backends/node/platform.js +131 -0
  190. package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts +15 -0
  191. package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts.map +1 -0
  192. package/dest/node-cjs/bb_backends/sync_to_async_adapter.js +24 -0
  193. package/dest/node-cjs/bb_backends/wasm.d.ts +49 -0
  194. package/dest/node-cjs/bb_backends/wasm.d.ts.map +1 -0
  195. package/dest/node-cjs/bb_backends/wasm.js +88 -0
  196. package/dest/node-cjs/cbind/generate.js +1 -6
  197. package/dest/node-cjs/cbind/generated/api_types.d.ts +1167 -0
  198. package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -1
  199. package/dest/node-cjs/cbind/generated/api_types.js +1747 -47
  200. package/dest/node-cjs/cbind/generated/async.d.ts +38 -4
  201. package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -1
  202. package/dest/node-cjs/cbind/generated/async.js +326 -20
  203. package/dest/node-cjs/cbind/generated/sync.d.ts +39 -5
  204. package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -1
  205. package/dest/node-cjs/cbind/generated/sync.js +293 -20
  206. package/dest/node-cjs/cbind/schema_compiler.d.ts +2 -4
  207. package/dest/node-cjs/cbind/schema_compiler.d.ts.map +1 -1
  208. package/dest/node-cjs/cbind/schema_compiler.js +74 -179
  209. package/dest/node-cjs/index.d.ts +2 -2
  210. package/dest/node-cjs/index.d.ts.map +1 -1
  211. package/dest/node-cjs/index.js +3 -3
  212. package/dest/node-cjs/serialize/index.d.ts +0 -1
  213. package/dest/node-cjs/serialize/index.d.ts.map +1 -1
  214. package/dest/node-cjs/serialize/index.js +1 -2
  215. package/dest/node-cjs/serialize/serialize.d.ts +0 -35
  216. package/dest/node-cjs/serialize/serialize.d.ts.map +1 -1
  217. package/dest/node-cjs/serialize/serialize.js +1 -79
  218. package/dest/node-cjs/types/fields.d.ts.map +1 -1
  219. package/dest/node-cjs/types/fields.js +2 -2
  220. package/dest/node-cjs/types/index.d.ts +0 -3
  221. package/dest/node-cjs/types/index.d.ts.map +1 -1
  222. package/dest/node-cjs/types/index.js +1 -4
  223. package/package.json +6 -6
  224. package/src/barretenberg/__snapshots__/pedersen.test.ts.snap +2 -2
  225. package/src/barretenberg/__snapshots__/poseidon.test.ts.snap +3 -3
  226. package/src/barretenberg/backend.ts +45 -33
  227. package/src/barretenberg/blake2s.test.ts +20 -21
  228. package/src/barretenberg/index.ts +136 -117
  229. package/src/barretenberg/pedersen.test.ts +23 -16
  230. package/src/barretenberg/poseidon.bench.test.ts +267 -0
  231. package/src/barretenberg/poseidon.test.ts +14 -14
  232. package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +3 -3
  233. package/src/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.ts +17 -9
  234. package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +67 -16
  235. package/src/barretenberg_wasm/index.test.ts +12 -11
  236. package/src/bb_backends/browser/index.ts +50 -0
  237. package/src/bb_backends/index.ts +49 -0
  238. package/src/bb_backends/interface.ts +35 -0
  239. package/src/bb_backends/node/index.ts +94 -0
  240. package/src/bb_backends/node/native_pipe.ts +127 -0
  241. package/src/bb_backends/node/native_shm.ts +171 -0
  242. package/src/bb_backends/node/native_socket.ts +312 -0
  243. package/src/bb_backends/node/platform.ts +151 -0
  244. package/src/bb_backends/sync_to_async_adapter.ts +21 -0
  245. package/src/bb_backends/wasm.ts +103 -0
  246. package/src/cbind/README.md +1 -1
  247. package/src/cbind/generate.ts +0 -6
  248. package/src/cbind/generated/api_types.ts +3757 -0
  249. package/src/cbind/generated/async.ts +504 -0
  250. package/src/cbind/generated/sync.ts +455 -0
  251. package/src/cbind/schema_compiler.ts +131 -241
  252. package/src/index.ts +2 -1
  253. package/src/serialize/index.ts +0 -1
  254. package/src/serialize/serialize.ts +0 -82
  255. package/src/types/fields.ts +2 -2
  256. package/src/types/index.ts +0 -3
  257. package/dest/browser/barretenberg_api/index.d.ts +0 -109
  258. package/dest/browser/barretenberg_api/index.d.ts.map +0 -1
  259. package/dest/browser/barretenberg_api/index.js +0 -699
  260. package/dest/browser/cbind/generated/native.d.ts +0 -31
  261. package/dest/browser/cbind/generated/native.d.ts.map +0 -1
  262. package/dest/browser/cbind/generated/native.js +0 -234
  263. package/dest/browser/serialize/output_type.d.ts +0 -11
  264. package/dest/browser/serialize/output_type.d.ts.map +0 -1
  265. package/dest/browser/serialize/output_type.js +0 -44
  266. package/dest/browser/types/fixed_size_buffer.d.ts +0 -26
  267. package/dest/browser/types/fixed_size_buffer.d.ts.map +0 -1
  268. package/dest/browser/types/fixed_size_buffer.js +0 -51
  269. package/dest/browser/types/ptr.d.ts +0 -13
  270. package/dest/browser/types/ptr.d.ts.map +0 -1
  271. package/dest/browser/types/ptr.js +0 -19
  272. package/dest/browser/types/raw_buffer.d.ts +0 -3
  273. package/dest/browser/types/raw_buffer.d.ts.map +0 -1
  274. package/dest/browser/types/raw_buffer.js +0 -5
  275. package/dest/node/barretenberg/common.test.d.ts +0 -2
  276. package/dest/node/barretenberg/common.test.d.ts.map +0 -1
  277. package/dest/node/barretenberg/common.test.js +0 -20
  278. package/dest/node/barretenberg_api/index.d.ts +0 -109
  279. package/dest/node/barretenberg_api/index.d.ts.map +0 -1
  280. package/dest/node/barretenberg_api/index.js +0 -699
  281. package/dest/node/bindgen/function_declaration.d.ts +0 -11
  282. package/dest/node/bindgen/function_declaration.d.ts.map +0 -1
  283. package/dest/node/bindgen/function_declaration.js +0 -2
  284. package/dest/node/bindgen/index.d.ts +0 -2
  285. package/dest/node/bindgen/index.d.ts.map +0 -1
  286. package/dest/node/bindgen/index.js +0 -15
  287. package/dest/node/bindgen/mappings.d.ts +0 -4
  288. package/dest/node/bindgen/mappings.d.ts.map +0 -1
  289. package/dest/node/bindgen/mappings.js +0 -64
  290. package/dest/node/bindgen/rust.d.ts +0 -2
  291. package/dest/node/bindgen/rust.d.ts.map +0 -1
  292. package/dest/node/bindgen/rust.js +0 -43
  293. package/dest/node/bindgen/to_camel_case.d.ts +0 -2
  294. package/dest/node/bindgen/to_camel_case.d.ts.map +0 -1
  295. package/dest/node/bindgen/to_camel_case.js +0 -11
  296. package/dest/node/bindgen/typescript.d.ts +0 -2
  297. package/dest/node/bindgen/typescript.d.ts.map +0 -1
  298. package/dest/node/bindgen/typescript.js +0 -100
  299. package/dest/node/cbind/generated/native.d.ts +0 -31
  300. package/dest/node/cbind/generated/native.d.ts.map +0 -1
  301. package/dest/node/cbind/generated/native.js +0 -234
  302. package/dest/node/main.d.ts +0 -13
  303. package/dest/node/main.d.ts.map +0 -1
  304. package/dest/node/main.js +0 -459
  305. package/dest/node/serialize/output_type.d.ts +0 -11
  306. package/dest/node/serialize/output_type.d.ts.map +0 -1
  307. package/dest/node/serialize/output_type.js +0 -44
  308. package/dest/node/types/fixed_size_buffer.d.ts +0 -26
  309. package/dest/node/types/fixed_size_buffer.d.ts.map +0 -1
  310. package/dest/node/types/fixed_size_buffer.js +0 -51
  311. package/dest/node/types/ptr.d.ts +0 -13
  312. package/dest/node/types/ptr.d.ts.map +0 -1
  313. package/dest/node/types/ptr.js +0 -19
  314. package/dest/node/types/raw_buffer.d.ts +0 -3
  315. package/dest/node/types/raw_buffer.d.ts.map +0 -1
  316. package/dest/node/types/raw_buffer.js +0 -5
  317. package/dest/node-cjs/barretenberg/common.test.d.ts +0 -2
  318. package/dest/node-cjs/barretenberg/common.test.d.ts.map +0 -1
  319. package/dest/node-cjs/barretenberg/common.test.js +0 -22
  320. package/dest/node-cjs/barretenberg_api/index.d.ts +0 -109
  321. package/dest/node-cjs/barretenberg_api/index.d.ts.map +0 -1
  322. package/dest/node-cjs/barretenberg_api/index.js +0 -704
  323. package/dest/node-cjs/bindgen/function_declaration.d.ts +0 -11
  324. package/dest/node-cjs/bindgen/function_declaration.d.ts.map +0 -1
  325. package/dest/node-cjs/bindgen/function_declaration.js +0 -3
  326. package/dest/node-cjs/bindgen/index.d.ts +0 -2
  327. package/dest/node-cjs/bindgen/index.d.ts.map +0 -1
  328. package/dest/node-cjs/bindgen/index.js +0 -17
  329. package/dest/node-cjs/bindgen/mappings.d.ts +0 -4
  330. package/dest/node-cjs/bindgen/mappings.d.ts.map +0 -1
  331. package/dest/node-cjs/bindgen/mappings.js +0 -69
  332. package/dest/node-cjs/bindgen/rust.d.ts +0 -2
  333. package/dest/node-cjs/bindgen/rust.d.ts.map +0 -1
  334. package/dest/node-cjs/bindgen/rust.js +0 -47
  335. package/dest/node-cjs/bindgen/to_camel_case.d.ts +0 -2
  336. package/dest/node-cjs/bindgen/to_camel_case.d.ts.map +0 -1
  337. package/dest/node-cjs/bindgen/to_camel_case.js +0 -14
  338. package/dest/node-cjs/bindgen/typescript.d.ts +0 -2
  339. package/dest/node-cjs/bindgen/typescript.d.ts.map +0 -1
  340. package/dest/node-cjs/bindgen/typescript.js +0 -104
  341. package/dest/node-cjs/cbind/generated/native.d.ts +0 -31
  342. package/dest/node-cjs/cbind/generated/native.d.ts.map +0 -1
  343. package/dest/node-cjs/cbind/generated/native.js +0 -238
  344. package/dest/node-cjs/main.d.ts +0 -13
  345. package/dest/node-cjs/main.d.ts.map +0 -1
  346. package/dest/node-cjs/main.js +0 -470
  347. package/dest/node-cjs/serialize/output_type.d.ts +0 -11
  348. package/dest/node-cjs/serialize/output_type.d.ts.map +0 -1
  349. package/dest/node-cjs/serialize/output_type.js +0 -51
  350. package/dest/node-cjs/types/fixed_size_buffer.d.ts +0 -26
  351. package/dest/node-cjs/types/fixed_size_buffer.d.ts.map +0 -1
  352. package/dest/node-cjs/types/fixed_size_buffer.js +0 -57
  353. package/dest/node-cjs/types/ptr.d.ts +0 -13
  354. package/dest/node-cjs/types/ptr.d.ts.map +0 -1
  355. package/dest/node-cjs/types/ptr.js +0 -23
  356. package/dest/node-cjs/types/raw_buffer.d.ts +0 -3
  357. package/dest/node-cjs/types/raw_buffer.d.ts.map +0 -1
  358. package/dest/node-cjs/types/raw_buffer.js +0 -9
  359. package/src/barretenberg/common.test.ts +0 -23
  360. package/src/barretenberg_api/index.ts +0 -1216
  361. package/src/bindgen/function_declaration.ts +0 -11
  362. package/src/bindgen/index.ts +0 -17
  363. package/src/bindgen/mappings.ts +0 -67
  364. package/src/bindgen/rust.ts +0 -52
  365. package/src/bindgen/to_camel_case.ts +0 -10
  366. package/src/bindgen/typescript.ts +0 -116
  367. package/src/main.ts +0 -534
  368. package/src/serialize/output_type.ts +0 -53
  369. package/src/types/fixed_size_buffer.ts +0 -59
  370. package/src/types/ptr.ts +0 -20
  371. package/src/types/raw_buffer.ts +0 -3
@@ -1,22 +1,9 @@
1
- import { BarretenbergApi, BarretenbergApiSync } from '../barretenberg_api/index.js';
2
- import { BarretenbergWasmMain, BarretenbergWasmMainWorker } from '../barretenberg_wasm/barretenberg_wasm_main/index.js';
3
- import { CircuitComputeVk, CircuitProve, CircuitVerify, ClientIvcAccumulate, ClientIvcComputeIvcVk, ClientIvcStats, ClientIvcLoad, ClientIvcProve, ClientIvcStart, ClientIvcVerify, VkAsFields } from '../cbind/generated/api_types.js';
1
+ import { AsyncApi } from '../cbind/generated/async.js';
2
+ import { SyncApi } from '../cbind/generated/sync.js';
3
+ import { IMsgpackBackendSync, IMsgpackBackendAsync } from '../bb_backends/interface.js';
4
+ import { BackendOptions } from '../bb_backends/index.js';
4
5
  export { UltraHonkBackend, UltraHonkVerifierBackend, 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
- };
6
+ export * from '../bb_backends/index.js';
20
7
  export type CircuitOptions = {
21
8
  /** @description Whether to produce SNARK friendly proofs */
22
9
  recursive: boolean;
@@ -25,42 +12,56 @@ export type CircuitOptions = {
25
12
  * The main class library consumers interact with.
26
13
  * It extends the generated api, and provides a static constructor "new" to compose components.
27
14
  */
28
- export declare class Barretenberg extends BarretenbergApi {
29
- private worker;
15
+ export declare class Barretenberg extends AsyncApi {
30
16
  private options;
31
- private bbApi;
32
- private constructor();
17
+ constructor(backend: IMsgpackBackendAsync, options: BackendOptions);
33
18
  /**
34
19
  * Constructs an instance of Barretenberg.
35
- * Launches it within a worker. This is necessary as it blocks waiting on child threads to complete,
36
- * and blocking the main thread in the browser is not allowed.
37
- * It threads > 1 (defaults to hardware availability), child threads will be created on their own workers.
20
+ *
21
+ * If options.backend is set: uses that specific backend (throws if unavailable)
22
+ * If options.backend is unset: tries backends in order with fallback:
23
+ * 1. NativeSharedMemory (if bb binary available)
24
+ * 2. WasmWorker (in browser) or Wasm (in Node.js)
38
25
  */
39
26
  static new(options?: BackendOptions): Promise<Barretenberg>;
40
- getNumThreads(): Promise<number>;
41
27
  initSRSForCircuitSize(circuitSize: number): Promise<void>;
42
28
  initSRSClientIVC(srsSize?: number): Promise<void>;
43
29
  getDefaultSrsSize(): number;
30
+ acirGetCircuitSizes(bytecode: Uint8Array, recursive: boolean, honkRecursion: boolean): Promise<[number, number]>;
44
31
  acirInitSRS(bytecode: Uint8Array, recursive: boolean, honkRecursion: boolean): Promise<void>;
45
32
  destroy(): Promise<void>;
46
- getWasm(): BarretenbergWasmMainWorker;
47
- clientIvcStart(command: ClientIvcStart): Promise<import("../cbind/generated/api_types.js").ClientIvcStartResponse>;
48
- clientIvcLoad(command: ClientIvcLoad): Promise<import("../cbind/generated/api_types.js").ClientIvcLoadResponse>;
49
- clientIvcAccumulate(command: ClientIvcAccumulate): Promise<import("../cbind/generated/api_types.js").ClientIvcAccumulateResponse>;
50
- clientIvcProve(command: ClientIvcProve): Promise<import("../cbind/generated/api_types.js").ClientIvcProveResponse>;
51
- clientIvcVerify(command: ClientIvcVerify): Promise<import("../cbind/generated/api_types.js").ClientIvcVerifyResponse>;
52
- clientIvcComputeIvcVk(command: ClientIvcComputeIvcVk): Promise<import("../cbind/generated/api_types.js").ClientIvcComputeIvcVkResponse>;
53
- clientIvcStats(command: ClientIvcStats): Promise<import("../cbind/generated/api_types.js").ClientIvcStatsResponse>;
54
- circuitProve(command: CircuitProve): Promise<import("../cbind/generated/api_types.js").CircuitProveResponse>;
55
- circuitComputeVk(command: CircuitComputeVk): Promise<import("../cbind/generated/api_types.js").CircuitComputeVkResponse>;
56
- circuitVerify(command: CircuitVerify): Promise<import("../cbind/generated/api_types.js").CircuitVerifyResponse>;
57
- vkAsFields(command: VkAsFields): Promise<import("../cbind/generated/api_types.js").VkAsFieldsResponse>;
33
+ /**
34
+ * Initialize the singleton instance of Barretenberg.
35
+ * @param options Backend configuration options
36
+ */
37
+ static initSingleton(options?: BackendOptions): Promise<Barretenberg>;
38
+ static destroySingleton(): Promise<void>;
39
+ /**
40
+ * Get the singleton instance of Barretenberg.
41
+ * Must call initSingleton() first.
42
+ */
43
+ static getSingleton(): Barretenberg;
58
44
  }
59
- export declare class BarretenbergSync extends BarretenbergApiSync {
60
- private constructor();
61
- private static new;
62
- static initSingleton(wasmPath?: string, logger?: (msg: string) => void): Promise<BarretenbergSync>;
45
+ export declare class BarretenbergSync extends SyncApi {
46
+ constructor(backend: IMsgpackBackendSync);
47
+ /**
48
+ * Create a new BarretenbergSync instance.
49
+ *
50
+ * If options.backend is set: uses that specific backend (throws if unavailable)
51
+ * If options.backend is unset: tries backends in order with fallback:
52
+ * 1. NativeSharedMem (if bb binary + NAPI module available)
53
+ * 2. Wasm
54
+ *
55
+ * Supported backends: Wasm, NativeSharedMem
56
+ * Not supported: WasmWorker (no workers in sync), NativeUnixSocket (async only)
57
+ */
58
+ static new(options?: BackendOptions): Promise<BarretenbergSync>;
59
+ /**
60
+ * Initialize the singleton instance.
61
+ * @param options Backend configuration options
62
+ */
63
+ static initSingleton(options?: BackendOptions): Promise<BarretenbergSync>;
64
+ static destroySingleton(): void;
63
65
  static getSingleton(): BarretenbergSync;
64
- getWasm(): BarretenbergWasmMain;
65
66
  }
66
67
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/barretenberg/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEpF,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,sDAAsD,CAAC;AAOxH,OAAO,EAAa,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAEnP,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE9F,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;IAK7C,OAAO,CAAC,MAAM;IAJhB,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,KAAK,CAAY;IAEzB,OAAO;IAUP;;;;;OAKG;WACU,GAAG,CAAC,OAAO,GAAE,cAAmB;IAcvC,aAAa;IAIb,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzD,gBAAgB,CAAC,OAAO,SAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzE,iBAAiB,IAAI,MAAM;IASrB,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5F,OAAO;IAKb,OAAO;IAKD,cAAc,CAAC,OAAO,EAAE,cAAc;IAItC,aAAa,CAAC,OAAO,EAAE,aAAa;IAIpC,mBAAmB,CAAC,OAAO,EAAE,mBAAmB;IAIhD,cAAc,CAAC,OAAO,EAAE,cAAc;IAItC,eAAe,CAAC,OAAO,EAAE,eAAe;IAIxC,qBAAqB,CAAC,OAAO,EAAE,qBAAqB;IAIpD,cAAc,CAAC,OAAO,EAAE,cAAc;IAKtC,YAAY,CAAC,OAAO,EAAE,YAAY;IAIlC,gBAAgB,CAAC,OAAO,EAAE,gBAAgB;IAI1C,aAAa,CAAC,OAAO,EAAE,aAAa;IAIpC,UAAU,CAAC,OAAO,EAAE,UAAU;CAIrC;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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/barretenberg/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EAAE,cAAc,EAAe,MAAM,yBAAyB,CAAC;AAGtE,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC9F,cAAc,yBAAyB,CAAC;AAExC,MAAM,MAAM,cAAc,GAAG;IAC3B,4DAA4D;IAC5D,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,qBAAa,YAAa,SAAQ,QAAQ;IACxC,OAAO,CAAC,OAAO,CAAiB;gBAEpB,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,cAAc;IAKlE;;;;;;;OAOG;WACU,GAAG,CAAC,OAAO,GAAE,cAAmB;IA0BvC,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzD,gBAAgB,CAAC,OAAO,SAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzE,iBAAiB,IAAI,MAAM;IASrB,mBAAmB,CACvB,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,OAAO,EAClB,aAAa,EAAE,OAAO,GACrB,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IActB,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5F,OAAO;IAIb;;;OAGG;WACU,aAAa,CAAC,OAAO,GAAE,cAAmB;WAe1C,gBAAgB;IAQ7B;;;OAGG;IACH,MAAM,CAAC,YAAY;CAMpB;AAQD,qBAAa,gBAAiB,SAAQ,OAAO;gBAC/B,OAAO,EAAE,mBAAmB;IAIxC;;;;;;;;;;OAUG;WACU,GAAG,CAAC,OAAO,GAAE,cAAmB;IAiB7C;;;OAGG;WACU,aAAa,CAAC,OAAO,GAAE,cAAmB;IASvD,MAAM,CAAC,gBAAgB;IAQvB,MAAM,CAAC,YAAY;CAMpB"}
@@ -1,47 +1,60 @@
1
- import { proxy } from 'comlink';
2
- import { BarretenbergApi, BarretenbergApiSync } from '../barretenberg_api/index.js';
3
- import { createMainWorker } from '../barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js';
4
- import { BarretenbergWasmMain } from '../barretenberg_wasm/barretenberg_wasm_main/index.js';
5
- import { getRemoteBarretenbergWasm } from '../barretenberg_wasm/helpers/index.js';
6
1
  import { Crs, GrumpkinCrs } from '../crs/index.js';
7
- import { RawBuffer } from '../types/raw_buffer.js';
8
- import { fetchModuleAndThreads } from '../barretenberg_wasm/index.js';
9
2
  import { createDebugLogger } from '../log/index.js';
10
3
  import { AsyncApi } from '../cbind/generated/async.js';
4
+ import { SyncApi } from '../cbind/generated/sync.js';
5
+ import { BackendType } from '../bb_backends/index.js';
6
+ import { createAsyncBackend, createSyncBackend } from '../bb_backends/node/index.js';
11
7
  export { UltraHonkBackend, UltraHonkVerifierBackend, AztecClientBackend } from './backend.js';
8
+ export * from '../bb_backends/index.js';
12
9
  /**
13
10
  * The main class library consumers interact with.
14
11
  * It extends the generated api, and provides a static constructor "new" to compose components.
15
12
  */
16
- export class Barretenberg extends BarretenbergApi {
17
- constructor(worker, wasm, options) {
18
- super(wasm);
19
- this.worker = worker;
13
+ export class Barretenberg extends AsyncApi {
14
+ constructor(backend, options) {
15
+ super(backend);
20
16
  this.options = options;
21
- this.bbApi = new AsyncApi(wasm);
22
17
  }
23
18
  /**
24
19
  * Constructs an instance of Barretenberg.
25
- * Launches it within a worker. This is necessary as it blocks waiting on child threads to complete,
26
- * and blocking the main thread in the browser is not allowed.
27
- * It threads > 1 (defaults to hardware availability), child threads will be created on their own workers.
20
+ *
21
+ * If options.backend is set: uses that specific backend (throws if unavailable)
22
+ * If options.backend is unset: tries backends in order with fallback:
23
+ * 1. NativeSharedMemory (if bb binary available)
24
+ * 2. WasmWorker (in browser) or Wasm (in Node.js)
28
25
  */
29
26
  static async new(options = {}) {
30
- const worker = await createMainWorker();
31
- const wasm = getRemoteBarretenbergWasm(worker);
32
- const { module, threads } = await fetchModuleAndThreads(options.threads, options.wasmPath, options.logger);
33
- await wasm.init(module, threads, proxy(options.logger ?? createDebugLogger('bb_wasm_async')), options.memory?.initial, options.memory?.maximum);
34
- return new Barretenberg(worker, wasm, options);
35
- }
36
- async getNumThreads() {
37
- return await this.wasm.getNumThreads();
27
+ const logger = options.logger ?? createDebugLogger('bb_async');
28
+ if (options.backend) {
29
+ // Explicit backend required - no fallback
30
+ return await createAsyncBackend(options.backend, options, logger);
31
+ }
32
+ if (typeof window === 'undefined') {
33
+ try {
34
+ return await createAsyncBackend(BackendType.NativeSharedMemory, options, logger);
35
+ }
36
+ catch (err) {
37
+ logger(`Shared memory unavailable (${err.message}), falling back to other backends`);
38
+ try {
39
+ return await createAsyncBackend(BackendType.NativeUnixSocket, options, logger);
40
+ }
41
+ catch (err) {
42
+ logger(`Unix socket unavailable (${err.message}), falling back to WASM`);
43
+ return await createAsyncBackend(BackendType.Wasm, options, logger);
44
+ }
45
+ }
46
+ }
47
+ else {
48
+ logger(`In browser, using WASM over worker backend.`);
49
+ return await createAsyncBackend(BackendType.WasmWorker, options, logger);
50
+ }
38
51
  }
39
52
  async initSRSForCircuitSize(circuitSize) {
40
53
  const minSRSSize = 2 ** 9; // 2**9 is the dyadic size for the SmallSubgroupIPA MSM.
41
54
  const crs = await Crs.new(Math.max(circuitSize, minSRSSize) + 1, this.options.crsPath, this.options.logger);
42
55
  // TODO(https://github.com/AztecProtocol/barretenberg/issues/1129): Do slab allocator initialization?
43
56
  // await this.commonInitSlabAllocator(circuitSize);
44
- await this.srsInitSrs(new RawBuffer(crs.getG1Data()), crs.numPoints, new RawBuffer(crs.getG2Data()));
57
+ await this.srsInitSrs({ pointsBuf: crs.getG1Data(), numPoints: crs.numPoints, g2Point: crs.getG2Data() });
45
58
  }
46
59
  async initSRSClientIVC(srsSize = this.getDefaultSrsSize()) {
47
60
  // crsPath can be undefined
@@ -49,8 +62,8 @@ export class Barretenberg extends BarretenbergApi {
49
62
  const grumpkinCrs = await GrumpkinCrs.new(2 ** 16 + 1, this.options.crsPath, this.options.logger);
50
63
  // Load CRS into wasm global CRS state.
51
64
  // TODO: Make RawBuffer be default behavior, and have a specific Vector type for when wanting length prefixed.
52
- await this.srsInitSrs(new RawBuffer(crs.getG1Data()), crs.numPoints, new RawBuffer(crs.getG2Data()));
53
- await this.srsInitGrumpkinSrs(new RawBuffer(grumpkinCrs.getG1Data()), grumpkinCrs.numPoints);
65
+ await this.srsInitSrs({ pointsBuf: crs.getG1Data(), numPoints: crs.numPoints, g2Point: crs.getG2Data() });
66
+ await this.srsInitGrumpkinSrs({ pointsBuf: grumpkinCrs.getG1Data(), numPoints: grumpkinCrs.numPoints });
54
67
  }
55
68
  getDefaultSrsSize() {
56
69
  // iOS browser is very aggressive with memory. Check if running in browser and on iOS
@@ -60,81 +73,119 @@ export class Barretenberg extends BarretenbergApi {
60
73
  }
61
74
  return 2 ** 20;
62
75
  }
76
+ async acirGetCircuitSizes(bytecode, recursive, honkRecursion) {
77
+ const response = await this.circuitStats({
78
+ circuit: { name: '', bytecode, verificationKey: new Uint8Array() },
79
+ includeGatesPerOpcode: false,
80
+ settings: {
81
+ ipaAccumulation: false,
82
+ oracleHashType: honkRecursion ? 'poseidon2' : 'keccak',
83
+ disableZk: !recursive,
84
+ optimizedSolidityVerifier: false,
85
+ },
86
+ });
87
+ return [response.numGates, response.numGatesDyadic];
88
+ }
63
89
  async acirInitSRS(bytecode, recursive, honkRecursion) {
64
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
65
- const [_total, subgroupSize] = await this.acirGetCircuitSizes(bytecode, recursive, honkRecursion);
90
+ const [_, subgroupSize] = await this.acirGetCircuitSizes(bytecode, recursive, honkRecursion);
66
91
  return this.initSRSForCircuitSize(subgroupSize);
67
92
  }
68
93
  async destroy() {
69
- await this.wasm.destroy();
70
- await this.worker.terminate();
71
- }
72
- getWasm() {
73
- return this.wasm;
74
- }
75
- // Wrap ClientIVC methods used by AztecClientBackend and UltraHonkBackend
76
- async clientIvcStart(command) {
77
- return this.bbApi.clientIvcStart(command);
78
- }
79
- async clientIvcLoad(command) {
80
- return this.bbApi.clientIvcLoad(command);
81
- }
82
- async clientIvcAccumulate(command) {
83
- return this.bbApi.clientIvcAccumulate(command);
94
+ return super.destroy();
84
95
  }
85
- async clientIvcProve(command) {
86
- return this.bbApi.clientIvcProve(command);
87
- }
88
- async clientIvcVerify(command) {
89
- return this.bbApi.clientIvcVerify(command);
90
- }
91
- async clientIvcComputeIvcVk(command) {
92
- return this.bbApi.clientIvcComputeIvcVk(command);
93
- }
94
- async clientIvcStats(command) {
95
- return this.bbApi.clientIvcStats(command);
96
- }
97
- // Wrap circuit methods used by BbApiUltraHonkBackend
98
- async circuitProve(command) {
99
- return this.bbApi.circuitProve(command);
100
- }
101
- async circuitComputeVk(command) {
102
- return this.bbApi.circuitComputeVk(command);
96
+ /**
97
+ * Initialize the singleton instance of Barretenberg.
98
+ * @param options Backend configuration options
99
+ */
100
+ static async initSingleton(options = {}) {
101
+ if (!barretenbergSingletonPromise) {
102
+ barretenbergSingletonPromise = Barretenberg.new(options);
103
+ }
104
+ try {
105
+ barretenbergSingleton = await barretenbergSingletonPromise;
106
+ return barretenbergSingleton;
107
+ }
108
+ catch (error) {
109
+ // If initialization fails, clear the singleton so next call can retry
110
+ barretenbergSingleton = undefined;
111
+ barretenbergSingletonPromise = undefined;
112
+ throw error;
113
+ }
103
114
  }
104
- async circuitVerify(command) {
105
- return this.bbApi.circuitVerify(command);
115
+ static async destroySingleton() {
116
+ if (barretenbergSingleton) {
117
+ await barretenbergSingleton.destroy();
118
+ barretenbergSingleton = undefined;
119
+ barretenbergSingletonPromise = undefined;
120
+ }
106
121
  }
107
- async vkAsFields(command) {
108
- return this.bbApi.vkAsFields(command);
122
+ /**
123
+ * Get the singleton instance of Barretenberg.
124
+ * Must call initSingleton() first.
125
+ */
126
+ static getSingleton() {
127
+ if (!barretenbergSingleton) {
128
+ throw new Error('First call Barretenberg.initSingleton() on @aztec/bb.js module.');
129
+ }
130
+ return barretenbergSingleton;
109
131
  }
110
132
  }
133
+ let barretenbergSingletonPromise;
134
+ let barretenbergSingleton;
111
135
  let barretenbergSyncSingletonPromise;
112
136
  let barretenbergSyncSingleton;
113
- export class BarretenbergSync extends BarretenbergApiSync {
114
- constructor(wasm) {
115
- super(wasm);
137
+ export class BarretenbergSync extends SyncApi {
138
+ constructor(backend) {
139
+ super(backend);
116
140
  }
117
- static async new(wasmPath, logger = createDebugLogger('bb_wasm_sync')) {
118
- const wasm = new BarretenbergWasmMain();
119
- const { module, threads } = await fetchModuleAndThreads(1, wasmPath, logger);
120
- await wasm.init(module, threads, logger);
121
- return new BarretenbergSync(wasm);
141
+ /**
142
+ * Create a new BarretenbergSync instance.
143
+ *
144
+ * If options.backend is set: uses that specific backend (throws if unavailable)
145
+ * If options.backend is unset: tries backends in order with fallback:
146
+ * 1. NativeSharedMem (if bb binary + NAPI module available)
147
+ * 2. Wasm
148
+ *
149
+ * Supported backends: Wasm, NativeSharedMem
150
+ * Not supported: WasmWorker (no workers in sync), NativeUnixSocket (async only)
151
+ */
152
+ static async new(options = {}) {
153
+ const logger = options.logger ?? createDebugLogger('bb_sync');
154
+ if (options.backend) {
155
+ return await createSyncBackend(options.backend, options, logger);
156
+ }
157
+ // Try native, fallback to WASM.
158
+ try {
159
+ return await createSyncBackend(BackendType.NativeSharedMemory, options, logger);
160
+ }
161
+ catch (err) {
162
+ logger(`Shared memory unavailable (${err.message}), falling back to WASM`);
163
+ }
164
+ return await createSyncBackend(BackendType.Wasm, options, logger);
122
165
  }
123
- static async initSingleton(wasmPath, logger = createDebugLogger('bb_wasm_sync')) {
166
+ /**
167
+ * Initialize the singleton instance.
168
+ * @param options Backend configuration options
169
+ */
170
+ static async initSingleton(options = {}) {
124
171
  if (!barretenbergSyncSingletonPromise) {
125
- barretenbergSyncSingletonPromise = BarretenbergSync.new(wasmPath, logger);
172
+ barretenbergSyncSingletonPromise = BarretenbergSync.new(options);
126
173
  }
127
174
  barretenbergSyncSingleton = await barretenbergSyncSingletonPromise;
128
175
  return barretenbergSyncSingleton;
129
176
  }
177
+ static destroySingleton() {
178
+ if (barretenbergSyncSingleton) {
179
+ barretenbergSyncSingleton.destroy();
180
+ barretenbergSyncSingleton = undefined;
181
+ barretenbergSyncSingletonPromise = undefined;
182
+ }
183
+ }
130
184
  static getSingleton() {
131
185
  if (!barretenbergSyncSingleton) {
132
186
  throw new Error('First call BarretenbergSync.initSingleton() on @aztec/bb.js module.');
133
187
  }
134
188
  return barretenbergSyncSingleton;
135
189
  }
136
- getWasm() {
137
- return this.wasm;
138
- }
139
190
  }
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxvQkFBb0IsRUFBOEIsTUFBTSxzREFBc0QsQ0FBQztBQUN4SCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNsRixPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBd0I5Rjs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sWUFBYSxTQUFRLGVBQWU7SUFJL0MsWUFDVSxNQUFXLEVBQ25CLElBQWdDLEVBQ2hDLE9BQXVCO1FBRXZCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUpKLFdBQU0sR0FBTixNQUFNLENBQUs7UUFLbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7O09B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
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVyRCxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXJGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5RixjQUFjLHlCQUF5QixDQUFDO0FBT3hDOzs7R0FHRztBQUNILE1BQU0sT0FBTyxZQUFhLFNBQVEsUUFBUTtJQUd4QyxZQUFZLE9BQTZCLEVBQUUsT0FBdUI7UUFDaEUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUEwQixFQUFFO1FBQzNDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFL0QsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsMENBQTBDO1lBQzFDLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwRSxD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
@@ -7,7 +7,8 @@ describe('pedersen sync', () => {
7
7
  api = await BarretenbergSync.initSingleton();
8
8
  });
9
9
  it('pedersenHash', () => {
10
- const result = api.pedersenHash([new Fr(4n), new Fr(8n)], 7);
10
+ const response = api.pedersenHash({ inputs: [new Fr(4n).toBuffer(), new Fr(8n).toBuffer()], hashIndex: 7 });
11
+ const result = Fr.fromBuffer(response.hash);
11
12
  expect(result).toMatchSnapshot();
12
13
  });
13
14
  it('pedersenHash perf test', () => {
@@ -15,31 +16,37 @@ describe('pedersen sync', () => {
15
16
  const fields = Array.from({ length: loops * 2 }).map(() => Fr.random());
16
17
  const t = new Timer();
17
18
  for (let i = 0; i < loops; ++i) {
18
- api.pedersenHash([fields[i * 2], fields[i * 2 + 1]], 0);
19
+ api.pedersenHash({ inputs: [fields[i * 2].toBuffer(), fields[i * 2 + 1].toBuffer()], hashIndex: 0 });
19
20
  }
20
21
  const us = t.us() / loops;
21
22
  console.log(`Executed ${loops} hashes at an average ${us}us / hash`);
22
23
  });
23
- it('pedersenHashes perf test', () => {
24
- const loops = 10;
25
- const numHashesPerLoop = 1024;
26
- const fields = Array.from({ length: numHashesPerLoop * 2 }).map(() => Fr.random());
27
- const t = new Timer();
28
- for (let i = 0; i < loops; ++i) {
29
- api.pedersenHashes(fields, 0);
30
- }
31
- const us = t.us() / (numHashesPerLoop * loops);
32
- console.log(`Executed ${numHashesPerLoop * loops} hashes at an average ${us}us / hash`);
33
- });
24
+ // TODO: pedersenHashes not yet in new msgpack API
25
+ // it.skip('pedersenHashes perf test', () => {
26
+ // const loops = 10;
27
+ // const numHashesPerLoop = 1024;
28
+ // const fields = Array.from({ length: numHashesPerLoop * 2 }).map(() => Fr.random());
29
+ // const t = new Timer();
30
+ // for (let i = 0; i < loops; ++i) {
31
+ // // api.pedersenHashes(fields, 0); // Not in new API yet
32
+ // }
33
+ // const us = t.us() / (numHashesPerLoop * loops);
34
+ // console.log(`Executed ${numHashesPerLoop * loops} hashes at an average ${us}us / hash`);
35
+ // });
34
36
  it('pedersenHashBuffer', () => {
35
37
  const input = Buffer.alloc(123);
36
38
  input.writeUint32BE(321, 0);
37
39
  input.writeUint32BE(456, 119);
38
- const r = api.pedersenHashBuffer(input, 0);
40
+ const response = api.pedersenHashBuffer({ input, hashIndex: 0 });
41
+ const r = Fr.fromBuffer(response.hash);
39
42
  expect(r).toMatchSnapshot();
40
43
  });
41
44
  it('pedersenCommit', () => {
42
- const result = api.pedersenCommit([new Fr(4n), new Fr(8n), new Fr(12n)], 0);
45
+ const response = api.pedersenCommit({
46
+ inputs: [new Fr(4n).toBuffer(), new Fr(8n).toBuffer(), new Fr(12n).toBuffer()],
47
+ hashIndex: 0,
48
+ });
49
+ const result = { x: Fr.fromBuffer(response.point.x), y: Fr.fromBuffer(response.point.y) };
43
50
  expect(result).toMatchSnapshot();
44
51
  });
45
52
  it.skip('pedersenCommit perf test', () => {
@@ -47,9 +54,9 @@ describe('pedersen sync', () => {
47
54
  const fields = Array.from({ length: loops * 2 }).map(() => Fr.random());
48
55
  const t = new Timer();
49
56
  for (let i = 0; i < loops; ++i) {
50
- api.pedersenCommit([fields[i * 2], fields[i * 2 + 1]], 0);
57
+ api.pedersenCommit({ inputs: [fields[i * 2].toBuffer(), fields[i * 2 + 1].toBuffer()], hashIndex: 0 });
51
58
  }
52
59
  console.log(t.us() / loops);
53
60
  });
54
61
  });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVkZXJzZW4udGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmcvcGVkZXJzZW4udGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDOUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlDLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV2QyxRQUFRLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtJQUM3QixJQUFJLEdBQXFCLENBQUM7SUFFMUIsU0FBUyxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ25CLEdBQUcsR0FBRyxNQUFNLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQy9DLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUU7UUFDdEIsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDN0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsRUFBRTtRQUNoQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbkIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDeEUsTUFBTSxDQUFDLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztR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
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVkZXJzZW4udGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmcvcGVkZXJzZW4udGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDOUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlDLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV2QyxRQUFRLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtJQUM3QixJQUFJLEdBQXFCLENBQUM7SUFFMUIsU0FBUyxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ25CLEdBQUcsR0FBRyxNQUFNLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQy9DLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUU7UUFDdEIsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUcsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsRUFBRTtRQUNoQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbkIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxL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QUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDeEUsTUFBTSxDQUFDLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN0QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDL0IsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6RyxDQUFDO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyJ9
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=poseidon.bench.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poseidon.bench.test.d.ts","sourceRoot":"","sources":["../../../src/barretenberg/poseidon.bench.test.ts"],"names":[],"mappings":""}