@aztec/bb.js 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (343) hide show
  1. package/README.md +29 -24
  2. package/dest/browser/barretenberg/index.d.ts +20 -0
  3. package/dest/browser/barretenberg/index.d.ts.map +1 -0
  4. package/dest/browser/barretenberg_api/index.d.ts +1 -51
  5. package/dest/browser/barretenberg_api/index.d.ts.map +1 -1
  6. package/dest/browser/barretenberg_binder/heap_allocator.d.ts +1 -1
  7. package/dest/browser/barretenberg_binder/heap_allocator.d.ts.map +1 -1
  8. package/dest/browser/barretenberg_binder/index.d.ts +1 -7
  9. package/dest/browser/barretenberg_binder/index.d.ts.map +1 -1
  10. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +40 -0
  11. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -0
  12. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +2 -0
  13. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -0
  14. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +3 -0
  15. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts.map +1 -0
  16. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +4 -0
  17. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -0
  18. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +37 -0
  19. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -0
  20. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +4 -0
  21. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -0
  22. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +28 -0
  23. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -0
  24. package/dest/browser/barretenberg_wasm/fetch_code/index.d.ts +2 -0
  25. package/dest/browser/barretenberg_wasm/fetch_code/index.d.ts.map +1 -0
  26. package/dest/browser/barretenberg_wasm/fetch_code/node/index.d.ts +3 -0
  27. package/dest/browser/barretenberg_wasm/fetch_code/node/index.d.ts.map +1 -0
  28. package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts +6 -0
  29. package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -0
  30. package/dest/browser/barretenberg_wasm/helpers/index.d.ts +2 -0
  31. package/dest/browser/barretenberg_wasm/helpers/index.d.ts.map +1 -0
  32. package/dest/{node/barretenberg_wasm → browser/barretenberg_wasm/helpers}/node/index.d.ts +7 -5
  33. package/dest/browser/barretenberg_wasm/helpers/node/index.d.ts.map +1 -0
  34. package/dest/browser/barretenberg_wasm/{node → helpers/node}/node_endpoint.d.ts +2 -2
  35. package/dest/browser/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -0
  36. package/dest/browser/barretenberg_wasm/index.d.ts +13 -1
  37. package/dest/browser/barretenberg_wasm/index.d.ts.map +1 -1
  38. package/dest/browser/crs/browser/cached_net_crs.d.ts +1 -1
  39. package/dest/browser/crs/browser/cached_net_crs.d.ts.map +1 -1
  40. package/dest/browser/crs/index.d.ts +1 -1
  41. package/dest/browser/crs/index.d.ts.map +1 -1
  42. package/dest/browser/index.d.ts +2 -4
  43. package/dest/browser/index.d.ts.map +1 -1
  44. package/dest/browser/index.js +2 -6
  45. package/dest/browser/index.js.LICENSE.txt +14 -0
  46. package/dest/browser/index.worker.js.LICENSE.txt +5 -0
  47. package/dest/browser/index.worker.worker.js.LICENSE.txt +5 -0
  48. package/dest/browser/random/index.d.ts +1 -1
  49. package/dest/browser/random/index.d.ts.map +1 -1
  50. package/dest/browser/types/index.d.ts +1 -1
  51. package/dest/browser/types/index.d.ts.map +1 -1
  52. package/dest/{node/types/node → browser/types}/point.d.ts +2 -2
  53. package/dest/browser/types/point.d.ts.map +1 -0
  54. package/dest/node/barretenberg/index.d.ts +20 -0
  55. package/dest/node/barretenberg/index.d.ts.map +1 -0
  56. package/dest/node/barretenberg/index.js +38 -0
  57. package/dest/node/barretenberg-threads.wasm +0 -0
  58. package/dest/node/barretenberg_api/blake2s.test.js +7 -7
  59. package/dest/node/barretenberg_api/common.test.js +3 -3
  60. package/dest/node/barretenberg_api/index.d.ts +1 -51
  61. package/dest/node/barretenberg_api/index.d.ts.map +1 -1
  62. package/dest/node/barretenberg_api/index.js +1 -189
  63. package/dest/node/barretenberg_api/pedersen.test.js +29 -29
  64. package/dest/node/barretenberg_api/schnorr.test.js +37 -36
  65. package/dest/node/barretenberg_binder/heap_allocator.d.ts +1 -1
  66. package/dest/node/barretenberg_binder/heap_allocator.d.ts.map +1 -1
  67. package/dest/node/barretenberg_binder/index.d.ts +1 -7
  68. package/dest/node/barretenberg_binder/index.d.ts.map +1 -1
  69. package/dest/node/barretenberg_binder/index.js +10 -30
  70. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +40 -0
  71. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -0
  72. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.js +123 -0
  73. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +2 -0
  74. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -0
  75. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +10 -0
  76. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +3 -0
  77. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts.map +1 -0
  78. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +12 -0
  79. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +4 -0
  80. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -0
  81. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +8 -0
  82. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +2 -0
  83. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts.map +1 -0
  84. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +9 -0
  85. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +37 -0
  86. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -0
  87. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +83 -0
  88. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +2 -0
  89. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -0
  90. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +10 -0
  91. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +3 -0
  92. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts.map +1 -0
  93. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +12 -0
  94. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +4 -0
  95. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -0
  96. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +8 -0
  97. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +2 -0
  98. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts.map +1 -0
  99. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +9 -0
  100. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +28 -0
  101. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -0
  102. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.js +40 -0
  103. package/dest/node/barretenberg_wasm/fetch_code/browser/index.d.ts +2 -0
  104. package/dest/node/barretenberg_wasm/fetch_code/browser/index.d.ts.map +1 -0
  105. package/dest/node/barretenberg_wasm/fetch_code/browser/index.js +9 -0
  106. package/dest/node/barretenberg_wasm/fetch_code/index.d.ts +2 -0
  107. package/dest/node/barretenberg_wasm/fetch_code/index.d.ts.map +1 -0
  108. package/dest/node/barretenberg_wasm/fetch_code/index.js +2 -0
  109. package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts +3 -0
  110. package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts.map +1 -0
  111. package/dest/node/barretenberg_wasm/fetch_code/node/index.js +9 -0
  112. package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts +6 -0
  113. package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -0
  114. package/dest/node/barretenberg_wasm/helpers/browser/index.js +18 -0
  115. package/dest/node/barretenberg_wasm/helpers/index.d.ts +2 -0
  116. package/dest/node/barretenberg_wasm/helpers/index.d.ts.map +1 -0
  117. package/dest/node/barretenberg_wasm/helpers/index.js +2 -0
  118. package/dest/{browser/barretenberg_wasm → node/barretenberg_wasm/helpers}/node/index.d.ts +7 -5
  119. package/dest/node/barretenberg_wasm/helpers/node/index.d.ts.map +1 -0
  120. package/dest/node/barretenberg_wasm/helpers/node/index.js +36 -0
  121. package/dest/node/barretenberg_wasm/{node → helpers/node}/node_endpoint.d.ts +2 -2
  122. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -0
  123. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.js +28 -0
  124. package/dest/node/barretenberg_wasm/index.d.ts +13 -1
  125. package/dest/node/barretenberg_wasm/index.d.ts.map +1 -1
  126. package/dest/node/barretenberg_wasm/index.js +19 -2
  127. package/dest/node/barretenberg_wasm/index.test.d.ts +2 -0
  128. package/dest/node/barretenberg_wasm/index.test.d.ts.map +1 -0
  129. package/dest/node/barretenberg_wasm/index.test.js +38 -0
  130. package/dest/node/bindgen/typescript.d.ts.map +1 -1
  131. package/dest/node/bindgen/typescript.js +2 -35
  132. package/dest/node/crs/browser/cached_net_crs.d.ts +1 -1
  133. package/dest/node/crs/browser/cached_net_crs.d.ts.map +1 -1
  134. package/dest/node/crs/browser/cached_net_crs.js +2 -4
  135. package/dest/node/crs/index.d.ts.map +1 -1
  136. package/dest/node/crs/index.js +1 -1
  137. package/dest/node/examples/simple.rawtest.d.ts +2 -0
  138. package/dest/node/examples/simple.rawtest.d.ts.map +1 -0
  139. package/dest/node/examples/simple.rawtest.js +29 -0
  140. package/dest/node/examples/simple.test.js +5 -5
  141. package/dest/node/index.d.ts +2 -4
  142. package/dest/node/index.d.ts.map +1 -1
  143. package/dest/node/index.js +3 -5
  144. package/dest/node/info.json +22 -0
  145. package/dest/node/main.d.ts +2 -1
  146. package/dest/node/main.d.ts.map +1 -1
  147. package/dest/node/main.js +46 -26
  148. package/dest/node/random/index.d.ts.map +1 -1
  149. package/dest/node/random/index.js +1 -1
  150. package/dest/node/types/fields.js +5 -3
  151. package/dest/node/types/fixed_size_buffer.js +7 -4
  152. package/dest/node/types/index.d.ts +1 -1
  153. package/dest/node/types/index.d.ts.map +1 -1
  154. package/dest/node/types/index.js +2 -2
  155. package/dest/{browser/types/node → node/types}/point.d.ts +2 -2
  156. package/dest/node/types/point.d.ts.map +1 -0
  157. package/dest/node/types/point.js +32 -0
  158. package/dest/node/types/ptr.js +3 -2
  159. package/package.json +35 -27
  160. package/src/barretenberg/index.ts +42 -0
  161. package/src/barretenberg_api/blake2s.test.ts +7 -8
  162. package/src/barretenberg_api/common.test.ts +3 -3
  163. package/src/barretenberg_api/index.ts +1 -306
  164. package/src/barretenberg_api/pedersen.test.ts +31 -30
  165. package/src/barretenberg_api/schnorr.test.ts +73 -59
  166. package/src/barretenberg_binder/heap_allocator.ts +1 -1
  167. package/src/barretenberg_binder/index.ts +12 -29
  168. package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +136 -0
  169. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.ts +10 -0
  170. package/src/barretenberg_wasm/{browser/worker.ts → barretenberg_wasm_main/factory/browser/main.worker.ts} +4 -2
  171. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts +8 -0
  172. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.ts +10 -0
  173. package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +105 -0
  174. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.ts +10 -0
  175. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.ts +15 -0
  176. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts +8 -0
  177. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.ts +10 -0
  178. package/src/barretenberg_wasm/barretenberg_wasm_thread/index.ts +47 -0
  179. package/src/barretenberg_wasm/fetch_code/browser/index.ts +9 -0
  180. package/src/barretenberg_wasm/fetch_code/browser/wasm-module.d.ts +4 -0
  181. package/src/barretenberg_wasm/fetch_code/index.ts +1 -0
  182. package/src/barretenberg_wasm/fetch_code/node/index.ts +9 -0
  183. package/src/barretenberg_wasm/helpers/browser/index.ts +22 -0
  184. package/src/barretenberg_wasm/helpers/index.ts +1 -0
  185. package/src/barretenberg_wasm/{node → helpers/node}/index.ts +9 -14
  186. package/src/barretenberg_wasm/{barretenberg_wasm.test.ts → index.test.ts} +15 -27
  187. package/src/barretenberg_wasm/index.ts +22 -1
  188. package/src/bindgen/typescript.ts +1 -38
  189. package/src/crs/browser/cached_net_crs.ts +1 -3
  190. package/src/crs/index.ts +1 -1
  191. package/src/examples/simple.rawtest.ts +37 -0
  192. package/src/examples/simple.test.ts +5 -5
  193. package/src/index.ts +2 -4
  194. package/src/info.json +22 -0
  195. package/src/main.ts +48 -28
  196. package/src/random/index.ts +1 -1
  197. package/src/types/index.ts +1 -1
  198. package/src/types/{node/point.ts → point.ts} +2 -2
  199. package/dest/barretenberg-threads.wasm +0 -0
  200. package/dest/barretenberg.wasm +0 -0
  201. package/dest/browser/539.js +0 -2014
  202. package/dest/browser/995.js +0 -578
  203. package/dest/browser/async_map/index.js +0 -16
  204. package/dest/browser/barretenberg_api/blake2s.test.d.ts +0 -2
  205. package/dest/browser/barretenberg_api/blake2s.test.d.ts.map +0 -1
  206. package/dest/browser/barretenberg_api/blake2s.test.js +0 -30
  207. package/dest/browser/barretenberg_api/common.test.d.ts +0 -2
  208. package/dest/browser/barretenberg_api/common.test.d.ts.map +0 -1
  209. package/dest/browser/barretenberg_api/common.test.js +0 -18
  210. package/dest/browser/barretenberg_api/index.js +0 -379
  211. package/dest/browser/barretenberg_api/pedersen.test.d.ts +0 -2
  212. package/dest/browser/barretenberg_api/pedersen.test.d.ts.map +0 -1
  213. package/dest/browser/barretenberg_api/pedersen.test.js +0 -69
  214. package/dest/browser/barretenberg_api/schnorr.test.d.ts +0 -2
  215. package/dest/browser/barretenberg_api/schnorr.test.d.ts.map +0 -1
  216. package/dest/browser/barretenberg_api/schnorr.test.js +0 -113
  217. package/dest/browser/barretenberg_binder/heap_allocator.js +0 -59
  218. package/dest/browser/barretenberg_binder/heap_allocator_sync.d.ts +0 -22
  219. package/dest/browser/barretenberg_binder/heap_allocator_sync.d.ts.map +0 -1
  220. package/dest/browser/barretenberg_binder/heap_allocator_sync.js +0 -58
  221. package/dest/browser/barretenberg_binder/index.js +0 -73
  222. package/dest/browser/barretenberg_wasm/barretenberg_wasm.d.ts +0 -48
  223. package/dest/browser/barretenberg_wasm/barretenberg_wasm.d.ts.map +0 -1
  224. package/dest/browser/barretenberg_wasm/barretenberg_wasm.js +0 -208
  225. package/dest/browser/barretenberg_wasm/barretenberg_wasm.test.d.ts +0 -2
  226. package/dest/browser/barretenberg_wasm/barretenberg_wasm.test.d.ts.map +0 -1
  227. package/dest/browser/barretenberg_wasm/barretenberg_wasm.test.js +0 -47
  228. package/dest/browser/barretenberg_wasm/browser/index.d.ts +0 -8
  229. package/dest/browser/barretenberg_wasm/browser/index.d.ts.map +0 -1
  230. package/dest/browser/barretenberg_wasm/browser/index.js +0 -29
  231. package/dest/browser/barretenberg_wasm/browser/worker.d.ts +0 -2
  232. package/dest/browser/barretenberg_wasm/browser/worker.d.ts.map +0 -1
  233. package/dest/browser/barretenberg_wasm/browser/worker.js +0 -11
  234. package/dest/browser/barretenberg_wasm/index.js +0 -2
  235. package/dest/browser/barretenberg_wasm/node/index.d.ts.map +0 -1
  236. package/dest/browser/barretenberg_wasm/node/index.js +0 -40
  237. package/dest/browser/barretenberg_wasm/node/node_endpoint.d.ts.map +0 -1
  238. package/dest/browser/barretenberg_wasm/node/node_endpoint.js +0 -28
  239. package/dest/browser/barretenberg_wasm/node/worker.d.ts +0 -2
  240. package/dest/browser/barretenberg_wasm/node/worker.d.ts.map +0 -1
  241. package/dest/browser/barretenberg_wasm/node/worker.js +0 -9
  242. package/dest/browser/bigint-array/index.js +0 -21
  243. package/dest/browser/bindgen/function_declaration.d.ts +0 -11
  244. package/dest/browser/bindgen/function_declaration.d.ts.map +0 -1
  245. package/dest/browser/bindgen/function_declaration.js +0 -2
  246. package/dest/browser/bindgen/index.d.ts +0 -2
  247. package/dest/browser/bindgen/index.d.ts.map +0 -1
  248. package/dest/browser/bindgen/index.js +0 -15
  249. package/dest/browser/bindgen/mappings.d.ts +0 -4
  250. package/dest/browser/bindgen/mappings.d.ts.map +0 -1
  251. package/dest/browser/bindgen/mappings.js +0 -63
  252. package/dest/browser/bindgen/rust.d.ts +0 -2
  253. package/dest/browser/bindgen/rust.d.ts.map +0 -1
  254. package/dest/browser/bindgen/rust.js +0 -43
  255. package/dest/browser/bindgen/to_camel_case.d.ts +0 -2
  256. package/dest/browser/bindgen/to_camel_case.d.ts.map +0 -1
  257. package/dest/browser/bindgen/to_camel_case.js +0 -11
  258. package/dest/browser/bindgen/typescript.d.ts +0 -2
  259. package/dest/browser/bindgen/typescript.d.ts.map +0 -1
  260. package/dest/browser/bindgen/typescript.js +0 -80
  261. package/dest/browser/crs/browser/cached_net_crs.js +0 -56
  262. package/dest/browser/crs/browser/index.js +0 -2
  263. package/dest/browser/crs/index.js +0 -2
  264. package/dest/browser/crs/net_crs.js +0 -59
  265. package/dest/browser/crs/node/ignition_files_crs.js +0 -51
  266. package/dest/browser/crs/node/index.js +0 -54
  267. package/dest/browser/examples/simple.test.d.ts +0 -2
  268. package/dest/browser/examples/simple.test.d.ts.map +0 -1
  269. package/dest/browser/examples/simple.test.js +0 -22
  270. package/dest/browser/factory/index.d.ts +0 -21
  271. package/dest/browser/factory/index.d.ts.map +0 -1
  272. package/dest/browser/factory/index.js +0 -34
  273. package/dest/browser/main.d.ts +0 -10
  274. package/dest/browser/main.d.ts.map +0 -1
  275. package/dest/browser/main.js +0 -6586
  276. package/dest/browser/random/browser/index.js +0 -31
  277. package/dest/browser/random/index.js +0 -2
  278. package/dest/browser/random/node/index.js +0 -5
  279. package/dest/browser/serialize/buffer_reader.js +0 -66
  280. package/dest/browser/serialize/index.js +0 -4
  281. package/dest/browser/serialize/output_type.js +0 -44
  282. package/dest/browser/serialize/serialize.js +0 -139
  283. package/dest/browser/types/browser/index.d.ts +0 -2
  284. package/dest/browser/types/browser/index.d.ts.map +0 -1
  285. package/dest/browser/types/browser/index.js +0 -2
  286. package/dest/browser/types/browser/point.d.ts +0 -16
  287. package/dest/browser/types/browser/point.d.ts.map +0 -1
  288. package/dest/browser/types/browser/point.js +0 -46
  289. package/dest/browser/types/fields.js +0 -84
  290. package/dest/browser/types/fixed_size_buffer.js +0 -51
  291. package/dest/browser/types/index.js +0 -6
  292. package/dest/browser/types/node/index.d.ts +0 -2
  293. package/dest/browser/types/node/index.d.ts.map +0 -1
  294. package/dest/browser/types/node/index.js +0 -2
  295. package/dest/browser/types/node/point.d.ts.map +0 -1
  296. package/dest/browser/types/node/point.js +0 -31
  297. package/dest/browser/types/ptr.js +0 -19
  298. package/dest/browser/types/raw_buffer.js +0 -5
  299. package/dest/node/barretenberg_binder/heap_allocator_sync.d.ts +0 -22
  300. package/dest/node/barretenberg_binder/heap_allocator_sync.d.ts.map +0 -1
  301. package/dest/node/barretenberg_binder/heap_allocator_sync.js +0 -58
  302. package/dest/node/barretenberg_wasm/barretenberg_wasm.d.ts +0 -50
  303. package/dest/node/barretenberg_wasm/barretenberg_wasm.d.ts.map +0 -1
  304. package/dest/node/barretenberg_wasm/barretenberg_wasm.js +0 -208
  305. package/dest/node/barretenberg_wasm/barretenberg_wasm.test.d.ts +0 -2
  306. package/dest/node/barretenberg_wasm/barretenberg_wasm.test.d.ts.map +0 -1
  307. package/dest/node/barretenberg_wasm/barretenberg_wasm.test.js +0 -47
  308. package/dest/node/barretenberg_wasm/browser/index.d.ts +0 -8
  309. package/dest/node/barretenberg_wasm/browser/index.d.ts.map +0 -1
  310. package/dest/node/barretenberg_wasm/browser/index.js +0 -29
  311. package/dest/node/barretenberg_wasm/browser/worker.d.ts +0 -2
  312. package/dest/node/barretenberg_wasm/browser/worker.d.ts.map +0 -1
  313. package/dest/node/barretenberg_wasm/browser/worker.js +0 -11
  314. package/dest/node/barretenberg_wasm/node/index.d.ts.map +0 -1
  315. package/dest/node/barretenberg_wasm/node/index.js +0 -40
  316. package/dest/node/barretenberg_wasm/node/node_endpoint.d.ts.map +0 -1
  317. package/dest/node/barretenberg_wasm/node/node_endpoint.js +0 -28
  318. package/dest/node/barretenberg_wasm/node/worker.d.ts +0 -2
  319. package/dest/node/barretenberg_wasm/node/worker.d.ts.map +0 -1
  320. package/dest/node/barretenberg_wasm/node/worker.js +0 -9
  321. package/dest/node/factory/index.d.ts +0 -21
  322. package/dest/node/factory/index.d.ts.map +0 -1
  323. package/dest/node/factory/index.js +0 -34
  324. package/dest/node/types/browser/index.d.ts +0 -2
  325. package/dest/node/types/browser/index.d.ts.map +0 -1
  326. package/dest/node/types/browser/index.js +0 -2
  327. package/dest/node/types/browser/point.d.ts +0 -16
  328. package/dest/node/types/browser/point.d.ts.map +0 -1
  329. package/dest/node/types/browser/point.js +0 -46
  330. package/dest/node/types/node/index.d.ts +0 -2
  331. package/dest/node/types/node/index.d.ts.map +0 -1
  332. package/dest/node/types/node/index.js +0 -2
  333. package/dest/node/types/node/point.d.ts.map +0 -1
  334. package/dest/node/types/node/point.js +0 -31
  335. package/src/barretenberg_binder/heap_allocator_sync.ts +0 -61
  336. package/src/barretenberg_wasm/barretenberg_wasm.ts +0 -250
  337. package/src/barretenberg_wasm/browser/index.ts +0 -35
  338. package/src/barretenberg_wasm/node/worker.ts +0 -10
  339. package/src/factory/index.ts +0 -36
  340. package/src/types/browser/index.ts +0 -1
  341. package/src/types/browser/point.ts +0 -50
  342. package/src/types/node/index.ts +0 -1
  343. /package/src/barretenberg_wasm/{node → helpers/node}/node_endpoint.ts +0 -0
@@ -0,0 +1,12 @@
1
+ import { expose } from 'comlink';
2
+ import { BarretenbergWasmMain } from '../../index.js';
3
+ import debug from 'debug';
4
+ self.onmessage = function (e) {
5
+ if (e.data.debug) {
6
+ debug.enable(e.data.debug);
7
+ }
8
+ };
9
+ expose(new BarretenbergWasmMain());
10
+ self.postMessage({ ready: true });
11
+ export default null;
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi53b3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fbWFpbi9mYWN0b3J5L2Jyb3dzZXIvbWFpbi53b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNqQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7SUFDMUIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNoQixLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDNUI7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsSUFBSSxvQkFBb0IsRUFBRSxDQUFDLENBQUM7QUFFbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBRWxDLGVBQWUsSUFBVyxDQUFDIn0=
@@ -0,0 +1,4 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import { Worker } from 'worker_threads';
3
+ export declare function createMainWorker(): Worker;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAIxC,wBAAgB,gBAAgB,WAG/B"}
@@ -0,0 +1,8 @@
1
+ import { Worker } from 'worker_threads';
2
+ import { dirname } from 'path';
3
+ import { fileURLToPath } from 'url';
4
+ export function createMainWorker() {
5
+ const __dirname = dirname(fileURLToPath(import.meta.url));
6
+ return new Worker(__dirname + `/main.worker.js`);
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fbWFpbi9mYWN0b3J5L25vZGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUVwQyxNQUFNLFVBQVUsZ0JBQWdCO0lBQzlCLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFELE9BQU8sSUFBSSxNQUFNLENBQUMsU0FBUyxHQUFHLGlCQUFpQixDQUFDLENBQUM7QUFDbkQsQ0FBQyJ9
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=main.worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.worker.d.ts","sourceRoot":"","sources":["../../../../../../src/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { parentPort } from 'worker_threads';
2
+ import { expose } from 'comlink';
3
+ import { BarretenbergWasmMain } from '../../index.js';
4
+ import { nodeEndpoint } from '../../../helpers/node/node_endpoint.js';
5
+ if (!parentPort) {
6
+ throw new Error('No parentPort');
7
+ }
8
+ expose(new BarretenbergWasmMain(), nodeEndpoint(parentPort));
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi53b3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fbWFpbi9mYWN0b3J5L25vZGUvbWFpbi53b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDakMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRXRFLElBQUksQ0FBQyxVQUFVLEVBQUU7SUFDZixNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0NBQ2xDO0FBRUQsTUFBTSxDQUFDLElBQUksb0JBQW9CLEVBQUUsRUFBRSxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyJ9
@@ -0,0 +1,37 @@
1
+ import { Remote } from 'comlink';
2
+ import { BarretenbergWasmBase } from '../barretenberg_wasm_base/index.js';
3
+ export declare class BarretenbergWasmMain extends BarretenbergWasmBase {
4
+ static MAX_THREADS: number;
5
+ private workers;
6
+ private remoteWasms;
7
+ private nextWorker;
8
+ private nextThreadId;
9
+ getNumThreads(): number;
10
+ /**
11
+ * Init as main thread. Spawn child threads.
12
+ */
13
+ init(threads?: number, logger?: (msg: string) => void, initial?: number, maximum?: number): Promise<void>;
14
+ /**
15
+ * Called on main thread. Signals child threads to gracefully exit.
16
+ */
17
+ destroy(): Promise<void>;
18
+ protected getImportObj(memory: WebAssembly.Memory): {
19
+ wasi: {
20
+ 'thread-spawn': (arg: number) => number;
21
+ };
22
+ env: {
23
+ env_hardware_concurrency: () => number;
24
+ logstr: (addr: number) => void;
25
+ get_data: (keyAddr: number, outBufAddr: number) => void;
26
+ set_data: (keyAddr: number, dataAddr: number, dataLength: number) => void;
27
+ memory: WebAssembly.Memory;
28
+ };
29
+ wasi_snapshot_preview1: {
30
+ random_get: (out: any, length: number) => void;
31
+ clock_time_get: (a1: number, a2: number, out: number) => void;
32
+ proc_exit: () => never;
33
+ };
34
+ };
35
+ }
36
+ export type BarretenbergWasmMainWorker = Remote<BarretenbergWasmMain>;
37
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/barretenberg_wasm/barretenberg_wasm_main/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAKjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAI1E,qBAAa,oBAAqB,SAAQ,oBAAoB;IAC5D,MAAM,CAAC,WAAW,SAAM;IACxB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,YAAY,CAAK;IAElB,aAAa;IAIpB;;OAEG;IACU,IAAI,CACf,OAAO,SAA0D,EACjE,MAAM,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAY,EACrC,OAAO,SAAK,EACZ,OAAO,SAAU;IAsCnB;;OAEG;IACU,OAAO;IAIpB,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM;;kCAOrB,MAAM;;;;;;;;;;;;;;;CAqBnC;AAED,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC"}
@@ -0,0 +1,83 @@
1
+ import createDebug from 'debug';
2
+ import { getNumCpu, getRemoteBarretenbergWasm, getSharedMemoryAvailable } from '../helpers/index.js';
3
+ import { fetchCode } from '../fetch_code/index.js';
4
+ import { createThreadWorker } from '../barretenberg_wasm_thread/factory/node/index.js';
5
+ import { BarretenbergWasmBase } from '../barretenberg_wasm_base/index.js';
6
+ const debug = createDebug('bb.js:wasm');
7
+ class BarretenbergWasmMain extends BarretenbergWasmBase {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.workers = [];
11
+ this.remoteWasms = [];
12
+ this.nextWorker = 0;
13
+ this.nextThreadId = 1;
14
+ }
15
+ getNumThreads() {
16
+ return this.workers.length + 1;
17
+ }
18
+ /**
19
+ * Init as main thread. Spawn child threads.
20
+ */
21
+ async init(threads = Math.min(getNumCpu(), BarretenbergWasmMain.MAX_THREADS), logger = debug, initial = 25, maximum = 2 ** 16) {
22
+ this.logger = logger;
23
+ const initialMb = (initial * 2 ** 16) / (1024 * 1024);
24
+ const maxMb = (maximum * 2 ** 16) / (1024 * 1024);
25
+ const shared = getSharedMemoryAvailable();
26
+ if (!shared) {
27
+ threads = 1;
28
+ }
29
+ this.logger(`initial mem: ${initial} pages, ${initialMb}MiB. ` +
30
+ `max mem: ${maximum} pages, ${maxMb}MiB. ` +
31
+ `threads: ${threads}, shared: ${shared}`);
32
+ this.memory = new WebAssembly.Memory({ initial, maximum, shared });
33
+ const code = await fetchCode(shared);
34
+ const { instance, module } = await WebAssembly.instantiate(code, this.getImportObj(this.memory));
35
+ this.instance = instance;
36
+ // Init all global/static data.
37
+ this.call('_initialize');
38
+ // Create worker threads. Create 1 less than requested, as main thread counts as a thread.
39
+ if (threads > 1) {
40
+ this.logger(`creating ${threads} worker threads...`);
41
+ this.workers = await Promise.all(Array.from({ length: threads - 1 }).map(createThreadWorker));
42
+ this.remoteWasms = await Promise.all(this.workers.map((getRemoteBarretenbergWasm)));
43
+ await Promise.all(this.remoteWasms.map(w => w.initThread(module, this.memory)));
44
+ }
45
+ this.logger('init complete.');
46
+ }
47
+ /**
48
+ * Called on main thread. Signals child threads to gracefully exit.
49
+ */
50
+ async destroy() {
51
+ await Promise.all(this.workers.map(w => w.terminate()));
52
+ }
53
+ getImportObj(memory) {
54
+ const baseImports = super.getImportObj(memory);
55
+ /* eslint-disable camelcase */
56
+ return {
57
+ ...baseImports,
58
+ wasi: {
59
+ 'thread-spawn': (arg) => {
60
+ arg = arg >>> 0;
61
+ const id = this.nextThreadId++;
62
+ const worker = this.nextWorker++ % this.remoteWasms.length;
63
+ // this.logger(`spawning thread ${id} on worker ${worker} with arg ${arg >>> 0}`);
64
+ this.remoteWasms[worker].call('wasi_thread_start', id, arg).catch(this.logger);
65
+ // this.remoteWasms[worker].postMessage({ msg: 'thread', data: { id, arg } });
66
+ return id;
67
+ },
68
+ },
69
+ env: {
70
+ ...baseImports.env,
71
+ env_hardware_concurrency: () => {
72
+ // If there are no workers (we're already running as a worker, or the main thread requested no workers)
73
+ // then we return 1, which should cause any algos using threading to just not create a thread.
74
+ return this.remoteWasms.length + 1;
75
+ },
76
+ },
77
+ };
78
+ /* eslint-enable camelcase */
79
+ }
80
+ }
81
+ BarretenbergWasmMain.MAX_THREADS = 32;
82
+ export { BarretenbergWasmMain };
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fbWFpbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLFdBQVcsTUFBTSxPQUFPLENBQUM7QUFFaEMsT0FBTyxFQUFFLFNBQVMsRUFBRSx5QkFBeUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUV2RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUUxRSxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7QUFFeEMsTUFBYSxvQkFBcUIsU0FBUSxvQkFBb0I7SUFBOUQ7O1FBRVUsWUFBTyxHQUFhLEVBQUUsQ0FBQztRQUN2QixnQkFBVyxHQUFtQyxFQUFFLENBQUM7UUFDakQsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO0lBc0YzQixDQUFDO0lBcEZRLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLElBQUksQ0FDZixPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsRUFBRSxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsRUFDakUsU0FBZ0MsS0FBSyxFQUNyQyxPQUFPLEdBQUcsRUFBRSxFQUNaLE9BQU8sR0FBRyxDQUFDLElBQUksRUFBRTtRQUVqQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUVyQixNQUFNLFNBQVMsR0FBRyxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDdEQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ2xELE1BQU0sTUFBTSxHQUFHLHdCQUF3QixFQUFFLENBQUM7UUFFMUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE9BQU8sR0FBRyxDQUFDLENBQUM7U0FDYjtRQUVELElBQUksQ0FBQyxNQUFNLENBQ1QsZ0JBQWdCLE9BQU8sV0FBVyxTQUFTLE9BQU87WUFDaEQsWUFBWSxPQUFPLFdBQVcsS0FBSyxPQUFPO1lBQzFDLFlBQVksT0FBTyxhQUFhLE1BQU0sRUFBRSxDQUMzQyxDQUFDO1FBRUYsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFbkUsTUFBTSxJQUFJLEdBQUcsTUFBTSxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckMsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFFakcsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFFekIsK0JBQStCO1FBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFekIsMEZBQTBGO1FBQzFGLElBQUksT0FBTyxHQUFHLENBQUMsRUFBRTtZQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxPQUFPLG9CQUFvQixDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1lBQzlGLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUEseUJBQXVELENBQUEsQ0FBQyxDQUFDLENBQUM7WUFDaEgsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNqRjtRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsT0FBTztRQUNsQixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFUyxZQUFZLENBQUMsTUFBMEI7UUFDL0MsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUvQyw4QkFBOEI7UUFDOUIsT0FBTztZQUNMLEdBQUcsV0FBVztZQUNkLElBQUksRUFBRTtnQkFDSixjQUFjLEVBQUUsQ0FBQyxHQUFXLEVBQUUsRUFBRTtvQkFDOUIsR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUM7b0JBQ2hCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDL0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO29CQUMzRCxrRkFBa0Y7b0JBQ2xGLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUMvRSw4RUFBOEU7b0JBQzlFLE9BQU8sRUFBRSxDQUFDO2dCQUNaLENBQUM7YUFDRjtZQUNELEdBQUcsRUFBRTtnQkFDSCxHQUFHLFdBQVcsQ0FBQyxHQUFHO2dCQUNsQix3QkFBd0IsRUFBRSxHQUFHLEVBQUU7b0JBQzdCLHVHQUF1RztvQkFDdkcsOEZBQThGO29CQUM5RixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztnQkFDckMsQ0FBQzthQUNGO1NBQ0YsQ0FBQztRQUNGLDZCQUE2QjtJQUMvQixDQUFDOztBQXpGTSxnQ0FBVyxHQUFHLEVBQUUsQUFBTCxDQUFNO1NBRGIsb0JBQW9CIn0=
@@ -0,0 +1,2 @@
1
+ export declare function createThreadWorker(): any;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.ts"],"names":[],"mappings":"AAGA,wBAAgB,kBAAkB,QAMjC"}
@@ -0,0 +1,10 @@
1
+ import debug from 'debug';
2
+ import ThreadWorker from './thread.worker.js';
3
+ export function createThreadWorker() {
4
+ const worker = new ThreadWorker();
5
+ const debugStr = debug.disable();
6
+ debug.enable(debugStr);
7
+ worker.postMessage({ debug: debugStr });
8
+ return worker;
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fdGhyZWFkL2ZhY3RvcnkvYnJvd3Nlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxZQUFZLE1BQU0sb0JBQW9CLENBQUM7QUFFOUMsTUFBTSxVQUFVLGtCQUFrQjtJQUNoQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ2xDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZCLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN4QyxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIn0=
@@ -0,0 +1,3 @@
1
+ declare const _default: any;
2
+ export default _default;
3
+ //# sourceMappingURL=thread.worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread.worker.d.ts","sourceRoot":"","sources":["../../../../../../src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.ts"],"names":[],"mappings":";AAcA,wBAA2B"}
@@ -0,0 +1,12 @@
1
+ import { expose } from 'comlink';
2
+ import { BarretenbergWasmThread } from '../../index.js';
3
+ import debug from 'debug';
4
+ self.onmessage = function (e) {
5
+ if (e.data.debug) {
6
+ debug.enable(e.data.debug);
7
+ }
8
+ };
9
+ expose(new BarretenbergWasmThread());
10
+ self.postMessage({ ready: true });
11
+ export default null;
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWFkLndvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmdfd2FzbS9iYXJyZXRlbmJlcmdfd2FzbV90aHJlYWQvZmFjdG9yeS9icm93c2VyL3RocmVhZC53b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNqQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7SUFDMUIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNoQixLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDNUI7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsSUFBSSxzQkFBc0IsRUFBRSxDQUFDLENBQUM7QUFFckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBRWxDLGVBQWUsSUFBVyxDQUFDIn0=
@@ -0,0 +1,4 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import { Worker } from 'worker_threads';
3
+ export declare function createThreadWorker(): Worker;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAIxC,wBAAgB,kBAAkB,WAGjC"}
@@ -0,0 +1,8 @@
1
+ import { Worker } from 'worker_threads';
2
+ import { dirname } from 'path';
3
+ import { fileURLToPath } from 'url';
4
+ export function createThreadWorker() {
5
+ const __dirname = dirname(fileURLToPath(import.meta.url));
6
+ return new Worker(__dirname + `/thread.worker.js`);
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fdGhyZWFkL2ZhY3Rvcnkvbm9kZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXBDLE1BQU0sVUFBVSxrQkFBa0I7SUFDaEMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDMUQsT0FBTyxJQUFJLE1BQU0sQ0FBQyxTQUFTLEdBQUcsbUJBQW1CLENBQUMsQ0FBQztBQUNyRCxDQUFDIn0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=thread.worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread.worker.d.ts","sourceRoot":"","sources":["../../../../../../src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { parentPort } from 'worker_threads';
2
+ import { expose } from 'comlink';
3
+ import { BarretenbergWasmThread } from '../../index.js';
4
+ import { nodeEndpoint } from '../../../helpers/node/node_endpoint.js';
5
+ if (!parentPort) {
6
+ throw new Error('No parentPort');
7
+ }
8
+ expose(new BarretenbergWasmThread(), nodeEndpoint(parentPort));
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWFkLndvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmdfd2FzbS9iYXJyZXRlbmJlcmdfd2FzbV90aHJlYWQvZmFjdG9yeS9ub2RlL3RocmVhZC53b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDakMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRXRFLElBQUksQ0FBQyxVQUFVLEVBQUU7SUFDZixNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0NBQ2xDO0FBRUQsTUFBTSxDQUFDLElBQUksc0JBQXNCLEVBQUUsRUFBRSxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyJ9
@@ -0,0 +1,28 @@
1
+ import { Remote } from 'comlink';
2
+ import { BarretenbergWasmBase } from '../barretenberg_wasm_base/index.js';
3
+ export declare class BarretenbergWasmThread extends BarretenbergWasmBase {
4
+ /**
5
+ * Init as worker thread.
6
+ */
7
+ initThread(module: WebAssembly.Module, memory: WebAssembly.Memory): Promise<void>;
8
+ destroy(): void;
9
+ protected getImportObj(memory: WebAssembly.Memory): {
10
+ wasi: {
11
+ 'thread-spawn': () => never;
12
+ };
13
+ env: {
14
+ env_hardware_concurrency: () => number;
15
+ logstr: (addr: number) => void;
16
+ get_data: (keyAddr: number, outBufAddr: number) => void;
17
+ set_data: (keyAddr: number, dataAddr: number, dataLength: number) => void;
18
+ memory: WebAssembly.Memory;
19
+ };
20
+ wasi_snapshot_preview1: {
21
+ random_get: (out: any, length: number) => void;
22
+ clock_time_get: (a1: number, a2: number, out: number) => void;
23
+ proc_exit: () => never;
24
+ };
25
+ };
26
+ }
27
+ export type BarretenbergWasmThreadWorker = Remote<BarretenbergWasmThread>;
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/barretenberg_wasm/barretenberg_wasm_thread/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E,qBAAa,sBAAuB,SAAQ,oBAAoB;IAC9D;;OAEG;IACU,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM;IAMvE,OAAO;IAId,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM;;;;;;;;;;;;;;;;;CA0BlD;AAED,MAAM,MAAM,4BAA4B,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { killSelf, threadLogger } from '../helpers/index.js';
2
+ import { BarretenbergWasmBase } from '../barretenberg_wasm_base/index.js';
3
+ export class BarretenbergWasmThread extends BarretenbergWasmBase {
4
+ /**
5
+ * Init as worker thread.
6
+ */
7
+ async initThread(module, memory) {
8
+ this.logger = threadLogger() || this.logger;
9
+ this.memory = memory;
10
+ this.instance = await WebAssembly.instantiate(module, this.getImportObj(this.memory));
11
+ }
12
+ destroy() {
13
+ killSelf();
14
+ }
15
+ getImportObj(memory) {
16
+ const baseImports = super.getImportObj(memory);
17
+ /* eslint-disable camelcase */
18
+ return {
19
+ ...baseImports,
20
+ wasi: {
21
+ 'thread-spawn': () => {
22
+ this.logger('PANIC: threads cannot spawn threads!');
23
+ this.logger(new Error().stack);
24
+ killSelf();
25
+ },
26
+ },
27
+ // These are functions implementations for imports we've defined are needed.
28
+ // The native C++ build defines these in a module called "env". We must implement TypeScript versions here.
29
+ env: {
30
+ ...baseImports.env,
31
+ env_hardware_concurrency: () => {
32
+ // We return 1, which should cause any algos using threading to just not create a thread.
33
+ return 1;
34
+ },
35
+ },
36
+ };
37
+ /* eslint-enable camelcase */
38
+ }
39
+ }
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fdGhyZWFkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFMUUsTUFBTSxPQUFPLHNCQUF1QixTQUFRLG9CQUFvQjtJQUM5RDs7T0FFRztJQUNJLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBMEIsRUFBRSxNQUEwQjtRQUM1RSxJQUFJLENBQUMsTUFBTSxHQUFHLFlBQVksRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLFdBQVcsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVNLE9BQU87UUFDWixRQUFRLEVBQUUsQ0FBQztJQUNiLENBQUM7SUFFUyxZQUFZLENBQUMsTUFBMEI7UUFDL0MsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUvQyw4QkFBOEI7UUFDOUIsT0FBTztZQUNMLEdBQUcsV0FBVztZQUNkLElBQUksRUFBRTtnQkFDSixjQUFjLEVBQUUsR0FBRyxFQUFFO29CQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7b0JBQ3BELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxLQUFNLENBQUMsQ0FBQztvQkFDaEMsUUFBUSxFQUFFLENBQUM7Z0JBQ2IsQ0FBQzthQUNGO1lBRUQsNEVBQTRFO1lBQzVFLDJHQUEyRztZQUMzRyxHQUFHLEVBQUU7Z0JBQ0gsR0FBRyxXQUFXLENBQUMsR0FBRztnQkFDbEIsd0JBQXdCLEVBQUUsR0FBRyxFQUFFO29CQUM3Qix5RkFBeUY7b0JBQ3pGLE9BQU8sQ0FBQyxDQUFDO2dCQUNYLENBQUM7YUFDRjtTQUNGLENBQUM7UUFDRiw2QkFBNkI7SUFDL0IsQ0FBQztDQUNGIn0=
@@ -0,0 +1,2 @@
1
+ export declare function fetchCode(multithreaded: boolean): Promise<ArrayBuffer>;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/barretenberg_wasm/fetch_code/browser/index.ts"],"names":[],"mappings":"AAKA,wBAAsB,SAAS,CAAC,aAAa,EAAE,OAAO,wBAGrD"}
@@ -0,0 +1,9 @@
1
+ import barretenbergModule from '../../../barretenberg.wasm';
2
+ import barretenbergThreadsModule from '../../../barretenberg-threads.wasm';
3
+ // Annoyingly the wasm declares if it's memory is shared or not. So now we need two wasms if we want to be
4
+ // able to fallback on "non shared memory" situations.
5
+ export async function fetchCode(multithreaded) {
6
+ const res = await fetch(multithreaded ? barretenbergThreadsModule : barretenbergModule);
7
+ return await res.arrayBuffer();
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vZmV0Y2hfY29kZS9icm93c2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sa0JBQWtCLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyx5QkFBeUIsTUFBTSxvQ0FBb0MsQ0FBQztBQUUzRSwwR0FBMEc7QUFDMUcsc0RBQXNEO0FBQ3RELE1BQU0sQ0FBQyxLQUFLLFVBQVUsU0FBUyxDQUFDLGFBQXNCO0lBQ3BELE1BQU0sR0FBRyxHQUFHLE1BQU0sS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDeEYsT0FBTyxNQUFNLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUNqQyxDQUFDIn0=
@@ -0,0 +1,2 @@
1
+ export * from './node/index.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/barretenberg_wasm/fetch_code/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './node/index.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vZmV0Y2hfY29kZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDIn0=
@@ -0,0 +1,3 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ export declare function fetchCode(multithreaded: boolean): Promise<Buffer>;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/barretenberg_wasm/fetch_code/node/index.ts"],"names":[],"mappings":";AAKA,wBAAsB,SAAS,CAAC,aAAa,EAAE,OAAO,mBAGrD"}
@@ -0,0 +1,9 @@
1
+ import { readFile } from 'fs/promises';
2
+ import { dirname } from 'path';
3
+ import { fileURLToPath } from 'url';
4
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
5
+ export async function fetchCode(multithreaded) {
6
+ const path = dirname(fileURLToPath(import.meta.url)) + '/../../../barretenberg-threads.wasm';
7
+ return await readFile(path);
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vZmV0Y2hfY29kZS9ub2RlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXBDLDZEQUE2RDtBQUM3RCxNQUFNLENBQUMsS0FBSyxVQUFVLFNBQVMsQ0FBQyxhQUFzQjtJQUNwRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxxQ0FBcUMsQ0FBQztJQUM3RixPQUFPLE1BQU0sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzlCLENBQUMifQ==
@@ -0,0 +1,6 @@
1
+ export declare function getSharedMemoryAvailable(): boolean;
2
+ export declare function getRemoteBarretenbergWasm<T>(worker: Worker): T;
3
+ export declare function getNumCpu(): number;
4
+ export declare function threadLogger(): ((msg: string) => void) | undefined;
5
+ export declare function killSelf(): void;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/barretenberg_wasm/helpers/browser/index.ts"],"names":[],"mappings":"AAEA,wBAAgB,wBAAwB,YAGvC;AAED,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,KAE1D;AAED,wBAAgB,SAAS,WAExB;AAED,wBAAgB,YAAY,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAElE;AAED,wBAAgB,QAAQ,SAEvB"}
@@ -0,0 +1,18 @@
1
+ import { wrap } from 'comlink';
2
+ export function getSharedMemoryAvailable() {
3
+ const globalScope = typeof window !== 'undefined' ? window : self;
4
+ return typeof SharedArrayBuffer !== 'undefined' && globalScope.crossOriginIsolated;
5
+ }
6
+ export function getRemoteBarretenbergWasm(worker) {
7
+ return wrap(worker);
8
+ }
9
+ export function getNumCpu() {
10
+ return navigator.hardwareConcurrency;
11
+ }
12
+ export function threadLogger() {
13
+ return undefined;
14
+ }
15
+ export function killSelf() {
16
+ self.close();
17
+ }
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vaGVscGVycy9icm93c2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFL0IsTUFBTSxVQUFVLHdCQUF3QjtJQUN0QyxNQUFNLFdBQVcsR0FBRyxPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2xFLE9BQU8sT0FBTyxpQkFBaUIsS0FBSyxXQUFXLElBQUksV0FBVyxDQUFDLG1CQUFtQixDQUFDO0FBQ3JGLENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQUksTUFBYztJQUN6RCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQU0sQ0FBQztBQUMzQixDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVM7SUFDdkIsT0FBTyxTQUFTLENBQUMsbUJBQW1CLENBQUM7QUFDdkMsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZO0lBQzFCLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUTtJQUN0QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDZixDQUFDIn0=
@@ -0,0 +1,2 @@
1
+ export * from './node/index.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/barretenberg_wasm/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './node/index.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vaGVscGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDIn0=
@@ -1,10 +1,12 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
2
  import { Worker } from 'worker_threads';
4
- import { type BarretenbergWasmWorker } from '../barretenberg_wasm.js';
5
- export declare function fetchCode(multithreading: boolean): Promise<Buffer>;
6
- export declare function createWorker(): Worker;
7
- export declare function getRemoteBarretenbergWasm(worker: Worker): BarretenbergWasmWorker;
3
+ export declare function getSharedMemoryAvailable(): boolean;
4
+ /**
5
+ * Comlink allows you to produce a Proxy to the worker, enabling you to call methods as if it were a normal class.
6
+ * Note we give it the type information it needs so the returned Proxy object looks like that type.
7
+ * Node has a different implementation, needing this nodeEndpoint wrapper, hence this function exists here.
8
+ */
9
+ export declare function getRemoteBarretenbergWasm<T>(worker: Worker): T;
8
10
  export declare function getNumCpu(): number;
9
11
  /**
10
12
  * In node, the message passing is different to the browser. When using 'debug' in the browser, we seemingly always
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/barretenberg_wasm/helpers/node/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAMxC,wBAAgB,wBAAwB,YAEvC;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAE9D;AAED,wBAAgB,SAAS,WAExB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAIlE;AAED,wBAAgB,QAAQ,IAAI,KAAK,CAKhC"}
@@ -0,0 +1,36 @@
1
+ import os from 'os';
2
+ import { wrap } from 'comlink';
3
+ import { nodeEndpoint } from './node_endpoint.js';
4
+ import { writeSync } from 'fs';
5
+ export function getSharedMemoryAvailable() {
6
+ return true;
7
+ }
8
+ /**
9
+ * Comlink allows you to produce a Proxy to the worker, enabling you to call methods as if it were a normal class.
10
+ * Note we give it the type information it needs so the returned Proxy object looks like that type.
11
+ * Node has a different implementation, needing this nodeEndpoint wrapper, hence this function exists here.
12
+ */
13
+ export function getRemoteBarretenbergWasm(worker) {
14
+ return wrap(nodeEndpoint(worker));
15
+ }
16
+ export function getNumCpu() {
17
+ return os.cpus().length;
18
+ }
19
+ /**
20
+ * In node, the message passing is different to the browser. When using 'debug' in the browser, we seemingly always
21
+ * get our logs, but in node it looks like it's dependent on the chain of workers from child to main thread be
22
+ * unblocked. If one of our threads aborts, we can't see it as the parent is blocked waiting on threads to join.
23
+ * To work around this in node, threads will by default write directly to stdout.
24
+ */
25
+ export function threadLogger() {
26
+ return (msg) => {
27
+ writeSync(1, msg + '\n');
28
+ };
29
+ }
30
+ export function killSelf() {
31
+ // Extordinarily hard process termination. Due to how parent threads block on child threads etc, even process.exit
32
+ // doesn't seem to be able to abort the process. The following does.
33
+ process.kill(process.pid);
34
+ throw new Error();
35
+ }
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vaGVscGVycy9ub2RlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBRS9CLE1BQU0sVUFBVSx3QkFBd0I7SUFDdEMsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSx5QkFBeUIsQ0FBSSxNQUFjO0lBQ3pELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBTSxDQUFDO0FBQ3pDLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUztJQUN2QixPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUM7QUFDMUIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFlBQVk7SUFDMUIsT0FBTyxDQUFDLEdBQVcsRUFBRSxFQUFFO1FBQ3JCLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUTtJQUN0QixrSEFBa0g7SUFDbEgsb0VBQW9FO0lBQ3BFLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLE1BQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQztBQUNwQixDQUFDIn0=
@@ -1,8 +1,8 @@
1
1
  import { NodeEndpoint } from 'comlink/dist/esm/node-adapter.js';
2
2
  export declare function nodeEndpoint(nep: NodeEndpoint): {
3
- postMessage: any;
3
+ postMessage: (message: any, transfer?: any[] | undefined) => void;
4
4
  addEventListener: (_: any, eh: any) => void;
5
5
  removeEventListener: (_: any, eh: any) => void;
6
- start: any;
6
+ start: (() => void) | undefined;
7
7
  };
8
8
  //# sourceMappingURL=node_endpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node_endpoint.d.ts","sourceRoot":"","sources":["../../../../../src/barretenberg_wasm/helpers/node/node_endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,wBAAgB,YAAY,CAAC,GAAG,EAAE,YAAY;;0BAIpB,GAAG,MAAM,GAAG;6BAWT,GAAG,MAAM,GAAG;;EAUxC"}
@@ -0,0 +1,28 @@
1
+ export function nodeEndpoint(nep) {
2
+ const listeners = new WeakMap();
3
+ return {
4
+ postMessage: nep.postMessage.bind(nep),
5
+ addEventListener: (_, eh) => {
6
+ const l = (data) => {
7
+ if ('handleEvent' in eh) {
8
+ eh.handleEvent({ data });
9
+ }
10
+ else {
11
+ eh({ data });
12
+ }
13
+ };
14
+ nep.on('message', l);
15
+ listeners.set(eh, l);
16
+ },
17
+ removeEventListener: (_, eh) => {
18
+ const l = listeners.get(eh);
19
+ if (!l) {
20
+ return;
21
+ }
22
+ nep.off('message', l);
23
+ listeners.delete(eh);
24
+ },
25
+ start: nep.start && nep.start.bind(nep),
26
+ };
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZV9lbmRwb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmdfd2FzbS9oZWxwZXJzL25vZGUvbm9kZV9lbmRwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsWUFBWSxDQUFDLEdBQWlCO0lBQzVDLE1BQU0sU0FBUyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFDaEMsT0FBTztRQUNMLFdBQVcsRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDdEMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFNLEVBQUUsRUFBTyxFQUFFLEVBQUU7WUFDcEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFTLEVBQUUsRUFBRTtnQkFDdEIsSUFBSSxhQUFhLElBQUksRUFBRSxFQUFFO29CQUN2QixFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztpQkFDMUI7cUJBQU07b0JBQ0wsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztpQkFDZDtZQUNILENBQUMsQ0FBQztZQUNGLEdBQUcsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxtQkFBbUIsRUFBRSxDQUFDLENBQU0sRUFBRSxFQUFPLEVBQUUsRUFBRTtZQUN2QyxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxDQUFDLEVBQUU7Z0JBQ04sT0FBTzthQUNSO1lBQ0QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdEIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2QixDQUFDO1FBQ0QsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO0tBQ3hDLENBQUM7QUFDSixDQUFDIn0=
@@ -1,2 +1,14 @@
1
- export * from './barretenberg_wasm.js';
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import { BarretenbergWasmMain, BarretenbergWasmMainWorker } from './barretenberg_wasm_main/index.js';
3
+ export declare class BarretenbergWasm extends BarretenbergWasmMain {
4
+ /**
5
+ * Construct and initialise BarretenbergWasm within a Worker. Return both the worker and the wasm proxy.
6
+ * Used when running in the browser, because we can't block the main thread.
7
+ */
8
+ static new(threads?: number): Promise<{
9
+ worker: import("worker_threads").Worker;
10
+ wasm: BarretenbergWasmMainWorker;
11
+ }>;
12
+ }
13
+ export type BarretenbergWasmWorker = BarretenbergWasmMainWorker;
2
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/barretenberg_wasm/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/barretenberg_wasm/index.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAIrG,qBAAa,gBAAiB,SAAQ,oBAAoB;IACxD;;;OAGG;WACiB,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM;;;;CAMzC;AAED,MAAM,MAAM,sBAAsB,GAAG,0BAA0B,CAAC"}
@@ -1,2 +1,19 @@
1
- export * from './barretenberg_wasm.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQyJ9
1
+ import { proxy } from 'comlink';
2
+ import createDebug from 'debug';
3
+ import { createMainWorker } from './barretenberg_wasm_main/factory/node/index.js';
4
+ import { getRemoteBarretenbergWasm } from './helpers/node/index.js';
5
+ import { BarretenbergWasmMain } from './barretenberg_wasm_main/index.js';
6
+ const debug = createDebug('bb.js:wasm');
7
+ export class BarretenbergWasm extends BarretenbergWasmMain {
8
+ /**
9
+ * Construct and initialise BarretenbergWasm within a Worker. Return both the worker and the wasm proxy.
10
+ * Used when running in the browser, because we can't block the main thread.
11
+ */
12
+ static async new(threads) {
13
+ const worker = createMainWorker();
14
+ const wasm = getRemoteBarretenbergWasm(worker);
15
+ await wasm.init(threads, proxy(debug));
16
+ return { worker, wasm };
17
+ }
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNoQyxPQUFPLFdBQVcsTUFBTSxPQUFPLENBQUM7QUFDaEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDbEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUE4QixNQUFNLG1DQUFtQyxDQUFDO0FBRXJHLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUV4QyxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsb0JBQW9CO0lBQ3hEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQWdCO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFDbEMsTUFBTSxJQUFJLEdBQUcseUJBQXlCLENBQTZCLE1BQU0sQ0FBQyxDQUFDO1FBQzNFLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdkMsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDO0NBQ0YifQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../src/barretenberg_wasm/index.test.ts"],"names":[],"mappings":""}