@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
@@ -0,0 +1,17 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import { Fr } from './index.js';
3
+ import { BufferReader } from '../serialize/buffer_reader.js';
4
+ export declare class Point {
5
+ readonly x: Fr;
6
+ readonly y: Fr;
7
+ static SIZE_IN_BYTES: number;
8
+ static EMPTY: Point;
9
+ constructor(x: Fr, y: Fr);
10
+ static random(): Point;
11
+ static fromBuffer(buffer: Uint8Array | BufferReader): Point;
12
+ static fromString(address: string): Point;
13
+ toBuffer(): Buffer;
14
+ toString(): string;
15
+ equals(rhs: Point): boolean;
16
+ }
17
+ //# sourceMappingURL=point.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../src/types/point.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,qBAAa,KAAK;aAIY,CAAC,EAAE,EAAE;aAAkB,CAAC,EAAE,EAAE;IAHxD,MAAM,CAAC,aAAa,SAAM;IAC1B,MAAM,CAAC,KAAK,QAA+B;gBAEf,CAAC,EAAE,EAAE,EAAkB,CAAC,EAAE,EAAE;IAExD,MAAM,CAAC,MAAM;IAKb,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;IAKnD,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM;IAIjC,QAAQ;IAIR,QAAQ;IAIR,MAAM,CAAC,GAAG,EAAE,KAAK;CAGlB"}
@@ -0,0 +1,32 @@
1
+ import { Fr } from './index.js';
2
+ import { BufferReader } from '../serialize/buffer_reader.js';
3
+ class Point {
4
+ constructor(x, y) {
5
+ this.x = x;
6
+ this.y = y;
7
+ }
8
+ static random() {
9
+ // TODO: This is not a point on the curve!
10
+ return new Point(Fr.random(), Fr.random());
11
+ }
12
+ static fromBuffer(buffer) {
13
+ const reader = BufferReader.asReader(buffer);
14
+ return new this(Fr.fromBuffer(reader), Fr.fromBuffer(reader));
15
+ }
16
+ static fromString(address) {
17
+ return Point.fromBuffer(Buffer.from(address.replace(/^0x/i, ''), 'hex'));
18
+ }
19
+ toBuffer() {
20
+ return Buffer.concat([this.x.toBuffer(), this.y.toBuffer()]);
21
+ }
22
+ toString() {
23
+ return '0x' + this.toBuffer().toString('hex');
24
+ }
25
+ equals(rhs) {
26
+ return this.x.equals(rhs.x) && this.y.equals(rhs.y);
27
+ }
28
+ }
29
+ Point.SIZE_IN_BYTES = 64;
30
+ Point.EMPTY = new Point(Fr.ZERO, Fr.ZERO);
31
+ export { Point };
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFN0QsTUFBYSxLQUFLO0lBSWhCLFlBQTRCLENBQUssRUFBa0IsQ0FBSztRQUE1QixNQUFDLEdBQUQsQ0FBQyxDQUFJO1FBQWtCLE1BQUMsR0FBRCxDQUFDLENBQUk7SUFBRyxDQUFDO0lBRTVELE1BQU0sQ0FBQyxNQUFNO1FBQ1gsMENBQTBDO1FBQzFDLE9BQU8sSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQWlDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFlO1FBQy9CLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7QUE3Qk0sbUJBQWEsR0FBRyxFQUFFLENBQUM7QUFDbkIsV0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBRmhDLEtBQUsifQ==
@@ -0,0 +1,13 @@
1
+ import { BufferReader } from '../serialize/index.js';
2
+ /**
3
+ * Holds an opaque pointer into WASM memory.
4
+ * Currently only 4 bytes, but could grow to 8 bytes with wasm64.
5
+ */
6
+ export declare class Ptr {
7
+ readonly value: Uint8Array;
8
+ static SIZE_IN_BYTES: number;
9
+ constructor(value: Uint8Array);
10
+ static fromBuffer(buffer: Uint8Array | BufferReader): Ptr;
11
+ toBuffer(): Uint8Array;
12
+ }
13
+ //# sourceMappingURL=ptr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ptr.d.ts","sourceRoot":"","sources":["../../src/types/ptr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD;;;GAGG;AACH,qBAAa,GAAG;aAGc,KAAK,EAAE,UAAU;IAF7C,MAAM,CAAC,aAAa,SAAK;gBAEG,KAAK,EAAE,UAAU;IAE7C,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;IAKnD,QAAQ;CAGT"}
@@ -0,0 +1,20 @@
1
+ import { BufferReader } from '../serialize/index.js';
2
+ /**
3
+ * Holds an opaque pointer into WASM memory.
4
+ * Currently only 4 bytes, but could grow to 8 bytes with wasm64.
5
+ */
6
+ class Ptr {
7
+ constructor(value) {
8
+ this.value = value;
9
+ }
10
+ static fromBuffer(buffer) {
11
+ const reader = BufferReader.asReader(buffer);
12
+ return new this(reader.readBytes(this.SIZE_IN_BYTES));
13
+ }
14
+ toBuffer() {
15
+ return this.value;
16
+ }
17
+ }
18
+ Ptr.SIZE_IN_BYTES = 4;
19
+ export { Ptr };
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHRyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL3B0ci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFckQ7OztHQUdHO0FBQ0gsTUFBYSxHQUFHO0lBR2QsWUFBNEIsS0FBaUI7UUFBakIsVUFBSyxHQUFMLEtBQUssQ0FBWTtJQUFHLENBQUM7SUFFakQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFpQztRQUNqRCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDOztBQVhNLGlCQUFhLEdBQUcsQ0FBQyxDQUFDO1NBRGQsR0FBRyJ9
@@ -0,0 +1,3 @@
1
+ export declare class RawBuffer extends Uint8Array {
2
+ }
3
+ //# sourceMappingURL=raw_buffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raw_buffer.d.ts","sourceRoot":"","sources":["../../src/types/raw_buffer.ts"],"names":[],"mappings":"AAEA,qBAAa,SAAU,SAAQ,UAAU;CAAG"}
@@ -0,0 +1,5 @@
1
+ // Used when the data is to be sent exactly as is. i.e. no length prefix will be added.
2
+ // This is useful for sending structured data that can be parsed-as-you-go, as opposed to just an array of bytes.
3
+ export class RawBuffer extends Uint8Array {
4
+ }
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF3X2J1ZmZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9yYXdfYnVmZmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVGQUF1RjtBQUN2RixpSEFBaUg7QUFDakgsTUFBTSxPQUFPLFNBQVUsU0FBUSxVQUFVO0NBQUcifQ==
package/package.json ADDED
@@ -0,0 +1,79 @@
1
+ {
2
+ "name": "@aztec/bb.js",
3
+ "version": "0.0.1-alpha.0",
4
+ "type": "module",
5
+ "typedoc": {
6
+ "entryPoint": "./src/index.ts",
7
+ "displayName": "Barretenberg.js",
8
+ "tsconfig": "./tsconfig.json"
9
+ },
10
+ "bin": {
11
+ "bb.js": "./dest/main.js",
12
+ "bb.js-dev": "./src/main-dev.ts"
13
+ },
14
+ "files": [
15
+ "src/",
16
+ "dest/",
17
+ "README.md"
18
+ ],
19
+ "scripts": {
20
+ "clean": "rm -rf ./dest .tsbuildinfo",
21
+ "build": "yarn clean && yarn build:wasm && tsc -b && webpack && chmod +x ./dest/main.js",
22
+ "build:dev": "tsc -b --watch",
23
+ "build:wasm": "cd ../cpp && cmake --preset wasm-threads && cmake --build --preset wasm-threads && cmake --preset wasm && cmake --build --preset wasm",
24
+ "serve": "webpack serve",
25
+ "formatting": "prettier --check ./src && eslint --max-warnings 0 ./src",
26
+ "formatting:fix": "prettier -w ./src",
27
+ "test": "NODE_OPTIONS='--loader ts-node/esm' NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --no-cache --passWithNoTests",
28
+ "test-debug": "NODE_OPTIONS='--loader ts-node/esm' NODE_NO_WARNINGS=1 node --inspect-brk=0.0.0.0 --experimental-vm-modules $(yarn bin jest) --no-cache --passWithNoTests --runInBand",
29
+ "simple_test": "NODE_OPTIONS='--loader ts-node/esm' NODE_NO_WARNINGS=1 node ./src/examples/simple.rawtest.ts"
30
+ },
31
+ "jest": {
32
+ "preset": "ts-jest/presets/default-esm",
33
+ "transform": {
34
+ "./src/.*\\.ts": [
35
+ "ts-jest",
36
+ {
37
+ "useESM": true
38
+ }
39
+ ]
40
+ },
41
+ "moduleNameMapper": {
42
+ "^(\\.{1,2}/.*)\\.js$": "$1"
43
+ },
44
+ "testRegex": "./src/.*\\.test\\.ts$",
45
+ "rootDir": "./src"
46
+ },
47
+ "dependencies": {
48
+ "commander": "^10.0.1",
49
+ "ts-node": "^10.9.1",
50
+ "tslib": "^2.4.0"
51
+ },
52
+ "devDependencies": {
53
+ "@jest/globals": "^29.4.3",
54
+ "@types/debug": "^4.1.7",
55
+ "@types/detect-node": "^2.0.0",
56
+ "@types/jest": "^29.4.0",
57
+ "@types/node": "^18.7.23",
58
+ "@types/source-map-support": "^0.5.6",
59
+ "@typescript-eslint/eslint-plugin": "^5.54.1",
60
+ "@typescript-eslint/parser": "^5.54.1",
61
+ "buffer": "^6.0.3",
62
+ "comlink": "^4.4.1",
63
+ "copy-webpack-plugin": "^11.0.0",
64
+ "debug": "^4.3.4",
65
+ "eslint": "^8.35.0",
66
+ "eslint-config-prettier": "^8.8.0",
67
+ "html-webpack-plugin": "^5.5.1",
68
+ "idb-keyval": "^6.2.1",
69
+ "jest": "^29.5.0",
70
+ "prettier": "^2.8.4",
71
+ "resolve-typescript-plugin": "^2.0.1",
72
+ "ts-jest": "^29.1.0",
73
+ "ts-loader": "^9.4.2",
74
+ "typescript": "^5.0.4",
75
+ "webpack": "^5.82.1",
76
+ "webpack-cli": "^5.1.1",
77
+ "webpack-dev-server": "^4.15.0"
78
+ }
79
+ }
@@ -0,0 +1,15 @@
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<T, U>(arr: T[], fn: (e: T, i: number) => Promise<U>): Promise<U[]> {
10
+ const results: U[] = [];
11
+ for (let i = 0; i < arr.length; ++i) {
12
+ results.push(await fn(arr[i], i));
13
+ }
14
+ return results;
15
+ }
@@ -0,0 +1,39 @@
1
+ import { newBarretenbergApiSync } from '../factory/index.js';
2
+ import { Buffer32, Fr } from '../types/index.js';
3
+ import { BarretenbergApiSync } from './index.js';
4
+
5
+ describe('blake2s', () => {
6
+ let api: BarretenbergApiSync;
7
+
8
+ beforeAll(async () => {
9
+ api = await newBarretenbergApiSync();
10
+ });
11
+
12
+ afterAll(async () => {
13
+ await api.destroy();
14
+ });
15
+
16
+ it('blake2s', () => {
17
+ const input = Buffer.from('abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789');
18
+ const expected = Buffer32.fromBuffer(
19
+ new Uint8Array([
20
+ 0x44, 0xdd, 0xdb, 0x39, 0xbd, 0xb2, 0xaf, 0x80, 0xc1, 0x47, 0x89, 0x4c, 0x1d, 0x75, 0x6a, 0xda, 0x3d, 0x1c,
21
+ 0x2a, 0xc2, 0xb1, 0x00, 0x54, 0x1e, 0x04, 0xfe, 0x87, 0xb4, 0xa5, 0x9e, 0x12, 0x43,
22
+ ]),
23
+ );
24
+ const result = api.blake2s(input);
25
+ expect(result).toEqual(expected);
26
+ });
27
+
28
+ it('blake2sToField', () => {
29
+ const input = Buffer.from('abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789');
30
+ const expected = Fr.fromBufferReduce(
31
+ new Uint8Array([
32
+ 0x44, 0xdd, 0xdb, 0x39, 0xbd, 0xb2, 0xaf, 0x80, 0xc1, 0x47, 0x89, 0x4c, 0x1d, 0x75, 0x6a, 0xda, 0x3d, 0x1c,
33
+ 0x2a, 0xc2, 0xb1, 0x00, 0x54, 0x1e, 0x04, 0xfe, 0x87, 0xb4, 0xa5, 0x9e, 0x12, 0x43,
34
+ ]),
35
+ );
36
+ const result = api.blake2sToField(input);
37
+ expect(result).toEqual(expected);
38
+ });
39
+ });
@@ -0,0 +1,21 @@
1
+ import { BarretenbergApiAsync, newBarretenbergApiAsync } from '../factory/index.js';
2
+
3
+ describe('env', () => {
4
+ let api: BarretenbergApiAsync;
5
+
6
+ beforeAll(async () => {
7
+ api = await newBarretenbergApiAsync(3);
8
+ });
9
+
10
+ afterAll(async () => {
11
+ await api.destroy();
12
+ });
13
+
14
+ it('thread test', async () => {
15
+ // Main thread doesn't do anything in this test, so -1.
16
+ const threads = (await api.getNumThreads()) - 1;
17
+ const iterations = 100000;
18
+ const result = await api.testThreads(threads, iterations);
19
+ expect(result).toBe(iterations);
20
+ });
21
+ });