@aztec/bb.js 0.7.9 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/README.md +1 -10
  2. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
  3. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
  4. package/dest/browser/barretenberg_wasm/fetch_code/node/index.d.ts.map +1 -1
  5. package/dest/browser/crs/node/ignition_files_crs.d.ts.map +1 -1
  6. package/dest/browser/index.js +1 -1
  7. package/dest/node/barretenberg_wasm/barretenberg-threads.wasm +0 -0
  8. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
  9. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +12 -2
  10. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
  11. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +12 -2
  12. package/dest/node/barretenberg_wasm/fetch_code/browser/index.js +3 -3
  13. package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts.map +1 -1
  14. package/dest/node/barretenberg_wasm/fetch_code/node/index.js +12 -2
  15. package/dest/node/bindgen/index.js +3 -3
  16. package/dest/node/bindgen/typescript.js +1 -1
  17. package/dest/node/crs/node/ignition_files_crs.d.ts.map +1 -1
  18. package/dest/node/crs/node/ignition_files_crs.js +12 -2
  19. package/dest/node/info.d.ts +9 -0
  20. package/dest/node/info.d.ts.map +1 -0
  21. package/dest/node/info.js +24 -0
  22. package/dest/node/main.d.ts.map +1 -1
  23. package/dest/node/main.js +9 -3
  24. package/dest/node-cjs/async_map/index.d.ts +10 -0
  25. package/dest/node-cjs/async_map/index.d.ts.map +1 -0
  26. package/dest/node-cjs/async_map/index.js +20 -0
  27. package/dest/node-cjs/barretenberg/index.d.ts +20 -0
  28. package/dest/node-cjs/barretenberg/index.d.ts.map +1 -0
  29. package/dest/node-cjs/barretenberg/index.js +43 -0
  30. package/dest/node-cjs/barretenberg_api/blake2s.test.d.ts +2 -0
  31. package/dest/node-cjs/barretenberg_api/blake2s.test.d.ts.map +1 -0
  32. package/dest/node-cjs/barretenberg_api/blake2s.test.js +32 -0
  33. package/dest/node-cjs/barretenberg_api/common.test.d.ts +2 -0
  34. package/dest/node-cjs/barretenberg_api/common.test.d.ts.map +1 -0
  35. package/dest/node-cjs/barretenberg_api/common.test.js +20 -0
  36. package/dest/node-cjs/barretenberg_api/index.d.ts +53 -0
  37. package/dest/node-cjs/barretenberg_api/index.d.ts.map +1 -0
  38. package/dest/node-cjs/barretenberg_api/index.js +195 -0
  39. package/dest/node-cjs/barretenberg_api/pedersen.test.d.ts +2 -0
  40. package/dest/node-cjs/barretenberg_api/pedersen.test.d.ts.map +1 -0
  41. package/dest/node-cjs/barretenberg_api/pedersen.test.js +71 -0
  42. package/dest/node-cjs/barretenberg_api/schnorr.test.d.ts +2 -0
  43. package/dest/node-cjs/barretenberg_api/schnorr.test.d.ts.map +1 -0
  44. package/dest/node-cjs/barretenberg_api/schnorr.test.js +116 -0
  45. package/dest/node-cjs/barretenberg_binder/heap_allocator.d.ts +22 -0
  46. package/dest/node-cjs/barretenberg_binder/heap_allocator.d.ts.map +1 -0
  47. package/dest/node-cjs/barretenberg_binder/heap_allocator.js +63 -0
  48. package/dest/node-cjs/barretenberg_binder/index.d.ts +26 -0
  49. package/dest/node-cjs/barretenberg_binder/index.d.ts.map +1 -0
  50. package/dest/node-cjs/barretenberg_binder/index.js +57 -0
  51. package/dest/{node → node-cjs/barretenberg_wasm}/barretenberg-threads.wasm +0 -0
  52. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +40 -0
  53. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -0
  54. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.js +128 -0
  55. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +2 -0
  56. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -0
  57. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +15 -0
  58. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +3 -0
  59. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts.map +1 -0
  60. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +15 -0
  61. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +4 -0
  62. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -0
  63. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +22 -0
  64. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +2 -0
  65. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts.map +1 -0
  66. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +11 -0
  67. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +37 -0
  68. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -0
  69. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +87 -0
  70. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +2 -0
  71. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -0
  72. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +15 -0
  73. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +3 -0
  74. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts.map +1 -0
  75. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +15 -0
  76. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +4 -0
  77. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -0
  78. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +22 -0
  79. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +2 -0
  80. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts.map +1 -0
  81. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +11 -0
  82. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +28 -0
  83. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -0
  84. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.js +44 -0
  85. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts +2 -0
  86. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts.map +1 -0
  87. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.js +14 -0
  88. package/dest/node-cjs/barretenberg_wasm/fetch_code/index.d.ts +2 -0
  89. package/dest/node-cjs/barretenberg_wasm/fetch_code/index.d.ts.map +1 -0
  90. package/dest/node-cjs/barretenberg_wasm/fetch_code/index.js +5 -0
  91. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts +3 -0
  92. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts.map +1 -0
  93. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.js +23 -0
  94. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts +6 -0
  95. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -0
  96. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.js +26 -0
  97. package/dest/node-cjs/barretenberg_wasm/helpers/index.d.ts +2 -0
  98. package/dest/node-cjs/barretenberg_wasm/helpers/index.d.ts.map +1 -0
  99. package/dest/node-cjs/barretenberg_wasm/helpers/index.js +5 -0
  100. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts +19 -0
  101. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts.map +1 -0
  102. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.js +45 -0
  103. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts +8 -0
  104. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -0
  105. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.js +32 -0
  106. package/dest/node-cjs/barretenberg_wasm/index.d.ts +14 -0
  107. package/dest/node-cjs/barretenberg_wasm/index.d.ts.map +1 -0
  108. package/dest/node-cjs/barretenberg_wasm/index.js +24 -0
  109. package/dest/node-cjs/barretenberg_wasm/index.test.d.ts +2 -0
  110. package/dest/node-cjs/barretenberg_wasm/index.test.d.ts.map +1 -0
  111. package/dest/node-cjs/barretenberg_wasm/index.test.js +40 -0
  112. package/dest/node-cjs/bigint-array/index.d.ts +3 -0
  113. package/dest/node-cjs/bigint-array/index.d.ts.map +1 -0
  114. package/dest/node-cjs/bigint-array/index.js +26 -0
  115. package/dest/node-cjs/bindgen/function_declaration.d.ts +11 -0
  116. package/dest/node-cjs/bindgen/function_declaration.d.ts.map +1 -0
  117. package/dest/node-cjs/bindgen/function_declaration.js +3 -0
  118. package/dest/node-cjs/bindgen/index.d.ts +2 -0
  119. package/dest/node-cjs/bindgen/index.d.ts.map +1 -0
  120. package/dest/node-cjs/bindgen/index.js +17 -0
  121. package/dest/node-cjs/bindgen/mappings.d.ts +4 -0
  122. package/dest/node-cjs/bindgen/mappings.d.ts.map +1 -0
  123. package/dest/node-cjs/bindgen/mappings.js +68 -0
  124. package/dest/node-cjs/bindgen/rust.d.ts +2 -0
  125. package/dest/node-cjs/bindgen/rust.d.ts.map +1 -0
  126. package/dest/node-cjs/bindgen/rust.js +48 -0
  127. package/dest/node-cjs/bindgen/to_camel_case.d.ts +2 -0
  128. package/dest/node-cjs/bindgen/to_camel_case.d.ts.map +1 -0
  129. package/dest/node-cjs/bindgen/to_camel_case.js +15 -0
  130. package/dest/node-cjs/bindgen/typescript.d.ts +2 -0
  131. package/dest/node-cjs/bindgen/typescript.d.ts.map +1 -0
  132. package/dest/node-cjs/bindgen/typescript.js +52 -0
  133. package/dest/node-cjs/crs/browser/cached_net_crs.d.ts +25 -0
  134. package/dest/node-cjs/crs/browser/cached_net_crs.d.ts.map +1 -0
  135. package/dest/node-cjs/crs/browser/cached_net_crs.js +58 -0
  136. package/dest/node-cjs/crs/browser/index.d.ts +2 -0
  137. package/dest/node-cjs/crs/browser/index.d.ts.map +1 -0
  138. package/dest/node-cjs/crs/browser/index.js +6 -0
  139. package/dest/node-cjs/crs/index.d.ts +2 -0
  140. package/dest/node-cjs/crs/index.d.ts.map +1 -0
  141. package/dest/node-cjs/crs/index.js +6 -0
  142. package/dest/node-cjs/crs/net_crs.d.ts +36 -0
  143. package/dest/node-cjs/crs/net_crs.d.ts.map +1 -0
  144. package/dest/node-cjs/crs/net_crs.js +63 -0
  145. package/dest/node-cjs/crs/node/ignition_files_crs.d.ts +37 -0
  146. package/dest/node-cjs/crs/node/ignition_files_crs.d.ts.map +1 -0
  147. package/dest/node-cjs/crs/node/ignition_files_crs.js +65 -0
  148. package/dest/node-cjs/crs/node/index.d.ts +21 -0
  149. package/dest/node-cjs/crs/node/index.d.ts.map +1 -0
  150. package/dest/node-cjs/crs/node/index.js +59 -0
  151. package/dest/node-cjs/examples/simple.rawtest.d.ts +2 -0
  152. package/dest/node-cjs/examples/simple.rawtest.d.ts.map +1 -0
  153. package/dest/node-cjs/examples/simple.rawtest.js +32 -0
  154. package/dest/node-cjs/examples/simple.test.d.ts +2 -0
  155. package/dest/node-cjs/examples/simple.test.d.ts.map +1 -0
  156. package/dest/node-cjs/examples/simple.test.js +24 -0
  157. package/dest/node-cjs/index.d.ts +4 -0
  158. package/dest/node-cjs/index.d.ts.map +1 -0
  159. package/dest/node-cjs/index.js +10 -0
  160. package/dest/node-cjs/info.d.ts +9 -0
  161. package/dest/node-cjs/info.d.ts.map +1 -0
  162. package/dest/node-cjs/info.js +27 -0
  163. package/dest/node-cjs/main.d.ts +11 -0
  164. package/dest/node-cjs/main.d.ts.map +1 -0
  165. package/dest/node-cjs/main.js +332 -0
  166. package/dest/node-cjs/package.json +3 -0
  167. package/dest/node-cjs/random/browser/index.d.ts +2 -0
  168. package/dest/node-cjs/random/browser/index.d.ts.map +1 -0
  169. package/dest/node-cjs/random/browser/index.js +35 -0
  170. package/dest/node-cjs/random/index.d.ts +2 -0
  171. package/dest/node-cjs/random/index.d.ts.map +1 -0
  172. package/dest/node-cjs/random/index.js +5 -0
  173. package/dest/node-cjs/random/node/index.d.ts +2 -0
  174. package/dest/node-cjs/random/node/index.d.ts.map +1 -0
  175. package/dest/node-cjs/random/node/index.js +9 -0
  176. package/dest/node-cjs/serialize/buffer_reader.d.ts +28 -0
  177. package/dest/node-cjs/serialize/buffer_reader.d.ts.map +1 -0
  178. package/dest/node-cjs/serialize/buffer_reader.js +70 -0
  179. package/dest/node-cjs/serialize/index.d.ts +4 -0
  180. package/dest/node-cjs/serialize/index.d.ts.map +1 -0
  181. package/dest/node-cjs/serialize/index.js +7 -0
  182. package/dest/node-cjs/serialize/output_type.d.ts +11 -0
  183. package/dest/node-cjs/serialize/output_type.d.ts.map +1 -0
  184. package/dest/node-cjs/serialize/output_type.js +52 -0
  185. package/dest/node-cjs/serialize/serialize.d.ts +53 -0
  186. package/dest/node-cjs/serialize/serialize.d.ts.map +1 -0
  187. package/dest/node-cjs/serialize/serialize.js +161 -0
  188. package/dest/node-cjs/types/fields.d.ts +33 -0
  189. package/dest/node-cjs/types/fields.d.ts.map +1 -0
  190. package/dest/node-cjs/types/fields.js +89 -0
  191. package/dest/node-cjs/types/fixed_size_buffer.d.ts +26 -0
  192. package/dest/node-cjs/types/fixed_size_buffer.d.ts.map +1 -0
  193. package/dest/node-cjs/types/fixed_size_buffer.js +57 -0
  194. package/dest/node-cjs/types/index.d.ts +6 -0
  195. package/dest/node-cjs/types/index.d.ts.map +1 -0
  196. package/dest/node-cjs/types/index.js +9 -0
  197. package/dest/node-cjs/types/point.d.ts +17 -0
  198. package/dest/node-cjs/types/point.d.ts.map +1 -0
  199. package/dest/node-cjs/types/point.js +35 -0
  200. package/dest/node-cjs/types/ptr.d.ts +13 -0
  201. package/dest/node-cjs/types/ptr.d.ts.map +1 -0
  202. package/dest/node-cjs/types/ptr.js +23 -0
  203. package/dest/node-cjs/types/raw_buffer.d.ts +3 -0
  204. package/dest/node-cjs/types/raw_buffer.d.ts.map +1 -0
  205. package/dest/node-cjs/types/raw_buffer.js +9 -0
  206. package/package.json +9 -8
  207. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts +11 -1
  208. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts +11 -1
  209. package/src/barretenberg_wasm/fetch_code/browser/index.ts +2 -2
  210. package/src/barretenberg_wasm/fetch_code/node/index.ts +11 -1
  211. package/src/bindgen/index.ts +2 -2
  212. package/src/bindgen/typescript.ts +1 -1
  213. package/src/crs/node/ignition_files_crs.ts +11 -1
  214. package/src/info.ts +23 -0
  215. package/src/main.ts +10 -2
  216. package/cjs-entry/index.cjs +0 -10
  217. package/cjs-entry/index.d.ts +0 -1
  218. package/dest/node/info.json +0 -22
  219. package/src/info.json +0 -22
@@ -0,0 +1,40 @@
1
+ export declare class BarretenbergWasmBase {
2
+ protected memStore: {
3
+ [key: string]: Uint8Array;
4
+ };
5
+ protected memory: WebAssembly.Memory;
6
+ protected instance: WebAssembly.Instance;
7
+ protected logger: (msg: string) => void;
8
+ protected getImportObj(memory: WebAssembly.Memory): {
9
+ wasi_snapshot_preview1: {
10
+ random_get: (out: any, length: number) => void;
11
+ clock_time_get: (a1: number, a2: number, out: number) => void;
12
+ proc_exit: () => never;
13
+ };
14
+ env: {
15
+ /**
16
+ * The 'info' call we use for logging in C++, calls this under the hood.
17
+ * The native code will just print to std:err (to avoid std::cout which is used for IPC).
18
+ * Here we just emit the log line for the client to decide what to do with.
19
+ */
20
+ logstr: (addr: number) => void;
21
+ get_data: (keyAddr: number, outBufAddr: number) => void;
22
+ set_data: (keyAddr: number, dataAddr: number, dataLength: number) => void;
23
+ memory: WebAssembly.Memory;
24
+ };
25
+ };
26
+ exports(): any;
27
+ /**
28
+ * When returning values from the WASM, use >>> operator to convert signed representation to unsigned representation.
29
+ */
30
+ call(name: string, ...args: any): number;
31
+ memSize(): number;
32
+ /**
33
+ * Returns a copy of the data, not a view.
34
+ */
35
+ getMemorySlice(start: number, end: number): Uint8Array;
36
+ writeMemory(offset: number, arr: Uint8Array): void;
37
+ private getMemory;
38
+ private stringFromAddress;
39
+ }
40
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/barretenberg_wasm/barretenberg_wasm_base/index.ts"],"names":[],"mappings":"AAMA,qBAAa,oBAAoB;IAC/B,SAAS,CAAC,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAA;KAAE,CAAM;IACvD,SAAS,CAAC,MAAM,EAAG,WAAW,CAAC,MAAM,CAAC;IACtC,SAAS,CAAC,QAAQ,EAAG,WAAW,CAAC,QAAQ,CAAC;IAC1C,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAS;IAEhD,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM;;8BAOzB,GAAG,UAAU,MAAM;iCAMhB,MAAM,MAAM,MAAM,OAAO,MAAM;;;;YAgBpD;;;;eAIG;2BACY,MAAM;gCAUD,MAAM,cAAc,MAAM;gCAa1B,MAAM,YAAY,MAAM,cAAc,MAAM;;;;IAe/D,OAAO,IAAI,GAAG;IAIrB;;OAEG;IACI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG;IAc/B,OAAO;IAId;;OAEG;IACI,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAIzC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU;IAOlD,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,iBAAiB;CAQ1B"}
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BarretenbergWasmBase = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const debug_1 = tslib_1.__importDefault(require("debug"));
6
+ const index_js_1 = require("../../random/index.js");
7
+ const index_js_2 = require("../helpers/index.js");
8
+ const debug = (0, debug_1.default)('bb.js:wasm');
9
+ class BarretenbergWasmBase {
10
+ constructor() {
11
+ this.memStore = {};
12
+ this.logger = debug;
13
+ }
14
+ getImportObj(memory) {
15
+ /* eslint-disable camelcase */
16
+ const importObj = {
17
+ // We need to implement a part of the wasi api:
18
+ // https://github.com/WebAssembly/WASI/blob/main/phases/snapshot/docs.md
19
+ // We literally only need to support random_get, everything else is noop implementated in barretenberg.wasm.
20
+ wasi_snapshot_preview1: {
21
+ random_get: (out, length) => {
22
+ out = out >>> 0;
23
+ const randomData = (0, index_js_1.randomBytes)(length);
24
+ const mem = this.getMemory();
25
+ mem.set(randomData, out);
26
+ },
27
+ clock_time_get: (a1, a2, out) => {
28
+ out = out >>> 0;
29
+ const ts = BigInt(new Date().getTime()) * 1000000n;
30
+ const view = new DataView(this.getMemory().buffer);
31
+ view.setBigUint64(out, ts, true);
32
+ },
33
+ proc_exit: () => {
34
+ this.logger('PANIC: proc_exit was called. This is maybe caused by "joining" with unstable wasi pthreads.');
35
+ this.logger(new Error().stack);
36
+ (0, index_js_2.killSelf)();
37
+ },
38
+ },
39
+ // These are functions implementations for imports we've defined are needed.
40
+ // The native C++ build defines these in a module called "env". We must implement TypeScript versions here.
41
+ env: {
42
+ /**
43
+ * The 'info' call we use for logging in C++, calls this under the hood.
44
+ * The native code will just print to std:err (to avoid std::cout which is used for IPC).
45
+ * Here we just emit the log line for the client to decide what to do with.
46
+ */
47
+ logstr: (addr) => {
48
+ const str = this.stringFromAddress(addr);
49
+ const m = this.getMemory();
50
+ const str2 = `${str} (mem: ${(m.length / (1024 * 1024)).toFixed(2)}MiB)`;
51
+ this.logger(str2);
52
+ if (str2.startsWith('WARNING:')) {
53
+ this.logger(new Error().stack);
54
+ }
55
+ },
56
+ get_data: (keyAddr, outBufAddr) => {
57
+ const key = this.stringFromAddress(keyAddr);
58
+ outBufAddr = outBufAddr >>> 0;
59
+ const data = this.memStore[key];
60
+ if (!data) {
61
+ this.logger(`get_data miss ${key}`);
62
+ return;
63
+ }
64
+ // this.logger(`get_data hit ${key} size: ${data.length} dest: ${outBufAddr}`);
65
+ // this.logger(Buffer.from(data.slice(0, 64)).toString('hex'));
66
+ this.writeMemory(outBufAddr, data);
67
+ },
68
+ set_data: (keyAddr, dataAddr, dataLength) => {
69
+ const key = this.stringFromAddress(keyAddr);
70
+ dataAddr = dataAddr >>> 0;
71
+ this.memStore[key] = this.getMemorySlice(dataAddr, dataAddr + dataLength);
72
+ // this.logger(`set_data: ${key} length: ${dataLength}`);
73
+ },
74
+ memory,
75
+ },
76
+ };
77
+ /* eslint-enable camelcase */
78
+ return importObj;
79
+ }
80
+ exports() {
81
+ return this.instance.exports;
82
+ }
83
+ /**
84
+ * When returning values from the WASM, use >>> operator to convert signed representation to unsigned representation.
85
+ */
86
+ call(name, ...args) {
87
+ if (!this.exports()[name]) {
88
+ throw new Error(`WASM function ${name} not found.`);
89
+ }
90
+ try {
91
+ return this.exports()[name](...args) >>> 0;
92
+ }
93
+ catch (err) {
94
+ const message = `WASM function ${name} aborted, error: ${err}`;
95
+ this.logger(message);
96
+ this.logger(err.stack);
97
+ throw err;
98
+ }
99
+ }
100
+ memSize() {
101
+ return this.getMemory().length;
102
+ }
103
+ /**
104
+ * Returns a copy of the data, not a view.
105
+ */
106
+ getMemorySlice(start, end) {
107
+ return this.getMemory().subarray(start, end).slice();
108
+ }
109
+ writeMemory(offset, arr) {
110
+ const mem = this.getMemory();
111
+ mem.set(arr, offset);
112
+ }
113
+ // PRIVATE METHODS
114
+ getMemory() {
115
+ return new Uint8Array(this.memory.buffer);
116
+ }
117
+ stringFromAddress(addr) {
118
+ addr = addr >>> 0;
119
+ const m = this.getMemory();
120
+ let i = addr;
121
+ for (; m[i] !== 0; ++i)
122
+ ;
123
+ const textDecoder = new TextDecoder('ascii');
124
+ return textDecoder.decode(m.slice(addr, i));
125
+ }
126
+ }
127
+ exports.BarretenbergWasmBase = BarretenbergWasmBase;
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fYmFzZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMERBQWdDO0FBQ2hDLG9EQUFvRDtBQUNwRCxrREFBK0M7QUFFL0MsTUFBTSxLQUFLLEdBQUcsSUFBQSxlQUFXLEVBQUMsWUFBWSxDQUFDLENBQUM7QUFFeEMsTUFBYSxvQkFBb0I7SUFBakM7UUFDWSxhQUFRLEdBQWtDLEVBQUUsQ0FBQztRQUc3QyxXQUFNLEdBQTBCLEtBQUssQ0FBQztJQTZIbEQsQ0FBQztJQTNIVyxZQUFZLENBQUMsTUFBMEI7UUFDL0MsOEJBQThCO1FBQzlCLE1BQU0sU0FBUyxHQUFHO1lBQ2hCLCtDQUErQztZQUMvQyx3RUFBd0U7WUFDeEUsNEdBQTRHO1lBQzVHLHNCQUFzQixFQUFFO2dCQUN0QixVQUFVLEVBQUUsQ0FBQyxHQUFRLEVBQUUsTUFBYyxFQUFFLEVBQUU7b0JBQ3ZDLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDO29CQUNoQixNQUFNLFVBQVUsR0FBRyxJQUFBLHNCQUFXLEVBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3ZDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDN0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzNCLENBQUM7Z0JBQ0QsY0FBYyxFQUFFLENBQUMsRUFBVSxFQUFFLEVBQVUsRUFBRSxHQUFXLEVBQUUsRUFBRTtvQkFDdEQsR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUM7b0JBQ2hCLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDO29CQUNuRCxNQUFNLElBQUksR0FBRyxJQUFJLFFBQVEs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
@@ -0,0 +1,2 @@
1
+ export declare function createMainWorker(): any;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.ts"],"names":[],"mappings":"AAGA,wBAAgB,gBAAgB,QAM/B"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createMainWorker = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const debug_1 = tslib_1.__importDefault(require("debug"));
6
+ const main_worker_js_1 = tslib_1.__importDefault(require("./main.worker.js"));
7
+ function createMainWorker() {
8
+ const worker = new main_worker_js_1.default();
9
+ const debugStr = debug_1.default.disable();
10
+ debug_1.default.enable(debugStr);
11
+ worker.postMessage({ debug: debugStr });
12
+ return worker;
13
+ }
14
+ exports.createMainWorker = createMainWorker;
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fbWFpbi9mYWN0b3J5L2Jyb3dzZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDBEQUEwQjtBQUMxQiw4RUFBMEM7QUFFMUMsU0FBZ0IsZ0JBQWdCO0lBQzlCLE1BQU0sTUFBTSxHQUFHLElBQUksd0JBQVUsRUFBRSxDQUFDO0lBQ2hDLE1BQU0sUUFBUSxHQUFHLGVBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQyxlQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZCLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN4QyxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBTkQsNENBTUMifQ==
@@ -0,0 +1,3 @@
1
+ declare const _default: any;
2
+ export default _default;
3
+ //# sourceMappingURL=main.worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.worker.d.ts","sourceRoot":"","sources":["../../../../../../src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.ts"],"names":[],"mappings":";AAcA,wBAA2B"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const comlink_1 = require("comlink");
5
+ const index_js_1 = require("../../index.js");
6
+ const debug_1 = tslib_1.__importDefault(require("debug"));
7
+ self.onmessage = function (e) {
8
+ if (e.data.debug) {
9
+ debug_1.default.enable(e.data.debug);
10
+ }
11
+ };
12
+ (0, comlink_1.expose)(new index_js_1.BarretenbergWasmMain());
13
+ self.postMessage({ ready: true });
14
+ exports.default = null;
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi53b3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fbWFpbi9mYWN0b3J5L2Jyb3dzZXIvbWFpbi53b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQWlDO0FBQ2pDLDZDQUFzRDtBQUN0RCwwREFBMEI7QUFFMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7SUFDMUIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNoQixlQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDNUI7QUFDSCxDQUFDLENBQUM7QUFFRixJQUFBLGdCQUFNLEVBQUMsSUFBSSwrQkFBb0IsRUFBRSxDQUFDLENBQUM7QUFFbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBRWxDLGtCQUFlLElBQVcsQ0FBQyJ9
@@ -0,0 +1,4 @@
1
+ /// <reference types="node" />
2
+ import { Worker } from 'worker_threads';
3
+ export declare function createMainWorker(): Worker;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAcxC,wBAAgB,gBAAgB,WAG/B"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createMainWorker = void 0;
4
+ const worker_threads_1 = require("worker_threads");
5
+ const path_1 = require("path");
6
+ const url_1 = require("url");
7
+ function getCurrentDir() {
8
+ if (typeof __dirname !== 'undefined') {
9
+ return __dirname;
10
+ }
11
+ else {
12
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
13
+ // @ts-ignore
14
+ return (0, path_1.dirname)((0, url_1.fileURLToPath)(""));
15
+ }
16
+ }
17
+ function createMainWorker() {
18
+ const __dirname = getCurrentDir();
19
+ return new worker_threads_1.Worker(__dirname + `/main.worker.js`);
20
+ }
21
+ exports.createMainWorker = createMainWorker;
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fbWFpbi9mYWN0b3J5L25vZGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQXdDO0FBQ3hDLCtCQUErQjtBQUMvQiw2QkFBb0M7QUFFcEMsU0FBUyxhQUFhO0lBQ3BCLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxFQUFFO1FBQ3BDLE9BQU8sU0FBUyxDQUFDO0tBQ2xCO1NBQU07UUFDTCw2REFBNkQ7UUFDN0QsYUFBYTtRQUNiLE9BQU8sSUFBQSxjQUFPLEVBQUMsSUFBQSxtQkFBYSxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztLQUNoRDtBQUNILENBQUM7QUFFRCxTQUFnQixnQkFBZ0I7SUFDOUIsTUFBTSxTQUFTLEdBQUcsYUFBYSxFQUFFLENBQUM7SUFDbEMsT0FBTyxJQUFJLHVCQUFNLENBQUMsU0FBUyxHQUFHLGlCQUFpQixDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUhELDRDQUdDIn0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=main.worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.worker.d.ts","sourceRoot":"","sources":["../../../../../../src/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const worker_threads_1 = require("worker_threads");
4
+ const comlink_1 = require("comlink");
5
+ const index_js_1 = require("../../index.js");
6
+ const node_endpoint_js_1 = require("../../../helpers/node/node_endpoint.js");
7
+ if (!worker_threads_1.parentPort) {
8
+ throw new Error('No parentPort');
9
+ }
10
+ (0, comlink_1.expose)(new index_js_1.BarretenbergWasmMain(), (0, node_endpoint_js_1.nodeEndpoint)(worker_threads_1.parentPort));
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi53b3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fbWFpbi9mYWN0b3J5L25vZGUvbWFpbi53b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtREFBNEM7QUFDNUMscUNBQWlDO0FBQ2pDLDZDQUFzRDtBQUN0RCw2RUFBc0U7QUFFdEUsSUFBSSxDQUFDLDJCQUFVLEVBQUU7SUFDZixNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0NBQ2xDO0FBRUQsSUFBQSxnQkFBTSxFQUFDLElBQUksK0JBQW9CLEVBQUUsRUFBRSxJQUFBLCtCQUFZLEVBQUMsMkJBQVUsQ0FBQyxDQUFDLENBQUMifQ==
@@ -0,0 +1,37 @@
1
+ import { Remote } from 'comlink';
2
+ import { BarretenbergWasmBase } from '../barretenberg_wasm_base/index.js';
3
+ export declare class BarretenbergWasmMain extends BarretenbergWasmBase {
4
+ static MAX_THREADS: number;
5
+ private workers;
6
+ private remoteWasms;
7
+ private nextWorker;
8
+ private nextThreadId;
9
+ getNumThreads(): number;
10
+ /**
11
+ * Init as main thread. Spawn child threads.
12
+ */
13
+ init(threads?: number, logger?: (msg: string) => void, initial?: number, maximum?: number): Promise<void>;
14
+ /**
15
+ * Called on main thread. Signals child threads to gracefully exit.
16
+ */
17
+ destroy(): Promise<void>;
18
+ protected getImportObj(memory: WebAssembly.Memory): {
19
+ wasi: {
20
+ 'thread-spawn': (arg: number) => number;
21
+ };
22
+ env: {
23
+ env_hardware_concurrency: () => number;
24
+ logstr: (addr: number) => void;
25
+ get_data: (keyAddr: number, outBufAddr: number) => void;
26
+ set_data: (keyAddr: number, dataAddr: number, dataLength: number) => void;
27
+ memory: WebAssembly.Memory;
28
+ };
29
+ wasi_snapshot_preview1: {
30
+ random_get: (out: any, length: number) => void;
31
+ clock_time_get: (a1: number, a2: number, out: number) => void;
32
+ proc_exit: () => never;
33
+ };
34
+ };
35
+ }
36
+ export type BarretenbergWasmMainWorker = Remote<BarretenbergWasmMain>;
37
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/barretenberg_wasm/barretenberg_wasm_main/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAKjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAI1E,qBAAa,oBAAqB,SAAQ,oBAAoB;IAC5D,MAAM,CAAC,WAAW,SAAM;IACxB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,YAAY,CAAK;IAElB,aAAa;IAIpB;;OAEG;IACU,IAAI,CACf,OAAO,SAA0D,EACjE,MAAM,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAY,EACrC,OAAO,SAAK,EACZ,OAAO,SAAU;IAsCnB;;OAEG;IACU,OAAO;IAIpB,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM;;kCAOrB,MAAM;;;;;;;;;;;;;;;CAqBnC;AAED,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BarretenbergWasmMain = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const debug_1 = tslib_1.__importDefault(require("debug"));
6
+ const index_js_1 = require("../helpers/index.js");
7
+ const index_js_2 = require("../fetch_code/index.js");
8
+ const index_js_3 = require("../barretenberg_wasm_thread/factory/node/index.js");
9
+ const index_js_4 = require("../barretenberg_wasm_base/index.js");
10
+ const debug = (0, debug_1.default)('bb.js:wasm');
11
+ class BarretenbergWasmMain extends index_js_4.BarretenbergWasmBase {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.workers = [];
15
+ this.remoteWasms = [];
16
+ this.nextWorker = 0;
17
+ this.nextThreadId = 1;
18
+ }
19
+ getNumThreads() {
20
+ return this.workers.length + 1;
21
+ }
22
+ /**
23
+ * Init as main thread. Spawn child threads.
24
+ */
25
+ async init(threads = Math.min((0, index_js_1.getNumCpu)(), BarretenbergWasmMain.MAX_THREADS), logger = debug, initial = 25, maximum = 2 ** 16) {
26
+ this.logger = logger;
27
+ const initialMb = (initial * 2 ** 16) / (1024 * 1024);
28
+ const maxMb = (maximum * 2 ** 16) / (1024 * 1024);
29
+ const shared = (0, index_js_1.getSharedMemoryAvailable)();
30
+ if (!shared) {
31
+ threads = 1;
32
+ }
33
+ this.logger(`initial mem: ${initial} pages, ${initialMb}MiB. ` +
34
+ `max mem: ${maximum} pages, ${maxMb}MiB. ` +
35
+ `threads: ${threads}, shared: ${shared}`);
36
+ this.memory = new WebAssembly.Memory({ initial, maximum, shared });
37
+ const code = await (0, index_js_2.fetchCode)(shared);
38
+ const { instance, module } = await WebAssembly.instantiate(code, this.getImportObj(this.memory));
39
+ this.instance = instance;
40
+ // Init all global/static data.
41
+ this.call('_initialize');
42
+ // Create worker threads. Create 1 less than requested, as main thread counts as a thread.
43
+ if (threads > 1) {
44
+ this.logger(`creating ${threads} worker threads...`);
45
+ this.workers = await Promise.all(Array.from({ length: threads - 1 }).map(index_js_3.createThreadWorker));
46
+ this.remoteWasms = await Promise.all(this.workers.map((index_js_1.getRemoteBarretenbergWasm)));
47
+ await Promise.all(this.remoteWasms.map(w => w.initThread(module, this.memory)));
48
+ }
49
+ this.logger('init complete.');
50
+ }
51
+ /**
52
+ * Called on main thread. Signals child threads to gracefully exit.
53
+ */
54
+ async destroy() {
55
+ await Promise.all(this.workers.map(w => w.terminate()));
56
+ }
57
+ getImportObj(memory) {
58
+ const baseImports = super.getImportObj(memory);
59
+ /* eslint-disable camelcase */
60
+ return {
61
+ ...baseImports,
62
+ wasi: {
63
+ 'thread-spawn': (arg) => {
64
+ arg = arg >>> 0;
65
+ const id = this.nextThreadId++;
66
+ const worker = this.nextWorker++ % this.remoteWasms.length;
67
+ // this.logger(`spawning thread ${id} on worker ${worker} with arg ${arg >>> 0}`);
68
+ this.remoteWasms[worker].call('wasi_thread_start', id, arg).catch(this.logger);
69
+ // this.remoteWasms[worker].postMessage({ msg: 'thread', data: { id, arg } });
70
+ return id;
71
+ },
72
+ },
73
+ env: {
74
+ ...baseImports.env,
75
+ env_hardware_concurrency: () => {
76
+ // If there are no workers (we're already running as a worker, or the main thread requested no workers)
77
+ // then we return 1, which should cause any algos using threading to just not create a thread.
78
+ return this.remoteWasms.length + 1;
79
+ },
80
+ },
81
+ };
82
+ /* eslint-enable camelcase */
83
+ }
84
+ }
85
+ BarretenbergWasmMain.MAX_THREADS = 32;
86
+ exports.BarretenbergWasmMain = BarretenbergWasmMain;
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fbWFpbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsMERBQWdDO0FBRWhDLGtEQUFxRztBQUNyRyxxREFBbUQ7QUFDbkQsZ0ZBQXVGO0FBRXZGLGlFQUEwRTtBQUUxRSxNQUFNLEtBQUssR0FBRyxJQUFBLGVBQVcsRUFBQyxZQUFZLENBQUMsQ0FBQztBQUV4QyxNQUFhLG9CQUFxQixTQUFRLCtCQUFvQjtJQUE5RDs7UUFFVSxZQUFPLEdBQWEsRUFBRSxDQUFDO1FBQ3ZCLGdCQUFXLEdBQW1DLEVBQUUsQ0FBQztRQUNqRCxlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsaUJBQVksR0FBRyxDQUFDLENBQUM7SUFzRjNCLENBQUM7SUFwRlEsYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsSUFBSSxDQUNmLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUEsb0JBQVMsR0FBRSxFQUFFLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxFQUNqRSxTQUFnQyxLQUFLLEVBQ3JDLE9BQU8sR0FBRyxFQUFFLEVBQ1osT0FBTyxHQUFHLENBQUMsSUFBSSxFQUFFO1FBRWpCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBRXJCLE1BQU0sU0FBUyxHQUFHLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN0RCxNQUFNLEtBQUssR0FBRyxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDbEQsTUFB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
@@ -0,0 +1,2 @@
1
+ export declare function createThreadWorker(): any;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.ts"],"names":[],"mappings":"AAGA,wBAAgB,kBAAkB,QAMjC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createThreadWorker = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const debug_1 = tslib_1.__importDefault(require("debug"));
6
+ const thread_worker_js_1 = tslib_1.__importDefault(require("./thread.worker.js"));
7
+ function createThreadWorker() {
8
+ const worker = new thread_worker_js_1.default();
9
+ const debugStr = debug_1.default.disable();
10
+ debug_1.default.enable(debugStr);
11
+ worker.postMessage({ debug: debugStr });
12
+ return worker;
13
+ }
14
+ exports.createThreadWorker = createThreadWorker;
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fdGhyZWFkL2ZhY3RvcnkvYnJvd3Nlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMERBQTBCO0FBQzFCLGtGQUE4QztBQUU5QyxTQUFnQixrQkFBa0I7SUFDaEMsTUFBTSxNQUFNLEdBQUcsSUFBSSwwQkFBWSxFQUFFLENBQUM7SUFDbEMsTUFBTSxRQUFRLEdBQUcsZUFBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pDLGVBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFORCxnREFNQyJ9
@@ -0,0 +1,3 @@
1
+ declare const _default: any;
2
+ export default _default;
3
+ //# sourceMappingURL=thread.worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread.worker.d.ts","sourceRoot":"","sources":["../../../../../../src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.ts"],"names":[],"mappings":";AAcA,wBAA2B"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const comlink_1 = require("comlink");
5
+ const index_js_1 = require("../../index.js");
6
+ const debug_1 = tslib_1.__importDefault(require("debug"));
7
+ self.onmessage = function (e) {
8
+ if (e.data.debug) {
9
+ debug_1.default.enable(e.data.debug);
10
+ }
11
+ };
12
+ (0, comlink_1.expose)(new index_js_1.BarretenbergWasmThread());
13
+ self.postMessage({ ready: true });
14
+ exports.default = null;
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWFkLndvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmdfd2FzbS9iYXJyZXRlbmJlcmdfd2FzbV90aHJlYWQvZmFjdG9yeS9icm93c2VyL3RocmVhZC53b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQWlDO0FBQ2pDLDZDQUF3RDtBQUN4RCwwREFBMEI7QUFFMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7SUFDMUIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNoQixlQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDNUI7QUFDSCxDQUFDLENBQUM7QUFFRixJQUFBLGdCQUFNLEVBQUMsSUFBSSxpQ0FBc0IsRUFBRSxDQUFDLENBQUM7QUFFckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBRWxDLGtCQUFlLElBQVcsQ0FBQyJ9
@@ -0,0 +1,4 @@
1
+ /// <reference types="node" />
2
+ import { Worker } from 'worker_threads';
3
+ export declare function createThreadWorker(): Worker;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAcxC,wBAAgB,kBAAkB,WAGjC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createThreadWorker = void 0;
4
+ const worker_threads_1 = require("worker_threads");
5
+ const path_1 = require("path");
6
+ const url_1 = require("url");
7
+ function getCurrentDir() {
8
+ if (typeof __dirname !== 'undefined') {
9
+ return __dirname;
10
+ }
11
+ else {
12
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
13
+ // @ts-ignore
14
+ return (0, path_1.dirname)((0, url_1.fileURLToPath)(""));
15
+ }
16
+ }
17
+ function createThreadWorker() {
18
+ const __dirname = getCurrentDir();
19
+ return new worker_threads_1.Worker(__dirname + `/thread.worker.js`);
20
+ }
21
+ exports.createThreadWorker = createThreadWorker;
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fdGhyZWFkL2ZhY3Rvcnkvbm9kZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBd0M7QUFDeEMsK0JBQStCO0FBQy9CLDZCQUFvQztBQUVwQyxTQUFTLGFBQWE7SUFDcEIsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLEVBQUU7UUFDcEMsT0FBTyxTQUFTLENBQUM7S0FDbEI7U0FBTTtRQUNMLDZEQUE2RDtRQUM3RCxhQUFhO1FBQ2IsT0FBTyxJQUFBLGNBQU8sRUFBQyxJQUFBLG1CQUFhLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQ2hEO0FBQ0gsQ0FBQztBQUVELFNBQWdCLGtCQUFrQjtJQUNoQyxNQUFNLFNBQVMsR0FBRyxhQUFhLEVBQUUsQ0FBQztJQUNsQyxPQUFPLElBQUksdUJBQU0sQ0FBQyxTQUFTLEdBQUcsbUJBQW1CLENBQUMsQ0FBQztBQUNyRCxDQUFDO0FBSEQsZ0RBR0MifQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=thread.worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread.worker.d.ts","sourceRoot":"","sources":["../../../../../../src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const worker_threads_1 = require("worker_threads");
4
+ const comlink_1 = require("comlink");
5
+ const index_js_1 = require("../../index.js");
6
+ const node_endpoint_js_1 = require("../../../helpers/node/node_endpoint.js");
7
+ if (!worker_threads_1.parentPort) {
8
+ throw new Error('No parentPort');
9
+ }
10
+ (0, comlink_1.expose)(new index_js_1.BarretenbergWasmThread(), (0, node_endpoint_js_1.nodeEndpoint)(worker_threads_1.parentPort));
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWFkLndvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmdfd2FzbS9iYXJyZXRlbmJlcmdfd2FzbV90aHJlYWQvZmFjdG9yeS9ub2RlL3RocmVhZC53b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtREFBNEM7QUFDNUMscUNBQWlDO0FBQ2pDLDZDQUF3RDtBQUN4RCw2RUFBc0U7QUFFdEUsSUFBSSxDQUFDLDJCQUFVLEVBQUU7SUFDZixNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0NBQ2xDO0FBRUQsSUFBQSxnQkFBTSxFQUFDLElBQUksaUNBQXNCLEVBQUUsRUFBRSxJQUFBLCtCQUFZLEVBQUMsMkJBQVUsQ0FBQyxDQUFDLENBQUMifQ==
@@ -0,0 +1,28 @@
1
+ import { Remote } from 'comlink';
2
+ import { BarretenbergWasmBase } from '../barretenberg_wasm_base/index.js';
3
+ export declare class BarretenbergWasmThread extends BarretenbergWasmBase {
4
+ /**
5
+ * Init as worker thread.
6
+ */
7
+ initThread(module: WebAssembly.Module, memory: WebAssembly.Memory): Promise<void>;
8
+ destroy(): void;
9
+ protected getImportObj(memory: WebAssembly.Memory): {
10
+ wasi: {
11
+ 'thread-spawn': () => never;
12
+ };
13
+ env: {
14
+ env_hardware_concurrency: () => number;
15
+ logstr: (addr: number) => void;
16
+ get_data: (keyAddr: number, outBufAddr: number) => void;
17
+ set_data: (keyAddr: number, dataAddr: number, dataLength: number) => void;
18
+ memory: WebAssembly.Memory;
19
+ };
20
+ wasi_snapshot_preview1: {
21
+ random_get: (out: any, length: number) => void;
22
+ clock_time_get: (a1: number, a2: number, out: number) => void;
23
+ proc_exit: () => never;
24
+ };
25
+ };
26
+ }
27
+ export type BarretenbergWasmThreadWorker = Remote<BarretenbergWasmThread>;
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/barretenberg_wasm/barretenberg_wasm_thread/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E,qBAAa,sBAAuB,SAAQ,oBAAoB;IAC9D;;OAEG;IACU,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM;IAMvE,OAAO;IAId,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM;;;;;;;;;;;;;;;;;CA0BlD;AAED,MAAM,MAAM,4BAA4B,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BarretenbergWasmThread = void 0;
4
+ const index_js_1 = require("../helpers/index.js");
5
+ const index_js_2 = require("../barretenberg_wasm_base/index.js");
6
+ class BarretenbergWasmThread extends index_js_2.BarretenbergWasmBase {
7
+ /**
8
+ * Init as worker thread.
9
+ */
10
+ async initThread(module, memory) {
11
+ this.logger = (0, index_js_1.threadLogger)() || this.logger;
12
+ this.memory = memory;
13
+ this.instance = await WebAssembly.instantiate(module, this.getImportObj(this.memory));
14
+ }
15
+ destroy() {
16
+ (0, index_js_1.killSelf)();
17
+ }
18
+ getImportObj(memory) {
19
+ const baseImports = super.getImportObj(memory);
20
+ /* eslint-disable camelcase */
21
+ return {
22
+ ...baseImports,
23
+ wasi: {
24
+ 'thread-spawn': () => {
25
+ this.logger('PANIC: threads cannot spawn threads!');
26
+ this.logger(new Error().stack);
27
+ (0, index_js_1.killSelf)();
28
+ },
29
+ },
30
+ // These are functions implementations for imports we've defined are needed.
31
+ // The native C++ build defines these in a module called "env". We must implement TypeScript versions here.
32
+ env: {
33
+ ...baseImports.env,
34
+ env_hardware_concurrency: () => {
35
+ // We return 1, which should cause any algos using threading to just not create a thread.
36
+ return 1;
37
+ },
38
+ },
39
+ };
40
+ /* eslint-enable camelcase */
41
+ }
42
+ }
43
+ exports.BarretenbergWasmThread = BarretenbergWasmThread;
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fdGhyZWFkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLGtEQUE2RDtBQUM3RCxpRUFBMEU7QUFFMUUsTUFBYSxzQkFBdUIsU0FBUSwrQkFBb0I7SUFDOUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQTBCLEVBQUUsTUFBMEI7UUFDNUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFBLHVCQUFZLEdBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzVDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBQSxtQkFBUSxHQUFFLENBQUM7SUFDYixDQUFDO0lBRVMsWUFBWSxDQUFDLE1BQTBCO1FBQy9DLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFL0MsOEJBQThCO1FBQzlCLE9BQU87WUFDTCxHQUFHLFdBQVc7WUFDZCxJQUFJLEVBQUU7Z0JBQ0osY0FBYyxFQUFFLEdBQUcsRUFBRTtvQkFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO29CQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsS0FBTSxDQUFDLENBQUM7b0JBQ2hDLElBQUEsbUJBQVEsR0FBRSxDQUFDO2dCQUNiLENBQUM7YUFDRjtZQUVELDRFQUE0RTtZQUM1RSwyR0FBMkc7WUFDM0csR0FBRyxFQUFFO2dCQUNILEdBQUcsV0FBVyxDQUFDLEdBQUc7Z0JBQ2xCLHdCQUF3QixFQUFFLEdBQUcsRUFBRTtvQkFDN0IseUZBQXlGO29CQUN6RixPQUFPLENBQUMsQ0FBQztnQkFDWCxDQUFDO2FBQ0Y7U0FDRixDQUFDO1FBQ0YsNkJBQTZCO0lBQy9CLENBQUM7Q0FDRjtBQXhDRCx3REF3Q0MifQ==
@@ -0,0 +1,2 @@
1
+ export declare function fetchCode(multithreaded: boolean): Promise<ArrayBuffer>;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/barretenberg_wasm/fetch_code/browser/index.ts"],"names":[],"mappings":"AAKA,wBAAsB,SAAS,CAAC,aAAa,EAAE,OAAO,wBAGrD"}