@aztec/bb.js 0.0.1-commit.ee80a48 → 0.0.1-commit.f1df4d2
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.
- package/build/amd64-linux/bb +0 -0
- package/build/amd64-macos/bb +0 -0
- package/build/amd64-macos/nodejs_module.node +0 -0
- package/build/arm64-linux/bb +0 -0
- package/build/arm64-macos/bb +0 -0
- package/build/arm64-macos/nodejs_module.node +0 -0
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
- package/dest/browser/crs/net_crs.d.ts +6 -1
- package/dest/browser/crs/net_crs.d.ts.map +1 -1
- package/dest/browser/crs/net_crs.js +30 -7
- package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
- package/dest/node/crs/net_crs.d.ts +6 -1
- package/dest/node/crs/net_crs.d.ts.map +1 -1
- package/dest/node/crs/net_crs.js +30 -7
- package/dest/node/crs/net_crs.test.d.ts +2 -0
- package/dest/node/crs/net_crs.test.d.ts.map +1 -0
- package/dest/node/crs/net_crs.test.js +39 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
- package/dest/node-cjs/crs/net_crs.d.ts +6 -1
- package/dest/node-cjs/crs/net_crs.d.ts.map +1 -1
- package/dest/node-cjs/crs/net_crs.js +31 -7
- package/dest/node-cjs/crs/net_crs.test.d.ts +2 -0
- package/dest/node-cjs/crs/net_crs.test.d.ts.map +1 -0
- package/dest/node-cjs/crs/net_crs.test.js +41 -0
- package/package.json +1 -1
- package/src/cbind/generated/api_types.ts +3050 -0
- package/src/cbind/generated/async.ts +696 -0
- package/src/cbind/generated/curve_constants.ts +53 -0
- package/src/cbind/generated/sync.ts +644 -0
- package/src/crs/net_crs.test.ts +47 -0
- package/src/crs/net_crs.ts +45 -14
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fetches data from primary URL, falling back to secondary on failure
|
|
3
|
+
* @internal Exported for testing
|
|
4
|
+
*/
|
|
5
|
+
export declare function fetchWithFallback(primaryUrl: string, fallbackUrl: string, options: RequestInit): Promise<Response>;
|
|
1
6
|
/**
|
|
2
7
|
* Downloader for CRS from the web or local.
|
|
3
8
|
*/
|
|
@@ -67,4 +72,4 @@ export declare class NetGrumpkinCrs {
|
|
|
67
72
|
getG1Data(): Uint8Array;
|
|
68
73
|
private fetchG1Data;
|
|
69
74
|
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0X2Nycy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Nycy9uZXRfY3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BOzs7R0FHRztBQUNILHdCQUFzQixpQkFBaUIsQ0FDckMsVUFBVSxFQUFFLE1BQU0sRUFDbEIsV0FBVyxFQUFFLE1BQU0sRUFDbkIsT0FBTyxFQUFFLFdBQVcsR0FDbkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQVVuQjtBQUVEOztHQUVHO0FBQ0gscUJBQWEsTUFBTTthQVFDLFNBQVMsRUFBRSxNQUFNO0lBUG5DLE9BQU8sQ0FBQyxJQUFJLENBQWM7SUFDMUIsT0FBTyxDQUFDLE1BQU0sQ0FBYztJQUU1QjtJQUNFOztPQUVHO0lBQ2EsU0FBUyxFQUFFLE1BQU0sRUFDL0I7SUFFSjs7T0FFRztJQUNHLElBQUksa0JBR1Q7SUFFRDs7T0FFRztJQUNHLFlBQVksSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBR3hEO0lBRUQ7O09BRUc7SUFDRyxZQUFZLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUd4RDtJQUVLLGNBQWMscUNBR25CO0lBRUQ7O09BRUc7SUFDRyxjQUFjLHFDQUduQjtJQUVEOzs7T0FHRztJQUNILFNBQVMsSUFBSSxVQUFVLENBRXRCO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxJQUFJLFVBQVUsQ0FFdEI7WUFLYSxXQUFXO1lBc0JYLFdBQVc7Q0FTMUI7QUFFRDs7R0FFRztBQUNILHFCQUFhLGNBQWM7YUFPUCxTQUFTLEVBQUUsTUFBTTtJQU5uQyxPQUFPLENBQUMsSUFBSSxDQUFjO0lBRTFCO0lBQ0U7O09BRUc7SUFDYSxTQUFTLEVBQUUsTUFBTSxFQUMvQjtJQUVKOztPQUVHO0lBQ0csSUFBSSxrQkFFVDtJQUVLLGNBQWMscUNBR25CO0lBRUQ7O09BRUc7SUFDRyxZQUFZLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUd4RDtJQUVEOzs7T0FHRztJQUNILFNBQVMsSUFBSSxVQUFVLENBRXRCO1lBS2EsV0FBVztDQW9CMUIifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"net_crs.d.ts","sourceRoot":"","sources":["../../../src/crs/net_crs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"net_crs.d.ts","sourceRoot":"","sources":["../../../src/crs/net_crs.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,QAAQ,CAAC,CAUnB;AAED;;GAEG;AACH,qBAAa,MAAM;aAQC,SAAS,EAAE,MAAM;IAPnC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,MAAM,CAAc;IAE5B;IACE;;OAEG;IACa,SAAS,EAAE,MAAM,EAC/B;IAEJ;;OAEG;IACG,IAAI,kBAGT;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAEK,cAAc,qCAGnB;IAED;;OAEG;IACG,cAAc,qCAGnB;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;YAKa,WAAW;YAsBX,WAAW;CAS1B;AAED;;GAEG;AACH,qBAAa,cAAc;aAOP,SAAS,EAAE,MAAM;IANnC,OAAO,CAAC,IAAI,CAAc;IAE1B;IACE;;OAEG;IACa,SAAS,EAAE,MAAM,EAC/B;IAEJ;;OAEG;IACG,IAAI,kBAET;IAEK,cAAc,qCAGnB;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;YAKa,WAAW;CAoB1B"}
|
|
@@ -1,4 +1,24 @@
|
|
|
1
1
|
import { retry, makeBackoff } from '../retry/index.js';
|
|
2
|
+
// Primary CRS host (Cloudflare R2)
|
|
3
|
+
const CRS_PRIMARY_HOST = 'https://crs.aztec-cdn.foundation';
|
|
4
|
+
// Fallback CRS host (AWS S3)
|
|
5
|
+
const CRS_FALLBACK_HOST = 'https://crs.aztec-labs.com';
|
|
6
|
+
/**
|
|
7
|
+
* Fetches data from primary URL, falling back to secondary on failure
|
|
8
|
+
* @internal Exported for testing
|
|
9
|
+
*/
|
|
10
|
+
export async function fetchWithFallback(primaryUrl, fallbackUrl, options) {
|
|
11
|
+
try {
|
|
12
|
+
const response = await fetch(primaryUrl, options);
|
|
13
|
+
if (response.ok || response.status === 206) {
|
|
14
|
+
return response;
|
|
15
|
+
}
|
|
16
|
+
throw new Error(`HTTP ${response.status}`);
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return await fetch(fallbackUrl, options);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
2
22
|
/**
|
|
3
23
|
* Downloader for CRS from the web or local.
|
|
4
24
|
*/
|
|
@@ -68,20 +88,22 @@ export class NetCrs {
|
|
|
68
88
|
return new Response(new Uint8Array([]));
|
|
69
89
|
}
|
|
70
90
|
const g1End = this.numPoints * 64 - 1;
|
|
71
|
-
|
|
91
|
+
const options = {
|
|
72
92
|
headers: {
|
|
73
93
|
Range: `bytes=0-${g1End}`,
|
|
74
94
|
},
|
|
75
95
|
cache: 'force-cache',
|
|
76
|
-
}
|
|
96
|
+
};
|
|
97
|
+
return await retry(() => fetchWithFallback(`${CRS_PRIMARY_HOST}/g1.dat`, `${CRS_FALLBACK_HOST}/g1.dat`, options), makeBackoff([5, 5, 5]));
|
|
77
98
|
}
|
|
78
99
|
/**
|
|
79
100
|
* Fetches the appropriate range of points from a remote source
|
|
80
101
|
*/
|
|
81
102
|
async fetchG2Data() {
|
|
82
|
-
|
|
103
|
+
const options = {
|
|
83
104
|
cache: 'force-cache',
|
|
84
|
-
}
|
|
105
|
+
};
|
|
106
|
+
return await retry(() => fetchWithFallback(`${CRS_PRIMARY_HOST}/g2.dat`, `${CRS_FALLBACK_HOST}/g2.dat`, options), makeBackoff([5, 5, 5]));
|
|
85
107
|
}
|
|
86
108
|
}
|
|
87
109
|
/**
|
|
@@ -130,12 +152,13 @@ export class NetGrumpkinCrs {
|
|
|
130
152
|
return new Response(new Uint8Array([]));
|
|
131
153
|
}
|
|
132
154
|
const g1End = this.numPoints * 64 - 1;
|
|
133
|
-
|
|
155
|
+
const options = {
|
|
134
156
|
headers: {
|
|
135
157
|
Range: `bytes=0-${g1End}`,
|
|
136
158
|
},
|
|
137
159
|
cache: 'force-cache',
|
|
138
|
-
}
|
|
160
|
+
};
|
|
161
|
+
return await fetchWithFallback(`${CRS_PRIMARY_HOST}/grumpkin_g1.dat`, `${CRS_FALLBACK_HOST}/grumpkin_g1.dat`, options);
|
|
139
162
|
}
|
|
140
163
|
}
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0X2Nycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnMvbmV0X2Nycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXZELG1DQUFtQztBQUNuQyxNQUFNLGdCQUFnQixHQUFHLGtDQUFrQyxDQUFDO0FBQzVELDZCQUE2QjtBQUM3QixNQUFNLGlCQUFpQixHQUFHLDRCQUE0QixDQUFDO0FBRXZEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLFVBQWtCLEVBQ2xCLFdBQW1CLEVBQ25CLE9BQW9CLEVBQ0Q7SUFDbkIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELElBQUksUUFBUSxDQUFDLEVBQUUsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQzNDLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sTUFBTSxLQUFLLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNDLENBQUM7QUFBQSxDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sTUFBTTtJQVFDLFNBQVM7SUFQbkIsSUFBSSxDQUFjO0lBQ2xCLE1BQU0sQ0FBYztJQUU1QjtJQUNFOztPQUVHO0lBQ2EsU0FBaUIsRUFDakM7eUJBRGdCLFNBQVM7SUFDeEIsQ0FBQztJQUVKOztPQUVHO0lBQ0gsS0FBSyxDQUFDLElBQUksR0FBRztRQUNYLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzVCLE1BQU0sSUFBSSxDQUFD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
|
|
Binary file
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fetches data from primary URL, falling back to secondary on failure
|
|
3
|
+
* @internal Exported for testing
|
|
4
|
+
*/
|
|
5
|
+
export declare function fetchWithFallback(primaryUrl: string, fallbackUrl: string, options: RequestInit): Promise<Response>;
|
|
1
6
|
/**
|
|
2
7
|
* Downloader for CRS from the web or local.
|
|
3
8
|
*/
|
|
@@ -67,4 +72,4 @@ export declare class NetGrumpkinCrs {
|
|
|
67
72
|
getG1Data(): Uint8Array;
|
|
68
73
|
private fetchG1Data;
|
|
69
74
|
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0X2Nycy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Nycy9uZXRfY3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BOzs7R0FHRztBQUNILHdCQUFzQixpQkFBaUIsQ0FDckMsVUFBVSxFQUFFLE1BQU0sRUFDbEIsV0FBVyxFQUFFLE1BQU0sRUFDbkIsT0FBTyxFQUFFLFdBQVcsR0FDbkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQVVuQjtBQUVEOztHQUVHO0FBQ0gscUJBQWEsTUFBTTthQVFDLFNBQVMsRUFBRSxNQUFNO0lBUG5DLE9BQU8sQ0FBQyxJQUFJLENBQWM7SUFDMUIsT0FBTyxDQUFDLE1BQU0sQ0FBYztJQUU1QjtJQUNFOztPQUVHO0lBQ2EsU0FBUyxFQUFFLE1BQU0sRUFDL0I7SUFFSjs7T0FFRztJQUNHLElBQUksa0JBR1Q7SUFFRDs7T0FFRztJQUNHLFlBQVksSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBR3hEO0lBRUQ7O09BRUc7SUFDRyxZQUFZLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUd4RDtJQUVLLGNBQWMscUNBR25CO0lBRUQ7O09BRUc7SUFDRyxjQUFjLHFDQUduQjtJQUVEOzs7T0FHRztJQUNILFNBQVMsSUFBSSxVQUFVLENBRXRCO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxJQUFJLFVBQVUsQ0FFdEI7WUFLYSxXQUFXO1lBc0JYLFdBQVc7Q0FTMUI7QUFFRDs7R0FFRztBQUNILHFCQUFhLGNBQWM7YUFPUCxTQUFTLEVBQUUsTUFBTTtJQU5uQyxPQUFPLENBQUMsSUFBSSxDQUFjO0lBRTFCO0lBQ0U7O09BRUc7SUFDYSxTQUFTLEVBQUUsTUFBTSxFQUMvQjtJQUVKOztPQUVHO0lBQ0csSUFBSSxrQkFFVDtJQUVLLGNBQWMscUNBR25CO0lBRUQ7O09BRUc7SUFDRyxZQUFZLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUd4RDtJQUVEOzs7T0FHRztJQUNILFNBQVMsSUFBSSxVQUFVLENBRXRCO1lBS2EsV0FBVztDQW9CMUIifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"net_crs.d.ts","sourceRoot":"","sources":["../../../src/crs/net_crs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"net_crs.d.ts","sourceRoot":"","sources":["../../../src/crs/net_crs.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,QAAQ,CAAC,CAUnB;AAED;;GAEG;AACH,qBAAa,MAAM;aAQC,SAAS,EAAE,MAAM;IAPnC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,MAAM,CAAc;IAE5B;IACE;;OAEG;IACa,SAAS,EAAE,MAAM,EAC/B;IAEJ;;OAEG;IACG,IAAI,kBAGT;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAEK,cAAc,qCAGnB;IAED;;OAEG;IACG,cAAc,qCAGnB;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;YAKa,WAAW;YAsBX,WAAW;CAS1B;AAED;;GAEG;AACH,qBAAa,cAAc;aAOP,SAAS,EAAE,MAAM;IANnC,OAAO,CAAC,IAAI,CAAc;IAE1B;IACE;;OAEG;IACa,SAAS,EAAE,MAAM,EAC/B;IAEJ;;OAEG;IACG,IAAI,kBAET;IAEK,cAAc,qCAGnB;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;YAKa,WAAW;CAoB1B"}
|
package/dest/node/crs/net_crs.js
CHANGED
|
@@ -1,4 +1,24 @@
|
|
|
1
1
|
import { retry, makeBackoff } from '../retry/index.js';
|
|
2
|
+
// Primary CRS host (Cloudflare R2)
|
|
3
|
+
const CRS_PRIMARY_HOST = 'https://crs.aztec-cdn.foundation';
|
|
4
|
+
// Fallback CRS host (AWS S3)
|
|
5
|
+
const CRS_FALLBACK_HOST = 'https://crs.aztec-labs.com';
|
|
6
|
+
/**
|
|
7
|
+
* Fetches data from primary URL, falling back to secondary on failure
|
|
8
|
+
* @internal Exported for testing
|
|
9
|
+
*/
|
|
10
|
+
export async function fetchWithFallback(primaryUrl, fallbackUrl, options) {
|
|
11
|
+
try {
|
|
12
|
+
const response = await fetch(primaryUrl, options);
|
|
13
|
+
if (response.ok || response.status === 206) {
|
|
14
|
+
return response;
|
|
15
|
+
}
|
|
16
|
+
throw new Error(`HTTP ${response.status}`);
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return await fetch(fallbackUrl, options);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
2
22
|
/**
|
|
3
23
|
* Downloader for CRS from the web or local.
|
|
4
24
|
*/
|
|
@@ -68,20 +88,22 @@ export class NetCrs {
|
|
|
68
88
|
return new Response(new Uint8Array([]));
|
|
69
89
|
}
|
|
70
90
|
const g1End = this.numPoints * 64 - 1;
|
|
71
|
-
|
|
91
|
+
const options = {
|
|
72
92
|
headers: {
|
|
73
93
|
Range: `bytes=0-${g1End}`,
|
|
74
94
|
},
|
|
75
95
|
cache: 'force-cache',
|
|
76
|
-
}
|
|
96
|
+
};
|
|
97
|
+
return await retry(() => fetchWithFallback(`${CRS_PRIMARY_HOST}/g1.dat`, `${CRS_FALLBACK_HOST}/g1.dat`, options), makeBackoff([5, 5, 5]));
|
|
77
98
|
}
|
|
78
99
|
/**
|
|
79
100
|
* Fetches the appropriate range of points from a remote source
|
|
80
101
|
*/
|
|
81
102
|
async fetchG2Data() {
|
|
82
|
-
|
|
103
|
+
const options = {
|
|
83
104
|
cache: 'force-cache',
|
|
84
|
-
}
|
|
105
|
+
};
|
|
106
|
+
return await retry(() => fetchWithFallback(`${CRS_PRIMARY_HOST}/g2.dat`, `${CRS_FALLBACK_HOST}/g2.dat`, options), makeBackoff([5, 5, 5]));
|
|
85
107
|
}
|
|
86
108
|
}
|
|
87
109
|
/**
|
|
@@ -130,12 +152,13 @@ export class NetGrumpkinCrs {
|
|
|
130
152
|
return new Response(new Uint8Array([]));
|
|
131
153
|
}
|
|
132
154
|
const g1End = this.numPoints * 64 - 1;
|
|
133
|
-
|
|
155
|
+
const options = {
|
|
134
156
|
headers: {
|
|
135
157
|
Range: `bytes=0-${g1End}`,
|
|
136
158
|
},
|
|
137
159
|
cache: 'force-cache',
|
|
138
|
-
}
|
|
160
|
+
};
|
|
161
|
+
return await fetchWithFallback(`${CRS_PRIMARY_HOST}/grumpkin_g1.dat`, `${CRS_FALLBACK_HOST}/grumpkin_g1.dat`, options);
|
|
139
162
|
}
|
|
140
163
|
}
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0X2Nycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnMvbmV0X2Nycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXZELG1DQUFtQztBQUNuQyxNQUFNLGdCQUFnQixHQUFHLGtDQUFrQyxDQUFDO0FBQzVELDZCQUE2QjtBQUM3QixNQUFNLGlCQUFpQixHQUFHLDRCQUE0QixDQUFDO0FBRXZEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLFVBQWtCLEVBQ2xCLFdBQW1CLEVBQ25CLE9BQW9CLEVBQ0Q7SUFDbkIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELElBQUksUUFBUSxDQUFDLEVBQUUsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQzNDLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sTUFBTSxLQUFLLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNDLENBQUM7QUFBQSxDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sTUFBTTtJQVFDLFNBQVM7SUFQbkIsSUFBSSxDQUFjO0lBQ2xCLE1BQU0sQ0FBYztJQUU1QjtJQUNFOztPQUVHO0lBQ2EsU0FBaUIsRUFDakM7eUJBRGdCLFNBQVM7SUFDeEIsQ0FBQztJQUVKOztPQUVHO0lBQ0gsS0FBSyxDQUFDLElBQUksR0FBRztRQUNYLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzVCLE1BQU0sSUFBSSxDQUFD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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"net_crs.test.d.ts","sourceRoot":"","sources":["../../../src/crs/net_crs.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { NetCrs, fetchWithFallback } from './net_crs.js';
|
|
2
|
+
// Expected first G1 point from BN254 CRS (generator point with x=1, y=2 in big-endian)
|
|
3
|
+
const BN254_G1_FIRST_ELEMENT = new Uint8Array([
|
|
4
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
5
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
|
|
6
|
+
]);
|
|
7
|
+
describe('NetCrs', () => {
|
|
8
|
+
it('should download CRS data from primary host', async () => {
|
|
9
|
+
const crs = new NetCrs(1);
|
|
10
|
+
await crs.init();
|
|
11
|
+
const g1Data = crs.getG1Data();
|
|
12
|
+
expect(g1Data.length).toBe(64); // 1 point * 64 bytes
|
|
13
|
+
// Verify first point matches expected generator
|
|
14
|
+
expect(g1Data).toEqual(BN254_G1_FIRST_ELEMENT);
|
|
15
|
+
}, 30000);
|
|
16
|
+
it('should download G2 data', async () => {
|
|
17
|
+
const crs = new NetCrs(1);
|
|
18
|
+
await crs.init();
|
|
19
|
+
const g2Data = crs.getG2Data();
|
|
20
|
+
expect(g2Data.length).toBe(128); // G2 point is 128 bytes
|
|
21
|
+
}, 30000);
|
|
22
|
+
});
|
|
23
|
+
describe('fetchWithFallback', () => {
|
|
24
|
+
it('should fallback to secondary URL when primary fails', async () => {
|
|
25
|
+
const badPrimaryUrl = 'https://nonexistent.invalid/g1.dat';
|
|
26
|
+
const goodFallbackUrl = 'https://crs.aztec-labs.com/g1.dat';
|
|
27
|
+
const options = {
|
|
28
|
+
headers: {
|
|
29
|
+
Range: 'bytes=0-63',
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
const response = await fetchWithFallback(badPrimaryUrl, goodFallbackUrl, options);
|
|
33
|
+
expect(response.ok || response.status === 206).toBe(true);
|
|
34
|
+
const data = new Uint8Array(await response.arrayBuffer());
|
|
35
|
+
expect(data.length).toBe(64);
|
|
36
|
+
expect(data).toEqual(BN254_G1_FIRST_ELEMENT);
|
|
37
|
+
}, 30000);
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0X2Nycy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Nycy9uZXRfY3JzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6RCx1RkFBdUY7QUFDdkYsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLFVBQVUsQ0FBQztJQUM1QyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3RILENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztDQUN2RSxDQUFDLENBQUM7QUFFSCxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQzNELE1BQU0sR0FBRyxHQUFHLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRWpCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMvQixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHFCQUFxQjtRQUVyRCxnREFBZ0Q7UUFDaEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQUEsQ0FDaEQsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUVWLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3hDLE1BQU0sR0FBRyxHQUFHLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRWpCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMvQixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLHdCQUF3QjtJQUF6QixDQUNqQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQUEsQ0FDWCxDQUFDLENBQUM7QUFFSCxRQUFRLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDbEMsRUFBRSxDQUFDLHFEQUFxRCxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDcEUsTUFBTSxhQUFhLEdBQUcsb0NBQW9DLENBQUM7UUFDM0QsTUFBTSxlQUFlLEdBQUcsbUNBQW1DLENBQUM7UUFDNUQsTUFBTSxPQUFPLEdBQWdCO1lBQzNCLE9BQU8sRUFBRTtnQkFDUCxLQUFLLEVBQUUsWUFBWTthQUNwQjtTQUNGLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxNQUFNLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEYsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFMUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUMxRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFBQSxDQUM5QyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQUEsQ0FDWCxDQUFDLENBQUMifQ==
|
|
Binary file
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fetches data from primary URL, falling back to secondary on failure
|
|
3
|
+
* @internal Exported for testing
|
|
4
|
+
*/
|
|
5
|
+
export declare function fetchWithFallback(primaryUrl: string, fallbackUrl: string, options: RequestInit): Promise<Response>;
|
|
1
6
|
/**
|
|
2
7
|
* Downloader for CRS from the web or local.
|
|
3
8
|
*/
|
|
@@ -67,4 +72,4 @@ export declare class NetGrumpkinCrs {
|
|
|
67
72
|
getG1Data(): Uint8Array;
|
|
68
73
|
private fetchG1Data;
|
|
69
74
|
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0X2Nycy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Nycy9uZXRfY3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BOzs7R0FHRztBQUNILHdCQUFzQixpQkFBaUIsQ0FDckMsVUFBVSxFQUFFLE1BQU0sRUFDbEIsV0FBVyxFQUFFLE1BQU0sRUFDbkIsT0FBTyxFQUFFLFdBQVcsR0FDbkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQVVuQjtBQUVEOztHQUVHO0FBQ0gscUJBQWEsTUFBTTthQVFDLFNBQVMsRUFBRSxNQUFNO0lBUG5DLE9BQU8sQ0FBQyxJQUFJLENBQWM7SUFDMUIsT0FBTyxDQUFDLE1BQU0sQ0FBYztJQUU1QjtJQUNFOztPQUVHO0lBQ2EsU0FBUyxFQUFFLE1BQU0sRUFDL0I7SUFFSjs7T0FFRztJQUNHLElBQUksa0JBR1Q7SUFFRDs7T0FFRztJQUNHLFlBQVksSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBR3hEO0lBRUQ7O09BRUc7SUFDRyxZQUFZLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUd4RDtJQUVLLGNBQWMscUNBR25CO0lBRUQ7O09BRUc7SUFDRyxjQUFjLHFDQUduQjtJQUVEOzs7T0FHRztJQUNILFNBQVMsSUFBSSxVQUFVLENBRXRCO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxJQUFJLFVBQVUsQ0FFdEI7WUFLYSxXQUFXO1lBc0JYLFdBQVc7Q0FTMUI7QUFFRDs7R0FFRztBQUNILHFCQUFhLGNBQWM7YUFPUCxTQUFTLEVBQUUsTUFBTTtJQU5uQyxPQUFPLENBQUMsSUFBSSxDQUFjO0lBRTFCO0lBQ0U7O09BRUc7SUFDYSxTQUFTLEVBQUUsTUFBTSxFQUMvQjtJQUVKOztPQUVHO0lBQ0csSUFBSSxrQkFFVDtJQUVLLGNBQWMscUNBR25CO0lBRUQ7O09BRUc7SUFDRyxZQUFZLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUd4RDtJQUVEOzs7T0FHRztJQUNILFNBQVMsSUFBSSxVQUFVLENBRXRCO1lBS2EsV0FBVztDQW9CMUIifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"net_crs.d.ts","sourceRoot":"","sources":["../../../src/crs/net_crs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"net_crs.d.ts","sourceRoot":"","sources":["../../../src/crs/net_crs.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,QAAQ,CAAC,CAUnB;AAED;;GAEG;AACH,qBAAa,MAAM;aAQC,SAAS,EAAE,MAAM;IAPnC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,MAAM,CAAc;IAE5B;IACE;;OAEG;IACa,SAAS,EAAE,MAAM,EAC/B;IAEJ;;OAEG;IACG,IAAI,kBAGT;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAEK,cAAc,qCAGnB;IAED;;OAEG;IACG,cAAc,qCAGnB;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;YAKa,WAAW;YAsBX,WAAW;CAS1B;AAED;;GAEG;AACH,qBAAa,cAAc;aAOP,SAAS,EAAE,MAAM;IANnC,OAAO,CAAC,IAAI,CAAc;IAE1B;IACE;;OAEG;IACa,SAAS,EAAE,MAAM,EAC/B;IAEJ;;OAEG;IACG,IAAI,kBAET;IAEK,cAAc,qCAGnB;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;YAKa,WAAW;CAoB1B"}
|
|
@@ -1,7 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NetGrumpkinCrs = exports.NetCrs = void 0;
|
|
4
|
+
exports.fetchWithFallback = fetchWithFallback;
|
|
4
5
|
const index_js_1 = require("../retry/index.js");
|
|
6
|
+
// Primary CRS host (Cloudflare R2)
|
|
7
|
+
const CRS_PRIMARY_HOST = 'https://crs.aztec-cdn.foundation';
|
|
8
|
+
// Fallback CRS host (AWS S3)
|
|
9
|
+
const CRS_FALLBACK_HOST = 'https://crs.aztec-labs.com';
|
|
10
|
+
/**
|
|
11
|
+
* Fetches data from primary URL, falling back to secondary on failure
|
|
12
|
+
* @internal Exported for testing
|
|
13
|
+
*/
|
|
14
|
+
async function fetchWithFallback(primaryUrl, fallbackUrl, options) {
|
|
15
|
+
try {
|
|
16
|
+
const response = await fetch(primaryUrl, options);
|
|
17
|
+
if (response.ok || response.status === 206) {
|
|
18
|
+
return response;
|
|
19
|
+
}
|
|
20
|
+
throw new Error(`HTTP ${response.status}`);
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return await fetch(fallbackUrl, options);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
5
26
|
/**
|
|
6
27
|
* Downloader for CRS from the web or local.
|
|
7
28
|
*/
|
|
@@ -71,20 +92,22 @@ class NetCrs {
|
|
|
71
92
|
return new Response(new Uint8Array([]));
|
|
72
93
|
}
|
|
73
94
|
const g1End = this.numPoints * 64 - 1;
|
|
74
|
-
|
|
95
|
+
const options = {
|
|
75
96
|
headers: {
|
|
76
97
|
Range: `bytes=0-${g1End}`,
|
|
77
98
|
},
|
|
78
99
|
cache: 'force-cache',
|
|
79
|
-
}
|
|
100
|
+
};
|
|
101
|
+
return await (0, index_js_1.retry)(() => fetchWithFallback(`${CRS_PRIMARY_HOST}/g1.dat`, `${CRS_FALLBACK_HOST}/g1.dat`, options), (0, index_js_1.makeBackoff)([5, 5, 5]));
|
|
80
102
|
}
|
|
81
103
|
/**
|
|
82
104
|
* Fetches the appropriate range of points from a remote source
|
|
83
105
|
*/
|
|
84
106
|
async fetchG2Data() {
|
|
85
|
-
|
|
107
|
+
const options = {
|
|
86
108
|
cache: 'force-cache',
|
|
87
|
-
}
|
|
109
|
+
};
|
|
110
|
+
return await (0, index_js_1.retry)(() => fetchWithFallback(`${CRS_PRIMARY_HOST}/g2.dat`, `${CRS_FALLBACK_HOST}/g2.dat`, options), (0, index_js_1.makeBackoff)([5, 5, 5]));
|
|
88
111
|
}
|
|
89
112
|
}
|
|
90
113
|
exports.NetCrs = NetCrs;
|
|
@@ -134,13 +157,14 @@ class NetGrumpkinCrs {
|
|
|
134
157
|
return new Response(new Uint8Array([]));
|
|
135
158
|
}
|
|
136
159
|
const g1End = this.numPoints * 64 - 1;
|
|
137
|
-
|
|
160
|
+
const options = {
|
|
138
161
|
headers: {
|
|
139
162
|
Range: `bytes=0-${g1End}`,
|
|
140
163
|
},
|
|
141
164
|
cache: 'force-cache',
|
|
142
|
-
}
|
|
165
|
+
};
|
|
166
|
+
return await fetchWithFallback(`${CRS_PRIMARY_HOST}/grumpkin_g1.dat`, `${CRS_FALLBACK_HOST}/grumpkin_g1.dat`, options);
|
|
143
167
|
}
|
|
144
168
|
}
|
|
145
169
|
exports.NetGrumpkinCrs = NetGrumpkinCrs;
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0X2Nycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnMvbmV0X2Nycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsZ0RBQXVEO0FBRXZELG1DQUFtQztBQUNuQyxNQUFNLGdCQUFnQixHQUFHLGtDQUFrQyxDQUFDO0FBQzVELDZCQUE2QjtBQUM3QixNQUFNLGlCQUFpQixHQUFHLDRCQUE0QixDQUFDO0FBRXZEOzs7R0FHRztBQUNJLEtBQUssNEJBQ1YsVUFBa0IsRUFDbEIsV0FBbUIsRUFDbkIsT0FBb0IsRUFDRDtJQUNuQixJQUFJLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEQsSUFBSSxRQUFRLENBQUMsRUFBRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDM0MsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxNQUFNLEtBQUssQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsQ0FBQztBQUFBLENBQ0Y7QUFFRDs7R0FFRztBQUNIO0lBUW9CLFNBQVM7SUFQbkIsSUFBSSxDQUFjO0lBQ2xCLE1BQU0sQ0FBYztJQUU1QjtJQUNFOztPQUVHO0lBQ2EsU0FBaUIsRUFDakM7eUJBRGdCLFNBQVM7SUFDeEIsQ0FBQztJQUVKOztPQUVHO0lBQ0gsS0FBSyxDQUFDLElBQUksR0FBRztRQUNYLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzVCLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQUEsQ0FDN0I7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxZQUFZLEdBQXdDO1FBQ3hELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzFDLE9BQU8sUUFBUSxDQUFDLElBQUssQ0FBQztJQUFBLENBQ3ZCO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsWUFBWSxHQUF3QztRQUN4RCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxQyxPQUFPLFFBQVEsQ0FBQyxJQUFLLENBQUM7SUFBQSxDQUN2QjtJQUVELEtBQUssQ0FBQyxjQUFjLEdBQUc7UUFDckIsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDMUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQUEsQ0FDbkU7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxjQUFjLEdBQUc7UUFDckIsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDM0MsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQUEsQ0FDdEU7SUFFRDs7O09BR0c7SUFDSCxTQUFTLEdBQWU7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQUEsQ0FDbEI7SUFFRDs7O09BR0c7SUFDSCxTQUFTLEdBQWU7UUFDdEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQUEsQ0FDcEI7SUFFRDs7T0FFRztJQUNLLEtBQUssQ0FBQyxXQUFXLEdBQXNCO1FBQzdDLHlHQUF5RztRQUN6RyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekIsT0FBTyxJQUFJLFFBQVEsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdEMsTUFBTSxPQUFPLEdBQWdCO1lBQzNCLE9BQU8sRUFBRTtnQkFDUCxLQUFLLEVBQUUsV0FBVyxLQUFLLEVBQUU7YUFDMUI7WUFDRCxLQUFLLEVBQUUsYUFBYTtTQUNyQixDQUFDO1FBQ0YsT0FBTyxNQUFNLElBQUEsZ0JBQUssRUFDaEIsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUMsR0FBRyxnQkFBZ0IsU0FBUyxFQUFFLEdBQUcsaUJBQWlCLFNBQVMsRUFBRSxPQUFPLENBQUMsRUFDN0YsSUFBQSxzQkFBVyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUN2QixDQUFDO0lBQUEsQ0FDSDtJQUVEOztPQUVHO0lBQ0ssS0FBSyxDQUFDLFdBQVcsR0FBc0I7UUFDN0MsTUFBTSxPQUFPLEdBQWdCO1lBQzNCLEtBQUssRUFBRSxhQUFhO1NBQ3JCLENBQUM7UUFDRixPQUFPLE1BQU0sSUFBQSxnQkFBSyxFQUNoQixHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLGdCQUFnQixTQUFTLEVBQUUsR0FBRyxpQkFBaUIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxFQUM3RixJQUFBLHNCQUFXLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3ZCLENBQUM7SUFBQSxDQUNIO0NBQ0Y7O0FBRUQ7O0dBRUc7QUFDSDtJQU9vQixTQUFTO0lBTm5CLElBQUksQ0FBYztJQUUxQjtJQUNFOztPQUVHO0lBQ2EsU0FBaUIsRUFDakM7eUJBRGdCLFNBQVM7SUFDeEIsQ0FBQztJQUVKOztPQUVHO0lBQ0gsS0FBSyxDQUFDLElBQUksR0FBRztRQUNYLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQUEsQ0FDN0I7SUFFRCxLQUFLLENBQUMsY0FBYyxHQUFHO1FBQ3JCLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksVUFBVSxDQUFDLE1BQU0sUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUFBLENBQ25FO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsWUFBWSxHQUF3QztRQUN4RCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxQyxPQUFPLFFBQVEsQ0FBQyxJQUFLLENBQUM7SUFBQSxDQUN2QjtJQUVEOzs7T0FHRztJQUNILFNBQVMsR0FBZTtRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFBQSxDQUNsQjtJQUVEOztPQUVHO0lBQ0ssS0FBSyxDQUFDLFdBQVcsR0FBc0I7UUFDN0MseUdBQXlHO1FBQ3pHLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN6QixPQUFPLElBQUksUUFBUSxDQUFDLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN0QyxNQUFNLE9BQU8sR0FBZ0I7WUFDM0IsT0FBTyxFQUFFO2dCQUNQLEtBQUssRUFBRSxXQUFXLEtBQUssRUFBRTthQUMxQjtZQUNELEtBQUssRUFBRSxhQUFhO1NBQ3JCLENBQUM7UUFFRixPQUFPLE1BQU0saUJBQWlCLENBQzVCLEdBQUcsZ0JBQWdCLGtCQUFrQixFQUNyQyxHQUFHLGlCQUFpQixrQkFBa0IsRUFDdEMsT0FBTyxDQUNSLENBQUM7SUFBQSxDQUNIO0NBQ0YifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"net_crs.test.d.ts","sourceRoot":"","sources":["../../../src/crs/net_crs.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const net_crs_js_1 = require("./net_crs.js");
|
|
4
|
+
// Expected first G1 point from BN254 CRS (generator point with x=1, y=2 in big-endian)
|
|
5
|
+
const BN254_G1_FIRST_ELEMENT = new Uint8Array([
|
|
6
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
7
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
|
|
8
|
+
]);
|
|
9
|
+
describe('NetCrs', () => {
|
|
10
|
+
it('should download CRS data from primary host', async () => {
|
|
11
|
+
const crs = new net_crs_js_1.NetCrs(1);
|
|
12
|
+
await crs.init();
|
|
13
|
+
const g1Data = crs.getG1Data();
|
|
14
|
+
expect(g1Data.length).toBe(64); // 1 point * 64 bytes
|
|
15
|
+
// Verify first point matches expected generator
|
|
16
|
+
expect(g1Data).toEqual(BN254_G1_FIRST_ELEMENT);
|
|
17
|
+
}, 30000);
|
|
18
|
+
it('should download G2 data', async () => {
|
|
19
|
+
const crs = new net_crs_js_1.NetCrs(1);
|
|
20
|
+
await crs.init();
|
|
21
|
+
const g2Data = crs.getG2Data();
|
|
22
|
+
expect(g2Data.length).toBe(128); // G2 point is 128 bytes
|
|
23
|
+
}, 30000);
|
|
24
|
+
});
|
|
25
|
+
describe('fetchWithFallback', () => {
|
|
26
|
+
it('should fallback to secondary URL when primary fails', async () => {
|
|
27
|
+
const badPrimaryUrl = 'https://nonexistent.invalid/g1.dat';
|
|
28
|
+
const goodFallbackUrl = 'https://crs.aztec-labs.com/g1.dat';
|
|
29
|
+
const options = {
|
|
30
|
+
headers: {
|
|
31
|
+
Range: 'bytes=0-63',
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
const response = await (0, net_crs_js_1.fetchWithFallback)(badPrimaryUrl, goodFallbackUrl, options);
|
|
35
|
+
expect(response.ok || response.status === 206).toBe(true);
|
|
36
|
+
const data = new Uint8Array(await response.arrayBuffer());
|
|
37
|
+
expect(data.length).toBe(64);
|
|
38
|
+
expect(data).toEqual(BN254_G1_FIRST_ELEMENT);
|
|
39
|
+
}, 30000);
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0X2Nycy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Nycy9uZXRfY3JzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2Q0FBeUQ7QUFFekQsdUZBQXVGO0FBQ3ZGLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxVQUFVLENBQUM7SUFDNUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN0SCxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7Q0FDdkUsQ0FBQyxDQUFDO0FBRUgsUUFBUSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUN2QixFQUFFLENBQUMsNENBQTRDLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUMzRCxNQUFNLEdBQUcsR0FBRyxJQUFJLG1CQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsTUFBTSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFakIsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQy9CLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMscUJBQXFCO1FBRXJELGdEQUFnRDtRQUNoRCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFBQSxDQUNoRCxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRVYsRUFBRSxDQUFDLHlCQUF5QixFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDeEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxtQkFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRWpCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMvQixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLHdCQUF3QjtJQUF6QixDQUNqQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQUEsQ0FDWCxDQUFDLENBQUM7QUFFSCxRQUFRLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDbEMsRUFBRSxDQUFDLHFEQUFxRCxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDcEUsTUFBTSxhQUFhLEdBQUcsb0NBQW9DLENBQUM7UUFDM0QsTUFBTSxlQUFlLEdBQUcsbUNBQW1DLENBQUM7UUFDNUQsTUFBTSxPQUFPLEdBQWdCO1lBQzNCLE9BQU8sRUFBRTtnQkFDUCxLQUFLLEVBQUUsWUFBWTthQUNwQjtTQUNGLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsOEJBQWlCLEVBQUMsYUFBYSxFQUFFLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNsRixNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUxRCxNQUFNLElBQUksR0FBRyxJQUFJLFVBQVUsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzFELE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUFBLENBQzlDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFBQSxDQUNYLENBQUMsQ0FBQyJ9
|
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.0.1-commit.
|
|
4
|
+
"version": "0.0.1-commit.f1df4d2",
|
|
5
5
|
"homepage": "https://github.com/AztecProtocol/aztec-packages/tree/master/barretenberg/ts",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "module",
|