@aztec/bb.js 0.3.3 → 0.3.4

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 (399) hide show
  1. package/dest/barretenberg-threads.wasm +0 -0
  2. package/dest/barretenberg.wasm +0 -0
  3. package/dest/browser/539.js +1963 -0
  4. package/dest/browser/995.js +578 -0
  5. package/dest/browser/async_map/index.d.ts.map +1 -0
  6. package/dest/{async_map → browser/async_map}/index.js +1 -1
  7. package/dest/browser/barretenberg_api/blake2s.test.d.ts.map +1 -0
  8. package/dest/{barretenberg_api → browser/barretenberg_api}/blake2s.test.js +1 -1
  9. package/dest/browser/barretenberg_api/common.test.d.ts.map +1 -0
  10. package/dest/browser/barretenberg_api/common.test.js +18 -0
  11. package/dest/browser/barretenberg_api/index.d.ts.map +1 -0
  12. package/dest/browser/barretenberg_api/index.js +379 -0
  13. package/dest/browser/barretenberg_api/pedersen.test.d.ts.map +1 -0
  14. package/dest/browser/barretenberg_api/pedersen.test.js +69 -0
  15. package/dest/browser/barretenberg_api/schnorr.test.d.ts.map +1 -0
  16. package/dest/{barretenberg_api → browser/barretenberg_api}/schnorr.test.js +1 -1
  17. package/dest/browser/barretenberg_binder/heap_allocator.d.ts.map +1 -0
  18. package/dest/{barretenberg_binder → browser/barretenberg_binder}/heap_allocator.js +1 -1
  19. package/dest/browser/barretenberg_binder/heap_allocator_sync.d.ts.map +1 -0
  20. package/dest/{barretenberg_binder → browser/barretenberg_binder}/heap_allocator_sync.js +1 -1
  21. package/dest/browser/barretenberg_binder/index.d.ts.map +1 -0
  22. package/dest/browser/barretenberg_binder/index.js +73 -0
  23. package/dest/browser/barretenberg_wasm/barretenberg_wasm.d.ts +48 -0
  24. package/dest/browser/barretenberg_wasm/barretenberg_wasm.d.ts.map +1 -0
  25. package/dest/browser/barretenberg_wasm/barretenberg_wasm.js +208 -0
  26. package/dest/browser/barretenberg_wasm/barretenberg_wasm.test.d.ts.map +1 -0
  27. package/dest/browser/barretenberg_wasm/barretenberg_wasm.test.js +47 -0
  28. package/dest/{barretenberg_wasm → browser/barretenberg_wasm}/browser/index.d.ts +1 -1
  29. package/dest/browser/barretenberg_wasm/browser/index.d.ts.map +1 -0
  30. package/dest/browser/barretenberg_wasm/browser/index.js +29 -0
  31. package/dest/browser/barretenberg_wasm/browser/worker.d.ts.map +1 -0
  32. package/dest/browser/barretenberg_wasm/browser/worker.js +11 -0
  33. package/dest/browser/barretenberg_wasm/index.d.ts.map +1 -0
  34. package/dest/{barretenberg_wasm → browser/barretenberg_wasm}/index.js +1 -1
  35. package/dest/{barretenberg_wasm → browser/barretenberg_wasm}/node/index.d.ts +1 -1
  36. package/dest/browser/barretenberg_wasm/node/index.d.ts.map +1 -0
  37. package/dest/{barretenberg_wasm → browser/barretenberg_wasm}/node/index.js +3 -3
  38. package/dest/{barretenberg_wasm → browser/barretenberg_wasm}/node/node_endpoint.d.ts +2 -2
  39. package/dest/browser/barretenberg_wasm/node/node_endpoint.d.ts.map +1 -0
  40. package/dest/browser/barretenberg_wasm/node/node_endpoint.js +28 -0
  41. package/dest/browser/barretenberg_wasm/node/worker.d.ts.map +1 -0
  42. package/dest/browser/barretenberg_wasm/node/worker.js +9 -0
  43. package/dest/browser/bigint-array/index.d.ts.map +1 -0
  44. package/dest/browser/bigint-array/index.js +21 -0
  45. package/dest/browser/bindgen/function_declaration.d.ts.map +1 -0
  46. package/dest/{bindgen → browser/bindgen}/function_declaration.js +1 -1
  47. package/dest/{bindgen → browser/bindgen}/index.d.ts.map +1 -1
  48. package/dest/browser/bindgen/index.js +15 -0
  49. package/dest/browser/bindgen/mappings.d.ts.map +1 -0
  50. package/dest/{bindgen → browser/bindgen}/mappings.js +1 -1
  51. package/dest/browser/bindgen/rust.d.ts.map +1 -0
  52. package/dest/browser/bindgen/rust.js +43 -0
  53. package/dest/browser/bindgen/to_camel_case.d.ts.map +1 -0
  54. package/dest/browser/bindgen/to_camel_case.js +11 -0
  55. package/dest/browser/bindgen/typescript.d.ts.map +1 -0
  56. package/dest/browser/bindgen/typescript.js +80 -0
  57. package/dest/{crs → browser/crs}/browser/cached_net_crs.d.ts +1 -1
  58. package/dest/browser/crs/browser/cached_net_crs.d.ts.map +1 -0
  59. package/dest/browser/crs/browser/cached_net_crs.js +56 -0
  60. package/dest/browser/crs/browser/index.d.ts.map +1 -0
  61. package/dest/{crs → browser/crs}/browser/index.js +1 -1
  62. package/dest/browser/crs/index.d.ts +2 -0
  63. package/dest/browser/crs/index.d.ts.map +1 -0
  64. package/dest/browser/crs/index.js +2 -0
  65. package/dest/browser/crs/net_crs.d.ts.map +1 -0
  66. package/dest/{crs → browser/crs}/net_crs.js +1 -1
  67. package/dest/browser/crs/node/ignition_files_crs.d.ts.map +1 -0
  68. package/dest/{crs → browser/crs}/node/ignition_files_crs.js +1 -1
  69. package/dest/browser/crs/node/index.d.ts.map +1 -0
  70. package/dest/browser/crs/node/index.js +54 -0
  71. package/dest/browser/examples/simple.test.d.ts.map +1 -0
  72. package/dest/browser/examples/simple.test.js +22 -0
  73. package/dest/browser/factory/index.d.ts.map +1 -0
  74. package/dest/{factory → browser/factory}/index.js +1 -1
  75. package/dest/browser/index.d.ts.map +1 -0
  76. package/dest/{index.js → browser/index.js} +1 -1
  77. package/dest/browser/main.d.ts.map +1 -0
  78. package/dest/browser/main.js +6535 -0
  79. package/dest/browser/random/browser/index.d.ts.map +1 -0
  80. package/dest/{random → browser/random}/browser/index.js +1 -1
  81. package/dest/browser/random/index.d.ts +2 -0
  82. package/dest/browser/random/index.d.ts.map +1 -0
  83. package/dest/browser/random/index.js +2 -0
  84. package/dest/browser/random/node/index.d.ts.map +1 -0
  85. package/dest/browser/random/node/index.js +5 -0
  86. package/dest/browser/serialize/buffer_reader.d.ts.map +1 -0
  87. package/dest/browser/serialize/buffer_reader.js +66 -0
  88. package/dest/browser/serialize/index.d.ts.map +1 -0
  89. package/dest/{serialize → browser/serialize}/index.js +1 -1
  90. package/dest/browser/serialize/output_type.d.ts.map +1 -0
  91. package/dest/browser/serialize/output_type.js +44 -0
  92. package/dest/browser/serialize/serialize.d.ts.map +1 -0
  93. package/dest/browser/serialize/serialize.js +139 -0
  94. package/dest/browser/types/browser/index.d.ts +2 -0
  95. package/dest/browser/types/browser/index.d.ts.map +1 -0
  96. package/dest/browser/types/browser/index.js +2 -0
  97. package/dest/browser/types/browser/point.d.ts +16 -0
  98. package/dest/browser/types/browser/point.d.ts.map +1 -0
  99. package/dest/browser/types/browser/point.js +46 -0
  100. package/dest/browser/types/fields.d.ts.map +1 -0
  101. package/dest/browser/types/fields.js +84 -0
  102. package/dest/browser/types/fixed_size_buffer.d.ts.map +1 -0
  103. package/dest/browser/types/fixed_size_buffer.js +51 -0
  104. package/dest/browser/types/index.d.ts +6 -0
  105. package/dest/browser/types/index.d.ts.map +1 -0
  106. package/dest/browser/types/index.js +6 -0
  107. package/dest/browser/types/node/index.d.ts +2 -0
  108. package/dest/browser/types/node/index.d.ts.map +1 -0
  109. package/dest/browser/types/node/index.js +2 -0
  110. package/dest/{types → browser/types/node}/point.d.ts +2 -2
  111. package/dest/browser/types/node/point.d.ts.map +1 -0
  112. package/dest/browser/types/node/point.js +31 -0
  113. package/dest/browser/types/ptr.d.ts.map +1 -0
  114. package/dest/browser/types/ptr.js +19 -0
  115. package/dest/browser/types/raw_buffer.d.ts.map +1 -0
  116. package/dest/{types → browser/types}/raw_buffer.js +1 -1
  117. package/dest/node/async_map/index.d.ts +10 -0
  118. package/dest/node/async_map/index.d.ts.map +1 -0
  119. package/dest/node/async_map/index.js +16 -0
  120. package/dest/node/barretenberg_api/blake2s.test.d.ts +2 -0
  121. package/dest/node/barretenberg_api/blake2s.test.d.ts.map +1 -0
  122. package/dest/node/barretenberg_api/blake2s.test.js +30 -0
  123. package/dest/node/barretenberg_api/common.test.d.ts +2 -0
  124. package/dest/node/barretenberg_api/common.test.d.ts.map +1 -0
  125. package/dest/node/barretenberg_api/common.test.js +18 -0
  126. package/dest/node/barretenberg_api/index.d.ts +103 -0
  127. package/dest/node/barretenberg_api/index.d.ts.map +1 -0
  128. package/dest/node/barretenberg_api/index.js +379 -0
  129. package/dest/node/barretenberg_api/pedersen.test.d.ts +2 -0
  130. package/dest/node/barretenberg_api/pedersen.test.d.ts.map +1 -0
  131. package/dest/node/barretenberg_api/pedersen.test.js +69 -0
  132. package/dest/node/barretenberg_api/schnorr.test.d.ts +2 -0
  133. package/dest/node/barretenberg_api/schnorr.test.d.ts.map +1 -0
  134. package/dest/node/barretenberg_api/schnorr.test.js +113 -0
  135. package/dest/node/barretenberg_binder/heap_allocator.d.ts +22 -0
  136. package/dest/node/barretenberg_binder/heap_allocator.d.ts.map +1 -0
  137. package/dest/node/barretenberg_binder/heap_allocator.js +59 -0
  138. package/dest/node/barretenberg_binder/heap_allocator_sync.d.ts +22 -0
  139. package/dest/node/barretenberg_binder/heap_allocator_sync.d.ts.map +1 -0
  140. package/dest/node/barretenberg_binder/heap_allocator_sync.js +58 -0
  141. package/dest/node/barretenberg_binder/index.d.ts +32 -0
  142. package/dest/node/barretenberg_binder/index.d.ts.map +1 -0
  143. package/dest/node/barretenberg_binder/index.js +73 -0
  144. package/dest/node/barretenberg_wasm/barretenberg_wasm.d.ts.map +1 -0
  145. package/dest/node/barretenberg_wasm/barretenberg_wasm.js +208 -0
  146. package/dest/node/barretenberg_wasm/barretenberg_wasm.test.d.ts +2 -0
  147. package/dest/node/barretenberg_wasm/barretenberg_wasm.test.d.ts.map +1 -0
  148. package/dest/node/barretenberg_wasm/barretenberg_wasm.test.js +47 -0
  149. package/dest/node/barretenberg_wasm/browser/index.d.ts +8 -0
  150. package/dest/node/barretenberg_wasm/browser/index.d.ts.map +1 -0
  151. package/dest/node/barretenberg_wasm/browser/index.js +29 -0
  152. package/dest/node/barretenberg_wasm/browser/worker.d.ts +2 -0
  153. package/dest/node/barretenberg_wasm/browser/worker.d.ts.map +1 -0
  154. package/dest/node/barretenberg_wasm/browser/worker.js +11 -0
  155. package/dest/node/barretenberg_wasm/index.d.ts +2 -0
  156. package/dest/node/barretenberg_wasm/index.d.ts.map +1 -0
  157. package/dest/node/barretenberg_wasm/index.js +2 -0
  158. package/dest/node/barretenberg_wasm/node/index.d.ts +17 -0
  159. package/dest/node/barretenberg_wasm/node/index.d.ts.map +1 -0
  160. package/dest/node/barretenberg_wasm/node/index.js +40 -0
  161. package/dest/node/barretenberg_wasm/node/node_endpoint.d.ts +8 -0
  162. package/dest/node/barretenberg_wasm/node/node_endpoint.d.ts.map +1 -0
  163. package/dest/node/barretenberg_wasm/node/node_endpoint.js +28 -0
  164. package/dest/node/barretenberg_wasm/node/worker.d.ts +2 -0
  165. package/dest/node/barretenberg_wasm/node/worker.d.ts.map +1 -0
  166. package/dest/node/barretenberg_wasm/node/worker.js +9 -0
  167. package/dest/node/bigint-array/index.d.ts +3 -0
  168. package/dest/node/bigint-array/index.d.ts.map +1 -0
  169. package/dest/node/bigint-array/index.js +21 -0
  170. package/dest/node/bindgen/function_declaration.d.ts +11 -0
  171. package/dest/node/bindgen/function_declaration.d.ts.map +1 -0
  172. package/dest/node/bindgen/function_declaration.js +2 -0
  173. package/dest/node/bindgen/index.d.ts +2 -0
  174. package/dest/node/bindgen/index.d.ts.map +1 -0
  175. package/dest/node/bindgen/index.js +15 -0
  176. package/dest/node/bindgen/mappings.d.ts +4 -0
  177. package/dest/node/bindgen/mappings.d.ts.map +1 -0
  178. package/dest/node/bindgen/mappings.js +63 -0
  179. package/dest/node/bindgen/rust.d.ts +2 -0
  180. package/dest/node/bindgen/rust.d.ts.map +1 -0
  181. package/dest/node/bindgen/rust.js +43 -0
  182. package/dest/node/bindgen/to_camel_case.d.ts +2 -0
  183. package/dest/node/bindgen/to_camel_case.d.ts.map +1 -0
  184. package/dest/node/bindgen/to_camel_case.js +11 -0
  185. package/dest/node/bindgen/typescript.d.ts +2 -0
  186. package/dest/node/bindgen/typescript.d.ts.map +1 -0
  187. package/dest/node/bindgen/typescript.js +80 -0
  188. package/dest/node/crs/browser/cached_net_crs.d.ts +25 -0
  189. package/dest/node/crs/browser/cached_net_crs.d.ts.map +1 -0
  190. package/dest/node/crs/browser/cached_net_crs.js +56 -0
  191. package/dest/node/crs/browser/index.d.ts +2 -0
  192. package/dest/node/crs/browser/index.d.ts.map +1 -0
  193. package/dest/node/crs/browser/index.js +2 -0
  194. package/dest/node/crs/index.d.ts.map +1 -0
  195. package/dest/{crs → node/crs}/index.js +1 -1
  196. package/dest/node/crs/net_crs.d.ts +36 -0
  197. package/dest/node/crs/net_crs.d.ts.map +1 -0
  198. package/dest/node/crs/net_crs.js +59 -0
  199. package/dest/node/crs/node/ignition_files_crs.d.ts +37 -0
  200. package/dest/node/crs/node/ignition_files_crs.d.ts.map +1 -0
  201. package/dest/node/crs/node/ignition_files_crs.js +51 -0
  202. package/dest/node/crs/node/index.d.ts +21 -0
  203. package/dest/node/crs/node/index.d.ts.map +1 -0
  204. package/dest/node/crs/node/index.js +54 -0
  205. package/dest/node/examples/simple.test.d.ts +2 -0
  206. package/dest/node/examples/simple.test.d.ts.map +1 -0
  207. package/dest/node/examples/simple.test.js +22 -0
  208. package/dest/node/factory/index.d.ts +21 -0
  209. package/dest/node/factory/index.d.ts.map +1 -0
  210. package/dest/node/factory/index.js +34 -0
  211. package/dest/node/index.d.ts +6 -0
  212. package/dest/node/index.d.ts.map +1 -0
  213. package/dest/node/index.js +6 -0
  214. package/dest/node/main.d.ts +10 -0
  215. package/dest/node/main.d.ts.map +1 -0
  216. package/dest/node/main.js +276 -0
  217. package/dest/node/random/browser/index.d.ts +2 -0
  218. package/dest/node/random/browser/index.d.ts.map +1 -0
  219. package/dest/node/random/browser/index.js +31 -0
  220. package/dest/node/random/index.d.ts.map +1 -0
  221. package/dest/{random → node/random}/index.js +1 -1
  222. package/dest/node/random/node/index.d.ts +2 -0
  223. package/dest/node/random/node/index.d.ts.map +1 -0
  224. package/dest/node/random/node/index.js +5 -0
  225. package/dest/node/serialize/buffer_reader.d.ts +28 -0
  226. package/dest/node/serialize/buffer_reader.d.ts.map +1 -0
  227. package/dest/node/serialize/buffer_reader.js +66 -0
  228. package/dest/node/serialize/index.d.ts +4 -0
  229. package/dest/node/serialize/index.d.ts.map +1 -0
  230. package/dest/node/serialize/index.js +4 -0
  231. package/dest/node/serialize/output_type.d.ts +11 -0
  232. package/dest/node/serialize/output_type.d.ts.map +1 -0
  233. package/dest/node/serialize/output_type.js +44 -0
  234. package/dest/node/serialize/serialize.d.ts +53 -0
  235. package/dest/node/serialize/serialize.d.ts.map +1 -0
  236. package/dest/node/serialize/serialize.js +139 -0
  237. package/dest/node/types/browser/index.d.ts +2 -0
  238. package/dest/node/types/browser/index.d.ts.map +1 -0
  239. package/dest/node/types/browser/index.js +2 -0
  240. package/dest/node/types/browser/point.d.ts +16 -0
  241. package/dest/node/types/browser/point.d.ts.map +1 -0
  242. package/dest/node/types/browser/point.js +46 -0
  243. package/dest/node/types/fields.d.ts +33 -0
  244. package/dest/node/types/fields.d.ts.map +1 -0
  245. package/dest/node/types/fields.js +84 -0
  246. package/dest/node/types/fixed_size_buffer.d.ts +26 -0
  247. package/dest/node/types/fixed_size_buffer.d.ts.map +1 -0
  248. package/dest/node/types/fixed_size_buffer.js +51 -0
  249. package/dest/{types → node/types}/index.d.ts +1 -1
  250. package/dest/node/types/index.d.ts.map +1 -0
  251. package/dest/{types → node/types}/index.js +2 -2
  252. package/dest/node/types/node/index.d.ts +2 -0
  253. package/dest/node/types/node/index.d.ts.map +1 -0
  254. package/dest/node/types/node/index.js +2 -0
  255. package/dest/node/types/node/point.d.ts +17 -0
  256. package/dest/node/types/node/point.d.ts.map +1 -0
  257. package/dest/node/types/node/point.js +31 -0
  258. package/dest/node/types/ptr.d.ts +13 -0
  259. package/dest/node/types/ptr.d.ts.map +1 -0
  260. package/dest/node/types/ptr.js +19 -0
  261. package/dest/node/types/raw_buffer.d.ts +3 -0
  262. package/dest/node/types/raw_buffer.d.ts.map +1 -0
  263. package/dest/node/types/raw_buffer.js +5 -0
  264. package/package.json +15 -25
  265. package/src/barretenberg_wasm/barretenberg_wasm.test.ts +1 -1
  266. package/src/barretenberg_wasm/barretenberg_wasm.ts +11 -7
  267. package/src/barretenberg_wasm/browser/index.ts +6 -3
  268. package/src/barretenberg_wasm/node/index.ts +2 -2
  269. package/src/crs/browser/cached_net_crs.ts +3 -1
  270. package/src/crs/index.ts +1 -1
  271. package/src/random/index.ts +1 -1
  272. package/src/types/browser/index.ts +1 -0
  273. package/src/types/browser/point.ts +50 -0
  274. package/src/types/index.ts +1 -1
  275. package/src/types/node/index.ts +1 -0
  276. package/src/types/{point.ts → node/point.ts} +2 -2
  277. package/dest/async_map/index.d.ts.map +0 -1
  278. package/dest/barretenberg_api/blake2s.test.d.ts.map +0 -1
  279. package/dest/barretenberg_api/common.test.d.ts.map +0 -1
  280. package/dest/barretenberg_api/common.test.js +0 -18
  281. package/dest/barretenberg_api/index.d.ts.map +0 -1
  282. package/dest/barretenberg_api/index.js +0 -379
  283. package/dest/barretenberg_api/pedersen.test.d.ts.map +0 -1
  284. package/dest/barretenberg_api/pedersen.test.js +0 -69
  285. package/dest/barretenberg_api/schnorr.test.d.ts.map +0 -1
  286. package/dest/barretenberg_binder/heap_allocator.d.ts.map +0 -1
  287. package/dest/barretenberg_binder/heap_allocator_sync.d.ts.map +0 -1
  288. package/dest/barretenberg_binder/index.d.ts.map +0 -1
  289. package/dest/barretenberg_binder/index.js +0 -73
  290. package/dest/barretenberg_wasm/barretenberg_wasm.d.ts.map +0 -1
  291. package/dest/barretenberg_wasm/barretenberg_wasm.js +0 -212
  292. package/dest/barretenberg_wasm/barretenberg_wasm.test.d.ts.map +0 -1
  293. package/dest/barretenberg_wasm/barretenberg_wasm.test.js +0 -47
  294. package/dest/barretenberg_wasm/browser/index.d.ts.map +0 -1
  295. package/dest/barretenberg_wasm/browser/index.js +0 -26
  296. package/dest/barretenberg_wasm/browser/worker.d.ts.map +0 -1
  297. package/dest/barretenberg_wasm/browser/worker.js +0 -11
  298. package/dest/barretenberg_wasm/index.d.ts.map +0 -1
  299. package/dest/barretenberg_wasm/node/index.d.ts.map +0 -1
  300. package/dest/barretenberg_wasm/node/node_endpoint.d.ts.map +0 -1
  301. package/dest/barretenberg_wasm/node/node_endpoint.js +0 -28
  302. package/dest/barretenberg_wasm/node/worker.d.ts.map +0 -1
  303. package/dest/barretenberg_wasm/node/worker.js +0 -9
  304. package/dest/barretenberg_wasm.js +0 -2
  305. package/dest/barretenberg_wasm.js.LICENSE.txt +0 -5
  306. package/dest/bigint-array/index.d.ts.map +0 -1
  307. package/dest/bigint-array/index.js +0 -21
  308. package/dest/bindgen/function_declaration.d.ts.map +0 -1
  309. package/dest/bindgen/index.js +0 -15
  310. package/dest/bindgen/mappings.d.ts.map +0 -1
  311. package/dest/bindgen/rust.d.ts.map +0 -1
  312. package/dest/bindgen/rust.js +0 -43
  313. package/dest/bindgen/to_camel_case.d.ts.map +0 -1
  314. package/dest/bindgen/to_camel_case.js +0 -11
  315. package/dest/bindgen/typescript.d.ts.map +0 -1
  316. package/dest/bindgen/typescript.js +0 -80
  317. package/dest/crs/browser/cached_net_crs.d.ts.map +0 -1
  318. package/dest/crs/browser/cached_net_crs.js +0 -54
  319. package/dest/crs/browser/index.d.ts.map +0 -1
  320. package/dest/crs/index.d.ts.map +0 -1
  321. package/dest/crs/net_crs.d.ts.map +0 -1
  322. package/dest/crs/node/ignition_files_crs.d.ts.map +0 -1
  323. package/dest/crs/node/index.d.ts.map +0 -1
  324. package/dest/crs/node/index.js +0 -54
  325. package/dest/examples/simple.rawtest.d.ts +0 -2
  326. package/dest/examples/simple.rawtest.d.ts.map +0 -1
  327. package/dest/examples/simple.rawtest.js +0 -29
  328. package/dest/examples/simple.test.d.ts.map +0 -1
  329. package/dest/examples/simple.test.js +0 -22
  330. package/dest/factory/index.d.ts.map +0 -1
  331. package/dest/index.d.ts.map +0 -1
  332. package/dest/index.html +0 -1
  333. package/dest/main.d.ts.map +0 -1
  334. package/dest/main.js +0 -276
  335. package/dest/random/browser/index.d.ts.map +0 -1
  336. package/dest/random/index.d.ts.map +0 -1
  337. package/dest/random/node/index.d.ts.map +0 -1
  338. package/dest/random/node/index.js +0 -5
  339. package/dest/serialize/buffer_reader.d.ts.map +0 -1
  340. package/dest/serialize/buffer_reader.js +0 -66
  341. package/dest/serialize/index.d.ts.map +0 -1
  342. package/dest/serialize/output_type.d.ts.map +0 -1
  343. package/dest/serialize/output_type.js +0 -44
  344. package/dest/serialize/serialize.d.ts.map +0 -1
  345. package/dest/serialize/serialize.js +0 -139
  346. package/dest/simple_test.js +0 -2
  347. package/dest/simple_test.js.LICENSE.txt +0 -14
  348. package/dest/types/fields.d.ts.map +0 -1
  349. package/dest/types/fields.js +0 -86
  350. package/dest/types/fixed_size_buffer.d.ts.map +0 -1
  351. package/dest/types/fixed_size_buffer.js +0 -54
  352. package/dest/types/index.d.ts.map +0 -1
  353. package/dest/types/point.d.ts.map +0 -1
  354. package/dest/types/point.js +0 -32
  355. package/dest/types/ptr.d.ts.map +0 -1
  356. package/dest/types/ptr.js +0 -20
  357. package/dest/types/raw_buffer.d.ts.map +0 -1
  358. package/src/examples/simple.rawtest.ts +0 -37
  359. /package/dest/{async_map → browser/async_map}/index.d.ts +0 -0
  360. /package/dest/{barretenberg_api → browser/barretenberg_api}/blake2s.test.d.ts +0 -0
  361. /package/dest/{barretenberg_api → browser/barretenberg_api}/common.test.d.ts +0 -0
  362. /package/dest/{barretenberg_api → browser/barretenberg_api}/index.d.ts +0 -0
  363. /package/dest/{barretenberg_api → browser/barretenberg_api}/pedersen.test.d.ts +0 -0
  364. /package/dest/{barretenberg_api → browser/barretenberg_api}/schnorr.test.d.ts +0 -0
  365. /package/dest/{barretenberg_binder → browser/barretenberg_binder}/heap_allocator.d.ts +0 -0
  366. /package/dest/{barretenberg_binder → browser/barretenberg_binder}/heap_allocator_sync.d.ts +0 -0
  367. /package/dest/{barretenberg_binder → browser/barretenberg_binder}/index.d.ts +0 -0
  368. /package/dest/{barretenberg_wasm → browser/barretenberg_wasm}/barretenberg_wasm.test.d.ts +0 -0
  369. /package/dest/{barretenberg_wasm → browser/barretenberg_wasm}/browser/worker.d.ts +0 -0
  370. /package/dest/{barretenberg_wasm → browser/barretenberg_wasm}/index.d.ts +0 -0
  371. /package/dest/{barretenberg_wasm → browser/barretenberg_wasm}/node/worker.d.ts +0 -0
  372. /package/dest/{bigint-array → browser/bigint-array}/index.d.ts +0 -0
  373. /package/dest/{bindgen → browser/bindgen}/function_declaration.d.ts +0 -0
  374. /package/dest/{bindgen → browser/bindgen}/index.d.ts +0 -0
  375. /package/dest/{bindgen → browser/bindgen}/mappings.d.ts +0 -0
  376. /package/dest/{bindgen → browser/bindgen}/rust.d.ts +0 -0
  377. /package/dest/{bindgen → browser/bindgen}/to_camel_case.d.ts +0 -0
  378. /package/dest/{bindgen → browser/bindgen}/typescript.d.ts +0 -0
  379. /package/dest/{crs → browser/crs}/browser/index.d.ts +0 -0
  380. /package/dest/{crs → browser/crs}/net_crs.d.ts +0 -0
  381. /package/dest/{crs → browser/crs}/node/ignition_files_crs.d.ts +0 -0
  382. /package/dest/{crs → browser/crs}/node/index.d.ts +0 -0
  383. /package/dest/{examples → browser/examples}/simple.test.d.ts +0 -0
  384. /package/dest/{factory → browser/factory}/index.d.ts +0 -0
  385. /package/dest/{index.d.ts → browser/index.d.ts} +0 -0
  386. /package/dest/{main.d.ts → browser/main.d.ts} +0 -0
  387. /package/dest/{random → browser/random}/browser/index.d.ts +0 -0
  388. /package/dest/{random → browser/random}/node/index.d.ts +0 -0
  389. /package/dest/{serialize → browser/serialize}/buffer_reader.d.ts +0 -0
  390. /package/dest/{serialize → browser/serialize}/index.d.ts +0 -0
  391. /package/dest/{serialize → browser/serialize}/output_type.d.ts +0 -0
  392. /package/dest/{serialize → browser/serialize}/serialize.d.ts +0 -0
  393. /package/dest/{types → browser/types}/fields.d.ts +0 -0
  394. /package/dest/{types → browser/types}/fixed_size_buffer.d.ts +0 -0
  395. /package/dest/{types → browser/types}/ptr.d.ts +0 -0
  396. /package/dest/{types → browser/types}/raw_buffer.d.ts +0 -0
  397. /package/dest/{barretenberg_wasm → node/barretenberg_wasm}/barretenberg_wasm.d.ts +0 -0
  398. /package/dest/{crs → node/crs}/index.d.ts +0 -0
  399. /package/dest/{random → node/random}/index.d.ts +0 -0
@@ -0,0 +1,73 @@
1
+ import { HeapAllocator } from './heap_allocator.js';
2
+ import { asyncMap } from '../async_map/index.js';
3
+ import { HeapAllocatorSync } from './heap_allocator_sync.js';
4
+ /**
5
+ * Calls a WASM export function, handles allocating/freeing of memory, and serializing/deserializing to types.
6
+ *
7
+ * Notes on function binding ABI:
8
+ * All functions can have an arbitrary number of input and output args.
9
+ * All arguments must be pointers.
10
+ * Input args are determined by being const or pointer to const.
11
+ * Output args must come after input args.
12
+ * All input data is big-endian.
13
+ * All output data is big-endian, except output heap alloc pointers.
14
+ * As integer types are converted to/from big-endian form, we shouldn't have to worry about memory alignment. (SURE?)
15
+ * All functions should return void.
16
+ * This binding function is responsible for allocating argument memory (including output memory).
17
+ * Variable length output args are allocated on the heap, and the resulting pointer is written to the output arg ptr,
18
+ * hence the above statement remains true.
19
+ * Binding will free any variable length output args that were allocated on the heap.
20
+ */
21
+ export class BarretenbergBinder {
22
+ constructor(wasm) {
23
+ this.wasm = wasm;
24
+ }
25
+ async callWasmExport(funcName, inArgs, outTypes) {
26
+ const alloc = new HeapAllocator(this.wasm);
27
+ const inPtrs = await alloc.copyToMemory(inArgs);
28
+ const outPtrs = await alloc.getOutputPtrs(outTypes);
29
+ await this.wasm.call(funcName, ...inPtrs, ...outPtrs);
30
+ const outArgs = this.deserializeOutputArgs(outTypes, outPtrs, alloc);
31
+ await alloc.freeAll();
32
+ return outArgs;
33
+ }
34
+ deserializeOutputArgs(outTypes, outPtrs, alloc) {
35
+ return asyncMap(outTypes, async (t, i) => {
36
+ if (t.SIZE_IN_BYTES) {
37
+ const slice = await this.wasm.getMemorySlice(outPtrs[i], outPtrs[i] + t.SIZE_IN_BYTES);
38
+ return t.fromBuffer(slice);
39
+ }
40
+ const slice = await this.wasm.getMemorySlice(outPtrs[i], outPtrs[i] + 4);
41
+ const ptr = new DataView(slice.buffer, slice.byteOffset, slice.byteLength).getUint32(0, true);
42
+ alloc.addOutputPtr(ptr);
43
+ return t.fromBuffer(await this.wasm.getMemorySlice(ptr));
44
+ });
45
+ }
46
+ }
47
+ export class BarretenbergBinderSync {
48
+ constructor(wasm) {
49
+ this.wasm = wasm;
50
+ }
51
+ callWasmExport(funcName, inArgs, outTypes) {
52
+ const alloc = new HeapAllocatorSync(this.wasm);
53
+ const inPtrs = alloc.copyToMemory(inArgs);
54
+ const outPtrs = alloc.getOutputPtrs(outTypes);
55
+ this.wasm.call(funcName, ...inPtrs, ...outPtrs);
56
+ const outArgs = this.deserializeOutputArgs(outTypes, outPtrs, alloc);
57
+ alloc.freeAll();
58
+ return outArgs;
59
+ }
60
+ deserializeOutputArgs(outTypes, outPtrs, alloc) {
61
+ return outTypes.map((t, i) => {
62
+ if (t.SIZE_IN_BYTES) {
63
+ const slice = this.wasm.getMemorySlice(outPtrs[i], outPtrs[i] + t.SIZE_IN_BYTES);
64
+ return t.fromBuffer(slice);
65
+ }
66
+ const slice = this.wasm.getMemorySlice(outPtrs[i], outPtrs[i] + 4);
67
+ const ptr = new DataView(slice.buffer, slice.byteOffset, slice.byteLength).getUint32(0, true);
68
+ alloc.addOutputPtr(ptr);
69
+ return t.fromBuffer(this.wasm.getMemorySlice(ptr));
70
+ });
71
+ }
72
+ }
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX2JpbmRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTdEOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixZQUFtQixJQUErQztRQUEvQyxTQUFJLEdBQUosSUFBSSxDQUEyQztJQUFHLENBQUM7SUFFdEUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxRQUFnQixFQUFFLE1BQW9CLEVBQUUsUUFBc0I7UUFDakYsTUFBTSxLQUFLLEdBQUcsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLE1BQU0sTUFBTSxHQUFHLE1BQU0sS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoRCxNQUFNLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEQsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUN0RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyRSxNQUFNLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN0QixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU8scUJBQXFCLENBQUMsUUFBc0IsRUFBRSxPQUFpQixFQUFFLEtBQW9CO1FBQzNGLE9BQU8sUUFBUSxDQUFDLFFBQVEs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
@@ -0,0 +1,48 @@
1
+ import { Remote } from 'comlink';
2
+ export declare class BarretenbergWasm {
3
+ static MAX_THREADS: number;
4
+ private memStore;
5
+ private memory;
6
+ private instance;
7
+ private workers;
8
+ private remoteWasms;
9
+ private nextWorker;
10
+ private nextThreadId;
11
+ private isThread;
12
+ private logger;
13
+ static new(): Promise<BarretenbergWasm>;
14
+ /**
15
+ * Construct and initialise BarretenbergWasm within a Worker. Return both the worker and the wasm proxy.
16
+ * Used when running in the browser, because we can't block the main thread.
17
+ */
18
+ static newWorker(threads?: number): Promise<{
19
+ worker: globalThis.Worker;
20
+ wasm: BarretenbergWasmWorker;
21
+ }>;
22
+ getNumThreads(): number;
23
+ /**
24
+ * Init as main thread. Spawn child threads.
25
+ */
26
+ init(threads?: number, logger?: (msg: string) => void, initial?: number, maximum?: number): Promise<void>;
27
+ /**
28
+ * Init as worker thread.
29
+ */
30
+ initThread(module: WebAssembly.Module, memory: WebAssembly.Memory): Promise<void>;
31
+ /**
32
+ * Called on main thread. Signals child threads to gracefully exit.
33
+ */
34
+ destroy(): Promise<void>;
35
+ private getImportObj;
36
+ exports(): any;
37
+ /**
38
+ * When returning values from the WASM, use >>> operator to convert signed representation to unsigned representation.
39
+ */
40
+ call(name: string, ...args: any): number;
41
+ memSize(): number;
42
+ getMemorySlice(start: number, end?: number): Uint8Array;
43
+ writeMemory(offset: number, arr: Uint8Array): void;
44
+ private getMemory;
45
+ private stringFromAddress;
46
+ }
47
+ export type BarretenbergWasmWorker = Remote<BarretenbergWasm>;
48
+ //# sourceMappingURL=barretenberg_wasm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"barretenberg_wasm.d.ts","sourceRoot":"","sources":["../../../src/barretenberg_wasm/barretenberg_wasm.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAS,MAAM,SAAS,CAAC;AAexC,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,WAAW,SAAM;IACxB,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAgC;WAE1B,GAAG;IAMvB;;;OAGG;WACiB,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM;;;;IAOvC,aAAa;IAIpB;;OAEG;IACU,IAAI,CACf,OAAO,SAAsD,EAC7D,MAAM,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAY,EACrC,OAAO,SAAK,EACZ,OAAO,SAAU;IAgCnB;;OAEG;IACU,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM;IAO9E;;OAEG;IACU,OAAO;IAIpB,OAAO,CAAC,YAAY;IAwFb,OAAO,IAAI,GAAG;IAIrB;;OAEG;IACI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG;IAkB/B,OAAO;IAIP,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;IAI1C,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU;IAOlD,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,iBAAiB;CAQ1B;AAED,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,208 @@
1
+ import { EventEmitter } from 'events';
2
+ import createDebug from 'debug';
3
+ import { proxy } from 'comlink';
4
+ import { randomBytes } from '../random/index.js';
5
+ import { fetchCode, getNumCpu, createWorker, getRemoteBarretenbergWasm, threadLogger, killSelf, } from './browser/index.js';
6
+ const debug = createDebug('bb.js:wasm');
7
+ EventEmitter.defaultMaxListeners = 30;
8
+ export class BarretenbergWasm {
9
+ constructor() {
10
+ this.memStore = {};
11
+ this.workers = [];
12
+ this.remoteWasms = [];
13
+ this.nextWorker = 0;
14
+ this.nextThreadId = 1;
15
+ this.isThread = false;
16
+ this.logger = debug;
17
+ }
18
+ static async new() {
19
+ const barretenberg = new BarretenbergWasm();
20
+ await barretenberg.init(1);
21
+ return barretenberg;
22
+ }
23
+ /**
24
+ * Construct and initialise BarretenbergWasm within a Worker. Return both the worker and the wasm proxy.
25
+ * Used when running in the browser, because we can't block the main thread.
26
+ */
27
+ static async newWorker(threads) {
28
+ const worker = createWorker();
29
+ const wasm = getRemoteBarretenbergWasm(worker);
30
+ await wasm.init(threads, proxy(debug));
31
+ return { worker, wasm };
32
+ }
33
+ getNumThreads() {
34
+ return this.workers.length + 1;
35
+ }
36
+ /**
37
+ * Init as main thread. Spawn child threads.
38
+ */
39
+ async init(threads = Math.min(getNumCpu(), BarretenbergWasm.MAX_THREADS), logger = debug, initial = 25, maximum = 2 ** 16) {
40
+ this.logger = logger;
41
+ const initialMb = (initial * 2 ** 16) / (1024 * 1024);
42
+ const maxMb = (maximum * 2 ** 16) / (1024 * 1024);
43
+ this.logger(`initial mem: ${initial} pages, ${initialMb}MiB. ` +
44
+ `max mem: ${maximum} pages, ${maxMb}MiB. ` +
45
+ `threads: ${threads}`);
46
+ this.memory = new WebAssembly.Memory({ initial, maximum, shared: threads > 1 });
47
+ // Annoyingly the wasm declares if it's memory is shared or not. So now we need two wasms if we want to be
48
+ // able to fallback on "non shared memory" situations.
49
+ const code = await fetchCode(threads > 1);
50
+ const { instance, module } = await WebAssembly.instantiate(code, this.getImportObj(this.memory));
51
+ this.instance = instance;
52
+ // Init all global/static data.
53
+ this.call('_initialize');
54
+ // Create worker threads. Create 1 less than requested, as main thread counts as a thread.
55
+ this.logger('creating worker threads...');
56
+ this.workers = (await Promise.all(Array.from({ length: threads - 1 }).map(createWorker)));
57
+ this.remoteWasms = await Promise.all(this.workers.map(getRemoteBarretenbergWasm));
58
+ await Promise.all(this.remoteWasms.map(w => w.initThread(module, this.memory)));
59
+ this.logger('init complete.');
60
+ }
61
+ /**
62
+ * Init as worker thread.
63
+ */
64
+ async initThread(module, memory) {
65
+ this.isThread = true;
66
+ this.logger = threadLogger() || this.logger;
67
+ this.memory = memory;
68
+ this.instance = await WebAssembly.instantiate(module, this.getImportObj(this.memory));
69
+ }
70
+ /**
71
+ * Called on main thread. Signals child threads to gracefully exit.
72
+ */
73
+ async destroy() {
74
+ await Promise.all(this.workers.map(w => w.terminate()));
75
+ }
76
+ getImportObj(memory) {
77
+ /* eslint-disable camelcase */
78
+ const importObj = {
79
+ // We need to implement a part of the wasi api:
80
+ // https://github.com/WebAssembly/WASI/blob/main/phases/snapshot/docs.md
81
+ // We literally only need to support random_get, everything else is noop implementated in barretenberg.wasm.
82
+ wasi_snapshot_preview1: {
83
+ random_get: (out, length) => {
84
+ out = out >>> 0;
85
+ const randomData = randomBytes(length);
86
+ const mem = this.getMemory();
87
+ mem.set(randomData, out);
88
+ },
89
+ clock_time_get: (a1, a2, out) => {
90
+ out = out >>> 0;
91
+ const ts = BigInt(new Date().getTime()) * 1000000n;
92
+ const view = new DataView(this.getMemory().buffer);
93
+ view.setBigUint64(out, ts, true);
94
+ },
95
+ proc_exit: () => {
96
+ this.logger('PANIC: proc_exit was called. This is maybe caused by "joining" with unstable wasi pthreads.');
97
+ this.logger(new Error().stack);
98
+ killSelf();
99
+ },
100
+ },
101
+ wasi: {
102
+ 'thread-spawn': (arg) => {
103
+ arg = arg >>> 0;
104
+ const id = this.nextThreadId++;
105
+ const worker = this.nextWorker++ % this.remoteWasms.length;
106
+ // this.logger(`spawning thread ${id} on worker ${worker} with arg ${arg >>> 0}`);
107
+ this.remoteWasms[worker].call('wasi_thread_start', id, arg).catch(this.logger);
108
+ // this.remoteWasms[worker].postMessage({ msg: 'thread', data: { id, arg } });
109
+ return id;
110
+ },
111
+ },
112
+ // These are functions implementations for imports we've defined are needed.
113
+ // The native C++ build defines these in a module called "env". We must implement TypeScript versions here.
114
+ env: {
115
+ env_hardware_concurrency: () => {
116
+ // If there are no workers (we're already running as a worker, or the main thread requested no workers)
117
+ // then we return 1, which should cause any algos using threading to just not create a thread.
118
+ return this.remoteWasms.length + 1;
119
+ },
120
+ /**
121
+ * The 'info' call we use for logging in C++, calls this under the hood.
122
+ * The native code will just print to std:err (to avoid std::cout which is used for IPC).
123
+ * Here we just emit the log line for the client to decide what to do with.
124
+ */
125
+ logstr: (addr) => {
126
+ const str = this.stringFromAddress(addr);
127
+ const m = this.getMemory();
128
+ const str2 = `${str} (mem: ${(m.length / (1024 * 1024)).toFixed(2)}MiB)`;
129
+ this.logger(str2);
130
+ if (str2.startsWith('WARNING:')) {
131
+ this.logger(new Error().stack);
132
+ }
133
+ },
134
+ get_data: (keyAddr, outBufAddr) => {
135
+ const key = this.stringFromAddress(keyAddr);
136
+ outBufAddr = outBufAddr >>> 0;
137
+ const data = this.memStore[key];
138
+ if (!data) {
139
+ this.logger(`get_data miss ${key}`);
140
+ return;
141
+ }
142
+ // this.logger(`get_data hit ${key} size: ${data.length} dest: ${outBufAddr}`);
143
+ // this.logger(Buffer.from(data.slice(0, 64)).toString('hex'));
144
+ this.writeMemory(outBufAddr, data);
145
+ },
146
+ set_data: (keyAddr, dataAddr, dataLength) => {
147
+ const key = this.stringFromAddress(keyAddr);
148
+ dataAddr = dataAddr >>> 0;
149
+ this.memStore[key] = this.getMemorySlice(dataAddr, dataAddr + dataLength).slice();
150
+ // this.logger(`set_data: ${key} length: ${dataLength}`);
151
+ },
152
+ memory,
153
+ },
154
+ };
155
+ /* eslint-enable camelcase */
156
+ return importObj;
157
+ }
158
+ exports() {
159
+ return this.instance.exports;
160
+ }
161
+ /**
162
+ * When returning values from the WASM, use >>> operator to convert signed representation to unsigned representation.
163
+ */
164
+ call(name, ...args) {
165
+ if (!this.exports()[name]) {
166
+ throw new Error(`WASM function ${name} not found.`);
167
+ }
168
+ try {
169
+ return this.exports()[name](...args) >>> 0;
170
+ }
171
+ catch (err) {
172
+ const message = `WASM function ${name} aborted, error: ${err}`;
173
+ this.logger(message);
174
+ this.logger(err.stack);
175
+ if (this.isThread) {
176
+ killSelf();
177
+ }
178
+ else {
179
+ throw err;
180
+ }
181
+ }
182
+ }
183
+ memSize() {
184
+ return this.getMemory().length;
185
+ }
186
+ getMemorySlice(start, end) {
187
+ return this.getMemory().subarray(start, end);
188
+ }
189
+ writeMemory(offset, arr) {
190
+ const mem = this.getMemory();
191
+ mem.set(arr, offset);
192
+ }
193
+ // PRIVATE METHODS
194
+ getMemory() {
195
+ return new Uint8Array(this.memory.buffer);
196
+ }
197
+ stringFromAddress(addr) {
198
+ addr = addr >>> 0;
199
+ const m = this.getMemory();
200
+ let i = addr;
201
+ for (; m[i] !== 0; ++i)
202
+ ;
203
+ const textDecoder = new TextDecoder('ascii');
204
+ return textDecoder.decode(m.slice(addr, i));
205
+ }
206
+ }
207
+ BarretenbergWasm.MAX_THREADS = 32;
208
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFycmV0ZW5iZXJnX3dhc20uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc20udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN0QyxPQUFPLFdBQVcsTUFBTSxPQUFPLENBQUM7QUFDaEMsT0FBTyxFQUFVLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakQsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsWUFBWSxFQUNaLHlCQUF5QixFQUN6QixZQUFZLEVBQ1osUUFBUSxHQUNULE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBRXhDLFlBQVksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7QUFFdEMsTUFBTSxPQUFPLGdCQUFnQjtJQUE3QjtRQUVVLGFBQVEsR0FBa0MsRUFBRSxDQUFDO1FBRzdDLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFDdkIsZ0JBQVcsR0FBNkIsRUFBRSxDQUFDO1FBQzNDLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFDZixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFdBQU0sR0FBMEIsS0FBSyxDQUFDO0lBMk5oRCxDQUFDO0lBek5RLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRztRQUNyQixNQUFNLFlBQVksR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDNUMsTUFBTSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLFNB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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"barretenberg_wasm.test.d.ts","sourceRoot":"","sources":["../../../src/barretenberg_wasm/barretenberg_wasm.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,47 @@
1
+ import { BarretenbergWasm } from './barretenberg_wasm.js';
2
+ describe('barretenberg wasm', () => {
3
+ let wasm;
4
+ beforeAll(async () => {
5
+ wasm = await BarretenbergWasm.new();
6
+ });
7
+ afterAll(async () => {
8
+ await wasm.destroy();
9
+ });
10
+ it('should new malloc, transfer and slice mem', () => {
11
+ const length = 1024;
12
+ const ptr = wasm.call('bbmalloc', length);
13
+ const buf = Buffer.alloc(length, 128);
14
+ wasm.writeMemory(ptr, buf);
15
+ const result = Buffer.from(wasm.getMemorySlice(ptr, ptr + length));
16
+ wasm.call('bbfree', ptr);
17
+ expect(result).toStrictEqual(buf);
18
+ });
19
+ it('test abort', () => {
20
+ expect(() => wasm.call('test_abort')).toThrow();
21
+ });
22
+ it('test c/c++ stdout/stderr', () => {
23
+ // We're checking we don't crash, but you can manually confirm you see log lines handled by logstr.
24
+ wasm.call('test_stdout_stderr');
25
+ });
26
+ });
27
+ describe('barretenberg wasm worker', () => {
28
+ let worker;
29
+ let wasm;
30
+ beforeAll(async () => {
31
+ ({ wasm, worker } = (await BarretenbergWasm.newWorker(2)));
32
+ }, 20000);
33
+ afterAll(async () => {
34
+ await wasm.destroy();
35
+ await worker.terminate();
36
+ });
37
+ it('should new malloc, transfer and slice mem', async () => {
38
+ const length = 1024;
39
+ const ptr = await wasm.call('bbmalloc', length);
40
+ const buf = Buffer.alloc(length, 128);
41
+ await wasm.writeMemory(ptr, buf);
42
+ const result = Buffer.from(await wasm.getMemorySlice(ptr, ptr + length));
43
+ await wasm.call('bbfree', ptr);
44
+ expect(result).toStrictEqual(buf);
45
+ });
46
+ });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFycmV0ZW5iZXJnX3dhc20udGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmdfd2FzbS9iYXJyZXRlbmJlcmdfd2FzbS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBMEIsTUFBTSx3QkFBd0IsQ0FBQztBQUVsRixRQUFRLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFO0lBQ2pDLElBQUksSUFBdUIsQ0FBQztJQUU1QixTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDbkIsSUFBSSxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDbEIsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMkNBQTJDLEVBQUUsR0FBRyxFQUFFO1FBQ25ELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQztRQUNwQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMxQyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMzQixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtRQUNwQixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xELENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDBCQUEwQixFQUFFLEdBQUcsRUFBRTtRQUNsQyxtR0FBbUc7UUFDbkcsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ2xDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxRQUFRLENBQUMsMEJBQTBCLEVBQUUsR0FBRyxFQUFFO0lBQ3hDLElBQUksTUFBZSxDQUFDO0lBQ3BCLElBQUksSUFBNkIsQ0FBQztJQUVsQyxTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDbkIsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFRLENBQUMsQ0FBQztJQUNwRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFVixRQUFRLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDbEIsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckIsTUFBTSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMkNBQTJDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDekQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdEMsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNqQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDekUsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvQixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==
@@ -1,5 +1,5 @@
1
1
  import { BarretenbergWasmWorker } from '../barretenberg_wasm.js';
2
- export declare function fetchCode(name: string): Promise<ArrayBuffer>;
2
+ export declare function fetchCode(multithreading: boolean): Promise<ArrayBuffer>;
3
3
  export declare function createWorker(): Worker;
4
4
  export declare function getRemoteBarretenbergWasm(worker: Worker): BarretenbergWasmWorker;
5
5
  export declare function getNumCpu(): number;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/barretenberg_wasm/browser/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAyB,MAAM,yBAAyB,CAAC;AAGxF,wBAAsB,SAAS,CAAC,cAAc,EAAE,OAAO,wBAMtD;AAED,wBAAgB,YAAY,WAM3B;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB,CAEhF;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,29 @@
1
+ import { wrap } from 'comlink';
2
+ import debug from 'debug';
3
+ export async function fetchCode(multithreading) {
4
+ const wasmModuleUrl = multithreading
5
+ ? new URL(`../../../barretenberg-threads.wasm`, import.meta.url)
6
+ : new URL(`../../../barretenberg.wasm`, import.meta.url);
7
+ const res = await fetch(wasmModuleUrl.href);
8
+ return await res.arrayBuffer();
9
+ }
10
+ export function createWorker() {
11
+ const worker = new Worker(new URL(`./worker.js`, import.meta.url));
12
+ const debugStr = debug.disable();
13
+ debug.enable(debugStr);
14
+ worker.postMessage({ debug: debugStr });
15
+ return worker;
16
+ }
17
+ export function getRemoteBarretenbergWasm(worker) {
18
+ return wrap(worker);
19
+ }
20
+ export function getNumCpu() {
21
+ return navigator.hardwareConcurrency;
22
+ }
23
+ export function threadLogger() {
24
+ return undefined;
25
+ }
26
+ export function killSelf() {
27
+ self.close();
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYnJvd3Nlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRS9CLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUxQixNQUFNLENBQUMsS0FBSyxVQUFVLFNBQVMsQ0FBQyxjQUF1QjtJQUNyRCxNQUFNLGFBQWEsR0FBRyxjQUFjO1FBQ2xDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxpQ0FBaUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUM3RCxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMseUJBQXlCLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4RCxNQUFNLEdBQUcsR0FBRyxNQUFNLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsT0FBTyxNQUFNLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUNqQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVk7SUFDMUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNuRSxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2QixNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDeEMsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxNQUFjO0lBQ3RELE9BQU8sSUFBSSxDQUFtQixNQUFNLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVM7SUFDdkIsT0FBTyxTQUFTLENBQUMsbUJBQW1CLENBQUM7QUFDdkMsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZO0lBQzFCLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUTtJQUN0QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDZixDQUFDIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../../src/barretenberg_wasm/browser/worker.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { expose } from 'comlink';
2
+ import { BarretenbergWasm } 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 BarretenbergWasm());
10
+ self.postMessage({ ready: true });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JhcnJldGVuYmVyZ193YXNtL2Jyb3dzZXIvd29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDakMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUxQixJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQztJQUMxQixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1FBQ2hCLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM1QjtBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFJLGdCQUFnQixFQUFFLENBQUMsQ0FBQztBQUUvQixJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/barretenberg_wasm/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
@@ -1,2 +1,2 @@
1
1
  export * from './barretenberg_wasm.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQyJ9
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQyJ9
@@ -2,7 +2,7 @@
2
2
  /// <reference types="node" resolution-mode="require"/>
3
3
  import { Worker } from 'worker_threads';
4
4
  import { type BarretenbergWasmWorker } from '../barretenberg_wasm.js';
5
- export declare function fetchCode(name: string): Promise<Buffer>;
5
+ export declare function fetchCode(multithreading: boolean): Promise<Buffer>;
6
6
  export declare function createWorker(): Worker;
7
7
  export declare function getRemoteBarretenbergWasm(worker: Worker): BarretenbergWasmWorker;
8
8
  export declare function getNumCpu(): number;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/barretenberg_wasm/node/index.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAKxC,OAAO,EAAyB,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAK7F,wBAAsB,SAAS,CAAC,cAAc,EAAE,OAAO,mBAGtD;AAED,wBAAgB,YAAY,WAG3B;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB,CAEhF;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"}
@@ -6,9 +6,9 @@ import os from 'os';
6
6
  import { wrap } from 'comlink';
7
7
  import { nodeEndpoint } from './node_endpoint.js';
8
8
  import { writeSync } from 'fs';
9
- export async function fetchCode(name) {
9
+ export async function fetchCode(multithreading) {
10
10
  const __dirname = dirname(fileURLToPath(import.meta.url));
11
- return await readFile(__dirname + '/../../' + name);
11
+ return await readFile(__dirname + `/../../${multithreading ? 'barretenberg-threads.wasm' : 'barretenberg.wasm'}`);
12
12
  }
13
13
  export function createWorker() {
14
14
  const __dirname = dirname(fileURLToPath(import.meta.url));
@@ -37,4 +37,4 @@ export function killSelf() {
37
37
  process.kill(process.pid);
38
38
  throw new Error();
39
39
  }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vbm9kZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBRXBCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFFL0IsTUFBTSxDQUFDLEtBQUssVUFBVSxTQUFTLENBQUMsSUFBWTtJQUMxQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxRCxPQUFPLE1BQU0sUUFBUSxDQUFDLFNBQVMsR0FBRyxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDdEQsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZO0lBQzFCLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFELE9BQU8sSUFBSSxNQUFNLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQUMsTUFBYztJQUN0RCxPQUFPLElBQUksQ0FBbUIsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUEyQixDQUFDO0FBQ2hGLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUztJQUN2QixPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUM7QUFDMUIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFlBQVk7SUFDMUIsT0FBTyxDQUFDLEdBQVcsRUFBRSxFQUFFO1FBQ3JCLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUTtJQUN0QixrSEFBa0g7SUFDbEgsb0VBQW9FO0lBQ3BFLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLE1BQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQztBQUNwQixDQUFDIn0=
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vbm9kZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBRXBCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFFL0IsTUFBTSxDQUFDLEtBQUssVUFBVSxTQUFTLENBQUMsY0FBdUI7SUFDckQsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDMUQsT0FBTyxNQUFNLFFBQVEsQ0FBQyxTQUFTLEdBQUcsVUFBVSxjQUFjLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUM7QUFDcEgsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZO0lBQzFCLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFELE9BQU8sSUFBSSxNQUFNLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQUMsTUFBYztJQUN0RCxPQUFPLElBQUksQ0FBbUIsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUEyQixDQUFDO0FBQ2hGLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUztJQUN2QixPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUM7QUFDMUIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFlBQVk7SUFDMUIsT0FBTyxDQUFDLEdBQVcsRUFBRSxFQUFFO1FBQ3JCLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUTtJQUN0QixrSEFBa0g7SUFDbEgsb0VBQW9FO0lBQ3BFLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLE1BQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQztBQUNwQixDQUFDIn0=
@@ -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: (message: any, transfer?: any[] | undefined) => void;
3
+ postMessage: any;
4
4
  addEventListener: (_: any, eh: any) => void;
5
5
  removeEventListener: (_: any, eh: any) => void;
6
- start: (() => void) | undefined;
6
+ start: any;
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/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZV9lbmRwb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmdfd2FzbS9ub2RlL25vZGVfZW5kcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLFlBQVksQ0FBQyxHQUFpQjtJQUM1QyxNQUFNLFNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQ2hDLE9BQU87UUFDTCxXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ3RDLGdCQUFnQixFQUFFLENBQUMsQ0FBTSxFQUFFLEVBQU8sRUFBRSxFQUFFO1lBQ3BDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBUyxFQUFFLEVBQUU7Z0JBQ3RCLElBQUksYUFBYSxJQUFJLEVBQUUsRUFBRTtvQkFDdkIsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQzFCO3FCQUFNO29CQUNMLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQ2Q7WUFDSCxDQUFDLENBQUM7WUFDRixHQUFHLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNyQixTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN2QixDQUFDO1FBQ0QsbUJBQW1CLEVBQUUsQ0FBQyxDQUFNLEVBQUUsRUFBTyxFQUFFLEVBQUU7WUFDdkMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsQ0FBQyxFQUFFO2dCQUNOLE9BQU87YUFDUjtZQUNELEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUNELEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztLQUN4QyxDQUFDO0FBQ0osQ0FBQyJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../../src/barretenberg_wasm/node/worker.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { parentPort } from 'worker_threads';
2
+ import { expose } from 'comlink';
3
+ import { BarretenbergWasm } from '../index.js';
4
+ import { nodeEndpoint } from './node_endpoint.js';
5
+ if (!parentPort) {
6
+ throw new Error('No parentPort');
7
+ }
8
+ expose(new BarretenbergWasm(), nodeEndpoint(parentPort));
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JhcnJldGVuYmVyZ193YXNtL25vZGUvd29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFbEQsSUFBSSxDQUFDLFVBQVUsRUFBRTtJQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7Q0FDbEM7QUFFRCxNQUFNLENBQUMsSUFBSSxnQkFBZ0IsRUFBRSxFQUFFLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bigint-array/index.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,UAU3C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,SAAK,cAQxD"}
@@ -0,0 +1,21 @@
1
+ export function toBigIntBE(bytes) {
2
+ // A Buffer in node, *is* a Uint8Array. We can't refuse it's type.
3
+ // However the algo below only works on an actual Uint8Array, hence we make a new one to be safe.
4
+ bytes = new Uint8Array(bytes);
5
+ let bigint = BigInt(0);
6
+ const view = new DataView(bytes.buffer);
7
+ for (let i = 0; i < bytes.byteLength; i++) {
8
+ bigint = (bigint << BigInt(8)) + BigInt(view.getUint8(i));
9
+ }
10
+ return bigint;
11
+ }
12
+ export function toBufferBE(value, byteLength = 32) {
13
+ const bytes = new Uint8Array(byteLength);
14
+ const view = new DataView(bytes.buffer);
15
+ for (let i = 0; i < byteLength; i++) {
16
+ view.setUint8(byteLength - i - 1, Number(value & BigInt(0xff)));
17
+ value >>= BigInt(8);
18
+ }
19
+ return bytes;
20
+ }
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmlnaW50LWFycmF5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxVQUFVLENBQUMsS0FBaUI7SUFDMUMsa0VBQWtFO0lBQ2xFLGlHQUFpRztJQUNqRyxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZCLE1BQU0sSUFBSSxHQUFHLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN6QyxNQUFNLEdBQUcsQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUMzRDtJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQWEsRUFBRSxVQUFVLEdBQUcsRUFBRTtJQUN2RCxNQUFNLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QyxNQUFNLElBQUksR0FBRyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRSxLQUFLLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3JCO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function_declaration.d.ts","sourceRoot":"","sources":["../../../src/bindgen/function_declaration.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,GAAG,EAAE,CAAC;IACd,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB"}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25fZGVjbGFyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmluZGdlbi9mdW5jdGlvbl9kZWNsYXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25fZGVjbGFyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmluZGdlbi9mdW5jdGlvbl9kZWNsYXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bindgen/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bindgen/index.ts"],"names":[],"mappings":""}