@aztec/bb.js 0.0.1-alpha.7 → 0.0.1-fake-ceab37513c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +69 -32
- package/package.json +56 -45
- package/src/barretenberg/__snapshots__/pedersen.test.ts.snap +156 -0
- package/src/barretenberg/__snapshots__/poseidon.test.ts.snap +40 -0
- package/src/barretenberg/backend.ts +378 -0
- package/src/barretenberg/blake2s.test.ts +70 -0
- package/src/{barretenberg_api → barretenberg}/common.test.ts +7 -5
- package/src/barretenberg/index.ts +204 -0
- package/src/barretenberg/pedersen.test.ts +62 -0
- package/src/barretenberg/poseidon.test.ts +39 -0
- package/src/barretenberg_api/index.ts +982 -415
- package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +138 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.ts +11 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.ts +13 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts +21 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.ts +19 -0
- package/src/{barretenberg_binder/heap_allocator_sync.ts → barretenberg_wasm/barretenberg_wasm_main/heap_allocator.ts} +20 -17
- package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +167 -0
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.ts +11 -0
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.ts +13 -0
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts +21 -0
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.ts +19 -0
- package/src/barretenberg_wasm/barretenberg_wasm_thread/index.ts +47 -0
- package/src/barretenberg_wasm/fetch_code/browser/barretenberg-threads.ts +3 -0
- package/src/barretenberg_wasm/fetch_code/browser/barretenberg.ts +3 -0
- package/src/barretenberg_wasm/fetch_code/browser/index.ts +34 -0
- package/src/barretenberg_wasm/fetch_code/index.ts +1 -0
- package/src/barretenberg_wasm/fetch_code/node/index.ts +34 -0
- package/src/barretenberg_wasm/fetch_code/wasm-module.d.ts +4 -0
- package/src/barretenberg_wasm/helpers/browser/index.ts +47 -0
- package/src/barretenberg_wasm/helpers/index.ts +1 -0
- package/src/barretenberg_wasm/{node → helpers/node}/index.ts +24 -15
- package/src/barretenberg_wasm/index.test.ts +45 -0
- package/src/barretenberg_wasm/index.ts +22 -1
- package/src/benchmark/index.ts +26 -0
- package/src/benchmark/timer.ts +45 -0
- package/src/bigint-array/index.ts +39 -17
- package/src/bindgen/index.ts +2 -2
- package/src/bindgen/mappings.ts +3 -2
- package/src/bindgen/typescript.ts +50 -25
- package/src/cbind/README.md +1 -0
- package/src/cbind/generate.ts +89 -0
- package/src/cbind/schema_compiler.ts +833 -0
- package/src/crs/browser/cached_net_crs.ts +41 -1
- package/src/crs/browser/index.ts +1 -1
- package/src/crs/index.ts +1 -1
- package/src/crs/net_crs.ts +114 -19
- package/src/crs/node/index.ts +96 -26
- package/src/index.html +1 -1
- package/src/index.ts +13 -5
- package/src/log/browser/index.ts +35 -0
- package/src/log/index.ts +1 -0
- package/src/log/node/index.ts +52 -0
- package/src/log/types.ts +6 -0
- package/src/main.ts +391 -168
- package/src/proof/index.ts +94 -0
- package/src/random/browser/index.ts +1 -1
- package/src/retry/index.ts +50 -0
- package/src/serialize/buffer_reader.ts +4 -1
- package/src/types/fields.ts +46 -18
- package/src/types/point.ts +4 -1
- package/dest/async_map/index.d.ts +0 -10
- package/dest/async_map/index.d.ts.map +0 -1
- package/dest/async_map/index.js +0 -16
- package/dest/barretenberg-threads.wasm +0 -0
- package/dest/barretenberg.wasm +0 -0
- package/dest/barretenberg_api/blake2s.test.d.ts +0 -2
- package/dest/barretenberg_api/blake2s.test.d.ts.map +0 -1
- package/dest/barretenberg_api/blake2s.test.js +0 -30
- package/dest/barretenberg_api/common.test.d.ts +0 -2
- package/dest/barretenberg_api/common.test.d.ts.map +0 -1
- package/dest/barretenberg_api/common.test.js +0 -18
- package/dest/barretenberg_api/index.d.ts +0 -103
- package/dest/barretenberg_api/index.d.ts.map +0 -1
- package/dest/barretenberg_api/index.js +0 -379
- package/dest/barretenberg_api/pedersen.test.d.ts +0 -2
- package/dest/barretenberg_api/pedersen.test.d.ts.map +0 -1
- package/dest/barretenberg_api/pedersen.test.js +0 -69
- package/dest/barretenberg_api/schnorr.test.d.ts +0 -2
- package/dest/barretenberg_api/schnorr.test.d.ts.map +0 -1
- package/dest/barretenberg_api/schnorr.test.js +0 -113
- package/dest/barretenberg_binder/heap_allocator.d.ts +0 -22
- package/dest/barretenberg_binder/heap_allocator.d.ts.map +0 -1
- package/dest/barretenberg_binder/heap_allocator.js +0 -59
- package/dest/barretenberg_binder/heap_allocator_sync.d.ts +0 -22
- package/dest/barretenberg_binder/heap_allocator_sync.d.ts.map +0 -1
- package/dest/barretenberg_binder/heap_allocator_sync.js +0 -58
- package/dest/barretenberg_binder/index.d.ts +0 -32
- package/dest/barretenberg_binder/index.d.ts.map +0 -1
- package/dest/barretenberg_binder/index.js +0 -73
- package/dest/barretenberg_wasm/barretenberg_wasm.d.ts +0 -50
- package/dest/barretenberg_wasm/barretenberg_wasm.d.ts.map +0 -1
- package/dest/barretenberg_wasm/barretenberg_wasm.js +0 -212
- package/dest/barretenberg_wasm/barretenberg_wasm.test.d.ts +0 -2
- package/dest/barretenberg_wasm/barretenberg_wasm.test.d.ts.map +0 -1
- package/dest/barretenberg_wasm/barretenberg_wasm.test.js +0 -43
- package/dest/barretenberg_wasm/browser/index.d.ts +0 -8
- package/dest/barretenberg_wasm/browser/index.d.ts.map +0 -1
- package/dest/barretenberg_wasm/browser/index.js +0 -26
- package/dest/barretenberg_wasm/browser/worker.d.ts +0 -2
- package/dest/barretenberg_wasm/browser/worker.d.ts.map +0 -1
- package/dest/barretenberg_wasm/browser/worker.js +0 -11
- package/dest/barretenberg_wasm/index.d.ts +0 -2
- package/dest/barretenberg_wasm/index.d.ts.map +0 -1
- package/dest/barretenberg_wasm/index.js +0 -2
- package/dest/barretenberg_wasm/node/index.d.ts +0 -17
- package/dest/barretenberg_wasm/node/index.d.ts.map +0 -1
- package/dest/barretenberg_wasm/node/index.js +0 -40
- package/dest/barretenberg_wasm/node/node_endpoint.d.ts +0 -8
- package/dest/barretenberg_wasm/node/node_endpoint.d.ts.map +0 -1
- package/dest/barretenberg_wasm/node/node_endpoint.js +0 -28
- package/dest/barretenberg_wasm/node/worker.d.ts +0 -2
- package/dest/barretenberg_wasm/node/worker.d.ts.map +0 -1
- package/dest/barretenberg_wasm/node/worker.js +0 -9
- package/dest/barretenberg_wasm.js +0 -2
- package/dest/barretenberg_wasm.js.LICENSE.txt +0 -5
- package/dest/bigint-array/index.d.ts +0 -3
- package/dest/bigint-array/index.d.ts.map +0 -1
- package/dest/bigint-array/index.js +0 -21
- package/dest/bindgen/function_declaration.d.ts +0 -11
- package/dest/bindgen/function_declaration.d.ts.map +0 -1
- package/dest/bindgen/function_declaration.js +0 -2
- package/dest/bindgen/index.d.ts +0 -2
- package/dest/bindgen/index.d.ts.map +0 -1
- package/dest/bindgen/index.js +0 -15
- package/dest/bindgen/mappings.d.ts +0 -4
- package/dest/bindgen/mappings.d.ts.map +0 -1
- package/dest/bindgen/mappings.js +0 -63
- package/dest/bindgen/rust.d.ts +0 -2
- package/dest/bindgen/rust.d.ts.map +0 -1
- package/dest/bindgen/rust.js +0 -43
- package/dest/bindgen/to_camel_case.d.ts +0 -2
- package/dest/bindgen/to_camel_case.d.ts.map +0 -1
- package/dest/bindgen/to_camel_case.js +0 -11
- package/dest/bindgen/typescript.d.ts +0 -2
- package/dest/bindgen/typescript.d.ts.map +0 -1
- package/dest/bindgen/typescript.js +0 -80
- package/dest/crs/browser/cached_net_crs.d.ts +0 -25
- package/dest/crs/browser/cached_net_crs.d.ts.map +0 -1
- package/dest/crs/browser/cached_net_crs.js +0 -54
- package/dest/crs/browser/index.d.ts +0 -2
- package/dest/crs/browser/index.d.ts.map +0 -1
- package/dest/crs/browser/index.js +0 -2
- package/dest/crs/index.d.ts +0 -2
- package/dest/crs/index.d.ts.map +0 -1
- package/dest/crs/index.js +0 -2
- package/dest/crs/net_crs.d.ts +0 -36
- package/dest/crs/net_crs.d.ts.map +0 -1
- package/dest/crs/net_crs.js +0 -59
- package/dest/crs/node/ignition_files_crs.d.ts +0 -37
- package/dest/crs/node/ignition_files_crs.d.ts.map +0 -1
- package/dest/crs/node/ignition_files_crs.js +0 -51
- package/dest/crs/node/index.d.ts +0 -21
- package/dest/crs/node/index.d.ts.map +0 -1
- package/dest/crs/node/index.js +0 -54
- package/dest/examples/simple.rawtest.d.ts +0 -2
- package/dest/examples/simple.rawtest.d.ts.map +0 -1
- package/dest/examples/simple.rawtest.js +0 -29
- package/dest/examples/simple.test.d.ts +0 -2
- package/dest/examples/simple.test.d.ts.map +0 -1
- package/dest/examples/simple.test.js +0 -22
- package/dest/factory/index.d.ts +0 -21
- package/dest/factory/index.d.ts.map +0 -1
- package/dest/factory/index.js +0 -34
- package/dest/index.d.ts +0 -6
- package/dest/index.d.ts.map +0 -1
- package/dest/index.html +0 -1
- package/dest/index.js +0 -6
- package/dest/main.d.ts +0 -10
- package/dest/main.d.ts.map +0 -1
- package/dest/main.js +0 -275
- package/dest/random/browser/index.d.ts +0 -2
- package/dest/random/browser/index.d.ts.map +0 -1
- package/dest/random/browser/index.js +0 -31
- package/dest/random/index.d.ts +0 -2
- package/dest/random/index.d.ts.map +0 -1
- package/dest/random/index.js +0 -2
- package/dest/random/node/index.d.ts +0 -2
- package/dest/random/node/index.d.ts.map +0 -1
- package/dest/random/node/index.js +0 -5
- package/dest/serialize/buffer_reader.d.ts +0 -28
- package/dest/serialize/buffer_reader.d.ts.map +0 -1
- package/dest/serialize/buffer_reader.js +0 -66
- package/dest/serialize/index.d.ts +0 -4
- package/dest/serialize/index.d.ts.map +0 -1
- package/dest/serialize/index.js +0 -4
- package/dest/serialize/output_type.d.ts +0 -11
- package/dest/serialize/output_type.d.ts.map +0 -1
- package/dest/serialize/output_type.js +0 -44
- package/dest/serialize/serialize.d.ts +0 -53
- package/dest/serialize/serialize.d.ts.map +0 -1
- package/dest/serialize/serialize.js +0 -139
- package/dest/simple_test.js +0 -2
- package/dest/simple_test.js.LICENSE.txt +0 -14
- package/dest/types/fields.d.ts +0 -33
- package/dest/types/fields.d.ts.map +0 -1
- package/dest/types/fields.js +0 -86
- package/dest/types/fixed_size_buffer.d.ts +0 -26
- package/dest/types/fixed_size_buffer.d.ts.map +0 -1
- package/dest/types/fixed_size_buffer.js +0 -54
- package/dest/types/index.d.ts +0 -6
- package/dest/types/index.d.ts.map +0 -1
- package/dest/types/index.js +0 -6
- package/dest/types/point.d.ts +0 -17
- package/dest/types/point.d.ts.map +0 -1
- package/dest/types/point.js +0 -32
- package/dest/types/ptr.d.ts +0 -13
- package/dest/types/ptr.d.ts.map +0 -1
- package/dest/types/ptr.js +0 -20
- package/dest/types/raw_buffer.d.ts +0 -3
- package/dest/types/raw_buffer.d.ts.map +0 -1
- package/dest/types/raw_buffer.js +0 -5
- package/src/barretenberg_api/blake2s.test.ts +0 -39
- package/src/barretenberg_api/pedersen.test.ts +0 -84
- package/src/barretenberg_api/schnorr.test.ts +0 -169
- package/src/barretenberg_binder/heap_allocator.ts +0 -62
- package/src/barretenberg_binder/index.ts +0 -76
- package/src/barretenberg_wasm/barretenberg_wasm.test.ts +0 -52
- package/src/barretenberg_wasm/barretenberg_wasm.ts +0 -246
- package/src/barretenberg_wasm/browser/index.ts +0 -32
- package/src/barretenberg_wasm/browser/worker.ts +0 -13
- package/src/barretenberg_wasm/node/worker.ts +0 -10
- package/src/crs/node/ignition_files_crs.ts +0 -60
- package/src/examples/simple.rawtest.ts +0 -37
- package/src/examples/simple.test.ts +0 -27
- package/src/factory/index.ts +0 -36
- /package/src/barretenberg_wasm/{node → helpers/node}/node_endpoint.ts +0 -0
|
@@ -0,0 +1,94 @@
|
|
|
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
|
+
|
|
12
|
+
export const PAIRING_POINTS_SIZE = 16;
|
|
13
|
+
|
|
14
|
+
// Fields are 32 bytes
|
|
15
|
+
const fieldByteSize = 32;
|
|
16
|
+
|
|
17
|
+
export function splitHonkProof(
|
|
18
|
+
proofWithPublicInputs: Uint8Array,
|
|
19
|
+
numPublicInputs: number,
|
|
20
|
+
): { publicInputs: Uint8Array; proof: Uint8Array } {
|
|
21
|
+
const publicInputs = proofWithPublicInputs.slice(0, numPublicInputs * fieldByteSize);
|
|
22
|
+
const proof = proofWithPublicInputs.slice(numPublicInputs * fieldByteSize);
|
|
23
|
+
|
|
24
|
+
return {
|
|
25
|
+
proof,
|
|
26
|
+
publicInputs,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function reconstructHonkProof(publicInputs: Uint8Array, proof: Uint8Array): Uint8Array {
|
|
31
|
+
const proofWithPublicInputs = Uint8Array.from([...publicInputs, ...proof]);
|
|
32
|
+
return proofWithPublicInputs;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export function deflattenFields(flattenedFields: Uint8Array): string[] {
|
|
36
|
+
const publicInputSize = 32;
|
|
37
|
+
const chunkedFlattenedPublicInputs: Uint8Array[] = [];
|
|
38
|
+
|
|
39
|
+
for (let i = 0; i < flattenedFields.length; i += publicInputSize) {
|
|
40
|
+
const publicInput = flattenedFields.slice(i, i + publicInputSize);
|
|
41
|
+
chunkedFlattenedPublicInputs.push(publicInput);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return chunkedFlattenedPublicInputs.map(uint8ArrayToHex);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export function flattenFieldsAsArray(fields: string[]): Uint8Array {
|
|
48
|
+
const flattenedPublicInputs = fields.map(hexToUint8Array);
|
|
49
|
+
return flattenUint8Arrays(flattenedPublicInputs);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function flattenUint8Arrays(arrays: Uint8Array[]): Uint8Array {
|
|
53
|
+
const totalLength = arrays.reduce((acc, val) => acc + val.length, 0);
|
|
54
|
+
const result = new Uint8Array(totalLength);
|
|
55
|
+
|
|
56
|
+
let offset = 0;
|
|
57
|
+
for (const arr of arrays) {
|
|
58
|
+
result.set(arr, offset);
|
|
59
|
+
offset += arr.length;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return result;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export function uint8ArrayToHex(buffer: Uint8Array): string {
|
|
66
|
+
const hex: string[] = [];
|
|
67
|
+
|
|
68
|
+
buffer.forEach(function (i) {
|
|
69
|
+
let h = i.toString(16);
|
|
70
|
+
if (h.length % 2) {
|
|
71
|
+
h = '0' + h;
|
|
72
|
+
}
|
|
73
|
+
hex.push(h);
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
return '0x' + hex.join('');
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export function hexToUint8Array(hex: string): Uint8Array {
|
|
80
|
+
const sanitizedHex = BigInt(hex).toString(16).padStart(64, '0');
|
|
81
|
+
|
|
82
|
+
const len = sanitizedHex.length / 2;
|
|
83
|
+
const u8 = new Uint8Array(len);
|
|
84
|
+
|
|
85
|
+
let i = 0;
|
|
86
|
+
let j = 0;
|
|
87
|
+
while (i < len) {
|
|
88
|
+
u8[i] = parseInt(sanitizedHex.slice(j, j + 2), 16);
|
|
89
|
+
i += 1;
|
|
90
|
+
j += 2;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
return u8;
|
|
94
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export const randomBytes = (len: number) => {
|
|
2
2
|
const getWebCrypto = () => {
|
|
3
3
|
if (typeof window !== 'undefined' && window.crypto) return window.crypto;
|
|
4
|
-
if (typeof
|
|
4
|
+
if (typeof globalThis !== 'undefined' && globalThis.crypto) return globalThis.crypto;
|
|
5
5
|
return undefined;
|
|
6
6
|
};
|
|
7
7
|
|
|
@@ -0,0 +1,50 @@
|
|
|
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 function* backoffGenerator() {
|
|
10
|
+
const v = [1, 1, 1, 2, 4, 8, 16, 32, 64];
|
|
11
|
+
let i = 0;
|
|
12
|
+
while (true) {
|
|
13
|
+
yield v[Math.min(i++, v.length - 1)];
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Generates a backoff sequence based on the array of retry intervals to use with the `retry` function.
|
|
19
|
+
* @param retries - Intervals to retry (in seconds).
|
|
20
|
+
* @returns A generator sequence.
|
|
21
|
+
*/
|
|
22
|
+
export function* makeBackoff(retries: number[]) {
|
|
23
|
+
for (const retry of retries) {
|
|
24
|
+
yield retry;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Retry a given asynchronous function with a specific backoff strategy, until it succeeds or backoff generator ends.
|
|
30
|
+
* It logs the error and retry interval in case an error is caught. The function can be named for better log output.
|
|
31
|
+
*
|
|
32
|
+
* @param fn - The asynchronous function to be retried.
|
|
33
|
+
* @param backoff - The optional backoff generator providing the intervals in seconds between retries. Defaults to a predefined series.
|
|
34
|
+
* @returns A Promise that resolves with the successful result of the provided function, or rejects if backoff generator ends.
|
|
35
|
+
* @throws If `NoRetryError` is thrown by the `fn`, it is rethrown.
|
|
36
|
+
*/
|
|
37
|
+
export async function retry<Result>(fn: () => Promise<Result>, backoff = backoffGenerator()) {
|
|
38
|
+
while (true) {
|
|
39
|
+
try {
|
|
40
|
+
return await fn();
|
|
41
|
+
} catch (err: any) {
|
|
42
|
+
const s = backoff.next().value;
|
|
43
|
+
if (s === undefined) {
|
|
44
|
+
throw err;
|
|
45
|
+
}
|
|
46
|
+
await new Promise(resolve => setTimeout(resolve, s * 1000));
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
package/src/types/fields.ts
CHANGED
|
@@ -1,32 +1,55 @@
|
|
|
1
1
|
import { randomBytes } from '../random/index.js';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
buffer32BytesToBigIntBE,
|
|
4
|
+
uint8ArrayToBigIntBE,
|
|
5
|
+
bigIntToBufferBE,
|
|
6
|
+
bigIntToUint8ArrayBE,
|
|
7
|
+
} from '../bigint-array/index.js';
|
|
3
8
|
import { BufferReader, uint8ArrayToHexString } from '../serialize/index.js';
|
|
4
9
|
|
|
10
|
+
// TODO(#4189): Replace with implementation in yarn-project/foundation/src/fields/fields.ts
|
|
11
|
+
/**
|
|
12
|
+
* Fr field class.
|
|
13
|
+
* @dev This class is used to represent elements of BN254 scalar field or elements in the base field of Grumpkin.
|
|
14
|
+
* (Grumpkin's scalar field corresponds to BN254's base field and vice versa.)
|
|
15
|
+
*/
|
|
5
16
|
export class Fr {
|
|
6
17
|
static ZERO = new Fr(0n);
|
|
7
18
|
static MODULUS = 0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001n;
|
|
8
19
|
static MAX_VALUE = this.MODULUS - 1n;
|
|
9
20
|
static SIZE_IN_BYTES = 32;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
21
|
+
value: Uint8Array;
|
|
22
|
+
|
|
23
|
+
constructor(value: Uint8Array | Buffer | bigint) {
|
|
24
|
+
// We convert buffer value to bigint to be able to check it fits within modulus
|
|
25
|
+
const valueBigInt =
|
|
26
|
+
typeof value === 'bigint'
|
|
27
|
+
? value
|
|
28
|
+
: value instanceof Buffer
|
|
29
|
+
? buffer32BytesToBigIntBE(value)
|
|
30
|
+
: uint8ArrayToBigIntBE(value);
|
|
31
|
+
|
|
32
|
+
if (valueBigInt > Fr.MAX_VALUE) {
|
|
33
|
+
throw new Error(`Value 0x${valueBigInt.toString(16)} is greater or equal to field modulus.`);
|
|
14
34
|
}
|
|
35
|
+
|
|
36
|
+
this.value =
|
|
37
|
+
typeof value === 'bigint' ? bigIntToUint8ArrayBE(value) : value instanceof Buffer ? new Uint8Array(value) : value;
|
|
15
38
|
}
|
|
16
39
|
|
|
17
40
|
static random() {
|
|
18
|
-
const r =
|
|
41
|
+
const r = uint8ArrayToBigIntBE(randomBytes(64)) % Fr.MODULUS;
|
|
19
42
|
return new this(r);
|
|
20
43
|
}
|
|
21
44
|
|
|
22
|
-
static fromBuffer(buffer: Uint8Array | BufferReader) {
|
|
45
|
+
static fromBuffer(buffer: Uint8Array | Buffer | BufferReader) {
|
|
23
46
|
const reader = BufferReader.asReader(buffer);
|
|
24
|
-
return new this(
|
|
47
|
+
return new this(reader.readBytes(this.SIZE_IN_BYTES));
|
|
25
48
|
}
|
|
26
49
|
|
|
27
50
|
static fromBufferReduce(buffer: Uint8Array | BufferReader) {
|
|
28
51
|
const reader = BufferReader.asReader(buffer);
|
|
29
|
-
return new this(
|
|
52
|
+
return new this(uint8ArrayToBigIntBE(reader.readBytes(this.SIZE_IN_BYTES)) % Fr.MODULUS);
|
|
30
53
|
}
|
|
31
54
|
|
|
32
55
|
static fromString(str: string) {
|
|
@@ -34,7 +57,7 @@ export class Fr {
|
|
|
34
57
|
}
|
|
35
58
|
|
|
36
59
|
toBuffer() {
|
|
37
|
-
return
|
|
60
|
+
return this.value;
|
|
38
61
|
}
|
|
39
62
|
|
|
40
63
|
toString() {
|
|
@@ -42,14 +65,19 @@ export class Fr {
|
|
|
42
65
|
}
|
|
43
66
|
|
|
44
67
|
equals(rhs: Fr) {
|
|
45
|
-
return this.value === rhs.value;
|
|
68
|
+
return this.value.every((v, i) => v === rhs.value[i]);
|
|
46
69
|
}
|
|
47
70
|
|
|
48
71
|
isZero() {
|
|
49
|
-
return this.value ===
|
|
72
|
+
return this.value.every(v => v === 0);
|
|
50
73
|
}
|
|
51
74
|
}
|
|
52
75
|
|
|
76
|
+
/**
|
|
77
|
+
* Fq field class.
|
|
78
|
+
* @dev This class is used to represent elements of BN254 base field or elements in the scalar field of Grumpkin.
|
|
79
|
+
* (Grumpkin's scalar field corresponds to BN254's base field and vice versa.)
|
|
80
|
+
*/
|
|
53
81
|
export class Fq {
|
|
54
82
|
static MODULUS = 0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47n;
|
|
55
83
|
static MAX_VALUE = this.MODULUS - 1n;
|
|
@@ -62,18 +90,18 @@ export class Fq {
|
|
|
62
90
|
}
|
|
63
91
|
|
|
64
92
|
static random() {
|
|
65
|
-
const r =
|
|
93
|
+
const r = uint8ArrayToBigIntBE(randomBytes(64)) % Fq.MODULUS;
|
|
66
94
|
return new this(r);
|
|
67
95
|
}
|
|
68
96
|
|
|
69
|
-
static fromBuffer(buffer: Uint8Array | BufferReader) {
|
|
97
|
+
static fromBuffer(buffer: Uint8Array | Buffer | BufferReader) {
|
|
70
98
|
const reader = BufferReader.asReader(buffer);
|
|
71
|
-
return new this(
|
|
99
|
+
return new this(uint8ArrayToBigIntBE(reader.readBytes(this.SIZE_IN_BYTES)));
|
|
72
100
|
}
|
|
73
101
|
|
|
74
|
-
static fromBufferReduce(buffer: Uint8Array | BufferReader) {
|
|
102
|
+
static fromBufferReduce(buffer: Uint8Array | Buffer | BufferReader) {
|
|
75
103
|
const reader = BufferReader.asReader(buffer);
|
|
76
|
-
return new this(
|
|
104
|
+
return new this(uint8ArrayToBigIntBE(reader.readBytes(this.SIZE_IN_BYTES)) % Fr.MODULUS);
|
|
77
105
|
}
|
|
78
106
|
|
|
79
107
|
static fromString(str: string) {
|
|
@@ -81,7 +109,7 @@ export class Fq {
|
|
|
81
109
|
}
|
|
82
110
|
|
|
83
111
|
toBuffer() {
|
|
84
|
-
return
|
|
112
|
+
return bigIntToBufferBE(this.value, Fq.SIZE_IN_BYTES);
|
|
85
113
|
}
|
|
86
114
|
|
|
87
115
|
toString() {
|
package/src/types/point.ts
CHANGED
|
@@ -5,7 +5,10 @@ export class Point {
|
|
|
5
5
|
static SIZE_IN_BYTES = 64;
|
|
6
6
|
static EMPTY = new Point(Fr.ZERO, Fr.ZERO);
|
|
7
7
|
|
|
8
|
-
constructor(
|
|
8
|
+
constructor(
|
|
9
|
+
public readonly x: Fr,
|
|
10
|
+
public readonly y: Fr,
|
|
11
|
+
) {}
|
|
9
12
|
|
|
10
13
|
static random() {
|
|
11
14
|
// TODO: This is not a point on the curve!
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Much the same as Array.map, only it takes an async fn as an element handler, and ensures that each element handler
|
|
3
|
-
* is executed sequentially.
|
|
4
|
-
* The pattern of `await Promise.all(arr.map(async e => { ... }))` only works if one's happy with each element handler
|
|
5
|
-
* being run concurrently.
|
|
6
|
-
* If one required sequential execution of async fn's, the only alternative was regular loops with mutable state vars.
|
|
7
|
-
* The equivalent with asyncMap: `await asyncMap(arr, async e => { ... })`.
|
|
8
|
-
*/
|
|
9
|
-
export declare function asyncMap<T, U>(arr: T[], fn: (e: T, i: number) => Promise<U>): Promise<U[]>;
|
|
10
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/async_map/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAMhG"}
|
package/dest/async_map/index.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Much the same as Array.map, only it takes an async fn as an element handler, and ensures that each element handler
|
|
3
|
-
* is executed sequentially.
|
|
4
|
-
* The pattern of `await Promise.all(arr.map(async e => { ... }))` only works if one's happy with each element handler
|
|
5
|
-
* being run concurrently.
|
|
6
|
-
* If one required sequential execution of async fn's, the only alternative was regular loops with mutable state vars.
|
|
7
|
-
* The equivalent with asyncMap: `await asyncMap(arr, async e => { ... })`.
|
|
8
|
-
*/
|
|
9
|
-
export async function asyncMap(arr, fn) {
|
|
10
|
-
const results = [];
|
|
11
|
-
for (let i = 0; i < arr.length; ++i) {
|
|
12
|
-
results.push(await fn(arr[i], i));
|
|
13
|
-
}
|
|
14
|
-
return results;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXN5bmNfbWFwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFFBQVEsQ0FBTyxHQUFRLEVBQUUsRUFBbUM7SUFDaEYsTUFBTSxPQUFPLEdBQVEsRUFBRSxDQUFDO0lBQ3hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1FBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDbkM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDIn0=
|
|
Binary file
|
package/dest/barretenberg.wasm
DELETED
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"blake2s.test.d.ts","sourceRoot":"","sources":["../../src/barretenberg_api/blake2s.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { newBarretenbergApiSync } from '../factory/index.js';
|
|
2
|
-
import { Buffer32, Fr } from '../types/index.js';
|
|
3
|
-
describe('blake2s', () => {
|
|
4
|
-
let api;
|
|
5
|
-
beforeAll(async () => {
|
|
6
|
-
api = await newBarretenbergApiSync();
|
|
7
|
-
});
|
|
8
|
-
afterAll(async () => {
|
|
9
|
-
await api.destroy();
|
|
10
|
-
});
|
|
11
|
-
it('blake2s', () => {
|
|
12
|
-
const input = Buffer.from('abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789');
|
|
13
|
-
const expected = Buffer32.fromBuffer(new Uint8Array([
|
|
14
|
-
0x44, 0xdd, 0xdb, 0x39, 0xbd, 0xb2, 0xaf, 0x80, 0xc1, 0x47, 0x89, 0x4c, 0x1d, 0x75, 0x6a, 0xda, 0x3d, 0x1c,
|
|
15
|
-
0x2a, 0xc2, 0xb1, 0x00, 0x54, 0x1e, 0x04, 0xfe, 0x87, 0xb4, 0xa5, 0x9e, 0x12, 0x43,
|
|
16
|
-
]));
|
|
17
|
-
const result = api.blake2s(input);
|
|
18
|
-
expect(result).toEqual(expected);
|
|
19
|
-
});
|
|
20
|
-
it('blake2sToField', () => {
|
|
21
|
-
const input = Buffer.from('abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789');
|
|
22
|
-
const expected = Fr.fromBufferReduce(new Uint8Array([
|
|
23
|
-
0x44, 0xdd, 0xdb, 0x39, 0xbd, 0xb2, 0xaf, 0x80, 0xc1, 0x47, 0x89, 0x4c, 0x1d, 0x75, 0x6a, 0xda, 0x3d, 0x1c,
|
|
24
|
-
0x2a, 0xc2, 0xb1, 0x00, 0x54, 0x1e, 0x04, 0xfe, 0x87, 0xb4, 0xa5, 0x9e, 0x12, 0x43,
|
|
25
|
-
]));
|
|
26
|
-
const result = api.blake2sToField(input);
|
|
27
|
-
expect(result).toEqual(expected);
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxha2Uycy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2JhcnJldGVuYmVyZ19hcGkvYmxha2Uycy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHakQsUUFBUSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7SUFDdkIsSUFBSSxHQUF3QixDQUFDO0lBRTdCLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNuQixHQUFHLEdBQUcsTUFBTSxzQkFBc0IsRUFBRSxDQUFDO0lBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ2xCLE1BQU0sR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7UUFDakIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQywwRUFBMEUsQ0FBQyxDQUFDO1FBQ3RHLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQ2xDLElBQUksVUFBVSxDQUFDO1lBQ2IsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQzFHLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1NBQ25GLENBQUMsQ0FDSCxDQUFDO1FBQ0YsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRTtRQUN4QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLDBFQUEwRSxDQUFDLENBQUM7UUFDdEcsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUNsQyxJQUFJLFVBQVUsQ0FBQztZQUNiLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUMxRyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtTQUNuRixDQUFDLENBQ0gsQ0FBQztRQUNGLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"common.test.d.ts","sourceRoot":"","sources":["../../src/barretenberg_api/common.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { newBarretenbergApiAsync } from '../factory/index.js';
|
|
2
|
-
describe('env', () => {
|
|
3
|
-
let api;
|
|
4
|
-
beforeAll(async () => {
|
|
5
|
-
api = await newBarretenbergApiAsync(3);
|
|
6
|
-
});
|
|
7
|
-
afterAll(async () => {
|
|
8
|
-
await api.destroy();
|
|
9
|
-
});
|
|
10
|
-
it('thread test', async () => {
|
|
11
|
-
// Main thread doesn't do anything in this test, so -1.
|
|
12
|
-
const threads = (await api.getNumThreads()) - 1;
|
|
13
|
-
const iterations = 100000;
|
|
14
|
-
const result = await api.testThreads(threads, iterations);
|
|
15
|
-
expect(result).toBe(iterations);
|
|
16
|
-
});
|
|
17
|
-
});
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmFycmV0ZW5iZXJnX2FwaS9jb21tb24udGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXdCLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFcEYsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUU7SUFDbkIsSUFBSSxHQUF5QixDQUFDO0lBRTlCLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNuQixHQUFHLEdBQUcsTUFBTSx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNsQixNQUFNLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN0QixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxhQUFhLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDM0IsdURBQXVEO1FBQ3ZELE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDO1FBQzFCLE1BQU0sTUFBTSxHQUFHLE1BQU0sR0FBRyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDMUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { BarretenbergBinder, BarretenbergBinderSync } from '../barretenberg_binder/index.js';
|
|
2
|
-
import { Fr, Fq, Point, Buffer32, Buffer128, Ptr } from '../types/index.js';
|
|
3
|
-
export declare class BarretenbergApi {
|
|
4
|
-
binder: BarretenbergBinder;
|
|
5
|
-
constructor(binder: BarretenbergBinder);
|
|
6
|
-
destroy(): Promise<void>;
|
|
7
|
-
pedersenInit(): Promise<void>;
|
|
8
|
-
pedersenCompressFields(left: Fr, right: Fr): Promise<Fr>;
|
|
9
|
-
pedersenPlookupCompressFields(left: Fr, right: Fr): Promise<Fr>;
|
|
10
|
-
pedersenCompress(inputsBuffer: Fr[]): Promise<Fr>;
|
|
11
|
-
pedersenPlookupCompress(inputsBuffer: Fr[]): Promise<Fr>;
|
|
12
|
-
pedersenCompressWithHashIndex(inputsBuffer: Fr[], hashIndex: number): Promise<Fr>;
|
|
13
|
-
pedersenCommit(inputsBuffer: Fr[]): Promise<Fr>;
|
|
14
|
-
pedersenPlookupCommit(inputsBuffer: Fr[]): Promise<Fr>;
|
|
15
|
-
pedersenPlookupCommitWithHashIndex(inputsBuffer: Fr[], hashIndex: number): Promise<Fr>;
|
|
16
|
-
pedersenBufferToField(data: Uint8Array): Promise<Fr>;
|
|
17
|
-
pedersenHashInit(): Promise<void>;
|
|
18
|
-
pedersenHashPair(left: Fr, right: Fr): Promise<Fr>;
|
|
19
|
-
pedersenHashMultiple(inputsBuffer: Fr[]): Promise<Fr>;
|
|
20
|
-
pedersenHashMultipleWithHashIndex(inputsBuffer: Fr[], hashIndex: number): Promise<Fr>;
|
|
21
|
-
pedersenHashToTree(data: Fr[]): Promise<Fr[]>;
|
|
22
|
-
blake2s(data: Uint8Array): Promise<Buffer32>;
|
|
23
|
-
blake2sToField(data: Uint8Array): Promise<Fr>;
|
|
24
|
-
schnorrComputePublicKey(privateKey: Fr): Promise<Point>;
|
|
25
|
-
schnorrNegatePublicKey(publicKeyBuffer: Point): Promise<Point>;
|
|
26
|
-
schnorrConstructSignature(message: Uint8Array, privateKey: Fr): Promise<[Buffer32, Buffer32]>;
|
|
27
|
-
schnorrVerifySignature(message: Uint8Array, pubKey: Point, sigS: Buffer32, sigE: Buffer32): Promise<boolean>;
|
|
28
|
-
schnorrMultisigCreateMultisigPublicKey(privateKey: Fq): Promise<Buffer128>;
|
|
29
|
-
schnorrMultisigValidateAndCombineSignerPubkeys(signerPubkeyBuf: Buffer128[]): Promise<[Point, boolean]>;
|
|
30
|
-
schnorrMultisigConstructSignatureRound1(): Promise<[Buffer128, Buffer128]>;
|
|
31
|
-
schnorrMultisigConstructSignatureRound2(message: Uint8Array, privateKey: Fq, signerRoundOnePrivateBuf: Buffer128, signerPubkeysBuf: Buffer128[], roundOnePublicBuf: Buffer128[]): Promise<[Fq, boolean]>;
|
|
32
|
-
schnorrMultisigCombineSignatures(message: Uint8Array, signerPubkeysBuf: Buffer128[], roundOneBuf: Buffer128[], roundTwoBuf: Fr[]): Promise<[Buffer32, Buffer32, boolean]>;
|
|
33
|
-
srsInitSrs(pointsBuf: Uint8Array, numPoints: number, g2PointBuf: Uint8Array): Promise<void>;
|
|
34
|
-
examplesSimpleCreateAndVerifyProof(): Promise<boolean>;
|
|
35
|
-
testThreads(threads: number, iterations: number): Promise<number>;
|
|
36
|
-
testThreadAbort(): Promise<void>;
|
|
37
|
-
testAbort(): Promise<void>;
|
|
38
|
-
commonInitSlabAllocator(circuitSize: number): Promise<void>;
|
|
39
|
-
acirGetCircuitSizes(constraintSystemBuf: Uint8Array): Promise<[number, number, number]>;
|
|
40
|
-
acirNewAcirComposer(sizeHint: number): Promise<Ptr>;
|
|
41
|
-
acirDeleteAcirComposer(acirComposerPtr: Ptr): Promise<void>;
|
|
42
|
-
acirCreateCircuit(acirComposerPtr: Ptr, constraintSystemBuf: Uint8Array, sizeHint: number): Promise<void>;
|
|
43
|
-
acirInitProvingKey(acirComposerPtr: Ptr, constraintSystemBuf: Uint8Array): Promise<void>;
|
|
44
|
-
acirCreateProof(acirComposerPtr: Ptr, constraintSystemBuf: Uint8Array, witnessBuf: Uint8Array, isRecursive: boolean): Promise<Uint8Array>;
|
|
45
|
-
acirLoadVerificationKey(acirComposerPtr: Ptr, vkBuf: Uint8Array): Promise<void>;
|
|
46
|
-
acirInitVerificationKey(acirComposerPtr: Ptr): Promise<void>;
|
|
47
|
-
acirGetVerificationKey(acirComposerPtr: Ptr): Promise<Uint8Array>;
|
|
48
|
-
acirVerifyProof(acirComposerPtr: Ptr, proofBuf: Uint8Array, isRecursive: boolean): Promise<boolean>;
|
|
49
|
-
acirGetSolidityVerifier(acirComposerPtr: Ptr): Promise<string>;
|
|
50
|
-
acirSerializeProofIntoFields(acirComposerPtr: Ptr, proofBuf: Uint8Array, numInnerPublicInputs: number): Promise<Fr[]>;
|
|
51
|
-
acirSerializeVerificationKeyIntoFields(acirComposerPtr: Ptr): Promise<[Fr[], Fr]>;
|
|
52
|
-
}
|
|
53
|
-
export declare class BarretenbergApiSync {
|
|
54
|
-
binder: BarretenbergBinderSync;
|
|
55
|
-
constructor(binder: BarretenbergBinderSync);
|
|
56
|
-
destroy(): Promise<void>;
|
|
57
|
-
pedersenInit(): void;
|
|
58
|
-
pedersenCompressFields(left: Fr, right: Fr): Fr;
|
|
59
|
-
pedersenPlookupCompressFields(left: Fr, right: Fr): Fr;
|
|
60
|
-
pedersenCompress(inputsBuffer: Fr[]): Fr;
|
|
61
|
-
pedersenPlookupCompress(inputsBuffer: Fr[]): Fr;
|
|
62
|
-
pedersenCompressWithHashIndex(inputsBuffer: Fr[], hashIndex: number): Fr;
|
|
63
|
-
pedersenCommit(inputsBuffer: Fr[]): Fr;
|
|
64
|
-
pedersenPlookupCommit(inputsBuffer: Fr[]): Fr;
|
|
65
|
-
pedersenPlookupCommitWithHashIndex(inputsBuffer: Fr[], hashIndex: number): Fr;
|
|
66
|
-
pedersenBufferToField(data: Uint8Array): Fr;
|
|
67
|
-
pedersenHashInit(): void;
|
|
68
|
-
pedersenHashPair(left: Fr, right: Fr): Fr;
|
|
69
|
-
pedersenHashMultiple(inputsBuffer: Fr[]): Fr;
|
|
70
|
-
pedersenHashMultipleWithHashIndex(inputsBuffer: Fr[], hashIndex: number): Fr;
|
|
71
|
-
pedersenHashToTree(data: Fr[]): Fr[];
|
|
72
|
-
blake2s(data: Uint8Array): Buffer32;
|
|
73
|
-
blake2sToField(data: Uint8Array): Fr;
|
|
74
|
-
schnorrComputePublicKey(privateKey: Fr): Point;
|
|
75
|
-
schnorrNegatePublicKey(publicKeyBuffer: Point): Point;
|
|
76
|
-
schnorrConstructSignature(message: Uint8Array, privateKey: Fr): [Buffer32, Buffer32];
|
|
77
|
-
schnorrVerifySignature(message: Uint8Array, pubKey: Point, sigS: Buffer32, sigE: Buffer32): boolean;
|
|
78
|
-
schnorrMultisigCreateMultisigPublicKey(privateKey: Fq): Buffer128;
|
|
79
|
-
schnorrMultisigValidateAndCombineSignerPubkeys(signerPubkeyBuf: Buffer128[]): [Point, boolean];
|
|
80
|
-
schnorrMultisigConstructSignatureRound1(): [Buffer128, Buffer128];
|
|
81
|
-
schnorrMultisigConstructSignatureRound2(message: Uint8Array, privateKey: Fq, signerRoundOnePrivateBuf: Buffer128, signerPubkeysBuf: Buffer128[], roundOnePublicBuf: Buffer128[]): [Fq, boolean];
|
|
82
|
-
schnorrMultisigCombineSignatures(message: Uint8Array, signerPubkeysBuf: Buffer128[], roundOneBuf: Buffer128[], roundTwoBuf: Fr[]): [Buffer32, Buffer32, boolean];
|
|
83
|
-
srsInitSrs(pointsBuf: Uint8Array, numPoints: number, g2PointBuf: Uint8Array): void;
|
|
84
|
-
examplesSimpleCreateAndVerifyProof(): boolean;
|
|
85
|
-
testThreads(threads: number, iterations: number): number;
|
|
86
|
-
testThreadAbort(): void;
|
|
87
|
-
testAbort(): void;
|
|
88
|
-
commonInitSlabAllocator(circuitSize: number): void;
|
|
89
|
-
acirGetCircuitSizes(constraintSystemBuf: Uint8Array): [number, number, number];
|
|
90
|
-
acirNewAcirComposer(sizeHint: number): Ptr;
|
|
91
|
-
acirDeleteAcirComposer(acirComposerPtr: Ptr): void;
|
|
92
|
-
acirCreateCircuit(acirComposerPtr: Ptr, constraintSystemBuf: Uint8Array, sizeHint: number): void;
|
|
93
|
-
acirInitProvingKey(acirComposerPtr: Ptr, constraintSystemBuf: Uint8Array): void;
|
|
94
|
-
acirCreateProof(acirComposerPtr: Ptr, constraintSystemBuf: Uint8Array, witnessBuf: Uint8Array, isRecursive: boolean): Uint8Array;
|
|
95
|
-
acirLoadVerificationKey(acirComposerPtr: Ptr, vkBuf: Uint8Array): void;
|
|
96
|
-
acirInitVerificationKey(acirComposerPtr: Ptr): void;
|
|
97
|
-
acirGetVerificationKey(acirComposerPtr: Ptr): Uint8Array;
|
|
98
|
-
acirVerifyProof(acirComposerPtr: Ptr, proofBuf: Uint8Array, isRecursive: boolean): boolean;
|
|
99
|
-
acirGetSolidityVerifier(acirComposerPtr: Ptr): string;
|
|
100
|
-
acirSerializeProofIntoFields(acirComposerPtr: Ptr, proofBuf: Uint8Array, numInnerPublicInputs: number): Fr[];
|
|
101
|
-
acirSerializeVerificationKeyIntoFields(acirComposerPtr: Ptr): [Fr[], Fr];
|
|
102
|
-
}
|
|
103
|
-
//# 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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"}
|