@aztec/bb.js 0.5.0 → 0.6.7

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
@@ -1,34 +0,0 @@
1
- import { BarretenbergApi, BarretenbergApiSync } from '../barretenberg_api/index.js';
2
- import { BarretenbergBinder, BarretenbergBinderSync } from '../barretenberg_binder/index.js';
3
- import { BarretenbergWasm } from '../barretenberg_wasm/index.js';
4
- /**
5
- * Returns a single threaded, synchronous, barretenberg api.
6
- * Can be used on the main thread to perform small light-weight requests like hashing etc.
7
- */
8
- export async function newBarretenbergApiSync() {
9
- return new BarretenbergApiSync(new BarretenbergBinderSync(await BarretenbergWasm.new()));
10
- }
11
- export class BarretenbergApiAsync extends BarretenbergApi {
12
- constructor(worker, wasm) {
13
- super(new BarretenbergBinder(wasm));
14
- this.worker = worker;
15
- this.wasm = wasm;
16
- }
17
- async getNumThreads() {
18
- return await this.wasm.getNumThreads();
19
- }
20
- async destroy() {
21
- await this.wasm.destroy();
22
- await this.worker.terminate();
23
- }
24
- }
25
- /**
26
- * Returns a multi threaded, asynchronous, barretenberg api.
27
- * It runs in a worker, and so can be used within the browser to execute long running, multi-threaded requests
28
- * like proof construction etc.
29
- */
30
- export async function newBarretenbergApiAsync(threads) {
31
- const { wasm, worker } = await BarretenbergWasm.newWorker(threads);
32
- return new BarretenbergApiAsync(worker, wasm);
33
- }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0YsT0FBTyxFQUFFLGdCQUFnQixFQUEwQixNQUFNLCtCQUErQixDQUFDO0FBRXpGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsc0JBQXNCO0lBQzFDLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLHNCQUFzQixDQUFDLE1BQU0sZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNGLENBQUM7QUFFRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZUFBZTtJQUN2RCxZQUFvQixNQUFXLEVBQVUsSUFBNEI7UUFDbkUsS0FBSyxDQUFDLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQURsQixXQUFNLEdBQU4sTUFBTSxDQUFLO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBd0I7SUFFckUsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhO1FBQ2pCLE9BQU8sTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDaEMsQ0FBQztDQUNGO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsdUJBQXVCLENBQUMsT0FBZ0I7SUFDNUQsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuRSxPQUFPLElBQUksb0JBQW9CLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2hELENBQUMifQ==
@@ -1,2 +0,0 @@
1
- export * from './point.js';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './point.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHlwZXMvYnJvd3Nlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQyJ9
@@ -1,16 +0,0 @@
1
- import { Fr } from '../index.js';
2
- import { BufferReader } from '../../serialize/buffer_reader.js';
3
- export declare class Point {
4
- readonly x: Fr;
5
- readonly y: Fr;
6
- static SIZE_IN_BYTES: number;
7
- static EMPTY: Point;
8
- constructor(x: Fr, y: Fr);
9
- static random(): Point;
10
- static fromBuffer(buffer: Uint8Array | BufferReader): Point;
11
- static fromString(address: string): Point;
12
- toBuffer(): Uint8Array;
13
- toString(): string;
14
- equals(rhs: Point): boolean;
15
- }
16
- //# sourceMappingURL=point.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../../src/types/browser/point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,qBAAa,KAAK;aAIY,CAAC,EAAE,EAAE;aAAkB,CAAC,EAAE,EAAE;IAHxD,MAAM,CAAC,aAAa,SAAM;IAC1B,MAAM,CAAC,KAAK,QAA+B;gBAEf,CAAC,EAAE,EAAE,EAAkB,CAAC,EAAE,EAAE;IAExD,MAAM,CAAC,MAAM;IAKb,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;IAKnD,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM;IASjC,QAAQ;IASR,QAAQ;IASR,MAAM,CAAC,GAAG,EAAE,KAAK;CAGlB"}
@@ -1,46 +0,0 @@
1
- import { Fr } from '../index.js';
2
- import { BufferReader } from '../../serialize/buffer_reader.js';
3
- export class Point {
4
- constructor(x, y) {
5
- this.x = x;
6
- this.y = y;
7
- }
8
- static random() {
9
- // TODO: This is not a point on the curve!
10
- return new Point(Fr.random(), Fr.random());
11
- }
12
- static fromBuffer(buffer) {
13
- const reader = BufferReader.asReader(buffer);
14
- return new this(Fr.fromBuffer(reader), Fr.fromBuffer(reader));
15
- }
16
- static fromString(address) {
17
- address = address.replace(/^0x/i, '');
18
- const byteValues = new Uint8Array(Math.ceil(address.length / 2));
19
- for (let i = 0; i < byteValues.length; i++) {
20
- byteValues[i] = Number.parseInt(address.substr(i * 2, 2), 16);
21
- }
22
- return Point.fromBuffer(byteValues);
23
- }
24
- toBuffer() {
25
- const xBuffer = this.x.toBuffer();
26
- const yBuffer = this.y.toBuffer();
27
- const combined = new Uint8Array(xBuffer.length + yBuffer.length);
28
- combined.set(xBuffer, 0);
29
- combined.set(yBuffer, xBuffer.length);
30
- return combined;
31
- }
32
- toString() {
33
- const buffer = this.toBuffer();
34
- let hexString = '0x';
35
- for (let i = 0; i < buffer.length; i++) {
36
- hexString += buffer[i].toString(16).padStart(2, '0');
37
- }
38
- return hexString;
39
- }
40
- equals(rhs) {
41
- return this.x.equals(rhs.x) && this.y.equals(rhs.y);
42
- }
43
- }
44
- Point.SIZE_IN_BYTES = 64;
45
- Point.EMPTY = new Point(Fr.ZERO, Fr.ZERO);
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHlwZXMvYnJvd3Nlci9wb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVoRSxNQUFNLE9BQU8sS0FBSztJQUloQixZQUE0QixDQUFLLEVBQWtCLENBQUs7UUFBNUIsTUFBQyxHQUFELENBQUMsQ0FBSTtRQUFrQixNQUFDLEdBQUQsQ0FBQyxDQUFJO0lBQUcsQ0FBQztJQUU1RCxNQUFNLENBQUMsTUFBTTtRQUNYLDBDQUEwQztRQUMxQyxPQUFPLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFpQztRQUNqRCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLE9BQU8sSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBZTtRQUMvQixPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDMUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQy9EO1FBQ0QsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sUUFBUSxHQUFHLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pFLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QyxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsUUFBUTtRQUNOLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMvQixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDckIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdEMsU0FBUyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUN0RDtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDOztBQTVDTSxtQkFBYSxHQUFHLEVBQUUsQ0FBQztBQUNuQixXQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMifQ==
@@ -1,2 +0,0 @@
1
- export * from './point.js';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/node/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './point.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHlwZXMvbm9kZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQyJ9
@@ -1 +0,0 @@
1
- {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../../src/types/node/point.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,qBAAa,KAAK;aAIY,CAAC,EAAE,EAAE;aAAkB,CAAC,EAAE,EAAE;IAHxD,MAAM,CAAC,aAAa,SAAM;IAC1B,MAAM,CAAC,KAAK,QAA+B;gBAEf,CAAC,EAAE,EAAE,EAAkB,CAAC,EAAE,EAAE;IAExD,MAAM,CAAC,MAAM;IAKb,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;IAKnD,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM;IAIjC,QAAQ;IAIR,QAAQ;IAIR,MAAM,CAAC,GAAG,EAAE,KAAK;CAGlB"}
@@ -1,31 +0,0 @@
1
- import { Fr } from '../index.js';
2
- import { BufferReader } from '../../serialize/buffer_reader.js';
3
- export class Point {
4
- constructor(x, y) {
5
- this.x = x;
6
- this.y = y;
7
- }
8
- static random() {
9
- // TODO: This is not a point on the curve!
10
- return new Point(Fr.random(), Fr.random());
11
- }
12
- static fromBuffer(buffer) {
13
- const reader = BufferReader.asReader(buffer);
14
- return new this(Fr.fromBuffer(reader), Fr.fromBuffer(reader));
15
- }
16
- static fromString(address) {
17
- return Point.fromBuffer(Buffer.from(address.replace(/^0x/i, ''), 'hex'));
18
- }
19
- toBuffer() {
20
- return Buffer.concat([this.x.toBuffer(), this.y.toBuffer()]);
21
- }
22
- toString() {
23
- return '0x' + this.toBuffer().toString('hex');
24
- }
25
- equals(rhs) {
26
- return this.x.equals(rhs.x) && this.y.equals(rhs.y);
27
- }
28
- }
29
- Point.SIZE_IN_BYTES = 64;
30
- Point.EMPTY = new Point(Fr.ZERO, Fr.ZERO);
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHlwZXMvbm9kZS9wb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVoRSxNQUFNLE9BQU8sS0FBSztJQUloQixZQUE0QixDQUFLLEVBQWtCLENBQUs7UUFBNUIsTUFBQyxHQUFELENBQUMsQ0FBSTtRQUFrQixNQUFDLEdBQUQsQ0FBQyxDQUFJO0lBQUcsQ0FBQztJQUU1RCxNQUFNLENBQUMsTUFBTTtRQUNYLDBDQUEwQztRQUMxQyxPQUFPLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFpQztRQUNqRCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLE9BQU8sSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBZTtRQUMvQixPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7O0FBN0JNLG1CQUFhLEdBQUcsRUFBRSxDQUFDO0FBQ25CLFdBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyJ9
@@ -1,61 +0,0 @@
1
- import { Bufferable, serializeBufferable, OutputType } from '../serialize/index.js';
2
- import { BarretenbergWasm } from '../barretenberg_wasm/barretenberg_wasm.js';
3
-
4
- /**
5
- * Keeps track of heap allocations so they can be easily freed.
6
- * The WASM memory layout has 1024 bytes of unused "scratch" space at the start (addresses 0-1023).
7
- * We can leverage this for IO rather than making expensive bb_malloc bb_free calls.
8
- * Heap allocations will be created for input/output args that don't fit into the scratch space.
9
- * Input and output args can use the same scratch space as it's assume all input reads will be performed before any
10
- * output writes are performed.
11
- */
12
- export class HeapAllocatorSync {
13
- private allocs: number[] = [];
14
- private inScratchRemaining = 1024;
15
- private outScratchRemaining = 1024;
16
-
17
- constructor(private wasm: BarretenbergWasm) {}
18
-
19
- copyToMemory(bufferable: Bufferable[]) {
20
- return bufferable.map(serializeBufferable).map(buf => {
21
- if (buf.length <= this.inScratchRemaining) {
22
- const ptr = (this.inScratchRemaining -= buf.length);
23
- this.wasm.writeMemory(ptr, buf);
24
- return ptr;
25
- } else {
26
- const ptr = this.wasm.call('bbmalloc', buf.length);
27
- this.wasm.writeMemory(ptr, buf);
28
- this.allocs.push(ptr);
29
- return ptr;
30
- }
31
- });
32
- }
33
-
34
- getOutputPtrs(objs: OutputType[]) {
35
- return objs.map(obj => {
36
- // If the obj is variable length, we need a 4 byte ptr to write the serialized data address to.
37
- // WARNING: 4 only works with WASM as it has 32 bit memory.
38
- const size = obj.SIZE_IN_BYTES || 4;
39
-
40
- if (size <= this.outScratchRemaining) {
41
- return (this.outScratchRemaining -= size);
42
- } else {
43
- const ptr = this.wasm.call('bbmalloc', size);
44
- this.allocs.push(ptr);
45
- return ptr;
46
- }
47
- });
48
- }
49
-
50
- addOutputPtr(ptr: number) {
51
- if (ptr >= 1024) {
52
- this.allocs.push(ptr);
53
- }
54
- }
55
-
56
- freeAll() {
57
- for (const ptr of this.allocs) {
58
- this.wasm.call('bbfree', ptr);
59
- }
60
- }
61
- }
@@ -1,250 +0,0 @@
1
- import { type Worker } from 'worker_threads';
2
- import { EventEmitter } from 'events';
3
- import createDebug from 'debug';
4
- import { Remote, proxy } from 'comlink';
5
- import { randomBytes } from '../random/index.js';
6
- import {
7
- fetchCode,
8
- getNumCpu,
9
- createWorker,
10
- getRemoteBarretenbergWasm,
11
- threadLogger,
12
- killSelf,
13
- } from 'dynamic/barretenberg_wasm';
14
-
15
- const debug = createDebug('bb.js:wasm');
16
-
17
- EventEmitter.defaultMaxListeners = 30;
18
-
19
- export class BarretenbergWasm {
20
- static MAX_THREADS = 32;
21
- private memStore: { [key: string]: Uint8Array } = {};
22
- private memory!: WebAssembly.Memory;
23
- private instance!: WebAssembly.Instance;
24
- private workers: Worker[] = [];
25
- private remoteWasms: BarretenbergWasmWorker[] = [];
26
- private nextWorker = 0;
27
- private nextThreadId = 1;
28
- private isThread = false;
29
- private logger: (msg: string) => void = debug;
30
-
31
- public static async new() {
32
- const barretenberg = new BarretenbergWasm();
33
- await barretenberg.init(1);
34
- return barretenberg;
35
- }
36
-
37
- /**
38
- * Construct and initialise BarretenbergWasm within a Worker. Return both the worker and the wasm proxy.
39
- * Used when running in the browser, because we can't block the main thread.
40
- */
41
- public static async newWorker(threads?: number) {
42
- const worker = createWorker();
43
- const wasm = getRemoteBarretenbergWasm(worker);
44
- await wasm.init(threads, proxy(debug));
45
- return { worker, wasm };
46
- }
47
-
48
- public getNumThreads() {
49
- return this.workers.length + 1;
50
- }
51
-
52
- /**
53
- * Init as main thread. Spawn child threads.
54
- */
55
- public async init(
56
- threads = Math.min(getNumCpu(), BarretenbergWasm.MAX_THREADS),
57
- logger: (msg: string) => void = debug,
58
- initial = 25,
59
- maximum = 2 ** 16,
60
- ) {
61
- this.logger = logger;
62
-
63
- const initialMb = (initial * 2 ** 16) / (1024 * 1024);
64
- const maxMb = (maximum * 2 ** 16) / (1024 * 1024);
65
- this.logger(
66
- `initial mem: ${initial} pages, ${initialMb}MiB. ` +
67
- `max mem: ${maximum} pages, ${maxMb}MiB. ` +
68
- `threads: ${threads}`,
69
- );
70
-
71
- this.memory = new WebAssembly.Memory({ initial, maximum, shared: threads > 1 });
72
-
73
- // Annoyingly the wasm declares if it's memory is shared or not. So now we need two wasms if we want to be
74
- // able to fallback on "non shared memory" situations.
75
- const code = await fetchCode(threads > 1);
76
- const { instance, module } = await WebAssembly.instantiate(code, this.getImportObj(this.memory));
77
-
78
- this.instance = instance;
79
-
80
- // Init all global/static data.
81
- this.call('_initialize');
82
-
83
- // Create worker threads. Create 1 less than requested, as main thread counts as a thread.
84
- this.logger('creating worker threads...');
85
- this.workers = (await Promise.all(Array.from({ length: threads - 1 }).map(createWorker))) as any;
86
- this.remoteWasms = await Promise.all(this.workers.map(getRemoteBarretenbergWasm as any));
87
- await Promise.all(this.remoteWasms.map(w => w.initThread(module, this.memory)));
88
- this.logger('init complete.');
89
- }
90
-
91
- /**
92
- * Init as worker thread.
93
- */
94
- public async initThread(module: WebAssembly.Module, memory: WebAssembly.Memory) {
95
- this.isThread = true;
96
- this.logger = threadLogger() || this.logger;
97
- this.memory = memory;
98
- this.instance = await WebAssembly.instantiate(module, this.getImportObj(this.memory));
99
- }
100
-
101
- /**
102
- * Called on main thread. Signals child threads to gracefully exit.
103
- */
104
- public async destroy() {
105
- await Promise.all(this.workers.map(w => w.terminate()));
106
- }
107
-
108
- private getImportObj(memory: WebAssembly.Memory) {
109
- /* eslint-disable camelcase */
110
- const importObj = {
111
- // We need to implement a part of the wasi api:
112
- // https://github.com/WebAssembly/WASI/blob/main/phases/snapshot/docs.md
113
- // We literally only need to support random_get, everything else is noop implementated in barretenberg.wasm.
114
- wasi_snapshot_preview1: {
115
- random_get: (out: any, length: number) => {
116
- out = out >>> 0;
117
- const randomData = randomBytes(length);
118
- const mem = this.getMemory();
119
- mem.set(randomData, out);
120
- },
121
- clock_time_get: (a1: number, a2: number, out: number) => {
122
- out = out >>> 0;
123
- const ts = BigInt(new Date().getTime()) * 1000000n;
124
- const view = new DataView(this.getMemory().buffer);
125
- view.setBigUint64(out, ts, true);
126
- },
127
- proc_exit: () => {
128
- this.logger('PANIC: proc_exit was called. This is maybe caused by "joining" with unstable wasi pthreads.');
129
- this.logger(new Error().stack!);
130
- killSelf();
131
- },
132
- },
133
- wasi: {
134
- 'thread-spawn': (arg: number) => {
135
- arg = arg >>> 0;
136
- const id = this.nextThreadId++;
137
- const worker = this.nextWorker++ % this.remoteWasms.length;
138
- // this.logger(`spawning thread ${id} on worker ${worker} with arg ${arg >>> 0}`);
139
- this.remoteWasms[worker].call('wasi_thread_start', id, arg).catch(this.logger);
140
- // this.remoteWasms[worker].postMessage({ msg: 'thread', data: { id, arg } });
141
- return id;
142
- },
143
- },
144
-
145
- // These are functions implementations for imports we've defined are needed.
146
- // The native C++ build defines these in a module called "env". We must implement TypeScript versions here.
147
- env: {
148
- env_hardware_concurrency: () => {
149
- // If there are no workers (we're already running as a worker, or the main thread requested no workers)
150
- // then we return 1, which should cause any algos using threading to just not create a thread.
151
- return this.remoteWasms.length + 1;
152
- },
153
- /**
154
- * The 'info' call we use for logging in C++, calls this under the hood.
155
- * The native code will just print to std:err (to avoid std::cout which is used for IPC).
156
- * Here we just emit the log line for the client to decide what to do with.
157
- */
158
- logstr: (addr: number) => {
159
- const str = this.stringFromAddress(addr);
160
- const m = this.getMemory();
161
- const str2 = `${str} (mem: ${(m.length / (1024 * 1024)).toFixed(2)}MiB)`;
162
- this.logger(str2);
163
- if (str2.startsWith('WARNING:')) {
164
- this.logger(new Error().stack!);
165
- }
166
- },
167
-
168
- get_data: (keyAddr: number, outBufAddr: number) => {
169
- const key = this.stringFromAddress(keyAddr);
170
- outBufAddr = outBufAddr >>> 0;
171
- const data = this.memStore[key];
172
- if (!data) {
173
- this.logger(`get_data miss ${key}`);
174
- return;
175
- }
176
- // this.logger(`get_data hit ${key} size: ${data.length} dest: ${outBufAddr}`);
177
- // this.logger(Buffer.from(data.slice(0, 64)).toString('hex'));
178
- this.writeMemory(outBufAddr, data);
179
- },
180
-
181
- set_data: (keyAddr: number, dataAddr: number, dataLength: number) => {
182
- const key = this.stringFromAddress(keyAddr);
183
- dataAddr = dataAddr >>> 0;
184
- this.memStore[key] = this.getMemorySlice(dataAddr, dataAddr + dataLength).slice();
185
- // this.logger(`set_data: ${key} length: ${dataLength}`);
186
- },
187
-
188
- memory,
189
- },
190
- };
191
- /* eslint-enable camelcase */
192
-
193
- return importObj;
194
- }
195
-
196
- public exports(): any {
197
- return this.instance.exports;
198
- }
199
-
200
- /**
201
- * When returning values from the WASM, use >>> operator to convert signed representation to unsigned representation.
202
- */
203
- public call(name: string, ...args: any) {
204
- if (!this.exports()[name]) {
205
- throw new Error(`WASM function ${name} not found.`);
206
- }
207
- try {
208
- return this.exports()[name](...args) >>> 0;
209
- } catch (err: any) {
210
- const message = `WASM function ${name} aborted, error: ${err}`;
211
- this.logger(message);
212
- this.logger(err.stack);
213
- if (this.isThread) {
214
- killSelf();
215
- } else {
216
- throw err;
217
- }
218
- }
219
- }
220
-
221
- public memSize() {
222
- return this.getMemory().length;
223
- }
224
-
225
- public getMemorySlice(start: number, end?: number) {
226
- return this.getMemory().subarray(start, end);
227
- }
228
-
229
- public writeMemory(offset: number, arr: Uint8Array) {
230
- const mem = this.getMemory();
231
- mem.set(arr, offset);
232
- }
233
-
234
- // PRIVATE METHODS
235
-
236
- private getMemory() {
237
- return new Uint8Array(this.memory.buffer);
238
- }
239
-
240
- private stringFromAddress(addr: number) {
241
- addr = addr >>> 0;
242
- const m = this.getMemory();
243
- let i = addr;
244
- for (; m[i] !== 0; ++i);
245
- const textDecoder = new TextDecoder('ascii');
246
- return textDecoder.decode(m.slice(addr, i));
247
- }
248
- }
249
-
250
- export type BarretenbergWasmWorker = Remote<BarretenbergWasm>;
@@ -1,35 +0,0 @@
1
- import { wrap } from 'comlink';
2
- import { BarretenbergWasmWorker, type BarretenbergWasm } from '../barretenberg_wasm.js';
3
- import debug from 'debug';
4
-
5
- export async function fetchCode(multithreading: boolean) {
6
- const wasmModuleUrl = multithreading
7
- ? new URL(`../../barretenberg-threads.wasm`, import.meta.url)
8
- : new URL(`../../barretenberg.wasm`, import.meta.url);
9
- const res = await fetch(wasmModuleUrl.href);
10
- return await res.arrayBuffer();
11
- }
12
-
13
- export function createWorker() {
14
- const worker = new Worker(new URL(`./worker.js`, import.meta.url));
15
- const debugStr = debug.disable();
16
- debug.enable(debugStr);
17
- worker.postMessage({ debug: debugStr });
18
- return worker;
19
- }
20
-
21
- export function getRemoteBarretenbergWasm(worker: Worker): BarretenbergWasmWorker {
22
- return wrap<BarretenbergWasm>(worker);
23
- }
24
-
25
- export function getNumCpu() {
26
- return navigator.hardwareConcurrency;
27
- }
28
-
29
- export function threadLogger(): ((msg: string) => void) | undefined {
30
- return undefined;
31
- }
32
-
33
- export function killSelf() {
34
- self.close();
35
- }
@@ -1,10 +0,0 @@
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
-
6
- if (!parentPort) {
7
- throw new Error('No parentPort');
8
- }
9
-
10
- expose(new BarretenbergWasm(), nodeEndpoint(parentPort));
@@ -1,36 +0,0 @@
1
- import { BarretenbergApi, BarretenbergApiSync } from '../barretenberg_api/index.js';
2
- import { BarretenbergBinder, BarretenbergBinderSync } from '../barretenberg_binder/index.js';
3
- import { BarretenbergWasm, BarretenbergWasmWorker } from '../barretenberg_wasm/index.js';
4
-
5
- /**
6
- * Returns a single threaded, synchronous, barretenberg api.
7
- * Can be used on the main thread to perform small light-weight requests like hashing etc.
8
- */
9
- export async function newBarretenbergApiSync() {
10
- return new BarretenbergApiSync(new BarretenbergBinderSync(await BarretenbergWasm.new()));
11
- }
12
-
13
- export class BarretenbergApiAsync extends BarretenbergApi {
14
- constructor(private worker: any, private wasm: BarretenbergWasmWorker) {
15
- super(new BarretenbergBinder(wasm));
16
- }
17
-
18
- async getNumThreads() {
19
- return await this.wasm.getNumThreads();
20
- }
21
-
22
- async destroy() {
23
- await this.wasm.destroy();
24
- await this.worker.terminate();
25
- }
26
- }
27
-
28
- /**
29
- * Returns a multi threaded, asynchronous, barretenberg api.
30
- * It runs in a worker, and so can be used within the browser to execute long running, multi-threaded requests
31
- * like proof construction etc.
32
- */
33
- export async function newBarretenbergApiAsync(threads?: number) {
34
- const { wasm, worker } = await BarretenbergWasm.newWorker(threads);
35
- return new BarretenbergApiAsync(worker, wasm);
36
- }
@@ -1 +0,0 @@
1
- export * from './point.js';
@@ -1,50 +0,0 @@
1
- import { Fr } from '../index.js';
2
- import { BufferReader } from '../../serialize/buffer_reader.js';
3
-
4
- export class Point {
5
- static SIZE_IN_BYTES = 64;
6
- static EMPTY = new Point(Fr.ZERO, Fr.ZERO);
7
-
8
- constructor(public readonly x: Fr, public readonly y: Fr) {}
9
-
10
- static random() {
11
- // TODO: This is not a point on the curve!
12
- return new Point(Fr.random(), Fr.random());
13
- }
14
-
15
- static fromBuffer(buffer: Uint8Array | BufferReader) {
16
- const reader = BufferReader.asReader(buffer);
17
- return new this(Fr.fromBuffer(reader), Fr.fromBuffer(reader));
18
- }
19
-
20
- static fromString(address: string) {
21
- address = address.replace(/^0x/i, '');
22
- const byteValues = new Uint8Array(Math.ceil(address.length / 2));
23
- for (let i = 0; i < byteValues.length; i++) {
24
- byteValues[i] = Number.parseInt(address.substr(i * 2, 2), 16);
25
- }
26
- return Point.fromBuffer(byteValues);
27
- }
28
-
29
- toBuffer() {
30
- const xBuffer = this.x.toBuffer();
31
- const yBuffer = this.y.toBuffer();
32
- const combined = new Uint8Array(xBuffer.length + yBuffer.length);
33
- combined.set(xBuffer, 0);
34
- combined.set(yBuffer, xBuffer.length);
35
- return combined;
36
- }
37
-
38
- toString() {
39
- const buffer = this.toBuffer();
40
- let hexString = '0x';
41
- for (let i = 0; i < buffer.length; i++) {
42
- hexString += buffer[i].toString(16).padStart(2, '0');
43
- }
44
- return hexString;
45
- }
46
-
47
- equals(rhs: Point) {
48
- return this.x.equals(rhs.x) && this.y.equals(rhs.y);
49
- }
50
- }
@@ -1 +0,0 @@
1
- export * from './point.js';