@aztec/bb.js 0.85.0-alpha-testnet.2 → 0.85.0-alpha-testnet.3
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 +10996 -8241
- package/dest/browser/main.worker.js +1316 -0
- package/dest/browser/thread.worker.js +1200 -0
- package/dest/node/barretenberg/backend.d.ts +5 -6
- package/dest/node/barretenberg/backend.d.ts.map +1 -1
- package/dest/node/barretenberg/backend.js +49 -10
- 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 +20 -33
- package/dest/node/barretenberg_api/index.d.ts.map +1 -1
- package/dest/node/barretenberg_api/index.js +93 -194
- 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 +1 -35
- package/dest/node-cjs/barretenberg/backend.d.ts +5 -6
- package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/backend.js +49 -10
- 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 +20 -33
- package/dest/node-cjs/barretenberg_api/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_api/index.js +92 -193
- 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 +2 -37
- package/package.json +10 -12
- package/src/barretenberg/backend.ts +64 -11
- package/src/barretenberg/index.ts +7 -3
- package/src/barretenberg_api/index.ts +156 -360
- 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 +0 -39
- 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,10 +1,15 @@
|
|
|
1
1
|
import debug from 'debug';
|
|
2
|
-
import
|
|
2
|
+
import { readinessListener } from '../../../helpers/browser/index.js';
|
|
3
3
|
|
|
4
|
-
export function createMainWorker() {
|
|
5
|
-
|
|
4
|
+
export async function createMainWorker() {
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
6
|
+
// @ts-ignore
|
|
7
|
+
const worker = new Worker(new URL(/* webpackIgnore: true */ './main.worker.js', import.meta.url), {
|
|
8
|
+
type: 'module',
|
|
9
|
+
});
|
|
6
10
|
const debugStr = debug.disable();
|
|
7
11
|
debug.enable(debugStr);
|
|
8
12
|
worker.postMessage({ debug: debugStr });
|
|
13
|
+
await new Promise<void>(resolve => readinessListener(worker, resolve));
|
|
9
14
|
return worker;
|
|
10
15
|
}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { expose } from 'comlink';
|
|
2
2
|
import { BarretenbergWasmMain } from '../../index.js';
|
|
3
3
|
import debug from 'debug';
|
|
4
|
+
import { Ready } from '../../../helpers/browser/index.js';
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
addEventListener('message', e => {
|
|
6
7
|
if (e.data.debug) {
|
|
7
8
|
debug.enable(e.data.debug);
|
|
8
9
|
}
|
|
9
|
-
};
|
|
10
|
+
});
|
|
10
11
|
|
|
11
12
|
expose(new BarretenbergWasmMain());
|
|
12
|
-
|
|
13
|
-
self.postMessage({ ready: true });
|
|
14
|
-
|
|
15
|
-
export default null as any;
|
|
13
|
+
postMessage(Ready);
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
import debug from 'debug';
|
|
2
|
-
import
|
|
2
|
+
import { readinessListener } from '../../../helpers/browser/index.js';
|
|
3
3
|
|
|
4
|
-
export function createThreadWorker() {
|
|
5
|
-
|
|
4
|
+
export async function createThreadWorker() {
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
6
|
+
// @ts-ignore
|
|
7
|
+
const worker = new Worker(new URL(/* webpackIgnore: true */ './thread.worker.js', import.meta.url), {
|
|
8
|
+
type: 'module',
|
|
9
|
+
});
|
|
6
10
|
const debugStr = debug.disable();
|
|
7
11
|
debug.enable(debugStr);
|
|
8
12
|
worker.postMessage({ debug: debugStr });
|
|
13
|
+
await new Promise<void>(resolve => readinessListener(worker, resolve));
|
|
9
14
|
return worker;
|
|
10
15
|
}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { expose } from 'comlink';
|
|
2
2
|
import { BarretenbergWasmThread } from '../../index.js';
|
|
3
3
|
import debug from 'debug';
|
|
4
|
+
import { Ready } from '../../../helpers/browser/index.js';
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
addEventListener('message', e => {
|
|
6
7
|
if (e.data.debug) {
|
|
7
8
|
debug.enable(e.data.debug);
|
|
8
9
|
}
|
|
9
|
-
};
|
|
10
|
+
});
|
|
10
11
|
|
|
11
12
|
expose(new BarretenbergWasmThread());
|
|
12
|
-
|
|
13
|
-
self.postMessage({ ready: true });
|
|
14
|
-
|
|
15
|
-
export default null as any;
|
|
13
|
+
postMessage(Ready);
|
|
@@ -6,7 +6,7 @@ export function getSharedMemoryAvailable() {
|
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
export function getRemoteBarretenbergWasm<T>(worker: Worker) {
|
|
9
|
-
return wrap(worker)
|
|
9
|
+
return wrap<T>(worker);
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
export function getNumCpu() {
|
|
@@ -14,9 +14,25 @@ export function getNumCpu() {
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
export function threadLogger(): ((msg: string) => void) | undefined {
|
|
17
|
-
return
|
|
17
|
+
return console.log;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
export function killSelf() {
|
|
21
21
|
self.close();
|
|
22
22
|
}
|
|
23
|
+
|
|
24
|
+
// Solution to async initialization of workers, taken from
|
|
25
|
+
// https://github.com/GoogleChromeLabs/comlink/issues/635#issuecomment-1598913044
|
|
26
|
+
|
|
27
|
+
/** The message expected by the `readinessListener`. */
|
|
28
|
+
export const Ready = { ready: true };
|
|
29
|
+
|
|
30
|
+
/** Listen for the readiness message from the Worker and call the `callback` once. */
|
|
31
|
+
export function readinessListener(worker: Worker, callback: () => void) {
|
|
32
|
+
worker.addEventListener('message', function ready(event: MessageEvent<typeof Ready>) {
|
|
33
|
+
if (!!event.data && event.data.ready === true) {
|
|
34
|
+
worker.removeEventListener('message', ready);
|
|
35
|
+
callback();
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
@@ -13,8 +13,8 @@ export function getSharedMemoryAvailable() {
|
|
|
13
13
|
* Note we give it the type information it needs so the returned Proxy object looks like that type.
|
|
14
14
|
* Node has a different implementation, needing this nodeEndpoint wrapper, hence this function exists here.
|
|
15
15
|
*/
|
|
16
|
-
export function getRemoteBarretenbergWasm<T>(worker: Worker)
|
|
17
|
-
return wrap(nodeEndpoint(worker))
|
|
16
|
+
export function getRemoteBarretenbergWasm<T>(worker: Worker) {
|
|
17
|
+
return wrap<T>(nodeEndpoint(worker));
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
/**
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { BarretenbergWasmMain, BarretenbergWasmMainWorker } from './barretenberg_wasm_main/index.js';
|
|
2
|
+
import { Barretenberg } from '../index.js';
|
|
3
3
|
|
|
4
4
|
describe('barretenberg wasm', () => {
|
|
5
|
-
let
|
|
6
|
-
let wasm
|
|
5
|
+
let api: Barretenberg;
|
|
6
|
+
let wasm: BarretenbergWasmMainWorker;
|
|
7
7
|
|
|
8
8
|
beforeAll(async () => {
|
|
9
|
-
|
|
9
|
+
api = await Barretenberg.new({ threads: 2 });
|
|
10
|
+
wasm = api.getWasm();
|
|
10
11
|
}, 20000);
|
|
11
12
|
|
|
12
13
|
afterAll(async () => {
|
|
13
|
-
await
|
|
14
|
-
await worker.terminate();
|
|
14
|
+
await api.destroy();
|
|
15
15
|
});
|
|
16
16
|
|
|
17
17
|
it('should new malloc, transfer and slice mem', async () => {
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import { proxy } from 'comlink';
|
|
2
1
|
import createDebug from 'debug';
|
|
3
|
-
import {
|
|
4
|
-
import { getRemoteBarretenbergWasm, getSharedMemoryAvailable } from './helpers/node/index.js';
|
|
5
|
-
import { BarretenbergWasmMain, BarretenbergWasmMainWorker } from './barretenberg_wasm_main/index.js';
|
|
2
|
+
import { getSharedMemoryAvailable } from './helpers/node/index.js';
|
|
6
3
|
import { fetchCode } from './fetch_code/index.js';
|
|
7
4
|
|
|
8
5
|
export async function fetchModuleAndThreads(
|
|
@@ -39,23 +36,3 @@ async function getAvailableThreads(logger: (msg: string) => void): Promise<numbe
|
|
|
39
36
|
}
|
|
40
37
|
}
|
|
41
38
|
}
|
|
42
|
-
|
|
43
|
-
export class BarretenbergWasm extends BarretenbergWasmMain {
|
|
44
|
-
/**
|
|
45
|
-
* Construct and initialize BarretenbergWasm within a Worker. Return both the worker and the wasm proxy.
|
|
46
|
-
* Used when running in the browser, because we can't block the main thread.
|
|
47
|
-
*/
|
|
48
|
-
public static async new(
|
|
49
|
-
desiredThreads?: number,
|
|
50
|
-
wasmPath?: string,
|
|
51
|
-
logger: (msg: string) => void = createDebug('bb.js:bb_wasm_main'),
|
|
52
|
-
) {
|
|
53
|
-
const worker = createMainWorker();
|
|
54
|
-
const wasm = getRemoteBarretenbergWasm<BarretenbergWasmMainWorker>(worker);
|
|
55
|
-
const { module, threads } = await fetchModuleAndThreads(desiredThreads, wasmPath, logger);
|
|
56
|
-
await wasm.init(module, threads, proxy(logger));
|
|
57
|
-
return { worker, wasm };
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
export type BarretenbergWasmWorker = BarretenbergWasmMainWorker;
|
package/src/bindgen/mappings.ts
CHANGED
|
@@ -13,6 +13,7 @@ const typeMap: { [key: string]: string } = {
|
|
|
13
13
|
'fq::vec_in_buf': 'Fq[]',
|
|
14
14
|
'fq::vec_out_buf': 'Fq[]',
|
|
15
15
|
'const uint8_t *': 'Uint8Array',
|
|
16
|
+
'uint8_vec_vec_in_buf': 'Uint8Array[]',
|
|
16
17
|
'uint8_t **': 'Uint8Array',
|
|
17
18
|
in_str_buf: 'string',
|
|
18
19
|
out_str_buf: 'string',
|
|
@@ -9,9 +9,9 @@ export function generateTypeScriptCode(filename: string) {
|
|
|
9
9
|
|
|
10
10
|
let output = `// WARNING: FILE CODE GENERATED BY BINDGEN UTILITY. DO NOT EDIT!
|
|
11
11
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
12
|
-
import {
|
|
12
|
+
import { BarretenbergWasmMain, BarretenbergWasmMainWorker } from '../barretenberg_wasm/barretenberg_wasm_main/index.js';
|
|
13
13
|
import { BufferDeserializer, NumberDeserializer, VectorDeserializer, BoolDeserializer, StringDeserializer, serializeBufferable, OutputType } from '../serialize/index.js';
|
|
14
|
-
import { Fr,
|
|
14
|
+
import { Fr, Point, Buffer32, Ptr } from '../types/index.js';
|
|
15
15
|
|
|
16
16
|
`;
|
|
17
17
|
|
|
@@ -24,7 +24,7 @@ import { Fr, Fq, Point, Buffer32, Buffer128, Ptr } from '../types/index.js';
|
|
|
24
24
|
function generateClass(functionDeclarations: FunctionDeclaration[]) {
|
|
25
25
|
let output = `
|
|
26
26
|
export class BarretenbergApi {
|
|
27
|
-
constructor(protected wasm:
|
|
27
|
+
constructor(protected wasm: BarretenbergWasmMainWorker) {}
|
|
28
28
|
|
|
29
29
|
`;
|
|
30
30
|
|
|
@@ -71,7 +71,7 @@ export class BarretenbergApi {
|
|
|
71
71
|
function generateSyncClass(functionDeclarations: FunctionDeclaration[]) {
|
|
72
72
|
let output = `
|
|
73
73
|
export class BarretenbergApiSync {
|
|
74
|
-
constructor(protected wasm:
|
|
74
|
+
constructor(protected wasm: BarretenbergWasmMain) {}
|
|
75
75
|
|
|
76
76
|
`;
|
|
77
77
|
|
package/src/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { Crs, GrumpkinCrs } from './crs/index.js';
|
|
2
2
|
export {
|
|
3
|
-
BackendOptions,
|
|
3
|
+
type BackendOptions,
|
|
4
4
|
Barretenberg,
|
|
5
5
|
BarretenbergSync,
|
|
6
6
|
BarretenbergVerifier,
|
|
@@ -10,4 +10,4 @@ export {
|
|
|
10
10
|
} from './barretenberg/index.js';
|
|
11
11
|
|
|
12
12
|
export { RawBuffer, Fr } from './types/index.js';
|
|
13
|
-
export { splitHonkProof, reconstructHonkProof, deflattenFields, ProofData } from './proof/index.js';
|
|
13
|
+
export { splitHonkProof, reconstructHonkProof, deflattenFields, type ProofData } from './proof/index.js';
|
package/src/main.ts
CHANGED
|
@@ -4,9 +4,7 @@ import { Crs, GrumpkinCrs, Barretenberg, RawBuffer } from './index.js';
|
|
|
4
4
|
import createDebug from 'debug';
|
|
5
5
|
import { readFileSync, writeFileSync } from 'fs';
|
|
6
6
|
import { gunzipSync } from 'zlib';
|
|
7
|
-
import { ungzip } from 'pako';
|
|
8
7
|
import { Command } from 'commander';
|
|
9
|
-
import { decode } from '@msgpack/msgpack';
|
|
10
8
|
import { Timer, writeBenchmark } from './benchmark/index.js';
|
|
11
9
|
import path from 'path';
|
|
12
10
|
import { UltraHonkBackendOptions } from './barretenberg/backend.js';
|
|
@@ -46,16 +44,6 @@ function base64ToUint8Array(base64: string) {
|
|
|
46
44
|
return bytes;
|
|
47
45
|
}
|
|
48
46
|
|
|
49
|
-
function readStack(bytecodePath: string, numToDrop = 0) {
|
|
50
|
-
const encodedPackedZippedBytecodeArray = readFileSync(bytecodePath, 'utf-8');
|
|
51
|
-
const packedZippedBytecodeArray = base64ToUint8Array(encodedPackedZippedBytecodeArray);
|
|
52
|
-
const zipped = decode(
|
|
53
|
-
packedZippedBytecodeArray.subarray(0, packedZippedBytecodeArray.length - numToDrop),
|
|
54
|
-
) as Uint8Array[];
|
|
55
|
-
const bytecodeArray = zipped.map((arr: Uint8Array) => ungzip(arr));
|
|
56
|
-
return bytecodeArray;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
47
|
// TODO(https://github.com/AztecProtocol/barretenberg/issues/1126): split this into separate Plonk and Honk functions as their gate count differs
|
|
60
48
|
async function getGatesUltra(bytecodePath: string, recursive: boolean, honkRecursion: boolean, api: Barretenberg) {
|
|
61
49
|
const { total } = await computeCircuitSize(bytecodePath, recursive, honkRecursion, api);
|
|
@@ -222,22 +210,6 @@ export async function proveAndVerifyMegaHonk(
|
|
|
222
210
|
/* eslint-enable camelcase */
|
|
223
211
|
}
|
|
224
212
|
|
|
225
|
-
export async function proveAndVerifyAztecClient(bytecodePath: string, witnessPath: string, crsPath: string) {
|
|
226
|
-
/* eslint-disable camelcase */
|
|
227
|
-
const { api } = await initClientIVC(crsPath);
|
|
228
|
-
try {
|
|
229
|
-
const bytecode = readStack(bytecodePath);
|
|
230
|
-
const witness = readStack(witnessPath);
|
|
231
|
-
|
|
232
|
-
const verified = await api.acirProveAndVerifyAztecClient(bytecode, witness);
|
|
233
|
-
debug(`Verification ${verified ? 'successful' : 'failed'}`);
|
|
234
|
-
return verified;
|
|
235
|
-
} finally {
|
|
236
|
-
await api.destroy();
|
|
237
|
-
}
|
|
238
|
-
/* eslint-enable camelcase */
|
|
239
|
-
}
|
|
240
|
-
|
|
241
213
|
export async function prove(
|
|
242
214
|
bytecodePath: string,
|
|
243
215
|
recursive: boolean,
|
|
@@ -586,17 +558,6 @@ program
|
|
|
586
558
|
process.exit(result ? 0 : 1);
|
|
587
559
|
});
|
|
588
560
|
|
|
589
|
-
program
|
|
590
|
-
.command('client_ivc_prove_and_verify')
|
|
591
|
-
.description('Generate a ClientIVC proof.')
|
|
592
|
-
.option('-b, --bytecode-path <path>', 'Specify the bytecode path', './target/acir.msgpack.b64')
|
|
593
|
-
.option('-w, --witness-path <path>', 'Specify the witness path', './target/witnesses.msgpack.b64')
|
|
594
|
-
.action(async ({ bytecodePath, witnessPath }) => {
|
|
595
|
-
const { crsPath } = handleGlobalOptions();
|
|
596
|
-
const result = await proveAndVerifyAztecClient(bytecodePath, witnessPath, crsPath);
|
|
597
|
-
process.exit(result ? 0 : 1);
|
|
598
|
-
});
|
|
599
|
-
|
|
600
561
|
program
|
|
601
562
|
.command('prove')
|
|
602
563
|
.description('Generate a proof and write it to a file.')
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { BackendOptions, Barretenberg, CircuitOptions } from './index.js';
|
|
2
|
-
import { ProofData } from '../proof/index.js';
|
|
3
|
-
export declare class AztecClientBackendError extends Error {
|
|
4
|
-
constructor(message: string);
|
|
5
|
-
}
|
|
6
|
-
export declare class UltraPlonkBackend {
|
|
7
|
-
protected backendOptions: BackendOptions;
|
|
8
|
-
protected circuitOptions: CircuitOptions;
|
|
9
|
-
protected api: Barretenberg;
|
|
10
|
-
protected acirComposer: any;
|
|
11
|
-
protected acirUncompressedBytecode: Uint8Array;
|
|
12
|
-
constructor(acirBytecode: string, backendOptions?: BackendOptions, circuitOptions?: CircuitOptions);
|
|
13
|
-
/** @ignore */
|
|
14
|
-
instantiate(): Promise<void>;
|
|
15
|
-
/** @description Generates a proof */
|
|
16
|
-
generateProof(compressedWitness: Uint8Array): Promise<ProofData>;
|
|
17
|
-
/**
|
|
18
|
-
* Generates artifacts that will be passed to a circuit that will verify this proof.
|
|
19
|
-
*
|
|
20
|
-
* Instead of passing the proof and verification key as a byte array, we pass them
|
|
21
|
-
* as fields which makes it cheaper to verify in a circuit.
|
|
22
|
-
*
|
|
23
|
-
* The proof that is passed here will have been created by passing the `recursive`
|
|
24
|
-
* parameter to a backend.
|
|
25
|
-
*
|
|
26
|
-
* The number of public inputs denotes how many public inputs are in the inner proof.
|
|
27
|
-
*
|
|
28
|
-
* @example
|
|
29
|
-
* ```typescript
|
|
30
|
-
* const artifacts = await backend.generateRecursiveProofArtifacts(proof, numOfPublicInputs);
|
|
31
|
-
* ```
|
|
32
|
-
*/
|
|
33
|
-
generateRecursiveProofArtifacts(proofData: ProofData, numOfPublicInputs?: number): Promise<{
|
|
34
|
-
proofAsFields: string[];
|
|
35
|
-
vkAsFields: string[];
|
|
36
|
-
vkHash: string;
|
|
37
|
-
}>;
|
|
38
|
-
/** @description Verifies a proof */
|
|
39
|
-
verifyProof(proofData: ProofData): Promise<boolean>;
|
|
40
|
-
/** @description Returns the verification key */
|
|
41
|
-
getVerificationKey(): Promise<Uint8Array>;
|
|
42
|
-
/** @description Returns a solidity verifier */
|
|
43
|
-
getSolidityVerifier(): Promise<string>;
|
|
44
|
-
destroy(): Promise<void>;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Options for the UltraHonkBackend.
|
|
48
|
-
*/
|
|
49
|
-
export type UltraHonkBackendOptions = {
|
|
50
|
-
/**Selecting this option will use the keccak hash function instead of poseidon
|
|
51
|
-
* when generating challenges in the proof.
|
|
52
|
-
* Use this when you want to verify the created proof on an EVM chain.
|
|
53
|
-
*/
|
|
54
|
-
keccak: boolean;
|
|
55
|
-
};
|
|
56
|
-
export declare class UltraHonkBackend {
|
|
57
|
-
protected backendOptions: BackendOptions;
|
|
58
|
-
protected circuitOptions: CircuitOptions;
|
|
59
|
-
protected api: Barretenberg;
|
|
60
|
-
protected acirUncompressedBytecode: Uint8Array;
|
|
61
|
-
constructor(acirBytecode: string, backendOptions?: BackendOptions, circuitOptions?: CircuitOptions);
|
|
62
|
-
/** @ignore */
|
|
63
|
-
instantiate(): Promise<void>;
|
|
64
|
-
generateProof(compressedWitness: Uint8Array, options?: UltraHonkBackendOptions): Promise<ProofData>;
|
|
65
|
-
verifyProof(proofData: ProofData, options?: UltraHonkBackendOptions): Promise<boolean>;
|
|
66
|
-
getVerificationKey(options?: UltraHonkBackendOptions): Promise<Uint8Array>;
|
|
67
|
-
/** @description Returns a solidity verifier */
|
|
68
|
-
getSolidityVerifier(vk?: Uint8Array): Promise<string>;
|
|
69
|
-
generateRecursiveProofArtifacts(_proof: Uint8Array, _numOfPublicInputs: number): Promise<{
|
|
70
|
-
proofAsFields: string[];
|
|
71
|
-
vkAsFields: string[];
|
|
72
|
-
vkHash: string;
|
|
73
|
-
}>;
|
|
74
|
-
destroy(): Promise<void>;
|
|
75
|
-
}
|
|
76
|
-
export declare class AztecClientBackend {
|
|
77
|
-
protected acirMsgpack: Uint8Array[];
|
|
78
|
-
protected options: BackendOptions;
|
|
79
|
-
protected api: Barretenberg;
|
|
80
|
-
constructor(acirMsgpack: Uint8Array[], options?: BackendOptions);
|
|
81
|
-
/** @ignore */
|
|
82
|
-
instantiate(): Promise<void>;
|
|
83
|
-
prove(witnessMsgpack: Uint8Array[]): Promise<[Uint8Array, Uint8Array]>;
|
|
84
|
-
verify(proof: Uint8Array, vk: Uint8Array): Promise<boolean>;
|
|
85
|
-
proveAndVerify(witnessMsgpack: Uint8Array[]): Promise<boolean>;
|
|
86
|
-
gates(): Promise<number[]>;
|
|
87
|
-
destroy(): Promise<void>;
|
|
88
|
-
}
|
|
89
|
-
//# sourceMappingURL=backend.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../../src/barretenberg/backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { BarretenbergApi, BarretenbergApiSync } from '../barretenberg_api/index.js';
|
|
2
|
-
export { BarretenbergVerifier } from './verifier.js';
|
|
3
|
-
export { UltraPlonkBackend, UltraHonkBackend, AztecClientBackend } from './backend.js';
|
|
4
|
-
export type BackendOptions = {
|
|
5
|
-
/** @description Number of threads to run the backend worker on */
|
|
6
|
-
threads?: number;
|
|
7
|
-
/** @description Initial and Maximum memory to be alloted to the backend worker */
|
|
8
|
-
memory?: {
|
|
9
|
-
initial?: number;
|
|
10
|
-
maximum?: number;
|
|
11
|
-
};
|
|
12
|
-
/** @description Path to download CRS files */
|
|
13
|
-
crsPath?: string;
|
|
14
|
-
/** @description Path to download WASM files */
|
|
15
|
-
wasmPath?: string;
|
|
16
|
-
/** @description Logging function */
|
|
17
|
-
logger?: (msg: string) => void;
|
|
18
|
-
};
|
|
19
|
-
export type CircuitOptions = {
|
|
20
|
-
/** @description Whether to produce SNARK friendly proofs */
|
|
21
|
-
recursive: boolean;
|
|
22
|
-
};
|
|
23
|
-
/**
|
|
24
|
-
* The main class library consumers interact with.
|
|
25
|
-
* It extends the generated api, and provides a static constructor "new" to compose components.
|
|
26
|
-
*/
|
|
27
|
-
export declare class Barretenberg extends BarretenbergApi {
|
|
28
|
-
private worker;
|
|
29
|
-
private options;
|
|
30
|
-
private constructor();
|
|
31
|
-
/**
|
|
32
|
-
* Constructs an instance of Barretenberg.
|
|
33
|
-
* Launches it within a worker. This is necessary as it blocks waiting on child threads to complete,
|
|
34
|
-
* and blocking the main thread in the browser is not allowed.
|
|
35
|
-
* It threads > 1 (defaults to hardware availability), child threads will be created on their own workers.
|
|
36
|
-
*/
|
|
37
|
-
static new(options?: BackendOptions): Promise<Barretenberg>;
|
|
38
|
-
getNumThreads(): Promise<number>;
|
|
39
|
-
initSRSForCircuitSize(circuitSize: number): Promise<void>;
|
|
40
|
-
initSRSClientIVC(): Promise<void>;
|
|
41
|
-
acirInitSRS(bytecode: Uint8Array, recursive: boolean, honkRecursion: boolean): Promise<void>;
|
|
42
|
-
destroy(): Promise<void>;
|
|
43
|
-
}
|
|
44
|
-
export declare class BarretenbergSync extends BarretenbergApiSync {
|
|
45
|
-
private constructor();
|
|
46
|
-
private static new;
|
|
47
|
-
static initSingleton(wasmPath?: string, logger?: (msg: string) => void): Promise<BarretenbergSync>;
|
|
48
|
-
static getSingleton(): BarretenbergSync;
|
|
49
|
-
getWasm(): import("../barretenberg_wasm/index.js").BarretenbergWasm;
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/barretenberg/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AASpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvF,MAAM,MAAM,cAAc,GAAG;IAC3B,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,kFAAkF;IAClF,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAEhD,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,oCAAoC;IACpC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,4DAA4D;IAC5D,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,qBAAa,YAAa,SAAQ,eAAe;IAG3B,OAAO,CAAC,MAAM;IAFlC,OAAO,CAAC,OAAO,CAAiB;IAEhC,OAAO;IAKP;;;;;OAKG;WACU,GAAG,CAAC,OAAO,GAAE,cAAmB;IAcvC,aAAa;IAIb,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzD,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAWjC,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5F,OAAO;CAId;AAKD,qBAAa,gBAAiB,SAAQ,mBAAmB;IACvD,OAAO;mBAIc,GAAG;WAOX,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAwC;IAS/G,MAAM,CAAC,YAAY;IAOnB,OAAO;CAGR"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { BackendOptions } from './index.js';
|
|
2
|
-
import { ProofData } from '../proof/index.js';
|
|
3
|
-
export declare class BarretenbergVerifier {
|
|
4
|
-
private options;
|
|
5
|
-
private api;
|
|
6
|
-
private acirComposer;
|
|
7
|
-
constructor(options?: BackendOptions);
|
|
8
|
-
/** @ignore */
|
|
9
|
-
instantiate(): Promise<void>;
|
|
10
|
-
/** @description Verifies a proof */
|
|
11
|
-
verifyUltraPlonkProof(proofData: ProofData, verificationKey: Uint8Array): Promise<boolean>;
|
|
12
|
-
/** @description Verifies a proof */
|
|
13
|
-
verifyUltraHonkProof(proofData: ProofData, verificationKey: Uint8Array): Promise<boolean>;
|
|
14
|
-
destroy(): Promise<void>;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=verifier.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../../../src/barretenberg/verifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAgB,MAAM,YAAY,CAAC;AAE1D,OAAO,EAAwB,SAAS,EAAoD,MAAM,mBAAmB,CAAC;AAItH,qBAAa,oBAAoB;IAUnB,OAAO,CAAC,OAAO;IAJ3B,OAAO,CAAC,GAAG,CAAgB;IAE3B,OAAO,CAAC,YAAY,CAAM;gBAEN,OAAO,GAAE,cAA+B;IAE5D,cAAc;IACR,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAUlC,oCAAoC;IAC9B,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAUhG,oCAAoC;IAC9B,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAOzF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAM/B"}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { BarretenbergWasmMain } from '../barretenberg_wasm/barretenberg_wasm_main/index.js';
|
|
2
|
-
import { BarretenbergWasmWorker, BarretenbergWasm } from '../barretenberg_wasm/index.js';
|
|
3
|
-
import { Fr, Fq, Point, Buffer32, Buffer128, Ptr } from '../types/index.js';
|
|
4
|
-
export declare class BarretenbergApi {
|
|
5
|
-
protected wasm: BarretenbergWasmWorker | BarretenbergWasmMain;
|
|
6
|
-
constructor(wasm: BarretenbergWasmWorker | BarretenbergWasmMain);
|
|
7
|
-
pedersenCommit(inputsBuffer: Fr[], ctxIndex: number): Promise<Point>;
|
|
8
|
-
pedersenHash(inputsBuffer: Fr[], hashIndex: number): Promise<Fr>;
|
|
9
|
-
pedersenHashes(inputsBuffer: Fr[], hashIndex: number): Promise<Fr>;
|
|
10
|
-
pedersenHashBuffer(inputBuffer: Uint8Array, hashIndex: number): Promise<Fr>;
|
|
11
|
-
poseidon2Hash(inputsBuffer: Fr[]): Promise<Fr>;
|
|
12
|
-
poseidon2HashAccumulate(inputsBuffer: Fr[]): Promise<Fr>;
|
|
13
|
-
poseidon2Hashes(inputsBuffer: Fr[]): Promise<Fr>;
|
|
14
|
-
poseidon2Permutation(inputsBuffer: Fr[]): Promise<Fr[]>;
|
|
15
|
-
blake2s(data: Uint8Array): Promise<Buffer32>;
|
|
16
|
-
blake2sToField(data: Uint8Array): Promise<Fr>;
|
|
17
|
-
schnorrComputePublicKey(privateKey: Fr): Promise<Point>;
|
|
18
|
-
schnorrNegatePublicKey(publicKeyBuffer: Point): Promise<Point>;
|
|
19
|
-
schnorrConstructSignature(message: Uint8Array, privateKey: Fr): Promise<[Buffer32, Buffer32]>;
|
|
20
|
-
schnorrVerifySignature(message: Uint8Array, pubKey: Point, sigS: Buffer32, sigE: Buffer32): Promise<boolean>;
|
|
21
|
-
schnorrMultisigCreateMultisigPublicKey(privateKey: Fq): Promise<Buffer128>;
|
|
22
|
-
schnorrMultisigValidateAndCombineSignerPubkeys(signerPubkeyBuf: Buffer128[]): Promise<[Point, boolean]>;
|
|
23
|
-
schnorrMultisigConstructSignatureRound1(): Promise<[Buffer128, Buffer128]>;
|
|
24
|
-
schnorrMultisigConstructSignatureRound2(message: Uint8Array, privateKey: Fq, signerRoundOnePrivateBuf: Buffer128, signerPubkeysBuf: Buffer128[], roundOnePublicBuf: Buffer128[]): Promise<[Fq, boolean]>;
|
|
25
|
-
schnorrMultisigCombineSignatures(message: Uint8Array, signerPubkeysBuf: Buffer128[], roundOneBuf: Buffer128[], roundTwoBuf: Fq[]): Promise<[Buffer32, Buffer32, boolean]>;
|
|
26
|
-
aesEncryptBufferCbc(input: Uint8Array, iv: Uint8Array, key: Uint8Array, length: number): Promise<Uint8Array>;
|
|
27
|
-
aesDecryptBufferCbc(input: Uint8Array, iv: Uint8Array, key: Uint8Array, length: number): Promise<Uint8Array>;
|
|
28
|
-
srsInitSrs(pointsBuf: Uint8Array, numPoints: number, g2PointBuf: Uint8Array): Promise<void>;
|
|
29
|
-
srsInitGrumpkinSrs(pointsBuf: Uint8Array, numPoints: number): Promise<void>;
|
|
30
|
-
examplesSimpleCreateAndVerifyProof(): Promise<boolean>;
|
|
31
|
-
testThreads(threads: number, iterations: number): Promise<number>;
|
|
32
|
-
commonInitSlabAllocator(circuitSize: number): Promise<void>;
|
|
33
|
-
acirGetCircuitSizes(constraintSystemBuf: Uint8Array, recursive: boolean, honkRecursion: boolean): Promise<[number, number]>;
|
|
34
|
-
acirGatesAztecClient(acirVec: Uint8Array[]): Promise<number[]>;
|
|
35
|
-
acirNewAcirComposer(sizeHint: number): Promise<Ptr>;
|
|
36
|
-
acirDeleteAcirComposer(acirComposerPtr: Ptr): Promise<void>;
|
|
37
|
-
acirInitProvingKey(acirComposerPtr: Ptr, constraintSystemBuf: Uint8Array, recursive: boolean): Promise<void>;
|
|
38
|
-
acirCreateProof(acirComposerPtr: Ptr, constraintSystemBuf: Uint8Array, recursive: boolean, witnessBuf: Uint8Array): Promise<Uint8Array>;
|
|
39
|
-
acirProveAndVerifyUltraHonk(constraintSystemBuf: Uint8Array, witnessBuf: Uint8Array): Promise<boolean>;
|
|
40
|
-
acirProveAndVerifyMegaHonk(constraintSystemBuf: Uint8Array, witnessBuf: Uint8Array): Promise<boolean>;
|
|
41
|
-
acirLoadVerificationKey(acirComposerPtr: Ptr, vkBuf: Uint8Array): Promise<void>;
|
|
42
|
-
acirInitVerificationKey(acirComposerPtr: Ptr): Promise<void>;
|
|
43
|
-
acirGetVerificationKey(acirComposerPtr: Ptr): Promise<Uint8Array>;
|
|
44
|
-
acirGetProvingKey(acirComposerPtr: Ptr, acirVec: Uint8Array, recursive: boolean): Promise<Uint8Array>;
|
|
45
|
-
acirVerifyProof(acirComposerPtr: Ptr, proofBuf: Uint8Array): Promise<boolean>;
|
|
46
|
-
acirGetSolidityVerifier(acirComposerPtr: Ptr): Promise<string>;
|
|
47
|
-
acirSerializeProofIntoFields(acirComposerPtr: Ptr, proofBuf: Uint8Array, numInnerPublicInputs: number): Promise<Fr[]>;
|
|
48
|
-
acirSerializeVerificationKeyIntoFields(acirComposerPtr: Ptr): Promise<[Fr[], Fr]>;
|
|
49
|
-
acirProveAndVerifyAztecClient(acirVec: Uint8Array[], witnessVec: Uint8Array[]): Promise<boolean>;
|
|
50
|
-
acirProveAztecClient(acirVec: Uint8Array[], witnessVec: Uint8Array[]): Promise<[Uint8Array, Uint8Array]>;
|
|
51
|
-
acirVerifyAztecClient(proofBuf: Uint8Array, vkBuf: Uint8Array): Promise<boolean>;
|
|
52
|
-
acirProveUltraHonk(acirVec: Uint8Array, witnessVec: Uint8Array): Promise<Uint8Array>;
|
|
53
|
-
acirProveUltraKeccakHonk(acirVec: Uint8Array, witnessVec: Uint8Array): Promise<Uint8Array>;
|
|
54
|
-
acirVerifyUltraHonk(proofBuf: Uint8Array, vkBuf: Uint8Array): Promise<boolean>;
|
|
55
|
-
acirVerifyUltraKeccakHonk(proofBuf: Uint8Array, vkBuf: Uint8Array): Promise<boolean>;
|
|
56
|
-
acirWriteVkUltraHonk(acirVec: Uint8Array): Promise<Uint8Array>;
|
|
57
|
-
acirWriteVkUltraKeccakHonk(acirVec: Uint8Array): Promise<Uint8Array>;
|
|
58
|
-
acirHonkSolidityVerifier(acirVec: Uint8Array, vkBuf: Uint8Array): Promise<string>;
|
|
59
|
-
acirProofAsFieldsUltraHonk(proofBuf: Uint8Array): Promise<Fr[]>;
|
|
60
|
-
acirVkAsFieldsUltraHonk(vkBuf: Uint8Array): Promise<Fr[]>;
|
|
61
|
-
acirVkAsFieldsMegaHonk(vkBuf: Uint8Array): Promise<Fr[]>;
|
|
62
|
-
}
|
|
63
|
-
export declare class BarretenbergApiSync {
|
|
64
|
-
protected wasm: BarretenbergWasm;
|
|
65
|
-
constructor(wasm: BarretenbergWasm);
|
|
66
|
-
pedersenCommit(inputsBuffer: Fr[], ctxIndex: number): Point;
|
|
67
|
-
pedersenHash(inputsBuffer: Fr[], hashIndex: number): Fr;
|
|
68
|
-
pedersenHashes(inputsBuffer: Fr[], hashIndex: number): Fr;
|
|
69
|
-
pedersenHashBuffer(inputBuffer: Uint8Array, hashIndex: number): Fr;
|
|
70
|
-
poseidon2Hash(inputsBuffer: Fr[]): Fr;
|
|
71
|
-
poseidon2HashAccumulate(inputsBuffer: Fr[]): Fr;
|
|
72
|
-
poseidon2Hashes(inputsBuffer: Fr[]): Fr;
|
|
73
|
-
poseidon2Permutation(inputsBuffer: Fr[]): Fr[];
|
|
74
|
-
blake2s(data: Uint8Array): Buffer32;
|
|
75
|
-
blake2sToField(data: Uint8Array): Fr;
|
|
76
|
-
schnorrComputePublicKey(privateKey: Fr): Point;
|
|
77
|
-
schnorrNegatePublicKey(publicKeyBuffer: Point): Point;
|
|
78
|
-
schnorrConstructSignature(message: Uint8Array, privateKey: Fr): [Buffer32, Buffer32];
|
|
79
|
-
schnorrVerifySignature(message: Uint8Array, pubKey: Point, sigS: Buffer32, sigE: Buffer32): boolean;
|
|
80
|
-
schnorrMultisigCreateMultisigPublicKey(privateKey: Fq): Buffer128;
|
|
81
|
-
schnorrMultisigValidateAndCombineSignerPubkeys(signerPubkeyBuf: Buffer128[]): [Point, boolean];
|
|
82
|
-
schnorrMultisigConstructSignatureRound1(): [Buffer128, Buffer128];
|
|
83
|
-
schnorrMultisigConstructSignatureRound2(message: Uint8Array, privateKey: Fq, signerRoundOnePrivateBuf: Buffer128, signerPubkeysBuf: Buffer128[], roundOnePublicBuf: Buffer128[]): [Fq, boolean];
|
|
84
|
-
schnorrMultisigCombineSignatures(message: Uint8Array, signerPubkeysBuf: Buffer128[], roundOneBuf: Buffer128[], roundTwoBuf: Fq[]): [Buffer32, Buffer32, boolean];
|
|
85
|
-
aesEncryptBufferCbc(input: Uint8Array, iv: Uint8Array, key: Uint8Array, length: number): Uint8Array;
|
|
86
|
-
aesDecryptBufferCbc(input: Uint8Array, iv: Uint8Array, key: Uint8Array, length: number): Uint8Array;
|
|
87
|
-
srsInitSrs(pointsBuf: Uint8Array, numPoints: number, g2PointBuf: Uint8Array): void;
|
|
88
|
-
srsInitGrumpkinSrs(pointsBuf: Uint8Array, numPoints: number): void;
|
|
89
|
-
examplesSimpleCreateAndVerifyProof(): boolean;
|
|
90
|
-
testThreads(threads: number, iterations: number): number;
|
|
91
|
-
commonInitSlabAllocator(circuitSize: number): void;
|
|
92
|
-
acirGetCircuitSizes(constraintSystemBuf: Uint8Array, recursive: boolean, honkRecursion: boolean): [number, number, number];
|
|
93
|
-
acirNewAcirComposer(sizeHint: number): Ptr;
|
|
94
|
-
acirDeleteAcirComposer(acirComposerPtr: Ptr): void;
|
|
95
|
-
acirInitProvingKey(acirComposerPtr: Ptr, constraintSystemBuf: Uint8Array, recursive: boolean): void;
|
|
96
|
-
acirCreateProof(acirComposerPtr: Ptr, constraintSystemBuf: Uint8Array, recursive: boolean, witnessBuf: Uint8Array): Uint8Array;
|
|
97
|
-
acirProveAndVerifyUltraHonk(constraintSystemBuf: Uint8Array, witnessBuf: Uint8Array): boolean;
|
|
98
|
-
acirProveAndVerifyMegaHonk(constraintSystemBuf: Uint8Array, witnessBuf: Uint8Array): boolean;
|
|
99
|
-
acirLoadVerificationKey(acirComposerPtr: Ptr, vkBuf: Uint8Array): void;
|
|
100
|
-
acirInitVerificationKey(acirComposerPtr: Ptr): void;
|
|
101
|
-
acirGetVerificationKey(acirComposerPtr: Ptr): Uint8Array;
|
|
102
|
-
acirGetProvingKey(acirComposerPtr: Ptr, acirVec: Uint8Array, recursive: boolean): Uint8Array;
|
|
103
|
-
acirVerifyProof(acirComposerPtr: Ptr, proofBuf: Uint8Array): boolean;
|
|
104
|
-
acirGetSolidityVerifier(acirComposerPtr: Ptr): string;
|
|
105
|
-
acirSerializeProofIntoFields(acirComposerPtr: Ptr, proofBuf: Uint8Array, numInnerPublicInputs: number): Fr[];
|
|
106
|
-
acirSerializeVerificationKeyIntoFields(acirComposerPtr: Ptr): [Fr[], Fr];
|
|
107
|
-
acirProveUltraHonk(acirVec: Uint8Array, witnessVec: Uint8Array): Uint8Array;
|
|
108
|
-
acirVerifyUltraHonk(proofBuf: Uint8Array, vkBuf: Uint8Array): boolean;
|
|
109
|
-
acirWriteVkUltraHonk(acirVec: Uint8Array): Uint8Array;
|
|
110
|
-
acirProofAsFieldsUltraHonk(proofBuf: Uint8Array): Fr[];
|
|
111
|
-
acirVkAsFieldsUltraHonk(vkBuf: Uint8Array): Fr[];
|
|
112
|
-
acirVkAsFieldsMegaHonk(vkBuf: Uint8Array): Fr[];
|
|
113
|
-
}
|
|
114
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/barretenberg_api/index.ts"],"names":[],"mappings":"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"}
|