@aztec/bb.js 0.0.1-alpha.0

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 (206) hide show
  1. package/README.md +3 -0
  2. package/dest/async_map/index.d.ts +10 -0
  3. package/dest/async_map/index.d.ts.map +1 -0
  4. package/dest/async_map/index.js +16 -0
  5. package/dest/barretenberg-threads.wasm +0 -0
  6. package/dest/barretenberg.wasm +0 -0
  7. package/dest/barretenberg_api/blake2s.test.d.ts +2 -0
  8. package/dest/barretenberg_api/blake2s.test.d.ts.map +1 -0
  9. package/dest/barretenberg_api/blake2s.test.js +30 -0
  10. package/dest/barretenberg_api/common.test.d.ts +2 -0
  11. package/dest/barretenberg_api/common.test.d.ts.map +1 -0
  12. package/dest/barretenberg_api/common.test.js +18 -0
  13. package/dest/barretenberg_api/index.d.ts +101 -0
  14. package/dest/barretenberg_api/index.d.ts.map +1 -0
  15. package/dest/barretenberg_api/index.js +371 -0
  16. package/dest/barretenberg_api/pedersen.test.d.ts +2 -0
  17. package/dest/barretenberg_api/pedersen.test.d.ts.map +1 -0
  18. package/dest/barretenberg_api/pedersen.test.js +69 -0
  19. package/dest/barretenberg_api/schnorr.test.d.ts +2 -0
  20. package/dest/barretenberg_api/schnorr.test.d.ts.map +1 -0
  21. package/dest/barretenberg_api/schnorr.test.js +113 -0
  22. package/dest/barretenberg_binder/heap_allocator.d.ts +22 -0
  23. package/dest/barretenberg_binder/heap_allocator.d.ts.map +1 -0
  24. package/dest/barretenberg_binder/heap_allocator.js +59 -0
  25. package/dest/barretenberg_binder/heap_allocator_sync.d.ts +22 -0
  26. package/dest/barretenberg_binder/heap_allocator_sync.d.ts.map +1 -0
  27. package/dest/barretenberg_binder/heap_allocator_sync.js +58 -0
  28. package/dest/barretenberg_binder/index.d.ts +32 -0
  29. package/dest/barretenberg_binder/index.d.ts.map +1 -0
  30. package/dest/barretenberg_binder/index.js +73 -0
  31. package/dest/barretenberg_wasm/barretenberg_wasm.d.ts +49 -0
  32. package/dest/barretenberg_wasm/barretenberg_wasm.d.ts.map +1 -0
  33. package/dest/barretenberg_wasm/barretenberg_wasm.js +190 -0
  34. package/dest/barretenberg_wasm/barretenberg_wasm.test.d.ts +2 -0
  35. package/dest/barretenberg_wasm/barretenberg_wasm.test.d.ts.map +1 -0
  36. package/dest/barretenberg_wasm/barretenberg_wasm.test.js +43 -0
  37. package/dest/barretenberg_wasm/browser/index.d.ts +8 -0
  38. package/dest/barretenberg_wasm/browser/index.d.ts.map +1 -0
  39. package/dest/barretenberg_wasm/browser/index.js +26 -0
  40. package/dest/barretenberg_wasm/browser/worker.d.ts +2 -0
  41. package/dest/barretenberg_wasm/browser/worker.d.ts.map +1 -0
  42. package/dest/barretenberg_wasm/browser/worker.js +11 -0
  43. package/dest/barretenberg_wasm/index.d.ts +2 -0
  44. package/dest/barretenberg_wasm/index.d.ts.map +1 -0
  45. package/dest/barretenberg_wasm/index.js +2 -0
  46. package/dest/barretenberg_wasm/node/index.d.ts +17 -0
  47. package/dest/barretenberg_wasm/node/index.d.ts.map +1 -0
  48. package/dest/barretenberg_wasm/node/index.js +40 -0
  49. package/dest/barretenberg_wasm/node/node_endpoint.d.ts +8 -0
  50. package/dest/barretenberg_wasm/node/node_endpoint.d.ts.map +1 -0
  51. package/dest/barretenberg_wasm/node/node_endpoint.js +28 -0
  52. package/dest/barretenberg_wasm/node/worker.d.ts +2 -0
  53. package/dest/barretenberg_wasm/node/worker.d.ts.map +1 -0
  54. package/dest/barretenberg_wasm/node/worker.js +9 -0
  55. package/dest/barretenberg_wasm.js +2 -0
  56. package/dest/barretenberg_wasm.js.LICENSE.txt +5 -0
  57. package/dest/bigint-array/index.d.ts +3 -0
  58. package/dest/bigint-array/index.d.ts.map +1 -0
  59. package/dest/bigint-array/index.js +21 -0
  60. package/dest/bindgen/function_declaration.d.ts +11 -0
  61. package/dest/bindgen/function_declaration.d.ts.map +1 -0
  62. package/dest/bindgen/function_declaration.js +2 -0
  63. package/dest/bindgen/index.d.ts +2 -0
  64. package/dest/bindgen/index.d.ts.map +1 -0
  65. package/dest/bindgen/index.js +15 -0
  66. package/dest/bindgen/mappings.d.ts +4 -0
  67. package/dest/bindgen/mappings.d.ts.map +1 -0
  68. package/dest/bindgen/mappings.js +63 -0
  69. package/dest/bindgen/rust.d.ts +2 -0
  70. package/dest/bindgen/rust.d.ts.map +1 -0
  71. package/dest/bindgen/rust.js +43 -0
  72. package/dest/bindgen/to_camel_case.d.ts +2 -0
  73. package/dest/bindgen/to_camel_case.d.ts.map +1 -0
  74. package/dest/bindgen/to_camel_case.js +11 -0
  75. package/dest/bindgen/typescript.d.ts +2 -0
  76. package/dest/bindgen/typescript.d.ts.map +1 -0
  77. package/dest/bindgen/typescript.js +80 -0
  78. package/dest/crs/browser/cached_net_crs.d.ts +25 -0
  79. package/dest/crs/browser/cached_net_crs.d.ts.map +1 -0
  80. package/dest/crs/browser/cached_net_crs.js +54 -0
  81. package/dest/crs/browser/index.d.ts +2 -0
  82. package/dest/crs/browser/index.d.ts.map +1 -0
  83. package/dest/crs/browser/index.js +2 -0
  84. package/dest/crs/index.d.ts +2 -0
  85. package/dest/crs/index.d.ts.map +1 -0
  86. package/dest/crs/index.js +2 -0
  87. package/dest/crs/net_crs.d.ts +36 -0
  88. package/dest/crs/net_crs.d.ts.map +1 -0
  89. package/dest/crs/net_crs.js +59 -0
  90. package/dest/crs/node/file_crs.d.ts +37 -0
  91. package/dest/crs/node/file_crs.d.ts.map +1 -0
  92. package/dest/crs/node/file_crs.js +51 -0
  93. package/dest/crs/node/index.d.ts +31 -0
  94. package/dest/crs/node/index.d.ts.map +1 -0
  95. package/dest/crs/node/index.js +41 -0
  96. package/dest/examples/simple.rawtest.d.ts +2 -0
  97. package/dest/examples/simple.rawtest.d.ts.map +1 -0
  98. package/dest/examples/simple.rawtest.js +24 -0
  99. package/dest/examples/simple.test.d.ts +2 -0
  100. package/dest/examples/simple.test.d.ts.map +1 -0
  101. package/dest/examples/simple.test.js +22 -0
  102. package/dest/factory/index.d.ts +21 -0
  103. package/dest/factory/index.d.ts.map +1 -0
  104. package/dest/factory/index.js +34 -0
  105. package/dest/index.d.ts +4 -0
  106. package/dest/index.d.ts.map +1 -0
  107. package/dest/index.html +1 -0
  108. package/dest/index.js +4 -0
  109. package/dest/main-dev.d.ts +3 -0
  110. package/dest/main-dev.d.ts.map +1 -0
  111. package/dest/main-dev.js +3 -0
  112. package/dest/main.d.ts +10 -0
  113. package/dest/main.d.ts.map +1 -0
  114. package/dest/main.js +288 -0
  115. package/dest/random/browser/index.d.ts +2 -0
  116. package/dest/random/browser/index.d.ts.map +1 -0
  117. package/dest/random/browser/index.js +31 -0
  118. package/dest/random/index.d.ts +2 -0
  119. package/dest/random/index.d.ts.map +1 -0
  120. package/dest/random/index.js +2 -0
  121. package/dest/random/node/index.d.ts +2 -0
  122. package/dest/random/node/index.d.ts.map +1 -0
  123. package/dest/random/node/index.js +5 -0
  124. package/dest/serialize/buffer_reader.d.ts +28 -0
  125. package/dest/serialize/buffer_reader.d.ts.map +1 -0
  126. package/dest/serialize/buffer_reader.js +66 -0
  127. package/dest/serialize/index.d.ts +4 -0
  128. package/dest/serialize/index.d.ts.map +1 -0
  129. package/dest/serialize/index.js +4 -0
  130. package/dest/serialize/output_type.d.ts +11 -0
  131. package/dest/serialize/output_type.d.ts.map +1 -0
  132. package/dest/serialize/output_type.js +44 -0
  133. package/dest/serialize/serialize.d.ts +53 -0
  134. package/dest/serialize/serialize.d.ts.map +1 -0
  135. package/dest/serialize/serialize.js +139 -0
  136. package/dest/simple_test.js +2 -0
  137. package/dest/simple_test.js.LICENSE.txt +14 -0
  138. package/dest/types/fields.d.ts +33 -0
  139. package/dest/types/fields.d.ts.map +1 -0
  140. package/dest/types/fields.js +86 -0
  141. package/dest/types/fixed_size_buffer.d.ts +26 -0
  142. package/dest/types/fixed_size_buffer.d.ts.map +1 -0
  143. package/dest/types/fixed_size_buffer.js +54 -0
  144. package/dest/types/index.d.ts +6 -0
  145. package/dest/types/index.d.ts.map +1 -0
  146. package/dest/types/index.js +6 -0
  147. package/dest/types/point.d.ts +17 -0
  148. package/dest/types/point.d.ts.map +1 -0
  149. package/dest/types/point.js +32 -0
  150. package/dest/types/ptr.d.ts +13 -0
  151. package/dest/types/ptr.d.ts.map +1 -0
  152. package/dest/types/ptr.js +20 -0
  153. package/dest/types/raw_buffer.d.ts +3 -0
  154. package/dest/types/raw_buffer.d.ts.map +1 -0
  155. package/dest/types/raw_buffer.js +5 -0
  156. package/package.json +79 -0
  157. package/src/async_map/index.ts +15 -0
  158. package/src/barretenberg_api/blake2s.test.ts +39 -0
  159. package/src/barretenberg_api/common.test.ts +21 -0
  160. package/src/barretenberg_api/index.ts +461 -0
  161. package/src/barretenberg_api/pedersen.test.ts +84 -0
  162. package/src/barretenberg_api/schnorr.test.ts +169 -0
  163. package/src/barretenberg_binder/heap_allocator.ts +62 -0
  164. package/src/barretenberg_binder/heap_allocator_sync.ts +61 -0
  165. package/src/barretenberg_binder/index.ts +76 -0
  166. package/src/barretenberg_wasm/barretenberg_wasm.test.ts +52 -0
  167. package/src/barretenberg_wasm/barretenberg_wasm.ts +222 -0
  168. package/src/barretenberg_wasm/browser/index.ts +32 -0
  169. package/src/barretenberg_wasm/browser/worker.ts +13 -0
  170. package/src/barretenberg_wasm/index.ts +1 -0
  171. package/src/barretenberg_wasm/node/index.ts +46 -0
  172. package/src/barretenberg_wasm/node/node_endpoint.ts +28 -0
  173. package/src/barretenberg_wasm/node/worker.ts +10 -0
  174. package/src/bigint-array/index.ts +21 -0
  175. package/src/bindgen/function_declaration.ts +11 -0
  176. package/src/bindgen/index.ts +17 -0
  177. package/src/bindgen/mappings.ts +66 -0
  178. package/src/bindgen/rust.ts +52 -0
  179. package/src/bindgen/to_camel_case.ts +10 -0
  180. package/src/bindgen/typescript.ts +91 -0
  181. package/src/crs/browser/cached_net_crs.ts +60 -0
  182. package/src/crs/browser/index.ts +1 -0
  183. package/src/crs/index.ts +1 -0
  184. package/src/crs/net_crs.ts +69 -0
  185. package/src/crs/node/file_crs.ts +60 -0
  186. package/src/crs/node/index.ts +48 -0
  187. package/src/examples/simple.rawtest.ts +32 -0
  188. package/src/examples/simple.test.ts +27 -0
  189. package/src/factory/index.ts +36 -0
  190. package/src/index.html +9 -0
  191. package/src/index.ts +3 -0
  192. package/src/main-dev.ts +2 -0
  193. package/src/main.ts +329 -0
  194. package/src/random/browser/index.ts +32 -0
  195. package/src/random/index.ts +1 -0
  196. package/src/random/node/index.ts +5 -0
  197. package/src/serialize/buffer_reader.ts +82 -0
  198. package/src/serialize/index.ts +3 -0
  199. package/src/serialize/output_type.ts +53 -0
  200. package/src/serialize/serialize.ts +157 -0
  201. package/src/types/fields.ts +98 -0
  202. package/src/types/fixed_size_buffer.ts +59 -0
  203. package/src/types/index.ts +5 -0
  204. package/src/types/point.ts +35 -0
  205. package/src/types/ptr.ts +20 -0
  206. package/src/types/raw_buffer.ts +3 -0
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # Barretenberg.js
2
+
3
+ Javascript bindings for barretenberg WASM.
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Much the same as Array.map, only it takes an async fn as an element handler, and ensures that each element handler
3
+ * is executed sequentially.
4
+ * The pattern of `await Promise.all(arr.map(async e => { ... }))` only works if one's happy with each element handler
5
+ * being run concurrently.
6
+ * If one required sequential execution of async fn's, the only alternative was regular loops with mutable state vars.
7
+ * The equivalent with asyncMap: `await asyncMap(arr, async e => { ... })`.
8
+ */
9
+ export declare function asyncMap<T, U>(arr: T[], fn: (e: T, i: number) => Promise<U>): Promise<U[]>;
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/async_map/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAMhG"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Much the same as Array.map, only it takes an async fn as an element handler, and ensures that each element handler
3
+ * is executed sequentially.
4
+ * The pattern of `await Promise.all(arr.map(async e => { ... }))` only works if one's happy with each element handler
5
+ * being run concurrently.
6
+ * If one required sequential execution of async fn's, the only alternative was regular loops with mutable state vars.
7
+ * The equivalent with asyncMap: `await asyncMap(arr, async e => { ... })`.
8
+ */
9
+ export async function asyncMap(arr, fn) {
10
+ const results = [];
11
+ for (let i = 0; i < arr.length; ++i) {
12
+ results.push(await fn(arr[i], i));
13
+ }
14
+ return results;
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXN5bmNfbWFwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFFBQVEsQ0FBTyxHQUFRLEVBQUUsRUFBbUM7SUFDaEYsTUFBTSxPQUFPLEdBQVEsRUFBRSxDQUFDO0lBQ3hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1FBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDbkM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDIn0=
Binary file
Binary file
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=blake2s.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blake2s.test.d.ts","sourceRoot":"","sources":["../../src/barretenberg_api/blake2s.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,30 @@
1
+ import { newBarretenbergApiSync } from '../factory/index.js';
2
+ import { Buffer32, Fr } from '../types/index.js';
3
+ describe('blake2s', () => {
4
+ let api;
5
+ beforeAll(async () => {
6
+ api = await newBarretenbergApiSync();
7
+ });
8
+ afterAll(async () => {
9
+ await api.destroy();
10
+ });
11
+ it('blake2s', () => {
12
+ const input = Buffer.from('abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789');
13
+ const expected = Buffer32.fromBuffer(new Uint8Array([
14
+ 0x44, 0xdd, 0xdb, 0x39, 0xbd, 0xb2, 0xaf, 0x80, 0xc1, 0x47, 0x89, 0x4c, 0x1d, 0x75, 0x6a, 0xda, 0x3d, 0x1c,
15
+ 0x2a, 0xc2, 0xb1, 0x00, 0x54, 0x1e, 0x04, 0xfe, 0x87, 0xb4, 0xa5, 0x9e, 0x12, 0x43,
16
+ ]));
17
+ const result = api.blake2s(input);
18
+ expect(result).toEqual(expected);
19
+ });
20
+ it('blake2sToField', () => {
21
+ const input = Buffer.from('abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789');
22
+ const expected = Fr.fromBufferReduce(new Uint8Array([
23
+ 0x44, 0xdd, 0xdb, 0x39, 0xbd, 0xb2, 0xaf, 0x80, 0xc1, 0x47, 0x89, 0x4c, 0x1d, 0x75, 0x6a, 0xda, 0x3d, 0x1c,
24
+ 0x2a, 0xc2, 0xb1, 0x00, 0x54, 0x1e, 0x04, 0xfe, 0x87, 0xb4, 0xa5, 0x9e, 0x12, 0x43,
25
+ ]));
26
+ const result = api.blake2sToField(input);
27
+ expect(result).toEqual(expected);
28
+ });
29
+ });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxha2Uycy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2JhcnJldGVuYmVyZ19hcGkvYmxha2Uycy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHakQsUUFBUSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7SUFDdkIsSUFBSSxHQUF3QixDQUFDO0lBRTdCLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNuQixHQUFHLEdBQUcsTUFBTSxzQkFBc0IsRUFBRSxDQUFDO0lBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ2xCLE1BQU0sR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7UUFDakIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQywwRUFBMEUsQ0FBQyxDQUFDO1FBQ3RHLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQ2xDLElBQUksVUFBVSxDQUFDO1lBQ2IsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQzFHLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1NBQ25GLENBQUMsQ0FDSCxDQUFDO1FBQ0YsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRTtRQUN4QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLDBFQUEwRSxDQUFDLENBQUM7UUFDdEcsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUNsQyxJQUFJLFVBQVUsQ0FBQztZQUNiLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUMxRyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtTQUNuRixDQUFDLENBQ0gsQ0FBQztRQUNGLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=common.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.test.d.ts","sourceRoot":"","sources":["../../src/barretenberg_api/common.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import { newBarretenbergApiAsync } from '../factory/index.js';
2
+ describe('env', () => {
3
+ let api;
4
+ beforeAll(async () => {
5
+ api = await newBarretenbergApiAsync(3);
6
+ });
7
+ afterAll(async () => {
8
+ await api.destroy();
9
+ });
10
+ it('thread test', async () => {
11
+ // Main thread doesn't do anything in this test, so -1.
12
+ const threads = (await api.getNumThreads()) - 1;
13
+ const iterations = 100000;
14
+ const result = await api.testThreads(threads, iterations);
15
+ expect(result).toBe(iterations);
16
+ });
17
+ });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmFycmV0ZW5iZXJnX2FwaS9jb21tb24udGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXdCLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFcEYsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUU7SUFDbkIsSUFBSSxHQUF5QixDQUFDO0lBRTlCLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNuQixHQUFHLEdBQUcsTUFBTSx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNsQixNQUFNLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN0QixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxhQUFhLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDM0IsdURBQXVEO1FBQ3ZELE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDO1FBQzFCLE1BQU0sTUFBTSxHQUFHLE1BQU0sR0FBRyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDMUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,101 @@
1
+ import { BarretenbergBinder, BarretenbergBinderSync } from '../barretenberg_binder/index.js';
2
+ import { Fr, Fq, Point, Buffer32, Buffer128, Ptr } from '../types/index.js';
3
+ export declare class BarretenbergApi {
4
+ binder: BarretenbergBinder;
5
+ constructor(binder: BarretenbergBinder);
6
+ destroy(): Promise<void>;
7
+ pedersenInit(): Promise<void>;
8
+ pedersenCompressFields(left: Fr, right: Fr): Promise<Fr>;
9
+ pedersenPlookupCompressFields(left: Fr, right: Fr): Promise<Fr>;
10
+ pedersenCompress(inputsBuffer: Fr[]): Promise<Fr>;
11
+ pedersenPlookupCompress(inputsBuffer: Fr[]): Promise<Fr>;
12
+ pedersenCompressWithHashIndex(inputsBuffer: Fr[], hashIndex: number): Promise<Fr>;
13
+ pedersenCommit(inputsBuffer: Fr[]): Promise<Fr>;
14
+ pedersenPlookupCommit(inputsBuffer: Fr[]): Promise<Fr>;
15
+ pedersenBufferToField(data: Uint8Array): Promise<Fr>;
16
+ pedersenHashInit(): Promise<void>;
17
+ pedersenHashPair(left: Fr, right: Fr): Promise<Fr>;
18
+ pedersenHashMultiple(inputsBuffer: Fr[]): Promise<Fr>;
19
+ pedersenHashMultipleWithHashIndex(inputsBuffer: Fr[], hashIndex: number): Promise<Fr>;
20
+ pedersenHashToTree(data: Fr[]): Promise<Fr[]>;
21
+ blake2s(data: Uint8Array): Promise<Buffer32>;
22
+ blake2sToField(data: Uint8Array): Promise<Fr>;
23
+ schnorrComputePublicKey(privateKey: Fr): Promise<Point>;
24
+ schnorrNegatePublicKey(publicKeyBuffer: Point): Promise<Point>;
25
+ schnorrConstructSignature(message: Uint8Array, privateKey: Fr): Promise<[Buffer32, Buffer32]>;
26
+ schnorrVerifySignature(message: Uint8Array, pubKey: Point, sigS: Buffer32, sigE: Buffer32): Promise<boolean>;
27
+ schnorrMultisigCreateMultisigPublicKey(privateKey: Fq): Promise<Buffer128>;
28
+ schnorrMultisigValidateAndCombineSignerPubkeys(signerPubkeyBuf: Buffer128[]): Promise<[Point, boolean]>;
29
+ schnorrMultisigConstructSignatureRound1(): Promise<[Buffer128, Buffer128]>;
30
+ schnorrMultisigConstructSignatureRound2(message: Uint8Array, privateKey: Fq, signerRoundOnePrivateBuf: Buffer128, signerPubkeysBuf: Buffer128[], roundOnePublicBuf: Buffer128[]): Promise<[Fq, boolean]>;
31
+ schnorrMultisigCombineSignatures(message: Uint8Array, signerPubkeysBuf: Buffer128[], roundOneBuf: Buffer128[], roundTwoBuf: Fr[]): Promise<[Buffer32, Buffer32, boolean]>;
32
+ srsInitSrs(pointsBuf: Uint8Array, numPoints: number, g2PointBuf: Uint8Array): Promise<void>;
33
+ examplesSimpleCreateAndVerifyProof(): Promise<boolean>;
34
+ testThreads(threads: number, iterations: number): Promise<number>;
35
+ testThreadAbort(): Promise<void>;
36
+ testAbort(): Promise<void>;
37
+ commonInitSlabAllocator(circuitSize: number): Promise<void>;
38
+ acirGetCircuitSizes(constraintSystemBuf: Uint8Array): Promise<[number, number, number]>;
39
+ acirNewAcirComposer(): Promise<Ptr>;
40
+ acirDeleteAcirComposer(acirComposerPtr: Ptr): Promise<void>;
41
+ acirCreateCircuit(acirComposerPtr: Ptr, constraintSystemBuf: Uint8Array, sizeHint: number): Promise<void>;
42
+ acirInitProvingKey(acirComposerPtr: Ptr, constraintSystemBuf: Uint8Array, sizeHint: number): Promise<void>;
43
+ acirCreateProof(acirComposerPtr: Ptr, constraintSystemBuf: Uint8Array, witnessBuf: Uint8Array, isRecursive: boolean): Promise<Uint8Array>;
44
+ acirLoadVerificationKey(acirComposerPtr: Ptr, vkBuf: Uint8Array): Promise<void>;
45
+ acirInitVerificationKey(acirComposerPtr: Ptr): Promise<void>;
46
+ acirGetVerificationKey(acirComposerPtr: Ptr): Promise<Uint8Array>;
47
+ acirVerifyProof(acirComposerPtr: Ptr, proofBuf: Uint8Array, isRecursive: boolean): Promise<boolean>;
48
+ acirGetSolidityVerifier(acirComposerPtr: Ptr): Promise<string>;
49
+ acirSerializeProofIntoFields(acirComposerPtr: Ptr, proofBuf: Uint8Array, numInnerPublicInputs: number): Promise<Fr[]>;
50
+ acirSerializeVerificationKeyIntoFields(acirComposerPtr: Ptr): Promise<[Fr[], Fr]>;
51
+ }
52
+ export declare class BarretenbergApiSync {
53
+ binder: BarretenbergBinderSync;
54
+ constructor(binder: BarretenbergBinderSync);
55
+ destroy(): Promise<void>;
56
+ pedersenInit(): void;
57
+ pedersenCompressFields(left: Fr, right: Fr): Fr;
58
+ pedersenPlookupCompressFields(left: Fr, right: Fr): Fr;
59
+ pedersenCompress(inputsBuffer: Fr[]): Fr;
60
+ pedersenPlookupCompress(inputsBuffer: Fr[]): Fr;
61
+ pedersenCompressWithHashIndex(inputsBuffer: Fr[], hashIndex: number): Fr;
62
+ pedersenCommit(inputsBuffer: Fr[]): Fr;
63
+ pedersenPlookupCommit(inputsBuffer: Fr[]): Fr;
64
+ pedersenBufferToField(data: Uint8Array): Fr;
65
+ pedersenHashInit(): void;
66
+ pedersenHashPair(left: Fr, right: Fr): Fr;
67
+ pedersenHashMultiple(inputsBuffer: Fr[]): Fr;
68
+ pedersenHashMultipleWithHashIndex(inputsBuffer: Fr[], hashIndex: number): Fr;
69
+ pedersenHashToTree(data: Fr[]): Fr[];
70
+ blake2s(data: Uint8Array): Buffer32;
71
+ blake2sToField(data: Uint8Array): Fr;
72
+ schnorrComputePublicKey(privateKey: Fr): Point;
73
+ schnorrNegatePublicKey(publicKeyBuffer: Point): Point;
74
+ schnorrConstructSignature(message: Uint8Array, privateKey: Fr): [Buffer32, Buffer32];
75
+ schnorrVerifySignature(message: Uint8Array, pubKey: Point, sigS: Buffer32, sigE: Buffer32): boolean;
76
+ schnorrMultisigCreateMultisigPublicKey(privateKey: Fq): Buffer128;
77
+ schnorrMultisigValidateAndCombineSignerPubkeys(signerPubkeyBuf: Buffer128[]): [Point, boolean];
78
+ schnorrMultisigConstructSignatureRound1(): [Buffer128, Buffer128];
79
+ schnorrMultisigConstructSignatureRound2(message: Uint8Array, privateKey: Fq, signerRoundOnePrivateBuf: Buffer128, signerPubkeysBuf: Buffer128[], roundOnePublicBuf: Buffer128[]): [Fq, boolean];
80
+ schnorrMultisigCombineSignatures(message: Uint8Array, signerPubkeysBuf: Buffer128[], roundOneBuf: Buffer128[], roundTwoBuf: Fr[]): [Buffer32, Buffer32, boolean];
81
+ srsInitSrs(pointsBuf: Uint8Array, numPoints: number, g2PointBuf: Uint8Array): void;
82
+ examplesSimpleCreateAndVerifyProof(): boolean;
83
+ testThreads(threads: number, iterations: number): number;
84
+ testThreadAbort(): void;
85
+ testAbort(): void;
86
+ commonInitSlabAllocator(circuitSize: number): void;
87
+ acirGetCircuitSizes(constraintSystemBuf: Uint8Array): [number, number, number];
88
+ acirNewAcirComposer(): Ptr;
89
+ acirDeleteAcirComposer(acirComposerPtr: Ptr): void;
90
+ acirCreateCircuit(acirComposerPtr: Ptr, constraintSystemBuf: Uint8Array, sizeHint: number): void;
91
+ acirInitProvingKey(acirComposerPtr: Ptr, constraintSystemBuf: Uint8Array, sizeHint: number): void;
92
+ acirCreateProof(acirComposerPtr: Ptr, constraintSystemBuf: Uint8Array, witnessBuf: Uint8Array, isRecursive: boolean): Uint8Array;
93
+ acirLoadVerificationKey(acirComposerPtr: Ptr, vkBuf: Uint8Array): void;
94
+ acirInitVerificationKey(acirComposerPtr: Ptr): void;
95
+ acirGetVerificationKey(acirComposerPtr: Ptr): Uint8Array;
96
+ acirVerifyProof(acirComposerPtr: Ptr, proofBuf: Uint8Array, isRecursive: boolean): boolean;
97
+ acirGetSolidityVerifier(acirComposerPtr: Ptr): string;
98
+ acirSerializeProofIntoFields(acirComposerPtr: Ptr, proofBuf: Uint8Array, numInnerPublicInputs: number): Fr[];
99
+ acirSerializeVerificationKeyIntoFields(acirComposerPtr: Ptr): [Fr[], Fr];
100
+ }
101
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/barretenberg_api/index.ts"],"names":[],"mappings":"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"}