@aztec/bb.js 0.7.10 → 0.8.2

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,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchCode = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const barretenberg_wasm_1 = tslib_1.__importDefault(require("../../barretenberg.wasm"));
6
+ const barretenberg_threads_wasm_1 = tslib_1.__importDefault(require("../../barretenberg-threads.wasm"));
7
+ // Annoyingly the wasm declares if it's memory is shared or not. So now we need two wasms if we want to be
8
+ // able to fallback on "non shared memory" situations.
9
+ async function fetchCode(multithreaded) {
10
+ const res = await fetch(multithreaded ? barretenberg_threads_wasm_1.default : barretenberg_wasm_1.default);
11
+ return await res.arrayBuffer();
12
+ }
13
+ exports.fetchCode = fetchCode;
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vZmV0Y2hfY29kZS9icm93c2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx3RkFBeUQ7QUFDekQsd0dBQXdFO0FBRXhFLDBHQUEwRztBQUMxRyxzREFBc0Q7QUFDL0MsS0FBSyxVQUFVLFNBQVMsQ0FBQyxhQUFzQjtJQUNwRCxNQUFNLEdBQUcsR0FBRyxNQUFNLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLG1DQUF5QixDQUFDLENBQUMsQ0FBQywyQkFBa0IsQ0FBQyxDQUFDO0lBQ3hGLE9BQU8sTUFBTSxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDakMsQ0FBQztBQUhELDhCQUdDIn0=
@@ -0,0 +1,2 @@
1
+ export * from './node/index.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/barretenberg_wasm/fetch_code/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./node/index.js"), exports);
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vZmV0Y2hfY29kZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwREFBZ0MifQ==
@@ -0,0 +1,3 @@
1
+ /// <reference types="node" />
2
+ export declare function fetchCode(multithreaded: boolean): Promise<Buffer>;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/barretenberg_wasm/fetch_code/node/index.ts"],"names":[],"mappings":";AAeA,wBAAsB,SAAS,CAAC,aAAa,EAAE,OAAO,mBAGrD"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchCode = void 0;
4
+ const promises_1 = require("fs/promises");
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
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
18
+ async function fetchCode(multithreaded) {
19
+ const path = getCurrentDir() + '/../../barretenberg-threads.wasm';
20
+ return await (0, promises_1.readFile)(path);
21
+ }
22
+ exports.fetchCode = fetchCode;
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vZmV0Y2hfY29kZS9ub2RlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDBDQUF1QztBQUN2QywrQkFBK0I7QUFDL0IsNkJBQW9DO0FBRXBDLFNBQVMsYUFBYTtJQUNwQixJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsRUFBRTtRQUNwQyxPQUFPLFNBQVMsQ0FBQztLQUNsQjtTQUFNO1FBQ0wsNkRBQTZEO1FBQzdELGFBQWE7UUFDYixPQUFPLElBQUEsY0FBTyxFQUFDLElBQUEsbUJBQWEsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDaEQ7QUFDSCxDQUFDO0FBRUQsNkRBQTZEO0FBQ3RELEtBQUssVUFBVSxTQUFTLENBQUMsYUFBc0I7SUFDcEQsTUFBTSxJQUFJLEdBQUcsYUFBYSxFQUFFLEdBQUcsa0NBQWtDLENBQUM7SUFDbEUsT0FBTyxNQUFNLElBQUEsbUJBQVEsRUFBQyxJQUFJLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBSEQsOEJBR0MifQ==
@@ -0,0 +1,6 @@
1
+ export declare function getSharedMemoryAvailable(): boolean;
2
+ export declare function getRemoteBarretenbergWasm<T>(worker: Worker): T;
3
+ export declare function getNumCpu(): number;
4
+ export declare function threadLogger(): ((msg: string) => void) | undefined;
5
+ export declare function killSelf(): void;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/barretenberg_wasm/helpers/browser/index.ts"],"names":[],"mappings":"AAEA,wBAAgB,wBAAwB,YAGvC;AAED,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,KAE1D;AAED,wBAAgB,SAAS,WAExB;AAED,wBAAgB,YAAY,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAElE;AAED,wBAAgB,QAAQ,SAEvB"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.killSelf = exports.threadLogger = exports.getNumCpu = exports.getRemoteBarretenbergWasm = exports.getSharedMemoryAvailable = void 0;
4
+ const comlink_1 = require("comlink");
5
+ function getSharedMemoryAvailable() {
6
+ const globalScope = typeof window !== 'undefined' ? window : self;
7
+ return typeof SharedArrayBuffer !== 'undefined' && globalScope.crossOriginIsolated;
8
+ }
9
+ exports.getSharedMemoryAvailable = getSharedMemoryAvailable;
10
+ function getRemoteBarretenbergWasm(worker) {
11
+ return (0, comlink_1.wrap)(worker);
12
+ }
13
+ exports.getRemoteBarretenbergWasm = getRemoteBarretenbergWasm;
14
+ function getNumCpu() {
15
+ return navigator.hardwareConcurrency;
16
+ }
17
+ exports.getNumCpu = getNumCpu;
18
+ function threadLogger() {
19
+ return undefined;
20
+ }
21
+ exports.threadLogger = threadLogger;
22
+ function killSelf() {
23
+ self.close();
24
+ }
25
+ exports.killSelf = killSelf;
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vaGVscGVycy9icm93c2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUErQjtBQUUvQixTQUFnQix3QkFBd0I7SUFDdEMsTUFBTSxXQUFXLEdBQUcsT0FBTyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNsRSxPQUFPLE9BQU8saUJBQWlCLEtBQUssV0FBVyxJQUFJLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQztBQUNyRixDQUFDO0FBSEQsNERBR0M7QUFFRCxTQUFnQix5QkFBeUIsQ0FBSSxNQUFjO0lBQ3pELE9BQU8sSUFBQSxjQUFJLEVBQUMsTUFBTSxDQUFNLENBQUM7QUFDM0IsQ0FBQztBQUZELDhEQUVDO0FBRUQsU0FBZ0IsU0FBUztJQUN2QixPQUFPLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQztBQUN2QyxDQUFDO0FBRkQsOEJBRUM7QUFFRCxTQUFnQixZQUFZO0lBQzFCLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFGRCxvQ0FFQztBQUVELFNBQWdCLFFBQVE7SUFDdEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ2YsQ0FBQztBQUZELDRCQUVDIn0=
@@ -0,0 +1,2 @@
1
+ export * from './node/index.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/barretenberg_wasm/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./node/index.js"), exports);
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vaGVscGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwREFBZ0MifQ==
@@ -0,0 +1,19 @@
1
+ /// <reference types="node" />
2
+ import { Worker } from 'worker_threads';
3
+ export declare function getSharedMemoryAvailable(): boolean;
4
+ /**
5
+ * Comlink allows you to produce a Proxy to the worker, enabling you to call methods as if it were a normal class.
6
+ * Note we give it the type information it needs so the returned Proxy object looks like that type.
7
+ * Node has a different implementation, needing this nodeEndpoint wrapper, hence this function exists here.
8
+ */
9
+ export declare function getRemoteBarretenbergWasm<T>(worker: Worker): T;
10
+ export declare function getNumCpu(): number;
11
+ /**
12
+ * In node, the message passing is different to the browser. When using 'debug' in the browser, we seemingly always
13
+ * get our logs, but in node it looks like it's dependent on the chain of workers from child to main thread be
14
+ * unblocked. If one of our threads aborts, we can't see it as the parent is blocked waiting on threads to join.
15
+ * To work around this in node, threads will by default write directly to stdout.
16
+ */
17
+ export declare function threadLogger(): ((msg: string) => void) | undefined;
18
+ export declare function killSelf(): never;
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/barretenberg_wasm/helpers/node/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAMxC,wBAAgB,wBAAwB,YAEvC;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAE9D;AAED,wBAAgB,SAAS,WAExB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAIlE;AAED,wBAAgB,QAAQ,IAAI,KAAK,CAKhC"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.killSelf = exports.threadLogger = exports.getNumCpu = exports.getRemoteBarretenbergWasm = exports.getSharedMemoryAvailable = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const os_1 = tslib_1.__importDefault(require("os"));
6
+ const comlink_1 = require("comlink");
7
+ const node_endpoint_js_1 = require("./node_endpoint.js");
8
+ const fs_1 = require("fs");
9
+ function getSharedMemoryAvailable() {
10
+ return true;
11
+ }
12
+ exports.getSharedMemoryAvailable = getSharedMemoryAvailable;
13
+ /**
14
+ * Comlink allows you to produce a Proxy to the worker, enabling you to call methods as if it were a normal class.
15
+ * Note we give it the type information it needs so the returned Proxy object looks like that type.
16
+ * Node has a different implementation, needing this nodeEndpoint wrapper, hence this function exists here.
17
+ */
18
+ function getRemoteBarretenbergWasm(worker) {
19
+ return (0, comlink_1.wrap)((0, node_endpoint_js_1.nodeEndpoint)(worker));
20
+ }
21
+ exports.getRemoteBarretenbergWasm = getRemoteBarretenbergWasm;
22
+ function getNumCpu() {
23
+ return os_1.default.cpus().length;
24
+ }
25
+ exports.getNumCpu = getNumCpu;
26
+ /**
27
+ * In node, the message passing is different to the browser. When using 'debug' in the browser, we seemingly always
28
+ * get our logs, but in node it looks like it's dependent on the chain of workers from child to main thread be
29
+ * unblocked. If one of our threads aborts, we can't see it as the parent is blocked waiting on threads to join.
30
+ * To work around this in node, threads will by default write directly to stdout.
31
+ */
32
+ function threadLogger() {
33
+ return (msg) => {
34
+ (0, fs_1.writeSync)(1, msg + '\n');
35
+ };
36
+ }
37
+ exports.threadLogger = threadLogger;
38
+ function killSelf() {
39
+ // Extordinarily hard process termination. Due to how parent threads block on child threads etc, even process.exit
40
+ // doesn't seem to be able to abort the process. The following does.
41
+ process.kill(process.pid);
42
+ throw new Error();
43
+ }
44
+ exports.killSelf = killSelf;
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vaGVscGVycy9ub2RlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxvREFBb0I7QUFDcEIscUNBQStCO0FBQy9CLHlEQUFrRDtBQUNsRCwyQkFBK0I7QUFFL0IsU0FBZ0Isd0JBQXdCO0lBQ3RDLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUZELDREQUVDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLHlCQUF5QixDQUFJLE1BQWM7SUFDekQsT0FBTyxJQUFBLGNBQUksRUFBQyxJQUFBLCtCQUFZLEVBQUMsTUFBTSxDQUFDLENBQU0sQ0FBQztBQUN6QyxDQUFDO0FBRkQsOERBRUM7QUFFRCxTQUFnQixTQUFTO0lBQ3ZCLE9BQU8sWUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQztBQUMxQixDQUFDO0FBRkQsOEJBRUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLFlBQVk7SUFDMUIsT0FBTyxDQUFDLEdBQVcsRUFBRSxFQUFFO1FBQ3JCLElBQUEsY0FBUyxFQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUpELG9DQUlDO0FBRUQsU0FBZ0IsUUFBUTtJQUN0QixrSEFBa0g7SUFDbEgsb0VBQW9FO0lBQ3BFLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLE1BQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQztBQUNwQixDQUFDO0FBTEQsNEJBS0MifQ==
@@ -0,0 +1,8 @@
1
+ import { NodeEndpoint } from 'comlink/dist/esm/node-adapter.js';
2
+ export declare function nodeEndpoint(nep: NodeEndpoint): {
3
+ postMessage: (message: any, transfer?: any[] | undefined) => void;
4
+ addEventListener: (_: any, eh: any) => void;
5
+ removeEventListener: (_: any, eh: any) => void;
6
+ start: (() => void) | undefined;
7
+ };
8
+ //# sourceMappingURL=node_endpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node_endpoint.d.ts","sourceRoot":"","sources":["../../../../../src/barretenberg_wasm/helpers/node/node_endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,wBAAgB,YAAY,CAAC,GAAG,EAAE,YAAY;;0BAIpB,GAAG,MAAM,GAAG;6BAWT,GAAG,MAAM,GAAG;;EAUxC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nodeEndpoint = void 0;
4
+ function nodeEndpoint(nep) {
5
+ const listeners = new WeakMap();
6
+ return {
7
+ postMessage: nep.postMessage.bind(nep),
8
+ addEventListener: (_, eh) => {
9
+ const l = (data) => {
10
+ if ('handleEvent' in eh) {
11
+ eh.handleEvent({ data });
12
+ }
13
+ else {
14
+ eh({ data });
15
+ }
16
+ };
17
+ nep.on('message', l);
18
+ listeners.set(eh, l);
19
+ },
20
+ removeEventListener: (_, eh) => {
21
+ const l = listeners.get(eh);
22
+ if (!l) {
23
+ return;
24
+ }
25
+ nep.off('message', l);
26
+ listeners.delete(eh);
27
+ },
28
+ start: nep.start && nep.start.bind(nep),
29
+ };
30
+ }
31
+ exports.nodeEndpoint = nodeEndpoint;
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZV9lbmRwb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmdfd2FzbS9oZWxwZXJzL25vZGUvbm9kZV9lbmRwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxTQUFnQixZQUFZLENBQUMsR0FBaUI7SUFDNUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUNoQyxPQUFPO1FBQ0wsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUN0QyxnQkFBZ0IsRUFBRSxDQUFDLENBQU0sRUFBRSxFQUFPLEVBQUUsRUFBRTtZQUNwQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQVMsRUFBRSxFQUFFO2dCQUN0QixJQUFJLGFBQWEsSUFBSSxFQUFFLEVBQUU7b0JBQ3ZCLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2lCQUMxQjtxQkFBTTtvQkFDTCxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2lCQUNkO1lBQ0gsQ0FBQyxDQUFDO1lBQ0YsR0FBRyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDckIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUNELG1CQUFtQixFQUFFLENBQUMsQ0FBTSxFQUFFLEVBQU8sRUFBRSxFQUFFO1lBQ3ZDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLENBQUMsRUFBRTtnQkFDTixPQUFPO2FBQ1I7WUFDRCxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN0QixTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7S0FDeEMsQ0FBQztBQUNKLENBQUM7QUF6QkQsb0NBeUJDIn0=
@@ -0,0 +1,14 @@
1
+ /// <reference types="node" />
2
+ import { BarretenbergWasmMain, BarretenbergWasmMainWorker } from './barretenberg_wasm_main/index.js';
3
+ export declare class BarretenbergWasm extends BarretenbergWasmMain {
4
+ /**
5
+ * Construct and initialise BarretenbergWasm within a Worker. Return both the worker and the wasm proxy.
6
+ * Used when running in the browser, because we can't block the main thread.
7
+ */
8
+ static new(threads?: number): Promise<{
9
+ worker: import("worker_threads").Worker;
10
+ wasm: BarretenbergWasmMainWorker;
11
+ }>;
12
+ }
13
+ export type BarretenbergWasmWorker = BarretenbergWasmMainWorker;
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/barretenberg_wasm/index.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAIrG,qBAAa,gBAAiB,SAAQ,oBAAoB;IACxD;;;OAGG;WACiB,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM;;;;CAMzC;AAED,MAAM,MAAM,sBAAsB,GAAG,0BAA0B,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BarretenbergWasm = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const comlink_1 = require("comlink");
6
+ const debug_1 = tslib_1.__importDefault(require("debug"));
7
+ const index_js_1 = require("./barretenberg_wasm_main/factory/node/index.js");
8
+ const index_js_2 = require("./helpers/node/index.js");
9
+ const index_js_3 = require("./barretenberg_wasm_main/index.js");
10
+ const debug = (0, debug_1.default)('bb.js:wasm');
11
+ class BarretenbergWasm extends index_js_3.BarretenbergWasmMain {
12
+ /**
13
+ * Construct and initialise BarretenbergWasm within a Worker. Return both the worker and the wasm proxy.
14
+ * Used when running in the browser, because we can't block the main thread.
15
+ */
16
+ static async new(threads) {
17
+ const worker = (0, index_js_1.createMainWorker)();
18
+ const wasm = (0, index_js_2.getRemoteBarretenbergWasm)(worker);
19
+ await wasm.init(threads, (0, comlink_1.proxy)(debug));
20
+ return { worker, wasm };
21
+ }
22
+ }
23
+ exports.BarretenbergWasm = BarretenbergWasm;
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHFDQUFnQztBQUNoQywwREFBZ0M7QUFDaEMsNkVBQWtGO0FBQ2xGLHNEQUFvRTtBQUNwRSxnRUFBcUc7QUFFckcsTUFBTSxLQUFLLEdBQUcsSUFBQSxlQUFXLEVBQUMsWUFBWSxDQUFDLENBQUM7QUFFeEMsTUFBYSxnQkFBaUIsU0FBUSwrQkFBb0I7SUFDeEQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBZ0I7UUFDdEMsTUFBTSxNQUFNLEdBQUcsSUFBQSwyQkFBZ0IsR0FBRSxDQUFDO1FBQ2xDLE1BQU0sSUFBSSxHQUFHLElBQUEsb0NBQXlCLEVBQTZCLE1BQU0sQ0FBQyxDQUFDO1FBQzNFLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBQSxlQUFLLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN2QyxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7Q0FDRjtBQVhELDRDQVdDIn0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../src/barretenberg_wasm/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const index_js_1 = require("./index.js");
4
+ describe('barretenberg wasm', () => {
5
+ let worker;
6
+ let wasm;
7
+ beforeAll(async () => {
8
+ ({ wasm, worker } = await index_js_1.BarretenbergWasm.new(2));
9
+ }, 20000);
10
+ afterAll(async () => {
11
+ await wasm.destroy();
12
+ await worker.terminate();
13
+ });
14
+ it('should new malloc, transfer and slice mem', async () => {
15
+ const length = 1024;
16
+ const ptr = await wasm.call('bbmalloc', length);
17
+ const buf = Buffer.alloc(length, 128);
18
+ await wasm.writeMemory(ptr, buf);
19
+ const result = Buffer.from(await wasm.getMemorySlice(ptr, ptr + length));
20
+ await wasm.call('bbfree', ptr);
21
+ expect(result).toStrictEqual(buf);
22
+ });
23
+ it('test abort', async () => {
24
+ await expect(() => wasm.call('test_abort')).rejects.toThrow();
25
+ });
26
+ it('test c/c++ stdout/stderr', async () => {
27
+ // We're checking we don't crash, but you can manually confirm you see log lines handled by logstr.
28
+ await wasm.call('test_stdout_stderr');
29
+ });
30
+ it('should new malloc, transfer and slice mem', async () => {
31
+ const length = 1024;
32
+ const ptr = await wasm.call('bbmalloc', length);
33
+ const buf = Buffer.alloc(length, 128);
34
+ await wasm.writeMemory(ptr, buf);
35
+ const result = Buffer.from(await wasm.getMemorySlice(ptr, ptr + length));
36
+ await wasm.call('bbfree', ptr);
37
+ expect(result).toStrictEqual(buf);
38
+ });
39
+ });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmdfd2FzbS9pbmRleC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EseUNBQXNFO0FBRXRFLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7SUFDakMsSUFBSSxNQUFlLENBQUM7SUFDcEIsSUFBSSxJQUE2QixDQUFDO0lBRWxDLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNuQixDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sMkJBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckQsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRVYsUUFBUSxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ2xCLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3JCLE1BQU0sTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzNCLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDJDQUEyQyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3pELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQztRQUNwQixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDakMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwQyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxZQUFZLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDMUIsTUFBTSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoRSxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN4QyxtR0FBbUc7UUFDbkcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMkNBQTJDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDekQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdEMsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNqQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDekUsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvQixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==
@@ -0,0 +1,3 @@
1
+ export declare function toBigIntBE(bytes: Uint8Array): bigint;
2
+ export declare function toBufferBE(value: bigint, byteLength?: number): Uint8Array;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bigint-array/index.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,UAU3C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,SAAK,cAQxD"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toBufferBE = exports.toBigIntBE = void 0;
4
+ function toBigIntBE(bytes) {
5
+ // A Buffer in node, *is* a Uint8Array. We can't refuse it's type.
6
+ // However the algo below only works on an actual Uint8Array, hence we make a new one to be safe.
7
+ bytes = new Uint8Array(bytes);
8
+ let bigint = BigInt(0);
9
+ const view = new DataView(bytes.buffer);
10
+ for (let i = 0; i < bytes.byteLength; i++) {
11
+ bigint = (bigint << BigInt(8)) + BigInt(view.getUint8(i));
12
+ }
13
+ return bigint;
14
+ }
15
+ exports.toBigIntBE = toBigIntBE;
16
+ function toBufferBE(value, byteLength = 32) {
17
+ const bytes = new Uint8Array(byteLength);
18
+ const view = new DataView(bytes.buffer);
19
+ for (let i = 0; i < byteLength; i++) {
20
+ view.setUint8(byteLength - i - 1, Number(value & BigInt(0xff)));
21
+ value >>= BigInt(8);
22
+ }
23
+ return bytes;
24
+ }
25
+ exports.toBufferBE = toBufferBE;
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmlnaW50LWFycmF5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQWdCLFVBQVUsQ0FBQyxLQUFpQjtJQUMxQyxrRUFBa0U7SUFDbEUsaUdBQWlHO0lBQ2pHLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3pDLE1BQU0sR0FBRyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzNEO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQVZELGdDQVVDO0FBRUQsU0FBZ0IsVUFBVSxDQUFDLEtBQWEsRUFBRSxVQUFVLEdBQUcsRUFBRTtJQUN2RCxNQUFNLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QyxNQUFNLElBQUksR0FBRyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRSxLQUFLLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3JCO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBUkQsZ0NBUUMifQ==
@@ -0,0 +1,11 @@
1
+ export interface Arg {
2
+ name: string;
3
+ type: string;
4
+ }
5
+ export interface FunctionDeclaration {
6
+ functionName: string;
7
+ inArgs: Arg[];
8
+ outArgs: Arg[];
9
+ isAsync: boolean;
10
+ }
11
+ //# sourceMappingURL=function_declaration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function_declaration.d.ts","sourceRoot":"","sources":["../../../src/bindgen/function_declaration.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,GAAG,EAAE,CAAC;IACd,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25fZGVjbGFyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmluZGdlbi9mdW5jdGlvbl9kZWNsYXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bindgen/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const rust_js_1 = require("./rust.js");
4
+ const typescript_js_1 = require("./typescript.js");
5
+ const [, , exp = '../exports.json', lang = 'ts'] = process.argv;
6
+ function generateCode(exports, lang) {
7
+ switch (lang) {
8
+ case 'ts':
9
+ return (0, typescript_js_1.generateTypeScriptCode)(exports);
10
+ case 'rust':
11
+ return (0, rust_js_1.generateRustCode)(exports);
12
+ default:
13
+ throw new Error(`Unknown lang: ${lang}`);
14
+ }
15
+ }
16
+ console.log(generateCode(exp, lang));
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmluZGdlbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHVDQUE2QztBQUM3QyxtREFBeUQ7QUFFekQsTUFBTSxDQUFDLEVBQUUsQUFBRCxFQUFHLEdBQUcsR0FBRyxpQkFBaUIsRUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztBQUVoRSxTQUFTLFlBQVksQ0FBQyxPQUFlLEVBQUUsSUFBWTtJQUNqRCxRQUFRLElBQUksRUFBRTtRQUNaLEtBQUssSUFBSTtZQUNQLE9BQU8sSUFBQSxzQ0FBc0IsRUFBQyxPQUFPLENBQUMsQ0FBQztRQUN6QyxLQUFLLE1BQU07WUFDVCxPQUFPLElBQUEsMEJBQWdCLEVBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkM7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQzVDO0FBQ0gsQ0FBQztBQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,4 @@
1
+ export declare function mapType(type: string): string;
2
+ export declare const mapRustType: typeof mapType;
3
+ export declare function mapDeserializer(type: string): string;
4
+ //# sourceMappingURL=mappings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mappings.d.ts","sourceRoot":"","sources":["../../../src/bindgen/mappings.ts"],"names":[],"mappings":"AAmDA,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,UAKnC;AAED,eAAO,MAAM,WAAW,gBAAU,CAAC;AAEnC,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,UAK3C"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapDeserializer = exports.mapRustType = exports.mapType = void 0;
4
+ /* eslint-disable camelcase */
5
+ const typeMap = {
6
+ in_ptr: 'Ptr',
7
+ out_ptr: 'Ptr',
8
+ 'barretenberg::fr::in_buf': 'Fr',
9
+ 'barretenberg::fr::vec_in_buf': 'Fr[]',
10
+ 'fr::in_buf': 'Fr',
11
+ 'fr::out_buf': 'Fr',
12
+ 'fr::vec_in_buf': 'Fr[]',
13
+ 'fr::vec_out_buf': 'Fr[]',
14
+ 'fq::in_buf': 'Fq',
15
+ 'fq::out_buf': 'Fq',
16
+ 'fq::vec_in_buf': 'Fq[]',
17
+ 'fq::vec_out_buf': 'Fq[]',
18
+ 'const uint8_t *': 'Uint8Array',
19
+ 'uint8_t **': 'Uint8Array',
20
+ in_str_buf: 'string',
21
+ out_str_buf: 'string',
22
+ in_buf32: 'Buffer32',
23
+ out_buf32: 'Buffer32',
24
+ 'uint32_t *': 'number',
25
+ 'const uint32_t *': 'number',
26
+ 'affine_element::in_buf': 'Point',
27
+ 'affine_element::out_buf': 'Point',
28
+ 'const bool *': 'boolean',
29
+ 'bool *': 'boolean',
30
+ 'multisig::MultiSigPublicKey::vec_in_buf': 'Buffer128[]',
31
+ 'multisig::MultiSigPublicKey::out_buf': 'Buffer128',
32
+ 'multisig::RoundOnePublicOutput::vec_in_buf': 'Buffer128[]',
33
+ 'multisig::RoundOnePublicOutput::out_buf': 'Buffer128',
34
+ 'multisig::RoundOnePrivateOutput::in_buf': 'Buffer128',
35
+ 'multisig::RoundOnePrivateOutput::out_buf': 'Buffer128',
36
+ };
37
+ const deserializerMap = {
38
+ out_ptr: 'Ptr',
39
+ 'fr::out_buf': 'Fr',
40
+ 'fr::vec_out_buf': 'VectorDeserializer(Fr)',
41
+ 'fq::out_buf': 'Fq',
42
+ 'fq::vec_out_buf': 'VectorDeserializer(Fq)',
43
+ 'uint8_t **': 'BufferDeserializer()',
44
+ out_str_buf: 'StringDeserializer()',
45
+ out_buf32: 'Buffer32',
46
+ 'uint32_t *': 'NumberDeserializer()',
47
+ 'affine_element::out_buf': 'Point',
48
+ 'bool *': 'BoolDeserializer()',
49
+ 'multisig::MultiSigPublicKey::out_buf': 'Buffer128',
50
+ 'multisig::RoundOnePublicOutput::out_buf': 'Buffer128',
51
+ 'multisig::RoundOnePrivateOutput::out_buf': 'Buffer128',
52
+ };
53
+ function mapType(type) {
54
+ if (typeMap[type]) {
55
+ return typeMap[type];
56
+ }
57
+ throw new Error(`Unknown type: ${type}`);
58
+ }
59
+ exports.mapType = mapType;
60
+ exports.mapRustType = mapType;
61
+ function mapDeserializer(type) {
62
+ if (deserializerMap[type]) {
63
+ return deserializerMap[type];
64
+ }
65
+ throw new Error(`Unknown deserializer for type: ${type}`);
66
+ }
67
+ exports.mapDeserializer = mapDeserializer;
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmluZGdlbi9tYXBwaW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4QkFBOEI7QUFDOUIsTUFBTSxPQUFPLEdBQThCO0lBQ3pDLE1BQU0sRUFBRSxLQUFLO0lBQ2IsT0FBTyxFQUFFLEtBQUs7SUFDZCwwQkFBMEIsRUFBRSxJQUFJO0lBQ2hDLDhCQUE4QixFQUFFLE1BQU07SUFDdEMsWUFBWSxFQUFFLElBQUk7SUFDbEIsYUFBYSxFQUFFLElBQUk7SUFDbkIsZ0JBQWdCLEVBQUUsTUFBTTtJQUN4QixpQkFBaUIsRUFBRSxNQUFNO0lBQ3pCLFlBQVksRUFBRSxJQUFJO0lBQ2xCLGFBQWEsRUFBRSxJQUFJO0lBQ25CLGdCQUFnQixFQUFFLE1BQU07SUFDeEIsaUJBQWlCLEVBQUUsTUFBTTtJQUN6QixpQkFBaUIsRUFBRSxZQUFZO0lBQy9CLFlBQVksRUFBRSxZQUFZO0lBQzFCLFVBQVUsRUFBRSxRQUFRO0lBQ3BCLFdBQVcsRUFBRSxRQUFRO0lBQ3JCLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLFlBQVksRUFBRSxRQUFRO0lBQ3RCLGtCQUFrQixFQUFFLFFBQVE7SUFDNUIsd0JBQXdCLEVBQUUsT0FBTztJQUNqQyx5QkFBeUIsRUFBRSxPQUFPO0lBQ2xDLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLHlDQUF5QyxFQUFFLGFBQWE7SUFDeEQsc0NBQXNDLEVBQUUsV0FBVztJQUNuRCw0Q0FBNEMsRUFBRSxhQUFhO0lBQzNELHlDQUF5QyxFQUFFLFdBQVc7SUFDdEQseUNBQXlDLEVBQUUsV0FBVztJQUN0RCwwQ0FBMEMsRUFBRSxXQUFXO0NBQ3hELENBQUM7QUFFRixNQUFNLGVBQWUsR0FBOEI7SUFDakQsT0FBTyxFQUFFLEtBQUs7SUFDZCxhQUFhLEVBQUUsSUFBSTtJQUNuQixpQkFBaUIsRUFBRSx3QkFBd0I7SUFDM0MsYUFBYSxFQUFFLElBQUk7SUFDbkIsaUJBQWlCLEVBQUUsd0JBQXdCO0lBQzNDLFlBQVksRUFBRSxzQkFBc0I7SUFDcEMsV0FBVyxFQUFFLHNCQUFzQjtJQUNuQyxTQUFTLEVBQUUsVUFBVTtJQUNyQixZQUFZLEVBQUUsc0JBQXNCO0lBQ3BDLHlCQUF5QixFQUFFLE9BQU87SUFDbEMsUUFBUSxFQUFFLG9CQUFvQjtJQUM5QixzQ0FBc0MsRUFBRSxXQUFXO0lBQ25ELHlDQUF5QyxFQUFFLFdBQVc7SUFDdEQsMENBQTBDLEVBQUUsV0FBVztDQUN4RCxDQUFDO0FBRUYsU0FBZ0IsT0FBTyxDQUFDLElBQVk7SUFDbEMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDakIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDdEI7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFMRCwwQkFLQztBQUVZLFFBQUEsV0FBVyxHQUFHLE9BQU8sQ0FBQztBQUVuQyxTQUFnQixlQUFlLENBQUMsSUFBWTtJQUMxQyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN6QixPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUM5QjtJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLElBQUksRUFBRSxDQUFDLENBQUM7QUFDNUQsQ0FBQztBQUxELDBDQUtDIn0=
@@ -0,0 +1,2 @@
1
+ export declare function generateRustCode(filename: string): string;
2
+ //# sourceMappingURL=rust.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rust.d.ts","sourceRoot":"","sources":["../../../src/bindgen/rust.ts"],"names":[],"mappings":"AAIA,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,UAoChD"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateRustCode = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const fs_1 = tslib_1.__importDefault(require("fs"));
6
+ const mappings_js_1 = require("./mappings.js");
7
+ function generateRustCode(filename) {
8
+ const fileContent = fs_1.default.readFileSync(filename, 'utf-8');
9
+ const functionDeclarations = JSON.parse(fileContent);
10
+ let output = `
11
+ // WARNING: FILE CODE GENERATED BY BINDGEN UTILITY. DO NOT EDIT!
12
+ use crate::call_wasm_export::call_wasm_export;
13
+ use crate::serialize::{BufferDeserializer, NumberDeserializer, VectorDeserializer, BoolDeserializer};
14
+ use crate::types::{Fr, Fq, Point, Buffer32, Buffer128};
15
+ `;
16
+ for (const { functionName, inArgs, outArgs } of functionDeclarations) {
17
+ const parameters = inArgs.map(({ name, type }) => `${name}: ${(0, mappings_js_1.mapRustType)(type)}`).join(', ');
18
+ const inArgsVar = `let in_args = vec![${inArgs.map(arg => arg.name).join(', ')}];`;
19
+ const outTypesVar = `let out_types = vec![${outArgs.map(arg => (0, mappings_js_1.mapDeserializer)(arg.type)).join(', ')}];`;
20
+ const wasmCall = `let result = call_wasm_export(&"${functionName}", &in_args, &out_types)?;`;
21
+ const returnStmt = getReturnStmt(outArgs);
22
+ const returnType = outArgs.length === 0
23
+ ? '-> Result<(), Box<dyn std::error::Error>>'
24
+ : `-> Result<(${outArgs.map(a => (0, mappings_js_1.mapRustType)(a.type)).join(', ')}), Box<dyn std::error::Error>>`;
25
+ const functionDecl = `
26
+ pub fn ${functionName}(${parameters})${returnType} {
27
+ ${inArgsVar}
28
+ ${outTypesVar}
29
+ ${wasmCall}
30
+ ${returnStmt}
31
+ }
32
+ `;
33
+ output += functionDecl;
34
+ }
35
+ return output;
36
+ }
37
+ exports.generateRustCode = generateRustCode;
38
+ function getReturnStmt(outArgs) {
39
+ switch (outArgs.length) {
40
+ case 0:
41
+ return 'Ok(())';
42
+ case 1:
43
+ return `Ok(result[0].clone())`;
44
+ default:
45
+ return `Ok((${outArgs.map((_, idx) => `result[${idx}].clone()`).join(', ')}))`;
46
+ }
47
+ }
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaW5kZ2VuL3J1c3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLG9EQUFvQjtBQUVwQiwrQ0FBNkQ7QUFFN0QsU0FBZ0IsZ0JBQWdCLENBQUMsUUFBZ0I7SUFDL0MsTUFBTSxXQUFXLEdBQUcsWUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkQsTUFBTSxvQkFBb0IsR0FBMEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUU1RSxJQUFJLE1BQU0sR0FBRzs7Ozs7Q0FLZCxDQUFDO0lBRUEsS0FBSyxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxvQkFBb0IsRUFBRTtRQUNwRSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxLQUFLLElBQUEseUJBQVcsRUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlGLE1BQU0sU0FBUyxHQUFHLHNCQUFzQixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ25GLE1BQU0sV0FBVyxHQUFHLHdCQUF3QixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBQSw2QkFBZSxFQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3pHLE1BQU0sUUFBUSxHQUFHLG1DQUFtQyxZQUFZLDRCQUE0QixDQUFDO1FBRTdGLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQyxNQUFNLFVBQVUsR0FDZCxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUM7WUFDbEIsQ0FBQyxDQUFDLDJDQUEyQztZQUM3QyxDQUFDLENBQUMsY0FBYyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBQSx5QkFBVyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUM7UUFFckcsTUFBTSxZQUFZLEdBQUc7U0FDaEIsWUFBWSxJQUFJLFVBQVUsSUFBSSxVQUFVO01BQzNDLFNBQVM7TUFDVCxXQUFXO01BQ1gsUUFBUTtNQUNSLFVBQVU7O0NBRWYsQ0FBQztRQUVFLE1BQU0sSUFBSSxZQUFZLENBQUM7S0FDeEI7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBcENELDRDQW9DQztBQUVELFNBQVMsYUFBYSxDQUFDLE9BQWM7SUFDbkMsUUFBUSxPQUFPLENBQUMsTUFBTSxFQUFFO1FBQ3RCLEtBQUssQ0FBQztZQUNKLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLEtBQUssQ0FBQztZQUNKLE9BQU8sdUJBQXVCLENBQUM7UUFDakM7WUFDRSxPQUFPLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztLQUNsRjtBQUNILENBQUMifQ==
@@ -0,0 +1,2 @@
1
+ export declare function toCamelCase(input: string): string;
2
+ //# sourceMappingURL=to_camel_case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to_camel_case.d.ts","sourceRoot":"","sources":["../../../src/bindgen/to_camel_case.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CASjD"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toCamelCase = void 0;
4
+ function toCamelCase(input) {
5
+ const words = input.split('_');
6
+ const camelCasedWords = words.map((word, index) => {
7
+ if (index === 0) {
8
+ return word;
9
+ }
10
+ return word.charAt(0).toUpperCase() + word.slice(1);
11
+ });
12
+ return camelCasedWords.join('');
13
+ }
14
+ exports.toCamelCase = toCamelCase;
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9fY2FtZWxfY2FzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaW5kZ2VuL3RvX2NhbWVsX2Nhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBZ0IsV0FBVyxDQUFDLEtBQWE7SUFDdkMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ2hELElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBVEQsa0NBU0MifQ==
@@ -0,0 +1,2 @@
1
+ export declare function generateTypeScriptCode(filename: string): string;
2
+ //# sourceMappingURL=typescript.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../src/bindgen/typescript.ts"],"names":[],"mappings":"AAKA,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,UAgDtD"}