@aztec/bb.js 0.87.2 → 0.87.3-nightly.20250528

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. package/dest/browser/async_map/index.d.ts +10 -0
  2. package/dest/browser/async_map/index.d.ts.map +1 -0
  3. package/dest/browser/async_map/index.js +16 -0
  4. package/dest/browser/barretenberg/backend.d.ts +63 -0
  5. package/dest/browser/barretenberg/backend.d.ts.map +1 -0
  6. package/dest/browser/barretenberg/backend.js +236 -0
  7. package/dest/browser/barretenberg/index.d.ts +53 -0
  8. package/dest/browser/barretenberg/index.d.ts.map +1 -0
  9. package/dest/browser/barretenberg/index.js +95 -0
  10. package/dest/browser/barretenberg/verifier.d.ts +14 -0
  11. package/dest/browser/barretenberg/verifier.d.ts.map +1 -0
  12. package/dest/browser/barretenberg/verifier.js +30 -0
  13. package/dest/browser/barretenberg_api/index.d.ts +109 -0
  14. package/dest/browser/barretenberg_api/index.d.ts.map +1 -0
  15. package/dest/browser/barretenberg_api/index.js +699 -0
  16. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +44 -0
  17. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -0
  18. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.js +124 -0
  19. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +2 -0
  20. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -0
  21. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +11 -0
  22. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +2 -0
  23. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts.map +1 -0
  24. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +12 -0
  25. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +21 -0
  26. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -0
  27. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +62 -0
  28. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +47 -0
  29. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -0
  30. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.js +105 -0
  31. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +2 -0
  32. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -0
  33. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +11 -0
  34. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +2 -0
  35. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts.map +1 -0
  36. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +12 -0
  37. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +28 -0
  38. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -0
  39. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.js +40 -0
  40. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +3 -0
  41. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts.map +1 -0
  42. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +2 -0
  43. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +3 -0
  44. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts.map +1 -0
  45. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +2 -0
  46. package/dest/browser/barretenberg_wasm/fetch_code/browser/index.d.ts +2 -0
  47. package/dest/browser/barretenberg_wasm/fetch_code/browser/index.d.ts.map +1 -0
  48. package/dest/browser/barretenberg_wasm/fetch_code/browser/index.js +36 -0
  49. package/dest/browser/barretenberg_wasm/fetch_code/index.d.ts +2 -0
  50. package/dest/browser/barretenberg_wasm/fetch_code/index.d.ts.map +1 -0
  51. package/dest/browser/barretenberg_wasm/fetch_code/index.js +2 -0
  52. package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts +13 -0
  53. package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -0
  54. package/dest/browser/barretenberg_wasm/helpers/browser/index.js +40 -0
  55. package/dest/browser/barretenberg_wasm/helpers/index.d.ts +2 -0
  56. package/dest/browser/barretenberg_wasm/helpers/index.d.ts.map +1 -0
  57. package/dest/browser/barretenberg_wasm/helpers/index.js +2 -0
  58. package/dest/browser/barretenberg_wasm/index.d.ts +5 -0
  59. package/dest/browser/barretenberg_wasm/index.d.ts.map +1 -0
  60. package/dest/browser/barretenberg_wasm/index.js +16 -0
  61. package/dest/browser/bigint-array/index.d.ts +17 -0
  62. package/dest/browser/bigint-array/index.d.ts.map +1 -0
  63. package/dest/browser/bigint-array/index.js +37 -0
  64. package/dest/browser/crs/browser/cached_net_crs.d.ts +43 -0
  65. package/dest/browser/crs/browser/cached_net_crs.d.ts.map +1 -0
  66. package/dest/browser/crs/browser/cached_net_crs.js +90 -0
  67. package/dest/browser/crs/browser/index.d.ts +2 -0
  68. package/dest/browser/crs/browser/index.d.ts.map +1 -0
  69. package/dest/browser/crs/browser/index.js +2 -0
  70. package/dest/browser/crs/index.d.ts +2 -0
  71. package/dest/browser/crs/index.d.ts.map +1 -0
  72. package/dest/browser/crs/index.js +2 -0
  73. package/dest/browser/crs/net_crs.d.ts +85 -0
  74. package/dest/browser/crs/net_crs.d.ts.map +1 -0
  75. package/dest/browser/crs/net_crs.js +136 -0
  76. package/dest/browser/index.d.ts +6 -0
  77. package/dest/browser/index.d.ts.map +1 -0
  78. package/dest/browser/index.js +6 -13285
  79. package/dest/browser/log/browser/index.d.ts +6 -0
  80. package/dest/browser/log/browser/index.d.ts.map +1 -0
  81. package/dest/browser/log/browser/index.js +28 -0
  82. package/dest/browser/log/index.d.ts +2 -0
  83. package/dest/browser/log/index.d.ts.map +1 -0
  84. package/dest/browser/log/index.js +2 -0
  85. package/dest/browser/log/types.d.ts +6 -0
  86. package/dest/browser/log/types.d.ts.map +1 -0
  87. package/dest/browser/log/types.js +2 -0
  88. package/dest/browser/proof/index.d.ts +19 -0
  89. package/dest/browser/proof/index.d.ts.map +1 -0
  90. package/dest/browser/proof/index.js +63 -0
  91. package/dest/browser/random/browser/index.d.ts +2 -0
  92. package/dest/browser/random/browser/index.d.ts.map +1 -0
  93. package/dest/browser/random/browser/index.js +31 -0
  94. package/dest/browser/random/index.d.ts +2 -0
  95. package/dest/browser/random/index.d.ts.map +1 -0
  96. package/dest/browser/random/index.js +2 -0
  97. package/dest/browser/retry/index.d.ts +26 -0
  98. package/dest/browser/retry/index.d.ts.map +1 -0
  99. package/dest/browser/retry/index.js +50 -0
  100. package/dest/browser/serialize/buffer_reader.d.ts +28 -0
  101. package/dest/browser/serialize/buffer_reader.d.ts.map +1 -0
  102. package/dest/browser/serialize/buffer_reader.js +66 -0
  103. package/dest/browser/serialize/index.d.ts +4 -0
  104. package/dest/browser/serialize/index.d.ts.map +1 -0
  105. package/dest/browser/serialize/index.js +4 -0
  106. package/dest/browser/serialize/output_type.d.ts +11 -0
  107. package/dest/browser/serialize/output_type.d.ts.map +1 -0
  108. package/dest/browser/serialize/output_type.js +44 -0
  109. package/dest/browser/serialize/serialize.d.ts +53 -0
  110. package/dest/browser/serialize/serialize.d.ts.map +1 -0
  111. package/dest/browser/serialize/serialize.js +139 -0
  112. package/dest/browser/types/fields.d.ts +43 -0
  113. package/dest/browser/types/fields.d.ts.map +1 -0
  114. package/dest/browser/types/fields.js +102 -0
  115. package/dest/browser/types/fixed_size_buffer.d.ts +26 -0
  116. package/dest/browser/types/fixed_size_buffer.d.ts.map +1 -0
  117. package/dest/browser/types/fixed_size_buffer.js +51 -0
  118. package/dest/browser/types/index.d.ts +6 -0
  119. package/dest/browser/types/index.d.ts.map +1 -0
  120. package/dest/browser/types/index.js +6 -0
  121. package/dest/browser/types/point.d.ts +16 -0
  122. package/dest/browser/types/point.d.ts.map +1 -0
  123. package/dest/browser/types/point.js +31 -0
  124. package/dest/browser/types/ptr.d.ts +13 -0
  125. package/dest/browser/types/ptr.d.ts.map +1 -0
  126. package/dest/browser/types/ptr.js +19 -0
  127. package/dest/browser/types/raw_buffer.d.ts +3 -0
  128. package/dest/browser/types/raw_buffer.d.ts.map +1 -0
  129. package/dest/browser/types/raw_buffer.js +5 -0
  130. package/dest/node/barretenberg/backend.d.ts +6 -1
  131. package/dest/node/barretenberg/backend.d.ts.map +1 -1
  132. package/dest/node/barretenberg/backend.js +24 -14
  133. package/dest/node/barretenberg/index.js +5 -5
  134. package/dest/node/barretenberg_api/index.d.ts +15 -6
  135. package/dest/node/barretenberg_api/index.d.ts.map +1 -1
  136. package/dest/node/barretenberg_api/index.js +72 -9
  137. package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  138. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
  139. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.js +3 -3
  140. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
  141. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +4 -8
  142. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +4 -4
  143. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +0 -1
  144. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
  145. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +5 -2
  146. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +8 -1
  147. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +1 -1
  148. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
  149. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +3 -3
  150. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
  151. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +4 -8
  152. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +4 -4
  153. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +0 -1
  154. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
  155. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +5 -2
  156. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +9 -2
  157. package/dest/node/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
  158. package/dest/node/barretenberg_wasm/fetch_code/browser/index.d.ts.map +1 -1
  159. package/dest/node/barretenberg_wasm/fetch_code/browser/index.js +3 -3
  160. package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts +1 -1
  161. package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts.map +1 -1
  162. package/dest/node/barretenberg_wasm/fetch_code/node/index.js +1 -1
  163. package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts +1 -0
  164. package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
  165. package/dest/node/barretenberg_wasm/helpers/browser/index.js +10 -1
  166. package/dest/node/barretenberg_wasm/helpers/node/index.d.ts +1 -1
  167. package/dest/node/barretenberg_wasm/helpers/node/index.d.ts.map +1 -1
  168. package/dest/node/barretenberg_wasm/helpers/node/index.js +10 -1
  169. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts +1 -1
  170. package/dest/node/barretenberg_wasm/index.js +4 -19
  171. package/dest/node/bigint-array/index.d.ts +0 -2
  172. package/dest/node/bigint-array/index.d.ts.map +1 -1
  173. package/dest/node/crs/net_crs.d.ts +3 -3
  174. package/dest/node/crs/node/index.js +6 -6
  175. package/dest/node/index.d.ts +1 -0
  176. package/dest/node/index.d.ts.map +1 -1
  177. package/dest/node/index.js +2 -1
  178. package/dest/node/log/browser/index.d.ts +6 -0
  179. package/dest/node/log/browser/index.d.ts.map +1 -0
  180. package/dest/node/log/browser/index.js +28 -0
  181. package/dest/node/log/index.d.ts +2 -0
  182. package/dest/node/log/index.d.ts.map +1 -0
  183. package/dest/node/log/index.js +2 -0
  184. package/dest/node/log/node/index.d.ts +6 -0
  185. package/dest/node/log/node/index.d.ts.map +1 -0
  186. package/dest/node/log/node/index.js +32 -0
  187. package/dest/node/log/types.d.ts +6 -0
  188. package/dest/node/log/types.d.ts.map +1 -0
  189. package/dest/node/log/types.js +2 -0
  190. package/dest/node/main.d.ts.map +1 -1
  191. package/dest/node/main.js +33 -45
  192. package/dest/node/random/browser/index.d.ts +1 -1
  193. package/dest/node/random/browser/index.d.ts.map +1 -1
  194. package/dest/node/random/node/index.d.ts +1 -1
  195. package/dest/node/random/node/index.d.ts.map +1 -1
  196. package/dest/node/serialize/buffer_reader.d.ts +1 -1
  197. package/dest/node/serialize/serialize.d.ts +12 -12
  198. package/dest/node/serialize/serialize.d.ts.map +1 -1
  199. package/dest/node/types/fields.d.ts +2 -4
  200. package/dest/node/types/fields.d.ts.map +1 -1
  201. package/dest/node/types/fixed_size_buffer.d.ts +3 -3
  202. package/dest/node/types/point.d.ts +1 -3
  203. package/dest/node/types/point.d.ts.map +1 -1
  204. package/dest/node/types/ptr.d.ts +1 -1
  205. package/dest/node-cjs/async_map/index.js +2 -3
  206. package/dest/node-cjs/barretenberg/backend.d.ts +6 -1
  207. package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
  208. package/dest/node-cjs/barretenberg/backend.js +24 -14
  209. package/dest/node-cjs/barretenberg/index.js +5 -6
  210. package/dest/node-cjs/barretenberg_api/index.d.ts +15 -6
  211. package/dest/node-cjs/barretenberg_api/index.d.ts.map +1 -1
  212. package/dest/node-cjs/barretenberg_api/index.js +72 -9
  213. package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  214. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
  215. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.js +5 -6
  216. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
  217. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +7 -13
  218. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +4 -5
  219. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +0 -1
  220. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
  221. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +6 -4
  222. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +8 -1
  223. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +1 -1
  224. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
  225. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +3 -4
  226. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
  227. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +7 -13
  228. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +4 -5
  229. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +0 -1
  230. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
  231. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +6 -4
  232. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +9 -2
  233. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
  234. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts.map +1 -1
  235. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.js +4 -5
  236. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts +1 -1
  237. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts.map +1 -1
  238. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.js +2 -3
  239. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts +1 -0
  240. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
  241. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.js +18 -8
  242. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts +1 -1
  243. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts.map +1 -1
  244. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.js +16 -7
  245. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts +1 -1
  246. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.js +2 -3
  247. package/dest/node-cjs/barretenberg_wasm/index.js +5 -22
  248. package/dest/node-cjs/benchmark/index.js +2 -3
  249. package/dest/node-cjs/bigint-array/index.d.ts +0 -2
  250. package/dest/node-cjs/bigint-array/index.d.ts.map +1 -1
  251. package/dest/node-cjs/bigint-array/index.js +5 -6
  252. package/dest/node-cjs/bindgen/mappings.js +4 -4
  253. package/dest/node-cjs/bindgen/rust.js +2 -3
  254. package/dest/node-cjs/bindgen/to_camel_case.js +2 -3
  255. package/dest/node-cjs/bindgen/typescript.js +2 -3
  256. package/dest/node-cjs/crs/net_crs.d.ts +3 -3
  257. package/dest/node-cjs/crs/node/index.js +6 -7
  258. package/dest/node-cjs/index.d.ts +1 -0
  259. package/dest/node-cjs/index.d.ts.map +1 -1
  260. package/dest/node-cjs/index.js +11 -9
  261. package/dest/node-cjs/log/browser/index.d.ts +6 -0
  262. package/dest/node-cjs/log/browser/index.d.ts.map +1 -0
  263. package/dest/node-cjs/log/browser/index.js +30 -0
  264. package/dest/node-cjs/log/index.d.ts +2 -0
  265. package/dest/node-cjs/log/index.d.ts.map +1 -0
  266. package/dest/node-cjs/log/index.js +8 -0
  267. package/dest/node-cjs/log/node/index.d.ts +6 -0
  268. package/dest/node-cjs/log/node/index.d.ts.map +1 -0
  269. package/dest/node-cjs/log/node/index.js +34 -0
  270. package/dest/node-cjs/log/types.d.ts +6 -0
  271. package/dest/node-cjs/log/types.d.ts.map +1 -0
  272. package/dest/node-cjs/log/types.js +3 -0
  273. package/dest/node-cjs/main.d.ts.map +1 -1
  274. package/dest/node-cjs/main.js +41 -55
  275. package/dest/node-cjs/proof/index.js +6 -6
  276. package/dest/node-cjs/random/browser/index.d.ts +1 -1
  277. package/dest/node-cjs/random/browser/index.d.ts.map +1 -1
  278. package/dest/node-cjs/random/node/index.d.ts +1 -1
  279. package/dest/node-cjs/random/node/index.d.ts.map +1 -1
  280. package/dest/node-cjs/random/node/index.js +2 -3
  281. package/dest/node-cjs/retry/index.js +4 -5
  282. package/dest/node-cjs/serialize/buffer_reader.d.ts +1 -1
  283. package/dest/node-cjs/serialize/output_type.js +6 -7
  284. package/dest/node-cjs/serialize/serialize.d.ts +12 -12
  285. package/dest/node-cjs/serialize/serialize.d.ts.map +1 -1
  286. package/dest/node-cjs/serialize/serialize.js +20 -21
  287. package/dest/node-cjs/types/fields.d.ts +2 -4
  288. package/dest/node-cjs/types/fields.d.ts.map +1 -1
  289. package/dest/node-cjs/types/fixed_size_buffer.d.ts +3 -3
  290. package/dest/node-cjs/types/point.d.ts +1 -3
  291. package/dest/node-cjs/types/point.d.ts.map +1 -1
  292. package/dest/node-cjs/types/ptr.d.ts +1 -1
  293. package/package.json +6 -15
  294. package/src/barretenberg/backend.ts +29 -14
  295. package/src/barretenberg/index.ts +4 -4
  296. package/src/barretenberg_api/index.ts +116 -8
  297. package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +2 -2
  298. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.ts +3 -7
  299. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.ts +3 -3
  300. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts +4 -1
  301. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.ts +9 -0
  302. package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +2 -2
  303. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.ts +3 -7
  304. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.ts +3 -3
  305. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts +4 -1
  306. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.ts +10 -1
  307. package/src/barretenberg_wasm/fetch_code/browser/index.ts +3 -3
  308. package/src/barretenberg_wasm/fetch_code/node/index.ts +1 -1
  309. package/src/barretenberg_wasm/helpers/browser/index.ts +9 -0
  310. package/src/barretenberg_wasm/helpers/node/index.ts +11 -0
  311. package/src/barretenberg_wasm/index.ts +3 -19
  312. package/src/crs/node/index.ts +5 -5
  313. package/src/index.ts +1 -0
  314. package/src/log/browser/index.ts +35 -0
  315. package/src/log/index.ts +1 -0
  316. package/src/log/node/index.ts +41 -0
  317. package/src/log/types.ts +6 -0
  318. package/src/main.ts +33 -50
  319. package/dest/browser/barretenberg-threads.js +0 -5
  320. package/dest/browser/barretenberg.js +0 -5
  321. package/dest/browser/index.js.LICENSE.txt +0 -16
  322. package/dest/browser/main.worker.js +0 -1316
  323. package/dest/browser/main.worker.js.LICENSE.txt +0 -5
  324. package/dest/browser/thread.worker.js +0 -1200
  325. package/dest/browser/thread.worker.js.LICENSE.txt +0 -5
@@ -408,7 +408,7 @@ export class BarretenbergApi {
408
408
  return out[0];
409
409
  }
410
410
 
411
- async acirProveUltraKeccakZKHonk(acirVec: Uint8Array, witnessVec: Uint8Array): Promise<Uint8Array> {
411
+ async acirProveUltraKeccakZkHonk(acirVec: Uint8Array, witnessVec: Uint8Array): Promise<Uint8Array> {
412
412
  const inArgs = [acirVec, witnessVec].map(serializeBufferable);
413
413
  const outTypes: OutputType[] = [BufferDeserializer()];
414
414
  const result = await this.wasm.callWasmExport(
@@ -432,6 +432,18 @@ export class BarretenbergApi {
432
432
  return out[0];
433
433
  }
434
434
 
435
+ async acirProveUltraStarknetZkHonk(acirVec: Uint8Array, witnessVec: Uint8Array): Promise<Uint8Array> {
436
+ const inArgs = [acirVec, witnessVec].map(serializeBufferable);
437
+ const outTypes: OutputType[] = [BufferDeserializer()];
438
+ const result = await this.wasm.callWasmExport(
439
+ 'acir_prove_ultra_starknet_zk_honk',
440
+ inArgs,
441
+ outTypes.map(t => t.SIZE_IN_BYTES),
442
+ );
443
+ const out = result.map((r, i) => outTypes[i].fromBuffer(r));
444
+ return out[0];
445
+ }
446
+
435
447
  async acirVerifyUltraHonk(proofBuf: Uint8Array, vkBuf: Uint8Array): Promise<boolean> {
436
448
  const inArgs = [proofBuf, vkBuf].map(serializeBufferable);
437
449
  const outTypes: OutputType[] = [BoolDeserializer()];
@@ -456,7 +468,7 @@ export class BarretenbergApi {
456
468
  return out[0];
457
469
  }
458
470
 
459
- async acirVerifyUltraKeccakZKHonk(proofBuf: Uint8Array, vkBuf: Uint8Array): Promise<boolean> {
471
+ async acirVerifyUltraKeccakZkHonk(proofBuf: Uint8Array, vkBuf: Uint8Array): Promise<boolean> {
460
472
  const inArgs = [proofBuf, vkBuf].map(serializeBufferable);
461
473
  const outTypes: OutputType[] = [BoolDeserializer()];
462
474
  const result = await this.wasm.callWasmExport(
@@ -480,6 +492,18 @@ export class BarretenbergApi {
480
492
  return out[0];
481
493
  }
482
494
 
495
+ async acirVerifyUltraStarknetZkHonk(proofBuf: Uint8Array, vkBuf: Uint8Array): Promise<boolean> {
496
+ const inArgs = [proofBuf, vkBuf].map(serializeBufferable);
497
+ const outTypes: OutputType[] = [BoolDeserializer()];
498
+ const result = await this.wasm.callWasmExport(
499
+ 'acir_verify_ultra_starknet_zk_honk',
500
+ inArgs,
501
+ outTypes.map(t => t.SIZE_IN_BYTES),
502
+ );
503
+ const out = result.map((r, i) => outTypes[i].fromBuffer(r));
504
+ return out[0];
505
+ }
506
+
483
507
  async acirWriteVkUltraHonk(acirVec: Uint8Array): Promise<Uint8Array> {
484
508
  const inArgs = [acirVec].map(serializeBufferable);
485
509
  const outTypes: OutputType[] = [BufferDeserializer()];
@@ -504,7 +528,7 @@ export class BarretenbergApi {
504
528
  return out[0];
505
529
  }
506
530
 
507
- async acirWriteVkUltraKeccakZKHonk(acirVec: Uint8Array): Promise<Uint8Array> {
531
+ async acirWriteVkUltraKeccakZkHonk(acirVec: Uint8Array): Promise<Uint8Array> {
508
532
  const inArgs = [acirVec].map(serializeBufferable);
509
533
  const outTypes: OutputType[] = [BufferDeserializer()];
510
534
  const result = await this.wasm.callWasmExport(
@@ -528,6 +552,18 @@ export class BarretenbergApi {
528
552
  return out[0];
529
553
  }
530
554
 
555
+ async acirWriteVkUltraStarknetZkHonk(acirVec: Uint8Array): Promise<Uint8Array> {
556
+ const inArgs = [acirVec].map(serializeBufferable);
557
+ const outTypes: OutputType[] = [BufferDeserializer()];
558
+ const result = await this.wasm.callWasmExport(
559
+ 'acir_write_vk_ultra_starknet_zk_honk',
560
+ inArgs,
561
+ outTypes.map(t => t.SIZE_IN_BYTES),
562
+ );
563
+ const out = result.map((r, i) => outTypes[i].fromBuffer(r));
564
+ return out[0];
565
+ }
566
+
531
567
  async acirProofAsFieldsUltraHonk(proofBuf: Uint8Array): Promise<Fr[]> {
532
568
  const inArgs = [proofBuf].map(serializeBufferable);
533
569
  const outTypes: OutputType[] = [VectorDeserializer(Fr)];
@@ -964,7 +1000,7 @@ export class BarretenbergApiSync {
964
1000
  return out[0];
965
1001
  }
966
1002
 
967
- acirProveUltraKeccakZKHonk(acirVec: Uint8Array, witnessVec: Uint8Array): Uint8Array {
1003
+ acirProveUltraKeccakZkHonk(acirVec: Uint8Array, witnessVec: Uint8Array): Uint8Array {
968
1004
  const inArgs = [acirVec, witnessVec].map(serializeBufferable);
969
1005
  const outTypes: OutputType[] = [BufferDeserializer()];
970
1006
  const result = this.wasm.callWasmExport(
@@ -976,11 +1012,23 @@ export class BarretenbergApiSync {
976
1012
  return out[0];
977
1013
  }
978
1014
 
979
- acirProveUltraKeccakZkHonk(acirVec: Uint8Array, witnessVec: Uint8Array): Uint8Array {
1015
+ acirProveUltraStarknetHonk(acirVec: Uint8Array, witnessVec: Uint8Array): Uint8Array {
980
1016
  const inArgs = [acirVec, witnessVec].map(serializeBufferable);
981
1017
  const outTypes: OutputType[] = [BufferDeserializer()];
982
1018
  const result = this.wasm.callWasmExport(
983
- 'acir_prove_ultra_keccak_zk_honk',
1019
+ 'acir_prove_ultra_starknet_honk',
1020
+ inArgs,
1021
+ outTypes.map(t => t.SIZE_IN_BYTES),
1022
+ );
1023
+ const out = result.map((r, i) => outTypes[i].fromBuffer(r));
1024
+ return out[0];
1025
+ }
1026
+
1027
+ acirProveUltraStarknetZkHonk(acirVec: Uint8Array, witnessVec: Uint8Array): Uint8Array {
1028
+ const inArgs = [acirVec, witnessVec].map(serializeBufferable);
1029
+ const outTypes: OutputType[] = [BufferDeserializer()];
1030
+ const result = this.wasm.callWasmExport(
1031
+ 'acir_prove_ultra_starknet_zk_honk',
984
1032
  inArgs,
985
1033
  outTypes.map(t => t.SIZE_IN_BYTES),
986
1034
  );
@@ -1000,7 +1048,19 @@ export class BarretenbergApiSync {
1000
1048
  return out[0];
1001
1049
  }
1002
1050
 
1003
- acirVerifyUltraKeccakZKHonk(proofBuf: Uint8Array, vkBuf: Uint8Array): boolean {
1051
+ acirVerifyUltraKeccakHonk(proofBuf: Uint8Array, vkBuf: Uint8Array): boolean {
1052
+ const inArgs = [proofBuf, vkBuf].map(serializeBufferable);
1053
+ const outTypes: OutputType[] = [BoolDeserializer()];
1054
+ const result = this.wasm.callWasmExport(
1055
+ 'acir_verify_ultra_keccak_honk',
1056
+ inArgs,
1057
+ outTypes.map(t => t.SIZE_IN_BYTES),
1058
+ );
1059
+ const out = result.map((r, i) => outTypes[i].fromBuffer(r));
1060
+ return out[0];
1061
+ }
1062
+
1063
+ acirVerifyUltraKeccakZkHonk(proofBuf: Uint8Array, vkBuf: Uint8Array): boolean {
1004
1064
  const inArgs = [proofBuf, vkBuf].map(serializeBufferable);
1005
1065
  const outTypes: OutputType[] = [BoolDeserializer()];
1006
1066
  const result = this.wasm.callWasmExport(
@@ -1012,6 +1072,30 @@ export class BarretenbergApiSync {
1012
1072
  return out[0];
1013
1073
  }
1014
1074
 
1075
+ acirVerifyUltraStarknetHonk(proofBuf: Uint8Array, vkBuf: Uint8Array): boolean {
1076
+ const inArgs = [proofBuf, vkBuf].map(serializeBufferable);
1077
+ const outTypes: OutputType[] = [BoolDeserializer()];
1078
+ const result = this.wasm.callWasmExport(
1079
+ 'acir_verify_ultra_starknet_honk',
1080
+ inArgs,
1081
+ outTypes.map(t => t.SIZE_IN_BYTES),
1082
+ );
1083
+ const out = result.map((r, i) => outTypes[i].fromBuffer(r));
1084
+ return out[0];
1085
+ }
1086
+
1087
+ acirVerifyUltraStarknetZkHonk(proofBuf: Uint8Array, vkBuf: Uint8Array): boolean {
1088
+ const inArgs = [proofBuf, vkBuf].map(serializeBufferable);
1089
+ const outTypes: OutputType[] = [BoolDeserializer()];
1090
+ const result = this.wasm.callWasmExport(
1091
+ 'acir_verify_ultra_starknet_zk_honk',
1092
+ inArgs,
1093
+ outTypes.map(t => t.SIZE_IN_BYTES),
1094
+ );
1095
+ const out = result.map((r, i) => outTypes[i].fromBuffer(r));
1096
+ return out[0];
1097
+ }
1098
+
1015
1099
  acirWriteVkUltraHonk(acirVec: Uint8Array): Uint8Array {
1016
1100
  const inArgs = [acirVec].map(serializeBufferable);
1017
1101
  const outTypes: OutputType[] = [BufferDeserializer()];
@@ -1036,7 +1120,7 @@ export class BarretenbergApiSync {
1036
1120
  return out[0];
1037
1121
  }
1038
1122
 
1039
- acirWriteVkUltraKeccakZKHonk(acirVec: Uint8Array): Uint8Array {
1123
+ acirWriteVkUltraKeccakZkHonk(acirVec: Uint8Array): Uint8Array {
1040
1124
  const inArgs = [acirVec].map(serializeBufferable);
1041
1125
  const outTypes: OutputType[] = [BufferDeserializer()];
1042
1126
  const result = this.wasm.callWasmExport(
@@ -1048,6 +1132,30 @@ export class BarretenbergApiSync {
1048
1132
  return out[0];
1049
1133
  }
1050
1134
 
1135
+ acirWriteVkUltraStarknetHonk(acirVec: Uint8Array): Uint8Array {
1136
+ const inArgs = [acirVec].map(serializeBufferable);
1137
+ const outTypes: OutputType[] = [BufferDeserializer()];
1138
+ const result = this.wasm.callWasmExport(
1139
+ 'acir_write_vk_ultra_starknet_honk',
1140
+ inArgs,
1141
+ outTypes.map(t => t.SIZE_IN_BYTES),
1142
+ );
1143
+ const out = result.map((r, i) => outTypes[i].fromBuffer(r));
1144
+ return out[0];
1145
+ }
1146
+
1147
+ acirWriteVkUltraStarknetZkHonk(acirVec: Uint8Array): Uint8Array {
1148
+ const inArgs = [acirVec].map(serializeBufferable);
1149
+ const outTypes: OutputType[] = [BufferDeserializer()];
1150
+ const result = this.wasm.callWasmExport(
1151
+ 'acir_write_vk_ultra_starknet_zk_honk',
1152
+ inArgs,
1153
+ outTypes.map(t => t.SIZE_IN_BYTES),
1154
+ );
1155
+ const out = result.map((r, i) => outTypes[i].fromBuffer(r));
1156
+ return out[0];
1157
+ }
1158
+
1051
1159
  acirProofAsFieldsUltraHonk(proofBuf: Uint8Array): Fr[] {
1052
1160
  const inArgs = [proofBuf].map(serializeBufferable);
1053
1161
  const outTypes: OutputType[] = [VectorDeserializer(Fr)];
@@ -1,4 +1,4 @@
1
- import createDebug from 'debug';
1
+ import { createDebugLogger } from '../../log/index.js';
2
2
  import { randomBytes } from '../../random/index.js';
3
3
 
4
4
  /**
@@ -9,7 +9,7 @@ export class BarretenbergWasmBase {
9
9
  protected memStore: { [key: string]: Uint8Array } = {};
10
10
  protected memory!: WebAssembly.Memory;
11
11
  protected instance!: WebAssembly.Instance;
12
- protected logger: (msg: string) => void = createDebug('bb.js:bb_wasm_base');
12
+ protected logger: (msg: string) => void = createDebugLogger('bb_wasm_base');
13
13
 
14
14
  protected getImportObj(memory: WebAssembly.Memory) {
15
15
  /* eslint-disable camelcase */
@@ -1,15 +1,11 @@
1
- import debug from 'debug';
1
+ import { logOptions } from '../../../../log/index.js';
2
2
  import { readinessListener } from '../../../helpers/browser/index.js';
3
3
 
4
4
  export async function createMainWorker() {
5
5
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
6
6
  // @ts-ignore
7
- const worker = new Worker(new URL(/* webpackIgnore: true */ './main.worker.js', import.meta.url), {
8
- type: 'module',
9
- });
10
- const debugStr = debug.disable();
11
- debug.enable(debugStr);
12
- worker.postMessage({ debug: debugStr });
7
+ const worker = new Worker(new URL('./main.worker.js', import.meta.url), { type: 'module' });
8
+ worker.postMessage({ log: logOptions });
13
9
  await new Promise<void>(resolve => readinessListener(worker, resolve));
14
10
  return worker;
15
11
  }
@@ -1,11 +1,11 @@
1
1
  import { expose } from 'comlink';
2
2
  import { BarretenbergWasmMain } from '../../index.js';
3
- import debug from 'debug';
4
3
  import { Ready } from '../../../helpers/browser/index.js';
4
+ import { initLogger } from '../../../../log/browser/index.js';
5
5
 
6
6
  addEventListener('message', e => {
7
- if (e.data.debug) {
8
- debug.enable(e.data.debug);
7
+ if (e.data.log) {
8
+ initLogger(e.data.log);
9
9
  }
10
10
  });
11
11
 
@@ -1,6 +1,7 @@
1
1
  import { Worker } from 'worker_threads';
2
2
  import { dirname } from 'path';
3
3
  import { fileURLToPath } from 'url';
4
+ import { logOptions } from '../../../../log/index.js';
4
5
 
5
6
  function getCurrentDir() {
6
7
  if (typeof __dirname !== 'undefined') {
@@ -14,5 +15,7 @@ function getCurrentDir() {
14
15
 
15
16
  export function createMainWorker() {
16
17
  const __dirname = getCurrentDir();
17
- return Promise.resolve(new Worker(__dirname + `/main.worker.js`));
18
+ const worker = new Worker(__dirname + `/main.worker.js`);
19
+ worker.postMessage({ log: logOptions });
20
+ return Promise.resolve(worker);
18
21
  }
@@ -2,9 +2,18 @@ import { parentPort } from 'worker_threads';
2
2
  import { expose } from 'comlink';
3
3
  import { BarretenbergWasmMain } from '../../index.js';
4
4
  import { nodeEndpoint } from '../../../helpers/node/node_endpoint.js';
5
+ import { initLogger } from '../../../../log/node/index.js';
5
6
 
6
7
  if (!parentPort) {
7
8
  throw new Error('No parentPort');
8
9
  }
9
10
 
11
+ const endpoint = nodeEndpoint(parentPort);
12
+
13
+ endpoint.addEventListener('message', (e: any) => {
14
+ if (e.data.log) {
15
+ initLogger(e.data.log);
16
+ }
17
+ });
18
+
10
19
  expose(new BarretenbergWasmMain(), nodeEndpoint(parentPort));
@@ -1,11 +1,11 @@
1
1
  import { type Worker } from 'worker_threads';
2
- import createDebug from 'debug';
3
2
  import { Remote } from 'comlink';
4
3
  import { getNumCpu, getRemoteBarretenbergWasm, getSharedMemoryAvailable } from '../helpers/index.js';
5
4
  import { createThreadWorker } from '../barretenberg_wasm_thread/factory/node/index.js';
6
5
  import { type BarretenbergWasmThreadWorker } from '../barretenberg_wasm_thread/index.js';
7
6
  import { BarretenbergWasmBase } from '../barretenberg_wasm_base/index.js';
8
7
  import { HeapAllocator } from './heap_allocator.js';
8
+ import { createDebugLogger } from '../../log/index.js';
9
9
 
10
10
  /**
11
11
  * This is the "main thread" implementation of BarretenbergWasm.
@@ -29,7 +29,7 @@ export class BarretenbergWasmMain extends BarretenbergWasmBase {
29
29
  public async init(
30
30
  module: WebAssembly.Module,
31
31
  threads = Math.min(getNumCpu(), BarretenbergWasmMain.MAX_THREADS),
32
- logger: (msg: string) => void = createDebug('bb.js:bb_wasm'),
32
+ logger: (msg: string) => void = createDebugLogger('bb_wasm'),
33
33
  initial = 32,
34
34
  maximum = 2 ** 16,
35
35
  ) {
@@ -1,15 +1,11 @@
1
- import debug from 'debug';
1
+ import { logOptions } from '../../../../log/index.js';
2
2
  import { readinessListener } from '../../../helpers/browser/index.js';
3
3
 
4
4
  export async function createThreadWorker() {
5
5
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
6
6
  // @ts-ignore
7
- const worker = new Worker(new URL(/* webpackIgnore: true */ './thread.worker.js', import.meta.url), {
8
- type: 'module',
9
- });
10
- const debugStr = debug.disable();
11
- debug.enable(debugStr);
12
- worker.postMessage({ debug: debugStr });
7
+ const worker = new Worker(new URL('./thread.worker.js', import.meta.url), { type: 'module' });
8
+ worker.postMessage({ log: logOptions });
13
9
  await new Promise<void>(resolve => readinessListener(worker, resolve));
14
10
  return worker;
15
11
  }
@@ -1,11 +1,11 @@
1
1
  import { expose } from 'comlink';
2
2
  import { BarretenbergWasmThread } from '../../index.js';
3
- import debug from 'debug';
4
3
  import { Ready } from '../../../helpers/browser/index.js';
4
+ import { initLogger } from '../../../../log/browser/index.js';
5
5
 
6
6
  addEventListener('message', e => {
7
- if (e.data.debug) {
8
- debug.enable(e.data.debug);
7
+ if (e.data.log) {
8
+ initLogger(e.data.log);
9
9
  }
10
10
  });
11
11
 
@@ -1,6 +1,7 @@
1
1
  import { Worker } from 'worker_threads';
2
2
  import { dirname } from 'path';
3
3
  import { fileURLToPath } from 'url';
4
+ import { logOptions } from '../../../../log/index.js';
4
5
 
5
6
  function getCurrentDir() {
6
7
  if (typeof __dirname !== 'undefined') {
@@ -14,5 +15,7 @@ function getCurrentDir() {
14
15
 
15
16
  export function createThreadWorker() {
16
17
  const __dirname = getCurrentDir();
17
- return Promise.resolve(new Worker(__dirname + `/thread.worker.js`));
18
+ const worker = new Worker(__dirname + `/thread.worker.js`);
19
+ worker.postMessage({ log: logOptions });
20
+ return Promise.resolve(worker);
18
21
  }
@@ -2,9 +2,18 @@ import { parentPort } from 'worker_threads';
2
2
  import { expose } from 'comlink';
3
3
  import { BarretenbergWasmThread } from '../../index.js';
4
4
  import { nodeEndpoint } from '../../../helpers/node/node_endpoint.js';
5
+ import { initLogger } from '../../../../log/node/index.js';
5
6
 
6
7
  if (!parentPort) {
7
8
  throw new Error('No parentPort');
8
9
  }
9
10
 
10
- expose(new BarretenbergWasmThread(), nodeEndpoint(parentPort));
11
+ const endpoint = nodeEndpoint(parentPort);
12
+
13
+ endpoint.addEventListener('message', (e: any) => {
14
+ if (e.data.log) {
15
+ initLogger(e.data.log);
16
+ }
17
+ });
18
+
19
+ expose(new BarretenbergWasmThread(), endpoint);
@@ -12,8 +12,8 @@ export async function fetchCode(multithreaded: boolean, wasmPath?: string) {
12
12
  url = `${filePath}/${fileName}${suffix}.${extensions.join('.')}`;
13
13
  } else {
14
14
  url = multithreaded
15
- ? (await import(/* webpackIgnore: true */ './barretenberg-threads.js')).default
16
- : (await import(/* webpackIgnore: true */ './barretenberg.js')).default;
15
+ ? (await import('./barretenberg-threads.js')).default
16
+ : (await import('./barretenberg.js')).default;
17
17
  }
18
18
  const res = await fetch(url);
19
19
  // Default bb wasm is compressed, but user could point it to a non-compressed version
@@ -27,7 +27,7 @@ export async function fetchCode(multithreaded: boolean, wasmPath?: string) {
27
27
  buffer[2] === 0x08;
28
28
  if (isGzip) {
29
29
  const decompressedData = pako.ungzip(buffer);
30
- return decompressedData.buffer;
30
+ return decompressedData.buffer as unknown as Uint8Array<ArrayBuffer>;
31
31
  } else {
32
32
  return buffer;
33
33
  }
@@ -27,7 +27,7 @@ export async function fetchCode(multithreaded: boolean, wasmPath?: string) {
27
27
  buffer[2] === 0x08;
28
28
  if (isGzip) {
29
29
  const decompressedData = pako.ungzip(buffer);
30
- return decompressedData.buffer;
30
+ return decompressedData.buffer as unknown as Uint8Array<ArrayBuffer>;
31
31
  } else {
32
32
  return buffer;
33
33
  }
@@ -21,6 +21,15 @@ export function killSelf() {
21
21
  self.close();
22
22
  }
23
23
 
24
+ export function getAvailableThreads(logger: (msg: string) => void): number {
25
+ if (typeof navigator !== 'undefined' && navigator.hardwareConcurrency) {
26
+ return navigator.hardwareConcurrency;
27
+ } else {
28
+ logger(`Could not detect environment to query number of threads. Falling back to one thread.`);
29
+ return 1;
30
+ }
31
+ }
32
+
24
33
  // Solution to async initialization of workers, taken from
25
34
  // https://github.com/GoogleChromeLabs/comlink/issues/635#issuecomment-1598913044
26
35
 
@@ -42,3 +42,14 @@ export function killSelf(): never {
42
42
  process.kill(process.pid);
43
43
  throw new Error();
44
44
  }
45
+
46
+ export function getAvailableThreads(logger: (msg: string) => void): number {
47
+ try {
48
+ return os.cpus().length;
49
+ } catch (e: any) {
50
+ logger(
51
+ `Could not detect environment to query number of threads. Falling back to one thread. Error: ${e.message ?? e}`,
52
+ );
53
+ return 1;
54
+ }
55
+ }
@@ -1,11 +1,11 @@
1
- import createDebug from 'debug';
2
- import { getSharedMemoryAvailable } from './helpers/node/index.js';
1
+ import { getSharedMemoryAvailable, getAvailableThreads } from './helpers/node/index.js';
3
2
  import { fetchCode } from './fetch_code/index.js';
3
+ import { createDebugLogger } from '../log/index.js';
4
4
 
5
5
  export async function fetchModuleAndThreads(
6
6
  desiredThreads = 32,
7
7
  wasmPath?: string,
8
- logger: (msg: string) => void = createDebug('bb.js:fetch_mat'),
8
+ logger: (msg: string) => void = createDebugLogger('fetch_mat'),
9
9
  ) {
10
10
  const shared = getSharedMemoryAvailable();
11
11
 
@@ -20,19 +20,3 @@ export async function fetchModuleAndThreads(
20
20
  logger('Compilation of bb wasm complete');
21
21
  return { module, threads: limitedThreads };
22
22
  }
23
-
24
- async function getAvailableThreads(logger: (msg: string) => void): Promise<number> {
25
- if (typeof navigator !== 'undefined' && navigator.hardwareConcurrency) {
26
- return navigator.hardwareConcurrency;
27
- } else {
28
- try {
29
- const os = await import('os');
30
- return os.cpus().length;
31
- } catch (e: any) {
32
- logger(
33
- `Could not detect environment to query number of threads. Falling back to one thread. Error: ${e.message ?? e}`,
34
- );
35
- return 1;
36
- }
37
- }
38
- }
@@ -2,9 +2,9 @@ import { NetCrs, NetGrumpkinCrs } from '../net_crs.js';
2
2
  import { closeSync, mkdirSync, openSync, readFileSync, readSync, writeFileSync, createWriteStream } from 'fs';
3
3
  import { stat } from 'fs/promises';
4
4
  import { Readable } from 'stream';
5
- import createDebug from 'debug';
6
5
  import { homedir } from 'os';
7
6
  import { finished } from 'stream/promises';
7
+ import { createDebugLogger } from '../../log/index.js';
8
8
 
9
9
  /**
10
10
  * Generic CRS finder utility class.
@@ -13,13 +13,13 @@ export class Crs {
13
13
  constructor(
14
14
  public readonly numPoints: number,
15
15
  public readonly path: string,
16
- private readonly logger: (msg: string) => void = createDebug('bb.js:crs'),
16
+ private readonly logger: (msg: string) => void = createDebugLogger('crs'),
17
17
  ) {}
18
18
 
19
19
  static async new(
20
20
  numPoints: number,
21
21
  crsPath = homedir() + '/.bb-crs',
22
- logger: (msg: string) => void = createDebug('bb.js:crs'),
22
+ logger: (msg: string) => void = createDebugLogger('crs'),
23
23
  ) {
24
24
  const crs = new Crs(numPoints, crsPath, logger);
25
25
  await crs.init();
@@ -82,13 +82,13 @@ export class GrumpkinCrs {
82
82
  constructor(
83
83
  public readonly numPoints: number,
84
84
  public readonly path: string,
85
- private readonly logger: (msg: string) => void = createDebug('bb.js:crs'),
85
+ private readonly logger: (msg: string) => void = createDebugLogger('crs'),
86
86
  ) {}
87
87
 
88
88
  static async new(
89
89
  numPoints: number,
90
90
  crsPath = homedir() + '/.bb-crs',
91
- logger: (msg: string) => void = createDebug('bb.js:crs'),
91
+ logger: (msg: string) => void = createDebugLogger('crs'),
92
92
  ) {
93
93
  const crs = new GrumpkinCrs(numPoints, crsPath, logger);
94
94
  await crs.init();
package/src/index.ts CHANGED
@@ -8,5 +8,6 @@ export {
8
8
  AztecClientBackend,
9
9
  } from './barretenberg/index.js';
10
10
 
11
+ export { randomBytes } from './random/index.js';
11
12
  export { RawBuffer, Fr } from './types/index.js';
12
13
  export { splitHonkProof, reconstructHonkProof, deflattenFields, type ProofData } from './proof/index.js';
@@ -0,0 +1,35 @@
1
+ import { pino } from 'pino';
2
+ import { LogOptions } from '../types.js';
3
+ import { Logger } from 'pino';
4
+
5
+ const defaultOptions = {
6
+ name: 'bb.js',
7
+ useOnlyCustomLevels: false,
8
+ customLevels: { verbose: 25 },
9
+ browser: { asObject: false },
10
+ };
11
+
12
+ // Options must be exposed so they can be provided to threads upon creation
13
+ // This way we ensure all loggers are spawned with the same options
14
+ export let logOptions: LogOptions | undefined;
15
+
16
+ let logger: Logger<'verbose'> | undefined;
17
+
18
+ export function initLogger({ level = 'info' }: LogOptions = { level: 'info', useStdErr: false }) {
19
+ if (logger) {
20
+ return logger;
21
+ }
22
+ logOptions = { level, useStdErr: false };
23
+ logger = pino({ ...defaultOptions, level });
24
+ }
25
+
26
+ export function createDebugLogger(name: string) {
27
+ initLogger();
28
+
29
+ const sublogger = logger!.child({
30
+ name,
31
+ });
32
+ return (msg: string) => {
33
+ sublogger.debug(msg);
34
+ };
35
+ }
@@ -0,0 +1 @@
1
+ export { initLogger, createDebugLogger, logOptions } from './node/index.js';
@@ -0,0 +1,41 @@
1
+ import { Logger, pino } from 'pino';
2
+ import { LogLevels, LogOptions } from '../types.js';
3
+
4
+ const defaultOptions = {
5
+ name: 'bb.js',
6
+ useOnlyCustomLevels: false,
7
+ customLevels: { verbose: 25 },
8
+ };
9
+
10
+ const defaultLevel = (process.env.LOG_LEVEL || 'info') as LogLevels;
11
+
12
+ // Options must be exposed so they can be provided to threads upon creation
13
+ // This way we ensure all loggers are spawned with the same options
14
+ export let logOptions: LogOptions | undefined;
15
+
16
+ let logger: Logger<'verbose'> | undefined;
17
+
18
+ export function initLogger(
19
+ { level = defaultLevel, useStdErr = false }: LogOptions = { level: defaultLevel, useStdErr: false },
20
+ ) {
21
+ if (logger) {
22
+ return logger;
23
+ }
24
+ logOptions = { level, useStdErr };
25
+ const transport = pino.transport({
26
+ target: 'pino/file',
27
+ options: { destination: useStdErr ? 2 : 1 },
28
+ });
29
+ logger = pino({ ...defaultOptions, level }, transport);
30
+ }
31
+
32
+ export function createDebugLogger(name: string) {
33
+ initLogger();
34
+
35
+ const sublogger = logger!.child({
36
+ name,
37
+ });
38
+ return (msg: string) => {
39
+ sublogger.debug(msg);
40
+ };
41
+ }
@@ -0,0 +1,6 @@
1
+ export type LogLevels = 'silent' | 'info' | 'debug' | 'warn' | 'error' | 'trace' | 'verbose';
2
+
3
+ export type LogOptions = {
4
+ level: LogLevels;
5
+ useStdErr: boolean;
6
+ };