@aztec/bb.js 0.0.1-alpha.6 → 0.0.1-fake-ceab37513c
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/README.md +69 -33
- package/package.json +56 -41
- package/src/barretenberg/__snapshots__/pedersen.test.ts.snap +156 -0
- package/src/barretenberg/__snapshots__/poseidon.test.ts.snap +40 -0
- package/src/barretenberg/backend.ts +378 -0
- package/src/barretenberg/blake2s.test.ts +70 -0
- package/src/{barretenberg_api → barretenberg}/common.test.ts +7 -5
- package/src/barretenberg/index.ts +204 -0
- package/src/barretenberg/pedersen.test.ts +62 -0
- package/src/barretenberg/poseidon.test.ts +39 -0
- package/src/barretenberg_api/index.ts +1128 -383
- package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +138 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.ts +11 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.ts +13 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts +21 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.ts +19 -0
- package/src/{barretenberg_binder/heap_allocator_sync.ts → barretenberg_wasm/barretenberg_wasm_main/heap_allocator.ts} +20 -17
- package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +167 -0
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.ts +11 -0
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.ts +13 -0
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts +21 -0
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.ts +19 -0
- package/src/barretenberg_wasm/barretenberg_wasm_thread/index.ts +47 -0
- package/src/barretenberg_wasm/fetch_code/browser/barretenberg-threads.ts +3 -0
- package/src/barretenberg_wasm/fetch_code/browser/barretenberg.ts +3 -0
- package/src/barretenberg_wasm/fetch_code/browser/index.ts +34 -0
- package/src/barretenberg_wasm/fetch_code/index.ts +1 -0
- package/src/barretenberg_wasm/fetch_code/node/index.ts +34 -0
- package/src/barretenberg_wasm/fetch_code/wasm-module.d.ts +4 -0
- package/src/barretenberg_wasm/helpers/browser/index.ts +47 -0
- package/src/barretenberg_wasm/helpers/index.ts +1 -0
- package/src/barretenberg_wasm/{node → helpers/node}/index.ts +24 -15
- package/src/barretenberg_wasm/index.test.ts +45 -0
- package/src/barretenberg_wasm/index.ts +22 -1
- package/src/benchmark/index.ts +26 -0
- package/src/benchmark/timer.ts +45 -0
- package/src/bigint-array/index.ts +39 -17
- package/src/bindgen/index.ts +2 -2
- package/src/bindgen/mappings.ts +3 -2
- package/src/bindgen/typescript.ts +50 -25
- package/src/cbind/README.md +1 -0
- package/src/cbind/generate.ts +89 -0
- package/src/cbind/schema_compiler.ts +833 -0
- package/src/crs/browser/cached_net_crs.ts +41 -2
- package/src/crs/browser/index.ts +1 -1
- package/src/crs/index.ts +1 -1
- package/src/crs/net_crs.ts +114 -19
- package/src/crs/node/index.ts +98 -20
- package/src/index.html +1 -1
- package/src/index.ts +13 -5
- package/src/log/browser/index.ts +35 -0
- package/src/log/index.ts +1 -0
- package/src/log/node/index.ts +52 -0
- package/src/log/types.ts +6 -0
- package/src/main.ts +395 -185
- package/src/proof/index.ts +94 -0
- package/src/random/browser/index.ts +1 -1
- package/src/retry/index.ts +50 -0
- package/src/serialize/buffer_reader.ts +4 -1
- package/src/types/fields.ts +46 -18
- package/src/types/point.ts +4 -1
- package/dest/async_map/index.d.ts +0 -10
- package/dest/async_map/index.d.ts.map +0 -1
- package/dest/async_map/index.js +0 -16
- package/dest/barretenberg-threads.wasm +0 -0
- package/dest/barretenberg.wasm +0 -0
- package/dest/barretenberg_api/blake2s.test.d.ts +0 -2
- package/dest/barretenberg_api/blake2s.test.d.ts.map +0 -1
- package/dest/barretenberg_api/blake2s.test.js +0 -30
- package/dest/barretenberg_api/common.test.d.ts +0 -2
- package/dest/barretenberg_api/common.test.d.ts.map +0 -1
- package/dest/barretenberg_api/common.test.js +0 -18
- package/dest/barretenberg_api/index.d.ts +0 -103
- package/dest/barretenberg_api/index.d.ts.map +0 -1
- package/dest/barretenberg_api/index.js +0 -379
- package/dest/barretenberg_api/pedersen.test.d.ts +0 -2
- package/dest/barretenberg_api/pedersen.test.d.ts.map +0 -1
- package/dest/barretenberg_api/pedersen.test.js +0 -69
- package/dest/barretenberg_api/schnorr.test.d.ts +0 -2
- package/dest/barretenberg_api/schnorr.test.d.ts.map +0 -1
- package/dest/barretenberg_api/schnorr.test.js +0 -113
- package/dest/barretenberg_binder/heap_allocator.d.ts +0 -22
- package/dest/barretenberg_binder/heap_allocator.d.ts.map +0 -1
- package/dest/barretenberg_binder/heap_allocator.js +0 -59
- package/dest/barretenberg_binder/heap_allocator_sync.d.ts +0 -22
- package/dest/barretenberg_binder/heap_allocator_sync.d.ts.map +0 -1
- package/dest/barretenberg_binder/heap_allocator_sync.js +0 -58
- package/dest/barretenberg_binder/index.d.ts +0 -32
- package/dest/barretenberg_binder/index.d.ts.map +0 -1
- package/dest/barretenberg_binder/index.js +0 -73
- package/dest/barretenberg_wasm/barretenberg_wasm.d.ts +0 -50
- package/dest/barretenberg_wasm/barretenberg_wasm.d.ts.map +0 -1
- package/dest/barretenberg_wasm/barretenberg_wasm.js +0 -212
- package/dest/barretenberg_wasm/barretenberg_wasm.test.d.ts +0 -2
- package/dest/barretenberg_wasm/barretenberg_wasm.test.d.ts.map +0 -1
- package/dest/barretenberg_wasm/barretenberg_wasm.test.js +0 -43
- package/dest/barretenberg_wasm/browser/index.d.ts +0 -8
- package/dest/barretenberg_wasm/browser/index.d.ts.map +0 -1
- package/dest/barretenberg_wasm/browser/index.js +0 -26
- package/dest/barretenberg_wasm/browser/worker.d.ts +0 -2
- package/dest/barretenberg_wasm/browser/worker.d.ts.map +0 -1
- package/dest/barretenberg_wasm/browser/worker.js +0 -11
- package/dest/barretenberg_wasm/index.d.ts +0 -2
- package/dest/barretenberg_wasm/index.d.ts.map +0 -1
- package/dest/barretenberg_wasm/index.js +0 -2
- package/dest/barretenberg_wasm/node/index.d.ts +0 -17
- package/dest/barretenberg_wasm/node/index.d.ts.map +0 -1
- package/dest/barretenberg_wasm/node/index.js +0 -40
- package/dest/barretenberg_wasm/node/node_endpoint.d.ts +0 -8
- package/dest/barretenberg_wasm/node/node_endpoint.d.ts.map +0 -1
- package/dest/barretenberg_wasm/node/node_endpoint.js +0 -28
- package/dest/barretenberg_wasm/node/worker.d.ts +0 -2
- package/dest/barretenberg_wasm/node/worker.d.ts.map +0 -1
- package/dest/barretenberg_wasm/node/worker.js +0 -9
- package/dest/barretenberg_wasm.js +0 -2
- package/dest/barretenberg_wasm.js.LICENSE.txt +0 -5
- package/dest/bigint-array/index.d.ts +0 -3
- package/dest/bigint-array/index.d.ts.map +0 -1
- package/dest/bigint-array/index.js +0 -21
- package/dest/bindgen/function_declaration.d.ts +0 -11
- package/dest/bindgen/function_declaration.d.ts.map +0 -1
- package/dest/bindgen/function_declaration.js +0 -2
- package/dest/bindgen/index.d.ts +0 -2
- package/dest/bindgen/index.d.ts.map +0 -1
- package/dest/bindgen/index.js +0 -15
- package/dest/bindgen/mappings.d.ts +0 -4
- package/dest/bindgen/mappings.d.ts.map +0 -1
- package/dest/bindgen/mappings.js +0 -63
- package/dest/bindgen/rust.d.ts +0 -2
- package/dest/bindgen/rust.d.ts.map +0 -1
- package/dest/bindgen/rust.js +0 -43
- package/dest/bindgen/to_camel_case.d.ts +0 -2
- package/dest/bindgen/to_camel_case.d.ts.map +0 -1
- package/dest/bindgen/to_camel_case.js +0 -11
- package/dest/bindgen/typescript.d.ts +0 -2
- package/dest/bindgen/typescript.d.ts.map +0 -1
- package/dest/bindgen/typescript.js +0 -80
- package/dest/crs/browser/cached_net_crs.d.ts +0 -25
- package/dest/crs/browser/cached_net_crs.d.ts.map +0 -1
- package/dest/crs/browser/cached_net_crs.js +0 -54
- package/dest/crs/browser/index.d.ts +0 -2
- package/dest/crs/browser/index.d.ts.map +0 -1
- package/dest/crs/browser/index.js +0 -2
- package/dest/crs/index.d.ts +0 -2
- package/dest/crs/index.d.ts.map +0 -1
- package/dest/crs/index.js +0 -2
- package/dest/crs/net_crs.d.ts +0 -36
- package/dest/crs/net_crs.d.ts.map +0 -1
- package/dest/crs/net_crs.js +0 -59
- package/dest/crs/node/file_crs.d.ts +0 -37
- package/dest/crs/node/file_crs.d.ts.map +0 -1
- package/dest/crs/node/file_crs.js +0 -51
- package/dest/crs/node/index.d.ts +0 -31
- package/dest/crs/node/index.d.ts.map +0 -1
- package/dest/crs/node/index.js +0 -41
- package/dest/examples/simple.rawtest.d.ts +0 -2
- package/dest/examples/simple.rawtest.d.ts.map +0 -1
- package/dest/examples/simple.rawtest.js +0 -29
- package/dest/examples/simple.test.d.ts +0 -2
- package/dest/examples/simple.test.d.ts.map +0 -1
- package/dest/examples/simple.test.js +0 -22
- package/dest/factory/index.d.ts +0 -21
- package/dest/factory/index.d.ts.map +0 -1
- package/dest/factory/index.js +0 -34
- package/dest/index.d.ts +0 -6
- package/dest/index.d.ts.map +0 -1
- package/dest/index.html +0 -1
- package/dest/index.js +0 -6
- package/dest/main.d.ts +0 -10
- package/dest/main.d.ts.map +0 -1
- package/dest/main.js +0 -280
- package/dest/random/browser/index.d.ts +0 -2
- package/dest/random/browser/index.d.ts.map +0 -1
- package/dest/random/browser/index.js +0 -31
- package/dest/random/index.d.ts +0 -2
- package/dest/random/index.d.ts.map +0 -1
- package/dest/random/index.js +0 -2
- package/dest/random/node/index.d.ts +0 -2
- package/dest/random/node/index.d.ts.map +0 -1
- package/dest/random/node/index.js +0 -5
- package/dest/serialize/buffer_reader.d.ts +0 -28
- package/dest/serialize/buffer_reader.d.ts.map +0 -1
- package/dest/serialize/buffer_reader.js +0 -66
- package/dest/serialize/index.d.ts +0 -4
- package/dest/serialize/index.d.ts.map +0 -1
- package/dest/serialize/index.js +0 -4
- package/dest/serialize/output_type.d.ts +0 -11
- package/dest/serialize/output_type.d.ts.map +0 -1
- package/dest/serialize/output_type.js +0 -44
- package/dest/serialize/serialize.d.ts +0 -53
- package/dest/serialize/serialize.d.ts.map +0 -1
- package/dest/serialize/serialize.js +0 -139
- package/dest/simple_test.js +0 -2
- package/dest/simple_test.js.LICENSE.txt +0 -14
- package/dest/types/fields.d.ts +0 -33
- package/dest/types/fields.d.ts.map +0 -1
- package/dest/types/fields.js +0 -86
- package/dest/types/fixed_size_buffer.d.ts +0 -26
- package/dest/types/fixed_size_buffer.d.ts.map +0 -1
- package/dest/types/fixed_size_buffer.js +0 -54
- package/dest/types/index.d.ts +0 -6
- package/dest/types/index.d.ts.map +0 -1
- package/dest/types/index.js +0 -6
- package/dest/types/point.d.ts +0 -17
- package/dest/types/point.d.ts.map +0 -1
- package/dest/types/point.js +0 -32
- package/dest/types/ptr.d.ts +0 -13
- package/dest/types/ptr.d.ts.map +0 -1
- package/dest/types/ptr.js +0 -20
- package/dest/types/raw_buffer.d.ts +0 -3
- package/dest/types/raw_buffer.d.ts.map +0 -1
- package/dest/types/raw_buffer.js +0 -5
- package/src/barretenberg_api/blake2s.test.ts +0 -39
- package/src/barretenberg_api/pedersen.test.ts +0 -84
- package/src/barretenberg_api/schnorr.test.ts +0 -169
- package/src/barretenberg_binder/heap_allocator.ts +0 -62
- package/src/barretenberg_binder/index.ts +0 -76
- package/src/barretenberg_wasm/barretenberg_wasm.test.ts +0 -52
- package/src/barretenberg_wasm/barretenberg_wasm.ts +0 -246
- package/src/barretenberg_wasm/browser/index.ts +0 -32
- package/src/barretenberg_wasm/browser/worker.ts +0 -13
- package/src/barretenberg_wasm/node/worker.ts +0 -10
- package/src/crs/node/file_crs.ts +0 -60
- package/src/examples/simple.rawtest.ts +0 -37
- package/src/examples/simple.test.ts +0 -27
- package/src/factory/index.ts +0 -36
- /package/src/barretenberg_wasm/{node → helpers/node}/node_endpoint.ts +0 -0
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Downloader for CRS from the web or local.
|
|
3
|
-
*/
|
|
4
|
-
export declare class CachedNetCrs {
|
|
5
|
-
readonly numPoints: number;
|
|
6
|
-
private g1Data;
|
|
7
|
-
private g2Data;
|
|
8
|
-
constructor(numPoints: number);
|
|
9
|
-
static new(numPoints: number): Promise<CachedNetCrs>;
|
|
10
|
-
/**
|
|
11
|
-
* Download the data.
|
|
12
|
-
*/
|
|
13
|
-
init(): Promise<void>;
|
|
14
|
-
/**
|
|
15
|
-
* G1 points data for prover key.
|
|
16
|
-
* @returns The points data.
|
|
17
|
-
*/
|
|
18
|
-
getG1Data(): Uint8Array;
|
|
19
|
-
/**
|
|
20
|
-
* G2 points data for verification key.
|
|
21
|
-
* @returns The points data.
|
|
22
|
-
*/
|
|
23
|
-
getG2Data(): Uint8Array;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=cached_net_crs.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cached_net_crs.d.ts","sourceRoot":"","sources":["../../../src/crs/browser/cached_net_crs.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,qBAAa,YAAY;aAIK,SAAS,EAAE,MAAM;IAH7C,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAc;gBAEA,SAAS,EAAE,MAAM;WAEhC,GAAG,CAAC,SAAS,EAAE,MAAM;IAMlC;;OAEG;IACG,IAAI;IAsBV;;;OAGG;IACH,SAAS,IAAI,UAAU;IAIvB;;;OAGG;IACH,SAAS,IAAI,UAAU;CAGxB"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { NetCrs } from '../net_crs.js';
|
|
2
|
-
import { get, set } from 'idb-keyval';
|
|
3
|
-
/**
|
|
4
|
-
* Downloader for CRS from the web or local.
|
|
5
|
-
*/
|
|
6
|
-
export class CachedNetCrs {
|
|
7
|
-
constructor(numPoints) {
|
|
8
|
-
this.numPoints = numPoints;
|
|
9
|
-
}
|
|
10
|
-
static async new(numPoints) {
|
|
11
|
-
const crs = new CachedNetCrs(numPoints);
|
|
12
|
-
await crs.init();
|
|
13
|
-
return crs;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Download the data.
|
|
17
|
-
*/
|
|
18
|
-
async init() {
|
|
19
|
-
// Check if data is in IndexedDB
|
|
20
|
-
const g1Data = await get('g1Data');
|
|
21
|
-
const g2Data = await get('g2Data');
|
|
22
|
-
const netCrs = new NetCrs(this.numPoints);
|
|
23
|
-
const g1DataLength = this.numPoints * 64;
|
|
24
|
-
if (!g1Data || g1Data.length < g1DataLength) {
|
|
25
|
-
this.g1Data = await netCrs.downloadG1Data();
|
|
26
|
-
await set('g1Data', this.g1Data);
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
this.g1Data = g1Data;
|
|
30
|
-
}
|
|
31
|
-
if (!g2Data) {
|
|
32
|
-
this.g2Data = await netCrs.downloadG2Data();
|
|
33
|
-
await set('g2Data', this.g2Data);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
this.g2Data = g2Data;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* G1 points data for prover key.
|
|
41
|
-
* @returns The points data.
|
|
42
|
-
*/
|
|
43
|
-
getG1Data() {
|
|
44
|
-
return this.g1Data;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* G2 points data for verification key.
|
|
48
|
-
* @returns The points data.
|
|
49
|
-
*/
|
|
50
|
-
getG2Data() {
|
|
51
|
-
return this.g2Data;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkX25ldF9jcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3JzL2Jyb3dzZXIvY2FjaGVkX25ldF9jcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV0Qzs7R0FFRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBSXZCLFlBQTRCLFNBQWlCO1FBQWpCLGNBQVMsR0FBVCxTQUFTLENBQVE7SUFBRyxDQUFDO0lBRWpELE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQWlCO1FBQ2hDLE1BQU0sR0FBRyxHQUFHLElBQUksWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2pCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLElBQUk7UUFDUixnQ0FBZ0M7UUFDaEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkMsTUFBTSxNQUFNLEdBQUcsTUFBTSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBRXpDLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxZQUFZLEVBQUU7WUFDM0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUM1QyxNQUFNLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2xDO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztTQUN0QjtRQUVELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzVDLE1BQU0sR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbEM7YUFBTTtZQUNMLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztDQUNGIn0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crs/browser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,GAAG,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { CachedNetCrs as Crs } from './cached_net_crs.js';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3JzL2Jyb3dzZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksSUFBSSxHQUFHLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQyJ9
|
package/dest/crs/index.d.ts
DELETED
package/dest/crs/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/crs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dest/crs/index.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { Crs } from './node/index.js';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQyJ9
|
package/dest/crs/net_crs.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Downloader for CRS from the web or local.
|
|
3
|
-
*/
|
|
4
|
-
export declare class NetCrs {
|
|
5
|
-
/**
|
|
6
|
-
* The number of circuit gates.
|
|
7
|
-
*/
|
|
8
|
-
readonly numPoints: number;
|
|
9
|
-
private data;
|
|
10
|
-
private g2Data;
|
|
11
|
-
constructor(
|
|
12
|
-
/**
|
|
13
|
-
* The number of circuit gates.
|
|
14
|
-
*/
|
|
15
|
-
numPoints: number);
|
|
16
|
-
/**
|
|
17
|
-
* Download the data.
|
|
18
|
-
*/
|
|
19
|
-
init(): Promise<void>;
|
|
20
|
-
downloadG1Data(): Promise<Uint8Array>;
|
|
21
|
-
/**
|
|
22
|
-
* Download the G2 points data.
|
|
23
|
-
*/
|
|
24
|
-
downloadG2Data(): Promise<Uint8Array>;
|
|
25
|
-
/**
|
|
26
|
-
* G1 points data for prover key.
|
|
27
|
-
* @returns The points data.
|
|
28
|
-
*/
|
|
29
|
-
getG1Data(): Uint8Array;
|
|
30
|
-
/**
|
|
31
|
-
* G2 points data for verification key.
|
|
32
|
-
* @returns The points data.
|
|
33
|
-
*/
|
|
34
|
-
getG2Data(): Uint8Array;
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=net_crs.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"net_crs.d.ts","sourceRoot":"","sources":["../../src/crs/net_crs.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,MAAM;IAKf;;OAEG;aACa,SAAS,EAAE,MAAM;IAPnC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,MAAM,CAAc;;IAG1B;;OAEG;IACa,SAAS,EAAE,MAAM;IAGnC;;OAEG;IACG,IAAI;IAKJ,cAAc;IAcpB;;OAEG;IACG,cAAc;IAcpB;;;OAGG;IACH,SAAS,IAAI,UAAU;IAIvB;;;OAGG;IACH,SAAS,IAAI,UAAU;CAGxB"}
|
package/dest/crs/net_crs.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Downloader for CRS from the web or local.
|
|
3
|
-
*/
|
|
4
|
-
export class NetCrs {
|
|
5
|
-
constructor(
|
|
6
|
-
/**
|
|
7
|
-
* The number of circuit gates.
|
|
8
|
-
*/
|
|
9
|
-
numPoints) {
|
|
10
|
-
this.numPoints = numPoints;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Download the data.
|
|
14
|
-
*/
|
|
15
|
-
async init() {
|
|
16
|
-
await this.downloadG1Data();
|
|
17
|
-
await this.downloadG2Data();
|
|
18
|
-
}
|
|
19
|
-
async downloadG1Data() {
|
|
20
|
-
const g1Start = 28;
|
|
21
|
-
const g1End = g1Start + this.numPoints * 64 - 1;
|
|
22
|
-
const response = await fetch('https://aztec-ignition.s3.amazonaws.com/MAIN%20IGNITION/monomial/transcript00.dat', {
|
|
23
|
-
headers: {
|
|
24
|
-
Range: `bytes=${g1Start}-${g1End}`,
|
|
25
|
-
},
|
|
26
|
-
cache: 'force-cache',
|
|
27
|
-
});
|
|
28
|
-
return (this.data = new Uint8Array(await response.arrayBuffer()));
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Download the G2 points data.
|
|
32
|
-
*/
|
|
33
|
-
async downloadG2Data() {
|
|
34
|
-
const g2Start = 28 + 5040000 * 64;
|
|
35
|
-
const g2End = g2Start + 128 - 1;
|
|
36
|
-
const response2 = await fetch('https://aztec-ignition.s3.amazonaws.com/MAIN%20IGNITION/sealed/transcript00.dat', {
|
|
37
|
-
headers: {
|
|
38
|
-
Range: `bytes=${g2Start}-${g2End}`,
|
|
39
|
-
},
|
|
40
|
-
cache: 'force-cache',
|
|
41
|
-
});
|
|
42
|
-
return (this.g2Data = new Uint8Array(await response2.arrayBuffer()));
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* G1 points data for prover key.
|
|
46
|
-
* @returns The points data.
|
|
47
|
-
*/
|
|
48
|
-
getG1Data() {
|
|
49
|
-
return this.data;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* G2 points data for verification key.
|
|
53
|
-
* @returns The points data.
|
|
54
|
-
*/
|
|
55
|
-
getG2Data() {
|
|
56
|
-
return this.g2Data;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0X2Nycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jcnMvbmV0X2Nycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sT0FBTyxNQUFNO0lBSWpCO0lBQ0U7O09BRUc7SUFDYSxTQUFpQjtRQUFqQixjQUFTLEdBQVQsU0FBUyxDQUFRO0lBQ2hDLENBQUM7SUFFSjs7T0FFRztJQUNILEtBQUssQ0FBQyxJQUFJO1FBQ1IsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDNUIsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjO1FBQ2xCLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNuQixNQUFNLEtBQUssR0FBRyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRWhELE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLG1GQUFtRixFQUFFO1lBQ2hILE9BQU8sRUFBRTtnQkFDUCxLQUFLLEVBQUUsU0FBUyxPQUFPLElBQUksS0FBSyxFQUFFO2FBQ25DO1lBQ0QsS0FBSyxFQUFFLGFBQWE7U0FDckIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxjQUFjO1FBQ2xCLE1BQU0sT0FBTyxHQUFHLEVBQUUsR0FBRyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sS0FBSyxHQUFHLE9BQU8sR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBRWhDLE1BQU0sU0FBUyxHQUFHLE1BQU0sS0FBSyxDQUFDLGlGQUFpRixFQUFFO1lBQy9HLE9BQU8sRUFBRTtnQkFDUCxLQUFLLEVBQUUsU0FBUyxPQUFPLElBQUksS0FBSyxFQUFFO2FBQ25DO1lBQ0QsS0FBSyxFQUFFLGFBQWE7U0FDckIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7Q0FDRiJ9
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The path to our SRS object, assuming that we are in barretenberg/ts folder.
|
|
3
|
-
*/
|
|
4
|
-
export declare const SRS_DEV_PATH: string;
|
|
5
|
-
/**
|
|
6
|
-
* Downloader for CRS from a local file (for Node).
|
|
7
|
-
*/
|
|
8
|
-
export declare class FileCrs {
|
|
9
|
-
/**
|
|
10
|
-
* The number of circuit gates.
|
|
11
|
-
*/
|
|
12
|
-
readonly numPoints: number;
|
|
13
|
-
private path;
|
|
14
|
-
private data;
|
|
15
|
-
private g2Data;
|
|
16
|
-
constructor(
|
|
17
|
-
/**
|
|
18
|
-
* The number of circuit gates.
|
|
19
|
-
*/
|
|
20
|
-
numPoints: number, path?: string);
|
|
21
|
-
static defaultExists(): boolean;
|
|
22
|
-
/**
|
|
23
|
-
* Read the data file.
|
|
24
|
-
*/
|
|
25
|
-
init(): Promise<void>;
|
|
26
|
-
/**
|
|
27
|
-
* G1 points data for prover key.
|
|
28
|
-
* @returns The points data.
|
|
29
|
-
*/
|
|
30
|
-
getG1Data(): Uint8Array;
|
|
31
|
-
/**
|
|
32
|
-
* G2 points data for verification key.
|
|
33
|
-
* @returns The points data.
|
|
34
|
-
*/
|
|
35
|
-
getG2Data(): Uint8Array;
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=file_crs.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file_crs.d.ts","sourceRoot":"","sources":["../../../src/crs/node/file_crs.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,YAAY,QAAqF,CAAC;AAE/G;;GAEG;AACH,qBAAa,OAAO;IAKhB;;OAEG;aACa,SAAS,EAAE,MAAM;IACjC,OAAO,CAAC,IAAI;IARd,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,MAAM,CAAc;;IAG1B;;OAEG;IACa,SAAS,EAAE,MAAM,EACzB,IAAI,SAAe;IAG7B,MAAM,CAAC,aAAa;IAIpB;;OAEG;IACG,IAAI;IAYV;;;OAGG;IACH,SAAS,IAAI,UAAU;IAIvB;;;OAGG;IACH,SAAS,IAAI,UAAU;CAGxB"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { existsSync } from 'fs';
|
|
2
|
-
import { readFile } from 'fs/promises';
|
|
3
|
-
import { dirname } from 'path';
|
|
4
|
-
import { fileURLToPath } from 'url';
|
|
5
|
-
/**
|
|
6
|
-
* The path to our SRS object, assuming that we are in barretenberg/ts folder.
|
|
7
|
-
*/
|
|
8
|
-
export const SRS_DEV_PATH = dirname(fileURLToPath(import.meta.url)) + '/../../../cpp/srs_db/ignition/monomial';
|
|
9
|
-
/**
|
|
10
|
-
* Downloader for CRS from a local file (for Node).
|
|
11
|
-
*/
|
|
12
|
-
export class FileCrs {
|
|
13
|
-
constructor(
|
|
14
|
-
/**
|
|
15
|
-
* The number of circuit gates.
|
|
16
|
-
*/
|
|
17
|
-
numPoints, path = SRS_DEV_PATH) {
|
|
18
|
-
this.numPoints = numPoints;
|
|
19
|
-
this.path = path;
|
|
20
|
-
}
|
|
21
|
-
static defaultExists() {
|
|
22
|
-
return existsSync(SRS_DEV_PATH);
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Read the data file.
|
|
26
|
-
*/
|
|
27
|
-
async init() {
|
|
28
|
-
// We need this.numPoints number of g1 points.
|
|
29
|
-
// numPoints should be circuitSize + 1.
|
|
30
|
-
const g1Start = 28;
|
|
31
|
-
const g1End = g1Start + this.numPoints * 64;
|
|
32
|
-
const data = await readFile(this.path + '/transcript00.dat');
|
|
33
|
-
this.data = data.subarray(g1Start, g1End);
|
|
34
|
-
this.g2Data = await readFile(this.path + '/g2.dat');
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* G1 points data for prover key.
|
|
38
|
-
* @returns The points data.
|
|
39
|
-
*/
|
|
40
|
-
getG1Data() {
|
|
41
|
-
return this.data;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* G2 points data for verification key.
|
|
45
|
-
* @returns The points data.
|
|
46
|
-
*/
|
|
47
|
-
getG2Data() {
|
|
48
|
-
return this.g2Data;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZV9jcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3JzL25vZGUvZmlsZV9jcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLElBQUksQ0FBQztBQUNoQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUVwQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyx3Q0FBd0MsQ0FBQztBQUUvRzs7R0FFRztBQUNILE1BQU0sT0FBTyxPQUFPO0lBSWxCO0lBQ0U7O09BRUc7SUFDYSxTQUFpQixFQUN6QixPQUFPLFlBQVk7UUFEWCxjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ3pCLFNBQUksR0FBSixJQUFJLENBQWU7SUFDMUIsQ0FBQztJQUVKLE1BQU0sQ0FBQyxhQUFhO1FBQ2xCLE9BQU8sVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxJQUFJO1FBQ1IsOENBQThDO1FBQzlDLHVDQUF1QztRQUN2QyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbkIsTUFBTSxLQUFLLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBRTVDLE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsbUJBQW1CLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTFDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0NBQ0YifQ==
|
package/dest/crs/node/index.d.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generic CRS finder utility class.
|
|
3
|
-
*/
|
|
4
|
-
export declare class Crs {
|
|
5
|
-
/**
|
|
6
|
-
* The number of circuit gates.
|
|
7
|
-
*/
|
|
8
|
-
readonly numPoints: number;
|
|
9
|
-
private crs;
|
|
10
|
-
constructor(
|
|
11
|
-
/**
|
|
12
|
-
* The number of circuit gates.
|
|
13
|
-
*/
|
|
14
|
-
numPoints: number);
|
|
15
|
-
static new(numPoints: number): Promise<Crs>;
|
|
16
|
-
/**
|
|
17
|
-
* Read CRS from our chosen source.
|
|
18
|
-
*/
|
|
19
|
-
init(): Promise<void>;
|
|
20
|
-
/**
|
|
21
|
-
* G1 points data for prover key.
|
|
22
|
-
* @returns The points data.
|
|
23
|
-
*/
|
|
24
|
-
getG1Data(): Uint8Array;
|
|
25
|
-
/**
|
|
26
|
-
* G2 points data for verification key.
|
|
27
|
-
* @returns The points data.
|
|
28
|
-
*/
|
|
29
|
-
getG2Data(): Uint8Array;
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crs/node/index.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,qBAAa,GAAG;IAIZ;;OAEG;aACa,SAAS,EAAE,MAAM;IANnC,OAAO,CAAC,GAAG,CAAmB;;IAG5B;;OAEG;IACa,SAAS,EAAE,MAAM;WAKtB,GAAG,CAAC,SAAS,EAAE,MAAM;IAMlC;;OAEG;IACG,IAAI;IAIV;;;OAGG;IACH,SAAS,IAAI,UAAU;IAIvB;;;OAGG;IACH,SAAS,IAAI,UAAU;CAGxB"}
|
package/dest/crs/node/index.js
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { NetCrs } from '../net_crs.js';
|
|
2
|
-
import { FileCrs } from './file_crs.js';
|
|
3
|
-
/**
|
|
4
|
-
* Generic CRS finder utility class.
|
|
5
|
-
*/
|
|
6
|
-
export class Crs {
|
|
7
|
-
constructor(
|
|
8
|
-
/**
|
|
9
|
-
* The number of circuit gates.
|
|
10
|
-
*/
|
|
11
|
-
numPoints) {
|
|
12
|
-
this.numPoints = numPoints;
|
|
13
|
-
this.crs = FileCrs.defaultExists() ? new FileCrs(numPoints) : new NetCrs(numPoints);
|
|
14
|
-
}
|
|
15
|
-
static async new(numPoints) {
|
|
16
|
-
const crs = new Crs(numPoints);
|
|
17
|
-
await crs.init();
|
|
18
|
-
return crs;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Read CRS from our chosen source.
|
|
22
|
-
*/
|
|
23
|
-
async init() {
|
|
24
|
-
await this.crs.init();
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* G1 points data for prover key.
|
|
28
|
-
* @returns The points data.
|
|
29
|
-
*/
|
|
30
|
-
getG1Data() {
|
|
31
|
-
return this.crs.getG1Data();
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* G2 points data for verification key.
|
|
35
|
-
* @returns The points data.
|
|
36
|
-
*/
|
|
37
|
-
getG2Data() {
|
|
38
|
-
return this.crs.getG2Data();
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3JzL25vZGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLEdBQUc7SUFHZDtJQUNFOztPQUVHO0lBQ2EsU0FBaUI7UUFBakIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUVqQyxJQUFJLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFpQjtRQUNoQyxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQixNQUFNLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxJQUFJO1FBQ1IsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzlCLENBQUM7Q0FDRiJ9
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simple.rawtest.d.ts","sourceRoot":"","sources":["../../src/examples/simple.rawtest.ts"],"names":[],"mappings":""}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { Crs } from '../crs/index.js';
|
|
2
|
-
import createDebug from 'debug';
|
|
3
|
-
import { newBarretenbergApiAsync } from '../factory/index.js';
|
|
4
|
-
import { RawBuffer } from '../types/index.js';
|
|
5
|
-
createDebug.enable('*');
|
|
6
|
-
const debug = createDebug('simple_test');
|
|
7
|
-
async function main() {
|
|
8
|
-
const CIRCUIT_SIZE = 2 ** 19;
|
|
9
|
-
debug('starting test...');
|
|
10
|
-
const api = await newBarretenbergApiAsync();
|
|
11
|
-
// Important to init slab allocator as first thing, to ensure maximum memory efficiency.
|
|
12
|
-
await api.commonInitSlabAllocator(CIRCUIT_SIZE);
|
|
13
|
-
// Plus 1 needed!
|
|
14
|
-
const crs = await Crs.new(CIRCUIT_SIZE + 1);
|
|
15
|
-
await api.srsInitSrs(new RawBuffer(crs.getG1Data()), crs.numPoints, new RawBuffer(crs.getG2Data()));
|
|
16
|
-
const iterations = 10;
|
|
17
|
-
let totalTime = 0;
|
|
18
|
-
for (let i = 0; i < iterations; ++i) {
|
|
19
|
-
const start = new Date().getTime();
|
|
20
|
-
debug(`iteration ${i} starting...`);
|
|
21
|
-
await api.examplesSimpleCreateAndVerifyProof();
|
|
22
|
-
totalTime += new Date().getTime() - start;
|
|
23
|
-
}
|
|
24
|
-
await api.destroy();
|
|
25
|
-
debug(`avg iteration time: ${totalTime / iterations}ms`);
|
|
26
|
-
debug('test complete.');
|
|
27
|
-
}
|
|
28
|
-
void main();
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLnJhd3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXhhbXBsZXMvc2ltcGxlLnJhd3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RDLE9BQU8sV0FBVyxNQUFNLE9BQU8sQ0FBQztBQUNoQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFOUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN4QixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7QUFFekMsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUU3QixLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUMxQixNQUFNLEdBQUcsR0FBRyxNQUFNLHVCQUF1QixFQUFFLENBQUM7SUFFNUMsd0ZBQXdGO0lBQ3hGLE1BQU0sR0FBRyxDQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRWhELGlCQUFpQjtJQUNqQixNQUFNLEdBQUcsR0FBRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsU0FBUyxFQUFFLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFcEcsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztJQUNsQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1FBQ25DLE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwQyxNQUFNLEdBQUcsQ0FBQyxrQ0FBa0MsRUFBRSxDQUFDO1FBQy9DLFNBQVMsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQztLQUMzQztJQUVELE1BQU0sR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBRXBCLEtBQUssQ0FBQyx1QkFBdUIsU0FBUyxHQUFHLFVBQVUsSUFBSSxDQUFDLENBQUM7SUFDekQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDMUIsQ0FBQztBQUVELEtBQUssSUFBSSxFQUFFLENBQUMifQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simple.test.d.ts","sourceRoot":"","sources":["../../src/examples/simple.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Crs } from '../index.js';
|
|
2
|
-
import { newBarretenbergApiAsync } from '../factory/index.js';
|
|
3
|
-
import { RawBuffer } from '../types/index.js';
|
|
4
|
-
describe('simple', () => {
|
|
5
|
-
let api;
|
|
6
|
-
beforeAll(async () => {
|
|
7
|
-
api = await newBarretenbergApiAsync();
|
|
8
|
-
// Important to init slab allocator as first thing, to ensure maximum memory efficiency.
|
|
9
|
-
const CIRCUIT_SIZE = 2 ** 19;
|
|
10
|
-
await api.commonInitSlabAllocator(CIRCUIT_SIZE);
|
|
11
|
-
const crs = await Crs.new(2 ** 19 + 1);
|
|
12
|
-
await api.srsInitSrs(new RawBuffer(crs.getG1Data()), crs.numPoints, new RawBuffer(crs.getG2Data()));
|
|
13
|
-
}, 20000);
|
|
14
|
-
afterAll(async () => {
|
|
15
|
-
await api.destroy();
|
|
16
|
-
});
|
|
17
|
-
it('should construct 512k gate proof', async () => {
|
|
18
|
-
const valid = await api.examplesSimpleCreateAndVerifyProof();
|
|
19
|
-
expect(valid).toBe(true);
|
|
20
|
-
}, 60000);
|
|
21
|
-
});
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXhhbXBsZXMvc2ltcGxlLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsQyxPQUFPLEVBQXdCLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTlDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO0lBQ3RCLElBQUksR0FBeUIsQ0FBQztJQUU5QixTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDbkIsR0FBRyxHQUFHLE1BQU0sdUJBQXVCLEVBQUUsQ0FBQztRQUV0Qyx3RkFBd0Y7UUFDeEYsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3QixNQUFNLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVoRCxNQUFNLEdBQUcsR0FBRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2QyxNQUFNLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUVWLFFBQVEsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNsQixNQUFNLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN0QixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxrQ0FBa0MsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNoRCxNQUFNLEtBQUssR0FBRyxNQUFNLEdBQUcsQ0FBQyxrQ0FBa0MsRUFBRSxDQUFDO1FBQzdELE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ1osQ0FBQyxDQUFDLENBQUMifQ==
|
package/dest/factory/index.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { BarretenbergApi, BarretenbergApiSync } from '../barretenberg_api/index.js';
|
|
2
|
-
import { BarretenbergWasmWorker } from '../barretenberg_wasm/index.js';
|
|
3
|
-
/**
|
|
4
|
-
* Returns a single threaded, synchronous, barretenberg api.
|
|
5
|
-
* Can be used on the main thread to perform small light-weight requests like hashing etc.
|
|
6
|
-
*/
|
|
7
|
-
export declare function newBarretenbergApiSync(): Promise<BarretenbergApiSync>;
|
|
8
|
-
export declare class BarretenbergApiAsync extends BarretenbergApi {
|
|
9
|
-
private worker;
|
|
10
|
-
private wasm;
|
|
11
|
-
constructor(worker: any, wasm: BarretenbergWasmWorker);
|
|
12
|
-
getNumThreads(): Promise<number>;
|
|
13
|
-
destroy(): Promise<void>;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Returns a multi threaded, asynchronous, barretenberg api.
|
|
17
|
-
* It runs in a worker, and so can be used within the browser to execute long running, multi-threaded requests
|
|
18
|
-
* like proof construction etc.
|
|
19
|
-
*/
|
|
20
|
-
export declare function newBarretenbergApiAsync(threads?: number): Promise<BarretenbergApiAsync>;
|
|
21
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEpF,OAAO,EAAoB,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEzF;;;GAGG;AACH,wBAAsB,sBAAsB,iCAE3C;AAED,qBAAa,oBAAqB,SAAQ,eAAe;IAC3C,OAAO,CAAC,MAAM;IAAO,OAAO,CAAC,IAAI;gBAAzB,MAAM,EAAE,GAAG,EAAU,IAAI,EAAE,sBAAsB;IAI/D,aAAa;IAIb,OAAO;CAId;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,CAAC,EAAE,MAAM,iCAG7D"}
|
package/dest/factory/index.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { BarretenbergApi, BarretenbergApiSync } from '../barretenberg_api/index.js';
|
|
2
|
-
import { BarretenbergBinder, BarretenbergBinderSync } from '../barretenberg_binder/index.js';
|
|
3
|
-
import { BarretenbergWasm } from '../barretenberg_wasm/index.js';
|
|
4
|
-
/**
|
|
5
|
-
* Returns a single threaded, synchronous, barretenberg api.
|
|
6
|
-
* Can be used on the main thread to perform small light-weight requests like hashing etc.
|
|
7
|
-
*/
|
|
8
|
-
export async function newBarretenbergApiSync() {
|
|
9
|
-
return new BarretenbergApiSync(new BarretenbergBinderSync(await BarretenbergWasm.new()));
|
|
10
|
-
}
|
|
11
|
-
export class BarretenbergApiAsync extends BarretenbergApi {
|
|
12
|
-
constructor(worker, wasm) {
|
|
13
|
-
super(new BarretenbergBinder(wasm));
|
|
14
|
-
this.worker = worker;
|
|
15
|
-
this.wasm = wasm;
|
|
16
|
-
}
|
|
17
|
-
async getNumThreads() {
|
|
18
|
-
return await this.wasm.getNumThreads();
|
|
19
|
-
}
|
|
20
|
-
async destroy() {
|
|
21
|
-
await this.wasm.destroy();
|
|
22
|
-
await this.worker.terminate();
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Returns a multi threaded, asynchronous, barretenberg api.
|
|
27
|
-
* It runs in a worker, and so can be used within the browser to execute long running, multi-threaded requests
|
|
28
|
-
* like proof construction etc.
|
|
29
|
-
*/
|
|
30
|
-
export async function newBarretenbergApiAsync(threads) {
|
|
31
|
-
const { wasm, worker } = await BarretenbergWasm.newWorker(threads);
|
|
32
|
-
return new BarretenbergApiAsync(worker, wasm);
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0YsT0FBTyxFQUFFLGdCQUFnQixFQUEwQixNQUFNLCtCQUErQixDQUFDO0FBRXpGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsc0JBQXNCO0lBQzFDLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLHNCQUFzQixDQUFDLE1BQU0sZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNGLENBQUM7QUFFRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZUFBZTtJQUN2RCxZQUFvQixNQUFXLEVBQVUsSUFBNEI7UUFDbkUsS0FBSyxDQUFDLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQURsQixXQUFNLEdBQU4sTUFBTSxDQUFLO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBd0I7SUFFckUsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhO1FBQ2pCLE9BQU8sTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDaEMsQ0FBQztDQUNGO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsdUJBQXVCLENBQUMsT0FBZ0I7SUFDNUQsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuRSxPQUFPLElBQUksb0JBQW9CLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2hELENBQUMifQ==
|
package/dest/index.d.ts
DELETED
package/dest/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dest/index.html
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<!doctype html><html><head><title>My App</title></head><body><script src="simple_test.js"></script></body></html>
|
package/dest/index.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export * from './crs/index.js';
|
|
2
|
-
export * from './barretenberg_wasm/index.js';
|
|
3
|
-
export * from './barretenberg_api/index.js';
|
|
4
|
-
export * from './factory/index.js';
|
|
5
|
-
export { RawBuffer } from './types/index.js';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUMifQ==
|
package/dest/main.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env -S node --no-warnings
|
|
2
|
-
export declare function proveAndVerify(jsonPath: string, witnessPath: string, isRecursive: boolean, sizeHint?: number): Promise<boolean>;
|
|
3
|
-
export declare function prove(jsonPath: string, witnessPath: string, isRecursive: boolean, outputPath: string, sizeHint?: number): Promise<void>;
|
|
4
|
-
export declare function gateCount(jsonPath: string): Promise<void>;
|
|
5
|
-
export declare function verify(jsonPath: string, proofPath: string, isRecursive: boolean, vkPath: string): Promise<boolean>;
|
|
6
|
-
export declare function contract(outputPath: string, vkPath: string): Promise<void>;
|
|
7
|
-
export declare function writeVk(jsonPath: string, outputPath: string, sizeHint?: number): Promise<void>;
|
|
8
|
-
export declare function proofAsFields(proofPath: string, numInnerPublicInputs: number, outputPath: string): Promise<void>;
|
|
9
|
-
export declare function vkAsFields(vkPath: string, vkeyOutputPath: string): Promise<void>;
|
|
10
|
-
//# sourceMappingURL=main.d.ts.map
|
package/dest/main.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAmFA,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,oBAelH;AAED,wBAAsB,KAAK,CACzB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,OAAO,EACpB,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,iBAelB;AAED,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,iBAQ/C;AAED,wBAAsB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAUrG;AAED,wBAAsB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAchE;AAED,wBAAsB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,iBAkBpF;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,iBAgBtG;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,iBAatE"}
|