@aztec/bb.js 0.82.2-alpha-testnet.5 → 0.82.3-nightly.20250330

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.
@@ -5,8 +5,10 @@ const tslib_1 = require("tslib");
5
5
  const net_crs_js_1 = require("../net_crs.js");
6
6
  const fs_1 = require("fs");
7
7
  const promises_1 = require("fs/promises");
8
+ const stream_1 = require("stream");
8
9
  const debug_1 = tslib_1.__importDefault(require("debug"));
9
10
  const os_1 = require("os");
11
+ const promises_2 = require("stream/promises");
10
12
  /**
11
13
  * Generic CRS finder utility class.
12
14
  */
@@ -35,9 +37,11 @@ class Crs {
35
37
  }
36
38
  this.logger(`Downloading CRS of size ${this.numPoints} into ${this.path}`);
37
39
  const crs = new net_crs_js_1.NetCrs(this.numPoints);
38
- await crs.init();
39
- (0, fs_1.writeFileSync)(this.path + '/bn254_g1.dat', crs.getG1Data());
40
- (0, fs_1.writeFileSync)(this.path + '/bn254_g2.dat', crs.getG2Data());
40
+ const [g1, g2] = await Promise.all([crs.streamG1Data(), crs.streamG2Data()]);
41
+ await Promise.all([
42
+ (0, promises_2.finished)(stream_1.Readable.fromWeb(g1).pipe((0, fs_1.createWriteStream)(this.path + '/bn254_g1.dat'))),
43
+ (0, promises_2.finished)(stream_1.Readable.fromWeb(g2).pipe((0, fs_1.createWriteStream)(this.path + '/bn254_g2.dat'))),
44
+ ]);
41
45
  }
42
46
  /**
43
47
  * G1 points data for prover key.
@@ -87,8 +91,8 @@ class GrumpkinCrs {
87
91
  }
88
92
  this.logger(`Downloading Grumpkin CRS of size ${this.numPoints} into ${this.path}`);
89
93
  const crs = new net_crs_js_1.NetGrumpkinCrs(this.numPoints);
90
- await crs.init();
91
- (0, fs_1.writeFileSync)(this.path + '/grumpkin_g1.dat', crs.getG1Data());
94
+ const stream = await crs.streamG1Data();
95
+ await (0, promises_2.finished)(stream_1.Readable.fromWeb(stream).pipe((0, fs_1.createWriteStream)(this.path + '/grumpkin_g1.dat')));
92
96
  (0, fs_1.writeFileSync)(this.path + '/grumpkin_size', String(crs.numPoints));
93
97
  }
94
98
  /**
@@ -100,4 +104,4 @@ class GrumpkinCrs {
100
104
  }
101
105
  }
102
106
  exports.GrumpkinCrs = GrumpkinCrs;
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3JzL25vZGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDhDQUF1RDtBQUN2RCwyQkFBMkY7QUFDM0YsMENBQW1DO0FBQ25DLDBEQUFnQztBQUNoQywyQkFBNkI7QUFFN0I7O0dBRUc7QUFDSCxNQUFhLEdBQUc7SUFDZCxZQUNrQixTQUFpQixFQUNqQixJQUFZLEVBQ1gsU0FBZ0MsSUFBQSxlQUFXLEVBQUMsV0FBVyxDQUFDO1FBRnpELGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNYLFdBQU0sR0FBTixNQUFNLENBQWtEO0lBQ3hFLENBQUM7SUFFSixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FDZCxTQUFpQixFQUNqQixPQUFPLEdBQUcsSUFBQSxZQUFPLEdBQUUsR0FBRyxVQUFVLEVBQ2hDLFNBQWdDLElBQUEsZUFBVyxFQUFDLFdBQVcsQ0FBQztRQUV4RCxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2pCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJO1FBQ1IsSUFBQSxjQUFTLEVBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTFDLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBQSxlQUFJLEVBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxlQUFlLENBQUM7YUFDdkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQzthQUN6QixLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEIsTUFB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
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3JzL25vZGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDhDQUF1RDtBQUN2RCwyQkFBOEc7QUFDOUcsMENBQW1DO0FBQ25DLG1DQUFrQztBQUNsQywwREFBZ0M7QUFDaEMsMkJBQTZCO0FBQzdCLDhDQUEyQztBQUUzQzs7R0FFRztBQUNILE1BQWEsR0FBRztJQUNkLFlBQ2tCLFNBQWlCLEVBQ2pCLElBQVksRUFDWCxTQUFnQyxJQUFBLGVBQVcsRUFBQyxXQUFXLENBQUM7UUFGekQsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUNqQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1gsV0FBTSxHQUFOLE1BQU0sQ0FBa0Q7SUFDeEUsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUNkLFNBQWlCLEVBQ2pCLE9BQU8sR0FBRyxJQUFBLFlBQU8sR0FBRSxHQUFHLFVBQVUsRUFDaEMsU0FBZ0MsSUFBQSxlQUFXLEVBQUMsV0FBVyxDQUFDO1FBRXhELE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEQsTUFBTSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUk7UUFDUixJQUFBLGNBQVMsRUFBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFMUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFBLGVBQUksRUFBQyxJQUFJLENBQUMsSUFBSSxHQUFHLGVBQWUsQ0FBQzthQUN2RCxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2FBQ3pCLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FB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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aztec/bb.js",
3
3
  "packageManager": "yarn@4.5.2",
4
- "version": "0.82.2-alpha-testnet.5",
4
+ "version": "0.82.3-nightly.20250330",
5
5
  "homepage": "https://github.com/AztecProtocol/aztec-packages/tree/master/barretenberg/ts",
6
6
  "license": "MIT",
7
7
  "type": "module",
@@ -21,25 +21,24 @@ export class NetCrs {
21
21
  await this.downloadG2Data();
22
22
  }
23
23
 
24
- async downloadG1Data() {
25
- // Skip the download if numPoints is 0 (would download the entire file due to bad range header otherwise)
26
- if (this.numPoints === 0) {
27
- return (this.data = new Uint8Array([]));
28
- }
29
-
30
- const g1End = this.numPoints * 64 - 1;
24
+ /**
25
+ * Opens up a ReadableStream to the points data
26
+ */
27
+ async streamG1Data(): Promise<ReadableStream<Uint8Array>> {
28
+ const response = await this.fetchG1Data();
29
+ return response.body!;
30
+ }
31
31
 
32
- const response = await retry(
33
- () =>
34
- fetch('https://aztec-ignition.s3.amazonaws.com/MAIN%20IGNITION/flat/g1.dat', {
35
- headers: {
36
- Range: `bytes=0-${g1End}`,
37
- },
38
- cache: 'force-cache',
39
- }),
40
- makeBackoff([5, 5, 5]),
41
- );
32
+ /**
33
+ * Opens up a ReadableStream to the points data
34
+ */
35
+ async streamG2Data(): Promise<ReadableStream<Uint8Array>> {
36
+ const response = await this.fetchG2Data();
37
+ return response.body!;
38
+ }
42
39
 
40
+ async downloadG1Data() {
41
+ const response = await this.fetchG1Data();
43
42
  return (this.data = new Uint8Array(await response.arrayBuffer()));
44
43
  }
45
44
 
@@ -47,14 +46,7 @@ export class NetCrs {
47
46
  * Download the G2 points data.
48
47
  */
49
48
  async downloadG2Data() {
50
- const response2 = await retry(
51
- () =>
52
- fetch('https://aztec-ignition.s3.amazonaws.com/MAIN%20IGNITION/flat/g2.dat', {
53
- cache: 'force-cache',
54
- }),
55
- makeBackoff([5, 5, 5]),
56
- );
57
-
49
+ const response2 = await this.fetchG2Data();
58
50
  return (this.g2Data = new Uint8Array(await response2.arrayBuffer()));
59
51
  }
60
52
 
@@ -73,6 +65,41 @@ export class NetCrs {
73
65
  getG2Data(): Uint8Array {
74
66
  return this.g2Data;
75
67
  }
68
+
69
+ /**
70
+ * Fetches the appropriate range of points from a remote source
71
+ */
72
+ private async fetchG1Data(): Promise<Response> {
73
+ // Skip the download if numPoints is 0 (would download the entire file due to bad range header otherwise)
74
+ if (this.numPoints === 0) {
75
+ return new Response(new Uint8Array([]));
76
+ }
77
+
78
+ const g1End = this.numPoints * 64 - 1;
79
+ return await retry(
80
+ () =>
81
+ fetch('https://aztec-ignition.s3.amazonaws.com/MAIN%20IGNITION/flat/g1.dat', {
82
+ headers: {
83
+ Range: `bytes=0-${g1End}`,
84
+ },
85
+ cache: 'force-cache',
86
+ }),
87
+ makeBackoff([5, 5, 5]),
88
+ );
89
+ }
90
+
91
+ /**
92
+ * Fetches the appropriate range of points from a remote source
93
+ */
94
+ private async fetchG2Data(): Promise<Response> {
95
+ return await retry(
96
+ () =>
97
+ fetch('https://aztec-ignition.s3.amazonaws.com/MAIN%20IGNITION/flat/g2.dat', {
98
+ cache: 'force-cache',
99
+ }),
100
+ makeBackoff([5, 5, 5]),
101
+ );
102
+ }
76
103
  }
77
104
 
78
105
  /**
@@ -96,29 +123,43 @@ export class NetGrumpkinCrs {
96
123
  }
97
124
 
98
125
  async downloadG1Data() {
126
+ const response = await this.fetchG1Data();
127
+ return (this.data = new Uint8Array(await response.arrayBuffer()));
128
+ }
129
+
130
+ /**
131
+ * Opens up a ReadableStream to the points data
132
+ */
133
+ async streamG1Data(): Promise<ReadableStream<Uint8Array>> {
134
+ const response = await this.fetchG1Data();
135
+ return response.body!;
136
+ }
137
+
138
+ /**
139
+ * G1 points data for prover key.
140
+ * @returns The points data.
141
+ */
142
+ getG1Data(): Uint8Array {
143
+ return this.data;
144
+ }
145
+
146
+ /**
147
+ * Fetches the appropriate range of points from a remote source
148
+ */
149
+ private async fetchG1Data(): Promise<Response> {
99
150
  // Skip the download if numPoints is 0 (would download the entire file due to bad range header otherwise)
100
151
  if (this.numPoints === 0) {
101
- return (this.data = new Uint8Array([]));
152
+ return new Response(new Uint8Array([]));
102
153
  }
103
154
 
104
155
  const g1Start = 28;
105
156
  const g1End = g1Start + (this.numPoints * 64 - 1);
106
157
 
107
- const response = await fetch('https://aztec-ignition.s3.amazonaws.com/TEST%20GRUMPKIN/monomial/transcript00.dat', {
158
+ return await fetch('https://aztec-ignition.s3.amazonaws.com/TEST%20GRUMPKIN/monomial/transcript00.dat', {
108
159
  headers: {
109
160
  Range: `bytes=${g1Start}-${g1End}`,
110
161
  },
111
162
  cache: 'force-cache',
112
163
  });
113
-
114
- return (this.data = new Uint8Array(await response.arrayBuffer()));
115
- }
116
-
117
- /**
118
- * G1 points data for prover key.
119
- * @returns The points data.
120
- */
121
- getG1Data(): Uint8Array {
122
- return this.data;
123
164
  }
124
165
  }
@@ -1,8 +1,10 @@
1
1
  import { NetCrs, NetGrumpkinCrs } from '../net_crs.js';
2
- import { closeSync, mkdirSync, openSync, readFileSync, readSync, writeFileSync } from 'fs';
2
+ import { closeSync, mkdirSync, openSync, readFileSync, readSync, writeFileSync, createWriteStream } from 'fs';
3
3
  import { stat } from 'fs/promises';
4
+ import { Readable } from 'stream';
4
5
  import createDebug from 'debug';
5
6
  import { homedir } from 'os';
7
+ import { finished } from 'stream/promises';
6
8
 
7
9
  /**
8
10
  * Generic CRS finder utility class.
@@ -24,7 +26,7 @@ export class Crs {
24
26
  return crs;
25
27
  }
26
28
 
27
- async init() {
29
+ async init(): Promise<void> {
28
30
  mkdirSync(this.path, { recursive: true });
29
31
 
30
32
  const g1FileSize = await stat(this.path + '/bn254_g1.dat')
@@ -41,9 +43,12 @@ export class Crs {
41
43
 
42
44
  this.logger(`Downloading CRS of size ${this.numPoints} into ${this.path}`);
43
45
  const crs = new NetCrs(this.numPoints);
44
- await crs.init();
45
- writeFileSync(this.path + '/bn254_g1.dat', crs.getG1Data());
46
- writeFileSync(this.path + '/bn254_g2.dat', crs.getG2Data());
46
+ const [g1, g2] = await Promise.all([crs.streamG1Data(), crs.streamG2Data()]);
47
+
48
+ await Promise.all([
49
+ finished(Readable.fromWeb(g1 as any).pipe(createWriteStream(this.path + '/bn254_g1.dat'))),
50
+ finished(Readable.fromWeb(g2 as any).pipe(createWriteStream(this.path + '/bn254_g2.dat'))),
51
+ ]);
47
52
  }
48
53
 
49
54
  /**
@@ -90,7 +95,7 @@ export class GrumpkinCrs {
90
95
  return crs;
91
96
  }
92
97
 
93
- async init() {
98
+ async init(): Promise<void> {
94
99
  mkdirSync(this.path, { recursive: true });
95
100
 
96
101
  const g1FileSize = await stat(this.path + '/grumpkin_g1.dat')
@@ -104,8 +109,9 @@ export class GrumpkinCrs {
104
109
 
105
110
  this.logger(`Downloading Grumpkin CRS of size ${this.numPoints} into ${this.path}`);
106
111
  const crs = new NetGrumpkinCrs(this.numPoints);
107
- await crs.init();
108
- writeFileSync(this.path + '/grumpkin_g1.dat', crs.getG1Data());
112
+ const stream = await crs.streamG1Data();
113
+
114
+ await finished(Readable.fromWeb(stream as any).pipe(createWriteStream(this.path + '/grumpkin_g1.dat')));
109
115
  writeFileSync(this.path + '/grumpkin_size', String(crs.numPoints));
110
116
  }
111
117