@aztec/bb.js 0.85.0 → 0.86.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/browser/733.655674bbbb79bdf168c4.js +7 -0
- package/dest/browser/barretenberg-threads.js +2 -29
- package/dest/browser/barretenberg.js +2 -29
- package/dest/browser/index.js +11017 -8241
- package/dest/browser/main.worker.js +1316 -0
- package/dest/browser/thread.worker.js +1200 -0
- package/dest/node/barretenberg/backend.d.ts +12 -8
- package/dest/node/barretenberg/backend.d.ts.map +1 -1
- package/dest/node/barretenberg/backend.js +64 -15
- package/dest/node/barretenberg/index.d.ts +3 -1
- package/dest/node/barretenberg/index.d.ts.map +1 -1
- package/dest/node/barretenberg/index.js +6 -3
- package/dest/node/barretenberg_api/index.d.ts +23 -33
- package/dest/node/barretenberg_api/index.d.ts.map +1 -1
- package/dest/node/barretenberg_api/index.js +110 -190
- package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +9 -4
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -2
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +5 -5
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +2 -2
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +9 -4
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -2
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +5 -5
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +2 -2
- package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts +7 -1
- package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/helpers/browser/index.js +15 -2
- package/dest/node/barretenberg_wasm/helpers/node/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/helpers/node/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/helpers/node/index.js +1 -1
- package/dest/node/barretenberg_wasm/index.d.ts +0 -13
- package/dest/node/barretenberg_wasm/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/index.js +2 -18
- package/dest/node/barretenberg_wasm/index.test.js +6 -6
- package/dest/node/bindgen/mappings.d.ts.map +1 -1
- package/dest/node/bindgen/mappings.js +2 -1
- package/dest/node/bindgen/typescript.js +4 -4
- package/dest/node/index.d.ts +2 -2
- package/dest/node/index.d.ts.map +1 -1
- package/dest/node/index.js +1 -1
- package/dest/node/main.d.ts +0 -1
- package/dest/node/main.d.ts.map +1 -1
- package/dest/node/main.js +41 -38
- package/dest/node-cjs/barretenberg/backend.d.ts +12 -8
- package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/backend.js +64 -15
- package/dest/node-cjs/barretenberg/index.d.ts +3 -1
- package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/index.js +12 -9
- package/dest/node-cjs/barretenberg_api/index.d.ts +23 -33
- package/dest/node-cjs/barretenberg_api/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_api/index.js +109 -189
- package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +9 -4
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -2
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +5 -5
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +2 -2
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +9 -4
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -2
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +5 -5
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +2 -2
- package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts +7 -1
- package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.js +17 -3
- package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/helpers/node/index.js +1 -1
- package/dest/node-cjs/barretenberg_wasm/index.d.ts +0 -13
- package/dest/node-cjs/barretenberg_wasm/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/index.js +6 -23
- package/dest/node-cjs/barretenberg_wasm/index.test.js +6 -6
- package/dest/node-cjs/bindgen/mappings.d.ts.map +1 -1
- package/dest/node-cjs/bindgen/mappings.js +2 -1
- package/dest/node-cjs/bindgen/typescript.js +4 -4
- package/dest/node-cjs/index.d.ts +2 -2
- package/dest/node-cjs/index.d.ts.map +1 -1
- package/dest/node-cjs/index.js +1 -1
- package/dest/node-cjs/main.d.ts +0 -1
- package/dest/node-cjs/main.d.ts.map +1 -1
- package/dest/node-cjs/main.js +42 -40
- package/package.json +10 -12
- package/src/barretenberg/backend.ts +86 -18
- package/src/barretenberg/index.ts +7 -3
- package/src/barretenberg_api/index.ts +175 -343
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.ts +8 -3
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.ts +4 -6
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts +1 -1
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.ts +8 -3
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.ts +4 -6
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts +1 -1
- package/src/barretenberg_wasm/helpers/browser/index.ts +18 -2
- package/src/barretenberg_wasm/helpers/node/index.ts +2 -2
- package/src/barretenberg_wasm/index.test.ts +7 -7
- package/src/barretenberg_wasm/index.ts +1 -24
- package/src/bindgen/mappings.ts +1 -0
- package/src/bindgen/typescript.ts +4 -4
- package/src/index.ts +2 -2
- package/src/main.ts +43 -42
- package/dest/browser/522.6386c00ebfb22619e11b.js +0 -3
- package/dest/browser/barretenberg/backend.d.ts +0 -89
- package/dest/browser/barretenberg/backend.d.ts.map +0 -1
- package/dest/browser/barretenberg/index.d.ts +0 -51
- package/dest/browser/barretenberg/index.d.ts.map +0 -1
- package/dest/browser/barretenberg/verifier.d.ts +0 -16
- package/dest/browser/barretenberg/verifier.d.ts.map +0 -1
- package/dest/browser/barretenberg_api/index.d.ts +0 -114
- package/dest/browser/barretenberg_api/index.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +0 -44
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +0 -2
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +0 -3
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +0 -4
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +0 -21
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +0 -47
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +0 -2
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +0 -3
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +0 -4
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +0 -28
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +0 -3
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +0 -3
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/index.d.ts +0 -2
- package/dest/browser/barretenberg_wasm/fetch_code/browser/index.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/fetch_code/index.d.ts +0 -2
- package/dest/browser/barretenberg_wasm/fetch_code/index.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/fetch_code/node/index.d.ts +0 -2
- package/dest/browser/barretenberg_wasm/fetch_code/node/index.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts +0 -6
- package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/helpers/index.d.ts +0 -2
- package/dest/browser/barretenberg_wasm/helpers/index.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/helpers/node/index.d.ts +0 -22
- package/dest/browser/barretenberg_wasm/helpers/node/index.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/helpers/node/node_endpoint.d.ts +0 -8
- package/dest/browser/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/index.d.ts +0 -18
- package/dest/browser/barretenberg_wasm/index.d.ts.map +0 -1
- package/dest/browser/bigint-array/index.d.ts +0 -18
- package/dest/browser/bigint-array/index.d.ts.map +0 -1
- package/dest/browser/crs/browser/cached_net_crs.d.ts +0 -43
- package/dest/browser/crs/browser/cached_net_crs.d.ts.map +0 -1
- package/dest/browser/crs/browser/index.d.ts +0 -2
- package/dest/browser/crs/browser/index.d.ts.map +0 -1
- package/dest/browser/crs/index.d.ts +0 -2
- package/dest/browser/crs/index.d.ts.map +0 -1
- package/dest/browser/crs/net_crs.d.ts +0 -85
- package/dest/browser/crs/net_crs.d.ts.map +0 -1
- package/dest/browser/crs/node/index.d.ts +0 -38
- package/dest/browser/crs/node/index.d.ts.map +0 -1
- package/dest/browser/index.d.ts +0 -5
- package/dest/browser/index.d.ts.map +0 -1
- package/dest/browser/proof/index.d.ts +0 -20
- package/dest/browser/proof/index.d.ts.map +0 -1
- package/dest/browser/random/browser/index.d.ts +0 -2
- package/dest/browser/random/browser/index.d.ts.map +0 -1
- package/dest/browser/random/index.d.ts +0 -2
- package/dest/browser/random/index.d.ts.map +0 -1
- package/dest/browser/random/node/index.d.ts +0 -2
- package/dest/browser/random/node/index.d.ts.map +0 -1
- package/dest/browser/retry/index.d.ts +0 -26
- package/dest/browser/retry/index.d.ts.map +0 -1
- package/dest/browser/serialize/buffer_reader.d.ts +0 -28
- package/dest/browser/serialize/buffer_reader.d.ts.map +0 -1
- package/dest/browser/serialize/index.d.ts +0 -4
- package/dest/browser/serialize/index.d.ts.map +0 -1
- package/dest/browser/serialize/output_type.d.ts +0 -11
- package/dest/browser/serialize/output_type.d.ts.map +0 -1
- package/dest/browser/serialize/serialize.d.ts +0 -53
- package/dest/browser/serialize/serialize.d.ts.map +0 -1
- package/dest/browser/thread.worker.worker.worker.js.LICENSE.txt +0 -5
- package/dest/browser/types/fields.d.ts +0 -44
- package/dest/browser/types/fields.d.ts.map +0 -1
- package/dest/browser/types/fixed_size_buffer.d.ts +0 -26
- package/dest/browser/types/fixed_size_buffer.d.ts.map +0 -1
- package/dest/browser/types/index.d.ts +0 -6
- package/dest/browser/types/index.d.ts.map +0 -1
- package/dest/browser/types/point.d.ts +0 -17
- package/dest/browser/types/point.d.ts.map +0 -1
- package/dest/browser/types/ptr.d.ts +0 -13
- package/dest/browser/types/ptr.d.ts.map +0 -1
- package/dest/browser/types/raw_buffer.d.ts +0 -3
- package/dest/browser/types/raw_buffer.d.ts.map +0 -1
- package/dest/node/barretenberg/schnorr.test.d.ts +0 -2
- package/dest/node/barretenberg/schnorr.test.d.ts.map +0 -1
- package/dest/node/barretenberg/schnorr.test.js +0 -113
- package/dest/node-cjs/barretenberg/schnorr.test.d.ts +0 -2
- package/dest/node-cjs/barretenberg/schnorr.test.d.ts.map +0 -1
- package/dest/node-cjs/barretenberg/schnorr.test.js +0 -115
- package/src/barretenberg/schnorr.test.ts +0 -182
- /package/dest/browser/{main.worker.worker.js.LICENSE.txt → main.worker.js.LICENSE.txt} +0 -0
- /package/dest/browser/{thread.worker.worker.js.LICENSE.txt → thread.worker.js.LICENSE.txt} +0 -0
|
@@ -1,85 +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
|
-
/**
|
|
21
|
-
* Opens up a ReadableStream to the points data
|
|
22
|
-
*/
|
|
23
|
-
streamG1Data(): Promise<ReadableStream<Uint8Array>>;
|
|
24
|
-
/**
|
|
25
|
-
* Opens up a ReadableStream to the points data
|
|
26
|
-
*/
|
|
27
|
-
streamG2Data(): Promise<ReadableStream<Uint8Array>>;
|
|
28
|
-
downloadG1Data(): Promise<Uint8Array>;
|
|
29
|
-
/**
|
|
30
|
-
* Download the G2 points data.
|
|
31
|
-
*/
|
|
32
|
-
downloadG2Data(): Promise<Uint8Array>;
|
|
33
|
-
/**
|
|
34
|
-
* G1 points data for prover key.
|
|
35
|
-
* @returns The points data.
|
|
36
|
-
*/
|
|
37
|
-
getG1Data(): Uint8Array;
|
|
38
|
-
/**
|
|
39
|
-
* G2 points data for verification key.
|
|
40
|
-
* @returns The points data.
|
|
41
|
-
*/
|
|
42
|
-
getG2Data(): Uint8Array;
|
|
43
|
-
/**
|
|
44
|
-
* Fetches the appropriate range of points from a remote source
|
|
45
|
-
*/
|
|
46
|
-
private fetchG1Data;
|
|
47
|
-
/**
|
|
48
|
-
* Fetches the appropriate range of points from a remote source
|
|
49
|
-
*/
|
|
50
|
-
private fetchG2Data;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Downloader for CRS from the web or local.
|
|
54
|
-
*/
|
|
55
|
-
export declare class NetGrumpkinCrs {
|
|
56
|
-
/**
|
|
57
|
-
* The number of circuit gates.
|
|
58
|
-
*/
|
|
59
|
-
readonly numPoints: number;
|
|
60
|
-
private data;
|
|
61
|
-
constructor(
|
|
62
|
-
/**
|
|
63
|
-
* The number of circuit gates.
|
|
64
|
-
*/
|
|
65
|
-
numPoints: number);
|
|
66
|
-
/**
|
|
67
|
-
* Download the data.
|
|
68
|
-
*/
|
|
69
|
-
init(): Promise<void>;
|
|
70
|
-
downloadG1Data(): Promise<Uint8Array>;
|
|
71
|
-
/**
|
|
72
|
-
* Opens up a ReadableStream to the points data
|
|
73
|
-
*/
|
|
74
|
-
streamG1Data(): Promise<ReadableStream<Uint8Array>>;
|
|
75
|
-
/**
|
|
76
|
-
* G1 points data for prover key.
|
|
77
|
-
* @returns The points data.
|
|
78
|
-
*/
|
|
79
|
-
getG1Data(): Uint8Array;
|
|
80
|
-
/**
|
|
81
|
-
* Fetches the appropriate range of points from a remote source
|
|
82
|
-
*/
|
|
83
|
-
private fetchG1Data;
|
|
84
|
-
}
|
|
85
|
-
//# 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":"AACA;;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;IAKV;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAKzD;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAKnD,cAAc;IAKpB;;OAEG;IACG,cAAc;IAKpB;;;OAGG;IACH,SAAS,IAAI,UAAU;IAIvB;;;OAGG;IACH,SAAS,IAAI,UAAU;IAIvB;;OAEG;YACW,WAAW;IAmBzB;;OAEG;YACW,WAAW;CAS1B;AAED;;GAEG;AACH,qBAAa,cAAc;IAIvB;;OAEG;aACa,SAAS,EAAE,MAAM;IANnC,OAAO,CAAC,IAAI,CAAc;;IAGxB;;OAEG;IACa,SAAS,EAAE,MAAM;IAGnC;;OAEG;IACG,IAAI;IAIJ,cAAc;IAKpB;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAKzD;;;OAGG;IACH,SAAS,IAAI,UAAU;IAIvB;;OAEG;YACW,WAAW;CAgB1B"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generic CRS finder utility class.
|
|
3
|
-
*/
|
|
4
|
-
export declare class Crs {
|
|
5
|
-
readonly numPoints: number;
|
|
6
|
-
readonly path: string;
|
|
7
|
-
private readonly logger;
|
|
8
|
-
constructor(numPoints: number, path: string, logger?: (msg: string) => void);
|
|
9
|
-
static new(numPoints: number, crsPath?: string, logger?: (msg: string) => void): Promise<Crs>;
|
|
10
|
-
init(): Promise<void>;
|
|
11
|
-
/**
|
|
12
|
-
* G1 points data for prover key.
|
|
13
|
-
* @returns The points data.
|
|
14
|
-
*/
|
|
15
|
-
getG1Data(): Uint8Array;
|
|
16
|
-
/**
|
|
17
|
-
* G2 points data for verification key.
|
|
18
|
-
* @returns The points data.
|
|
19
|
-
*/
|
|
20
|
-
getG2Data(): Uint8Array;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Generic Grumpkin CRS finder utility class.
|
|
24
|
-
*/
|
|
25
|
-
export declare class GrumpkinCrs {
|
|
26
|
-
readonly numPoints: number;
|
|
27
|
-
readonly path: string;
|
|
28
|
-
private readonly logger;
|
|
29
|
-
constructor(numPoints: number, path: string, logger?: (msg: string) => void);
|
|
30
|
-
static new(numPoints: number, crsPath?: string, logger?: (msg: string) => void): Promise<GrumpkinCrs>;
|
|
31
|
-
init(): Promise<void>;
|
|
32
|
-
/**
|
|
33
|
-
* G1 points data for prover key.
|
|
34
|
-
* @returns The points data.
|
|
35
|
-
*/
|
|
36
|
-
getG1Data(): Uint8Array;
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/crs/node/index.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,qBAAa,GAAG;aAEI,SAAS,EAAE,MAAM;aACjB,IAAI,EAAE,MAAM;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFP,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACX,MAAM,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAA+B;WAG9D,GAAG,CACd,SAAS,EAAE,MAAM,EACjB,OAAO,SAAyB,EAChC,MAAM,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAA+B;IAOpD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB3B;;;OAGG;IACH,SAAS,IAAI,UAAU;IAWvB;;;OAGG;IACH,SAAS,IAAI,UAAU;CAGxB;AAED;;GAEG;AACH,qBAAa,WAAW;aAEJ,SAAS,EAAE,MAAM;aACjB,IAAI,EAAE,MAAM;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFP,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACX,MAAM,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAA+B;WAG9D,GAAG,CACd,SAAS,EAAE,MAAM,EACjB,OAAO,SAAyB,EAChC,MAAM,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAA+B;IAOpD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB3B;;;OAGG;IACH,SAAS,IAAI,UAAU;CAGxB"}
|
package/dest/browser/index.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export { Crs, GrumpkinCrs } from './crs/index.js';
|
|
2
|
-
export { BackendOptions, Barretenberg, BarretenbergSync, BarretenbergVerifier, UltraPlonkBackend, UltraHonkBackend, AztecClientBackend, } from './barretenberg/index.js';
|
|
3
|
-
export { RawBuffer, Fr } from './types/index.js';
|
|
4
|
-
export { splitHonkProof, reconstructHonkProof, deflattenFields, ProofData } from './proof/index.js';
|
|
5
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EACL,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @description
|
|
3
|
-
* The representation of a proof
|
|
4
|
-
* */
|
|
5
|
-
export type ProofData = {
|
|
6
|
-
/** @description Public inputs of a proof */
|
|
7
|
-
publicInputs: string[];
|
|
8
|
-
/** @description An byte array representing the proof */
|
|
9
|
-
proof: Uint8Array;
|
|
10
|
-
};
|
|
11
|
-
export declare const AGGREGATION_OBJECT_LENGTH = 16;
|
|
12
|
-
export declare function splitHonkProof(proofWithPublicInputs: Uint8Array, numPublicInputs: number): {
|
|
13
|
-
publicInputs: Uint8Array;
|
|
14
|
-
proof: Uint8Array;
|
|
15
|
-
};
|
|
16
|
-
export declare function reconstructHonkProof(publicInputs: Uint8Array, proof: Uint8Array): Uint8Array;
|
|
17
|
-
export declare function reconstructUltraPlonkProof(proofData: ProofData): Uint8Array;
|
|
18
|
-
export declare function deflattenFields(flattenedFields: Uint8Array): string[];
|
|
19
|
-
export declare function flattenFieldsAsArray(fields: string[]): Uint8Array;
|
|
20
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/proof/index.ts"],"names":[],"mappings":"AAEA;;;KAGK;AACL,MAAM,MAAM,SAAS,GAAG;IACtB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,wDAAwD;IACxD,KAAK,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAK5C,wBAAgB,cAAc,CAC5B,qBAAqB,EAAE,UAAU,EACjC,eAAe,EAAE,MAAM,GACtB;IAAE,YAAY,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAQjD;AAED,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,UAAU,CAG5F;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU,CAQ3E;AAED,wBAAgB,eAAe,CAAC,eAAe,EAAE,UAAU,GAAG,MAAM,EAAE,CAUrE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAGjE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/random/browser/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,QAAS,MAAM,eA+BtC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/random/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/random/node/index.ts"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,cAEtC"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generates a backoff sequence for retrying operations with an increasing delay.
|
|
3
|
-
* The backoff sequence follows this pattern: 1, 1, 1, 2, 4, 8, 16, 32, 64, ...
|
|
4
|
-
* This generator can be used in combination with the `retry` function to perform
|
|
5
|
-
* retries with exponential backoff and capped at 64 seconds between attempts.
|
|
6
|
-
*
|
|
7
|
-
* @returns A generator that yields the next backoff value in seconds as an integer.
|
|
8
|
-
*/
|
|
9
|
-
export declare function backoffGenerator(): Generator<number, void, unknown>;
|
|
10
|
-
/**
|
|
11
|
-
* Generates a backoff sequence based on the array of retry intervals to use with the `retry` function.
|
|
12
|
-
* @param retries - Intervals to retry (in seconds).
|
|
13
|
-
* @returns A generator sequence.
|
|
14
|
-
*/
|
|
15
|
-
export declare function makeBackoff(retries: number[]): Generator<number, void, unknown>;
|
|
16
|
-
/**
|
|
17
|
-
* Retry a given asynchronous function with a specific backoff strategy, until it succeeds or backoff generator ends.
|
|
18
|
-
* It logs the error and retry interval in case an error is caught. The function can be named for better log output.
|
|
19
|
-
*
|
|
20
|
-
* @param fn - The asynchronous function to be retried.
|
|
21
|
-
* @param backoff - The optional backoff generator providing the intervals in seconds between retries. Defaults to a predefined series.
|
|
22
|
-
* @returns A Promise that resolves with the successful result of the provided function, or rejects if backoff generator ends.
|
|
23
|
-
* @throws If `NoRetryError` is thrown by the `fn`, it is rethrown.
|
|
24
|
-
*/
|
|
25
|
-
export declare function retry<Result>(fn: () => Promise<Result>, backoff?: Generator<number, void, unknown>): Promise<Result>;
|
|
26
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/retry/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAiB,gBAAgB,qCAMhC;AAED;;;;GAIG;AACH,wBAAiB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,oCAI7C;AAED;;;;;;;;GAQG;AACH,wBAAsB,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,mCAAqB,mBAa1F"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
export declare class BufferReader {
|
|
2
|
-
private buffer;
|
|
3
|
-
private index;
|
|
4
|
-
constructor(buffer: Uint8Array, offset?: number);
|
|
5
|
-
static asReader(bufferOrReader: Uint8Array | BufferReader): BufferReader;
|
|
6
|
-
readNumber(): number;
|
|
7
|
-
readBoolean(): boolean;
|
|
8
|
-
readBytes(n: number): Uint8Array;
|
|
9
|
-
readNumberVector(): number[];
|
|
10
|
-
readVector<T>(itemDeserializer: {
|
|
11
|
-
fromBuffer: (reader: BufferReader) => T;
|
|
12
|
-
}): T[];
|
|
13
|
-
readArray<T>(size: number, itemDeserializer: {
|
|
14
|
-
fromBuffer: (reader: BufferReader) => T;
|
|
15
|
-
}): T[];
|
|
16
|
-
readObject<T>(deserializer: {
|
|
17
|
-
fromBuffer: (reader: BufferReader) => T;
|
|
18
|
-
}): T;
|
|
19
|
-
peekBytes(n?: number): Uint8Array;
|
|
20
|
-
readString(): string;
|
|
21
|
-
readBuffer(): Uint8Array;
|
|
22
|
-
readMap<T>(deserializer: {
|
|
23
|
-
fromBuffer: (reader: BufferReader) => T;
|
|
24
|
-
}): {
|
|
25
|
-
[key: string]: T;
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=buffer_reader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"buffer_reader.d.ts","sourceRoot":"","sources":["../../../src/serialize/buffer_reader.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAY;IAEX,OAAO,CAAC,MAAM;IAD1B,OAAO,CAAC,KAAK,CAAS;gBACF,MAAM,EAAE,UAAU,EAAE,MAAM,SAAI;WAIpC,QAAQ,CAAC,cAAc,EAAE,UAAU,GAAG,YAAY;IAIzD,UAAU,IAAI,MAAM;IAMpB,WAAW,IAAI,OAAO;IAKtB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU;IAKhC,gBAAgB,IAAI,MAAM,EAAE;IAM5B,UAAU,CAAC,CAAC,EAAE,gBAAgB,EAAE;QAAE,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAA;KAAE,GAAG,CAAC,EAAE;IASjF,SAAS,CAAC,CAAC,EAChB,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE;QAChB,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAC;KACzC,GACA,CAAC,EAAE;IAQC,UAAU,CAAC,CAAC,EAAE,YAAY,EAAE;QAAE,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAA;KAAE,GAAG,CAAC;IAI3E,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM;IAIpB,UAAU,IAAI,MAAM;IAIpB,UAAU,IAAI,UAAU;IAKxB,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE;QAAE,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAA;KAAE,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAA;KAAE;CAUnG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/serialize/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { BufferReader } from './buffer_reader.js';
|
|
2
|
-
export interface OutputType<T = any> {
|
|
3
|
-
SIZE_IN_BYTES?: number;
|
|
4
|
-
fromBuffer: (b: Uint8Array | BufferReader) => T;
|
|
5
|
-
}
|
|
6
|
-
export declare function BoolDeserializer(): OutputType;
|
|
7
|
-
export declare function NumberDeserializer(): OutputType;
|
|
8
|
-
export declare function VectorDeserializer<T>(t: OutputType<T>): OutputType;
|
|
9
|
-
export declare function BufferDeserializer(): OutputType;
|
|
10
|
-
export declare function StringDeserializer(): OutputType;
|
|
11
|
-
//# sourceMappingURL=output_type.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"output_type.d.ts","sourceRoot":"","sources":["../../../src/serialize/output_type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,GAAG;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,CAAC,CAAC,EAAE,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC;CACjD;AAED,wBAAgB,gBAAgB,IAAI,UAAU,CAQ7C;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAQ/C;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAOlE;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAO/C;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAO/C"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
export declare function boolToBuffer(b: boolean): Uint8Array;
|
|
2
|
-
export declare function numToUInt32LE(n: number, bufferSize?: number): Uint8Array;
|
|
3
|
-
export declare function numToUInt32BE(n: number, bufferSize?: number): Uint8Array;
|
|
4
|
-
export declare function numToInt32BE(n: number, bufferSize?: number): Uint8Array;
|
|
5
|
-
export declare function numToUInt8(n: number): Uint8Array;
|
|
6
|
-
export declare function concatenateUint8Arrays(arrayOfUint8Arrays: Uint8Array[]): Uint8Array;
|
|
7
|
-
export declare function uint8ArrayToHexString(uint8Array: Uint8Array): string;
|
|
8
|
-
export declare function serializeBufferToVector(buf: Uint8Array): Uint8Array;
|
|
9
|
-
export declare function serializeBigInt(n: bigint, width?: number): Uint8Array;
|
|
10
|
-
export declare function deserializeBigInt(buf: Uint8Array, offset?: number, width?: number): {
|
|
11
|
-
elem: bigint;
|
|
12
|
-
adv: number;
|
|
13
|
-
};
|
|
14
|
-
export declare function serializeDate(date: Date): Uint8Array;
|
|
15
|
-
export declare function deserializeBufferFromVector(vector: Uint8Array, offset?: number): {
|
|
16
|
-
elem: Uint8Array;
|
|
17
|
-
adv: number;
|
|
18
|
-
};
|
|
19
|
-
export declare function deserializeBool(buf: Uint8Array, offset?: number): {
|
|
20
|
-
elem: boolean;
|
|
21
|
-
adv: number;
|
|
22
|
-
};
|
|
23
|
-
export declare function deserializeUInt32(buf: Uint8Array, offset?: number): {
|
|
24
|
-
elem: number;
|
|
25
|
-
adv: number;
|
|
26
|
-
};
|
|
27
|
-
export declare function deserializeInt32(buf: Uint8Array, offset?: number): {
|
|
28
|
-
elem: number;
|
|
29
|
-
adv: number;
|
|
30
|
-
};
|
|
31
|
-
export declare function deserializeField(buf: Uint8Array, offset?: number): {
|
|
32
|
-
elem: Uint8Array;
|
|
33
|
-
adv: number;
|
|
34
|
-
};
|
|
35
|
-
export declare function serializeBufferArrayToVector(arr: Uint8Array[]): Uint8Array;
|
|
36
|
-
export declare function deserializeArrayFromVector<T>(deserialize: (buf: Uint8Array, offset: number) => {
|
|
37
|
-
elem: T;
|
|
38
|
-
adv: number;
|
|
39
|
-
}, vector: Uint8Array, offset?: number): {
|
|
40
|
-
elem: T[];
|
|
41
|
-
adv: number;
|
|
42
|
-
};
|
|
43
|
-
/** A type that can be written to a buffer. */
|
|
44
|
-
export type Bufferable = boolean | Uint8Array | number | string | {
|
|
45
|
-
toBuffer: () => Uint8Array;
|
|
46
|
-
} | Bufferable[];
|
|
47
|
-
/**
|
|
48
|
-
* Serializes a list of objects contiguously for calling into wasm.
|
|
49
|
-
* @param objs - Objects to serialize.
|
|
50
|
-
* @returns A buffer list with the concatenation of all fields.
|
|
51
|
-
*/
|
|
52
|
-
export declare function serializeBufferable(obj: Bufferable): Uint8Array;
|
|
53
|
-
//# sourceMappingURL=serialize.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../src/serialize/serialize.ts"],"names":[],"mappings":"AAGA,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,cAItC;AAGD,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,SAAI,cAItD;AAGD,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,SAAI,cAItD;AAGD,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,SAAI,cAIrD;AAGD,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,cAInC;AAED,wBAAgB,sBAAsB,CAAC,kBAAkB,EAAE,UAAU,EAAE,cAStE;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,UAAU,UAE3D;AAGD,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,UAAU,cAEtD;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,SAAK,cAMpD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,SAAI,EAAE,KAAK,SAAK;;;EAMxE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,cAEvC;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,SAAI;;;EAKzE;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,SAAI;;;EAI1D;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,SAAI;;;EAI5D;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,SAAI;;;EAI3D;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,SAAI;;;EAI3D;AAGD,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,UAAU,EAAE,cAE7D;AAED,wBAAgB,0BAA0B,CAAC,CAAC,EAC1C,WAAW,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAC1E,MAAM,EAAE,UAAU,EAClB,MAAM,SAAI;;;EAYX;AAED,8CAA8C;AAC9C,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;CAAE,GAAG,UAAU,EAAE,CAAC;AAEhH;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAkB/D"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import { BufferReader } from '../serialize/index.js';
|
|
3
|
-
/**
|
|
4
|
-
* Fr field class.
|
|
5
|
-
* @dev This class is used to represent elements of BN254 scalar field or elements in the base field of Grumpkin.
|
|
6
|
-
* (Grumpkin's scalar field corresponds to BN254's base field and vice versa.)
|
|
7
|
-
*/
|
|
8
|
-
export declare class Fr {
|
|
9
|
-
static ZERO: Fr;
|
|
10
|
-
static MODULUS: bigint;
|
|
11
|
-
static MAX_VALUE: bigint;
|
|
12
|
-
static SIZE_IN_BYTES: number;
|
|
13
|
-
value: Uint8Array;
|
|
14
|
-
constructor(value: Uint8Array | Buffer | bigint);
|
|
15
|
-
static random(): Fr;
|
|
16
|
-
static fromBuffer(buffer: Uint8Array | Buffer | BufferReader): Fr;
|
|
17
|
-
static fromBufferReduce(buffer: Uint8Array | BufferReader): Fr;
|
|
18
|
-
static fromString(str: string): Fr;
|
|
19
|
-
toBuffer(): Uint8Array;
|
|
20
|
-
toString(): string;
|
|
21
|
-
equals(rhs: Fr): boolean;
|
|
22
|
-
isZero(): boolean;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Fq field class.
|
|
26
|
-
* @dev This class is used to represent elements of BN254 base field or elements in the scalar field of Grumpkin.
|
|
27
|
-
* (Grumpkin's scalar field corresponds to BN254's base field and vice versa.)
|
|
28
|
-
*/
|
|
29
|
-
export declare class Fq {
|
|
30
|
-
readonly value: bigint;
|
|
31
|
-
static MODULUS: bigint;
|
|
32
|
-
static MAX_VALUE: bigint;
|
|
33
|
-
static SIZE_IN_BYTES: number;
|
|
34
|
-
constructor(value: bigint);
|
|
35
|
-
static random(): Fq;
|
|
36
|
-
static fromBuffer(buffer: Uint8Array | Buffer | BufferReader): Fq;
|
|
37
|
-
static fromBufferReduce(buffer: Uint8Array | Buffer | BufferReader): Fq;
|
|
38
|
-
static fromString(str: string): Fq;
|
|
39
|
-
toBuffer(): Buffer;
|
|
40
|
-
toString(): string;
|
|
41
|
-
equals(rhs: Fq): boolean;
|
|
42
|
-
isZero(): boolean;
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=fields.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../src/types/fields.ts"],"names":[],"mappings":";AAOA,OAAO,EAAE,YAAY,EAAyB,MAAM,uBAAuB,CAAC;AAG5E;;;;GAIG;AACH,qBAAa,EAAE;IACb,MAAM,CAAC,IAAI,KAAc;IACzB,MAAM,CAAC,OAAO,SAAuE;IACrF,MAAM,CAAC,SAAS,SAAqB;IACrC,MAAM,CAAC,aAAa,SAAM;IAC1B,KAAK,EAAE,UAAU,CAAC;gBAEN,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM;IAiB/C,MAAM,CAAC,MAAM;IAKb,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,YAAY;IAK5D,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;IAKzD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAI7B,QAAQ;IAIR,QAAQ;IAIR,MAAM,CAAC,GAAG,EAAE,EAAE;IAId,MAAM;CAGP;AAED;;;;GAIG;AACH,qBAAa,EAAE;aAKe,KAAK,EAAE,MAAM;IAJzC,MAAM,CAAC,OAAO,SAAuE;IACrF,MAAM,CAAC,SAAS,SAAqB;IACrC,MAAM,CAAC,aAAa,SAAM;gBAEE,KAAK,EAAE,MAAM;IAMzC,MAAM,CAAC,MAAM;IAKb,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,YAAY;IAK5D,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,YAAY;IAKlE,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAI7B,QAAQ;IAIR,QAAQ;IAIR,MAAM,CAAC,GAAG,EAAE,EAAE;IAId,MAAM;CAGP"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { BufferReader } from '../serialize/index.js';
|
|
2
|
-
export declare class Buffer32 {
|
|
3
|
-
readonly buffer: Uint8Array;
|
|
4
|
-
static SIZE_IN_BYTES: number;
|
|
5
|
-
constructor(buffer: Uint8Array);
|
|
6
|
-
static fromBuffer(buffer: Uint8Array | BufferReader): Buffer32;
|
|
7
|
-
static random(): Buffer32;
|
|
8
|
-
toBuffer(): Uint8Array;
|
|
9
|
-
}
|
|
10
|
-
export declare class Buffer64 {
|
|
11
|
-
readonly buffer: Uint8Array;
|
|
12
|
-
static SIZE_IN_BYTES: number;
|
|
13
|
-
constructor(buffer: Uint8Array);
|
|
14
|
-
static fromBuffer(buffer: Uint8Array | BufferReader): Buffer64;
|
|
15
|
-
static random(): Buffer64;
|
|
16
|
-
toBuffer(): Uint8Array;
|
|
17
|
-
}
|
|
18
|
-
export declare class Buffer128 {
|
|
19
|
-
readonly buffer: Uint8Array;
|
|
20
|
-
static SIZE_IN_BYTES: number;
|
|
21
|
-
constructor(buffer: Uint8Array);
|
|
22
|
-
static fromBuffer(buffer: Uint8Array | BufferReader): Buffer128;
|
|
23
|
-
static random(): Buffer128;
|
|
24
|
-
toBuffer(): Uint8Array;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=fixed_size_buffer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fixed_size_buffer.d.ts","sourceRoot":"","sources":["../../../src/types/fixed_size_buffer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAa,QAAQ;aAGS,MAAM,EAAE,UAAU;IAF9C,MAAM,CAAC,aAAa,SAAM;gBAEE,MAAM,EAAE,UAAU;IAE9C,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;IAKnD,MAAM,CAAC,MAAM;IAIb,QAAQ;CAGT;AAED,qBAAa,QAAQ;aAGS,MAAM,EAAE,UAAU;IAF9C,MAAM,CAAC,aAAa,SAAM;gBAEE,MAAM,EAAE,UAAU;IAE9C,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;IAKnD,MAAM,CAAC,MAAM;IAIb,QAAQ;CAGT;AAED,qBAAa,SAAS;aAGQ,MAAM,EAAE,UAAU;IAF9C,MAAM,CAAC,aAAa,SAAO;gBAEC,MAAM,EAAE,UAAU;IAE9C,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;IAKnD,MAAM,CAAC,MAAM;IAIb,QAAQ;CAGT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import { Fr } from './index.js';
|
|
3
|
-
import { BufferReader } from '../serialize/buffer_reader.js';
|
|
4
|
-
export declare class Point {
|
|
5
|
-
readonly x: Fr;
|
|
6
|
-
readonly y: Fr;
|
|
7
|
-
static SIZE_IN_BYTES: number;
|
|
8
|
-
static EMPTY: Point;
|
|
9
|
-
constructor(x: Fr, y: Fr);
|
|
10
|
-
static random(): Point;
|
|
11
|
-
static fromBuffer(buffer: Uint8Array | BufferReader): Point;
|
|
12
|
-
static fromString(address: string): Point;
|
|
13
|
-
toBuffer(): Buffer;
|
|
14
|
-
toString(): string;
|
|
15
|
-
equals(rhs: Point): boolean;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=point.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/types/point.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,qBAAa,KAAK;aAIY,CAAC,EAAE,EAAE;aAAkB,CAAC,EAAE,EAAE;IAHxD,MAAM,CAAC,aAAa,SAAM;IAC1B,MAAM,CAAC,KAAK,QAA+B;gBAEf,CAAC,EAAE,EAAE,EAAkB,CAAC,EAAE,EAAE;IAExD,MAAM,CAAC,MAAM;IAKb,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;IAKnD,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM;IAIjC,QAAQ;IAIR,QAAQ;IAIR,MAAM,CAAC,GAAG,EAAE,KAAK;CAGlB"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { BufferReader } from '../serialize/index.js';
|
|
2
|
-
/**
|
|
3
|
-
* Holds an opaque pointer into WASM memory.
|
|
4
|
-
* Currently only 4 bytes, but could grow to 8 bytes with wasm64.
|
|
5
|
-
*/
|
|
6
|
-
export declare class Ptr {
|
|
7
|
-
readonly value: Uint8Array;
|
|
8
|
-
static SIZE_IN_BYTES: number;
|
|
9
|
-
constructor(value: Uint8Array);
|
|
10
|
-
static fromBuffer(buffer: Uint8Array | BufferReader): Ptr;
|
|
11
|
-
toBuffer(): Uint8Array;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=ptr.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ptr.d.ts","sourceRoot":"","sources":["../../../src/types/ptr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD;;;GAGG;AACH,qBAAa,GAAG;aAGc,KAAK,EAAE,UAAU;IAF7C,MAAM,CAAC,aAAa,SAAK;gBAEG,KAAK,EAAE,UAAU;IAE7C,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;IAKnD,QAAQ;CAGT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"raw_buffer.d.ts","sourceRoot":"","sources":["../../../src/types/raw_buffer.ts"],"names":[],"mappings":"AAEA,qBAAa,SAAU,SAAQ,UAAU;CAAG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schnorr.test.d.ts","sourceRoot":"","sources":["../../../src/barretenberg/schnorr.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { TextEncoder } from 'util';
|
|
2
|
-
import { Buffer128, Buffer32, Fq, Fr, Point } from '../types/index.js';
|
|
3
|
-
import { Barretenberg } from './index.js';
|
|
4
|
-
import { asyncMap } from '../async_map/index.js';
|
|
5
|
-
describe('schnorr', () => {
|
|
6
|
-
const msg = Buffer.from(new TextEncoder().encode('The quick brown dog jumped over the lazy fox.'));
|
|
7
|
-
let api;
|
|
8
|
-
beforeAll(async () => {
|
|
9
|
-
api = await Barretenberg.new({ threads: 1 });
|
|
10
|
-
}, 30000);
|
|
11
|
-
afterAll(async () => {
|
|
12
|
-
await api.destroy();
|
|
13
|
-
});
|
|
14
|
-
it('should verify signature', async () => {
|
|
15
|
-
const pk = Fr.fromBuffer(new Uint8Array([
|
|
16
|
-
0x0b, 0x9b, 0x3a, 0xde, 0xe6, 0xb3, 0xd8, 0x1b, 0x28, 0xa0, 0x88, 0x6b, 0x2a, 0x84, 0x15, 0xc7, 0xda, 0x31,
|
|
17
|
-
0x29, 0x1a, 0x5e, 0x96, 0xbb, 0x7a, 0x56, 0x63, 0x9e, 0x17, 0x7d, 0x30, 0x1b, 0xeb,
|
|
18
|
-
]));
|
|
19
|
-
const pubKey = await api.schnorrComputePublicKey(pk);
|
|
20
|
-
const [s, e] = await api.schnorrConstructSignature(msg, pk);
|
|
21
|
-
const verified = await api.schnorrVerifySignature(msg, pubKey, s, e);
|
|
22
|
-
expect(verified).toBe(true);
|
|
23
|
-
});
|
|
24
|
-
it('public key negation should work', async () => {
|
|
25
|
-
const publicKeyStr = '0x164f01b1011a1b292217acf53eef4d74f625f6e9bd5edfdb74c56fd81aafeebb21912735f9266a3719f61c1eb747ddee0cac9917f5c807485d356709b529b62c';
|
|
26
|
-
const publicKey = Point.fromString(publicKeyStr);
|
|
27
|
-
// hardcoded expected negated public key
|
|
28
|
-
const expectedInvertedStr = '0x164f01b1011a1b292217acf53eef4d74f625f6e9bd5edfdb74c56fd81aafeebb0ed3273ce80b35f29e5a2997ca397a6f1b874f3083f16948e6ac8e8a3ad649d5';
|
|
29
|
-
const expectedInverted = Point.fromString(expectedInvertedStr);
|
|
30
|
-
// negate - should match expected negated key
|
|
31
|
-
const negatedPublicKey = await api.schnorrNegatePublicKey(publicKey);
|
|
32
|
-
expect(negatedPublicKey.equals(expectedInverted)).toEqual(true);
|
|
33
|
-
// negate again - should be original public key now
|
|
34
|
-
expect((await api.schnorrNegatePublicKey(negatedPublicKey)).equals(publicKey)).toEqual(true);
|
|
35
|
-
});
|
|
36
|
-
it('should create + verify multi signature', async () => {
|
|
37
|
-
// set up multisig accounts
|
|
38
|
-
const numSigners = 7;
|
|
39
|
-
const pks = [...Array(numSigners)].map(() => Fq.random());
|
|
40
|
-
const pubKeys = await asyncMap(pks, pk => api.schnorrMultisigCreateMultisigPublicKey(pk));
|
|
41
|
-
// round one
|
|
42
|
-
const roundOnePublicOutputs = [];
|
|
43
|
-
const roundOnePrivateOutputs = [];
|
|
44
|
-
for (let i = 0; i < numSigners; ++i) {
|
|
45
|
-
const [publicOutput, privateOutput] = await api.schnorrMultisigConstructSignatureRound1();
|
|
46
|
-
roundOnePublicOutputs.push(publicOutput);
|
|
47
|
-
roundOnePrivateOutputs.push(privateOutput);
|
|
48
|
-
}
|
|
49
|
-
// round two
|
|
50
|
-
const roundTwoOutputs = await asyncMap(pks, async (pk, i) => (await api.schnorrMultisigConstructSignatureRound2(msg, pk, roundOnePrivateOutputs[i], pubKeys, roundOnePublicOutputs))[0]);
|
|
51
|
-
// generate signature
|
|
52
|
-
const [s, e] = await api.schnorrMultisigCombineSignatures(msg, pubKeys, roundOnePublicOutputs, roundTwoOutputs);
|
|
53
|
-
const [combinedKey] = await api.schnorrMultisigValidateAndCombineSignerPubkeys(pubKeys);
|
|
54
|
-
expect(combinedKey).not.toEqual(Buffer.alloc(64));
|
|
55
|
-
const verified = await api.schnorrVerifySignature(msg, combinedKey, s, e);
|
|
56
|
-
expect(verified).toBe(true);
|
|
57
|
-
});
|
|
58
|
-
it('should identify invalid multi signature', async () => {
|
|
59
|
-
const pks = [...Array(3)].map(() => Fq.random());
|
|
60
|
-
const pubKeys = await asyncMap(pks, pk => api.schnorrMultisigCreateMultisigPublicKey(pk));
|
|
61
|
-
const [combinedKey] = await api.schnorrMultisigValidateAndCombineSignerPubkeys(pubKeys);
|
|
62
|
-
const verified = await api.schnorrVerifySignature(msg, combinedKey, Buffer32.random(), Buffer32.random());
|
|
63
|
-
expect(verified).toBe(false);
|
|
64
|
-
});
|
|
65
|
-
it('should not construct invalid multi signature', async () => {
|
|
66
|
-
// set up multisig accounts
|
|
67
|
-
const numSigners = 7;
|
|
68
|
-
const pks = [...Array(numSigners)].map(() => Fq.random());
|
|
69
|
-
const pubKeys = await asyncMap(pks, pk => api.schnorrMultisigCreateMultisigPublicKey(pk));
|
|
70
|
-
// round one
|
|
71
|
-
const roundOnePublicOutputs = [];
|
|
72
|
-
const roundOnePrivateOutputs = [];
|
|
73
|
-
for (let i = 0; i < numSigners; ++i) {
|
|
74
|
-
const [publicOutput, privateOutput] = await api.schnorrMultisigConstructSignatureRound1();
|
|
75
|
-
roundOnePublicOutputs.push(publicOutput);
|
|
76
|
-
roundOnePrivateOutputs.push(privateOutput);
|
|
77
|
-
}
|
|
78
|
-
// round two
|
|
79
|
-
const roundTwoOutputs = await asyncMap(pks, async (pk, i) => (await api.schnorrMultisigConstructSignatureRound2(msg, pk, roundOnePrivateOutputs[i], pubKeys, roundOnePublicOutputs))[0]);
|
|
80
|
-
// wrong number of data
|
|
81
|
-
{
|
|
82
|
-
expect((await api.schnorrMultisigCombineSignatures(msg, pubKeys.slice(0, -1), roundOnePublicOutputs.slice(0, -1), roundTwoOutputs.slice(0, -1)))[2]).toBe(false);
|
|
83
|
-
}
|
|
84
|
-
// invalid round two output
|
|
85
|
-
{
|
|
86
|
-
const invalidOutputs = [...roundTwoOutputs];
|
|
87
|
-
invalidOutputs[1] = (await api.schnorrMultisigConstructSignatureRound2(msg, pks[2], // <- Wrong private key.
|
|
88
|
-
roundOnePrivateOutputs[1], pubKeys, roundOnePublicOutputs))[0];
|
|
89
|
-
expect((await api.schnorrMultisigCombineSignatures(msg, pubKeys, roundOnePublicOutputs, invalidOutputs))[2]).toBe(false);
|
|
90
|
-
}
|
|
91
|
-
// contains duplicates
|
|
92
|
-
{
|
|
93
|
-
const invalidOutputs = [...roundTwoOutputs];
|
|
94
|
-
invalidOutputs[1] = roundTwoOutputs[2];
|
|
95
|
-
expect((await api.schnorrMultisigCombineSignatures(msg, pubKeys, roundOnePublicOutputs, invalidOutputs))[2]).toBe(false);
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
it('should not create combined key from public keys containing invalid key', async () => {
|
|
99
|
-
const pks = [...Array(5)].map(() => Fq.random());
|
|
100
|
-
const pubKeys = await asyncMap(pks, pk => api.schnorrMultisigCreateMultisigPublicKey(pk));
|
|
101
|
-
// not a valid point
|
|
102
|
-
{
|
|
103
|
-
pubKeys[1] = new Buffer128(Buffer.alloc(128));
|
|
104
|
-
expect((await api.schnorrMultisigValidateAndCombineSignerPubkeys(pubKeys))[1]).toBe(false);
|
|
105
|
-
}
|
|
106
|
-
// contains duplicates
|
|
107
|
-
{
|
|
108
|
-
pubKeys[1] = pubKeys[2];
|
|
109
|
-
expect((await api.schnorrMultisigValidateAndCombineSignerPubkeys(pubKeys))[1]).toBe(false);
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nobm9yci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhcnJldGVuYmVyZy9zY2hub3JyLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWpELFFBQVEsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO0lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsK0NBQStDLENBQUMsQ0FBQyxDQUFDO0lBQ25HLElBQUksR0FBaUIsQ0FBQztJQUV0QixTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDbkIsR0FBRyxHQUFHLE1BQU0sWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUVWLFFBQVEsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNsQixNQUFNLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN0QixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN2QyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUN0QixJQUFJLFVBQVUsQ0FBQztZQUNiLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUs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
|